+
{children}
diff --git a/packages/synapse-interface/components/ui/NewTag.tsx b/packages/synapse-interface/components/ui/NewTag.tsx
new file mode 100644
index 0000000000..3509c46a8d
--- /dev/null
+++ b/packages/synapse-interface/components/ui/NewTag.tsx
@@ -0,0 +1,11 @@
+import { joinClassNames } from '@/utils/joinClassNames'
+
+export const NewTag = () => {
+ const className = joinClassNames({
+ space: 'px-2 py-[2px] rounded-md',
+ border: 'border border-fuchsia-500',
+ background: 'bg-gradient-to-r from-fuchsia-950 to-purple-900',
+ font: 'text-sm ',
+ })
+ return
New!
+}
diff --git a/packages/synapse-interface/components/ui/SelectSpecificNetworkButton.tsx b/packages/synapse-interface/components/ui/SelectSpecificNetworkButton.tsx
index 4fa1ddb903..79d5526cbe 100644
--- a/packages/synapse-interface/components/ui/SelectSpecificNetworkButton.tsx
+++ b/packages/synapse-interface/components/ui/SelectSpecificNetworkButton.tsx
@@ -8,6 +8,7 @@ import {
sortTokensByBalanceDescending,
} from '@/utils/actions/fetchPortfolioBalances'
import { joinClassNames } from '@/utils/joinClassNames'
+import { NewTag } from '@/components/ui/NewTag'
export const SelectSpecificNetworkButton = ({
itemChainId,
@@ -80,7 +81,10 @@ function ButtonContent({
/>
{chain.name}
- {isOrigin &&
}
+ {chain.isNew &&
}
+ {isOrigin && balanceTokens?.length > 0 && (
+
+ )}
)
)
diff --git a/packages/synapse-interface/constants/bridge.ts b/packages/synapse-interface/constants/bridge.ts
index f263f93a6c..7ab02c2ecc 100644
--- a/packages/synapse-interface/constants/bridge.ts
+++ b/packages/synapse-interface/constants/bridge.ts
@@ -42,32 +42,6 @@ export const BRIDGE_CONFIG_ADDRESSES = {
[CHAINS.POLYGON.id]: '0xd69229f223a8fc84998e1361ae7b4ff724cf4a49', // TESTING ADDRESS
}
-/**
- * number of required confirmations from bridge
- */
-export const BRIDGE_REQUIRED_CONFIRMATIONS = {
- [CHAINS.ETH.id]: 33,
- [CHAINS.BNB.id]: 33,
- [CHAINS.POLYGON.id]: 128,
- [CHAINS.FANTOM.id]: 80,
- [CHAINS.BOBA.id]: 33,
- [CHAINS.OPTIMISM.id]: 750,
- [CHAINS.MOONBEAM.id]: 33,
- [CHAINS.MOONRIVER.id]: 33,
- [CHAINS.ARBITRUM.id]: 200,
- [CHAINS.AVALANCHE.id]: 80,
- [CHAINS.DFK.id]: 33,
- [CHAINS.HARMONY.id]: 33,
- [CHAINS.AURORA.id]: 33,
- [CHAINS.CRONOS.id]: 33,
- [CHAINS.METIS.id]: 33,
- [CHAINS.DOGE.id]: 33,
- [CHAINS.CANTO.id]: 20,
- [CHAINS.BASE.id]: 750,
- [CHAINS.KLAYTN.id]: 20,
- [CHAINS.BLAST.id]: 750,
-}
-
export const DEFAULT_FROM_TOKEN_SYMBOL = 'USDC'
export const DEFAULT_TO_TOKEN_SYMBOL = 'USDC'
export const DEFAULT_FROM_TOKEN = USDC
diff --git a/packages/synapse-interface/constants/bridgeMap.ts b/packages/synapse-interface/constants/bridgeMap.ts
index 2f002e5c53..52bafe0416 100644
--- a/packages/synapse-interface/constants/bridgeMap.ts
+++ b/packages/synapse-interface/constants/bridgeMap.ts
@@ -148,8 +148,16 @@ export const BRIDGE_MAP = {
'0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48': {
decimals: 6,
symbol: 'USDC',
- origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'],
- destination: ['CCTP.USDC', 'USDC', 'nUSD'],
+ origin: [
+ 'CCTP.USDC',
+ 'DAI',
+ 'USDC',
+ 'USDT',
+ 'nUSD',
+ 'synFRAX',
+ 'RFQ.USDC',
+ ],
+ destination: ['CCTP.USDC', 'USDC', 'nUSD', 'RFQ.USDC'],
swappable: [
'0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F',
'0x5f98805A4E8be255a32880FDeC7F6728C6568bA0',
@@ -191,8 +199,8 @@ export const BRIDGE_MAP = {
'0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': {
decimals: 18,
symbol: 'ETH',
- origin: ['nETH'],
- destination: ['nETH'],
+ origin: ['nETH', 'RFQ.ETH'],
+ destination: ['nETH', 'RFQ.ETH'],
swappable: [],
},
'0xb753428af26E81097e7fD17f40c88aaA3E04902c': {
@@ -244,8 +252,8 @@ export const BRIDGE_MAP = {
'0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85': {
decimals: 6,
symbol: 'USDC',
- origin: ['CCTP.USDC', 'nUSD'],
- destination: ['CCTP.USDC'],
+ origin: ['CCTP.USDC', 'nUSD', 'RFQ.USDC'],
+ destination: ['CCTP.USDC', 'RFQ.USDC'],
swappable: [
'0x67C10C397dD0Ba417329543c1a40eb48AAa7cd00',
'0x7F5c764cBc14f9669B88837ca1490cCa17c31607',
@@ -377,8 +385,8 @@ export const BRIDGE_MAP = {
'0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': {
decimals: 18,
symbol: 'ETH',
- origin: ['nETH'],
- destination: ['nETH'],
+ origin: ['nETH', 'RFQ.ETH'],
+ destination: ['nETH', 'RFQ.ETH'],
swappable: [
'0x121ab82b49B2BC4c7901CA46B8277962b4350204',
'0x809DC529f07651bD43A172e8dB6f4a7a0d771036',
@@ -1231,8 +1239,8 @@ export const BRIDGE_MAP = {
'0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913': {
decimals: 6,
symbol: 'USDC',
- origin: ['CCTP.USDC'],
- destination: ['CCTP.USDC'],
+ origin: ['CCTP.USDC', 'RFQ.USDC'],
+ destination: ['CCTP.USDC', 'RFQ.USDC'],
swappable: [
'0x417Ac0e078398C154EdFadD9Ef675d30Be60Af93',
'0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb',
@@ -1262,8 +1270,8 @@ export const BRIDGE_MAP = {
'0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': {
decimals: 18,
symbol: 'ETH',
- origin: ['nETH'],
- destination: ['nETH'],
+ origin: ['nETH', 'RFQ.ETH'],
+ destination: ['nETH', 'RFQ.ETH'],
swappable: [
'0x4200000000000000000000000000000000000006',
'0xb554A55358fF0382Fb21F0a478C3546d1106Be8c',
@@ -1418,8 +1426,8 @@ export const BRIDGE_MAP = {
'0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': {
decimals: 18,
symbol: 'ETH',
- origin: ['nETH'],
- destination: ['nETH'],
+ origin: ['nETH', 'RFQ.ETH'],
+ destination: ['nETH', 'RFQ.ETH'],
swappable: [
'0x3ea9B0ab55F34Fb188824Ee288CeaEfC63cf908e',
'0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
@@ -1461,8 +1469,8 @@ export const BRIDGE_MAP = {
'0xaf88d065e77c8cC2239327C5EDb3A432268e5831': {
decimals: 6,
symbol: 'USDC',
- origin: ['CCTP.USDC', 'nUSD'],
- destination: ['CCTP.USDC'],
+ origin: ['CCTP.USDC', 'nUSD', 'RFQ.USDC'],
+ destination: ['CCTP.USDC', 'RFQ.USDC'],
swappable: [
'0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F',
'0x2913E812Cf0dcCA30FB28E6Cac3d2DCFF4497688',
@@ -1782,6 +1790,22 @@ export const BRIDGE_MAP = {
],
},
},
+ '534352': {
+ '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4': {
+ origin: ['RFQ.USDC'],
+ destination: ['RFQ.USDC'],
+ swappable: [],
+ symbol: 'USDC',
+ decimals: 6,
+ },
+ '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': {
+ origin: ['RFQ.ETH'],
+ destination: ['RFQ.ETH'],
+ swappable: [],
+ symbol: 'ETH',
+ decimals: 18,
+ },
+ },
'1313161554': {
'0x07379565cD8B0CaE7c60Dc78e7f601b34AF2A21c': {
decimals: 18,
diff --git a/packages/synapse-interface/constants/chains/index.tsx b/packages/synapse-interface/constants/chains/index.tsx
index 3f830c9d7b..4799931e80 100644
--- a/packages/synapse-interface/constants/chains/index.tsx
+++ b/packages/synapse-interface/constants/chains/index.tsx
@@ -11,14 +11,6 @@ export const CHAINS_ARR = Object.values(all).sort(
(a, b) => b.priorityRank - a.priorityRank
)
-const getChainEnumById = () => {
- const outObj: Record
= {}
- CHAINS_ARR.map((chain) => {
- outObj[chain.id] = chain.codeName
- })
- return outObj
-}
-
const getids = () => {
const outObj = {}
CHAINS_ARR.map((chain) => {
@@ -34,7 +26,6 @@ const getChainsByID = (): ChainsByChainID => {
return outObj
}
-export const CHAIN_ENUM_BY_ID = getChainEnumById()
export const CHAIN_IDS = getids() // used to be ids
export const CHAINS_BY_ID = getChainsByID()
export const ORDERED_CHAINS_BY_ID = CHAINS_ARR.map((chain) => String(chain.id))
@@ -61,6 +52,7 @@ export const ChainId = {
ARBITRUM: 42161,
BASE: 8453,
BLAST: 81457,
+ SCROLL: 534352,
AVALANCHE: 43114,
DFK: 53935,
AURORA: 1313161554,
diff --git a/packages/synapse-interface/constants/chains/master.tsx b/packages/synapse-interface/constants/chains/master.tsx
index b93fd08ffe..4a6daea35e 100644
--- a/packages/synapse-interface/constants/chains/master.tsx
+++ b/packages/synapse-interface/constants/chains/master.tsx
@@ -18,6 +18,7 @@ import moonbeamImg from '@assets/chains/moonbeam.svg'
import moonriverImg from '@assets/chains/moonriver.svg'
import optimismImg from '@assets/chains/optimism.svg'
import polygonImg from '@assets/chains/polygon.svg'
+import scrollImg from '@assets/chains/scroll.svg'
import ethExplorerImg from '@assets/explorer/etherscan.svg'
import arbitrumExplorerImg from '@assets/explorer/arbiscan.svg'
@@ -35,7 +36,6 @@ export const ETH: Chain = {
id: 1,
chainSymbol: 'ETH',
name: 'Ethereum',
- codeName: 'Ethereum',
chainImg: ethImg,
layer: 1,
rpcUrls: {
@@ -64,7 +64,6 @@ export const ARBITRUM: Chain = {
name: 'Arbitrum',
chainImg: arbitrumImg,
layer: 2,
- codeName: 'arbitrum',
blockTime: 300,
rpcUrls: {
primary:
@@ -92,7 +91,6 @@ export const BNB: Chain = {
chainImg: bscImg,
altName: 'BNB',
layer: 1,
- codeName: 'bsc',
blockTime: 3000,
rpcUrls: {
primary: 'https://bsc-dataseed1.ninicoin.io/',
@@ -118,7 +116,6 @@ export const AVALANCHE: Chain = {
name: 'Avalanche',
chainImg: avalancheImg,
layer: 1,
- codeName: 'avalanche',
blockTime: 2000,
rpcUrls: {
primary: 'https://api.avax.network/ext/bc/C/rpc',
@@ -144,7 +141,6 @@ export const CANTO: Chain = {
name: 'Canto',
chainImg: cantoImg,
layer: 1,
- codeName: 'canto',
blockTime: 6000,
rpcUrls: {
primary: 'https://mainnode.plexnode.org:8545',
@@ -170,7 +166,6 @@ export const OPTIMISM: Chain = {
name: 'Optimism',
chainImg: optimismImg,
layer: 2,
- codeName: 'optimism',
blockTime: 2000,
rpcUrls: {
primary:
@@ -197,7 +192,6 @@ export const POLYGON: Chain = {
name: 'Polygon',
chainImg: polygonImg,
layer: 2,
- codeName: 'polygon',
blockTime: 2000,
rpcUrls: {
primary:
@@ -224,7 +218,6 @@ export const DFK: Chain = {
name: 'DFK Chain',
chainImg: dfkImg,
layer: 1,
- codeName: 'dfk',
blockTime: 2000,
rpcUrls: {
primary: 'https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc',
@@ -250,7 +243,6 @@ export const KLAYTN: Chain = {
name: 'Klaytn',
chainImg: klaytnImg,
layer: 1,
- codeName: 'klaytn',
blockTime: 1000,
rpcUrls: {
primary: 'https://klaytn.blockpi.network/v1/rpc/public',
@@ -276,7 +268,6 @@ export const FANTOM: Chain = {
name: 'Fantom',
chainImg: fantomImg,
layer: 1,
- codeName: 'fantom',
blockTime: 1000,
rpcUrls: {
primary: 'https://rpc.ftm.tools',
@@ -302,7 +293,6 @@ export const CRONOS: Chain = {
name: 'Cronos',
chainImg: cronosImg,
layer: 1,
- codeName: 'cronos',
blockTime: 6000,
rpcUrls: {
primary: 'https://evm-cronos.crypto.org',
@@ -328,7 +318,6 @@ export const BOBA: Chain = {
name: 'Boba Chain',
chainImg: bobaImg,
layer: 2,
- codeName: 'boba',
blockTime: 1000,
rpcUrls: {
primary: 'https://mainnet.boba.network',
@@ -354,7 +343,6 @@ export const METIS: Chain = {
name: 'Metis',
chainImg: metisImg,
layer: 2,
- codeName: 'metis',
blockTime: 4000,
rpcUrls: {
primary: 'https://andromeda.metis.io/?owner=1088',
@@ -380,7 +368,6 @@ export const AURORA: Chain = {
name: 'Aurora',
chainImg: auroraImg,
layer: 1,
- codeName: 'aurora',
blockTime: 1000,
rpcUrls: {
primary: 'https://mainnet.aurora.dev',
@@ -406,7 +393,6 @@ export const HARMONY: Chain = {
name: 'Harmony',
chainImg: harmonyImg,
layer: 1,
- codeName: 'harmony',
blockTime: 2000,
rpcUrls: {
primary: 'https://api.harmony.one',
@@ -432,7 +418,6 @@ export const MOONBEAM: Chain = {
name: 'Moonbeam',
chainImg: moonbeamImg,
layer: 1,
- codeName: 'moonbeam',
blockTime: 12000,
rpcUrls: {
primary: 'https://rpc.api.moonbeam.network',
@@ -458,7 +443,6 @@ export const MOONRIVER: Chain = {
name: 'Moonriver',
chainImg: moonriverImg,
layer: 1,
- codeName: 'moonriver',
blockTime: 12000,
rpcUrls: {
primary: 'https://rpc.api.moonriver.moonbeam.network',
@@ -484,7 +468,6 @@ export const DOGE: Chain = {
name: 'Dogechain',
chainImg: dogechainImg,
layer: 1,
- codeName: 'dogechain',
blockTime: 2000,
rpcUrls: {
primary: 'https://rpc.dogechain.dog',
@@ -508,7 +491,6 @@ export const BASE: Chain = {
id: 8453,
chainSymbol: 'BASE',
name: 'Base',
- codeName: 'base',
chainImg: baseImg,
layer: 2,
rpcUrls: {
@@ -535,7 +517,6 @@ export const BLAST: Chain = {
id: 81457,
chainSymbol: 'BLAST',
name: 'Blast',
- codeName: 'blast',
chainImg: blastImg,
layer: 2,
rpcUrls: {
@@ -556,3 +537,29 @@ export const BLAST: Chain = {
},
color: 'yellow',
}
+
+export const SCROLL: Chain = {
+ priorityRank: 90,
+ id: 534352,
+ chainSymbol: 'SCROLL',
+ name: 'Scroll',
+ chainImg: scrollImg,
+ layer: 2,
+ rpcUrls: {
+ primary: 'https://rpc.scroll.io/',
+ fallback: 'https://scroll.blockpi.network/v1/rpc/public',
+ },
+ explorerUrl: 'https://scrollscan.com',
+ explorerName: 'Scrollscan',
+ explorerImg: scrollImg,
+ blockTime: 3000,
+ nativeCurrency: {
+ name: 'Ethereum',
+ symbol: 'ETH',
+ decimals: 18,
+ address: zeroAddress,
+ icon: scrollImg,
+ },
+ color: 'orange',
+ isNew: true,
+}
diff --git a/packages/synapse-interface/constants/chains/supportedChains.ts b/packages/synapse-interface/constants/chains/supportedChains.ts
index f03b2f8df5..d71da31902 100644
--- a/packages/synapse-interface/constants/chains/supportedChains.ts
+++ b/packages/synapse-interface/constants/chains/supportedChains.ts
@@ -17,6 +17,7 @@ import {
moonriver,
optimism,
polygon,
+ scroll,
} from '@wagmi/core/chains'
import { dfk, dogechain } from '@/constants/chains/extraWagmiChains'
@@ -25,24 +26,25 @@ import { CHAINS_BY_ID } from '@/constants/chains'
export const supportedChains = [
mainnet,
arbitrum,
- aurora,
avalanche,
base,
+ optimism,
+ scroll,
blast,
+ metis,
+ dfk,
bsc,
+ polygon,
+ aurora,
canto,
+ klaytn,
fantom,
- harmonyOne,
- metis,
moonbeam,
moonriver,
- optimism,
- polygon,
- klaytn,
cronos,
- dfk,
dogechain,
boba,
+ harmonyOne,
].map((chain) => {
return {
...chain,
diff --git a/packages/synapse-interface/constants/swap.ts b/packages/synapse-interface/constants/swap.ts
index ec1400f37e..6591551e4f 100644
--- a/packages/synapse-interface/constants/swap.ts
+++ b/packages/synapse-interface/constants/swap.ts
@@ -23,28 +23,6 @@ export const EMPTY_SWAP_QUOTE_ZERO: SwapQuote = {
delta: 0n,
quote: null,
}
-/**
- * number of required confirmations from bridge
- */
-export const BRIDGE_REQUIRED_CONFIRMATIONS = {
- [CHAINS.ETH.id]: 33,
- [CHAINS.BNB.id]: 14,
- [CHAINS.POLYGON.id]: 128,
- [CHAINS.FANTOM.id]: 5,
- [CHAINS.BOBA.id]: 1, // rewrite
- [CHAINS.OPTIMISM.id]: 1, // rewrite
- [CHAINS.MOONBEAM.id]: 21,
- [CHAINS.MOONRIVER.id]: 21, // 5,
- [CHAINS.ARBITRUM.id]: 40,
- [CHAINS.AVALANCHE.id]: 5,
- [CHAINS.DFK.id]: 6,
- [CHAINS.HARMONY.id]: 1, // rewrite
- [CHAINS.AURORA.id]: 5,
- [CHAINS.CRONOS.id]: 6,
- [CHAINS.METIS.id]: 6,
- [CHAINS.DOGE.id]: 20,
- [CHAINS.CANTO.id]: 20,
-}
export const DEFAULT_FROM_TOKEN_SYMBOL = 'USDC'
export const DEFAULT_TO_TOKEN_SYMBOL = 'DAI'
diff --git a/packages/synapse-interface/constants/tokens/bridgeable.ts b/packages/synapse-interface/constants/tokens/bridgeable.ts
index 7738562aca..0434a35799 100644
--- a/packages/synapse-interface/constants/tokens/bridgeable.ts
+++ b/packages/synapse-interface/constants/tokens/bridgeable.ts
@@ -410,6 +410,7 @@ export const USDC = new Token({
[CHAINS.AVALANCHE.id]: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
[CHAINS.DFK.id]: '0x3AD9DFE640E1A9Cc1D9B0948620820D975c3803a',
[CHAINS.BASE.id]: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
+ [CHAINS.SCROLL.id]: '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4',
},
decimals: {
[CHAINS.ETH.id]: 6,
@@ -425,6 +426,7 @@ export const USDC = new Token({
[CHAINS.AVALANCHE.id]: 6,
[CHAINS.DFK.id]: 18,
[CHAINS.BASE.id]: 6,
+ [CHAINS.SCROLL.id]: 6,
},
symbol: 'USDC',
name: 'USD Coin',
@@ -700,6 +702,7 @@ export const ETH = new Token({
[CHAINS.ARBITRUM.id]: zeroAddress,
[CHAINS.DFK.id]: '0xfBDF0E31808d0aa7b9509AA6aBC9754E48C58852',
[CHAINS.BLAST.id]: zeroAddress,
+ [CHAINS.SCROLL.id]: zeroAddress,
},
decimals: 18,
symbol: 'ETH',
diff --git a/packages/synapse-interface/scripts/data/providers.json b/packages/synapse-interface/scripts/data/providers.json
index 2105ded426..d5d4b120ec 100644
--- a/packages/synapse-interface/scripts/data/providers.json
+++ b/packages/synapse-interface/scripts/data/providers.json
@@ -17,6 +17,7 @@
"42161": "https://arbitrum-one.publicnode.com",
"43114": "https://api.avax.network/ext/bc/C/rpc",
"53935": "https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc",
+ "534352": "https://rpc.scroll.io",
"1313161554": "https://mainnet.aurora.dev",
"1666600000": "https://api.s0.t.hmny.io"
}
diff --git a/packages/synapse-interface/scripts/data/rfqResponse.json b/packages/synapse-interface/scripts/data/rfqResponse.json
new file mode 100644
index 0000000000..103e406108
--- /dev/null
+++ b/packages/synapse-interface/scripts/data/rfqResponse.json
@@ -0,0 +1,678 @@
+[
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_amount": "774262502365",
+ "max_origin_amount": "774417385843",
+ "fixed_fee": "8054808",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "8554665",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_amount": "487144501894",
+ "max_origin_amount": "487241950285",
+ "fixed_fee": "8070710",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "8385119",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_amount": "347116182337",
+ "max_origin_amount": "347185619461",
+ "fixed_fee": "8047222",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "8547762",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "59945200251111734576",
+ "max_origin_amount": "59957191689449624500",
+ "fixed_fee": "2761920526687600",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "2933316889676025",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "183755522999099641851",
+ "max_origin_amount": "183792281455390719992",
+ "fixed_fee": "2767373042987600",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "2875180960595575",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "70001868021959841948",
+ "max_origin_amount": "70015871196199081763",
+ "fixed_fee": "2759319545425500",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "2867463149077875",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_amount": "822633257106",
+ "max_origin_amount": "822797816670",
+ "fixed_fee": "6826600",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0x0b2c639c533813f4aa9d7837caf62653d097ff85",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "7249811",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_amount": "487144501894",
+ "max_origin_amount": "487241950285",
+ "fixed_fee": "84574",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_amount": "65387254625",
+ "max_origin_amount": "65400334692",
+ "fixed_fee": "85666",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_amount": "347116182337",
+ "max_origin_amount": "347185619461",
+ "fixed_fee": "61086",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0x0b2c639c533813f4aa9d7837caf62653d097ff85",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_amount": "31460047113",
+ "max_origin_amount": "31466340382",
+ "fixed_fee": "63158",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "69071705428131773329",
+ "max_origin_amount": "69085522532638300988",
+ "fixed_fee": "2340778902187700",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "2485894263539550",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "183755522999099641851",
+ "max_origin_amount": "183792281455390719992",
+ "fixed_fee": "29000142775300",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "9628405038969472756",
+ "max_origin_amount": "9630331105190510858",
+ "fixed_fee": "29374869449225",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "70001868021959841948",
+ "max_origin_amount": "70015871196199081763",
+ "fixed_fee": "20946645213200",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 10,
+ "origin_token_addr": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "2115551460015393249",
+ "max_origin_amount": "2115974654946382526",
+ "fixed_fee": "21657057931525",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_amount": "822633257106",
+ "max_origin_amount": "822797816670",
+ "fixed_fee": "6845393",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "7268186",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_amount": "774262502365",
+ "max_origin_amount": "774417385843",
+ "fixed_fee": "87465",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_amount": "47529681404",
+ "max_origin_amount": "47539189242",
+ "fixed_fee": "88536",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_amount": "347116182337",
+ "max_origin_amount": "347185619461",
+ "fixed_fee": "79879",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_amount": "31460047113",
+ "max_origin_amount": "31466340382",
+ "fixed_fee": "81633",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "69071705428131773329",
+ "max_origin_amount": "69085522532638300988",
+ "fixed_fee": "2347222785087700",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "2492194874252050",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "59945200251111734576",
+ "max_origin_amount": "59957191689449624500",
+ "fixed_fee": "29991509375300",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "15925536277659377442",
+ "max_origin_amount": "15928722022063790200",
+ "fixed_fee": "30358839328075",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "70001868021959841948",
+ "max_origin_amount": "70015871196199081763",
+ "fixed_fee": "27390528113200",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 8453,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 42161,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "2115551460015393249",
+ "max_origin_amount": "2115974654946382526",
+ "fixed_fee": "27957668644025",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:27Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_amount": "822633257106",
+ "max_origin_amount": "822797816670",
+ "fixed_fee": "6822741",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "7247076",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:28Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_amount": "774262502365",
+ "max_origin_amount": "774417385843",
+ "fixed_fee": "64813",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_amount": "47529681404",
+ "max_origin_amount": "47539189242",
+ "fixed_fee": "67426",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_amount": "487144501894",
+ "max_origin_amount": "487241950285",
+ "fixed_fee": "80715",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
+ "dest_amount": "65387254625",
+ "max_origin_amount": "65400334692",
+ "fixed_fee": "82747",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:25Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "69071705428131773329",
+ "max_origin_amount": "69085522532638300988",
+ "fixed_fee": "2339455783476500",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "2484956594352875",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "59945200251111734576",
+ "max_origin_amount": "59957191689449624500",
+ "fixed_fee": "22224507764100",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "15925536277659377442",
+ "max_origin_amount": "15928722022063790200",
+ "fixed_fee": "23120559428900",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "183755522999099641851",
+ "max_origin_amount": "183792281455390719992",
+ "fixed_fee": "27677024064100",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 42161,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 8453,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "9628405038969472756",
+ "max_origin_amount": "9630331105190510858",
+ "fixed_fee": "28373737929200",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 534352,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "9628405038969472756",
+ "max_origin_amount": "9630331105190510858",
+ "fixed_fee": "28373737929200",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 534352,
+ "origin_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_chain_id": 1,
+ "dest_token_addr": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
+ "dest_amount": "9628405038969472756",
+ "max_origin_amount": "9630331105190510858",
+ "fixed_fee": "28373737929200",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:26Z"
+ },
+ {
+ "origin_chain_id": 1,
+ "origin_token_addr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "dest_chain_id": 534352,
+ "dest_token_addr": "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
+ "dest_amount": "774262502365",
+ "max_origin_amount": "774417385843",
+ "fixed_fee": "8054808",
+ "relayer_addr": "0xDc927Bd56CF9DfC2e3779C7E3D6d28dA1C219969",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:30Z"
+ },
+ {
+ "origin_chain_id": 534352,
+ "origin_token_addr": "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
+ "dest_chain_id": 10,
+ "dest_token_addr": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
+ "dest_amount": "0",
+ "max_origin_amount": "0",
+ "fixed_fee": "8554665",
+ "relayer_addr": "0xDD50676F81f607fD8bA7Ed3187DdF172DB174CD3",
+ "origin_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "dest_fast_bridge_address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E",
+ "updated_at": "2024-04-30T20:09:29Z"
+ }
+]
diff --git a/packages/synapse-interface/scripts/generateMaps.js b/packages/synapse-interface/scripts/generateMaps.js
index d984d3bbaf..e98cb0cea4 100644
--- a/packages/synapse-interface/scripts/generateMaps.js
+++ b/packages/synapse-interface/scripts/generateMaps.js
@@ -1,8 +1,7 @@
-const fs = require('fs')
-const { execSync } = require('child_process')
-
const { ethers } = require('ethers')
+const { prettyPrintTS } = require('./utils/prettyPrintTs')
+const { fetchRfqData } = require('./utils/fetchRfqData')
// Provider URLs
const providers = require('./data/providers.json')
// List of ignored bridge symbols
@@ -16,6 +15,7 @@ const SynapseCCTPRouterABI = require('./abi/SynapseCCTPRouter.json')
const SwapQuoterABI = require('./abi/SwapQuoter.json')
const ERC20ABI = require('./abi/IERC20Metadata.json')
const DefaultPoolABI = require('./abi/IDefaultPool.json')
+// const rfqResponse = require('./data/rfqResponse.json')
// ETH address
const ETH = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'
@@ -30,13 +30,22 @@ const SynapseRouterAddress = '0x7e7a0e201fd38d3adaa9523da6c109a07118c96a'
const SynapseCCTPRouterAddress = '0xd5a597d6e7ddf373a92C8f477DAAA673b0902F48'
const SynapseCCTPAddress = '0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E'
+// Chain IDs where SynapseBridge is allowed
+const allowedChainIdsForSynapseBridge = [
+ 1, 10, 25, 56, 137, 250, 288, 1088, 1284, 1285, 2000, 7700, 8217, 8453, 81457,
+ 42161, 43114, 53935, 1313161554, 1666600000,
+]
+
// Chain IDs where SynapseCCTPRouter is allowed
const allowedChainIdsForSynapseCCTPRouter = [1, 10, 137, 8453, 42161, 43114]
+// Chain IDs where RFQ is allowed
+const allowedChainIdsForRfq = [1, 10, 8453, 42161, 534352]
+
// Get SynapseRouter contract instances for each chain
const SynapseRouters = {}
const SwapQuoters = {}
-Object.keys(providers).forEach((chainId) => {
+allowedChainIdsForSynapseBridge.forEach((chainId) => {
SynapseRouters[chainId] = new ethers.Contract(
SynapseRouterAddress,
SynapseRouterABI,
@@ -69,6 +78,13 @@ allowedChainIdsForSynapseCCTPRouter.forEach((chainId) => {
// Function to get list of tokens that could be swapped
// into SynapseBridge tokens for a given chain.
const getBridgeOriginMap = async (chainId) => {
+ if (!SwapQuoters[chainId]) {
+ return {
+ originMap: {},
+ poolSets: [],
+ }
+ }
+
// Get WETH address
const weth = await SwapQuoters[chainId].weth()
// Get list of supported tokens
@@ -254,11 +270,12 @@ const sortMapByKeys = (map) => {
})
return sortedMap
}
-
const printMaps = async () => {
const bridgeMap = {}
const bridgeSymbolsMap = {}
console.log('Starting on chains: ', Object.keys(providers))
+
+ const rfqResponse = await fetchRfqData()
await Promise.all(
Object.keys(providers).map(async (chainId) => {
// Get map from token to set of bridge token symbols
@@ -280,11 +297,69 @@ const printMaps = async () => {
}
})
)
+
+ if (allowedChainIdsForRfq.includes(Number(chainId))) {
+ await Promise.all(
+ rfqResponse.map(async (quote) => {
+ const {
+ origin_chain_id,
+ origin_token_addr,
+ dest_chain_id,
+ dest_token_addr,
+ } = quote
+
+ const normalizedOriginAddress =
+ ethers.utils.getAddress(origin_token_addr)
+
+ const normalizedDestAddress =
+ ethers.utils.getAddress(dest_token_addr)
+
+ if (origin_chain_id === Number(chainId)) {
+ const originTokenSymbol = await getTokenSymbol(
+ origin_chain_id,
+ normalizedOriginAddress
+ )
+
+ const rfqOriginSymbol = getRFQSymbol(originTokenSymbol)
+
+ if (!tokens[normalizedOriginAddress]) {
+ tokens[normalizedOriginAddress] = {
+ origin: [],
+ destination: [],
+ swappable: [], // poolSets are handled during SynapseBridge portion
+ symbol: null,
+ decimals: null,
+ }
+ }
+
+ if (
+ normalizedOriginAddress in tokens &&
+ !tokens[normalizedOriginAddress].origin.includes(
+ rfqOriginSymbol
+ )
+ ) {
+ tokens[normalizedOriginAddress].origin.push(rfqOriginSymbol)
+ tokens[normalizedOriginAddress].symbol = originTokenSymbol
+ tokens[normalizedOriginAddress].decimals =
+ await getTokenDecimals(
+ origin_chain_id,
+ normalizedOriginAddress
+ )
+ tokens[normalizedOriginAddress].destination.push(
+ rfqOriginSymbol
+ )
+ }
+ }
+ })
+ )
+ }
+
bridgeMap[chainId] = sortMapByKeys(tokens)
bridgeSymbolsMap[chainId] = sortMapByKeys(extractBridgeSymbolsMap(tokens))
console.log('Finished chain: ', chainId)
})
)
+
prettyPrintTS(bridgeMap, 'BRIDGE_MAP', './constants/bridgeMap.ts')
}
@@ -322,6 +397,7 @@ const extractBridgeSymbolsMap = (tokens) => {
...Object.keys(bridgeSymbolsDestinationSets),
])
const bridgeSymbolsMap = {}
+
bridgeSymbols.forEach((symbol) => {
bridgeSymbolsMap[symbol] = {
origin: Array.from(bridgeSymbolsOriginSets[symbol]).sort(),
@@ -334,6 +410,9 @@ const extractBridgeSymbolsMap = (tokens) => {
const getTokenSymbol = async (chainId, token) => {
// Check if token is ETH
if (token === ETH) {
+ if (!SwapQuoters[chainId]) {
+ return 'ETH'
+ }
// Get WETH address from SwapQuoter
const weth = await SwapQuoters[chainId].weth()
// Return "WETH" symbol without first character
@@ -366,13 +445,8 @@ const getTokenDecimals = async (chainId, token) => {
return decimals
}
-// Writes map export to a TypeScript file, then runs prettier on the file
-const prettyPrintTS = (map, mapName, fn) => {
- console.log(`Writing ${mapName} to ${fn}`)
- const json = JSON.stringify(map)
- fs.writeFileSync(fn, `export const ${mapName} = ${json}`)
- // Run prettier on the file using terminal command:
- execSync(`npx prettier --write ${fn}`)
+const getRFQSymbol = (symbol) => {
+ return `RFQ.${symbol}`
}
printMaps()
diff --git a/packages/synapse-interface/scripts/utils/fetchRfqData.js b/packages/synapse-interface/scripts/utils/fetchRfqData.js
new file mode 100644
index 0000000000..8289c36d58
--- /dev/null
+++ b/packages/synapse-interface/scripts/utils/fetchRfqData.js
@@ -0,0 +1,17 @@
+// URL for RFQ quotes
+const RFQ_URL = 'https://rfq-api.omnirpc.io/quotes'
+
+const fetchRfqData = async () => {
+ try {
+ const response = await fetch(RFQ_URL)
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`)
+ }
+ return await response.json()
+ } catch (error) {
+ console.error('Failed to fetch RFQ data:', error)
+ return []
+ }
+}
+
+module.exports = { fetchRfqData }
diff --git a/packages/synapse-interface/scripts/utils/prettyPrintTs.js b/packages/synapse-interface/scripts/utils/prettyPrintTs.js
new file mode 100644
index 0000000000..61629dafdc
--- /dev/null
+++ b/packages/synapse-interface/scripts/utils/prettyPrintTs.js
@@ -0,0 +1,13 @@
+const fs = require('fs')
+const { execSync } = require('child_process')
+
+// Writes map export to a TypeScript file, then runs prettier on the file
+const prettyPrintTS = (map, mapName, fn) => {
+ console.log(`Writing ${mapName} to ${fn}`)
+ const json = JSON.stringify(map)
+ fs.writeFileSync(fn, `export const ${mapName} = ${json}`)
+ // Run prettier on the file using terminal command:
+ execSync(`npx prettier --write ${fn}`)
+}
+
+module.exports = { prettyPrintTS }
diff --git a/packages/synapse-interface/utils/getEstimatedBridgeTime.tsx b/packages/synapse-interface/utils/getEstimatedBridgeTime.tsx
index 69cf4eb41e..eaf3d11d39 100644
--- a/packages/synapse-interface/utils/getEstimatedBridgeTime.tsx
+++ b/packages/synapse-interface/utils/getEstimatedBridgeTime.tsx
@@ -1,5 +1,4 @@
import { useSynapseContext } from './providers/SynapseProvider'
-import { BRIDGE_REQUIRED_CONFIRMATIONS } from '@/constants/bridge'
import { Chain } from './types'
enum SynapseBridgeModule {
diff --git a/packages/synapse-interface/utils/types/index.tsx b/packages/synapse-interface/utils/types/index.tsx
index d5733c32b8..64f4bee837 100644
--- a/packages/synapse-interface/utils/types/index.tsx
+++ b/packages/synapse-interface/utils/types/index.tsx
@@ -7,7 +7,6 @@ export type Chain = {
chainSymbol: string
name: string
altName?: string
- codeName: string
chainImg: any
layer: number
rpcUrls: { primary: string; fallback: string }
@@ -24,6 +23,7 @@ export type Chain = {
}
priorityRank?: number
color?: string
+ isNew?: boolean
}
export type PoolToken = {
symbol: string