diff --git a/sdk/src/config/MAINNET.ts b/sdk/src/config/MAINNET.ts index 9b86e9c9e..0e19b84f5 100644 --- a/sdk/src/config/MAINNET.ts +++ b/sdk/src/config/MAINNET.ts @@ -81,9 +81,16 @@ const MAINNET: { [chain in MainnetChainName]: ChainConfig } = { ...CONTRACTS.MAINNET.polygon, relayer: '0xcafd2f0a35a4459fa40c0517e17e6fa2939441ca', tbtcGateway: '0x09959798B95d00a3183d20FaC298E4594E599eab', + cctpContracts: { + cctpMessageTransmitter: '0xF3be9355363857F3e001be68856A2f96b4C39Ba9', + cctpTokenMessenger: '0x9daF8c91AEFAE50b9c0E69629D3F6Ca40cA3B3FE', + wormholeCCTP: '0x0FF28217dCc90372345954563486528aa865cDd6', + wormholeCircleRelayer: '0x4cb69FaE7e7Af841e44E1A1c30Af640739378bb2', + }, }, finalityThreshold: 512, nativeTokenDecimals: 18, + cctpDomain: 7, }, bsc: { key: 'bsc', @@ -306,7 +313,7 @@ const MAINNET_CONFIG: WormholeConfig = { optimism: 'https://rpc.ankr.com/optimism', base: 'https://base.publicnode.com', sei: '', // TODO: fill in - wormchain: '', + wormchain: 'https://wormchain-rpc.quickapi.com', osmosis: 'https://osmosis-rpc.polkachu.com', cosmoshub: 'https://cosmos-rpc.polkachu.com', evmos: 'https://evmos-rpc.polkachu.com', diff --git a/sdk/src/config/TESTNET.ts b/sdk/src/config/TESTNET.ts index 2111bb0d9..7a3f02e27 100644 --- a/sdk/src/config/TESTNET.ts +++ b/sdk/src/config/TESTNET.ts @@ -80,9 +80,16 @@ const TESTNET: { [chain in TestnetChainName]: ChainConfig } = { ...CONTRACTS.TESTNET.polygon, relayer: '0x9563a59c15842a6f322b10f69d1dd88b41f2e97b', tbtcGateway: '0x91fe7128f74dbd4f031ea3d90fc5ea4dcfd81818', + cctpContracts: { + cctpTokenMessenger: '0x9f3B8679c73C2Fef8b59B4f3444d4e156fb70AA5', + cctpMessageTransmitter: '0xe09A679F56207EF33F5b9d8fb4499Ec00792eA73', + wormholeCCTP: '0x2703483B1a5a7c577e8680de9Df8Be03c6f30e3c', + wormholeCircleRelayer: '0x4cb69FaE7e7Af841e44E1A1c30Af640739378bb2', + }, }, finalityThreshold: 64, nativeTokenDecimals: 18, + cctpDomain: 7, }, bsc: { key: 'bsc', diff --git a/wormhole-connect/scripts/checkForeignAssetsConfig.ts b/wormhole-connect/scripts/checkForeignAssetsConfig.ts index 623854a12..89cc400a2 100644 --- a/wormhole-connect/scripts/checkForeignAssetsConfig.ts +++ b/wormhole-connect/scripts/checkForeignAssetsConfig.ts @@ -67,7 +67,9 @@ const checkEnvConfig = async ( if (WORMCHAIN_ERROR_MESSAGES.includes(e?.message)) { // do not throw on wormchain errors } else { - throw e; + console.error( + `❌ Failed to fetch foreign address. Env: ${env}, Key: ${tokenKey}, Chain: ${chain} ${e?.message}`, + ); } } if (foreignAddress) { diff --git a/wormhole-connect/src/config/mainnet/tokens.ts b/wormhole-connect/src/config/mainnet/tokens.ts index f448d394a..5d73d85a2 100644 --- a/wormhole-connect/src/config/mainnet/tokens.ts +++ b/wormhole-connect/src/config/mainnet/tokens.ts @@ -95,6 +95,11 @@ export const MAINNET_TOKENS: TokensConfig = { 'ibc/4442A8E0D487A49E76EA6606F5DADCF8D0DBDD8499112340C964970DB745EDA2', decimals: 8, }, + kujira: { + address: + 'ibc/7D9D28CABB49A4BB1A50C3B7E4544BFDBC5DDFAEB84A7787755A34CE7196CE15', + decimals: 8, + }, }, }, USDCeth: { @@ -177,6 +182,11 @@ export const MAINNET_TOKENS: TokensConfig = { 'ibc/6B99DB46AA9FF47162148C1726866919E44A6A5E0274B90912FD17E19A337695', decimals: 6, }, + kujira: { + address: + 'ibc/C5EADE2C526B9629D230AC02A97644984ACB7C2F9A6C85126D1025CB0DA42588', + decimals: 6, + }, }, }, WBTC: { @@ -259,6 +269,11 @@ export const MAINNET_TOKENS: TokensConfig = { 'ibc/E4CD61E1FA3EB04EF1BF924D676AB9FD55E84A0DCF4E78C11CCA0E14E5B42672', decimals: 8, }, + kujira: { + address: + 'ibc/B2C7F21B604E3974A7DA5DAA9395905F2F3C85392F8A221CFDF62E4A9F4E48E4', + decimals: 8, + }, }, }, USDT: { @@ -567,7 +582,7 @@ export const MAINNET_TOKENS: TokensConfig = { icon: Icon.USDC, tokenId: { chain: 'polygon', - address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174', + address: '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359', }, coinGeckoId: 'usd-coin', color: '#2774CA', @@ -575,69 +590,46 @@ export const MAINNET_TOKENS: TokensConfig = { default: 6, }, foreignAssets: { - ethereum: { - address: '0x566957eF80F9fd5526CD2BEF8BE67035C0b81130', - decimals: 6, - }, - bsc: { - address: '0x672147dD47674757C457eB155BAA382cc10705Dd', - decimals: 6, - }, - avalanche: { - address: '0x543672E9CBEC728CBBa9C3Ccd99ed80aC3607FA8', - decimals: 6, - }, - fantom: { - address: '0x6e0e8cf6Ad151e1260A4D398faaEDFC450A9f00a', + aptos: { + address: + '0xc5fd7820e9f053e6dd8e7dd8ca3ce8e9b10d200ba1692bdeb7a035217180ad4a::coin::T', decimals: 6, }, - celo: { - address: '0x0E21B5BdFb6eDBa7d903a610d4DE2F8c72586017', + base: { + address: '0xFe1579BAc60363c8572CB30Bf4DD1Fd85811BBF8', decimals: 6, }, moonbeam: { - address: '0x530E29eD727800e04bCd28B588775D50DE59097C', - decimals: 6, - }, - solana: { - address: 'E2VmbootbVCBkMNNxKQgCLMS1X3NoGMaYAsufaAsf7M', + address: '0x4415BfBDee669446550d55c749007EF60B520FC8', decimals: 6, }, sui: { address: - '0xcf72ec52c0f8ddead746252481fb44ff6e8485a39b803825bde6b00d77cdb0bb::coin::COIN', - decimals: 6, - }, - aptos: { - address: - '0xc7160b1c2415d19a88add188ec726e62aab0045f0aed798106a2ef2994a9101e::coin::T', + '0x5c8c9082401982e8c2519a5c12883a5475295bf5cec4a0a13c26d35dd9a20d73::coin::COIN', decimals: 6, }, - arbitrum: { - address: '0x9A3Fba8a0870Fb9765023681DAa5390C7919C916', + bsc: { + address: '0xe6d82Bbe75041E42E51d755e922cE1BA91af9c4d', decimals: 6, }, - optimism: { - address: '0x8ab72605E48C1f70A20BdD2B3A217FEc24d777f9', + celo: { + address: '0x42c76808f3179A091Ee007A2955aF2522978ADE7', decimals: 6, }, - wormchain: { - address: - 'wormhole19wut8ssulwasjquxpspfeq097kwj2n86fk3vq0g9c8eml2rqtprq97zy3e', + fantom: { + address: '0xB4DcfD221048a1Dad989D39456BBd87762c26F06', decimals: 6, }, - evmos: { - address: - 'ibc/CA80A29F0D7C5CDCFE97607594E5F8B37AEF5CFB75E260CD321A0A8370C15378', + avalanche: { + address: '0xDb2d08f5A9C9ADBBA0DE5a69bbB1E9Ca03411692', decimals: 6, }, - osmosis: { - address: - 'ibc/B8381EAF6D22EB6FDA639A94CF67DAF25159D5B96AAAABE8AF7EA3E18A0533E3', + arbitrum: { + address: '0x599ADB10E6A012dF34935D47407450f6D7170e3C', decimals: 6, }, - base: { - address: '0x59f4f969dd3A91A943651C9625E96822DC84Ef94', + optimism: { + address: '0xbB1EaB9Eb8fDf65F0E291D013DA07B4b65a27a01', decimals: 6, }, }, @@ -1769,6 +1761,10 @@ export const MAINNET_TOKENS: TokensConfig = { address: '0xb96B82Cd6D45d98Fb6897D16A5E4EE888329C513', decimals: 6, }, + fantom: { + address: '0x2228703672906fEe5eD681Ec28e42B4506b8c336', + decimals: 6, + }, }, }, ETHoptimism: { @@ -1853,6 +1849,10 @@ export const MAINNET_TOKENS: TokensConfig = { 'wormhole1ev8rhdflmlq6de5g7ttj585fhuv3jfhnuhfzyh7qrswhzaq2tkqswxz6y3', decimals: 8, }, + moonbeam: { + address: '0xd4870F7F5AD8Ae5139E1a5D8AD4ac55204aE4490', + decimals: 18, + }, }, }, USDCoptimism: { @@ -1900,6 +1900,23 @@ export const MAINNET_TOKENS: TokensConfig = { '0x4f6ecb05a797902d472abc2f5804bde93a53d8b75f14f767824cdb1623a4ee83::coin::T', decimals: 6, }, + bsc: { + address: '0xa41ae127D04F7ee73B5058E2C60Fb7c7A2D21F79', + decimals: 6, + }, + avalanche: { + address: '0xBe04f76A0ba2100c3F2d6Aa1FD8484F415469573', + decimals: 6, + }, + polygon: { + address: '0x31F12aCb60C3c32EE884F3894a873347C097D925', + decimals: 6, + }, + sui: { + address: + '0x6037801f060f0f54b3817bca05e3c8b9b9ffaa2da8e93fd5b80fa662aa3c9e55::coin::COIN', + decimals: 6, + }, }, }, // SEI: { @@ -2067,6 +2084,11 @@ export const MAINNET_TOKENS: TokensConfig = { '0x7e3e74afcc1913aa9491c8cee89b02131a6e5519b090f16b54321835c1241cfb::coin::COIN', decimals: 6, }, + aptos: { + address: + '0xfcc4fcd734d5b8578fb629d238d15264a49eca6165c7444c21feec3b4962eb88::coin::T', + decimals: 6, + }, }, }, OSMO: { @@ -2151,6 +2173,15 @@ export const MAINNET_TOKENS: TokensConfig = { address: '0x94c97dd3Bde5bC1406BCe82E7941A6365968521D', decimals: 18, }, + aptos: { + address: + '0x9d5a0f8215301fa8096df332b1533f6328f18c32fbac2a7089cfbea73b3068a7::coin::T', + decimals: 8, + }, + celo: { + address: '0xFaED7314060FCEc652ED91D9eac6c980DCA9D3B8', + decimals: 18, + }, }, }, tBTCpolygon: { @@ -2168,6 +2199,25 @@ export const MAINNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + ethereum: { + address: '0xb4c624dBC50804dA086cf2380cD55dEBC0d22E96', + decimals: 18, + }, + optimism: { + address: '0xE4C32B9eA749fa0342B1C42C01E80028B97c3917', + decimals: 18, + }, + arbitrum: { + address: '0x3bab04bDFd2Dc3640c2B9390A2Da05bC1192D482', + decimals: 18, + }, + wormchain: { + address: + 'wormhole1uj24zecnaxz7ftz0sh6dsayfene4w3yptwg0422kves9duel67vsr7hlyz', + decimals: 8, + }, + }, }, tBTCoptimism: { key: 'tBTCoptimism', @@ -2184,6 +2234,20 @@ export const MAINNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + ethereum: { + address: '0xB8d1E0642bFD3744CaBd2ca8830cFabE19b2Ca54', + decimals: 18, + }, + polygon: { + address: '0x68A8797da1c8ED592600d70A5151886A92D2183C', + decimals: 18, + }, + arbitrum: { + address: '0x2519010b6585247BcDC8BcDa5C8730Be754b8c76', + decimals: 18, + }, + }, }, tBTCarbitrum: { key: 'tBTCarbitrum', @@ -2200,6 +2264,33 @@ export const MAINNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + base: { + address: '0x56D0873e0eCA4a56063e1BF945788365666CFBFC', + decimals: 18, + }, + celo: { + address: '0x72878E7d3A8746e0c91b9F16F0b8ee4fDE9DDc06', + decimals: 18, + }, + optimism: { + address: '0x2390a5131fcba6e47f702172cF4876589E4161c6', + decimals: 18, + }, + ethereum: { + address: '0x4F3819A6cfF717BFfE801a75c73A984141c76589', + decimals: 18, + }, + polygon: { + address: '0x045D8c62D5326aa51a31518ECF3aF80C17421Aba', + decimals: 18, + }, + wormchain: { + address: + 'wormhole1q8ynvqvtw49ln73mn70v4me4q03fvvmhkf2lh4ueam5w4362s2asjmvxtd', + decimals: 8, + }, + }, }, tBTCbase: { key: 'tBTCbase', @@ -2216,6 +2307,12 @@ export const MAINNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + ethereum: { + address: '0x733F28B3e315046Db01dAbC292D6F0F7F26C4551', + decimals: 18, + }, + }, }, tBTCsol: { key: 'tBTCsol', @@ -2336,6 +2433,14 @@ export const MAINNET_TOKENS: TokensConfig = { address: '0x3fEcdF1248fe7642d29f879a75CFC0339659ab93', decimals: 5, }, + base: { + address: '0xDF1Cf211D38E7762c9691Be4D779A441a17A6cFC', + decimals: 5, + }, + celo: { + address: '0x3fc50bc066aE2ee280876EeefADfdAbF6cA02894', + decimals: 5, + }, }, }, EVMOS: { @@ -2384,5 +2489,53 @@ export const MAINNET_TOKENS: TokensConfig = { decimals: { default: 6, }, + foreignAssets: { + aptos: { + address: + '0x770211b47954e15bec1a4271bf33bacebc2d2adb43b7dc1ca45efa787615dd4c::coin::T', + decimals: 6, + }, + bsc: { + address: '0xb0188B0bb2cD4a6D2744637fC83C94a284B247Da', + decimals: 6, + }, + base: { + address: '0x4c5d8A75F3762c1561D96f177694f67378705E98', + decimals: 6, + }, + celo: { + address: '0x985aa4814419ba338379A634785216301e51113D', + decimals: 6, + }, + avalanche: { + address: '0x8A0691e602B7a5FCc51a27E4a08376dE50889B42', + decimals: 6, + }, + polygon: { + address: '0xFa4B761A1e07909Ba31331a5dfa12390E3ff5583', + decimals: 6, + }, + fantom: { + address: '0x77ad3B2dA29FBd208F12c3C701E969F4422aAD79', + decimals: 6, + }, + optimism: { + address: '0x99C59ACeBFEF3BBFB7129DC90D1a11DB0E91187f', + decimals: 6, + }, + ethereum: { + address: '0xeFc0CED4B3D536103e76a1c4c74F0385C8F4Bdd3', + decimals: 6, + }, + arbitrum: { + address: '0xE4D5c6aE46ADFAF04313081e8C0052A30b6Dd724', + decimals: 6, + }, + sui: { + address: + '0x9c6d76eb273e6b5ba2ec8d708b7fa336a5531f6be59f326b5be8d4d8b12348a4::coin::COIN', + decimals: 6, + }, + }, }, }; diff --git a/wormhole-connect/src/config/testnet/tokens.ts b/wormhole-connect/src/config/testnet/tokens.ts index 68f1b7c04..befd9f695 100644 --- a/wormhole-connect/src/config/testnet/tokens.ts +++ b/wormhole-connect/src/config/testnet/tokens.ts @@ -177,6 +177,11 @@ export const TESTNET_TOKENS: TokensConfig = { 'ibc/3BB8C4BD1C90599B2FA5B5839DD0813EF7B94B0BD0904C4C5A61498AE81E0EE9', decimals: 6, }, + sui: { + address: + '0x9e4396c19ec1c5f2214c79d3af3f31e59869640305560f8f2499c36fa9c8e0f2::coin::COIN', + decimals: 6, + }, }, }, WBTC: { @@ -424,64 +429,14 @@ export const TESTNET_TOKENS: TokensConfig = { icon: Icon.USDC, tokenId: { chain: 'mumbai', - address: '0x0FA8781a83E46826621b3BC094Ea2A0212e71B23', + address: '0x9999f7fea5938fd3b1e26a12c3f2fb024e194f97', }, coinGeckoId: 'usd-coin', color: '#2774CA', decimals: { default: 6, }, - foreignAssets: { - goerli: { - address: '0xB3658B4C6704356F155c369F4583aF68424128e9', - decimals: 6, - }, - bsc: { - address: '0x88B8b85ED6d39E613d2d1449e1c1B808d505D561', - decimals: 6, - }, - fuji: { - address: '0xFB2C24197A92598C633Ed8eE60ee90b104d7B145', - decimals: 6, - }, - fantom: { - address: '0x450dC724a1793b0E2182d09Eb883ad76f7F4C0Aa', - decimals: 6, - }, - alfajores: { - address: '0x4364bb251a0F33914AAb2088ed435122694Ce2BD', - decimals: 6, - }, - moonbasealpha: { - address: '0x5366c7204A49D6CdD6A99e647aE695Cb0866FD5e', - decimals: 6, - }, - sui: { - address: - '0xe1deb395283034cbfc81c5acb4c89d3223e5165b5384282c73963aa5262a4993::coin::COIN', - decimals: 6, - }, - sei: { - address: - 'sei1vccw9g60mphsaj9t96vru53mjje3vmxcl49lg8lfqdh0zgmq6zsqf03y9n', - decimals: 6, - }, - wormchain: { - address: - 'wormhole1qmk0v725sdg5ecu6xfh5pt0fv0nfzrstarue2maum3snzk2zrt5qcm4w3g', - decimals: 6, - }, - cosmoshub: { - address: - 'ibc/ED0651B0141CA50326B1FFA2E9207F42BE616DE2712356CF8DA4B8CAC4A6A5B6', - decimals: 6, - }, - osmosis: { - address: - 'ibc/FDEEB950A2538F30EBA949B9F8D0D28DAC9D26D0B138445BF0DF9FC4B800E1F9', - decimals: 6, - }, - }, + foreignAssets: {}, }, BNB: { key: 'BNB', @@ -855,6 +810,10 @@ export const TESTNET_TOKENS: TokensConfig = { 'ibc/919D8F138B7E71BB067C7301AB5C2D48415E8C3A2D9187861245CEC668F88E3C', decimals: 8, }, + optimismgoerli: { + address: '0x81BA80f5820273AA965086e710042d737993f12c', + decimals: 18, + }, }, }, CELO: { @@ -1333,6 +1292,11 @@ export const TESTNET_TOKENS: TokensConfig = { 'ibc/7C495BD95757ED662A897C139F1C9F18275A86EE7203A0B073E2DB12B1E19D63', decimals: 8, }, + sui: { + address: + '0x812d6feb8b84e55d47a0bfcae9fb6a4e7e09be5ec86ce0a729e0f67d5f59f477::coin::COIN', + decimals: 8, + }, }, }, ETHarbitrum: { @@ -1451,6 +1415,10 @@ export const TESTNET_TOKENS: TokensConfig = { 'ibc/06ED2700071B5A9C582F51A556537DA94E69EF547E7E6CCD8BFA3D95C818A525', decimals: 6, }, + bsc: { + address: '0xe3aA397cb6d93Cce4fAd9Cc9E796CCa5E50FB5ED', + decimals: 6, + }, }, }, ETHoptimism: { @@ -1559,6 +1527,16 @@ export const TESTNET_TOKENS: TokensConfig = { 'ibc/0A98A3947189D7C368170C76C3EF49486DDBE095F34B72A3C7F92AEBE1013A1D', decimals: 6, }, + aptos: { + address: + '0xcff1d9820851201436ad225dcc4374a2d15f52a74109283eb9881be799677e92::coin::T', + decimals: 6, + }, + sui: { + address: + '0xbbc39df58a11072ceeac1f685393ca912d1a1bfd6e772053ec5a544f36124da::coin::COIN', + decimals: 6, + }, }, }, ETHbase: { @@ -1650,6 +1628,10 @@ export const TESTNET_TOKENS: TokensConfig = { 'ibc/A45069EA82C933945973E66E4222EEE4624498D4483508FE9BEBF9D519F2132F', decimals: 8, }, + optimismgoerli: { + address: '0x04b559971c90Dfb12D9795E95883e55f2fcf34Ed', + decimals: 18, + }, }, }, USDCbase: { @@ -1690,6 +1672,21 @@ export const TESTNET_TOKENS: TokensConfig = { 'ibc/2E4F8BC7F7AF33752CF7E290CAD4417EE67CD18FFC0D099E6519A440E588E0CE', decimals: 6, }, + aptos: { + address: + '0xcfaabb3cb08ad612905dd6b2593d044ce857dfe5360148333b4635fb57d4d13f::coin::T', + decimals: 6, + }, + sui: { + address: + '0x4125940814a0ca87465a1a59092a7344633ad03b48ad7cda36d799d8558012c1::coin::COIN', + decimals: 6, + }, + sei: { + address: + 'sei1lf6ghmrkd7gn5jlj6xw64suycpjy7g4s5q92fc2gef4f8q3znanq95mmgv', + decimals: 6, + }, }, }, OSMO: { @@ -1790,6 +1787,12 @@ export const TESTNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + optimismgoerli: { + address: '0xE04e0F5f2C6ce45A40482C3AB92CA91D6741D717', + decimals: 18, + }, + }, }, tBTCoptimism: { key: 'tBTCoptimism', @@ -1806,6 +1809,12 @@ export const TESTNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + solana: { + address: 'HsPvRT3J7kuitNvNHogyZeSEagcqAqwwq2FPgrGfgApy', + decimals: 8, + }, + }, }, tBTCarbitrum: { key: 'tBTCarbitrum', @@ -1822,6 +1831,21 @@ export const TESTNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + fuji: { + address: '0x4beDc7471374d7479120E44ea9593eBB85f48AD9', + decimals: 18, + }, + goerli: { + address: '0x575D93A2278FbF4E8Bd3d51B539a6E237C3F17c5', + decimals: 18, + }, + wormchain: { + address: + 'wormhole1rm8ztmk20lrd6ex8uqq3yu7a6eyfjwvg53pcuuj22ffe2y8r3yzqr8j4v9', + decimals: 8, + }, + }, }, tBTCbase: { key: 'tBTCbase', @@ -1854,6 +1878,25 @@ export const TESTNET_TOKENS: TokensConfig = { default: 8, Ethereum: 18, }, + foreignAssets: { + goerli: { + address: '0x57A52B6F0b393AF7d36116183cA83E584e636eA4', + decimals: 8, + }, + arbitrumgoerli: { + address: '0x227115F659f7c2939D23FedE68583F5291c395A6', + decimals: 8, + }, + basegoerli: { + address: '0x9dA16Ae62De05bcb4606c4BFbB54046872501Bd0', + decimals: 8, + }, + sei: { + address: + 'sei1aj3uu9ejt8fk6rpjfhzluqnzqmv3enlndjmt8llkr7dn2dtz55xst4s3mn', + decimals: 8, + }, + }, }, wstETH: { key: 'wstETH', diff --git a/wormhole-connect/src/routes/cctpManual/utils/chains.ts b/wormhole-connect/src/routes/cctpManual/utils/chains.ts index ce3b5f445..7218768d3 100644 --- a/wormhole-connect/src/routes/cctpManual/utils/chains.ts +++ b/wormhole-connect/src/routes/cctpManual/utils/chains.ts @@ -12,6 +12,8 @@ export const CCTPManual_CHAINS: ChainName[] = [ 'optimismgoerli', 'arbitrumgoerli', 'basegoerli', + 'polygon', + 'mumbai', ]; export function getChainNameCCTP(domain: number): ChainName { @@ -26,6 +28,8 @@ export function getChainNameCCTP(domain: number): ChainName { return isMainnet ? 'arbitrum' : 'arbitrumgoerli'; case 6: return isMainnet ? 'base' : 'basegoerli'; + case 7: + return isMainnet ? 'polygon' : 'mumbai'; } throw new Error('Invalid CCTP domain'); } diff --git a/wormhole-connect/src/routes/cctpRelay/cctpRelay.ts b/wormhole-connect/src/routes/cctpRelay/cctpRelay.ts index ed305e75b..edee3e3a4 100644 --- a/wormhole-connect/src/routes/cctpRelay/cctpRelay.ts +++ b/wormhole-connect/src/routes/cctpRelay/cctpRelay.ts @@ -183,6 +183,11 @@ export class CCTPRelayRoute extends CCTPManualRoute implements RelayAbstract { if (!chainsAreValid) return false; + const bothHaveRelayer = + CHAINS[sourceChainName]?.contracts.cctpContracts?.wormholeCircleRelayer && + CHAINS[destChainName]?.contracts.cctpContracts?.wormholeCircleRelayer; + if (!bothHaveRelayer) return false; + let relayerFee; try { relayerFee = await this.getRelayerFee(