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
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -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=
Expand Down Expand Up @@ -87,3 +88,4 @@ HYPEREVM_ETHERSCAN_KEY=
PLASMA_ETHERSCAN_KEY=
MONAD_ETHERSCAN_KEY=
TEMPO_ETHERSCAN_KEY=
ROBINHOOD_ETHERSCAN_KEY=
4 changes: 2 additions & 2 deletions ALLOWANCE_HOLDER_DEPLOYMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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):

Expand Down
1 change: 1 addition & 0 deletions deployments.csv
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions deployments/prod/addresses/robinhood.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"RFQVaultExecutor": "0x97caCa78AC2a94c67643d07843F85AFAa44a3ea5"
}
14 changes: 14 additions & 0 deletions hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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),
Expand Down Expand Up @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions protocol.mk
Original file line number Diff line number Diff line change
@@ -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
Expand Down
5 changes: 4 additions & 1 deletion scripts/deploy/deployAcrossERC20AmountManipulator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)');
}
}

Expand Down
6 changes: 4 additions & 2 deletions scripts/deploy/networks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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' },
Expand All @@ -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' },
Expand Down Expand Up @@ -70,6 +71,7 @@ const RPC_ENV_ALIASES: Partial<Record<string, readonly string[]>> = {
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 {
Expand Down
2 changes: 2 additions & 0 deletions scripts/deploy/openRouterBuild.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export const OPENROUTER_NETWORK_CHAIN_IDS: Record<string, number> = {
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,
Expand Down Expand Up @@ -82,6 +83,7 @@ export const OPENROUTER_DEPLOY_NETWORKS = [
'katana',
'mode',
'megaeth',
'robinhood',
'plume',
'blast',
'soneium',
Expand Down
1 change: 1 addition & 0 deletions scripts/deploy/verifyAllowanceHolderBatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map<number, ExplorerConfig>([
[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' }],
Expand Down
1 change: 1 addition & 0 deletions scripts/deploy/verifyCctpClaimExecutorBatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map<number, ExplorerConfig>([
[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' }],
Expand Down
1 change: 1 addition & 0 deletions scripts/deploy/verifyRFQVaultExecutorBatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ const EXPLORERS_BY_CHAIN_ID = new Map<number, ExplorerConfig>([
[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' }],
Expand Down
5 changes: 5 additions & 0 deletions scripts/e2e/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -62,6 +64,7 @@ export const BLOCK_EXPLORER_TX_PREFIX: Record<number, string> = {
[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/',
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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',
Expand Down