@subwallet/extension-base 1.3.9-0 → 1.3.11-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 (45) hide show
  1. package/background/errors/SwapError.js +5 -0
  2. package/cjs/background/errors/SwapError.js +5 -0
  3. package/cjs/core/logic-validation/swap.js +27 -0
  4. package/cjs/packageInfo.js +1 -1
  5. package/cjs/services/chain-service/constants.js +2 -2
  6. package/cjs/services/chain-service/health-check/utils/new-utils/asset-asset-validate.js +1 -1
  7. package/cjs/services/chain-service/utils/patch.js +1 -1
  8. package/cjs/services/swap-service/handler/asset-hub/utils.js +1 -0
  9. package/cjs/services/swap-service/handler/chainflip-handler.js +0 -1
  10. package/cjs/services/swap-service/handler/simpleswap-handler.js +444 -0
  11. package/cjs/services/swap-service/index.js +15 -3
  12. package/cjs/services/swap-service/utils.js +13 -2
  13. package/cjs/services/transaction-service/index.js +14 -10
  14. package/cjs/services/transaction-service/utils.js +9 -1
  15. package/cjs/types/swap/index.js +7 -3
  16. package/cjs/utils/number.js +11 -6
  17. package/core/logic-validation/swap.d.ts +2 -1
  18. package/core/logic-validation/swap.js +26 -0
  19. package/koni/api/staking/bonding/utils.d.ts +1 -0
  20. package/package.json +23 -18
  21. package/packageInfo.js +1 -1
  22. package/services/chain-service/constants.js +2 -2
  23. package/services/chain-service/health-check/utils/new-utils/asset-asset-validate.js +1 -1
  24. package/services/chain-service/utils/patch.js +1 -1
  25. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +1 -0
  26. package/services/earning-service/handlers/special.d.ts +1 -0
  27. package/services/earning-service/utils/index.d.ts +1 -0
  28. package/services/swap-service/handler/asset-hub/utils.js +1 -0
  29. package/services/swap-service/handler/chainflip-handler.js +0 -1
  30. package/services/swap-service/handler/simpleswap-handler.d.ts +24 -0
  31. package/services/swap-service/handler/simpleswap-handler.js +434 -0
  32. package/services/swap-service/index.d.ts +2 -1
  33. package/services/swap-service/index.js +13 -2
  34. package/services/swap-service/utils.d.ts +2 -0
  35. package/services/swap-service/utils.js +10 -1
  36. package/services/transaction-service/index.js +15 -11
  37. package/services/transaction-service/utils.d.ts +2 -1
  38. package/services/transaction-service/utils.js +9 -2
  39. package/types/balance/index.d.ts +1 -0
  40. package/types/swap/index.d.ts +15 -3
  41. package/types/swap/index.js +5 -2
  42. package/types/yield/info/pallet.d.ts +1 -0
  43. package/utils/index.d.ts +1 -0
  44. package/utils/number.d.ts +9 -1
  45. package/utils/number.js +10 -4
@@ -40,7 +40,8 @@ export declare enum SwapErrorType {
40
40
  SWAP_NOT_ENOUGH_BALANCE = "SWAP_NOT_ENOUGH_BALANCE",
41
41
  NOT_ENOUGH_LIQUIDITY = "NOT_ENOUGH_LIQUIDITY",
42
42
  MAKE_POOL_NOT_ENOUGH_EXISTENTIAL_DEPOSIT = "MAKE_POOL_NOT_ENOUGH_EXISTENTIAL_DEPOSIT",
43
- AMOUNT_CANNOT_BE_ZERO = "AMOUNT_CANNOT_BE_ZERO"
43
+ AMOUNT_CANNOT_BE_ZERO = "AMOUNT_CANNOT_BE_ZERO",
44
+ NOT_MEET_MIN_EXPECTED = "NOT_MEET_MIN_EXPECTED"
44
45
  }
45
46
  export declare enum SwapStepType {
46
47
  SWAP = "SWAP"
@@ -52,7 +53,8 @@ export declare enum SwapProviderId {
52
53
  HYDRADX_TESTNET = "HYDRADX_TESTNET",
53
54
  POLKADOT_ASSET_HUB = "POLKADOT_ASSET_HUB",
54
55
  KUSAMA_ASSET_HUB = "KUSAMA_ASSET_HUB",
55
- ROCOCO_ASSET_HUB = "ROCOCO_ASSET_HUB"
56
+ ROCOCO_ASSET_HUB = "ROCOCO_ASSET_HUB",
57
+ SIMPLE_SWAP = "SIMPLE_SWAP"
56
58
  }
57
59
  export declare const _SUPPORTED_SWAP_PROVIDERS: SwapProviderId[];
58
60
  export interface SwapProvider {
@@ -65,7 +67,7 @@ export declare enum SwapFeeType {
65
67
  NETWORK_FEE = "NETWORK_FEE",
66
68
  WALLET_FEE = "WALLET_FEE"
67
69
  }
68
- export declare type SwapTxData = ChainflipSwapTxData | HydradxSwapTxData;
70
+ export declare type SwapTxData = ChainflipSwapTxData | HydradxSwapTxData | SimpleSwapTxData;
69
71
  export interface SwapBaseTxData {
70
72
  provider: SwapProvider;
71
73
  quote: SwapQuote;
@@ -79,6 +81,9 @@ export interface ChainflipSwapTxData extends SwapBaseTxData {
79
81
  depositAddress: string;
80
82
  estimatedDepositChannelExpiryTime?: number;
81
83
  }
84
+ export interface SimpleSwapTxData extends SwapBaseTxData {
85
+ id: string;
86
+ }
82
87
  export interface HydradxSwapTxData extends SwapBaseTxData {
83
88
  txHex: string;
84
89
  }
@@ -98,6 +103,11 @@ export interface AssetHubPreValidationMetadata {
98
103
  quoteRate: string;
99
104
  priceImpactPct?: string;
100
105
  }
106
+ export interface SimpleSwapValidationMetadata {
107
+ minSwap: AmountData;
108
+ maxSwap: AmountData;
109
+ chain: _ChainInfo;
110
+ }
101
111
  export interface QuoteAskResponse {
102
112
  quote?: SwapQuote;
103
113
  error?: SwapError;
@@ -109,6 +119,7 @@ export interface SwapRequest {
109
119
  slippage: number;
110
120
  recipient?: string;
111
121
  feeToken?: string;
122
+ currentQuote?: SwapProvider;
112
123
  }
113
124
  export interface SwapRequestResult {
114
125
  process: CommonOptimalPath;
@@ -158,3 +169,4 @@ export interface SlippageType {
158
169
  isCustomType: boolean;
159
170
  }
160
171
  export declare const CHAINFLIP_SLIPPAGE = 0.02;
172
+ export declare const SIMPLE_SWAP_SLIPPAGE = 0.05;
@@ -16,6 +16,7 @@ export let SwapErrorType;
16
16
  SwapErrorType["NOT_ENOUGH_LIQUIDITY"] = "NOT_ENOUGH_LIQUIDITY";
17
17
  SwapErrorType["MAKE_POOL_NOT_ENOUGH_EXISTENTIAL_DEPOSIT"] = "MAKE_POOL_NOT_ENOUGH_EXISTENTIAL_DEPOSIT";
18
18
  SwapErrorType["AMOUNT_CANNOT_BE_ZERO"] = "AMOUNT_CANNOT_BE_ZERO";
19
+ SwapErrorType["NOT_MEET_MIN_EXPECTED"] = "NOT_MEET_MIN_EXPECTED";
19
20
  })(SwapErrorType || (SwapErrorType = {}));
20
21
  export let SwapStepType;
21
22
  (function (SwapStepType) {
@@ -30,8 +31,9 @@ export let SwapProviderId;
30
31
  SwapProviderId["POLKADOT_ASSET_HUB"] = "POLKADOT_ASSET_HUB";
31
32
  SwapProviderId["KUSAMA_ASSET_HUB"] = "KUSAMA_ASSET_HUB";
32
33
  SwapProviderId["ROCOCO_ASSET_HUB"] = "ROCOCO_ASSET_HUB";
34
+ SwapProviderId["SIMPLE_SWAP"] = "SIMPLE_SWAP";
33
35
  })(SwapProviderId || (SwapProviderId = {}));
34
- export const _SUPPORTED_SWAP_PROVIDERS = [SwapProviderId.CHAIN_FLIP_TESTNET, SwapProviderId.CHAIN_FLIP_MAINNET, SwapProviderId.HYDRADX_MAINNET, SwapProviderId.HYDRADX_TESTNET, SwapProviderId.POLKADOT_ASSET_HUB, SwapProviderId.KUSAMA_ASSET_HUB, SwapProviderId.ROCOCO_ASSET_HUB];
36
+ export const _SUPPORTED_SWAP_PROVIDERS = [SwapProviderId.CHAIN_FLIP_TESTNET, SwapProviderId.CHAIN_FLIP_MAINNET, SwapProviderId.HYDRADX_MAINNET, SwapProviderId.HYDRADX_TESTNET, SwapProviderId.POLKADOT_ASSET_HUB, SwapProviderId.KUSAMA_ASSET_HUB, SwapProviderId.ROCOCO_ASSET_HUB, SwapProviderId.SIMPLE_SWAP];
35
37
  // process handling
36
38
  export let SwapFeeType;
37
39
  (function (SwapFeeType) {
@@ -39,4 +41,5 @@ export let SwapFeeType;
39
41
  SwapFeeType["NETWORK_FEE"] = "NETWORK_FEE";
40
42
  SwapFeeType["WALLET_FEE"] = "WALLET_FEE";
41
43
  })(SwapFeeType || (SwapFeeType = {}));
42
- export const CHAINFLIP_SLIPPAGE = 0.02; // Example: 0.01 for 1%
44
+ export const CHAINFLIP_SLIPPAGE = 0.02; // Example: 0.01 for 1%
45
+ export const SIMPLE_SWAP_SLIPPAGE = 0.05;
@@ -1,3 +1,4 @@
1
+ /// <reference types="bn.js" />
1
2
  import { BN } from '@polkadot/util';
2
3
  export interface PalletStakingExposureItem {
3
4
  who: string;
package/utils/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference types="bn.js" />
1
2
  import { _ChainInfo } from '@subwallet/chain-list/types';
2
3
  import { CrowdloanParaState, NetworkJson } from '@subwallet/extension-base/background/KoniTypes';
3
4
  import { AccountAuthType } from '@subwallet/extension-base/background/types';
package/utils/number.d.ts CHANGED
@@ -9,5 +9,13 @@ export interface NumberFormatter {
9
9
  export declare const balanceFormatter: NumberFormatter;
10
10
  export declare const balanceNoPrefixFormater: NumberFormatter;
11
11
  export declare const PREDEFINED_FORMATTER: Record<string, NumberFormatter>;
12
- export declare const toBNString: (input: string | number | BigNumber, decimal: number) => string;
12
+ /** @function formatNumber
13
+ * Convert number to a formatted string by dividing by 10^decimal
14
+ * @param {string | number | BigNumber} input - Input number
15
+ * @param {number} decimal - Decimal number
16
+ * @param {NumberFormatter} [formatter] - Formatter function
17
+ * - Default: balanceFormatter: With number > 1, show decimal with 2 numbers,
18
+ * with number < 1, show decimal with 6 (default) number
19
+ * @param {Record<string, number>} [metadata] - Metadata for formatter
20
+ */
13
21
  export declare const formatNumber: (input: string | number | BigNumber, decimal: number, formatter?: NumberFormatter, metadata?: Record<string, number>) => string;
package/utils/number.js CHANGED
@@ -182,10 +182,16 @@ export const balanceNoPrefixFormater = (input, metadata) => {
182
182
  export const PREDEFINED_FORMATTER = {
183
183
  balance: balanceFormatter
184
184
  };
185
- export const toBNString = (input, decimal) => {
186
- const raw = new BigNumber(input);
187
- return raw.multipliedBy(BN_TEN.pow(decimal)).toFixed();
188
- };
185
+
186
+ /** @function formatNumber
187
+ * Convert number to a formatted string by dividing by 10^decimal
188
+ * @param {string | number | BigNumber} input - Input number
189
+ * @param {number} decimal - Decimal number
190
+ * @param {NumberFormatter} [formatter] - Formatter function
191
+ * - Default: balanceFormatter: With number > 1, show decimal with 2 numbers,
192
+ * with number < 1, show decimal with 6 (default) number
193
+ * @param {Record<string, number>} [metadata] - Metadata for formatter
194
+ */
189
195
  export const formatNumber = (input, decimal, formatter = balanceFormatter, metadata) => {
190
196
  const raw = new BigNumber(input).dividedBy(BN_TEN.pow(decimal)).toFixed();
191
197
  return formatter(raw, metadata);