From 0dbb0e72f794457ec9e08ca67aae1c6ebbdf1a36 Mon Sep 17 00:00:00 2001 From: rplusq <32346241+rplusq@users.noreply.github.com> Date: Tue, 14 Oct 2025 18:10:08 +0100 Subject: [PATCH] docs: add base deployment --- DEPLOYMENT_ADDRESSES.md | 8 ++++++++ enhance-deployments.ts | 9 ++++++++- evm/deployments/8453.json | 32 +++++++++++++++++++++++++++++++- generate-deployment-docs.ts | 6 ++++++ ntt/mainnet_deployment.json | 35 +++++++++++++++++++++++++++++++---- ntt/overrides.json | 3 +++ verify-deployments.ts | 8 +++++++- 7 files changed, 94 insertions(+), 7 deletions(-) diff --git a/DEPLOYMENT_ADDRESSES.md b/DEPLOYMENT_ADDRESSES.md index 8ddf2e7..16537be 100644 --- a/DEPLOYMENT_ADDRESSES.md +++ b/DEPLOYMENT_ADDRESSES.md @@ -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 | diff --git a/enhance-deployments.ts b/enhance-deployments.ts index 67bc0fe..8a2ac5b 100644 --- a/enhance-deployments.ts +++ b/enhance-deployments.ts @@ -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; @@ -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"; diff --git a/evm/deployments/8453.json b/evm/deployments/8453.json index 3c7d492..ff03260 100644 --- a/evm/deployments/8453.json +++ b/evm/deployments/8453.json @@ -1 +1,31 @@ -{"L2WCT":{"address":"0xeF4461891DfB3AC8572cCf7C794664A8DD927945","admin":"0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4","implementation":"0x4D1070C6e37de5870e11b99e2A006739e77ec5cb"},"chainId":8453} \ No newline at end of file +{ + "L2WCT": { + "address": "0xeF4461891DfB3AC8572cCf7C794664A8DD927945", + "admin": "0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4", + "implementation": "0x4D1070C6e37de5870e11b99e2A006739e77ec5cb", + "proxy": { + "implementation": "0x1b9FC26A506B8CC98F65dE60f337c43f97BB2d40", + "admin": "0x3eD030AAF23b5C52c224Cb72100C22f581D10Df4", + "type": "transparent" + } + }, + "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" + } + } +} diff --git a/generate-deployment-docs.ts b/generate-deployment-docs.ts index 61a14ff..76c1ac5 100644 --- a/generate-deployment-docs.ts +++ b/generate-deployment-docs.ts @@ -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 diff --git a/ntt/mainnet_deployment.json b/ntt/mainnet_deployment.json index bf1cf27..6a94c64 100644 --- a/ntt/mainnet_deployment.json +++ b/ntt/mainnet_deployment.json @@ -19,7 +19,8 @@ "outbound": "184467440737.095516150000000000", "inbound": { "Solana": "184467440737.000000000000000000", - "Optimism": "184467440737.095516150000000000" + "Optimism": "184467440737.095516150000000000", + "Base": "184467440737.095516150000000000" } }, "pauser": "0x2D723C20Cb297E8F3F8cd885584623F97B5A7583" @@ -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", @@ -64,9 +90,10 @@ "outbound": "1000000000.000000000", "inbound": { "Ethereum": "1000000000.000000000", - "Optimism": "1000000000.000000000" + "Optimism": "1000000000.000000000", + "Base": "1000000000.000000000" } } } } -} +} \ No newline at end of file diff --git a/ntt/overrides.json b/ntt/overrides.json index 4722d95..a02373f 100644 --- a/ntt/overrides.json +++ b/ntt/overrides.json @@ -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" } diff --git a/verify-deployments.ts b/verify-deployments.ts index 181fe37..5173e04 100644 --- a/verify-deployments.ts +++ b/verify-deployments.ts @@ -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; @@ -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", + }, ]; // Contract display names (consistent with generate-deployment-docs.ts)