@subwallet/extension-base 1.1.52-0 → 1.1.53-beta.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 (107) hide show
  1. package/background/KoniTypes.d.ts +9 -1
  2. package/background/KoniTypes.js +1 -0
  3. package/background/errors/SwapError.d.ts +6 -0
  4. package/background/errors/SwapError.js +57 -0
  5. package/background/errors/TransactionError.js +9 -0
  6. package/cjs/background/KoniTypes.js +1 -0
  7. package/cjs/background/errors/SwapError.js +64 -0
  8. package/cjs/background/errors/TransactionError.js +9 -0
  9. package/cjs/koni/api/dotsama/balance.js +464 -0
  10. package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
  11. package/cjs/koni/api/staking/bonding/utils.js +35 -6
  12. package/cjs/koni/background/handlers/Extension.js +85 -0
  13. package/cjs/koni/background/handlers/State.js +25 -5
  14. package/cjs/packageInfo.js +1 -1
  15. package/cjs/services/balance-service/helpers/subscribe/balance.js +140 -0
  16. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +2 -1
  17. package/cjs/services/balance-service/index.js +6 -3
  18. package/cjs/services/chain-service/constants.js +1 -1
  19. package/cjs/services/chain-service/index.js +43 -18
  20. package/cjs/services/chain-service/utils/index.js +7 -2
  21. package/cjs/services/chain-service/utils/patch.js +1 -1
  22. package/cjs/services/chain-service/utils.js +506 -0
  23. package/cjs/services/earning-service/constants/chains.js +4 -2
  24. package/cjs/services/earning-service/handlers/native-staking/astar.js +4 -3
  25. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +22 -3
  26. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +17 -0
  27. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +17 -0
  28. package/cjs/services/migration-service/scripts/MigrateProvider.js +29 -0
  29. package/cjs/services/request-service/handler/ConnectWCRequestHandler.js +0 -1
  30. package/cjs/services/storage-service/index.js +241 -0
  31. package/cjs/services/swap-service/handler/base-handler.js +171 -0
  32. package/cjs/services/swap-service/handler/chainflip-handler.js +407 -0
  33. package/cjs/services/swap-service/handler/hydradx-handler.js +444 -0
  34. package/cjs/services/swap-service/index.js +249 -0
  35. package/cjs/services/swap-service/utils.js +126 -0
  36. package/cjs/services/transaction-service/index.js +20 -0
  37. package/cjs/services/transaction-service/utils.js +6 -0
  38. package/cjs/services/wallet-connect-service/helpers.js +1 -1
  39. package/cjs/services/wallet-connect-service/index.js +19 -0
  40. package/cjs/types/balance.js +1 -0
  41. package/cjs/types/fee/evm.js +1 -0
  42. package/cjs/types/fee/fee.js +70 -0
  43. package/cjs/types/fee/index.js +27 -1
  44. package/cjs/types/service-base.js +1 -0
  45. package/cjs/types/swap/index.js +50 -0
  46. package/cjs/types.js +1 -0
  47. package/cjs/utils/address.js +34 -0
  48. package/cjs/utils/eth/parseTransaction/index.js +1 -1
  49. package/cjs/utils/index.js +12 -0
  50. package/cjs/utils/keyring.js +57 -0
  51. package/cjs/utils/swap.js +78 -0
  52. package/koni/api/staking/bonding/utils.d.ts +3 -1
  53. package/koni/api/staking/bonding/utils.js +32 -6
  54. package/koni/background/handlers/Extension.d.ts +5 -0
  55. package/koni/background/handlers/Extension.js +85 -0
  56. package/koni/background/handlers/State.d.ts +2 -0
  57. package/koni/background/handlers/State.js +26 -6
  58. package/package.json +64 -7
  59. package/packageInfo.js +1 -1
  60. package/services/balance-service/helpers/subscribe/substrate/index.js +2 -1
  61. package/services/balance-service/index.js +6 -3
  62. package/services/base/types.d.ts +4 -0
  63. package/services/chain-service/constants.js +1 -1
  64. package/services/chain-service/index.d.ts +4 -0
  65. package/services/chain-service/index.js +24 -0
  66. package/services/chain-service/utils/index.d.ts +6 -5
  67. package/services/chain-service/utils/index.js +5 -2
  68. package/services/chain-service/utils/patch.js +1 -1
  69. package/services/earning-service/constants/chains.d.ts +1 -0
  70. package/services/earning-service/constants/chains.js +1 -0
  71. package/services/earning-service/handlers/native-staking/astar.js +4 -3
  72. package/services/earning-service/handlers/native-staking/relay-chain.js +24 -5
  73. package/services/event-service/types.d.ts +1 -0
  74. package/services/request-service/handler/ConnectWCRequestHandler.js +0 -1
  75. package/services/swap-service/handler/base-handler.d.ts +38 -0
  76. package/services/swap-service/handler/base-handler.js +162 -0
  77. package/services/swap-service/handler/chainflip-handler.d.ts +30 -0
  78. package/services/swap-service/handler/chainflip-handler.js +399 -0
  79. package/services/swap-service/handler/hydradx-handler.d.ts +36 -0
  80. package/services/swap-service/handler/hydradx-handler.js +435 -0
  81. package/services/swap-service/index.d.ts +32 -0
  82. package/services/swap-service/index.js +240 -0
  83. package/services/swap-service/utils.d.ts +18 -0
  84. package/services/swap-service/utils.js +105 -0
  85. package/services/transaction-service/index.js +20 -0
  86. package/services/transaction-service/utils.d.ts +2 -0
  87. package/services/transaction-service/utils.js +6 -2
  88. package/services/wallet-connect-service/helpers.js +1 -1
  89. package/services/wallet-connect-service/index.d.ts +1 -0
  90. package/services/wallet-connect-service/index.js +19 -1
  91. package/types/fee/evm.d.ts +49 -0
  92. package/types/fee/evm.js +1 -0
  93. package/types/fee/fee.d.ts +32 -0
  94. package/types/fee/fee.js +63 -0
  95. package/types/fee/index.d.ts +2 -49
  96. package/types/fee/index.js +5 -1
  97. package/types/service-base.d.ts +10 -0
  98. package/types/service-base.js +1 -0
  99. package/types/swap/index.d.ts +166 -0
  100. package/types/swap/index.js +41 -0
  101. package/types/yield/info/chain/target.d.ts +2 -0
  102. package/types/yield/info/pallet.d.ts +4 -0
  103. package/utils/eth/parseTransaction/index.js +1 -1
  104. package/utils/index.d.ts +1 -0
  105. package/utils/index.js +2 -1
  106. package/utils/swap.d.ts +3 -0
  107. package/utils/swap.js +70 -0
