@subwallet/extension-base 1.2.3-0 → 1.2.4-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 (94) hide show
  1. package/background/KoniTypes.d.ts +4 -153
  2. package/background/KoniTypes.js +0 -21
  3. package/cjs/background/KoniTypes.js +1 -22
  4. package/cjs/core/logic-validation/earning.js +47 -0
  5. package/cjs/core/logic-validation/swap.js +99 -0
  6. package/cjs/core/logic-validation/transfer.js +212 -0
  7. package/cjs/core/substrate/nominationpools-pallet.js +22 -0
  8. package/cjs/core/substrate/system-pallet.js +77 -0
  9. package/cjs/core/substrate/xcm-parser.js +190 -0
  10. package/cjs/koni/api/dotsama/transfer.js +58 -122
  11. package/cjs/koni/api/staking/bonding/utils.js +1 -1
  12. package/cjs/koni/api/xcm/index.js +30 -2
  13. package/cjs/koni/api/xcm/polkadotXcm.js +12 -20
  14. package/cjs/koni/api/xcm/utils.js +8 -126
  15. package/cjs/koni/api/xcm/xTokens.js +10 -8
  16. package/cjs/koni/api/xcm/xcmPallet.js +6 -6
  17. package/cjs/koni/background/handlers/Extension.js +223 -356
  18. package/cjs/packageInfo.js +1 -1
  19. package/cjs/services/balance-service/helpers/group.js +4 -27
  20. package/cjs/services/balance-service/helpers/subscribe/index.js +2 -30
  21. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +46 -82
  22. package/cjs/services/balance-service/index.js +11 -9
  23. package/cjs/services/chain-service/constants.js +2 -2
  24. package/cjs/services/chain-service/index.js +0 -1
  25. package/cjs/services/chain-service/utils/index.js +13 -2
  26. package/cjs/services/earning-service/handlers/base.js +1 -1
  27. package/cjs/services/earning-service/handlers/special.js +11 -12
  28. package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol.js +2 -1
  29. package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting.js +2 -1
  30. package/cjs/services/migration-service/scripts/index.js +2 -2
  31. package/cjs/services/swap-service/handler/base-handler.js +30 -44
  32. package/cjs/services/swap-service/handler/chainflip-handler.js +23 -21
  33. package/cjs/services/swap-service/handler/hydradx-handler.js +41 -39
  34. package/cjs/services/swap-service/index.js +6 -0
  35. package/cjs/services/swap-service/utils.js +8 -49
  36. package/cjs/services/transaction-service/index.js +66 -155
  37. package/core/logic-validation/earning.d.ts +10 -0
  38. package/core/logic-validation/earning.js +37 -0
  39. package/core/logic-validation/swap.d.ts +8 -0
  40. package/core/logic-validation/swap.js +89 -0
  41. package/core/logic-validation/transfer.d.ts +16 -0
  42. package/core/logic-validation/transfer.js +199 -0
  43. package/core/substrate/nominationpools-pallet.d.ts +10 -0
  44. package/core/substrate/nominationpools-pallet.js +13 -0
  45. package/core/substrate/system-pallet.d.ts +27 -0
  46. package/core/substrate/system-pallet.js +70 -0
  47. package/core/substrate/xcm-parser.d.ts +49 -0
  48. package/core/substrate/xcm-parser.js +181 -0
  49. package/koni/api/dotsama/transfer.d.ts +3 -4
  50. package/koni/api/dotsama/transfer.js +54 -118
  51. package/koni/api/staking/bonding/relayChain.d.ts +2 -1
  52. package/koni/api/staking/bonding/utils.js +1 -1
  53. package/koni/api/xcm/index.d.ts +2 -0
  54. package/koni/api/xcm/index.js +27 -1
  55. package/koni/api/xcm/polkadotXcm.js +14 -22
  56. package/koni/api/xcm/utils.d.ts +3 -48
  57. package/koni/api/xcm/utils.js +5 -114
  58. package/koni/api/xcm/xTokens.js +12 -10
  59. package/koni/api/xcm/xcmPallet.js +7 -7
  60. package/koni/background/handlers/Extension.d.ts +6 -8
  61. package/koni/background/handlers/Extension.js +117 -247
  62. package/package.json +39 -9
  63. package/packageInfo.js +1 -1
  64. package/services/balance-service/helpers/group.js +4 -27
  65. package/services/balance-service/helpers/subscribe/index.d.ts +2 -1
  66. package/services/balance-service/helpers/subscribe/index.js +2 -30
  67. package/services/balance-service/helpers/subscribe/substrate/index.d.ts +2 -1
  68. package/services/balance-service/helpers/subscribe/substrate/index.js +31 -66
  69. package/services/balance-service/index.d.ts +7 -6
  70. package/services/balance-service/index.js +12 -10
  71. package/services/chain-service/constants.js +2 -2
  72. package/services/chain-service/index.js +0 -1
  73. package/services/chain-service/utils/index.d.ts +4 -2
  74. package/services/chain-service/utils/index.js +9 -2
  75. package/services/earning-service/handlers/base.js +1 -1
  76. package/services/earning-service/handlers/nomination-pool/index.d.ts +2 -1
  77. package/services/earning-service/handlers/special.js +11 -12
  78. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol.js +2 -1
  79. package/services/migration-service/scripts/databases/MigrateAssetSetting.js +2 -1
  80. package/services/migration-service/scripts/index.js +2 -2
  81. package/services/swap-service/handler/base-handler.d.ts +3 -2
  82. package/services/swap-service/handler/base-handler.js +28 -42
  83. package/services/swap-service/handler/chainflip-handler.d.ts +2 -1
  84. package/services/swap-service/handler/chainflip-handler.js +4 -2
  85. package/services/swap-service/handler/hydradx-handler.d.ts +2 -1
  86. package/services/swap-service/handler/hydradx-handler.js +8 -6
  87. package/services/swap-service/index.js +7 -1
  88. package/services/swap-service/utils.d.ts +2 -4
  89. package/services/swap-service/utils.js +7 -47
  90. package/services/transaction-service/index.d.ts +1 -1
  91. package/services/transaction-service/index.js +30 -119
  92. package/services/transaction-service/types.d.ts +1 -0
  93. package/types/balance/index.d.ts +6 -10
  94. package/types/yield/info/pallet.d.ts +0 -6
