From 00d86c0b3730e6b1d74010ccbd6d797f1244469c Mon Sep 17 00:00:00 2001 From: arthcp Date: Thu, 2 Jul 2026 14:28:38 +0400 Subject: [PATCH] feat: pipe, deploy and verify robinhood --- .env.example | 2 ++ ALLOWANCE_HOLDER_DEPLOYMENT.md | 4 ++-- README.md | 1 + deployments.csv | 1 + deployments/prod/addresses/robinhood.json | 3 +++ hardhat.config.ts | 14 ++++++++++++++ protocol.mk | 4 ++-- .../deploy/deployAcrossERC20AmountManipulator.ts | 5 ++++- scripts/deploy/networks.ts | 6 ++++-- scripts/deploy/openRouterBuild.ts | 2 ++ scripts/deploy/verifyAllowanceHolderBatch.ts | 1 + scripts/deploy/verifyCctpClaimExecutorBatch.ts | 1 + scripts/deploy/verifyRFQVaultExecutorBatch.ts | 1 + scripts/e2e/config.ts | 5 +++++ 14 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 deployments/prod/addresses/robinhood.json diff --git a/.env.example b/.env.example index 635f541..ebfca42 100644 --- a/.env.example +++ b/.env.example @@ -57,6 +57,7 @@ MONAD_RPC= TEMPO_RPC= ARBITRUM_SEPOLIA_RPC= OPTIMISM_SEPOLIA_RPC= +ROBINHOOD_RPC= # Block explorer API keys (for --verify) MAINNET_ETHERSCAN_KEY= @@ -87,3 +88,4 @@ HYPEREVM_ETHERSCAN_KEY= PLASMA_ETHERSCAN_KEY= MONAD_ETHERSCAN_KEY= TEMPO_ETHERSCAN_KEY= +ROBINHOOD_ETHERSCAN_KEY= diff --git a/ALLOWANCE_HOLDER_DEPLOYMENT.md b/ALLOWANCE_HOLDER_DEPLOYMENT.md index 97e28d1..186aeff 100644 --- a/ALLOWANCE_HOLDER_DEPLOYMENT.md +++ b/ALLOWANCE_HOLDER_DEPLOYMENT.md @@ -118,7 +118,7 @@ variant, CREATE3 salt, initcode hash when known, and runtime bytecode hash for: ```text ethereum polygon base optimism arbitrum bsc worldchain sonic ink avalanche unichain berachain scroll hyperEvm plasma monad linea gnosis katana mode -megaeth plume blast soneium sei tempo +megaeth robinhood plume blast soneium sei tempo ``` The Cancun OpenRouter was deployed with CREATE3 on all configured OpenRouter @@ -140,7 +140,7 @@ CREATE3 salt, initcode hash when known, and runtime bytecode hash for: ```text ethereum polygon base optimism arbitrum bsc worldchain sonic ink avalanche unichain berachain scroll hyperEvm plasma monad linea gnosis katana mode -megaeth plume blast soneium sei +megaeth robinhood plume blast soneium sei ``` ## Commands diff --git a/README.md b/README.md index 9452657..6f1b52a 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,7 @@ OpenRouter is deployed at **`0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a`** (CREA | Sei | 1329 | | Plume | 98866 | | Katana | 747474 | +| Robinhood | 4663 | **AllowanceHolder** (users approve this contract, not OpenRouter): diff --git a/deployments.csv b/deployments.csv index 7c7fa0e..f131bce 100644 --- a/deployments.csv +++ b/deployments.csv @@ -13,6 +13,7 @@ chainId,variant,allowanceHolderAddress,allowanceHolderSalt,allowanceHolderSaltTe 1868,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 4217,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,,,,,,,,,,,,,,, 4326,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a +4663,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 5000,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 5042,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 8453,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a diff --git a/deployments/prod/addresses/robinhood.json b/deployments/prod/addresses/robinhood.json new file mode 100644 index 0000000..21878b9 --- /dev/null +++ b/deployments/prod/addresses/robinhood.json @@ -0,0 +1,3 @@ +{ + "RFQVaultExecutor": "0x97caCa78AC2a94c67643d07843F85AFAa44a3ea5" +} diff --git a/hardhat.config.ts b/hardhat.config.ts index a8bcb16..40cbbb8 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -146,6 +146,11 @@ const config: HardhatUserConfig = { chainId: 4326, accounts, }, + robinhood: { + url: process.env.ROBINHOOD_RPC ?? '', + chainId: 4663, + accounts, + }, plume: { url: process.env.PLUME_RPC ?? 'https://rpc.plume.org', chainId: 98866, @@ -262,6 +267,7 @@ const config: HardhatUserConfig = { sei: explorerApiKey(process.env.SEI_ETHERSCAN_KEY), soneium: explorerApiKey(process.env.SONEIUM_ETHERSCAN_KEY), megaeth: explorerApiKey(process.env.MEGAETH_ETHERSCAN_KEY), + robinhood: explorerApiKey(process.env.ROBINHOOD_ETHERSCAN_KEY), plume: explorerApiKey(process.env.PLUME_ETHERSCAN_KEY), ethereal: explorerApiKey(process.env.ETHEREAL_ETHERSCAN_KEY), katana: explorerApiKey(process.env.KATANA_ETHERSCAN_KEY), @@ -447,6 +453,14 @@ const config: HardhatUserConfig = { browserURL: 'https://mega.etherscan.io', }, }, + { + network: 'robinhood', + chainId: 4663, + urls: { + apiURL: 'https://robinhoodchain.blockscout.com/api', + browserURL: 'https://robinhoodchain.blockscout.com', + }, + }, { network: 'plume', chainId: 98866, diff --git a/protocol.mk b/protocol.mk index 427a18c..eb5aded 100644 --- a/protocol.mk +++ b/protocol.mk @@ -1,7 +1,7 @@ .PHONY: deploy-openrouter deploy-openrouter-cancun deploy-openrouter-shanghai deploy-allowance-holder deploy-across-manipulator check-openrouter check-allowance-holder check-across-manipulator -OPENROUTER_NETWORKS = ethereum polygon base optimism arbitrum bsc worldchain sonic ink avalanche unichain berachain scroll hyperEvm plasma monad linea mantle gnosis katana mode megaeth plume blast soneium sei -ALLOWANCE_HOLDER_NETWORKS = ethereum polygon base optimism arbitrum bsc worldchain sonic ink avalanche unichain berachain scroll hyperEvm plasma monad linea mantle gnosis katana mode megaeth plume blast soneium sei tempo +OPENROUTER_NETWORKS = ethereum polygon base optimism arbitrum bsc worldchain sonic ink avalanche unichain berachain scroll hyperEvm plasma monad linea mantle gnosis katana mode megaeth robinhood plume blast soneium sei +ALLOWANCE_HOLDER_NETWORKS = ethereum polygon base optimism arbitrum bsc worldchain sonic ink avalanche unichain berachain scroll hyperEvm plasma monad linea mantle gnosis katana mode megaeth robinhood plume blast soneium sei tempo # Chains supported by both Across (bungee-backend) and OpenRouter (protocol.mk). ACROSS_MANIPULATOR_NETWORKS = ethereum polygon base optimism arbitrum bsc worldchain ink unichain scroll hyperEvm plasma monad linea tempo mode diff --git a/scripts/deploy/deployAcrossERC20AmountManipulator.ts b/scripts/deploy/deployAcrossERC20AmountManipulator.ts index 7dfba8d..09a5a8b 100644 --- a/scripts/deploy/deployAcrossERC20AmountManipulator.ts +++ b/scripts/deploy/deployAcrossERC20AmountManipulator.ts @@ -76,13 +76,16 @@ async function main() { console.log(`AcrossERC20AmountManipulator: ${manipulatorAddress}`); const chainId = (await ethers.provider.getNetwork()).chainId; - if (chainId !== 31337n) { + const skipVerify = process.env.SKIP_VERIFY?.trim().toLowerCase() === 'true'; + if (chainId !== 31337n && !skipVerify) { await new Promise((resolve) => setTimeout(resolve, 5000)); await hre.run('verify:verify', { address: manipulatorAddress, constructorArguments: [], }); + } else if (skipVerify) { + console.log('Skipping block explorer verification (SKIP_VERIFY=true)'); } } diff --git a/scripts/deploy/networks.ts b/scripts/deploy/networks.ts index 26d1c33..f89cbda 100644 --- a/scripts/deploy/networks.ts +++ b/scripts/deploy/networks.ts @@ -8,8 +8,8 @@ export type ReceiverDeployNetwork = { }; /** - * Hardhat network names aligned with OPEN_ROUTER_CHAIN_IDS (Tempo excluded). - * RPC env keys and fallbacks mirror hardhat.config.ts. + * Hardhat network names for deployed and deployable OpenRouter chains + * (Tempo excluded). RPC env keys and fallbacks mirror hardhat.config.ts. */ export const RECEIVER_DEPLOY_NETWORKS: readonly ReceiverDeployNetwork[] = [ { name: 'ethereum', chainId: CHAIN_IDS.ETHEREUM, rpcEnvKey: 'ETHEREUM_RPC', rpcFallback: 'https://eth.llamarpc.com' }, @@ -35,6 +35,7 @@ export const RECEIVER_DEPLOY_NETWORKS: readonly ReceiverDeployNetwork[] = [ { name: 'katana', chainId: CHAIN_IDS.KATANA, rpcEnvKey: 'KATANA_RPC', rpcFallback: 'https://rpc.katana.network' }, { name: 'mode', chainId: CHAIN_IDS.MODE, rpcEnvKey: 'MODE_RPC', rpcFallback: 'https://1rpc.io/mode' }, { name: 'megaeth', chainId: CHAIN_IDS.MEGAETH, rpcEnvKey: 'MEGAETH_RPC', rpcFallback: 'https://rpc.megaeth.xyz' }, + { name: 'robinhood', chainId: CHAIN_IDS.ROBINHOOD, rpcEnvKey: 'ROBINHOOD_RPC', rpcFallback: '' }, { name: 'plume', chainId: CHAIN_IDS.PLUME, rpcEnvKey: 'PLUME_RPC', rpcFallback: 'https://rpc.plume.org' }, { name: 'blast', chainId: CHAIN_IDS.BLAST, rpcEnvKey: 'BLAST_RPC', rpcFallback: 'https://blastl2-mainnet.public.blastapi.io' }, { name: 'soneium', chainId: CHAIN_IDS.SONEIUM, rpcEnvKey: 'SONEIUM_RPC', rpcFallback: 'https://soneium.drpc.org' }, @@ -70,6 +71,7 @@ const RPC_ENV_ALIASES: Partial> = { PLASMA_RPC: ['PLASMA_RPC_URL'], MONAD_RPC: ['MONAD_RPC_URL'], MEGAETH_RPC: ['MEGAETH_RPC_URL'], + ROBINHOOD_RPC: ['ROBINHOOD_RPC_URL'], }; function stripEnvQuotes(value: string): string { diff --git a/scripts/deploy/openRouterBuild.ts b/scripts/deploy/openRouterBuild.ts index 395b597..5348cec 100644 --- a/scripts/deploy/openRouterBuild.ts +++ b/scripts/deploy/openRouterBuild.ts @@ -50,6 +50,7 @@ export const OPENROUTER_NETWORK_CHAIN_IDS: Record = { katana: CHAIN_IDS.KATANA, mode: CHAIN_IDS.MODE, megaeth: CHAIN_IDS.MEGAETH, + robinhood: CHAIN_IDS.ROBINHOOD, plume: CHAIN_IDS.PLUME, blast: CHAIN_IDS.BLAST, soneium: CHAIN_IDS.SONEIUM, @@ -82,6 +83,7 @@ export const OPENROUTER_DEPLOY_NETWORKS = [ 'katana', 'mode', 'megaeth', + 'robinhood', 'plume', 'blast', 'soneium', diff --git a/scripts/deploy/verifyAllowanceHolderBatch.ts b/scripts/deploy/verifyAllowanceHolderBatch.ts index 1aeeb82..a44587a 100644 --- a/scripts/deploy/verifyAllowanceHolderBatch.ts +++ b/scripts/deploy/verifyAllowanceHolderBatch.ts @@ -58,6 +58,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map([ [143, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=143' }], [1329, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=1329' }], [4326, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=4326' }], + [4663, { verifier: 'custom', chainArg: '4663', verifierUrl: 'https://robinhoodchain.blockscout.com/api' }], [5042, { verifier: 'sourcify', chainArg: '5042' }], [9745, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=9745' }], [98866, { verifier: 'sourcify', chainArg: '98866' }], diff --git a/scripts/deploy/verifyCctpClaimExecutorBatch.ts b/scripts/deploy/verifyCctpClaimExecutorBatch.ts index def8ef7..0785edb 100644 --- a/scripts/deploy/verifyCctpClaimExecutorBatch.ts +++ b/scripts/deploy/verifyCctpClaimExecutorBatch.ts @@ -54,6 +54,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map([ [480, { verifier: 'etherscan', chainArg: '480' }], [999, { verifier: 'etherscan', chainArg: '999' }], [1329, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=1329' }], + [4663, { verifier: 'custom', chainArg: '4663', verifierUrl: 'https://robinhoodchain.blockscout.com/api' }], [8453, { verifier: 'etherscan', chainArg: '8453' }], [98866, { verifier: 'sourcify', chainArg: '98866' }], [42161, { verifier: 'etherscan', chainArg: '42161' }], diff --git a/scripts/deploy/verifyRFQVaultExecutorBatch.ts b/scripts/deploy/verifyRFQVaultExecutorBatch.ts index 75ba2f0..0bc297b 100644 --- a/scripts/deploy/verifyRFQVaultExecutorBatch.ts +++ b/scripts/deploy/verifyRFQVaultExecutorBatch.ts @@ -50,6 +50,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map([ [999, { verifier: 'etherscan', chainArg: '999' }], [1868, { verifier: 'custom', chainArg: '1868', verifierUrl: 'https://soneium.blockscout.com/api' }], [4326, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=4326' }], + [4663, { verifier: 'custom', chainArg: '4663', verifierUrl: 'https://robinhoodchain.blockscout.com/api' }], [5000, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=5000' }], [5042, { verifier: 'sourcify', chainArg: '5042' }], [8453, { verifier: 'etherscan', chainArg: '8453' }], diff --git a/scripts/e2e/config.ts b/scripts/e2e/config.ts index e4f926a..7a42b38 100644 --- a/scripts/e2e/config.ts +++ b/scripts/e2e/config.ts @@ -27,6 +27,8 @@ export const CHAIN_IDS = { ARC: 5042, /** Tempo mainnet — AllowanceHolder only; OpenRouter not deployed (deposit-only chain). */ TEMPO: 4217, + /** Robinhood mainnet. */ + ROBINHOOD: 4663, /** MegaETH mainnet — Relay USDM → Base USDC e2e. */ MEGAETH: 4326, ARBITRUM: 42161, @@ -62,6 +64,7 @@ export const BLOCK_EXPLORER_TX_PREFIX: Record = { [CHAIN_IDS.BASE]: 'https://basescan.org/tx/', [CHAIN_IDS.HYPEREVM]: 'https://hyperevmscan.io/tx/', [CHAIN_IDS.TEMPO]: 'https://explore.mainnet.tempo.xyz/tx/', + [CHAIN_IDS.ROBINHOOD]: 'https://robinhoodchain.blockscout.com/tx/', [CHAIN_IDS.MEGAETH]: 'https://mega.etherscan.io/tx/', [CHAIN_IDS.ARBITRUM]: 'https://arbiscan.io/tx/', [CHAIN_IDS.LINEA]: 'https://lineascan.build/tx/', @@ -161,6 +164,7 @@ export const OPEN_ROUTER_CHAIN_IDS: readonly number[] = [ CHAIN_IDS.KATANA, CHAIN_IDS.MODE, CHAIN_IDS.MEGAETH, + CHAIN_IDS.ROBINHOOD, CHAIN_IDS.PLUME, CHAIN_IDS.BLAST, CHAIN_IDS.SONEIUM, @@ -408,6 +412,7 @@ export const RPC = { BASE: process.env.BASE_RPC ?? 'https://mainnet.base.org', HYPEREVM: process.env.HYPEREVM_RPC ?? 'https://rpc.hyperliquid.xyz/evm', TEMPO: process.env.TEMPO_RPC ?? 'https://rpc.mainnet.tempo.xyz', + ROBINHOOD: process.env.ROBINHOOD_RPC ?? '', MEGAETH: process.env.MEGAETH_RPC ?? 'https://rpc.megaeth.xyz', ARBITRUM: process.env.ARBITRUM_RPC ?? 'https://arb1.arbitrum.io/rpc', LINEA: process.env.LINEA_RPC ?? 'https://rpc.linea.build',