diff --git a/packages/swapper/src/swappers/ThorchainSwapper/constants.ts b/packages/swapper/src/swappers/ThorchainSwapper/constants.ts index 2bc2ba0d7a3..69a9702c0cc 100644 --- a/packages/swapper/src/swappers/ThorchainSwapper/constants.ts +++ b/packages/swapper/src/swappers/ThorchainSwapper/constants.ts @@ -18,6 +18,7 @@ export const sellSupportedChainIds: Record = { [KnownChainIds.ThorchainMainnet]: true, [KnownChainIds.AvalancheMainnet]: true, [KnownChainIds.BnbSmartChainMainnet]: true, + [KnownChainIds.BaseMainnet]: true, } export const buySupportedChainIds: Record = { @@ -30,6 +31,7 @@ export const buySupportedChainIds: Record = { [KnownChainIds.ThorchainMainnet]: true, [KnownChainIds.AvalancheMainnet]: true, [KnownChainIds.BnbSmartChainMainnet]: true, + [KnownChainIds.BaseMainnet]: true, } export const THORCHAIN_SUPPORTED_CHAIN_IDS: SupportedChainIds = { diff --git a/packages/swapper/src/swappers/ThorchainSwapper/generated/generatedTradableThorAssetMap.json b/packages/swapper/src/swappers/ThorchainSwapper/generated/generatedTradableThorAssetMap.json index 9044f2477bc..4eff225f09f 100644 --- a/packages/swapper/src/swappers/ThorchainSwapper/generated/generatedTradableThorAssetMap.json +++ b/packages/swapper/src/swappers/ThorchainSwapper/generated/generatedTradableThorAssetMap.json @@ -3,8 +3,12 @@ "AVAX.SOL-0XFE6B19286885A4F7F55ADAD09C3CD1F906D2478F": "eip155:43114/erc20:0xfe6b19286885a4f7f55adad09c3cd1f906d2478f", "AVAX.USDC-0XB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E": "eip155:43114/erc20:0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e", "AVAX.USDT-0X9702230A8EA53601F5CD2DC00FDBC13D4DF4A8C7": "eip155:43114/erc20:0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7", + "BASE.CBBTC-0XCBB7C0000AB88B473B1F5AFD9EF808440EED33BF": "eip155:8453/erc20:0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf", + "BASE.ETH": "eip155:8453/slip44:60", + "BASE.USDC-0X833589FCD6EDB6E08F4C7C32D4F71B54BDA02913": "eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "BCH.BCH": "bip122:000000000000000000651ef99cb9fcbe/slip44:145", "BSC.BNB": "eip155:56/slip44:60", + "BSC.TWT-0X4B0F1812E5DF2A09796481FF14017E6005508003": "eip155:56/bep20:0x4b0f1812e5df2a09796481ff14017e6005508003", "BSC.USDC-0X8AC76A51CC950D9822D68B83FE1AD97B32CD580D": "eip155:56/bep20:0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", "BSC.USDT-0X55D398326F99059FF775485246999027B3197955": "eip155:56/bep20:0x55d398326f99059ff775485246999027b3197955", "BTC.BTC": "bip122:000000000019d6689c085ae165831e93/slip44:0", diff --git a/packages/swapper/src/swappers/ThorchainSwapper/types.ts b/packages/swapper/src/swappers/ThorchainSwapper/types.ts index 11c106768fe..4adcbf78cf5 100644 --- a/packages/swapper/src/swappers/ThorchainSwapper/types.ts +++ b/packages/swapper/src/swappers/ThorchainSwapper/types.ts @@ -254,6 +254,7 @@ export enum ThorchainChain { GAIA = 'GAIA', THOR = 'THOR', BSC = 'BSC', + BASE = 'BASE', } export type ThorEvmTradeQuote = TradeQuote & diff --git a/packages/swapper/src/swappers/ThorchainSwapper/utils/checkOutputTxConfirmations.ts b/packages/swapper/src/swappers/ThorchainSwapper/utils/checkOutputTxConfirmations.ts index 07c6c1d3239..bc1f5a59d98 100644 --- a/packages/swapper/src/swappers/ThorchainSwapper/utils/checkOutputTxConfirmations.ts +++ b/packages/swapper/src/swappers/ThorchainSwapper/utils/checkOutputTxConfirmations.ts @@ -42,6 +42,9 @@ export const checkOutputTxConfirmations = async ( case ThorchainChain.GAIA: { return config.REACT_APP_UNCHAINED_COSMOS_HTTP_URL } + case ThorchainChain.BASE: { + return config.REACT_APP_UNCHAINED_BASE_HTTP_URL + } case ThorchainChain.BSC: throw Error(`${latestOutTx.chain} not supported`) default: diff --git a/packages/swapper/src/types.ts b/packages/swapper/src/types.ts index 6e1fe82fb36..54a671ea53f 100644 --- a/packages/swapper/src/types.ts +++ b/packages/swapper/src/types.ts @@ -47,6 +47,7 @@ export type SwapperConfig = { REACT_APP_UNCHAINED_ETHEREUM_HTTP_URL: string REACT_APP_UNCHAINED_AVALANCHE_HTTP_URL: string REACT_APP_UNCHAINED_BNBSMARTCHAIN_HTTP_URL: string + REACT_APP_UNCHAINED_BASE_HTTP_URL: string REACT_APP_COWSWAP_BASE_URL: string REACT_APP_PORTALS_BASE_URL: string REACT_APP_ZRX_BASE_URL: string diff --git a/scripts/generateTradableThorAssetMap/utils.ts b/scripts/generateTradableThorAssetMap/utils.ts index 51db8cd25f2..2d8471b5c3f 100644 --- a/scripts/generateTradableThorAssetMap/utils.ts +++ b/scripts/generateTradableThorAssetMap/utils.ts @@ -3,6 +3,8 @@ import { ASSET_NAMESPACE, avalancheAssetId, avalancheChainId, + baseAssetId, + baseChainId, bchAssetId, bchChainId, binanceAssetId, @@ -41,6 +43,7 @@ enum ThorchainChain { GAIA = 'GAIA', THOR = 'THOR', BSC = 'BSC', + BASE = 'BASE', } const ChainToChainIdMap: Map = new Map([ @@ -54,6 +57,7 @@ const ChainToChainIdMap: Map = new Map([ [ThorchainChain.GAIA, cosmosChainId], [ThorchainChain.THOR, thorchainChainId], [ThorchainChain.BSC, bscChainId], + [ThorchainChain.BASE, baseChainId], ]) function assertUnreachable(x: never): never { @@ -82,6 +86,8 @@ export const getFeeAssetFromThorchainChain = (chain: ThorchainChain): AssetId | return cosmosAssetId case ThorchainChain.BSC: return bscAssetId + case ThorchainChain.BASE: + return baseAssetId default: assertUnreachable(chain) } @@ -93,6 +99,7 @@ export const getTokenStandardFromChainId = (chainId: ChainId): AssetNamespace | case KnownChainIds.AvalancheMainnet: case KnownChainIds.PolygonMainnet: case KnownChainIds.GnosisMainnet: + case KnownChainIds.BaseMainnet: return ASSET_NAMESPACE.erc20 case KnownChainIds.BnbSmartChainMainnet: return ASSET_NAMESPACE.bep20 @@ -111,7 +118,10 @@ export const getAssetIdPairFromPool = (pool: ThornodePoolResponse): AssetIdPair const [, id] = symbol.split('-') const chainId = ChainToChainIdMap.get(chain as ThorchainChain) const isFeeAsset = - chain === symbol || thorchainAsset === 'GAIA.ATOM' || thorchainAsset === 'BSC.BNB' + chain === symbol || + thorchainAsset === 'GAIA.ATOM' || + thorchainAsset === 'BSC.BNB' || + thorchainAsset === 'BASE.ETH' if (isFeeAsset) { const assetId = chainId ? getFeeAssetFromThorchainChain(chain as ThorchainChain) : undefined if (assetId) {