From d469671de609e754f6cd96f6179d88e7c40314e9 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 4 Jul 2024 13:33:20 +0300 Subject: [PATCH 1/6] add bahamut network --- src/common/tokens/constants/native-tokens.ts | 7 +++++++ .../tokens/constants/wrapped-addresses.ts | 1 + .../tokens/constants/wrapped-native-tokens.ts | 7 +++++++ .../blockchain/models/backend-blockchains.ts | 3 ++- src/core/blockchain/models/blockchain-name.ts | 3 ++- .../constants/blockchain-id.ts | 1 + .../constants/multicall-addresses.ts | 3 ++- ...iosis-cross-chain-supported-blockchains.ts | 1 + .../cross-chain-status-manager.ts | 2 +- .../uniswap-v2-trade-providers.ts | 5 ++++- .../dexes/bahamut/default-constants.ts | 19 +++++++++++++++++++ .../bahamut/uniswap-v2-bahamut/constants.ts | 5 +++++ .../uniswap-v2-bahamut-provider.ts | 13 +++++++++++++ .../uniswap-v2-bahamut-trade.ts | 11 +++++++++++ 14 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 src/features/on-chain/calculation-manager/providers/dexes/bahamut/default-constants.ts create mode 100644 src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/constants.ts create mode 100644 src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts create mode 100644 src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts diff --git a/src/common/tokens/constants/native-tokens.ts b/src/common/tokens/constants/native-tokens.ts index 535fb93f8f..c935a7bc80 100644 --- a/src/common/tokens/constants/native-tokens.ts +++ b/src/common/tokens/constants/native-tokens.ts @@ -474,5 +474,12 @@ export const nativeTokensList: Record = { name: 'CORE', symbol: 'CORE', decimals: 18 + }), + [BLOCKCHAIN_NAME.BAHAMUT]: new Token({ + blockchain: BLOCKCHAIN_NAME.BAHAMUT, + address: EvmWeb3Pure.nativeTokenAddress, + name: 'FTN', + symbol: 'FTN', + decimals: 18 }) }; diff --git a/src/common/tokens/constants/wrapped-addresses.ts b/src/common/tokens/constants/wrapped-addresses.ts index f4f9180175..fabf946ccd 100644 --- a/src/common/tokens/constants/wrapped-addresses.ts +++ b/src/common/tokens/constants/wrapped-addresses.ts @@ -51,6 +51,7 @@ export const wrappedAddress: Partial> = { [BLOCKCHAIN_NAME.TAIKO]: '0xa51894664a773981c6c112c43ce576f315d5b1b6', [BLOCKCHAIN_NAME.SEI]: '0xE30feDd158A2e3b13e9badaeABaFc5516e95e8C7', [BLOCKCHAIN_NAME.CORE]: '0x191e94fa59739e188dce837f7f6978d84727ad01', + [BLOCKCHAIN_NAME.BAHAMUT]: '0x4084ab20f8ffca76c19aaf854fb5fe9de6217fbb', // Testnet [BLOCKCHAIN_NAME.GOERLI]: '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6', [BLOCKCHAIN_NAME.SCROLL_SEPOLIA]: '0x5300000000000000000000000000000000000004', diff --git a/src/common/tokens/constants/wrapped-native-tokens.ts b/src/common/tokens/constants/wrapped-native-tokens.ts index aef24e87fd..e79bf24e68 100644 --- a/src/common/tokens/constants/wrapped-native-tokens.ts +++ b/src/common/tokens/constants/wrapped-native-tokens.ts @@ -457,5 +457,12 @@ export const wrappedNativeTokensList: Partial> name: 'Wrapped CORE', symbol: 'WCORE', decimals: 18 + }), + [BLOCKCHAIN_NAME.BAHAMUT]: new Token({ + blockchain: BLOCKCHAIN_NAME.BAHAMUT, + address: '0x4084ab20f8ffca76c19aaf854fb5fe9de6217fbb', + name: 'Wrapped FTN', + symbol: 'WFTN', + decimals: 18 }) }; diff --git a/src/core/blockchain/models/backend-blockchains.ts b/src/core/blockchain/models/backend-blockchains.ts index 155356d1e4..6c764aee70 100644 --- a/src/core/blockchain/models/backend-blockchains.ts +++ b/src/core/blockchain/models/backend-blockchains.ts @@ -142,7 +142,8 @@ const BLOCKCHAINS_MAPPING = { [BLOCKCHAIN_NAME.XLAYER]: 'xlayer', [BLOCKCHAIN_NAME.TAIKO]: 'taiko', [BLOCKCHAIN_NAME.SEI]: 'sei', - [BLOCKCHAIN_NAME.CORE]: 'core' + [BLOCKCHAIN_NAME.CORE]: 'core', + [BLOCKCHAIN_NAME.BAHAMUT]: 'bahamut' } as const; export const TO_BACKEND_BLOCKCHAINS: Record = { diff --git a/src/core/blockchain/models/blockchain-name.ts b/src/core/blockchain/models/blockchain-name.ts index 5b37230472..4305491d45 100644 --- a/src/core/blockchain/models/blockchain-name.ts +++ b/src/core/blockchain/models/blockchain-name.ts @@ -68,7 +68,8 @@ export const EVM_BLOCKCHAIN_NAME = { XLAYER: 'XLAYER', TAIKO: 'TAIKO', SEI: 'SEI', - CORE: 'CORE' + CORE: 'CORE', + BAHAMUT: 'BAHAMUT' } as const; export const BLOCKCHAIN_NAME = { diff --git a/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts b/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts index 2e73a0a846..67d786b3b6 100644 --- a/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts +++ b/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts @@ -67,6 +67,7 @@ export const blockchainId: Record = { [BLOCKCHAIN_NAME.TAIKO]: 167000, [BLOCKCHAIN_NAME.SEI]: 1329, [BLOCKCHAIN_NAME.CORE]: 1116, + [BLOCKCHAIN_NAME.BAHAMUT]: 5165, // Tesnents [BLOCKCHAIN_NAME.GOERLI]: 5, [BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN_TESTNET]: 87, diff --git a/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts b/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts index fe6d2d88da..8c8aeece39 100644 --- a/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts +++ b/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts @@ -65,5 +65,6 @@ export const MULTICALL_ADDRESSES: Record [BLOCKCHAIN_NAME.XLAYER]: '0xcA11bde05977b3631167028862bE2a173976CA11', [BLOCKCHAIN_NAME.TAIKO]: '0x74F689bb9f86BD24d370BE2a2B9C74446ce08843', [BLOCKCHAIN_NAME.SEI]: '0xcA11bde05977b3631167028862bE2a173976CA11', - [BLOCKCHAIN_NAME.CORE]: '0xcA11bde05977b3631167028862bE2a173976CA11' + [BLOCKCHAIN_NAME.CORE]: '0xcA11bde05977b3631167028862bE2a173976CA11', + [BLOCKCHAIN_NAME.BAHAMUT]: '0xa385B1436fD2A6a1c6865E22c522A1aA40CaDCC6' }; diff --git a/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts b/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts index 36a57db452..00a4f43788 100644 --- a/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts +++ b/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts @@ -27,6 +27,7 @@ export const symbiosisCrossChainSupportedBlockchains = [ BLOCKCHAIN_NAME.SEI, BLOCKCHAIN_NAME.TAIKO, BLOCKCHAIN_NAME.CORE, + BLOCKCHAIN_NAME.BAHAMUT, // Testnets BLOCKCHAIN_NAME.GOERLI, BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN_TESTNET, diff --git a/src/features/cross-chain/status-manager/cross-chain-status-manager.ts b/src/features/cross-chain/status-manager/cross-chain-status-manager.ts index 76aad738c5..cf23156043 100644 --- a/src/features/cross-chain/status-manager/cross-chain-status-manager.ts +++ b/src/features/cross-chain/status-manager/cross-chain-status-manager.ts @@ -178,7 +178,7 @@ export class CrossChainStatusManager { const client = lzPackage.createClient('mainnet'); const scanResponse = await client.getMessagesBySrcTxHash(data.srcTxHash); const targetTrade = scanResponse.messages.find( - item => item.srcTxHash.toLocaleLowerCase() === data.srcTxHash.toLocaleLowerCase() + item => item.srcTxHash?.toLocaleLowerCase() === data.srcTxHash.toLocaleLowerCase() ); const txStatusData: TxStatusData = { status: TX_STATUS.PENDING, diff --git a/src/features/on-chain/calculation-manager/constants/trade-providers/uniswap-v2-trade-providers.ts b/src/features/on-chain/calculation-manager/constants/trade-providers/uniswap-v2-trade-providers.ts index 56509d54cd..968a027271 100644 --- a/src/features/on-chain/calculation-manager/constants/trade-providers/uniswap-v2-trade-providers.ts +++ b/src/features/on-chain/calculation-manager/constants/trade-providers/uniswap-v2-trade-providers.ts @@ -58,6 +58,7 @@ import { WagyuSwapProvider } from 'src/features/on-chain/calculation-manager/pro import { EddyFinanceProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/zetachain/eddy-finance/eddy-finance-provider'; import { MuteSwapProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/zksync/mute-swap/mute-swap-provider'; +import { UniswapV2BahamutProvider } from '../../providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider'; import { SushiSwapZetachainProvider } from '../../providers/dexes/zetachain/sushi-swap-zetachain/sushi-swap-zetachain-provider'; export const UniswapV2TradeProviders = [ @@ -154,5 +155,7 @@ export const UniswapV2TradeProviders = [ // Mode EddyFinanceModeProvider, // Sei - DragonSwapProvider + DragonSwapProvider, + //Bahamut + UniswapV2BahamutProvider ] as const; diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/default-constants.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/default-constants.ts new file mode 100644 index 0000000000..8e7708b999 --- /dev/null +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/default-constants.ts @@ -0,0 +1,19 @@ +import { wrappedNativeTokensList } from 'src/common/tokens/constants/wrapped-native-tokens'; +import { BLOCKCHAIN_NAME } from 'src/core/blockchain/models/blockchain-name'; + +import { UniswapV2ProviderConfiguration } from '../common/uniswap-v2-abstract/models/uniswap-v2-provider-configuration'; + +export const defaultBahamutRoutingProvidersAddresses = [ + wrappedNativeTokensList[BLOCKCHAIN_NAME.BAHAMUT]!.address, //WFTN + '0xDeF886C55a79830C47108eeb9c37e78a49684e41', //USDT + '0x4237e0a5b55233d5b6d6d1d9bf421723954130d8', //USDC + '0xE5b3562A0fa9eC3e718C96FfE349e1280D2Be591' //WETH +]; + +const defaultBahamutWethAddress = wrappedNativeTokensList[BLOCKCHAIN_NAME.BAHAMUT]!.address; + +export const defaultBahamutProviderConfiguration: UniswapV2ProviderConfiguration = { + maxTransitTokens: 1, + routingProvidersAddresses: defaultBahamutRoutingProvidersAddresses, + wethAddress: defaultBahamutWethAddress +}; diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/constants.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/constants.ts new file mode 100644 index 0000000000..a87d010a2c --- /dev/null +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/constants.ts @@ -0,0 +1,5 @@ +import { defaultBahamutProviderConfiguration } from '../default-constants'; + +export const UNISWAP_V2_BAHAMUT_CONTRACT_ADDRESS = '0xF660558a4757Fb5953d269FF32E228Ae3d5f6c68'; + +export const UNISWAP_V2_BAHAMUT_PROVIDER_CONFIGURATION = defaultBahamutProviderConfiguration; diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts new file mode 100644 index 0000000000..75e0b754f6 --- /dev/null +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts @@ -0,0 +1,13 @@ +import { BLOCKCHAIN_NAME } from 'src/core/blockchain/models/blockchain-name'; + +import { UniswapV2AbstractProvider } from '../../common/uniswap-v2-abstract/uniswap-v2-abstract-provider'; +import { UNISWAP_V2_BAHAMUT_PROVIDER_CONFIGURATION } from './constants'; +import { UniswapV2BahamutTrade } from './uniswap-v2-bahamut-trade'; + +export class UniswapV2BahamutProvider extends UniswapV2AbstractProvider { + public readonly blockchain = BLOCKCHAIN_NAME.BAHAMUT; + + public readonly UniswapV2TradeClass = UniswapV2BahamutTrade; + + public readonly providerSettings = UNISWAP_V2_BAHAMUT_PROVIDER_CONFIGURATION; +} diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts new file mode 100644 index 0000000000..302955f8de --- /dev/null +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts @@ -0,0 +1,11 @@ +import { ON_CHAIN_TRADE_TYPE, OnChainTradeType } from '../../../common/models/on-chain-trade-type'; +import { UniswapV2AbstractTrade } from '../../common/uniswap-v2-abstract/uniswap-v2-abstract-trade'; +import { UNISWAP_V2_BAHAMUT_CONTRACT_ADDRESS } from './constants'; + +export class UniswapV2BahamutTrade extends UniswapV2AbstractTrade { + public static get type(): OnChainTradeType { + return ON_CHAIN_TRADE_TYPE.UNISWAP_V2; + } + + public readonly dexContractAddress = UNISWAP_V2_BAHAMUT_CONTRACT_ADDRESS; +} From a98523d6ad7bf695f21e5f7e7bd6f62e98c72e19 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 4 Jul 2024 17:35:55 +0300 Subject: [PATCH 2/6] update transaction time --- package.json | 2 +- .../uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8feaf96410..bc88071202 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.29.2", + "version": "5.31.0-alpha-bahamut.0", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts index 75e0b754f6..73d34527f6 100644 --- a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts @@ -1,4 +1,6 @@ import { BLOCKCHAIN_NAME } from 'src/core/blockchain/models/blockchain-name'; +import { evmProviderDefaultOptions } from '../../common/on-chain-provider/evm-on-chain-provider/constants/evm-provider-default-options'; +import { UniswapV2CalculationOptions } from '../../common/uniswap-v2-abstract/models/uniswap-v2-calculation-options'; import { UniswapV2AbstractProvider } from '../../common/uniswap-v2-abstract/uniswap-v2-abstract-provider'; import { UNISWAP_V2_BAHAMUT_PROVIDER_CONFIGURATION } from './constants'; @@ -7,6 +9,12 @@ import { UniswapV2BahamutTrade } from './uniswap-v2-bahamut-trade'; export class UniswapV2BahamutProvider extends UniswapV2AbstractProvider { public readonly blockchain = BLOCKCHAIN_NAME.BAHAMUT; + protected readonly defaultOptions: UniswapV2CalculationOptions = { + ...evmProviderDefaultOptions, + deadlineMinutes: 60, + disableMultihops: false + }; + public readonly UniswapV2TradeClass = UniswapV2BahamutTrade; public readonly providerSettings = UNISWAP_V2_BAHAMUT_PROVIDER_CONFIGURATION; From 88f914dbcbbe4cf6d1dd67eb32c0cc4037032f23 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2024 09:51:31 +0300 Subject: [PATCH 3/6] enable proxy --- package.json | 2 +- src/features/common/constants/proxy-supported-blockchain.ts | 3 ++- .../providers/common/constants/rubic-proxy-contract-address.ts | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index bc88071202..33fc8455bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.31.0-alpha-bahamut.0", + "version": "5.31.0-alpha-bahamut.1", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/features/common/constants/proxy-supported-blockchain.ts b/src/features/common/constants/proxy-supported-blockchain.ts index 1b838c206d..0a0b78123f 100644 --- a/src/features/common/constants/proxy-supported-blockchain.ts +++ b/src/features/common/constants/proxy-supported-blockchain.ts @@ -33,7 +33,8 @@ export const proxySupportedBlockchains = [ BLOCKCHAIN_NAME.XLAYER, BLOCKCHAIN_NAME.TAIKO, BLOCKCHAIN_NAME.SEI, - BLOCKCHAIN_NAME.CORE + BLOCKCHAIN_NAME.CORE, + BLOCKCHAIN_NAME.BAHAMUT, // BLOCKCHAIN_NAME.OKE_X_CHAIN, // BLOCKCHAIN_NAME.GNOSIS, // BLOCKCHAIN_NAME.FUSE, diff --git a/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts b/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts index d3c79b19bc..668be42faf 100644 --- a/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts +++ b/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts @@ -18,7 +18,8 @@ const ALTERNATIVE_ROUTER1_NETWORKS = [ BLOCKCHAIN_NAME.XLAYER, BLOCKCHAIN_NAME.TAIKO, BLOCKCHAIN_NAME.SEI, - BLOCKCHAIN_NAME.CORE + BLOCKCHAIN_NAME.CORE, + BLOCKCHAIN_NAME.BAHAMUT, ] as const; function isAlternativeRouter1Network(blockchain: BlockchainName): boolean { From 471b1fc021568f324af38544170790641b527fb7 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2024 13:46:28 +0300 Subject: [PATCH 4/6] change on-chain type --- package.json | 2 +- .../providers/common/models/on-chain-trade-type.ts | 1 + .../bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 33fc8455bf..61e87eb539 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.31.0-alpha-bahamut.1", + "version": "5.31.0-alpha-bahamut.2", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.ts b/src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.ts index 2b3079994f..fac1d87e9a 100644 --- a/src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.ts +++ b/src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.ts @@ -139,6 +139,7 @@ export const ON_CHAIN_TRADE_TYPE = { UBE_SWAP: 'UBE_SWAP', UNISWAP_V2: 'UNISWAP_V2', UNI_SWAP_V3: 'UNI_SWAP_V3', + UNISWAP_BAHAMUT: 'UNISWAP_BAHAMUT', VERSE: 'VERSE', VIPER_SWAP: 'VIPER_SWAP', diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts index 302955f8de..043063b011 100644 --- a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts @@ -4,7 +4,7 @@ import { UNISWAP_V2_BAHAMUT_CONTRACT_ADDRESS } from './constants'; export class UniswapV2BahamutTrade extends UniswapV2AbstractTrade { public static get type(): OnChainTradeType { - return ON_CHAIN_TRADE_TYPE.UNISWAP_V2; + return ON_CHAIN_TRADE_TYPE.UNISWAP_BAHAMUT; } public readonly dexContractAddress = UNISWAP_V2_BAHAMUT_CONTRACT_ADDRESS; From da798c816ce8aaf93ef3ed4367121a8e3c1b7754 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2024 15:45:22 +0300 Subject: [PATCH 5/6] add receiver address check --- package.json | 2 +- .../constants/proxy-supported-blockchain.ts | 2 +- .../constants/rubic-proxy-contract-address.ts | 2 +- .../symbiosis-cross-chain-trade.ts | 4 ++++ .../uniswap-v2-bahamut-provider.ts | 2 +- .../uniswap-v2-bahamut-trade.ts | 15 +++++++++++++++ 6 files changed, 23 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 61e87eb539..a0d8e6ddda 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.31.0-alpha-bahamut.2", + "version": "5.31.0-alpha-bahamut.3", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/features/common/constants/proxy-supported-blockchain.ts b/src/features/common/constants/proxy-supported-blockchain.ts index 0a0b78123f..4a04887f12 100644 --- a/src/features/common/constants/proxy-supported-blockchain.ts +++ b/src/features/common/constants/proxy-supported-blockchain.ts @@ -34,7 +34,7 @@ export const proxySupportedBlockchains = [ BLOCKCHAIN_NAME.TAIKO, BLOCKCHAIN_NAME.SEI, BLOCKCHAIN_NAME.CORE, - BLOCKCHAIN_NAME.BAHAMUT, + BLOCKCHAIN_NAME.BAHAMUT // BLOCKCHAIN_NAME.OKE_X_CHAIN, // BLOCKCHAIN_NAME.GNOSIS, // BLOCKCHAIN_NAME.FUSE, diff --git a/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts b/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts index 668be42faf..2c1a73dc12 100644 --- a/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts +++ b/src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts @@ -19,7 +19,7 @@ const ALTERNATIVE_ROUTER1_NETWORKS = [ BLOCKCHAIN_NAME.TAIKO, BLOCKCHAIN_NAME.SEI, BLOCKCHAIN_NAME.CORE, - BLOCKCHAIN_NAME.BAHAMUT, + BLOCKCHAIN_NAME.BAHAMUT ] as const; function isAlternativeRouter1Network(blockchain: BlockchainName): boolean { diff --git a/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.ts b/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.ts index d098d0b0a9..89d7becefa 100644 --- a/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.ts +++ b/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.ts @@ -15,6 +15,7 @@ import { Injector } from 'src/core/injector/injector'; import { ContractParams } from 'src/features/common/models/contract-params'; import { SwapTransactionOptions } from 'src/features/common/models/swap-transaction-options'; import { SymbiosisApiService } from 'src/features/common/providers/symbiosis/services/symbiosis-api-service'; +import { checkUnsupportedReceiverAddress } from 'src/features/common/utils/check-unsupported-receiver-address'; import { CROSS_CHAIN_TRADE_TYPE } from 'src/features/cross-chain/calculation-manager/models/cross-chain-trade-type'; import { rubicProxyContractAddress } from 'src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address'; import { evmCommonCrossChainAbi } from 'src/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi'; @@ -325,6 +326,9 @@ export class SymbiosisCrossChainTrade extends EvmCrossChainTrade { receiverAddress?: string ): Promise<{ config: EvmEncodeConfig; amount: string }> { const walletAddress = this.walletAddress; + if (this.from.blockchain === 'BAHAMUT' || this.to.blockchain === 'BAHAMUT') { + await checkUnsupportedReceiverAddress(receiverAddress, this.walletAddress); + } const params: SymbiosisSwappingParams = { ...this.swappingParams, from: walletAddress, diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts index 73d34527f6..9de6760cf8 100644 --- a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-provider.ts @@ -1,7 +1,7 @@ import { BLOCKCHAIN_NAME } from 'src/core/blockchain/models/blockchain-name'; + import { evmProviderDefaultOptions } from '../../common/on-chain-provider/evm-on-chain-provider/constants/evm-provider-default-options'; import { UniswapV2CalculationOptions } from '../../common/uniswap-v2-abstract/models/uniswap-v2-calculation-options'; - import { UniswapV2AbstractProvider } from '../../common/uniswap-v2-abstract/uniswap-v2-abstract-provider'; import { UNISWAP_V2_BAHAMUT_PROVIDER_CONFIGURATION } from './constants'; import { UniswapV2BahamutTrade } from './uniswap-v2-bahamut-trade'; diff --git a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts index 043063b011..f048f89031 100644 --- a/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts +++ b/src/features/on-chain/calculation-manager/providers/dexes/bahamut/uniswap-v2-bahamut/uniswap-v2-bahamut-trade.ts @@ -1,3 +1,7 @@ +import { EvmEncodeConfig } from 'src/core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-encode-config'; +import { EncodeTransactionOptions } from 'src/features/common/models/encode-transaction-options'; +import { checkUnsupportedReceiverAddress } from 'src/features/common/utils/check-unsupported-receiver-address'; + import { ON_CHAIN_TRADE_TYPE, OnChainTradeType } from '../../../common/models/on-chain-trade-type'; import { UniswapV2AbstractTrade } from '../../common/uniswap-v2-abstract/uniswap-v2-abstract-trade'; import { UNISWAP_V2_BAHAMUT_CONTRACT_ADDRESS } from './constants'; @@ -8,4 +12,15 @@ export class UniswapV2BahamutTrade extends UniswapV2AbstractTrade { } public readonly dexContractAddress = UNISWAP_V2_BAHAMUT_CONTRACT_ADDRESS; + + public async encode(options: EncodeTransactionOptions): Promise { + await checkUnsupportedReceiverAddress(options.receiverAddress, this.walletAddress); + await this.checkFromAddress(options.fromAddress, true); + await this.checkReceiverAddress(options.receiverAddress); + + if (this.useProxy) { + return this.encodeProxy(options); + } + return this.encodeDirect(options); + } } From 564597a204cfabc0bbbcaf4ab3870d1ce5cd7251 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 5 Jul 2024 16:36:27 +0300 Subject: [PATCH 6/6] set sdk release version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a0d8e6ddda..ecb64557dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.31.0-alpha-bahamut.3", + "version": "5.30.0", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts",