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
8 changes: 8 additions & 0 deletions DEPLOYMENT_ADDRESSES.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,14 @@
| MerkleVesterWalletConnect | [`0x85d0964D328563D502867FF6899C6F73D2E59FD1`](https://optimistic.etherscan.io/address/0x85d0964D328563D502867FF6899C6F73D2E59FD1) | - |
| StakingRewardsCalculator | [`0xC06d02F26515A56576426deCddac8d7b9Ca326D1`](https://optimistic.etherscan.io/address/0xC06d02F26515A56576426deCddac8d7b9Ca326D1) | - |

## Base (Chain ID: 8453)

| Contract | Address | ProxyAdmin/Owner (if Proxy contract) |
| -------- | ------- | ------------------------------------ |
| L2WCT Token | [`0xeF4461891DfB3AC8572cCf7C794664A8DD927945`](https://basescan.org/address/0xeF4461891DfB3AC8572cCf7C794664A8DD927945) | [`0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4`](https://basescan.org/address/0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4) (ProxyAdmin) |
| 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) |

## Solana

| Contract | Address |
Expand Down
9 changes: 8 additions & 1 deletion enhance-deployments.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import fs from "fs";
import { createPublicClient, http, getAddress } from "viem";
import { mainnet, optimism } from "viem/chains";
import { mainnet, optimism, base } from "viem/chains";

interface DeploymentEntry {
name: string;
Expand Down Expand Up @@ -67,6 +67,13 @@ const CHAINS: ChainConfig[] = [
deploymentFile: "evm/deployments/10.json",
nttChainName: "Optimism",
},
{
id: 8453,
name: "Base",
client: createPublicClient({ chain: base, transport: http() }),
deploymentFile: "evm/deployments/8453.json",
nttChainName: "Base",
},
];

const NTT_CONFIG_FILE = "ntt/mainnet_deployment.json";
Expand Down
32 changes: 31 additions & 1 deletion evm/deployments/8453.json
Original file line number Diff line number Diff line change
@@ -1 +1,31 @@
{"L2WCT":{"address":"0xeF4461891DfB3AC8572cCf7C794664A8DD927945","admin":"0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4","implementation":"0x4D1070C6e37de5870e11b99e2A006739e77ec5cb"},"chainId":8453}
{
"L2WCT": {
"address": "0xeF4461891DfB3AC8572cCf7C794664A8DD927945",
"admin": "0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4",
"implementation": "0x4D1070C6e37de5870e11b99e2A006739e77ec5cb",
"proxy": {
"implementation": "0x1b9FC26A506B8CC98F65dE60f337c43f97BB2d40",
"admin": "0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4",
"type": "transparent"
Comment on lines +2 to +9

Copilot AI Oct 14, 2025

Copy link

Choose a reason for hiding this comment

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

L2WCT lists two different implementation addresses (top-level implementation 0x4D1070... vs proxy.implementation 0x1b9FC2...) which creates an inconsistent source of truth and can cause tooling to read an outdated or incorrect implementation. Align to a single implementation reference (update the correct one, then remove the redundant field) or ensure both match if both are required for backward compatibility.

Copilot uses AI. Check for mistakes.
}
},
"chainId": 8453,
"NttManager": {
"name": "NTT Manager",
"address": "0x164Be303480f542336bE0bBe0432A13b85e6FD1b",
"proxy": {
"implementation": "0xaf6775d329b6fb20cB6DF29ffE9E21FfbD34A7FD",
"owner": "0x398A2749487B2a91f2f543C01F7afD19AEE4b6b0",
"type": "uups"
}
},
"NttTransceiver": {
"name": "NTT Transceiver",
"address": "0x3cB1d3A449a868dd8BF8F8928408836543Fe2A68",
"proxy": {
"implementation": "0x6eeF2f780493b6F53795FE7C963E2c1aA09B8B16",
"owner": "0x398A2749487B2a91f2f543C01F7afD19AEE4b6b0",
"type": "uups"
}
}
}
6 changes: 6 additions & 0 deletions generate-deployment-docs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ const CHAINS: ChainConfig[] = [
explorerUrl: "https://optimistic.etherscan.io",
deploymentFile: "evm/deployments/10.json",
},
{
id: 8453,
name: "Base",
explorerUrl: "https://basescan.org",
deploymentFile: "evm/deployments/8453.json",
},
];

// Special handling for contracts that need custom names or ordering
Expand Down
35 changes: 31 additions & 4 deletions ntt/mainnet_deployment.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"outbound": "184467440737.095516150000000000",
"inbound": {
"Solana": "184467440737.000000000000000000",
"Optimism": "184467440737.095516150000000000"
"Optimism": "184467440737.095516150000000000",
"Base": "184467440737.095516150000000000"
}
},
"pauser": "0x2D723C20Cb297E8F3F8cd885584623F97B5A7583"
Expand All @@ -42,11 +43,36 @@
"outbound": "184467440737.095516150000000000",
"inbound": {
"Ethereum": "184467440737.095516150000000000",
"Solana": "184467440737.000000000000000000"
"Solana": "184467440737.000000000000000000",
"Base": "184467440737.095516150000000000"
}
},
"pauser": "0x2D723C20Cb297E8F3F8cd885584623F97B5A7583"
},
"Base": {
"version": "1.1.0",
"mode": "burning",
"paused": false,
"owner": "0x398A2749487B2a91f2f543C01F7afD19AEE4b6b0",
"manager": "0x164Be303480f542336bE0bBe0432A13b85e6FD1b",
"token": "0xeF4461891DfB3AC8572cCf7C794664A8DD927945",
"transceivers": {
"threshold": 1,
"wormhole": {
"address": "0x3cB1d3A449a868dd8BF8F8928408836543Fe2A68",
"pauser": "0xdeCafd85661B67bA9c43f3B4DAeF5AD02f8CEa5F"
}
},
"limits": {
"outbound": "184467440737.095516150000000000",
"inbound": {
"Ethereum": "184467440737.095516150000000000",
"Optimism": "184467440737.095516150000000000",
"Solana": "184467440737.000000000000000000"
}
},
"pauser": "0xdeCafd85661B67bA9c43f3B4DAeF5AD02f8CEa5F"
},
"Solana": {
"version": "2.0.0",
"mode": "burning",
Expand All @@ -64,9 +90,10 @@
"outbound": "1000000000.000000000",
"inbound": {
"Ethereum": "1000000000.000000000",
"Optimism": "1000000000.000000000"
"Optimism": "1000000000.000000000",
"Base": "1000000000.000000000"
}
}
}
}
}
}
3 changes: 3 additions & 0 deletions ntt/overrides.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
"Optimism": {
"rpc": "https://optimism-rpc.publicnode.com"
},
"Base": {
"rpc": "https://base-rpc.publicnode.com"
},
"Solana": {
"rpc": "https://solana-rpc.publicnode.com"
}
Expand Down
8 changes: 7 additions & 1 deletion verify-deployments.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import fs from "fs";
import { createPublicClient, http, getAddress, isAddress } from "viem";
import { mainnet, optimism } from "viem/chains";
import { mainnet, optimism, base } from "viem/chains";

interface DeploymentEntry {
name: string;
Expand Down Expand Up @@ -38,6 +38,12 @@ const CHAINS: ChainConfig[] = [
client: createPublicClient({ chain: optimism, transport: http() }),
deploymentFile: "evm/deployments/10.json",
},
{
id: 8453,
name: "Base",
client: createPublicClient({ chain: base, transport: http() }),
deploymentFile: "evm/deployments/8453.json",
},
Comment on lines +41 to +46

Copilot AI Oct 14, 2025

Copy link

Choose a reason for hiding this comment

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

[nitpick] The Base chain configuration is added here, and similar entries are duplicated in enhance-deployments.ts and generate-deployment-docs.ts; maintaining separate CHAINS arrays increases drift risk for future network additions. Consider extracting a shared chain metadata module (e.g., chains.ts) imported by all three scripts to ensure single-source updates.

Copilot uses AI. Check for mistakes.
];

// Contract display names (consistent with generate-deployment-docs.ts)
Expand Down
Loading