rubic-sdk 5.32.4-alpha.wl.1 → 5.32.4-alpha.wl.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/lib/features/common/providers/bridgers/models/bridgers-swap-api.d.ts +1 -0
  2. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.d.ts +1 -3
  3. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js +4 -6
  4. package/lib/features/cross-chain/calculation-manager/constants/cross-chain-providers.js.map +1 -1
  5. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.d.ts +0 -1
  6. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js +0 -1
  7. package/lib/features/cross-chain/calculation-manager/models/cross-chain-trade-type.js.map +1 -1
  8. package/lib/features/cross-chain/calculation-manager/providers/archon-bridge/archon-bridge-trade.js +1 -2
  9. package/lib/features/cross-chain/calculation-manager/providers/archon-bridge/archon-bridge-trade.js.map +1 -1
  10. package/lib/features/cross-chain/calculation-manager/providers/bridgers-provider/evm-bridgers-trade/evm-bridgers-cross-chain-trade.js +1 -2
  11. package/lib/features/cross-chain/calculation-manager/providers/bridgers-provider/evm-bridgers-trade/evm-bridgers-cross-chain-trade.js.map +1 -1
  12. package/lib/features/cross-chain/calculation-manager/providers/bridgers-provider/utils/get-proxy-method-arguments-and-transaction-data.js +7 -0
  13. package/lib/features/cross-chain/calculation-manager/providers/bridgers-provider/utils/get-proxy-method-arguments-and-transaction-data.js.map +1 -1
  14. package/lib/features/cross-chain/calculation-manager/providers/cbridge/cbridge-cross-chain-trade.js +1 -2
  15. package/lib/features/cross-chain/calculation-manager/providers/cbridge/cbridge-cross-chain-trade.js.map +1 -1
  16. package/lib/features/cross-chain/calculation-manager/providers/changenow-provider/changenow-cross-chain-trade.js +1 -2
  17. package/lib/features/cross-chain/calculation-manager/providers/changenow-provider/changenow-cross-chain-trade.js.map +1 -1
  18. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.js +4 -7
  19. package/lib/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade.js.map +1 -1
  20. package/lib/features/cross-chain/calculation-manager/providers/common/models/bridge-type.d.ts +1 -2
  21. package/lib/features/cross-chain/calculation-manager/providers/common/models/default-bridge-type.d.ts +0 -1
  22. package/lib/features/cross-chain/calculation-manager/providers/debridge-provider/chains/debridge-evm-cross-chain-trade.js +0 -1
  23. package/lib/features/cross-chain/calculation-manager/providers/debridge-provider/chains/debridge-evm-cross-chain-trade.js.map +1 -1
  24. package/lib/features/cross-chain/calculation-manager/providers/layerzero-bridge/layerzero-bridge-trade.js +1 -2
  25. package/lib/features/cross-chain/calculation-manager/providers/layerzero-bridge/layerzero-bridge-trade.js.map +1 -1
  26. package/lib/features/cross-chain/calculation-manager/providers/lifi-provider/lifi-cross-chain-trade.js +1 -2
  27. package/lib/features/cross-chain/calculation-manager/providers/lifi-provider/lifi-cross-chain-trade.js.map +1 -1
  28. package/lib/features/cross-chain/calculation-manager/providers/orbiter-bridge/orbiter-bridge-trade.js +1 -2
  29. package/lib/features/cross-chain/calculation-manager/providers/orbiter-bridge/orbiter-bridge-trade.js.map +1 -1
  30. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js +1 -2
  31. package/lib/features/cross-chain/calculation-manager/providers/pulse-chain-bridge/pulse-chain-cross-chain-trade.js.map +1 -1
  32. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.js +1 -2
  33. package/lib/features/cross-chain/calculation-manager/providers/rango-provider/rango-cross-chain-trade.js.map +1 -1
  34. package/lib/features/cross-chain/calculation-manager/providers/squidrouter-provider/squidrouter-cross-chain-trade.js +0 -1
  35. package/lib/features/cross-chain/calculation-manager/providers/squidrouter-provider/squidrouter-cross-chain-trade.js.map +1 -1
  36. package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.js +1 -2
  37. package/lib/features/cross-chain/calculation-manager/providers/stargate-provider/stargate-cross-chain-trade.js.map +1 -1
  38. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.js +1 -2
  39. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.js.map +1 -1
  40. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js +2 -3
  41. package/lib/features/cross-chain/status-manager/cross-chain-status-manager.js.map +1 -1
  42. package/lib/features/on-chain/calculation-manager/models/on-chain-manager-aggregators-types.d.ts +0 -2
  43. package/lib/features/on-chain/calculation-manager/models/on-chain-manager-aggregators-types.js +2 -2
  44. package/lib/features/on-chain/calculation-manager/models/on-chain-manager-aggregators-types.js.map +1 -1
  45. package/lib/features/on-chain/calculation-manager/providers/common/on-chain-trade/evm-on-chain-trade/evm-on-chain-trade.js +0 -1
  46. package/lib/features/on-chain/calculation-manager/providers/common/on-chain-trade/evm-on-chain-trade/evm-on-chain-trade.js.map +1 -1
  47. package/lib/index.d.ts +0 -11
  48. package/lib/index.js +0 -11
  49. package/lib/index.js.map +1 -1
  50. package/package.json +2 -2
  51. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-blockchain-supported-pools.d.ts +0 -2
  52. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-blockchain-supported-pools.js +0 -72
  53. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-blockchain-supported-pools.js.map +0 -1
  54. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-bridge-token.d.ts +0 -11
  55. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-bridge-token.js +0 -14
  56. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-bridge-token.js.map +0 -1
  57. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-chain-id.d.ts +0 -2
  58. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-chain-id.js +0 -24
  59. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-chain-id.js.map +0 -1
  60. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-contract-address.d.ts +0 -5
  61. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-contract-address.js +0 -81
  62. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-contract-address.js.map +0 -1
  63. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-cross-chain-supported-blockchains.d.ts +0 -2
  64. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-cross-chain-supported-blockchains.js +0 -24
  65. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-cross-chain-supported-blockchains.js.map +0 -1
  66. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-pool-abi.d.ts +0 -5
  67. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-pool-abi.js +0 -181
  68. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-pool-abi.js.map +0 -1
  69. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-pool-id.d.ts +0 -16
  70. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-pool-id.js +0 -26
  71. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-pool-id.js.map +0 -1
  72. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-token-address.d.ts +0 -5
  73. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-token-address.js +0 -64
  74. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-token-address.js.map +0 -1
  75. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/modal/stargate-v2-quote-params-struct.d.ts +0 -17
  76. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/modal/stargate-v2-quote-params-struct.js +0 -3
  77. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/modal/stargate-v2-quote-params-struct.js.map +0 -1
  78. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-provider.d.ts +0 -18
  79. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-provider.js +0 -198
  80. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-provider.js.map +0 -1
  81. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-trade.d.ts +0 -56
  82. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-trade.js +0 -170
  83. package/lib/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-trade.js.map +0 -1
@@ -1,5 +0,0 @@
1
- import { StargateV2BridgeToken } from './stargate-v2-bridge-token';
2
- import { StargateV2SupportedBlockchains } from './stargate-v2-cross-chain-supported-blockchains';
3
- type StargateV2TokenAddress = Record<StargateV2SupportedBlockchains, Partial<Record<string, StargateV2BridgeToken>>>;
4
- export declare const stargateV2TokenAddress: StargateV2TokenAddress;
5
- export {};
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stargateV2TokenAddress = void 0;
4
- const blockchain_name_1 = require("../../../../../../core/blockchain/models/blockchain-name");
5
- const stargate_v2_bridge_token_1 = require("./stargate-v2-bridge-token");
6
- exports.stargateV2TokenAddress = {
7
- [blockchain_name_1.BLOCKCHAIN_NAME.ETHEREUM]: {
8
- '0x0000000000000000000000000000000000000000': stargate_v2_bridge_token_1.stargateV2BridgeToken.ETH,
9
- '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC,
10
- '0xdac17f958d2ee523a2206206994597c13d831ec7': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT,
11
- '0x9e32b13ce7f2e80a01932b42553652e053d6ed8e': stargate_v2_bridge_token_1.stargateV2BridgeToken.METIS,
12
- '0xd5f7838f5c461feff7fe49ea5ebaf7728bb0adfa': stargate_v2_bridge_token_1.stargateV2BridgeToken.METH
13
- },
14
- [blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN]: {
15
- '0x55d398326f99059fF775485246999027B3197955': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT
16
- },
17
- [blockchain_name_1.BLOCKCHAIN_NAME.AVALANCHE]: {
18
- '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC,
19
- '0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT
20
- },
21
- [blockchain_name_1.BLOCKCHAIN_NAME.POLYGON]: {
22
- '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC,
23
- '0xc2132d05d31c914a87c6611c10748aeb04b58e8f': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT
24
- },
25
- [blockchain_name_1.BLOCKCHAIN_NAME.ARBITRUM]: {
26
- '0x0000000000000000000000000000000000000000': stargate_v2_bridge_token_1.stargateV2BridgeToken.ETH,
27
- '0xaf88d065e77c8cc2239327c5edb3a432268e5831': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC,
28
- '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT
29
- },
30
- [blockchain_name_1.BLOCKCHAIN_NAME.OPTIMISM]: {
31
- '0x0000000000000000000000000000000000000000': stargate_v2_bridge_token_1.stargateV2BridgeToken.ETH,
32
- '0x0b2c639c533813f4aa9d7837caf62653d097ff85': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC,
33
- '0x94b008aa00579c1307b0ef2c499ad98a8ce58e58': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT
34
- },
35
- [blockchain_name_1.BLOCKCHAIN_NAME.METIS]: {
36
- '0xbb06dca3ae6887fabf931640f67cab3e3a16f4dc': stargate_v2_bridge_token_1.stargateV2BridgeToken.mUSD,
37
- '0x420000000000000000000000000000000000000a': stargate_v2_bridge_token_1.stargateV2BridgeToken.WETH,
38
- '0x0000000000000000000000000000000000000000': stargate_v2_bridge_token_1.stargateV2BridgeToken.METIS
39
- },
40
- [blockchain_name_1.BLOCKCHAIN_NAME.LINEA]: {
41
- '0x0000000000000000000000000000000000000000': stargate_v2_bridge_token_1.stargateV2BridgeToken.ETH
42
- },
43
- [blockchain_name_1.BLOCKCHAIN_NAME.MANTLE]: {
44
- '0x09bc4e0d864854c6afb6eb9a9cdf58ac190d0df9': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC,
45
- '0x201eba5cc46d216ce6dc03f6a759e8e766e956ae': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT,
46
- '0xdeaddeaddeaddeaddeaddeaddeaddeaddead1111': stargate_v2_bridge_token_1.stargateV2BridgeToken.WETH,
47
- '0xcda86a272531e8640cd7f1a92c01839911b90bb0': stargate_v2_bridge_token_1.stargateV2BridgeToken.METH
48
- },
49
- [blockchain_name_1.BLOCKCHAIN_NAME.BASE]: {
50
- '0x0000000000000000000000000000000000000000': stargate_v2_bridge_token_1.stargateV2BridgeToken.ETH,
51
- '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC
52
- },
53
- [blockchain_name_1.BLOCKCHAIN_NAME.KAVA]: {
54
- '0x919c1c267bc06a7039e03fcc2ef738525769109c': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDT
55
- },
56
- [blockchain_name_1.BLOCKCHAIN_NAME.SCROLL]: {
57
- '0x0000000000000000000000000000000000000000': stargate_v2_bridge_token_1.stargateV2BridgeToken.ETH,
58
- '0x06efdbff2a14a7c8e15944d1f4a48f9f95f663a4': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDCe
59
- },
60
- [blockchain_name_1.BLOCKCHAIN_NAME.AURORA]: {
61
- '0x368ebb46aca6b8d0787c96b2b20bd3cc3f2c45f7': stargate_v2_bridge_token_1.stargateV2BridgeToken.USDC
62
- }
63
- };
64
- //# sourceMappingURL=stargate-v2-token-address.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stargate-v2-token-address.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/stargate-v2-provider/constants/stargate-v2-token-address.ts"],"names":[],"mappings":";;;AAAA,gFAA6E;AAE7E,yEAA0F;AAQ7E,QAAA,sBAAsB,GAA2B;IAC1D,CAAC,iCAAe,CAAC,QAAQ,CAAC,EAAE;QACxB,4CAA4C,EAAE,gDAAqB,CAAC,GAAG;QACvE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,KAAK;QACzE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,mBAAmB,CAAC,EAAE;QACnC,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,SAAS,CAAC,EAAE;QACzB,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,OAAO,CAAC,EAAE;QACvB,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,QAAQ,CAAC,EAAE;QACxB,4CAA4C,EAAE,gDAAqB,CAAC,GAAG;QACvE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,QAAQ,CAAC,EAAE;QACxB,4CAA4C,EAAE,gDAAqB,CAAC,GAAG;QACvE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,KAAK,CAAC,EAAE;QACrB,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,KAAK;KAC5E;IACD,CAAC,iCAAe,CAAC,KAAK,CAAC,EAAE;QACrB,4CAA4C,EAAE,gDAAqB,CAAC,GAAG;KAC1E;IACD,CAAC,iCAAe,CAAC,MAAM,CAAC,EAAE;QACtB,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;QACxE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,IAAI,CAAC,EAAE;QACpB,4CAA4C,EAAE,gDAAqB,CAAC,GAAG;QACvE,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,IAAI,CAAC,EAAE;QACpB,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;IACD,CAAC,iCAAe,CAAC,MAAM,CAAC,EAAE;QACtB,4CAA4C,EAAE,gDAAqB,CAAC,GAAG;QACvE,4CAA4C,EAAE,gDAAqB,CAAC,KAAK;KAC5E;IACD,CAAC,iCAAe,CAAC,MAAM,CAAC,EAAE;QACtB,4CAA4C,EAAE,gDAAqB,CAAC,IAAI;KAC3E;CACJ,CAAC"}
@@ -1,17 +0,0 @@
1
- export interface StargateV2QuoteParamsStruct {
2
- dstEid: number;
3
- to: string;
4
- amountLD: string;
5
- minAmountLD: string;
6
- extraOptions: string;
7
- composeMsg: string;
8
- oftCmd: string;
9
- }
10
- export interface StargateV2QuoteOFTResponse {
11
- amountSentLD?: string[];
12
- amountReceivedLD: string[];
13
- }
14
- export interface StargateV2MessagingFee {
15
- nativeFee: string;
16
- lzTokenFee: string;
17
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=stargate-v2-quote-params-struct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stargate-v2-quote-params-struct.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/stargate-v2-provider/modal/stargate-v2-quote-params-struct.ts"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import { PriceToken, PriceTokenAmount } from '../../../../../common/tokens';
2
- import { BlockchainName, EvmBlockchainName } from '../../../../../core/blockchain/models/blockchain-name';
3
- import { RequiredCrossChainOptions } from '../../models/cross-chain-options';
4
- import { CrossChainProvider } from '../common/cross-chain-provider';
5
- import { CalculationResult } from '../common/models/calculation-result';
6
- import { FeeInfo } from '../common/models/fee-info';
7
- import { RubicStep } from '../common/models/rubicStep';
8
- export declare class StargateV2CrossChainProvider extends CrossChainProvider {
9
- readonly type: "stargate_v2";
10
- isSupportedBlockchain(fromBlockchain: BlockchainName): boolean;
11
- calculate(from: PriceTokenAmount<EvmBlockchainName>, toToken: PriceToken<EvmBlockchainName>, options: RequiredCrossChainOptions): Promise<CalculationResult>;
12
- private checkMaxAmount;
13
- protected getFeeInfo(fromBlockchain: Partial<EvmBlockchainName>, providerAddress: string, percentFeeToken: PriceTokenAmount, useProxy: boolean): Promise<FeeInfo>;
14
- private checkSupportedPools;
15
- private getReceiveAmount;
16
- protected getRoutePath(from: PriceTokenAmount, to: PriceTokenAmount): Promise<RubicStep[]>;
17
- private getNativeFee;
18
- }
@@ -1,198 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StargateV2CrossChainProvider = void 0;
7
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
- const ethers_1 = require("ethers");
9
- const errors_1 = require("../../../../../common/errors");
10
- const tokens_1 = require("../../../../../common/tokens");
11
- const native_tokens_1 = require("../../../../../common/tokens/constants/native-tokens");
12
- const errors_2 = require("../../../../../common/utils/errors");
13
- const web3_pure_1 = require("../../../../../core/blockchain/web3-pure/web3-pure");
14
- const injector_1 = require("../../../../../core/injector/injector");
15
- const fake_wallet_address_1 = require("../../../../common/constants/fake-wallet-address");
16
- const get_from_without_fee_1 = require("../../../../common/utils/get-from-without-fee");
17
- const cross_chain_trade_type_1 = require("../../models/cross-chain-trade-type");
18
- const cross_chain_provider_1 = require("../common/cross-chain-provider");
19
- const proxy_cross_chain_evm_trade_1 = require("../common/proxy-cross-chain-evm-facade/proxy-cross-chain-evm-trade");
20
- const stargate_v2_blockchain_supported_pools_1 = require("./constants/stargate-v2-blockchain-supported-pools");
21
- const stargate_v2_chain_id_1 = require("./constants/stargate-v2-chain-id");
22
- const stargate_v2_contract_address_1 = require("./constants/stargate-v2-contract-address");
23
- const stargate_v2_cross_chain_supported_blockchains_1 = require("./constants/stargate-v2-cross-chain-supported-blockchains");
24
- const stargate_v2_pool_abi_1 = require("./constants/stargate-v2-pool-abi");
25
- const stargate_v2_pool_id_1 = require("./constants/stargate-v2-pool-id");
26
- const stargate_v2_token_address_1 = require("./constants/stargate-v2-token-address");
27
- const stargate_v2_cross_chain_trade_1 = require("./stargate-v2-cross-chain-trade");
28
- class StargateV2CrossChainProvider extends cross_chain_provider_1.CrossChainProvider {
29
- constructor() {
30
- super(...arguments);
31
- this.type = cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.STARGATE_V2;
32
- }
33
- isSupportedBlockchain(fromBlockchain) {
34
- return stargate_v2_cross_chain_supported_blockchains_1.stargateV2SupportedBlockchains.some(supportedBlockchain => supportedBlockchain === fromBlockchain);
35
- }
36
- async calculate(from, toToken, options) {
37
- if (!this.isSupportedBlockchain(from.blockchain)) {
38
- throw new errors_1.NotSupportedBlockchain();
39
- }
40
- try {
41
- const isSupportedPools = this.checkSupportedPools(from, toToken);
42
- if (!isSupportedPools) {
43
- return {
44
- trade: null,
45
- error: new errors_1.NotSupportedTokensError(),
46
- tradeType: this.type
47
- };
48
- }
49
- const toBlockchain = toToken.blockchain;
50
- const useProxy = options?.useProxy?.[this.type] ?? true;
51
- const fromTokenAddress = from.address.toLowerCase();
52
- const dstChainId = stargate_v2_chain_id_1.stargateV2ChainIds[toBlockchain];
53
- const feeInfo = await this.getFeeInfo(from.blockchain, options.providerAddress, from, useProxy);
54
- const receiverAddress = options?.receiverAddress ||
55
- this.getWalletAddress(from.blockchain) ||
56
- fake_wallet_address_1.FAKE_WALLET_ADDRESS;
57
- const fromWithoutFee = (0, get_from_without_fee_1.getFromWithoutFee)(from, feeInfo.rubicProxy?.platformFee?.percent);
58
- const maxAmountError = await this.checkMaxAmount(from.blockchain, fromTokenAddress, fromWithoutFee.weiAmount);
59
- if (maxAmountError) {
60
- return {
61
- trade: null,
62
- error: maxAmountError,
63
- tradeType: this.type
64
- };
65
- }
66
- const amountLD = fromWithoutFee.stringWeiAmount;
67
- const sendParams = {
68
- dstEid: dstChainId,
69
- to: ethers_1.ethers.utils.hexZeroPad(receiverAddress, 32),
70
- amountLD: amountLD,
71
- minAmountLD: amountLD,
72
- extraOptions: '0x',
73
- composeMsg: '0x',
74
- oftCmd: '0x'
75
- };
76
- const { amountReceivedLD } = await this.getReceiveAmount(sendParams, from.blockchain, fromTokenAddress);
77
- const amountReceived = amountReceivedLD[1];
78
- const slippageAmount = new bignumber_js_1.default(amountReceived).multipliedBy(options.slippageTolerance);
79
- const minReceivedAmount = new bignumber_js_1.default(amountReceived).minus(slippageAmount);
80
- sendParams.amountLD = amountReceived;
81
- sendParams.minAmountLD = minReceivedAmount.toFixed(0);
82
- const messagingFee = await this.getNativeFee(sendParams, from.blockchain, fromTokenAddress);
83
- const nativeToken = native_tokens_1.nativeTokensList[from.blockchain];
84
- const cryptoFeeToken = await tokens_1.PriceTokenAmount.createFromToken({
85
- ...nativeToken,
86
- weiAmount: new bignumber_js_1.default(messagingFee.nativeFee)
87
- });
88
- const to = new tokens_1.PriceTokenAmount({
89
- ...toToken.asStruct,
90
- tokenAmount: web3_pure_1.Web3Pure.fromWei(amountReceived, fromWithoutFee.decimals)
91
- });
92
- const routePath = await this.getRoutePath(from, to);
93
- const gasData = options.gasCalculation === 'enabled'
94
- ? await stargate_v2_cross_chain_trade_1.StargateV2CrossChainTrade.getGasData(from, to, feeInfo, options.slippageTolerance, options.providerAddress, routePath, sendParams, messagingFee, options.receiverAddress)
95
- : null;
96
- return {
97
- trade: new stargate_v2_cross_chain_trade_1.StargateV2CrossChainTrade({
98
- from,
99
- to,
100
- feeInfo: {
101
- ...feeInfo,
102
- provider: {
103
- cryptoFee: {
104
- amount: web3_pure_1.Web3Pure.fromWei(messagingFee.nativeFee, nativeToken.decimals),
105
- token: cryptoFeeToken
106
- }
107
- }
108
- },
109
- slippageTolerance: options.slippageTolerance,
110
- gasData,
111
- sendParams,
112
- messagingFee,
113
- priceImpact: from.calculatePriceImpactPercent(to),
114
- toTokenAmountMin: web3_pure_1.Web3Pure.fromWei(minReceivedAmount, fromWithoutFee.decimals)
115
- }, options.providerAddress, routePath),
116
- tradeType: this.type
117
- };
118
- }
119
- catch (err) {
120
- return {
121
- trade: null,
122
- error: (0, errors_2.parseError)(err),
123
- tradeType: this.type
124
- };
125
- }
126
- }
127
- async checkMaxAmount(fromBlockchain, tokenAddress, amountToSend) {
128
- const tokenSymbol = stargate_v2_token_address_1.stargateV2TokenAddress[fromBlockchain][tokenAddress];
129
- const contractAddress = stargate_v2_contract_address_1.stargateV2ContractAddress[fromBlockchain][tokenSymbol];
130
- const maxAmount = await injector_1.Injector.web3PublicService
131
- .getWeb3Public(fromBlockchain)
132
- .callContractMethod(contractAddress, stargate_v2_pool_abi_1.stargateV2PoolBalanceAbi, 'poolBalance');
133
- const maxAmounSend = new bignumber_js_1.default(maxAmount);
134
- if (amountToSend.gt(maxAmounSend)) {
135
- return new errors_1.MaxAmountError(maxAmounSend, tokenSymbol);
136
- }
137
- return null;
138
- }
139
- async getFeeInfo(fromBlockchain, providerAddress, percentFeeToken, useProxy) {
140
- return proxy_cross_chain_evm_trade_1.ProxyCrossChainEvmTrade.getFeeInfo(fromBlockchain, providerAddress, percentFeeToken, useProxy);
141
- }
142
- checkSupportedPools(from, to) {
143
- const fromBlockchain = from.blockchain;
144
- const toBlockchain = to.blockchain;
145
- const srcTokenPool = (0, stargate_v2_pool_id_1.getTokenPoolByAddress)(fromBlockchain, from.address);
146
- const dstTokenPool = (0, stargate_v2_pool_id_1.getTokenPoolByAddress)(toBlockchain, to.address);
147
- if (!srcTokenPool || !dstTokenPool) {
148
- return false;
149
- }
150
- const srcSupportedPools = stargate_v2_blockchain_supported_pools_1.stargateV2BlockchainSupportedPools[from.blockchain];
151
- const dstSupportedPools = stargate_v2_blockchain_supported_pools_1.stargateV2BlockchainSupportedPools[to.blockchain];
152
- return (srcSupportedPools.includes(srcTokenPool) &&
153
- dstSupportedPools.includes(dstTokenPool) &&
154
- srcTokenPool === dstTokenPool);
155
- }
156
- async getReceiveAmount(sendParam, fromBlockchain, tokenAddress) {
157
- const tokenSymbol = stargate_v2_token_address_1.stargateV2TokenAddress[fromBlockchain][tokenAddress];
158
- const contractAddress = stargate_v2_contract_address_1.stargateV2ContractAddress[fromBlockchain][tokenSymbol];
159
- try {
160
- const { 2: amountReceivedLD } = await injector_1.Injector.web3PublicService
161
- .getWeb3Public(fromBlockchain)
162
- .callContractMethod(contractAddress, stargate_v2_pool_abi_1.stargateV2PoolAbi, 'quoteOFT', [sendParam]);
163
- return {
164
- amountReceivedLD
165
- };
166
- }
167
- catch (err) {
168
- throw new errors_1.RubicSdkError(err?.message);
169
- }
170
- }
171
- async getRoutePath(from, to) {
172
- return [
173
- {
174
- type: 'cross-chain',
175
- provider: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.STARGATE_V2,
176
- path: [from, to]
177
- }
178
- ];
179
- }
180
- async getNativeFee(sendParam, fromBlockchain, tokenAddress) {
181
- const tokenSymbol = stargate_v2_token_address_1.stargateV2TokenAddress[fromBlockchain][tokenAddress];
182
- const contractAddress = stargate_v2_contract_address_1.stargateV2ContractAddress[fromBlockchain][tokenSymbol];
183
- try {
184
- const { 0: nativeFee, 1: lzTokenFee } = await injector_1.Injector.web3PublicService
185
- .getWeb3Public(fromBlockchain)
186
- .callContractMethod(contractAddress, stargate_v2_pool_abi_1.stargateV2SendQuoteAbi, 'quoteSend', [sendParam, false]);
187
- return {
188
- nativeFee,
189
- lzTokenFee
190
- };
191
- }
192
- catch (err) {
193
- throw new errors_1.RubicSdkError(err?.message);
194
- }
195
- }
196
- }
197
- exports.StargateV2CrossChainProvider = StargateV2CrossChainProvider;
198
- //# sourceMappingURL=stargate-v2-cross-chain-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stargate-v2-cross-chain-provider.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-provider.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import BigNumber from 'bignumber.js';
2
- import { PriceTokenAmount } from '../../../../../common/tokens';
3
- import { BlockchainName, EvmBlockchainName } from '../../../../../core/blockchain/models/blockchain-name';
4
- import { EvmWeb3Private } from '../../../../../core/blockchain/web3-private-service/web3-private/evm-web3-private/evm-web3-private';
5
- import { EvmEncodeConfig } from '../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/models/evm-encode-config';
6
- import { ContractParams } from '../../../../common/models/contract-params';
7
- import { SwapTransactionOptions } from '../../../../common/models/swap-transaction-options';
8
- import { EvmCrossChainTrade } from '../common/emv-cross-chain-trade/evm-cross-chain-trade';
9
- import { GasData } from '../common/emv-cross-chain-trade/models/gas-data';
10
- import { FeeInfo } from '../common/models/fee-info';
11
- import { GetContractParamsOptions } from '../common/models/get-contract-params-options';
12
- import { OnChainSubtype } from '../common/models/on-chain-subtype';
13
- import { RubicStep } from '../common/models/rubicStep';
14
- import { TradeInfo } from '../common/models/trade-info';
15
- import { StargateV2SupportedBlockchains } from './constants/stargate-v2-cross-chain-supported-blockchains';
16
- import { StargateV2MessagingFee, StargateV2QuoteParamsStruct } from './modal/stargate-v2-quote-params-struct';
17
- export declare class StargateV2CrossChainTrade extends EvmCrossChainTrade {
18
- protected get methodName(): string;
19
- static getGasData(from: PriceTokenAmount<EvmBlockchainName>, toToken: PriceTokenAmount<EvmBlockchainName>, feeInfo: FeeInfo, slippageTolerance: number, providerAddress: string, routePath: RubicStep[], sendParams: StargateV2QuoteParamsStruct, messagingFee: StargateV2MessagingFee, receiverAddress?: string): Promise<GasData | null>;
20
- protected get web3Private(): EvmWeb3Private;
21
- readonly from: PriceTokenAmount<EvmBlockchainName>;
22
- readonly to: PriceTokenAmount<BlockchainName>;
23
- readonly feeInfo: FeeInfo;
24
- readonly type: "stargate_v2";
25
- readonly gasData: GasData;
26
- readonly toTokenAmountMin: BigNumber;
27
- readonly isAggregator = false;
28
- readonly slippageTolerance: number;
29
- readonly priceImpact: number | null;
30
- readonly onChainSubtype: OnChainSubtype;
31
- readonly bridgeType: "stargate_v2";
32
- readonly messagingFee: StargateV2MessagingFee;
33
- private readonly fromTokenAddress;
34
- get fromBlockchain(): StargateV2SupportedBlockchains;
35
- protected get fromContractAddress(): string;
36
- private readonly stargateV2SendParams;
37
- constructor(crossChainTrade: {
38
- from: PriceTokenAmount<EvmBlockchainName>;
39
- to: PriceTokenAmount<EvmBlockchainName>;
40
- slippageTolerance: number;
41
- gasData: GasData | null;
42
- feeInfo: FeeInfo;
43
- sendParams: StargateV2QuoteParamsStruct;
44
- messagingFee: StargateV2MessagingFee;
45
- priceImpact: number | null;
46
- toTokenAmountMin: BigNumber;
47
- }, providerAddress: string, routePath: RubicStep[]);
48
- protected getContractParams(options: GetContractParamsOptions): Promise<ContractParams>;
49
- protected getTransactionConfigAndAmount(_receiverAddress?: string | undefined): Promise<{
50
- config: EvmEncodeConfig;
51
- amount: string;
52
- }>;
53
- protected swapDirect(options?: SwapTransactionOptions): Promise<string>;
54
- getTradeAmountRatio(fromUsd: BigNumber): BigNumber;
55
- getTradeInfo(): TradeInfo;
56
- }
@@ -1,170 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StargateV2CrossChainTrade = void 0;
7
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
- const errors_1 = require("../../../../../common/errors");
9
- const evm_web3_pure_1 = require("../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
10
- const injector_1 = require("../../../../../core/injector/injector");
11
- const cross_chain_trade_type_1 = require("../../models/cross-chain-trade-type");
12
- const get_cross_chain_gas_data_1 = require("../../utils/get-cross-chain-gas-data");
13
- const rubic_proxy_contract_address_1 = require("../common/constants/rubic-proxy-contract-address");
14
- const evm_common_cross_chain_abi_1 = require("../common/emv-cross-chain-trade/constants/evm-common-cross-chain-abi");
15
- const gateway_rubic_cross_chain_abi_1 = require("../common/emv-cross-chain-trade/constants/gateway-rubic-cross-chain-abi");
16
- const evm_cross_chain_trade_1 = require("../common/emv-cross-chain-trade/evm-cross-chain-trade");
17
- const bridge_type_1 = require("../common/models/bridge-type");
18
- const proxy_cross_chain_evm_trade_1 = require("../common/proxy-cross-chain-evm-facade/proxy-cross-chain-evm-trade");
19
- const stargate_v2_contract_address_1 = require("./constants/stargate-v2-contract-address");
20
- const stargate_v2_pool_abi_1 = require("./constants/stargate-v2-pool-abi");
21
- const stargate_v2_token_address_1 = require("./constants/stargate-v2-token-address");
22
- class StargateV2CrossChainTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
23
- get methodName() {
24
- return 'startBridgeTokensViaGenericCrossChain';
25
- }
26
- static async getGasData(from, toToken, feeInfo, slippageTolerance, providerAddress, routePath, sendParams, messagingFee, receiverAddress) {
27
- try {
28
- const trade = new StargateV2CrossChainTrade({
29
- from,
30
- to: toToken,
31
- slippageTolerance,
32
- gasData: null,
33
- feeInfo,
34
- sendParams,
35
- messagingFee,
36
- priceImpact: 0,
37
- toTokenAmountMin: new bignumber_js_1.default(0)
38
- }, providerAddress || evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS, routePath);
39
- return (0, get_cross_chain_gas_data_1.getCrossChainGasData)(trade, receiverAddress);
40
- }
41
- catch (_err) {
42
- return null;
43
- }
44
- }
45
- get web3Private() {
46
- return injector_1.Injector.web3PrivateService.getWeb3PrivateByBlockchain(this.from.blockchain);
47
- }
48
- get fromBlockchain() {
49
- return this.from.blockchain;
50
- }
51
- get fromContractAddress() {
52
- const fromTokenSymbol = stargate_v2_token_address_1.stargateV2TokenAddress[this.from.blockchain][this.fromTokenAddress];
53
- return this.isProxyTrade
54
- ? rubic_proxy_contract_address_1.rubicProxyContractAddress[this.fromBlockchain].gateway
55
- : stargate_v2_contract_address_1.stargateV2ContractAddress?.[this.fromBlockchain]?.[fromTokenSymbol];
56
- }
57
- constructor(crossChainTrade, providerAddress, routePath) {
58
- super(providerAddress, routePath);
59
- this.type = cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.STARGATE_V2;
60
- this.isAggregator = false;
61
- this.onChainSubtype = { from: undefined, to: undefined };
62
- this.bridgeType = bridge_type_1.BRIDGE_TYPE.STARGATE_V2;
63
- this.from = crossChainTrade.from;
64
- this.to = crossChainTrade.to;
65
- this.feeInfo = crossChainTrade.feeInfo;
66
- this.gasData = crossChainTrade.gasData;
67
- this.slippageTolerance = crossChainTrade.slippageTolerance;
68
- this.stargateV2SendParams = crossChainTrade.sendParams;
69
- this.messagingFee = crossChainTrade.messagingFee;
70
- this.priceImpact = crossChainTrade.priceImpact;
71
- this.toTokenAmountMin = crossChainTrade.toTokenAmountMin;
72
- this.fromTokenAddress = this.from.address.toLowerCase();
73
- }
74
- async getContractParams(options) {
75
- const { data, value: providerValue, to } = await this.setTransactionConfig(false, options?.useCacheData || false, options?.receiverAddress);
76
- try {
77
- const bridgeData = proxy_cross_chain_evm_trade_1.ProxyCrossChainEvmTrade.getBridgeData({ ...options }, {
78
- walletAddress: this.walletAddress,
79
- fromTokenAmount: this.from,
80
- toTokenAmount: this.to,
81
- toAddress: undefined,
82
- srcChainTrade: null,
83
- providerAddress: this.providerAddress,
84
- type: `native:${this.type}`,
85
- fromAddress: this.walletAddress
86
- });
87
- const extraNativeFee = this.from.isNative
88
- ? new bignumber_js_1.default(providerValue).minus(this.from.stringWeiAmount).toFixed()
89
- : new bignumber_js_1.default(providerValue).toFixed();
90
- const providerData = await proxy_cross_chain_evm_trade_1.ProxyCrossChainEvmTrade.getGenericProviderData(to, data, this.fromBlockchain, to, extraNativeFee);
91
- const methodArguments = [bridgeData, providerData];
92
- const value = this.getSwapValue(providerValue);
93
- const transactionConfiguration = evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(rubic_proxy_contract_address_1.rubicProxyContractAddress[this.from.blockchain].router, evm_common_cross_chain_abi_1.evmCommonCrossChainAbi, this.methodName, methodArguments, value);
94
- const sendingToken = this.from.isNative ? [] : [this.from.address];
95
- const sendingAmount = this.from.isNative ? [] : [this.from.stringWeiAmount];
96
- return {
97
- contractAddress: rubic_proxy_contract_address_1.rubicProxyContractAddress[this.from.blockchain].gateway,
98
- contractAbi: gateway_rubic_cross_chain_abi_1.gatewayRubicCrossChainAbi,
99
- methodName: 'startViaRubic',
100
- methodArguments: [sendingToken, sendingAmount, transactionConfiguration.data],
101
- value
102
- };
103
- }
104
- catch (err) {
105
- console.log(err?.message);
106
- throw new errors_1.RubicSdkError(err?.message);
107
- }
108
- }
109
- async getTransactionConfigAndAmount(_receiverAddress) {
110
- const fromBlockchain = this.from.blockchain;
111
- const fromTokenSymbol = stargate_v2_token_address_1.stargateV2TokenAddress[fromBlockchain][this.fromTokenAddress];
112
- const contractAddress = stargate_v2_contract_address_1.stargateV2ContractAddress?.[fromBlockchain]?.[fromTokenSymbol];
113
- if (!contractAddress) {
114
- throw new errors_1.RubicSdkError();
115
- }
116
- const nativeFee = new bignumber_js_1.default(this.messagingFee.nativeFee);
117
- const value = this.from.isNative
118
- ? new bignumber_js_1.default(this.from.stringWeiAmount).plus(nativeFee).toFixed()
119
- : this.messagingFee.nativeFee;
120
- const calldata = await evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(contractAddress, stargate_v2_pool_abi_1.stargateV2SendTokenAbi, 'sendToken', [this.stargateV2SendParams, this.messagingFee, this.walletAddress], value);
121
- return {
122
- config: calldata,
123
- amount: this.to.stringWeiAmount
124
- };
125
- }
126
- async swapDirect(options = {}) {
127
- this.checkWalletConnected();
128
- await this.checkTradeErrors();
129
- await this.checkAllowanceAndApprove(options);
130
- const { onConfirm, gasLimit, gasPriceOptions } = options;
131
- let transactionHash;
132
- const onTransactionHash = (hash) => {
133
- if (onConfirm) {
134
- onConfirm(hash);
135
- }
136
- transactionHash = hash;
137
- };
138
- try {
139
- const { data, value, to } = await this.setTransactionConfig(false, options?.useCacheData || false, options?.receiverAddress);
140
- await this.web3Private.trySendTransaction(to, {
141
- data,
142
- value,
143
- onTransactionHash,
144
- gas: gasLimit,
145
- gasPriceOptions
146
- });
147
- return transactionHash;
148
- }
149
- catch (err) {
150
- if (err instanceof errors_1.FailedToCheckForTransactionReceiptError) {
151
- return transactionHash;
152
- }
153
- throw err;
154
- }
155
- }
156
- getTradeAmountRatio(fromUsd) {
157
- return fromUsd.dividedBy(this.to.tokenAmount);
158
- }
159
- getTradeInfo() {
160
- return {
161
- estimatedGas: this.estimatedGas,
162
- feeInfo: this.feeInfo,
163
- priceImpact: this.priceImpact,
164
- slippage: this.slippageTolerance * 100,
165
- routePath: this.routePath
166
- };
167
- }
168
- }
169
- exports.StargateV2CrossChainTrade = StargateV2CrossChainTrade;
170
- //# sourceMappingURL=stargate-v2-cross-chain-trade.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stargate-v2-cross-chain-trade.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/stargate-v2-provider/stargate-v2-cross-chain-trade.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,8CAA2F;AAI3F,6GAAwG;AAExG,yDAAsD;AAItD,gFAA6E;AAC7E,mFAA4E;AAC5E,mGAA6F;AAC7F,qHAA8G;AAC9G,2HAAoH;AACpH,iGAA2F;AAE3F,8DAA2D;AAM3D,oHAA6G;AAE7G,2FAAqF;AAErF,2EAA0E;AAC1E,qFAA+E;AAM/E,MAAa,yBAA0B,SAAQ,0CAAkB;IAC7D,IAAc,UAAU;QACpB,OAAO,uCAAuC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,UAAU,CAC1B,IAAyC,EACzC,OAA4C,EAC5C,OAAgB,EAChB,iBAAyB,EACzB,eAAuB,EACvB,SAAsB,EACtB,UAAuC,EACvC,YAAoC,EACpC,eAAwB;QAExB,IAAI;YACA,MAAM,KAAK,GAAG,IAAI,yBAAyB,CACvC;gBACI,IAAI;gBACJ,EAAE,EAAE,OAAO;gBACX,iBAAiB;gBACjB,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,UAAU;gBACV,YAAY;gBACZ,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;aACrC,EACD,eAAe,IAAI,2BAAW,CAAC,aAAa,EAC5C,SAAS,CACZ,CAAC;YAEF,OAAO,IAAA,+CAAoB,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC;SACvD;QAAC,OAAO,IAAI,EAAE;YACX,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAED,IAAc,WAAW;QACrB,OAAO,mBAAQ,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxF,CAAC;IA4BD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,UAA4C,CAAC;IAClE,CAAC;IAED,IAAc,mBAAmB;QAC7B,MAAM,eAAe,GAAG,kDAAsB,CAC1C,IAAI,CAAC,IAAI,CAAC,UAA4C,CACzD,CAAC,IAAI,CAAC,gBAAgB,CAA0B,CAAC;QAClD,OAAO,IAAI,CAAC,YAAY;YACpB,CAAC,CAAC,wDAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO;YACxD,CAAC,CAAE,wDAAyB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,CAAY,CAAC;IAC1F,CAAC;IAID,YACI,eAUC,EACD,eAAuB,EACvB,SAAsB;QAEtB,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QAlDtB,SAAI,GAAG,+CAAsB,CAAC,WAAW,CAAC;QAM1C,iBAAY,GAAG,KAAK,CAAC;QAMrB,mBAAc,GAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;QAEpE,eAAU,GAAG,yBAAW,CAAC,WAAW,CAAC;QAqCjD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC;QAC3D,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC,UAAU,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5D,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,OAAiC;QAC/D,MAAM,EACF,IAAI,EACJ,KAAK,EAAE,aAAa,EACpB,EAAE,EACL,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC/B,KAAK,EACL,OAAO,EAAE,YAAY,IAAI,KAAK,EAC9B,OAAO,EAAE,eAAe,CAC3B,CAAC;QACF,IAAI;YACA,MAAM,UAAU,GAAG,qDAAuB,CAAC,aAAa,CACpD,EAAE,GAAG,OAAO,EAAE,EACd;gBACI,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,eAAe,EAAE,IAAI,CAAC,IAAI;gBAC1B,aAAa,EAAE,IAAI,CAAC,EAAE;gBACtB,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,IAAI;gBACnB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,EAAE;gBAC3B,WAAW,EAAE,IAAI,CAAC,aAAa;aAClC,CACJ,CAAC;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACrC,CAAC,CAAC,IAAI,sBAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;gBACzE,CAAC,CAAC,IAAI,sBAAS,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,MAAM,qDAAuB,CAAC,sBAAsB,CACrE,EAAE,EACF,IAAI,EACJ,IAAI,CAAC,cAAmC,EACxC,EAAE,EACF,cAAc,CACjB,CAAC;YACF,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAE/C,MAAM,wBAAwB,GAAG,2BAAW,CAAC,gBAAgB,CACzD,wDAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EACtD,mDAAsB,EACtB,IAAI,CAAC,UAAU,EACf,eAAe,EACf,KAAK,CACR,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE5E,OAAO;gBACH,eAAe,EAAE,wDAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO;gBACxE,WAAW,EAAE,yDAAyB;gBACtC,UAAU,EAAE,eAAe;gBAC3B,eAAe,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,wBAAwB,CAAC,IAAI,CAAC;gBAC7E,KAAK;aACR,CAAC;SACL;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1B,MAAM,IAAI,sBAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;IAES,KAAK,CAAC,6BAA6B,CACzC,gBAAqC;QAErC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAA4C,CAAC;QAC9E,MAAM,eAAe,GAAG,kDAAsB,CAAC,cAAc,CAAC,CAC1D,IAAI,CAAC,gBAAgB,CACC,CAAC;QAC3B,MAAM,eAAe,GAAG,wDAAyB,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,IAAI,sBAAa,EAAE,CAAC;SAC7B;QACD,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAE7D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,CAAC,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;YACpE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,2BAAW,CAAC,gBAAgB,CAC/C,eAAe,EACf,6CAAsB,EACtB,WAAW,EACX,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,EAClE,KAAK,CACR,CAAC;QACF,OAAO;YACH,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,eAAe;SAClC,CAAC;IACN,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,UAAkC,EAAE;QAC3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QACzD,IAAI,eAAuB,CAAC;QAC5B,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;YACvC,IAAI,SAAS,EAAE;gBACX,SAAS,CAAC,IAAI,CAAC,CAAC;aACnB;YACD,eAAe,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;QAEF,IAAI;YACA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACvD,KAAK,EACL,OAAO,EAAE,YAAY,IAAI,KAAK,EAC9B,OAAO,EAAE,eAAe,CAC3B,CAAC;YAEF,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE;gBAC1C,IAAI;gBACJ,KAAK;gBACL,iBAAiB;gBACjB,GAAG,EAAE,QAAQ;gBACb,eAAe;aAClB,CAAC,CAAC;YAEH,OAAO,eAAgB,CAAC;SAC3B;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,gDAAuC,EAAE;gBACxD,OAAO,eAAgB,CAAC;aAC3B;YACD,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAEM,mBAAmB,CAAC,OAAkB;QACzC,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAEM,YAAY;QACf,OAAO;YACH,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GAAG,GAAG;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC;IACN,CAAC;CACJ;AA3PD,8DA2PC"}