@@ -8,6 +8,7 @@ import { CrowdloanContributionsResponse } from '@subwallet/extension-base/servic
8
8
  import { SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
9
9
  import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
10
10
  import { BalanceJson, BuyServiceInfo, BuyTokenInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestEarlyValidateYield, RequestGetYieldPoolTargets, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseEarlyValidateYield, ResponseGetYieldPoolTargets, SubmitYieldStepData, TokenApproveData, UnlockDotTransactionNft, UnstakingStatus, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo, YieldValidationStatus } from '@subwallet/extension-base/types';
11
+ import { SwapErrorType, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapSubmitParams, SwapTxData, ValidateSwapProcessParams } from '@subwallet/extension-base/types/swap';
11
12
  import { InjectedAccount, InjectedAccountWithMeta, MetadataDefBase } from '@subwallet/extension-inject/types';
12
13
  import { KeyringPair$Json, KeyringPair$Meta } from '@subwallet/keyring/types';
13
14
  import { KeyringOptions } from '@subwallet/ui-keyring/options/types';
@@ -386,6 +387,7 @@ export declare enum ExtrinsicType {
386
387
  UNSTAKE_STDOT = "earn.unstake_stdot",
387
388
  UNSTAKE_VMANTA = "earn.unstake_vmanta",
388
389
  TOKEN_APPROVE = "evm.token_approve",
390
+ SWAP = "swap",
389
391
  EVM_EXECUTE = "evm.execute",
390
392
  UNKNOWN = "unknown"
391
393
  }
@@ -427,6 +429,7 @@ export interface ExtrinsicDataTypeMap {
427
429
  [ExtrinsicType.TOKEN_APPROVE]: TokenApproveData;
428
430
  [ExtrinsicType.EVM_EXECUTE]: TransactionConfig;
429
431
  [ExtrinsicType.CROWDLOAN]: any;
432
+ [ExtrinsicType.SWAP]: SwapTxData;
430
433
  [ExtrinsicType.UNKNOWN]: any;
431
434
  }
432
435
  export declare enum ExtrinsicStatus {
@@ -570,7 +573,7 @@ export declare enum TransferTxErrorType {
570
573
  TRANSFER_ERROR = "TRANSFER_ERROR",
571
574
  RECEIVER_NOT_ENOUGH_EXISTENTIAL_DEPOSIT = "RECEIVER_NOT_ENOUGH_EXISTENTIAL_DEPOSIT"
572
575
  }
573
- export declare type TransactionErrorType = BasicTxErrorType | TransferTxErrorType | StakingTxErrorType | YieldValidationStatus;
576
+ export declare type TransactionErrorType = BasicTxErrorType | TransferTxErrorType | StakingTxErrorType | YieldValidationStatus | SwapErrorType;
574
577
  export declare enum BasicTxWarningCode {
575
578
  NOT_ENOUGH_EXISTENTIAL_DEPOSIT = "notEnoughExistentialDeposit"
576
579
  }
@@ -1848,6 +1851,11 @@ export interface KoniRequestSignatures {
1848
1851
  'pri(database.export)': [null, string];
1849
1852
  'pri(database.import)': [string, boolean];
1850
1853
  'pri(database.exportJson)': [null, DexieExportJsonStructure];
1854
+ 'pri(swapService.subscribePairs)': [null, SwapPair[], SwapPair[]];
1855
+ 'pri(swapService.handleSwapRequest)': [SwapRequest, SwapRequestResult];
1856
+ 'pri(swapService.handleSwapStep)': [SwapSubmitParams, SWTransactionResponse];
1857
+ 'pri(swapService.getLatestQuote)': [SwapRequest, SwapQuoteResponse];
1858
+ 'pri(swapService.validateSwapProcess)': [ValidateSwapProcessParams, TransactionError[]];
1851
1859
  }
1852
1860
  export interface ApplicationMetadataType {
1853
1861
  version: string;
@@ -95,6 +95,7 @@ export let ExtrinsicType;
95
95
  ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
96
96
  ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
97
97
  ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
98
+ ExtrinsicType["SWAP"] = "swap";
98
99
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
99
100
  ExtrinsicType["UNKNOWN"] = "unknown";
100
101
  })(ExtrinsicType || (ExtrinsicType = {}));
@@ -0,0 +1,6 @@
1
+ import { SWError } from '@subwallet/extension-base/background/errors/SWError';
2
+ import { SwapErrorType } from '@subwallet/extension-base/types/swap';
3
+ export declare class SwapError extends SWError {
4
+ errorType: SwapErrorType;
5
+ constructor(errorType: SwapErrorType, errMessage?: string, data?: unknown);
6
+ }
@@ -0,0 +1,57 @@
1
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { SWError } from '@subwallet/extension-base/background/errors/SWError';
5
+ import { detectTranslate } from '@subwallet/extension-base/utils';
6
+ const defaultErrorMap = {
7
+ ERROR_FETCHING_QUOTE: {
8
+ message: detectTranslate('No swap quote found. Adjust your amount or try again later'),
9
+ code: undefined
10
+ },
11
+ NOT_MEET_MIN_SWAP: {
12
+ message: detectTranslate('Amount too low. Increase your amount and try again'),
13
+ code: undefined
14
+ },
15
+ QUOTE_TIMEOUT: {
16
+ message: detectTranslate('Quote timeout'),
17
+ code: undefined
18
+ },
19
+ UNKNOWN: {
20
+ message: detectTranslate('Undefined error. Check your Internet connection or contact support'),
21
+ code: undefined
22
+ },
23
+ ASSET_NOT_SUPPORTED: {
24
+ message: detectTranslate('This swap pair is not supported'),
25
+ code: undefined
26
+ },
27
+ INVALID_RECIPIENT: {
28
+ message: detectTranslate('Invalid recipient'),
29
+ code: undefined
30
+ },
31
+ SWAP_EXCEED_ALLOWANCE: {
32
+ message: detectTranslate('You cannot swap all your balance. Lower your amount and try again'),
33
+ code: undefined
34
+ },
35
+ SWAP_NOT_ENOUGH_BALANCE: {
36
+ message: detectTranslate('You must deposit more funds to swap'),
37
+ code: undefined
38
+ },
39
+ NOT_ENOUGH_LIQUIDITY: {
40
+ message: detectTranslate('There is not enough liquidity to complete the swap. Lower your amount and try again'),
41
+ code: undefined
42
+ },
43
+ AMOUNT_CANNOT_BE_ZERO: {
44
+ message: detectTranslate('Amount must be greater than 0'),
45
+ code: undefined
46
+ }
47
+ };
48
+ export class SwapError extends SWError {
49
+ constructor(errorType, errMessage, data) {
50
+ const {
51
+ code,
52
+ message
53
+ } = defaultErrorMap[errorType];
54
+ super(errorType, errMessage || message, code, data);
55
+ this.errorType = errorType;
56
+ }
57
+ }
@@ -4,6 +4,7 @@
4
4
  import { SWError } from '@subwallet/extension-base/background/errors/SWError';
5
5
  import { BasicTxErrorType, StakingTxErrorType, TransferTxErrorType } from '@subwallet/extension-base/background/KoniTypes';
6
6
  import { YieldValidationStatus } from '@subwallet/extension-base/types';
7
+ import { SwapErrorType } from '@subwallet/extension-base/types/swap';
7
8
  import { detectTranslate } from '@subwallet/extension-base/utils';
8
9
  import { t } from 'i18next';
9
10
 
@@ -99,6 +100,14 @@ const defaultErrorMap = {
99
100
  [YieldValidationStatus.NOT_ENOUGH_MIN_JOIN_POOL]: {
100
101
  message: detectTranslate('Not enough min earning amount'),
101
102
  code: undefined
103
+ },
104
+ [SwapErrorType.QUOTE_TIMEOUT]: {
105
+ message: detectTranslate('Quote timeout'),
106
+ code: undefined
107
+ },
108
+ [SwapErrorType.INVALID_RECIPIENT]: {
109
+ message: detectTranslate('Invalid recipient'),
110
+ code: undefined
102
111
  }
103
112
  };
104
113
  export class TransactionError extends SWError {
@@ -109,6 +109,7 @@ exports.ExtrinsicType = ExtrinsicType;
109
109
  ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
110
110
  ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
111
111
  ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
112
+ ExtrinsicType["SWAP"] = "swap";
112
113
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
113
114
  ExtrinsicType["UNKNOWN"] = "unknown";
114
115
  })(ExtrinsicType || (exports.ExtrinsicType = ExtrinsicType = {}));
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SwapError = void 0;
7
+ var _SWError = require("@subwallet/extension-base/background/errors/SWError");
8
+ var _utils = require("@subwallet/extension-base/utils");
9
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+
12
+ const defaultErrorMap = {
13
+ ERROR_FETCHING_QUOTE: {
14
+ message: (0, _utils.detectTranslate)('No swap quote found. Adjust your amount or try again later'),
15
+ code: undefined
16
+ },
17
+ NOT_MEET_MIN_SWAP: {
18
+ message: (0, _utils.detectTranslate)('Amount too low. Increase your amount and try again'),
19
+ code: undefined
20
+ },
21
+ QUOTE_TIMEOUT: {
22
+ message: (0, _utils.detectTranslate)('Quote timeout'),
23
+ code: undefined
24
+ },
25
+ UNKNOWN: {
26
+ message: (0, _utils.detectTranslate)('Undefined error. Check your Internet connection or contact support'),
27
+ code: undefined
28
+ },
29
+ ASSET_NOT_SUPPORTED: {
30
+ message: (0, _utils.detectTranslate)('This swap pair is not supported'),
31
+ code: undefined
32
+ },
33
+ INVALID_RECIPIENT: {
34
+ message: (0, _utils.detectTranslate)('Invalid recipient'),
35
+ code: undefined
36
+ },
37
+ SWAP_EXCEED_ALLOWANCE: {
38
+ message: (0, _utils.detectTranslate)('You cannot swap all your balance. Lower your amount and try again'),
39
+ code: undefined
40
+ },
41
+ SWAP_NOT_ENOUGH_BALANCE: {
42
+ message: (0, _utils.detectTranslate)('You must deposit more funds to swap'),
43
+ code: undefined
44
+ },
45
+ NOT_ENOUGH_LIQUIDITY: {
46
+ message: (0, _utils.detectTranslate)('There is not enough liquidity to complete the swap. Lower your amount and try again'),
47
+ code: undefined
48
+ },
49
+ AMOUNT_CANNOT_BE_ZERO: {
50
+ message: (0, _utils.detectTranslate)('Amount must be greater than 0'),
51
+ code: undefined
52
+ }
53
+ };
54
+ class SwapError extends _SWError.SWError {
55
+ constructor(errorType, errMessage, data) {
56
+ const {
57
+ code,
58
+ message
59
+ } = defaultErrorMap[errorType];
60
+ super(errorType, errMessage || message, code, data);
61
+ this.errorType = errorType;
62
+ }
63
+ }
64
+ exports.SwapError = SwapError;
@@ -7,6 +7,7 @@ exports.TransactionError = void 0;
7
7
  var _SWError = require("@subwallet/extension-base/background/errors/SWError");
8
8
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
9
  var _types = require("@subwallet/extension-base/types");
10
+ var _swap = require("@subwallet/extension-base/types/swap");
10
11
  var _utils = require("@subwallet/extension-base/utils");
11
12
  var _i18next = require("i18next");
12
13
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -104,6 +105,14 @@ const defaultErrorMap = {
104
105
  [_types.YieldValidationStatus.NOT_ENOUGH_MIN_JOIN_POOL]: {
105
106
  message: (0, _utils.detectTranslate)('Not enough min earning amount'),
106
107
  code: undefined
108
+ },
109
+ [_swap.SwapErrorType.QUOTE_TIMEOUT]: {
110
+ message: (0, _utils.detectTranslate)('Quote timeout'),
111
+ code: undefined
112
+ },
113
+ [_swap.SwapErrorType.INVALID_RECIPIENT]: {
114
+ message: (0, _utils.detectTranslate)('Invalid recipient'),
115
+ code: undefined
107
116
  }
108
117
  };
109
118
  class TransactionError extends _SWError.SWError {