Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions DEPLOYMENT_ADDRESSES.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
| StakeWeight | [`0x521B4C065Bbdbe3E20B3727340730936912DfA46`](https://optimistic.etherscan.io/address/0x521B4C065Bbdbe3E20B3727340730936912DfA46) | [`0x9898b105fe3679f2d31c3A06B58757D913D88e5F`](https://optimistic.etherscan.io/address/0x9898b105fe3679f2d31c3A06B58757D913D88e5F) (ProxyAdmin) |
| StakingRewardDistributor | [`0xF368F535e329c6d08DFf0d4b2dA961C4e7F3fCAF`](https://optimistic.etherscan.io/address/0xF368F535e329c6d08DFf0d4b2dA961C4e7F3fCAF) | [`0x28672bf553c6AB214985868f68A3a491E227aCcB`](https://optimistic.etherscan.io/address/0x28672bf553c6AB214985868f68A3a491E227aCcB) (ProxyAdmin) |
| Airdrop | [`0x4ee97a759AACa2EdF9c1445223b6Cd17c2eD3fb4`](https://optimistic.etherscan.io/address/0x4ee97a759AACa2EdF9c1445223b6Cd17c2eD3fb4) | - |
| LockedTokenStakerBackers | [`0x688CfB3e55fCE2540b5491E923Dc6a9C4f240176`](https://optimistic.etherscan.io/address/0x688CfB3e55fCE2540b5491E923Dc6a9C4f240176) | - |
| LockedTokenStakerReown | [`0x5f630a47DE14e346fC28deB8fE379833A6F6B9B2`](https://optimistic.etherscan.io/address/0x5f630a47DE14e346fC28deB8fE379833A6F6B9B2) | - |
| LockedTokenStakerWalletConnect | [`0x8621034C9acD397cc5921d036225f75699c710FA`](https://optimistic.etherscan.io/address/0x8621034C9acD397cc5921d036225f75699c710FA) | - |
| LockedTokenStakerBackers | [`0x37BAdde9E3c9E108065Db36dCcce91E00556e334`](https://optimistic.etherscan.io/address/0x37BAdde9E3c9E108065Db36dCcce91E00556e334) | [`0x8B79481a2d8EEbe0F4d6Fd1705b0598540875407`](https://optimistic.etherscan.io/address/0x8B79481a2d8EEbe0F4d6Fd1705b0598540875407) (ProxyAdmin) |
| LockedTokenStakerReown | [`0xCcCf4C051C6F5a82D6bD76a1F66fc3cCdE8b3D6b`](https://optimistic.etherscan.io/address/0xCcCf4C051C6F5a82D6bD76a1F66fc3cCdE8b3D6b) | [`0x54594f1aF2A6bd876bF0f6d45FB7c3cb54eFB5d5`](https://optimistic.etherscan.io/address/0x54594f1aF2A6bd876bF0f6d45FB7c3cb54eFB5d5) (ProxyAdmin) |
| LockedTokenStakerWalletConnect | [`0xb6034870fdd84f09cB63433297C667A1A7771824`](https://optimistic.etherscan.io/address/0xb6034870fdd84f09cB63433297C667A1A7771824) | [`0xBa900e340f781A18C34Ff9D73CDb9756329a71d9`](https://optimistic.etherscan.io/address/0xBa900e340f781A18C34Ff9D73CDb9756329a71d9) (ProxyAdmin) |
| MerkleVesterBackers | [`0x2FF1Cdf8Fe00Ae6952BAA32e37D84D31A31E2EC2`](https://optimistic.etherscan.io/address/0x2FF1Cdf8Fe00Ae6952BAA32e37D84D31A31E2EC2) | - |
| MerkleVesterReown | [`0x648bddEE207da25e19918460c1Dc9F462F657a19`](https://optimistic.etherscan.io/address/0x648bddEE207da25e19918460c1Dc9F462F657a19) | - |
| MerkleVesterWalletConnect | [`0x85d0964D328563D502867FF6899C6F73D2E59FD1`](https://optimistic.etherscan.io/address/0x85d0964D328563D502867FF6899C6F73D2E59FD1) | - |
Expand All @@ -38,9 +38,17 @@
| Contract | Address | ProxyAdmin/Owner (if Proxy contract) |
| -------- | ------- | ------------------------------------ |
| L2WCT Token | [`0xeF4461891DfB3AC8572cCf7C794664A8DD927945`](https://basescan.org/address/0xeF4461891DfB3AC8572cCf7C794664A8DD927945) | [`0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4`](https://basescan.org/address/0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4) (ProxyAdmin) |
| Timelock | [`0x8b8D9f03027004dB4b607E909246e9270D8fEdee`](https://basescan.org/address/0x8b8D9f03027004dB4b607E909246e9270D8fEdee) | - |
| NTT Manager | [`0x164Be303480f542336bE0bBe0432A13b85e6FD1b`](https://basescan.org/address/0x164Be303480f542336bE0bBe0432A13b85e6FD1b) | [`0x398A2749487B2a91f2f543C01F7afD19AEE4b6b0`](https://basescan.org/address/0x398A2749487B2a91f2f543C01F7afD19AEE4b6b0) (Owner) |
| NTT Transceiver | [`0x3cB1d3A449a868dd8BF8F8928408836543Fe2A68`](https://basescan.org/address/0x3cB1d3A449a868dd8BF8F8928408836543Fe2A68) | [`0x398A2749487B2a91f2f543C01F7afD19AEE4b6b0`](https://basescan.org/address/0x398A2749487B2a91f2f543C01F7afD19AEE4b6b0) (Owner) |

## Arbitrum (Chain ID: 42161)

| Contract | Address | ProxyAdmin/Owner (if Proxy contract) |
| -------- | ------- | ------------------------------------ |
| WCT Token | [`0xeF4461891DfB3AC8572cCf7C794664A8DD927945`](https://arbiscan.io/address/0xeF4461891DfB3AC8572cCf7C794664A8DD927945) | - |
| Timelock | [`0x8b8D9f03027004dB4b607E909246e9270D8fEdee`](https://arbiscan.io/address/0x8b8D9f03027004dB4b607E909246e9270D8fEdee) | - |

## Solana

| Contract | Address |
Expand Down
2 changes: 1 addition & 1 deletion evm/deployments/42161.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"WCT":{"address":"0xeF4461891DfB3AC8572cCf7C794664A8DD927945","admin":"0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4","implementation":"0x4D1070C6e37de5870e11b99e2A006739e77ec5cb"},"chainId":42161}
{"Timelock":{"address":"0x8b8D9f03027004dB4b607E909246e9270D8fEdee"},"WCT":{"address":"0xeF4461891DfB3AC8572cCf7C794664A8DD927945","admin":"0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4","implementation":"0x4D1070C6e37de5870e11b99e2A006739e77ec5cb"},"chainId":42161}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Auto Review Issue: Arbitrum WCT ProxyAdmin silently dropped from generated docs

Severity: MEDIUM
Category: correctness
Tool: Claude Auto Review

Context:

  • Pattern: 42161.json stores WCT proxy metadata at the top level ("admin": "0x3eD...", "implementation": "0x4D1..."), while the docs generator (generate-deployment-docs.ts:152-159) only reads from deployment.proxy?.admin. 8453.json (and the DeploymentEntry interface) use the nested proxy sub-object.
  • Risk: The generator silently emits "-" for the ProxyAdmin column of Arbitrum's WCT Token even though 0x3eD030AAF23b5C22c224Cb72100C22f581D10Df4 is the admin in the JSON.
  • Impact: The generated DEPLOYMENT_ADDRESSES.md line | WCT Token | ... | - | is factually wrong — it hides who controls the WCT proxy upgrade on Arbitrum, reducing auditability and increasing the chance of a reviewer trusting the stale docs.
  • Trigger: Every pnpm run sync:deployments run will reproduce the incorrect - value.

Recommendation: Align 42161.json with the schema used by every other deployment file:

{
  "Timelock": { "address": "0x8b8D9f03027004dB4b607E909246e9270D8fEdee" },
  "WCT": {
    "address": "0xeF4461891DfB3AC8572cCf7C794664A8DD927945",
    "proxy": {
      "admin": "0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4",
      "implementation": "0x4D1070C6e37de5870e11b99e2A006739e77ec5cb",
      "type": "transparent"
    }
  },
  "chainId": 42161
}

Fix this →

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Auto Review Issue: 42161.json is minified; all other deployment files are formatted

Severity: LOW
Category: code_quality
Tool: Claude Auto Review

Context:

  • Pattern: 42161.json is a single minified line; 1.json, 8453.json, and 10.json are all pretty-printed with 2-space indentation.
  • Risk: Harder to review future diffs, and adding fields manually is error-prone (which may be how the schema mismatch in Issue 1 arose).
  • Impact: Reduced reviewability and higher chance of future data entry errors.
  • Trigger: Any future manual or scripted edit to 42161.json.

Recommendation: Reformat to match the other files (pretty-print with 2-space indent). This is also a prerequisite for the fix in Issue 1.

No data classification issues found.

3 changes: 3 additions & 0 deletions evm/deployments/8453.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{
"Timelock": {
"address": "0x8b8D9f03027004dB4b607E909246e9270D8fEdee"
},
"L2WCT": {
"address": "0xeF4461891DfB3AC8572cCf7C794664A8DD927945",
"admin": "0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4",
Expand Down
6 changes: 6 additions & 0 deletions generate-deployment-docs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@ const CHAINS: ChainConfig[] = [
explorerUrl: "https://basescan.org",
deploymentFile: "evm/deployments/8453.json",
},
{
id: 42161,
name: "Arbitrum",
explorerUrl: "https://arbiscan.io",
deploymentFile: "evm/deployments/42161.json",
},
];

// Special handling for contracts that need custom names or ordering
Expand Down
Loading