@cryptorubic/core 0.15.0-alpha-stellar.0 → 0.16.3-alpha-2695.0

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 (30) hide show
  1. package/package.json +1 -1
  2. package/src/lib/blockchains/backend-labels.d.ts +2 -1
  3. package/src/lib/blockchains/backend-labels.js +3 -2
  4. package/src/lib/blockchains/blockchain-id.js +2 -1
  5. package/src/lib/blockchains/blockchain-name.d.ts +7 -4
  6. package/src/lib/blockchains/blockchain-name.js +5 -4
  7. package/src/lib/blockchains/chain-type-storage.js +1 -0
  8. package/src/lib/blockchains/chain-type.d.ts +1 -0
  9. package/src/lib/blockchains/chain-type.js +2 -1
  10. package/src/lib/blockchains/wrapped-addresses.js +2 -1
  11. package/src/lib/models/api/quote-request.interface.d.ts +5 -0
  12. package/src/lib/providers/backend-onchain-providers.d.ts +117 -103
  13. package/src/lib/providers/backend-onchain-providers.js +9 -1
  14. package/src/lib/providers/cross-chain-trade-type.d.ts +8 -0
  15. package/src/lib/providers/cross-chain-trade-type.js +9 -1
  16. package/src/lib/providers/from-backend-cross-chain-providers.js +9 -1
  17. package/src/lib/providers/on-chain-trade-type.d.ts +9 -1
  18. package/src/lib/providers/on-chain-trade-type.js +10 -2
  19. package/src/lib/providers/to-backend-cross-chain-providers.d.ts +8 -0
  20. package/src/lib/providers/to-backend-cross-chain-providers.js +9 -1
  21. package/src/lib/tokens/constants/native-token-list.js +15 -8
  22. package/src/lib/tokens/constants/wrapped-native-tokens.js +14 -7
  23. package/src/lib/tokens/price-token-amount.d.ts +1 -0
  24. package/src/lib/tokens/price-token-amount.js +3 -0
  25. package/src/lib/tokens/price-token.d.ts +15 -0
  26. package/src/lib/tokens/price-token.js +22 -0
  27. package/src/lib/tokens/token-amount.d.ts +1 -0
  28. package/src/lib/tokens/token-amount.js +3 -0
  29. package/src/lib/tokens/token.d.ts +1 -0
  30. package/src/lib/tokens/token.js +5 -0
@@ -58,6 +58,8 @@ exports.TO_BACKEND_ON_CHAIN_PROVIDERS = {
58
58
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.WYND]: 'unknown',
59
59
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ZIP_SWAP]: 'unknown',
60
60
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ROUTER_SWAP]: 'unknown',
61
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.AQUARIUS]: 'unknown',
62
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.SOROSWAP]: 'unknown',
61
63
  // Rubic integrated dexes
62
64
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ALGEBRA]: 'algebra',
63
65
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.APE_SWAP]: 'apeswap',
@@ -160,7 +162,13 @@ exports.TO_BACKEND_ON_CHAIN_PROVIDERS = {
160
162
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ORCA_SWAP]: 'orca',
161
163
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.OCTO_SWAP]: 'octo_swap',
162
164
  [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.AETHON_SWAP]: 'aethon_swap',
163
- [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ATLANTIS]: 'atlantis'
165
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ATLANTIS]: 'atlantis',
166
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.CLOBER]: 'clober',
167
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.HYPERCAT]: 'hypercat',
168
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.RUBIC_STELLAR_API]: 'rubic_stellar_api',
169
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.WARPX_V2]: 'warpx_v2',
170
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.WARPX_V3]: 'warpx_v3',
171
+ [on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.CLEARSWAP]: 'clearswap'
164
172
  };
