From 87980eae006ea55679fda8265549b63f947662e1 Mon Sep 17 00:00:00 2001 From: Prathmesh <201952225@iiitvadodara.ac.in> Date: Tue, 2 Apr 2024 00:20:33 +0530 Subject: [PATCH] feat: fraxtal config --- packages/agents/sdk/src/config.ts | 9 ++++-- .../contracts/deployConfig/shared.ts | 29 +++++++++++++++++++ .../contracts/src/cli/helpers/constants.ts | 1 + .../src/cli/init/config/mainnet/production.ts | 1 + .../src/cli/init/config/mainnet/staging.ts | 1 + packages/deployments/contracts/src/config.ts | 15 ++++++++++ packages/utils/src/helpers/domain.ts | 1 + 7 files changed, 54 insertions(+), 3 deletions(-) diff --git a/packages/agents/sdk/src/config.ts b/packages/agents/sdk/src/config.ts index 0dc9c8a7cf..316e07edcf 100644 --- a/packages/agents/sdk/src/config.ts +++ b/packages/agents/sdk/src/config.ts @@ -198,7 +198,8 @@ export const domainsToChainNames: Record = { "1935897199": "scroll", "1936027759": "sepolia", "1869640549": "optimism-sepolia", - "1633842021": "arbitrum-sepolia" + "1633842021": "arbitrum-sepolia", + "1718772088": "fraxtal", }; // Need to add more domains here. @@ -216,7 +217,8 @@ export const XERC20REGISTRY_DOMAIN_ADDRESS: Record = { "1935897199": "0x397aEEEDd44f40326f9eB583a1DFB8A7A673C40B", // scroll "1936027759": "0x2a3fe9a49fb50536f1ed099192c2ae2404de7bb5", // sepolia "1869640549": "0x18b5b08b10a2e351180f07e31f4fef94d14e28f6", // op-sepolia - "1633842021": "0x343d827d5109e8038bbb71e9ba4f3fd0d546b9ff" // arb-sepolia + "1633842021": "0x343d827d5109e8038bbb71e9ba4f3fd0d546b9ff", // arb-sepolia + "1718772088": "", // fraxtal }; // Need to add more domains here. @@ -234,5 +236,6 @@ export const LOCKBOX_ADAPTER_DOMAIN_ADDRESS: Record = { "1935897199": "", // scroll (TODO) "1936027759": "0xcF021fCFB9bd72E5aA7ab390cFA4fCfDF895c7Cf", // sepolia "1869640549": "0x20b4789065DE09c71848b9A4FcAABB2c10006FA2", // op-sepolia - "1633842021": "0x0f4Fe4903d01E0deb067A7297453fBEFdC36D189" // arb-sepolia + "1633842021": "0x0f4Fe4903d01E0deb067A7297453fBEFdC36D189", // arb-sepolia + "1718772088": "", // fraxtal }; diff --git a/packages/deployments/contracts/deployConfig/shared.ts b/packages/deployments/contracts/deployConfig/shared.ts index 156de0e4c3..e234b92fa0 100644 --- a/packages/deployments/contracts/deployConfig/shared.ts +++ b/packages/deployments/contracts/deployConfig/shared.ts @@ -46,6 +46,7 @@ const BLOCKS_PER_MINUTE: Record = { 84531: 30, // base-goerli 195: 60, // x1-testnet 534351: 14, // scroll sepolia l2 + 252: 30, // Fraxtal }; const THIRTY_MINUTES_IN_BLOCKS = Object.fromEntries( @@ -770,6 +771,34 @@ export const MESSAGING_PROTOCOL_CONFIGS: Record }, }, }, + 252: { + prefix: "Optimism", + networkName: "Fraxtal", + ambs: { + // L1CrossDomainMessenger + // https://docs.frax.com/fraxtal/addresses/fraxtal-contracts#ethereum-mainnet + hub: "0x126bcc31Bc076B3d515f60FBC81FddE0B0d542Ed", + // L2CrossDomainMessenger + spoke: "0x4200000000000000000000000000000000000007", + }, + processGas: DEFAULT_PROCESS_GAS, + reserveGas: DEFAULT_RESERVE_GAS, + delayBlocks: THIRTY_MINUTES_IN_BLOCKS[252], + disputeBlocks: THIRTY_MINUTES_IN_BLOCKS[252], + minDisputeBlocks: THIRTY_MINUTES_IN_BLOCKS[252], + custom: { + hub: { + // OptimismPortal + // https://docs.frax.com/fraxtal/addresses/fraxtal-contracts#ethereum-mainnet + // https://etherscan.io/address/0x36cb65c1967A0Fb0EEE11569C51C2f2aA1Ca6f6D#code + optimismPortal: "0x36cb65c1967A0Fb0EEE11569C51C2f2aA1Ca6f6D", + gasCap: DEFAULT_PROCESS_GAS, + }, + spoke: { + gasCap: DEFAULT_PROCESS_GAS, + }, + }, + }, }, }, }; diff --git a/packages/deployments/contracts/src/cli/helpers/constants.ts b/packages/deployments/contracts/src/cli/helpers/constants.ts index 04a5fc1c20..9428c597b2 100644 --- a/packages/deployments/contracts/src/cli/helpers/constants.ts +++ b/packages/deployments/contracts/src/cli/helpers/constants.ts @@ -15,6 +15,7 @@ export const SUPPORTED_DOMAINS = { 1835101812, // Mantle 1836016741, // Mode 1935897199, // Scroll + 1718772088, // Fraxtal ], testnet: [ 1735353714, // goerli diff --git a/packages/deployments/contracts/src/cli/init/config/mainnet/production.ts b/packages/deployments/contracts/src/cli/init/config/mainnet/production.ts index b530f5c5fd..37406c548e 100644 --- a/packages/deployments/contracts/src/cli/init/config/mainnet/production.ts +++ b/packages/deployments/contracts/src/cli/init/config/mainnet/production.ts @@ -21,6 +21,7 @@ export const MAINNET_PRODUCTION_INIT_CONFIG: InitConfig = { "1835101812", // Mantle "1836016741", // Mode "1935897199", // Scroll + "1718772088", // Fraxtal ], // NOTE: ENSURE LPTOKEN AND BRIDGETOKEN NAMES ARE GENERATED CORRECTLY BASED // ON THE NAME GIVEN IN EACH ASSET ENTRY diff --git a/packages/deployments/contracts/src/cli/init/config/mainnet/staging.ts b/packages/deployments/contracts/src/cli/init/config/mainnet/staging.ts index f3a0583951..f429b0b4a3 100644 --- a/packages/deployments/contracts/src/cli/init/config/mainnet/staging.ts +++ b/packages/deployments/contracts/src/cli/init/config/mainnet/staging.ts @@ -19,6 +19,7 @@ export const MAINNET_STAGING_INIT_CONFIG: InitConfig = { "1835101812", // Mantle "1836016741", // Mode "1935897199", // Scroll + "1718772088", // Fraxtal ], // NOTE: ENSURE LPTOKEN AND BRIDGETOKEN NAMES ARE GENERATED CORRECTLY BASED // ON THE NAME GIVEN IN EACH ASSET ENTRY diff --git a/packages/deployments/contracts/src/config.ts b/packages/deployments/contracts/src/config.ts index d175771245..db72e68b95 100644 --- a/packages/deployments/contracts/src/config.ts +++ b/packages/deployments/contracts/src/config.ts @@ -474,4 +474,19 @@ export const hardhatNetworks = { }, }, }, + fraxtal: { + accounts: { mnemonic: mainnetMnemonic ?? mnemonic }, + chainId: 252, + url: urlOverride || process.env.FRAXTAL_PROVIDER_URL || "https://rpc.frax.com", + companionNetworks: { + hub: "mainnet", + }, + gasPrice: utils.parseUnits("1.5", "gwei").toNumber(), + verify: { + etherscan: { + apiKey: process.env.FRAXTAL_EXPLORER_API_KEY!, + apiUrl: "https://fraxscan.com/", + }, + }, + }, }; diff --git a/packages/utils/src/helpers/domain.ts b/packages/utils/src/helpers/domain.ts index e7e6bec46f..3db8e22378 100644 --- a/packages/utils/src/helpers/domain.ts +++ b/packages/utils/src/helpers/domain.ts @@ -30,6 +30,7 @@ const mainnetChainIdToDomainMapping: Map = new Map([ [5000, 0x6d616e74], // Mantle (mantle interpreted as int) 1835101812 [34443, 0x6d6f6465], // Mode (mode interpreted as int) 1836016741 [534352, 0x7363726f], // Scroll (scroll interpreted as int) 1935897199 + [252, 0x66726178], // Fraxtal (fraxtal interpreted as int) 1718772088 ]); const testnetChainIdToDomainMapping: Map = new Map([