diff --git a/package.json b/package.json index 81f2aedb72..c2aa02a582 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.32.5", + "version": "5.32.5-alpha.rango.3", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/common/errors/swap/not-supported-region.ts b/src/common/errors/swap/not-supported-region.ts new file mode 100644 index 0000000000..49bd21518b --- /dev/null +++ b/src/common/errors/swap/not-supported-region.ts @@ -0,0 +1,11 @@ +import { RubicSdkError } from 'src/common/errors/rubic-sdk.error'; + +/** + * Thrown, when provider does not support region. + */ +export class NotSupportedRegionError extends RubicSdkError { + constructor() { + super(); + Object.setPrototypeOf(this, NotSupportedRegionError.prototype); + } +} diff --git a/src/features/common/constants/bridge-to-onchain.ts b/src/features/common/constants/bridge-to-onchain.ts deleted file mode 100644 index 8f92a45333..0000000000 --- a/src/features/common/constants/bridge-to-onchain.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { BridgeType } from 'src/features/cross-chain/calculation-manager/providers/common/models/bridge-type'; -import { - ON_CHAIN_TRADE_TYPE, - OnChainTradeType -} from 'src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type'; - -export const BRIDGE_TO_DEX_MAP: Partial> = { - rango: ON_CHAIN_TRADE_TYPE.RANGO, - symbiosis: ON_CHAIN_TRADE_TYPE.SYMBIOSIS_SWAP, - lifi: ON_CHAIN_TRADE_TYPE.LIFI, - xy: ON_CHAIN_TRADE_TYPE.XY_DEX -}; diff --git a/src/features/common/providers/rango/utils/rango-utils.ts b/src/features/common/providers/rango/utils/rango-utils.ts index b4cbcc904c..a153605f1c 100644 --- a/src/features/common/providers/rango/utils/rango-utils.ts +++ b/src/features/common/providers/rango/utils/rango-utils.ts @@ -10,7 +10,10 @@ import { } from 'src/core/blockchain/web3-public-service/web3-public/models/tx-status'; import { CROSS_CHAIN_TRADE_TYPE } from 'src/features/cross-chain/calculation-manager/models/cross-chain-trade-type'; import { BridgeType } from 'src/features/cross-chain/calculation-manager/providers/common/models/bridge-type'; -import { OnChainTradeType } from 'src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type'; +import { + ON_CHAIN_TRADE_TYPE, + OnChainTradeType +} from 'src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type'; import { rangoApiBlockchainNames, RangoBlockchainName } from '../models/rango-api-blockchain-names'; import { RANGO_SWAP_STATUS, RangoSwapStatus } from '../models/rango-api-status-types'; @@ -63,8 +66,12 @@ export class RangoUtils { } public static getTradeTypeForRubic( - rangoTradeType: RangoTradeType + rangoTradeType: RangoTradeType, + type: 'cross-chain' | 'on-chain' ): BridgeType | OnChainTradeType { - return RANGO_TO_RUBIC_PROVIDERS[rangoTradeType] || CROSS_CHAIN_TRADE_TYPE.RANGO; + if (type === 'cross-chain') { + return RANGO_TO_RUBIC_PROVIDERS[rangoTradeType] || CROSS_CHAIN_TRADE_TYPE.RANGO; + } + return RANGO_TO_RUBIC_PROVIDERS[rangoTradeType] || ON_CHAIN_TRADE_TYPE.RANGO; } } diff --git a/src/features/cross-chain/calculation-manager/providers/bridgers-provider/utils/get-proxy-method-arguments-and-transaction-data.ts b/src/features/cross-chain/calculation-manager/providers/bridgers-provider/utils/get-proxy-method-arguments-and-transaction-data.ts index a6654d5493..81a72e04d6 100644 --- a/src/features/cross-chain/calculation-manager/providers/bridgers-provider/utils/get-proxy-method-arguments-and-transaction-data.ts +++ b/src/features/cross-chain/calculation-manager/providers/bridgers-provider/utils/get-proxy-method-arguments-and-transaction-data.ts @@ -1,5 +1,6 @@ import BigNumber from 'bignumber.js'; -import { NotSupportedTokensError, RubicSdkError } from 'src/common/errors'; +import { NotSupportedTokensError } from 'src/common/errors'; +import { NotSupportedRegionError } from 'src/common/errors/swap/not-supported-region'; import { PriceTokenAmount } from 'src/common/tokens'; import { BLOCKCHAIN_NAME } from 'src/core/blockchain/models/blockchain-name'; import { BlockchainsInfo } from 'src/core/blockchain/utils/blockchains-info/blockchains-info'; @@ -71,7 +72,7 @@ export async function getProxyMethodArgumentsAndTransactionData< swapRequest ); if (swapData.resCode === 1146) { - throw new RubicSdkError('[BridgersApiError] Your region is not supported!'); + throw new NotSupportedRegionError(); } if (!swapData.data?.txData) { throw new NotSupportedTokensError(); diff --git a/src/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.ts b/src/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.ts index 6c1c0f0762..689507d908 100644 --- a/src/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.ts +++ b/src/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-provider.ts @@ -147,7 +147,8 @@ export class RangoCrossChainProvider extends CrossChainProvider { const type = rangoPath.swapperType === 'DEX' ? 'on-chain' : 'cross-chain'; const provider = RangoUtils.getTradeTypeForRubic( - rangoPath.swapper.swapperGroup as RangoTradeType + rangoPath.swapper.swapperGroup as RangoTradeType, + type ); const fromBlockchain = RangoUtils.getRubicBlockchainByRangoBlockchain( diff --git a/src/features/cross-chain/calculation-manager/providers/xy-provider/xy-cross-chain-provider.ts b/src/features/cross-chain/calculation-manager/providers/xy-provider/xy-cross-chain-provider.ts index bbd1f7bc2a..7c3bbd7f7b 100644 --- a/src/features/cross-chain/calculation-manager/providers/xy-provider/xy-cross-chain-provider.ts +++ b/src/features/cross-chain/calculation-manager/providers/xy-provider/xy-cross-chain-provider.ts @@ -221,8 +221,7 @@ export class XyCrossChainProvider extends CrossChainProvider { if (transitFromAddress) { routePath.push({ type: 'on-chain', - // @TODO provider: ON_CHAIN_TRADE_TYPE.XY_DEX, - provider: ON_CHAIN_TRADE_TYPE.ONE_INCH, + provider: ON_CHAIN_TRADE_TYPE.XY_DEX, path: [fromToken, fromTokenAmount] }); } @@ -234,8 +233,7 @@ export class XyCrossChainProvider extends CrossChainProvider { if (transitToAddress) { routePath.push({ type: 'on-chain', - // @TODO provider: ON_CHAIN_TRADE_TYPE.XY_DEX, - provider: ON_CHAIN_TRADE_TYPE.ONE_INCH, + provider: ON_CHAIN_TRADE_TYPE.XY_DEX, path: [toTokenAmount, toToken] }); }