diff --git a/.env.example b/.env.example index 9927aed..ed65ced 100644 --- a/.env.example +++ b/.env.example @@ -53,6 +53,7 @@ ETHEREAL_RPC= KATANA_RPC= HYPEREVM_RPC= ARC_RPC= +INJECTIVE_RPC= PLASMA_RPC= MONAD_RPC= TEMPO_RPC= diff --git a/deployments.csv b/deployments.csv index 2f6f57c..793bd8e 100644 --- a/deployments.csv +++ b/deployments.csv @@ -10,6 +10,7 @@ chainId,variant,allowanceHolderAddress,allowanceHolderSalt,allowanceHolderSaltTe 480,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 999,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 1329,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a +1776,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x8c61bf68799b5897057a153c134492e43faa90a4caa0d9ce5d1016e4dec6ae5e,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 1868,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x1e4cf28950cc422f6b2112db77b8c0b0025c176291f984166889b8157de9dfe6,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 4153,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0x7b4c1230f4398f130d0763a180f21f0dbcae086cbd4a52746c4374a8d5620165,0x1919e6d868d2cc2e7de33d97a656149d47f37b87d0eea3f07a6a404663746d4f,0x50cFe7c1938dB66A1a6D2e86D36F39FBef3d5c4a,0x4c57cf418d2865efb93a3c31021f230798eaca0458d188fbb593e329718139ab,OpenRouter50cfe7:4030514,0x0e5ff42eb7810767de756c833a042818f95052b885634a3dc3adb679a4652f48,0xd1dbc2c8ca87939cadf58e4eb91832cbe44bd5d12e3a0a0d56c76928a818e26b,0x8A774c1B73998A54ff09341f3cfF8A0010BbA7f1,0xeb8d08957ffb6da6c84ab1f89e95f4e08331fa81834e21d00754af20ec74d453,BungeeReceiver,0x8c61bf68799b5897057a153c134492e43faa90a4caa0d9ce5d1016e4dec6ae5e,0x3e3fdfa261d7f00f53c22b4ba051f0da1903402669591bcef63d51ebe3085108,0xC914815120FA5A7e05748398C9fDf1d1b2729008,0x7c3bbaa3e26afa737955bd8665389dae8745dd537430122c9545abb09f85e34b,CalldataExecutor,0x2ac2791e955dbd2e9787486e2a4a9ba669d27cb1b642ade54a1221a5ccd53b64,0x037de760dbd500210ed5c68706a16171ec415563c6136e52d6a9930a5f53e32a 4217,cancun,0x50c4E75a512F2A14A7b304787Adf79C4531A5909,0xa450483209637d11f92238066a6b1f405ae093536f02dda3b90a36d36f180570,AllowanceHolder50c4e7:5981577,0xe0afa70daed24ec949499638683365cbe4cbf097a1c8417a730e4b497cfb4610,0x0be5794255d21df0f4a10a516428f8d06805779d69b1714297bebcc18971e0b4,,,,,,,,,,,,,,, diff --git a/deployments/prod/addresses/injective.json b/deployments/prod/addresses/injective.json new file mode 100644 index 0000000..122c8b8 --- /dev/null +++ b/deployments/prod/addresses/injective.json @@ -0,0 +1,3 @@ +{ + "CctpClaimExecutor": "0x424a31a57f7c63918ecaa2fac38016a8af5a6ec2" +} diff --git a/hardhat.config.ts b/hardhat.config.ts index 61f2ed8..d4287a9 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -181,6 +181,11 @@ const config: HardhatUserConfig = { chainId: 5042, accounts, }, + injective: { + url: process.env.INJECTIVE_RPC ?? 'https://sentry.evm-rpc.injective.network', + chainId: 1776, + accounts, + }, plasma: { url: process.env.PLASMA_RPC ?? 'https://rpc.plasma.to', chainId: 9745, @@ -274,6 +279,7 @@ const config: HardhatUserConfig = { megaeth: explorerApiKey(process.env.MEGAETH_ETHERSCAN_KEY), rise: process.env.RISE_ETHERSCAN_KEY ?? 'blockscout', robinhood: explorerApiKey(process.env.ROBINHOOD_ETHERSCAN_KEY), + injective: process.env.INJECTIVE_ETHERSCAN_KEY ?? 'blockscout', plume: explorerApiKey(process.env.PLUME_ETHERSCAN_KEY), ethereal: explorerApiKey(process.env.ETHEREAL_ETHERSCAN_KEY), katana: explorerApiKey(process.env.KATANA_ETHERSCAN_KEY), @@ -475,6 +481,14 @@ const config: HardhatUserConfig = { browserURL: 'https://robinhoodchain.blockscout.com', }, }, + { + network: 'injective', + chainId: 1776, + urls: { + apiURL: 'https://blockscout.injective.network/api', + browserURL: 'https://blockscout.injective.network', + }, + }, { network: 'plume', chainId: 98866, diff --git a/scripts/deploy/cctpClaimExecutorConfig.ts b/scripts/deploy/cctpClaimExecutorConfig.ts index 64d989d..6c43a31 100644 --- a/scripts/deploy/cctpClaimExecutorConfig.ts +++ b/scripts/deploy/cctpClaimExecutorConfig.ts @@ -93,6 +93,11 @@ export const CCTP_CLAIM_EXECUTOR_CHAIN_CONFIG: Record> = { SEI_RPC: ['SEI_RPC_URL'], HYPEREVM_RPC: ['HYPEREVM_RPC_URL'], ARC_RPC: ['ARC_RPC_URL'], + INJECTIVE_RPC: ['INJECTIVE_RPC_URL'], PLASMA_RPC: ['PLASMA_RPC_URL'], MONAD_RPC: ['MONAD_RPC_URL'], MEGAETH_RPC: ['MEGAETH_RPC_URL'], diff --git a/scripts/deploy/openRouterBuild.ts b/scripts/deploy/openRouterBuild.ts index 15609dc..bc667ce 100644 --- a/scripts/deploy/openRouterBuild.ts +++ b/scripts/deploy/openRouterBuild.ts @@ -41,6 +41,7 @@ export const OPENROUTER_NETWORK_CHAIN_IDS: Record = { scroll: CHAIN_IDS.SCROLL, hyperEvm: CHAIN_IDS.HYPEREVM, arc: CHAIN_IDS.ARC, + injective: CHAIN_IDS.INJECTIVE, plasma: CHAIN_IDS.PLASMA, tempo: CHAIN_IDS.TEMPO, rise: CHAIN_IDS.RISE, @@ -76,6 +77,7 @@ export const OPENROUTER_DEPLOY_NETWORKS = [ 'scroll', 'hyperEvm', 'arc', + 'injective', 'plasma', 'monad', 'linea', diff --git a/scripts/deploy/verifyAllowanceHolderBatch.ts b/scripts/deploy/verifyAllowanceHolderBatch.ts index d3b019a..4159ffd 100644 --- a/scripts/deploy/verifyAllowanceHolderBatch.ts +++ b/scripts/deploy/verifyAllowanceHolderBatch.ts @@ -60,6 +60,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map([ [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' }], + [1776, { verifier: 'custom', chainArg: '1776', verifierUrl: 'https://blockscout.injective.network/api' }], [9745, { verifier: 'custom', chainArg: '1', verifierUrl: 'https://api.etherscan.io/v2/api?chainid=9745' }], [98866, { verifier: 'sourcify', chainArg: '98866' }], [4217, { verifier: 'sourcify', chainArg: '4217' }], diff --git a/scripts/deploy/verifyCctpClaimExecutorBatch.ts b/scripts/deploy/verifyCctpClaimExecutorBatch.ts index b7ee1fc..e1aa202 100644 --- a/scripts/deploy/verifyCctpClaimExecutorBatch.ts +++ b/scripts/deploy/verifyCctpClaimExecutorBatch.ts @@ -62,6 +62,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map([ [57073, { verifier: 'custom', chainArg: '57073', verifierUrl: 'https://explorer.inkonchain.com/api' }], [59144, { verifier: 'etherscan', chainArg: '59144' }], [5042, { verifier: 'sourcify', chainArg: '5042' }], + [1776, { verifier: 'custom', chainArg: '1776', verifierUrl: 'https://blockscout.injective.network/api' }], ]); function isAlreadyVerified(output: string): boolean { diff --git a/scripts/e2e/config.ts b/scripts/e2e/config.ts index 483bbe4..1467996 100644 --- a/scripts/e2e/config.ts +++ b/scripts/e2e/config.ts @@ -25,6 +25,8 @@ export const CHAIN_IDS = { HYPEREVM: 999, /** Arc mainnet. */ ARC: 5042, + /** Injective EVM mainnet. */ + INJECTIVE: 1776, /** Tempo mainnet — AllowanceHolder only; OpenRouter not deployed (deposit-only chain). */ TEMPO: 4217, /** RISE mainnet. */ @@ -161,6 +163,7 @@ export const OPEN_ROUTER_CHAIN_IDS: readonly number[] = [ CHAIN_IDS.SCROLL, CHAIN_IDS.HYPEREVM, CHAIN_IDS.ARC, + CHAIN_IDS.INJECTIVE, CHAIN_IDS.PLASMA, CHAIN_IDS.MONAD, CHAIN_IDS.LINEA,