@@ -86,10 +86,6 @@ export interface ResultResolver {
86
86
  result: boolean;
87
87
  accounts: string[];
88
88
  }
89
- export interface RejectResolver {
90
- error: Error;
91
- accounts: string[];
92
- }
93
89
  export declare enum StakingType {
94
90
  NOMINATED = "nominated",
95
91
  POOLED = "pooled",
@@ -106,16 +102,6 @@ export interface StakingRewardItem {
106
102
  totalSlash?: string;
107
103
  unclaimedReward?: string;
108
104
  }
109
- export interface UnlockingStakeInfo {
110
- chain: string;
111
- address: string;
112
- type: StakingType;
113
- nextWithdrawal: number;
114
- redeemable: number;
115
- nextWithdrawalAmount: number;
116
- nextWithdrawalAction?: string;
117
- validatorAddress?: string;
118
- }
119
105
  export interface StakingItem {
120
106
  name: string;
121
107
  chain: string;
@@ -275,10 +261,6 @@ export interface DonateInfo {
275
261
  icon: string;
276
262
  link: string;
277
263
  }
278
- export interface DropdownTransformOptionType {
279
- label: string;
280
- value: string;
281
- }
282
264
  export interface NetWorkMetadataDef extends MetadataDefBase {
283
265
  networkKey: string;
284
266
  groups: NetWorkGroup[];
@@ -487,6 +469,7 @@ export interface BasicTokenInfo {
487
469
  }
488
470
  export interface AmountData extends BasicTokenInfo {
489
471
  value: string;
472
+ metadata?: unknown;
490
473
  }
491
474
  export interface FeeData extends AmountData {
492
475
  tooHigh?: boolean;
@@ -600,16 +583,6 @@ export declare type TransactionErrorType = BasicTxErrorType | TransferTxErrorTyp
600
583
  export declare enum BasicTxWarningCode {
601
584
  NOT_ENOUGH_EXISTENTIAL_DEPOSIT = "notEnoughExistentialDeposit"
602
585
  }
603
- export declare type BasicTxError = {
604
- errorType: TxErrorCode;
605
- data?: object;
606
- message: string;
607
- };
608
- export declare type BasicTxWarning = {
609
- warningType: TransactionWarningType;
610
- data?: object;
611
- message: string;
612
- };
613
586
  export interface TransactionResponse {
614
587
  extrinsicHash?: string;
615
588
  txError?: boolean;
@@ -622,7 +595,6 @@ export interface NftTransactionResponse extends SWTransactionResponse {
622
595
  isSendingSelf: boolean;
623
596
  }
624
597
  export declare type HandleBasicTx = (data: TransactionResponse) => void;
625
- export declare type TxErrorCode = TransferTxErrorType | TransactionErrorType;
626
598
  export declare enum BalanceErrorType {
627
599
  NETWORK_ERROR = "NETWORK_ERROR",
628
600
  TOKEN_ERROR = "TOKEN_ERROR",
@@ -814,11 +786,6 @@ export interface ExternalRequestPromise {
814
786
  message?: string;
815
787
  createdAt: number;
816
788
  }
817
- export interface PrepareExternalRequest {
818
- id: string;
819
- setState: (promise: ExternalRequestPromise) => void;
820
- updateState: (promise: Partial<ExternalRequestPromise>) => void;
821
- }
822
789
  export interface RequestRejectExternalRequest {
823
790
  id: string;
824
791
  message?: string;
@@ -852,16 +819,6 @@ export declare enum ThemeNames {
852
819
  DARK = "dark",
853
820
  SUBSPACE = "subspace"
854
821
  }
855
- export declare enum NETWORK_ERROR {
856
- INVALID_INFO_TYPE = "invalidInfoType",
857
- INJECT_SCRIPT_DETECTED = "injectScriptDetected",
858
- EXISTED_NETWORK = "existedNetwork",
859
- EXISTED_PROVIDER = "existedProvider",
860
- INVALID_PROVIDER = "invalidProvider",
861
- NONE = "none",
862
- CONNECTION_FAILURE = "connectionFailure",
863
- PROVIDER_NOT_SAME_NETWORK = "providerNotSameNetwork"
864
- }
865
822
  export declare enum NETWORK_STATUS {
866
823
  CONNECTED = "connected",
867
824
  CONNECTING = "connecting",
@@ -889,13 +846,6 @@ export interface NftTransactionRequest {
889
846
  export interface EvmNftTransaction extends ValidateTransactionResponse {
890
847
  tx: Record<string, any> | null;
891
848
  }
892
- export interface EvmNftSubmitTransaction extends BaseRequestSign {
893
- senderAddress: string;
894
- recipientAddress: string;
895
- networkKey: string;
896
- estimateGas: string;
897
- rawTransaction: Record<string, any>;
898
- }
899
849
  export interface ValidateNetworkResponse {
900
850
  success: boolean;
901
851
  error?: _CHAIN_VALIDATION_ERROR;
@@ -918,14 +868,11 @@ export interface ApiMap {
918
868
  substrate: Record<string, _SubstrateApi>;
919
869
  evm: Record<string, _EvmApi>;
920
870
  }
921
- export interface SupportTransferResponse {
922
- supportTransfer: boolean;
923
- supportTransferAll: boolean;
924
- }
925
871
  export interface RequestFreeBalance {
926
872
  address: string;
927
873
  networkKey: string;
928
874
  token?: string;
875
+ extrinsicType?: ExtrinsicType;
929
876
  }
930
877
  export interface RequestMaxTransferable {
931
878
  address: string;
@@ -934,17 +881,6 @@ export interface RequestMaxTransferable {
934
881
  isXcmTransfer?: boolean;
935
882
  destChain: string;
936
883
  }
937
- export interface RequestTransferCheckReferenceCount {
938
- address: string;
939
- networkKey: string;
940
- }
941
- export interface RequestTransferCheckSupporting {
942
- networkKey: string;
943
- tokenSlug: string;
944
- }
945
- export interface RequestTransferExistentialDeposit {
946
- tokenSlug: string;
947
- }
948
884
  export interface RequestSaveRecentAccount {
949
885
  accountId: string;
950
886
  chain?: string;
@@ -961,7 +897,6 @@ export interface SubstrateNftSubmitTransaction extends BaseRequestSign {
961
897
  recipientAddress: string;
962
898
  }
963
899
  export declare type RequestSubstrateNftSubmitTransaction = InternalRequestSign<SubstrateNftSubmitTransaction>;
964
- export declare type RequestEvmNftSubmitTransaction = InternalRequestSign<EvmNftSubmitTransaction>;
965
900
  export interface RequestAccountMeta {
966
901
  address: string | Uint8Array;
967
902
  }
@@ -1044,14 +979,6 @@ export interface ConfirmationResult<T> extends ConfirmationRequestBase {
1044
979
  isApproved: boolean;
1045
980
  payload?: T;
1046
981
  }
1047
- export interface EvmRequestExternal {
1048
- hashPayload: string;
1049
- canSign: boolean;
1050
- }
1051
- export interface EvmSendTransactionRequestExternal extends EvmSendTransactionRequest, EvmRequestExternal {
1052
- }
1053
- export interface EvmSignatureRequestExternal extends EvmSignatureRequest, EvmRequestExternal {
1054
- }
1055
982
  export interface AddNetworkRequestExternal {
1056
983
  chainId: string;
1057
984
  rpcUrls: string[];
@@ -1064,13 +991,6 @@ export interface AddNetworkRequestExternal {
1064
991
  decimals: number;
1065
992
  };
1066
993
  }
1067
- export interface AddNetworkExternalRequest {
1068
- chainId: string;
1069
- rpcUrl: string;
1070
- chainName: string;
1071
- blockExplorerUrl: string;
1072
- requestId: string;
1073
- }
1074
994
  export interface AddTokenRequestExternal {
1075
995
  slug?: string;
1076
996
  contractAddress: string;
@@ -1098,11 +1018,6 @@ export declare type RequestConfirmationsSubscribe = null;
1098
1018
  export declare type RequestConfirmationComplete = {
1099
1019
  [CT in ConfirmationType]?: ConfirmationDefinitions[CT][1];
1100
1020
  };
1101
- export interface BasicTxInfo {
1102
- fee: string;
1103
- balanceError: boolean;
1104
- rawFee?: number;
1105
- }
1106
1021
  export interface BondingOptionParams {
1107
1022
  chain: string;
1108
1023
  type: StakingType;
@@ -1144,10 +1059,6 @@ export interface LedgerNetwork {
1144
1059
  isDevMode: boolean;
1145
1060
  isEthereum: boolean;
1146
1061
  }
1147
- export interface TransakNetwork {
1148
- networks: string[];
1149
- tokens?: string[];
1150
- }
1151
1062
  export interface FormattedMethod {
1152
1063
  args?: ArgInfo[];
1153
1064
  methodName: string;
@@ -1331,36 +1242,6 @@ export interface StakePoolingUnbondingParams extends BaseRequestSign {
1331
1242
  amount: string;
1332
1243
  }
1333
1244
  export declare type RequestStakePoolingUnbonding = InternalRequestSign<StakePoolingUnbondingParams>;
1334
- export interface DelegationItem {
1335
- owner: string;
1336
- amount: string;
1337
- identity?: string;
1338
- minBond: string;
1339
- hasScheduledRequest: boolean;
1340
- icon?: string;
1341
- }
1342
- export interface StakeDelegationRequest {
1343
- address: string;
1344
- networkKey: string;
1345
- }
1346
- export interface CheckExistingTuringCompoundParams {
1347
- address: string;
1348
- collatorAddress: string;
1349
- networkKey: string;
1350
- }
1351
- export interface ExistingTuringCompoundTask {
1352
- exist: boolean;
1353
- taskId: string;
1354
- accountMinimum: number;
1355
- frequency: number;
1356
- }
1357
- export interface TuringStakeCompoundResp {
1358
- txInfo: BasicTxInfo;
1359
- optimalFrequency: string;
1360
- initTime: number;
1361
- compoundFee: string;
1362
- rawCompoundFee?: number;
1363
- }
1364
1245
  export interface TuringStakeCompoundParams extends BaseRequestSign {
1365
1246
  address: string;
1366
1247
  collatorAddress: string;
@@ -1375,35 +1256,6 @@ export interface TuringCancelStakeCompoundParams extends BaseRequestSign {
1375
1256
  address: string;
1376
1257
  }
1377
1258
  export declare type RequestTuringCancelStakeCompound = InternalRequestSign<TuringCancelStakeCompoundParams>;
1378
- export declare type RequestTransferExternal = InternalRequestSign<RequestCheckTransfer>;
1379
- export declare type RequestCrossChainTransferExternal = InternalRequestSign<RequestCheckCrossChainTransfer>;
1380
- export declare type RequestNftTransferExternalSubstrate = InternalRequestSign<SubstrateNftSubmitTransaction>;
1381
- export declare type RequestNftTransferExternalEvm = InternalRequestSign<EvmNftSubmitTransaction>;
1382
- export declare enum ChainEditStandard {
1383
- EVM = "EVM",
1384
- SUBSTRATE = "SUBSTRATE",
1385
- UNKNOWN = "UNKNOWN",
1386
- MIXED = "MIXED"
1387
- }
1388
- export declare type ChainEditInfo = {
1389
- slug: string;
1390
- currentProvider: string;
1391
- providers: Record<string, string>;
1392
- name: string;
1393
- chainType: ChainEditStandard;
1394
- blockExplorer?: string;
1395
- crowdloanUrl?: string;
1396
- priceId?: string;
1397
- symbol: string;
1398
- };
1399
- export interface ChainSpecInfo {
1400
- addressPrefix: number;
1401
- genesisHash: string;
1402
- paraId: number | null;
1403
- evmChainId: number | null;
1404
- existentialDeposit: string;
1405
- decimals: number;
1406
- }
1407
1259
  export interface KeyringState {
1408
1260
  isReady: boolean;
1409
1261
  hasMasterPassword: boolean;
@@ -1669,6 +1521,8 @@ export interface ResponseSubscribeHistory {
1669
1521
  id: string;
1670
1522
  items: TransactionHistoryItem[];
1671
1523
  }
1524
+ export declare type _Address = string;
1525
+ export declare type _BalanceMetadata = unknown;
1672
1526
  export interface KoniRequestSignatures {
1673
1527
  'pri(staking.submitTuringCancelCompound)': [RequestTuringCancelStakeCompound, SWTransactionResponse];
1674
1528
  'pri(staking.submitTuringCompound)': [RequestTuringStakeCompound, SWTransactionResponse];
@@ -1807,9 +1661,6 @@ export interface KoniRequestSignatures {
1807
1661
  'pri(yield.claimReward.submit)': [RequestStakeClaimReward, SWTransactionResponse];
1808
1662
  'pri(transaction.history.getSubscription)': [null, TransactionHistoryItem[], TransactionHistoryItem[]];
1809
1663
  'pri(transaction.history.subscribe)': [RequestSubscribeHistory, ResponseSubscribeHistory, TransactionHistoryItem[]];
1810
- 'pri(transfer.checkReferenceCount)': [RequestTransferCheckReferenceCount, boolean];
1811
- 'pri(transfer.checkSupporting)': [RequestTransferCheckSupporting, SupportTransferResponse];
1812
- 'pri(transfer.getExistentialDeposit)': [RequestTransferExistentialDeposit, string];
1813
1664
  'pri(transfer.getMaxTransferable)': [RequestMaxTransferable, AmountData];
1814
1665
  'pri(subscription.cancel)': [string, boolean];
1815
1666
  'pri(freeBalance.get)': [RequestFreeBalance, AmountData];
@@ -199,17 +199,6 @@ export let ThemeNames;
199
199
  ThemeNames["DARK"] = "dark";
200
200
  ThemeNames["SUBSPACE"] = "subspace";
201
201
  })(ThemeNames || (ThemeNames = {}));
202
- export let NETWORK_ERROR;
203
- (function (NETWORK_ERROR) {
204
- NETWORK_ERROR["INVALID_INFO_TYPE"] = "invalidInfoType";
205
- NETWORK_ERROR["INJECT_SCRIPT_DETECTED"] = "injectScriptDetected";
206
- NETWORK_ERROR["EXISTED_NETWORK"] = "existedNetwork";
207
- NETWORK_ERROR["EXISTED_PROVIDER"] = "existedProvider";
208
- NETWORK_ERROR["INVALID_PROVIDER"] = "invalidProvider";
209
- NETWORK_ERROR["NONE"] = "none";
210
- NETWORK_ERROR["CONNECTION_FAILURE"] = "connectionFailure";
211
- NETWORK_ERROR["PROVIDER_NOT_SAME_NETWORK"] = "providerNotSameNetwork";
212
- })(NETWORK_ERROR || (NETWORK_ERROR = {}));
213
202
  export let NETWORK_STATUS;
214
203
 
215
204
  // eslint-disable-next-line @typescript-eslint/ban-types
@@ -229,16 +218,6 @@ export let EvmProviderErrorType;
229
218
  EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
230
219
  EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
231
220
  })(EvmProviderErrorType || (EvmProviderErrorType = {}));
232
- export let ChainEditStandard;
233
-
234
- // ChainService
235
- // for custom network
236
- (function (ChainEditStandard) {
237
- ChainEditStandard["EVM"] = "EVM";
238
- ChainEditStandard["SUBSTRATE"] = "SUBSTRATE";
239
- ChainEditStandard["UNKNOWN"] = "UNKNOWN";
240
- ChainEditStandard["MIXED"] = "MIXED";
241
- })(ChainEditStandard || (ChainEditStandard = {}));
242
221
  export let NotificationType;
243
222
  (function (NotificationType) {
244
223
  NotificationType["INFO"] = "info";
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WalletUnlockType = exports.TransferTxErrorType = exports.TransactionDirection = exports.ThemeNames = exports.StakingType = exports.StakingTxErrorType = exports.RuntimeEnvironment = exports.RMRK_VER = exports.ProviderErrorType = exports.NotificationType = exports.NETWORK_STATUS = exports.NETWORK_ERROR = exports.MobileOS = exports.MantaPayEnableMessage = exports.ExtrinsicType = exports.ExtrinsicStatus = exports.ExternalRequestPromiseStatus = exports.EvmProviderErrorType = exports.CrowdloanParaState = exports.ContractType = exports.ChainType = exports.ChainEditStandard = exports.CampaignDataType = exports.BasicTxWarningCode = exports.BasicTxErrorType = exports.BalanceErrorType = exports.AssetHubNftType = exports.AccountExternalErrorCode = exports.APIItemState = void 0;
6
+ exports.WalletUnlockType = exports.TransferTxErrorType = exports.TransactionDirection = exports.ThemeNames = exports.StakingType = exports.StakingTxErrorType = exports.RuntimeEnvironment = exports.RMRK_VER = exports.ProviderErrorType = exports.NotificationType = exports.NETWORK_STATUS = exports.MobileOS = exports.MantaPayEnableMessage = exports.ExtrinsicType = exports.ExtrinsicStatus = exports.ExternalRequestPromiseStatus = exports.EvmProviderErrorType = exports.CrowdloanParaState = exports.ContractType = exports.ChainType = exports.CampaignDataType = exports.BasicTxWarningCode = exports.BasicTxErrorType = exports.BalanceErrorType = exports.AssetHubNftType = exports.AccountExternalErrorCode = exports.APIItemState = void 0;
7
7
  // Copyright 2019-2022 @polkadot/extension-koni authors & contributors
8
8
  // SPDX-License-Identifier: Apache-2.0
9
9
  let RuntimeEnvironment;
@@ -216,18 +216,6 @@ exports.ThemeNames = ThemeNames;
216
216
  ThemeNames["DARK"] = "dark";
217
217
  ThemeNames["SUBSPACE"] = "subspace";
218
218
  })(ThemeNames || (exports.ThemeNames = ThemeNames = {}));
219
- let NETWORK_ERROR;
220
- exports.NETWORK_ERROR = NETWORK_ERROR;
221
- (function (NETWORK_ERROR) {
222
- NETWORK_ERROR["INVALID_INFO_TYPE"] = "invalidInfoType";
223
- NETWORK_ERROR["INJECT_SCRIPT_DETECTED"] = "injectScriptDetected";
224
- NETWORK_ERROR["EXISTED_NETWORK"] = "existedNetwork";
225
- NETWORK_ERROR["EXISTED_PROVIDER"] = "existedProvider";
226
- NETWORK_ERROR["INVALID_PROVIDER"] = "invalidProvider";
227
- NETWORK_ERROR["NONE"] = "none";
228
- NETWORK_ERROR["CONNECTION_FAILURE"] = "connectionFailure";
229
- NETWORK_ERROR["PROVIDER_NOT_SAME_NETWORK"] = "providerNotSameNetwork";
230
- })(NETWORK_ERROR || (exports.NETWORK_ERROR = NETWORK_ERROR = {}));
231
219
  let NETWORK_STATUS; // eslint-disable-next-line @typescript-eslint/ban-types
232
220
  exports.NETWORK_STATUS = NETWORK_STATUS;
233
221
  (function (NETWORK_STATUS) {
@@ -247,15 +235,6 @@ exports.EvmProviderErrorType = EvmProviderErrorType;
247
235
  EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
248
236
  EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
249
237
  })(EvmProviderErrorType || (exports.EvmProviderErrorType = EvmProviderErrorType = {}));
250
- let ChainEditStandard; // ChainService
251
- // for custom network
252
- exports.ChainEditStandard = ChainEditStandard;
253
- (function (ChainEditStandard) {
254
- ChainEditStandard["EVM"] = "EVM";
255
- ChainEditStandard["SUBSTRATE"] = "SUBSTRATE";
256
- ChainEditStandard["UNKNOWN"] = "UNKNOWN";
257
- ChainEditStandard["MIXED"] = "MIXED";
258
- })(ChainEditStandard || (exports.ChainEditStandard = ChainEditStandard = {}));
259
238
  let NotificationType;
260
239
  exports.NotificationType = NotificationType;
261
240
  (function (NotificationType) {
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.INSUFFICIENT_MESSAGES = void 0;
8
+ exports._handleDisplayForEarningError = _handleDisplayForEarningError;
9
+ exports._handleDisplayInsufficientEarningError = _handleDisplayInsufficientEarningError;
10
+ var _bignumber = _interopRequireDefault(require("bignumber.js"));
11
+ // Copyright 2019-2022 @subwallet/extension-base
12
+ // SPDX-License-Identifier: Apache-2.0
13
+
14
+ function _handleDisplayForEarningError(error) {
15
+ if (error.message.startsWith('UnknownError Connection to Indexed DataBase server lost') || error.message.startsWith('Provided address is invalid, the capitalization checksum test failed') || error.message.startsWith('connection not open on send()')) {
16
+ return {
17
+ title: 'Connection error',
18
+ message: 'Your selected network has lost connection. Update it by re-enabling it or changing network provider'
19
+ };
20
+ }
21
+ return undefined;
22
+ }
23
+ const INSUFFICIENT_MESSAGES = ['残高不足', 'Недостаточный баланс', 'Insufficient balance'];
24
+ exports.INSUFFICIENT_MESSAGES = INSUFFICIENT_MESSAGES;
25
+ function _handleDisplayInsufficientEarningError(error, isXCM, availableBalance, amount, minJoinPool) {
26
+ if (isXCM || !INSUFFICIENT_MESSAGES.some(v => error.message.includes(v))) {
27
+ return undefined;
28
+ }
29
+ const bnAvailableBalance = new _bignumber.default(availableBalance);
30
+ const bnAmount = new _bignumber.default(amount);
31
+ if (bnAvailableBalance.gt(0) && bnAmount.gte(bnAvailableBalance)) {
32
+ return {
33
+ title: 'Insufficient balance',
34
+ message: 'Insufficient balance. Amount must be smaller than available balance'
35
+ };
36
+ }
37
+ if (bnAvailableBalance.lte(minJoinPool)) {
38
+ return {
39
+ title: 'Insufficient balance',
40
+ message: 'You don\'t have enough {{symbol}} ({{chain}}) to stake, make sure your available balance is higher than {{minJoinPool}} {{symbol}}'
41
+ };
42
+ }
43
+ return {
44
+ title: 'Insufficient balance',
45
+ message: 'You don\'t have enough {{symbol}} ({{chain}}) to pay gas fee. Lower your amount and try again'
46
+ };
47
+ }
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports._getChainflipEarlyValidationError = _getChainflipEarlyValidationError;
8
+ exports._getEarlyHydradxValidationError = _getEarlyHydradxValidationError;
9
+ exports._validateBalanceToSwap = _validateBalanceToSwap;
10
+ exports._validateSwapRecipient = _validateSwapRecipient;
11
+ var _SwapError = require("@subwallet/extension-base/background/errors/SwapError");
12
+ var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
13
+ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
14
+ var _utils = require("@subwallet/extension-base/services/chain-service/utils");
15
+ var _swap = require("@subwallet/extension-base/types/swap");
16
+ var _utils2 = require("@subwallet/extension-base/utils");
17
+ var _bignumber = _interopRequireDefault(require("bignumber.js"));
18
+ var _utilCrypto = require("@polkadot/util-crypto");
19
+ // Copyright 2019-2022 @subwallet/extension-base
20
+ // SPDX-License-Identifier: Apache-2.0
21
+
22
+ function _validateBalanceToSwap(fromToken, feeToken, feeTokenChainInfo, feeAmount, fromTokenBalance, feeTokenBalance, swapAmount, isXcmOk, minSwap) {
23
+ if (new _bignumber.default(feeTokenBalance).lte(feeAmount)) {
24
+ return new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE, `You don't have enough ${feeToken.symbol} (${feeTokenChainInfo.name}) to pay transaction fee`);
25
+ }
26
+ if (fromToken.slug === feeToken.slug) {
27
+ if (new _bignumber.default(fromTokenBalance).lte(new _bignumber.default(feeAmount).plus(swapAmount))) {
28
+ return new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE, `Insufficient balance. Deposit ${fromToken.symbol} and try again.`);
29
+ }
30
+ }
31
+ if (isXcmOk) {
32
+ // assume that the swap is valid if XCM is in the process and it was successful
33
+ return undefined;
34
+ }
35
+ if (minSwap) {
36
+ if (new _bignumber.default(fromTokenBalance).lte(minSwap)) {
37
+ const parsedMinSwapValue = (0, _utils2.formatNumber)(minSwap, (0, _utils._getAssetDecimals)(fromToken));
38
+ return new _TransactionError.TransactionError(_swap.SwapErrorType.SWAP_NOT_ENOUGH_BALANCE, `Insufficient balance. You need more than ${parsedMinSwapValue} ${fromToken.symbol} to start swapping. Deposit ${fromToken.symbol} and try again.`); // todo: min swap or amount?
39
+ }
40
+ }
41
+
42
+ if (new _bignumber.default(swapAmount).gte(fromTokenBalance)) {
43
+ const parsedMaxBalanceSwap = (0, _utils2.formatNumber)(fromTokenBalance, (0, _utils._getAssetDecimals)(fromToken));
44
+ return new _TransactionError.TransactionError(_swap.SwapErrorType.SWAP_EXCEED_ALLOWANCE, `Amount too high. Lower your amount ${new _bignumber.default(fromTokenBalance).gt(0) ? `below ${parsedMaxBalanceSwap} ${fromToken.symbol}` : ''} and try again`);
45
+ }
46
+ return undefined;
47
+ }
48
+ function _validateSwapRecipient(destChainInfo, recipient) {
49
+ const isEvmAddress = (0, _utilCrypto.isEthereumAddress)(recipient);
50
+ const isEvmDestChain = (0, _utils._isChainEvmCompatible)(destChainInfo);
51
+ if (isEvmAddress && !isEvmDestChain || !isEvmAddress && isEvmDestChain) {
52
+ return new _TransactionError.TransactionError(_swap.SwapErrorType.INVALID_RECIPIENT);
53
+ }
54
+ return undefined;
55
+ }
56
+ function _getChainflipEarlyValidationError(error, metadata) {
57
+ // todo: support more providers
58
+ switch (error) {
59
+ case _swap.SwapErrorType.NOT_MEET_MIN_SWAP:
60
+ {
61
+ const parsedMinSwapValue = (0, _utils2.formatNumber)(metadata.minSwap.value, metadata.minSwap.decimals);
62
+ const message = `Amount too low. Increase your amount above ${parsedMinSwapValue} ${metadata.minSwap.symbol} and try again`;
63
+ return new _SwapError.SwapError(error, message);
64
+ }
65
+ case _swap.SwapErrorType.SWAP_EXCEED_ALLOWANCE:
66
+ {
67
+ if (metadata.maxSwap) {
68
+ const parsedMaxSwapValue = (0, _utils2.formatNumber)(metadata.maxSwap.value, metadata.maxSwap.decimals);
69
+ return new _SwapError.SwapError(error, `Amount too high. Lower your amount below ${parsedMaxSwapValue} ${metadata.maxSwap.symbol} and try again`);
70
+ } else {
71
+ return new _SwapError.SwapError(error, 'Amount too high. Lower your amount and try again');
72
+ }
73
+ }
74
+ case _swap.SwapErrorType.ASSET_NOT_SUPPORTED:
75
+ return new _SwapError.SwapError(error, 'This swap pair is not supported');
76
+ case _swap.SwapErrorType.UNKNOWN:
77
+ return new _SwapError.SwapError(error, `Undefined error. Check your Internet and ${metadata.chain.slug} connection or contact support`);
78
+ case _swap.SwapErrorType.ERROR_FETCHING_QUOTE:
79
+ return new _SwapError.SwapError(error, 'No swap quote found. Adjust your amount or try again later.');
80
+ default:
81
+ return new _SwapError.SwapError(error);
82
+ }
83
+ }
84
+ function _getEarlyHydradxValidationError(error, metadata) {
85
+ switch (error) {
86
+ case _swap.SwapErrorType.AMOUNT_CANNOT_BE_ZERO:
87
+ {
88
+ return new _SwapError.SwapError(error, 'Amount too low. Increase your amount above 0 and try again');
89
+ }
90
+ case _swap.SwapErrorType.ASSET_NOT_SUPPORTED:
91
+ return new _SwapError.SwapError(error, 'This swap pair is not supported');
92
+ case _swap.SwapErrorType.UNKNOWN:
93
+ return new _SwapError.SwapError(error, `Undefined error. Check your Internet and ${metadata.chain.slug} connection or contact support`);
94
+ case _swap.SwapErrorType.ERROR_FETCHING_QUOTE:
95
+ return new _SwapError.SwapError(error, 'No swap quote found. Adjust your amount or try again later.');
96
+ default:
97
+ return new _SwapError.SwapError(error);
98
+ }
99
+ }