165
173
  exports.FROM_BACKEND_ON_CHAIN_PROVIDERS = {
166
174
  ...Object.entries(exports.TO_BACKEND_ON_CHAIN_PROVIDERS).reduce((acc, [clientName, backendName]) => ({
@@ -34,5 +34,13 @@ export declare const CROSS_CHAIN_TRADE_TYPE: {
34
34
  readonly WORMHOLE: "wormhole";
35
35
  readonly EXOLIX: "exolix";
36
36
  readonly NEAR_INTENTS: "near_intents";
37
+ readonly USDT_ZERO_BRIDGE: "usdt_zero_bridge";
38
+ readonly HOUDINI: "houdini";
39
+ readonly QUICKEX: "quickex";
40
+ readonly RUBIC_STELLAR_API: "rubic_stellar_api";
41
+ readonly PACT_SWAP: "pact_swap";
42
+ readonly STEALTHEX: "stealthex";
43
+ readonly MAYAN: "mayan";
44
+ readonly CHANGE_HERO: "change_hero";
37
45
  };
38
46
  export type CrossChainTradeType = (typeof CROSS_CHAIN_TRADE_TYPE)[keyof typeof CROSS_CHAIN_TRADE_TYPE];
@@ -36,5 +36,13 @@ exports.CROSS_CHAIN_TRADE_TYPE = {
36
36
  XFLOWS: 'xflows',
37
37
  WORMHOLE: 'wormhole',
38
38
  EXOLIX: 'exolix',
39
- NEAR_INTENTS: 'near_intents'
39
+ NEAR_INTENTS: 'near_intents',
40
+ USDT_ZERO_BRIDGE: 'usdt_zero_bridge',
41
+ HOUDINI: 'houdini',
42
+ QUICKEX: 'quickex',
43
+ RUBIC_STELLAR_API: 'rubic_stellar_api',
44
+ PACT_SWAP: 'pact_swap',
45
+ STEALTHEX: 'stealthex',
46
+ MAYAN: 'mayan',
47
+ CHANGE_HERO: 'change_hero'
40
48
  };
@@ -37,5 +37,13 @@ exports.FROM_BACKEND_CROSS_CHAIN_PROVIDERS = {
37
37
  orbiter_bridge_v2: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.ORBITER_BRIDGE_V2,
38
38
  wormhole_mayan: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.WORMHOLE,
39
39
  exolix: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.EXOLIX,
40
- near_intents: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.NEAR_INTENTS
40
+ near_intents: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.NEAR_INTENTS,
41
+ usdt_zero_bridge: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.USDT_ZERO_BRIDGE,
42
+ houdini: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.HOUDINI,
43
+ quickex: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.QUICKEX,
44
+ rubic_stellar_api: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.RUBIC_STELLAR_API,
45
+ pact_swap: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.PACT_SWAP,
46
+ stealthex: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.STEALTHEX,
47
+ mayan: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.MAYAN,
48
+ change_hero: cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.CHANGE_HERO
41
49
  };
@@ -14,6 +14,7 @@ export declare const ON_CHAIN_TRADE_TYPE: {
14
14
  readonly AVNU: "AVNU";
15
15
  readonly AETHON_SWAP: "AETHON_SWAP";
16
16
  readonly ATLANTIS: "ATLANTIS";
17
+ readonly AQUARIUS: "AQUARIUS";
17
18
  readonly BABY_SWAP: "BABY_SWAP";
18
19
  readonly BALANCER: "BALANCER";
19
20
  readonly BASE_SWAP: "BASE_SWAP";
@@ -26,6 +27,7 @@ export declare const ON_CHAIN_TRADE_TYPE: {
26
27
  readonly CETUS: "CETUS";
27
28
  readonly CHERRY_SWAP: "CHERRY_SWAP";
28
29
  readonly CLAIM_SWAP: "CLAIM_SWAP";
30
+ readonly CLEARSWAP: "CLEARSWAP";
29
31
  readonly COFFEE_SWAP: "COFFEE_SWAP";
30
32
  readonly CREMA_FINANCE: "CREMA_FINANCE";
31
33
  readonly CRO_SWAP: "CRO_SWAP";
@@ -34,6 +36,7 @@ export declare const ON_CHAIN_TRADE_TYPE: {
34
36
  readonly CROW_FI: "CROW_FI";
35
37
  readonly CRO_DEX: "CRO_DEX";
36
38
  readonly CURVE: "CURVE";
39
+ readonly CLOBER: "CLOBER";
37
40
  readonly DEDUST: "DEDUST";
38
41
  readonly DEFI_PLAZA: "DEFI_PLAZA";
39
42
  readonly DEFI_SWAP: "DEFI_SWAP";
@@ -106,6 +109,7 @@ export declare const ON_CHAIN_TRADE_TYPE: {
106
109
  readonly REF_FINANCE: "REF_FINANCE";
107
110
  readonly REN_BTC: "REN_BTC";
108
111
  readonly ROUTER_SWAP: "ROUTER_SWAP";
112
+ readonly RUBIC_STELLAR_API: "RUBIC_STELLAR_API";
109
113
  readonly SABER_STABLE_SWAP: "SABER_STABLE_SWAP";
110
114
  readonly SAROS_SWAP: "SAROS_SWAP";
111
115
  readonly SERUM: "SERUM";
@@ -130,6 +134,7 @@ export declare const ON_CHAIN_TRADE_TYPE: {
130
134
  readonly SPARK_DEX_V3: "SPARK_DEX_V3";
131
135
  readonly SQUIDROUTER: "SQUIDROUTER";
132
136
  readonly SYMBIOSIS_SWAP: "SYMBIOSIS_SWAP";
137
+ readonly SOROSWAP: "SOROSWAP";
133
138
  readonly TONCO_DEX: "TONCO_DEX";
134
139
  readonly TRADER: "TRADER";
135
140
  readonly TRISOLARIS: "TRISOLARIS";
@@ -149,12 +154,15 @@ export declare const ON_CHAIN_TRADE_TYPE: {
149
154
  readonly WOO_FI: "WOO_FI";
150
155
  readonly WRAPPED: "WRAPPED";
151
156
  readonly WYND: "WYND";
152
- readonly YUZU_SWAP: "YUZU_SWAP";
157
+ readonly WARPX_V2: "WARPX_V2";
158
+ readonly WARPX_V3: "WARPX_V3";
153
159
  readonly XY_DEX: "XY_DEX";
160
+ readonly YUZU_SWAP: "YUZU_SWAP";
154
161
  readonly ZAPPY: "ZAPPY";
155
162
  readonly ZIP_SWAP: "ZIP_SWAP";
156
163
  readonly ZRX: "ZRX";
157
164
  readonly ZETA_SWAP: "ZETA_SWAP";
165
+ readonly HYPERCAT: "HYPERCAT";
158
166
  };
159
167
  /**
160
168
  * On-chain trade type.
@@ -17,6 +17,7 @@ exports.ON_CHAIN_TRADE_TYPE = {
17
17
  AVNU: 'AVNU',
18
18
  AETHON_SWAP: 'AETHON_SWAP',
19
19
  ATLANTIS: 'ATLANTIS',
20
+ AQUARIUS: 'AQUARIUS',
20
21
  BABY_SWAP: 'BABY_SWAP',
21
22
  BALANCER: 'BALANCER',
22
23
  BASE_SWAP: 'BASE_SWAP',
@@ -29,6 +30,7 @@ exports.ON_CHAIN_TRADE_TYPE = {
29
30
  CETUS: 'CETUS',
30
31
  CHERRY_SWAP: 'CHERRY_SWAP',
31
32
  CLAIM_SWAP: 'CLAIM_SWAP',
33
+ CLEARSWAP: 'CLEARSWAP',
32
34
  COFFEE_SWAP: 'COFFEE_SWAP',
33
35
  CREMA_FINANCE: 'CREMA_FINANCE',
34
36
  CRO_SWAP: 'CRO_SWAP',
@@ -37,6 +39,7 @@ exports.ON_CHAIN_TRADE_TYPE = {
37
39
  CROW_FI: 'CROW_FI',
38
40
  CRO_DEX: 'CRO_DEX',
39
41
  CURVE: 'CURVE',
42
+ CLOBER: 'CLOBER',
40
43
  DEDUST: 'DEDUST',
41
44
  DEFI_PLAZA: 'DEFI_PLAZA',
42
45
  DEFI_SWAP: 'DEFI_SWAP',
@@ -109,6 +112,7 @@ exports.ON_CHAIN_TRADE_TYPE = {
109
112
  REF_FINANCE: 'REF_FINANCE',
110
113
  REN_BTC: 'REN_BTC',
111
114
  ROUTER_SWAP: 'ROUTER_SWAP',
115
+ RUBIC_STELLAR_API: 'RUBIC_STELLAR_API',
112
116
  SABER_STABLE_SWAP: 'SABER_STABLE_SWAP',
113
117
  SAROS_SWAP: 'SAROS_SWAP',
114
118
  SERUM: 'SERUM',
@@ -133,6 +137,7 @@ exports.ON_CHAIN_TRADE_TYPE = {
133
137
  SPARK_DEX_V3: 'SPARK_DEX_V3',
134
138
  SQUIDROUTER: 'SQUIDROUTER',
135
139
  SYMBIOSIS_SWAP: 'SYMBIOSIS_SWAP', // Fake to show swap via unknown symbiosis dex
140
+ SOROSWAP: 'SOROSWAP',
136
141
  TONCO_DEX: 'TONCO_DEX',
137
142
  TRADER: 'TRADER',
138
143
  TRISOLARIS: 'TRISOLARIS',
@@ -152,10 +157,13 @@ exports.ON_CHAIN_TRADE_TYPE = {
152
157
  WOO_FI: 'WOO_FI',
153
158
  WRAPPED: 'WRAPPED',
154
159
  WYND: 'WYND',
155
- YUZU_SWAP: 'YUZU_SWAP',
160
+ WARPX_V2: 'WARPX_V2',
161
+ WARPX_V3: 'WARPX_V3',
156
162
  XY_DEX: 'XY_DEX',
163
+ YUZU_SWAP: 'YUZU_SWAP',
157
164
  ZAPPY: 'ZAPPY',
158
165
  ZIP_SWAP: 'ZIP_SWAP',
159
166
  ZRX: 'ZRX',
160
- ZETA_SWAP: 'ZETA_SWAP'
167
+ ZETA_SWAP: 'ZETA_SWAP',
168
+ HYPERCAT: 'HYPERCAT'
161
169
  };
@@ -35,6 +35,14 @@ declare const toProviders: {
35
35
  readonly wormhole: "wormhole_mayan";
36
36
  readonly exolix: "exolix";
37
37
  readonly near_intents: "near_intents";
38
+ readonly usdt_zero_bridge: "usdt_zero_bridge";
39
+ readonly houdini: "houdini";
40
+ readonly quickex: "quickex";
41
+ readonly rubic_stellar_api: "rubic_stellar_api";
42
+ readonly pact_swap: "pact_swap";
43
+ readonly stealthex: "stealthex";
44
+ readonly mayan: "mayan";
45
+ readonly change_hero: "change_hero";
38
46
  };
39
47
  export declare const TO_BACKEND_CROSS_CHAIN_PROVIDERS: Record<CrossChainTradeType, string>;
40
48
  export type ToBackendCrossChainProviders = (typeof toProviders)[keyof typeof toProviders];
@@ -37,7 +37,15 @@ const toProviders = {
37
37
  [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.ORBITER_BRIDGE_V2]: 'orbiter_bridge_v2',
38
38
  [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.WORMHOLE]: 'wormhole_mayan',
39
39
  [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.EXOLIX]: 'exolix',
40
- [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.NEAR_INTENTS]: 'near_intents'
40
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.NEAR_INTENTS]: 'near_intents',
41
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.USDT_ZERO_BRIDGE]: 'usdt_zero_bridge',
42
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.HOUDINI]: 'houdini',
43
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.QUICKEX]: 'quickex',
44
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.RUBIC_STELLAR_API]: 'rubic_stellar_api',
45
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.PACT_SWAP]: 'pact_swap',
46
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.STEALTHEX]: 'stealthex',
47
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.MAYAN]: 'mayan',
48
+ [cross_chain_trade_type_1.CROSS_CHAIN_TRADE_TYPE.CHANGE_HERO]: 'change_hero'
41
49
  };
42
50
  exports.TO_BACKEND_CROSS_CHAIN_PROVIDERS = {
43
51
  ...toProviders
@@ -552,7 +552,7 @@ exports.nativeTokensList = {
552
552
  address: '0x0000000000000000000000000000000000000000',
553
553
  name: 'Cardano',
554
554
  symbol: 'ADA',
555
- decimals: 18
555
+ decimals: 6
556
556
  }),
557
557
  [blockchain_name_1.BLOCKCHAIN_NAME.APTOS]: new token_1.Token({
558
558
  blockchain: blockchain_name_1.BLOCKCHAIN_NAME.APTOS,
@@ -743,13 +743,6 @@ exports.nativeTokensList = {
743
743
  symbol: 'ETH',
744
744
  decimals: 18
745
745
  }),
746
- [blockchain_name_1.BLOCKCHAIN_NAME.WANCHAIN]: new token_1.Token({
747
- blockchain: blockchain_name_1.BLOCKCHAIN_NAME.WANCHAIN,
748
- address: '0x0000000000000000000000000000000000000000',
749
- name: 'Wancoin',
750
- symbol: 'WAN',
751
- decimals: 18
752
- }),
753
746
  [blockchain_name_1.BLOCKCHAIN_NAME.UNICHAIN]: new token_1.Token({
754
747
  blockchain: blockchain_name_1.BLOCKCHAIN_NAME.UNICHAIN,
755
748
  address: '0x0000000000000000000000000000000000000000',
@@ -791,5 +784,19 @@ exports.nativeTokensList = {
791
784
  name: 'Zcash',
792
785
  symbol: 'ZEC',
793
786
  decimals: 8
787
+ }),
788
+ [blockchain_name_1.BLOCKCHAIN_NAME.HYPER_EVM]: new token_1.Token({
789
+ blockchain: blockchain_name_1.BLOCKCHAIN_NAME.HYPER_EVM,
790
+ address: '0x0000000000000000000000000000000000000000',
791
+ name: 'Hyperliquid',
792
+ symbol: 'HYPE',
793
+ decimals: 18
794
+ }),
795
+ [blockchain_name_1.BLOCKCHAIN_NAME.MEGAETH]: new token_1.Token({
796
+ blockchain: blockchain_name_1.BLOCKCHAIN_NAME.MEGAETH,
797
+ address: '0x0000000000000000000000000000000000000000',
798
+ name: 'Ethereum',
799
+ symbol: 'ETH',
800
+ decimals: 18
794
801
  })
795
802
  };
@@ -494,13 +494,6 @@ exports.wrappedNativeTokensList = {
494
494
  symbol: 'WETH',
495
495
  decimals: 18
496
496
  }),
497
- [blockchain_name_1.BLOCKCHAIN_NAME.WANCHAIN]: new token_1.Token({
498
- blockchain: blockchain_name_1.BLOCKCHAIN_NAME.WANCHAIN,
499
- address: '0xdabD997aE5E4799BE47d6E69D9431615CBa28f48',
500
- name: 'Wrapped Wancoin',
501
- symbol: 'WWAN',
502
- decimals: 18
503
- }),
504
497
  [blockchain_name_1.BLOCKCHAIN_NAME.UNICHAIN]: new token_1.Token({
505
498
  blockchain: blockchain_name_1.BLOCKCHAIN_NAME.UNICHAIN,
506
499
  address: '0x4200000000000000000000000000000000000006',
@@ -535,5 +528,19 @@ exports.wrappedNativeTokensList = {
535
528
  name: 'Wrapped Monad',
536
529
  symbol: 'WMON',
537
530
  decimals: 18
531
+ }),
532
+ [blockchain_name_1.BLOCKCHAIN_NAME.HYPER_EVM]: new token_1.Token({
533
+ blockchain: blockchain_name_1.BLOCKCHAIN_NAME.HYPER_EVM,
534
+ address: '0x5555555555555555555555555555555555555555',
535
+ name: 'Wrapped HYPE',
536
+ symbol: 'WHYPE',
537
+ decimals: 18
538
+ }),
539
+ [blockchain_name_1.BLOCKCHAIN_NAME.MEGAETH]: new token_1.Token({
540
+ blockchain: blockchain_name_1.BLOCKCHAIN_NAME.MEGAETH,
541
+ address: '0x4200000000000000000000000000000000000006',
542
+ name: 'Wrapped Ether',
543
+ symbol: 'WETH',
544
+ decimals: 18
538
545
  })
539
546
  };
@@ -16,4 +16,5 @@ export declare class PriceTokenAmount<Blockchain extends BlockchainName = Blockc
16
16
  private getWeiAmount;
17
17
  get asStructWithAmount(): TokenAmountStruct<Blockchain>;
18
18
  calculatePriceImpactPercent(toToken: PriceTokenAmount): number | null;
19
+ clone(tokenStruct?: Partial<PriceTokenAmountStruct>): PriceTokenAmount;
19
20
  }
@@ -89,5 +89,8 @@ class PriceTokenAmount extends price_token_1.PriceToken {
89
89
  .toNumber();
90
90
  return impact;
91
91
  }
92
+ clone(tokenStruct) {
93
+ return new PriceTokenAmount({ ...this, ...tokenStruct });
94
+ }
92
95
  }
93
96
  exports.PriceTokenAmount = PriceTokenAmount;
@@ -8,4 +8,19 @@ export declare class PriceToken<Blockchain extends BlockchainName = BlockchainNa
8
8
  set price(price: BigNumber);
9
9
  get asStructWithPrice(): PriceTokenStruct<Blockchain>;
10
10
  constructor(tokenStruct: PriceTokenStruct<Blockchain>);
11
+ clone(tokenStruct?: Partial<PriceTokenStruct>): PriceToken;
12
+ /**
13
+ * Fetches current token price and saves it into token.
14
+ * @param coingeckoApi {path to type @type rubic-app/src/app/core/services/sdk/sdk-legacy/coingecko/coingecko.service.ts}
15
+ * coingeckoApi should implement
16
+ * @interface {
17
+ * getTokenPrice({address: string; blockchain: BlockchainName}): Promise<BigNumber>
18
+ * }
19
+ * returns BigNumber usd price of token in human-readable format ex. 1.09
20
+ */
21
+ getAndUpdateTokenPrice(coingeckoApi: any): Promise<BigNumber>;
22
+ /**
23
+ * @param coingeckoApi {path to type @type rubic-app/src/app/core/services/sdk/sdk-legacy/coingecko/coingecko.service.ts}
24
+ */
25
+ private updateTokenPrice;
11
26
  }
@@ -23,5 +23,27 @@ class PriceToken extends token_1.Token {
23
23
  super(tokenStruct);
24
24
  this._price = tokenStruct.price;
25
25
  }
26
+ clone(tokenStruct) {
27
+ return new PriceToken({ ...this, ...tokenStruct });
28
+ }
29
+ /**
30
+ * Fetches current token price and saves it into token.
31
+ * @param coingeckoApi {path to type @type rubic-app/src/app/core/services/sdk/sdk-legacy/coingecko/coingecko.service.ts}
32
+ * coingeckoApi should implement
33
+ * @interface {
34
+ * getTokenPrice({address: string; blockchain: BlockchainName}): Promise<BigNumber>
35
+ * }
36
+ * returns BigNumber usd price of token in human-readable format ex. 1.09
37
+ */
38
+ async getAndUpdateTokenPrice(coingeckoApi) {
39
+ await this.updateTokenPrice(coingeckoApi);
40
+ return this.price;
41
+ }
42
+ /**
43
+ * @param coingeckoApi {path to type @type rubic-app/src/app/core/services/sdk/sdk-legacy/coingecko/coingecko.service.ts}
44
+ */
45
+ async updateTokenPrice(coingeckoApi) {
46
+ this._price = await coingeckoApi.getTokenPrice({ ...this }).catch(() => this._price);
47
+ }
26
48
  }
27
49
  exports.PriceToken = PriceToken;
@@ -13,4 +13,5 @@ export declare class TokenAmount<T extends BlockchainName = BlockchainName> exte
13
13
  weiAmountPlusSlippage(slippage: number): BigNumber;
14
14
  private getWeiAmount;
15
15
  get asStructWithAmount(): TokenAmountStruct<BlockchainName>;
16
+ clone(tokenStruct?: Partial<TokenAmountStruct>): TokenAmount;
16
17
  }
@@ -63,5 +63,8 @@ class TokenAmount extends token_1.Token {
63
63
  weiAmount: this.weiAmount
64
64
  };
65
65
  }
66
+ clone(tokenStruct) {
67
+ return new TokenAmount({ ...this, ...tokenStruct });
68
+ }
66
69
  }
67
70
  exports.TokenAmount = TokenAmount;
@@ -20,6 +20,7 @@ export declare class Token<Blockchain extends BlockchainName = BlockchainName> {
20
20
  constructor(tokenStruct: TokenStruct<Blockchain>);
21
21
  isEqualTo(token: TokenBaseStruct): boolean;
22
22
  isEqualToTokens(tokens: TokenBaseStruct[]): boolean;
23
+ clone(tokenStruct?: Partial<TokenStruct>): Token;
23
24
  static toWei(amount: BigNumber | string | number, decimals?: number, roundingMode?: BigNumber.RoundingMode): string;
24
25
  /**
25
26
  * Converts amount from Wei to Ether units.
@@ -16,6 +16,8 @@ class Token {
16
16
  return this.address.toLowerCase() === 'near';
17
17
  if (this.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.SOLANA)
18
18
  return this.address.toLowerCase() === 'so11111111111111111111111111111111111111111';
19
+ if (this.blockchain === blockchain_name_1.BLOCKCHAIN_NAME.SUI)
20
+ return this.address.toLowerCase() === '0x0000000000000000000000000000000000000000000000000000000000000002::sui::sui';
19
21
  return this.address.toLowerCase() === '0x0000000000000000000000000000000000000000';
20
22
  }
21
23
  get isWrapped() {
@@ -47,6 +49,9 @@ class Token {
47
49
  isEqualToTokens(tokens) {
48
50
  return tokens.some((token) => this.isEqualTo(token));
49
51
  }
52
+ clone(tokenStruct) {
53
+ return new Token({ ...this, ...tokenStruct });
54
+ }
50
55
  static toWei(amount, decimals = 18, roundingMode) {
51
56
  return new bignumber_js_1.default(amount || 0).times(new bignumber_js_1.default(10).pow(decimals)).toFixed(0, roundingMode);
52
57
  }