@subwallet/extension-base 1.3.70-2 → 1.3.72-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 (237) hide show
  1. package/background/KoniTypes.d.ts +13 -2
  2. package/background/KoniTypes.js +68 -9
  3. package/cjs/background/KoniTypes.js +68 -9
  4. package/cjs/constants/blocked-actions.js +3 -0
  5. package/cjs/core/logic-validation/recipientAddress.js +1 -1
  6. package/cjs/core/logic-validation/swap.js +0 -3
  7. package/cjs/core/logic-validation/transfer.js +33 -10
  8. package/cjs/core/substrate/system-pallet.js +0 -2
  9. package/cjs/core/types.js +1 -0
  10. package/cjs/koni/api/nft/wasm_nft/index.js +0 -1
  11. package/cjs/koni/api/staking/bonding/astar.js +0 -2
  12. package/cjs/koni/api/staking/bonding/paraChain.js +0 -3
  13. package/cjs/koni/api/staking/bonding/relayChain.js +2 -4
  14. package/cjs/koni/api/staking/bonding/utils.js +0 -4
  15. package/cjs/koni/background/cron.js +0 -1
  16. package/cjs/koni/background/handlers/Extension.js +235 -166
  17. package/cjs/koni/background/handlers/State.js +56 -52
  18. package/cjs/koni/background/handlers/Tabs.js +39 -34
  19. package/cjs/packageInfo.js +1 -1
  20. package/cjs/page/index.js +7 -0
  21. package/cjs/page/substrate/PostMessageProvider.js +3 -0
  22. package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  23. package/cjs/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  24. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +48 -5
  25. package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  26. package/cjs/services/balance-service/index.js +103 -7
  27. package/cjs/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  28. package/cjs/services/balance-service/transfer/cardano-transfer.js +1 -2
  29. package/cjs/services/balance-service/transfer/smart-contract.js +0 -1
  30. package/cjs/services/balance-service/transfer/token.js +13 -37
  31. package/cjs/services/balance-service/transfer/ton-transfer.js +0 -1
  32. package/cjs/services/balance-service/transfer/xcm/index.js +3 -8
  33. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  34. package/cjs/services/balance-service/transfer/xcm/utils.js +1 -1
  35. package/cjs/services/chain-service/constants.js +6 -5
  36. package/cjs/services/chain-service/handler/CardanoApi.js +3 -1
  37. package/cjs/services/chain-service/handler/SubstrateApi.js +0 -2
  38. package/cjs/services/chain-service/handler/light-client/index.js +1 -2
  39. package/cjs/services/chain-service/health-check/index.js +0 -1
  40. package/cjs/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  41. package/cjs/services/chain-service/index.js +19 -26
  42. package/cjs/services/chain-service/utils/index.js +21 -25
  43. package/cjs/services/chain-service/utils/patch.js +1 -1
  44. package/cjs/services/earning-service/handlers/base.js +32 -0
  45. package/cjs/services/earning-service/handlers/lending/base.js +0 -2
  46. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  47. package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -2
  48. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  49. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  50. package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -2
  51. package/cjs/services/earning-service/handlers/native-staking/dtao.js +43 -2
  52. package/cjs/services/earning-service/handlers/native-staking/energy.js +0 -1
  53. package/cjs/services/earning-service/handlers/native-staking/mythos.js +0 -2
  54. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  55. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  56. package/cjs/services/earning-service/handlers/special.js +7 -0
  57. package/cjs/services/history-service/subsquid-multi-chain-history.js +0 -1
  58. package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
  59. package/cjs/services/keyring-service/context/handlers/Migration.js +11 -9
  60. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +18 -13
  61. package/cjs/services/keyring-service/context/state.js +21 -3
  62. package/cjs/services/keyring-service/utils.js +12 -2
  63. package/cjs/services/migration-service/index.js +1 -2
  64. package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +55 -0
  65. package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +41 -0
  66. package/cjs/services/migration-service/scripts/index.js +17 -13
  67. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  68. package/cjs/services/nft-service/index.js +5 -0
  69. package/cjs/services/open-gov/handler.js +0 -2
  70. package/cjs/services/open-gov/interface.js +4 -1
  71. package/cjs/services/request-service/handler/BitcoinRequestHandler.js +1 -2
  72. package/cjs/services/request-service/handler/CardanoRequestHandler.js +0 -1
  73. package/cjs/services/request-service/handler/EvmRequestHandler.js +0 -1
  74. package/cjs/services/request-service/handler/TonRequestHandler.js +0 -1
  75. package/cjs/services/request-service/helper/index.js +1 -2
  76. package/cjs/services/storage-service/DatabaseService.js +0 -2
  77. package/cjs/services/storage-service/databases/index.js +2 -0
  78. package/cjs/services/substrate-proxy-service/constant.js +26 -0
  79. package/cjs/services/substrate-proxy-service/index.js +170 -0
  80. package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -1
  81. package/cjs/services/swap-service/handler/asset-hub/router.js +0 -1
  82. package/cjs/services/swap-service/handler/chainflip-handler.js +1 -4
  83. package/cjs/services/swap-service/handler/hydradx-handler.js +0 -1
  84. package/cjs/services/swap-service/handler/kyber-handler.js +0 -1
  85. package/cjs/services/swap-service/handler/optimex-handler.js +1 -2
  86. package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -3
  87. package/cjs/services/swap-service/handler/uniswap-handler.js +0 -3
  88. package/cjs/services/transaction-service/event-parser/index.js +6 -6
  89. package/cjs/services/transaction-service/index.js +105 -37
  90. package/cjs/services/transaction-service/utils.js +8 -5
  91. package/cjs/services/wallet-connect-service/index.js +21 -18
  92. package/cjs/services/wallet-connect-service/types.js +1 -1
  93. package/cjs/types/account/info/keyring.js +9 -1
  94. package/cjs/types/balance/index.js +5 -1
  95. package/cjs/types/index.js +11 -0
  96. package/cjs/types/substrateProxyAccount/actions/index.js +1 -0
  97. package/cjs/types/substrateProxyAccount/index.js +16 -0
  98. package/cjs/types/swap/index.js +2 -1
  99. package/cjs/types/transaction/process.js +2 -0
  100. package/cjs/types/yield/actions/join/step.js +17 -1
  101. package/cjs/utils/account/common.js +0 -26
  102. package/cjs/utils/account/derive/info/solo.js +7 -4
  103. package/cjs/utils/account/derive/validate.js +1 -1
  104. package/cjs/utils/account/transform.js +10 -5
  105. package/cjs/utils/auth.js +1 -1
  106. package/cjs/utils/bitcoin/utxo-management.js +0 -1
  107. package/cjs/utils/environment.js +2 -1
  108. package/cjs/utils/fee/transfer.js +5 -4
  109. package/cjs/utils/index.js +1 -2
  110. package/constants/blocked-actions.js +3 -0
  111. package/core/logic-validation/recipientAddress.js +1 -1
  112. package/core/logic-validation/swap.js +0 -3
  113. package/core/logic-validation/transfer.d.ts +3 -3
  114. package/core/logic-validation/transfer.js +34 -11
  115. package/core/substrate/system-pallet.js +0 -2
  116. package/core/types.d.ts +2 -1
  117. package/core/types.js +1 -0
  118. package/koni/api/nft/wasm_nft/index.js +0 -1
  119. package/koni/api/staking/bonding/astar.js +0 -2
  120. package/koni/api/staking/bonding/paraChain.js +0 -3
  121. package/koni/api/staking/bonding/relayChain.js +2 -4
  122. package/koni/api/staking/bonding/utils.js +0 -4
  123. package/koni/background/cron.js +0 -1
  124. package/koni/background/handlers/Extension.d.ts +3 -0
  125. package/koni/background/handlers/Extension.js +89 -19
  126. package/koni/background/handlers/State.d.ts +2 -0
  127. package/koni/background/handlers/State.js +43 -38
  128. package/koni/background/handlers/Tabs.js +9 -3
  129. package/package.json +50 -21
  130. package/packageInfo.js +1 -1
  131. package/page/substrate/PostMessageProvider.js +3 -0
  132. package/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  133. package/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  134. package/services/balance-service/helpers/subscribe/substrate/index.js +47 -4
  135. package/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  136. package/services/balance-service/index.d.ts +8 -0
  137. package/services/balance-service/index.js +105 -9
  138. package/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  139. package/services/balance-service/transfer/smart-contract.js +0 -1
  140. package/services/balance-service/transfer/token.d.ts +0 -4
  141. package/services/balance-service/transfer/token.js +12 -35
  142. package/services/balance-service/transfer/ton-transfer.js +0 -1
  143. package/services/balance-service/transfer/xcm/index.js +3 -8
  144. package/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  145. package/services/balance-service/transfer/xcm/utils.d.ts +0 -2
  146. package/services/balance-service/transfer/xcm/utils.js +1 -1
  147. package/services/chain-service/constants.d.ts +1 -1
  148. package/services/chain-service/constants.js +4 -4
  149. package/services/chain-service/handler/CardanoApi.js +3 -1
  150. package/services/chain-service/handler/SubstrateApi.js +0 -2
  151. package/services/chain-service/health-check/index.js +0 -1
  152. package/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  153. package/services/chain-service/index.d.ts +0 -1
  154. package/services/chain-service/index.js +16 -23
  155. package/services/chain-service/utils/index.js +22 -26
  156. package/services/chain-service/utils/patch.d.ts +1 -1
  157. package/services/chain-service/utils/patch.js +1 -1
  158. package/services/earning-service/handlers/base.js +32 -0
  159. package/services/earning-service/handlers/lending/base.js +0 -2
  160. package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  161. package/services/earning-service/handlers/liquid-staking/base.js +0 -2
  162. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  163. package/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  164. package/services/earning-service/handlers/native-staking/astar.js +0 -2
  165. package/services/earning-service/handlers/native-staking/dtao.js +43 -0
  166. package/services/earning-service/handlers/native-staking/energy.js +0 -1
  167. package/services/earning-service/handlers/native-staking/mythos.js +0 -2
  168. package/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  169. package/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  170. package/services/earning-service/handlers/special.js +7 -0
  171. package/services/history-service/subsquid-multi-chain-history.js +0 -1
  172. package/services/keyring-service/context/handlers/Derive.js +2 -2
  173. package/services/keyring-service/context/handlers/Migration.js +3 -1
  174. package/services/keyring-service/context/handlers/Mnemonic.d.ts +1 -1
  175. package/services/keyring-service/context/handlers/Mnemonic.js +16 -10
  176. package/services/keyring-service/context/state.d.ts +3 -0
  177. package/services/keyring-service/context/state.js +21 -3
  178. package/services/keyring-service/utils.d.ts +1 -0
  179. package/services/keyring-service/utils.js +9 -0
  180. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.d.ts +4 -0
  181. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +46 -0
  182. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.d.ts +4 -0
  183. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +33 -0
  184. package/services/migration-service/scripts/index.js +8 -4
  185. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  186. package/services/nft-service/index.js +6 -0
  187. package/services/open-gov/handler.js +0 -2
  188. package/services/open-gov/interface.d.ts +4 -3
  189. package/services/open-gov/interface.js +4 -1
  190. package/services/request-service/handler/CardanoRequestHandler.js +0 -1
  191. package/services/request-service/handler/EvmRequestHandler.js +0 -1
  192. package/services/request-service/handler/TonRequestHandler.js +0 -1
  193. package/services/setting-service/constants.js +0 -1
  194. package/services/storage-service/DatabaseService.js +0 -2
  195. package/services/storage-service/databases/index.js +3 -0
  196. package/services/substrate-proxy-service/constant.d.ts +3 -0
  197. package/services/substrate-proxy-service/constant.js +19 -0
  198. package/services/substrate-proxy-service/index.d.ts +13 -0
  199. package/services/substrate-proxy-service/index.js +159 -0
  200. package/services/swap-service/handler/asset-hub/handler.js +0 -1
  201. package/services/swap-service/handler/asset-hub/router.js +0 -1
  202. package/services/swap-service/handler/chainflip-handler.js +0 -2
  203. package/services/swap-service/handler/hydradx-handler.js +0 -1
  204. package/services/swap-service/handler/kyber-handler.js +0 -1
  205. package/services/swap-service/handler/simpleswap-handler.js +0 -1
  206. package/services/swap-service/handler/uniswap-handler.js +0 -3
  207. package/services/transaction-service/event-parser/index.js +6 -6
  208. package/services/transaction-service/index.js +79 -11
  209. package/services/transaction-service/types.d.ts +2 -2
  210. package/services/transaction-service/utils.js +8 -5
  211. package/services/wallet-connect-service/index.js +21 -18
  212. package/services/wallet-connect-service/types.js +1 -1
  213. package/types/account/action/add/mnemonic.d.ts +3 -2
  214. package/types/account/info/keyring.js +9 -1
  215. package/types/balance/index.js +5 -1
  216. package/types/balance/transfer.d.ts +1 -0
  217. package/types/index.d.ts +1 -0
  218. package/types/index.js +1 -0
  219. package/types/substrateProxyAccount/actions/index.d.ts +17 -0
  220. package/types/substrateProxyAccount/actions/index.js +1 -0
  221. package/types/substrateProxyAccount/index.d.ts +23 -0
  222. package/types/substrateProxyAccount/index.js +8 -0
  223. package/types/swap/index.js +2 -1
  224. package/types/transaction/process.js +3 -1
  225. package/types/transaction/request.d.ts +1 -0
  226. package/types/yield/actions/join/step.js +17 -1
  227. package/types/yield/actions/join/submit.d.ts +1 -1
  228. package/utils/account/common.d.ts +0 -3
  229. package/utils/account/common.js +0 -24
  230. package/utils/account/derive/info/solo.js +8 -5
  231. package/utils/account/derive/validate.d.ts +2 -2
  232. package/utils/account/derive/validate.js +1 -1
  233. package/utils/account/transform.js +10 -5
  234. package/utils/auth.js +2 -2
  235. package/utils/bitcoin/utxo-management.js +0 -1
  236. package/utils/fee/transfer.js +4 -2
  237. package/utils/index.js +2 -5
@@ -35,6 +35,7 @@ import { SignerResult } from '@polkadot/types/types/extrinsic';
35
35
  import { HexString } from '@polkadot/util/types';
36
36
  import { EarningImpactResult } from '../services/earning-service/handlers/native-staking/dtao';
37
37
  import { GovVoteRequest, GovVotingInfo, RemoveVoteRequest, UnlockVoteRequest } from '../services/open-gov/interface';
38
+ import { RequestAddSubstrateProxyAccount, RequestGetSubstrateProxyAccountGroup, RequestRemoveSubstrateProxyAccount, SubstrateProxyAccountGroup } from '../types/substrateProxyAccount';
38
39
  import { TransactionWarning } from './warnings/TransactionWarning';
39
40
  export declare enum RuntimeEnvironment {
40
41
  Web = "Web",
@@ -450,8 +451,10 @@ export declare enum ExtrinsicType {
450
451
  CLAIM_BRIDGE = "claim.claim_bridge",
451
452
  GOV_VOTE = "gov.vote",
452
453
  GOV_UNVOTE = "gov.unvote",
453
- GOV_UNLOCK_VOTE = "gov.unlock-vote",
454
+ GOV_UNLOCK_VOTE = "gov.unlock_vote",
454
455
  EVM_EXECUTE = "evm.execute",
456
+ ADD_SUBSTRATE_PROXY_ACCOUNT = "substrateProxyAccount.add",
457
+ REMOVE_SUBSTRATE_PROXY_ACCOUNT = "substrateProxyAccount.remove",
455
458
  UNKNOWN = "unknown"
456
459
  }
457
460
  export interface ExtrinsicDataTypeMap {
@@ -494,9 +497,12 @@ export interface ExtrinsicDataTypeMap {
494
497
  [ExtrinsicType.CLAIM_BRIDGE]: RequestClaimBridge;
495
498
  [ExtrinsicType.EVM_EXECUTE]: TransactionConfig;
496
499
  [ExtrinsicType.CROWDLOAN]: any;
500
+ [ExtrinsicType.SWAP]: SwapTxData;
497
501
  [ExtrinsicType.GOV_VOTE]: GovVoteRequest;
498
502
  [ExtrinsicType.GOV_UNVOTE]: RemoveVoteRequest;
499
503
  [ExtrinsicType.GOV_UNLOCK_VOTE]: UnlockVoteRequest;
504
+ [ExtrinsicType.ADD_SUBSTRATE_PROXY_ACCOUNT]: RequestAddSubstrateProxyAccount;
505
+ [ExtrinsicType.REMOVE_SUBSTRATE_PROXY_ACCOUNT]: RequestRemoveSubstrateProxyAccount;
500
506
  [ExtrinsicType.SWAP]: SwapTxData;
501
507
  [ExtrinsicType.UNKNOWN]: any;
502
508
  }
@@ -607,6 +613,7 @@ export interface TransactionHistoryItem<ET extends ExtrinsicType = ExtrinsicType
607
613
  addressPrefix?: number;
608
614
  processId?: string;
609
615
  apiTxIndex?: number;
616
+ substrateProxyAddresses?: string[];
610
617
  }
611
618
  export interface SWWarning {
612
619
  errorType: string;
@@ -766,7 +773,7 @@ export declare type TxResultType = {
766
773
  fee?: string;
767
774
  feeSymbol?: string;
768
775
  };
769
- export interface NftTransactionRequest {
776
+ export interface NftTransactionRequest extends BaseRequestSign {
770
777
  networkKey: string;
771
778
  senderAddress: string;
772
779
  recipientAddress: string;
@@ -834,6 +841,7 @@ export interface SubstrateNftSubmitTransaction extends BaseRequestSign {
834
841
  senderAddress: string;
835
842
  nftItemName?: string;
836
843
  recipientAddress: string;
844
+ nftItem: NftItem;
837
845
  }
838
846
  export declare type RequestSubstrateNftSubmitTransaction = InternalRequestSign<SubstrateNftSubmitTransaction>;
839
847
  export interface RequestAccountMeta {
@@ -2095,6 +2103,9 @@ export interface KoniRequestSignatures {
2095
2103
  'pri(openGov.unvote)': [RemoveVoteRequest, SWTransactionResponse];
2096
2104
  'pri(openGov.subscribeGovLockedInfo)': [null, GovVotingInfo[], GovVotingInfo[]];
2097
2105
  'pri(openGov.unlockVote)': [UnlockVoteRequest, SWTransactionResponse];
2106
+ 'pri(substrateProxyAccount.getGroupInfo)': [RequestGetSubstrateProxyAccountGroup, SubstrateProxyAccountGroup];
2107
+ 'pri(substrateProxyAccount.add)': [RequestAddSubstrateProxyAccount, SWTransactionResponse];
2108
+ 'pri(substrateProxyAccount.remove)': [RequestRemoveSubstrateProxyAccount, SWTransactionResponse];
2098
2109
  }
2099
2110
  export interface ApplicationMetadataType {
2100
2111
  version: string;
@@ -10,7 +10,16 @@ export let RuntimeEnvironment;
10
10
  RuntimeEnvironment["WebWorker"] = "Web Worker";
11
11
  RuntimeEnvironment["ServiceWorker"] = "Service Worker";
12
12
  RuntimeEnvironment["Unknown"] = "Unknown";
13
- })(RuntimeEnvironment || (RuntimeEnvironment = {}));
13
+ })(RuntimeEnvironment || (RuntimeEnvironment = {})); /// Request Auth
14
+ /// Manage Auth
15
+ // Get Auth
16
+ // Auth All site
17
+ // Manage site auth (all allowed/unAllowed)
18
+ // Manage single auth with single account
19
+ // Manage single site with multi account
20
+ // Manage site block
21
+ // Forget site auth
22
+ // Switch current network auth
14
23
  /// Staking subscribe
15
24
 
16
25
  export let StakingType;
@@ -108,8 +117,10 @@ export let ExtrinsicType;
108
117
  ExtrinsicType["CLAIM_BRIDGE"] = "claim.claim_bridge";
109
118
  ExtrinsicType["GOV_VOTE"] = "gov.vote";
110
119
  ExtrinsicType["GOV_UNVOTE"] = "gov.unvote";
111
- ExtrinsicType["GOV_UNLOCK_VOTE"] = "gov.unlock-vote";
120
+ ExtrinsicType["GOV_UNLOCK_VOTE"] = "gov.unlock_vote";
112
121
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
122
+ ExtrinsicType["ADD_SUBSTRATE_PROXY_ACCOUNT"] = "substrateProxyAccount.add";
123
+ ExtrinsicType["REMOVE_SUBSTRATE_PROXY_ACCOUNT"] = "substrateProxyAccount.remove";
113
124
  ExtrinsicType["UNKNOWN"] = "unknown";
114
125
  })(ExtrinsicType || (ExtrinsicType = {}));
115
126
  export let ExtrinsicStatus;
@@ -122,7 +133,13 @@ export let ExtrinsicStatus;
122
133
  ExtrinsicStatus["CANCELLED"] = "cancelled";
123
134
  ExtrinsicStatus["TIMEOUT"] = "timeout";
124
135
  ExtrinsicStatus["UNKNOWN"] = "unknown";
125
- })(ExtrinsicStatus || (ExtrinsicStatus = {}));
136
+ })(ExtrinsicStatus || (ExtrinsicStatus = {})); // export type TransactionAdditionalInfo<T extends ExtrinsicType> = T extends ExtrinsicType.TRANSFER_XCM
137
+ // ? XCMTransactionAdditionalInfo
138
+ // : T extends ExtrinsicType.SEND_NFT
139
+ // ? NFTTransactionAdditionalInfo
140
+ // : T extends ExtrinsicType.MINT_VDOT
141
+ // ? Pick<SubmitBifrostLiquidStaking, 'rewardTokenSlug' | 'estimatedAmountReceived'>
142
+ // : undefined;
126
143
  export let BalanceErrorType;
127
144
  (function (BalanceErrorType) {
128
145
  BalanceErrorType["NETWORK_ERROR"] = "NETWORK_ERROR";
@@ -149,7 +166,11 @@ export let AccountExternalErrorCode;
149
166
  AccountExternalErrorCode["INVALID_ADDRESS"] = "invalidToAccount";
150
167
  AccountExternalErrorCode["KEYRING_ERROR"] = "keyringError";
151
168
  AccountExternalErrorCode["UNKNOWN_ERROR"] = "unknownError";
152
- })(AccountExternalErrorCode || (AccountExternalErrorCode = {}));
169
+ })(AccountExternalErrorCode || (AccountExternalErrorCode = {})); // Attach QR-signer account
170
+ // Attach Ledger account
171
+ // Restore account with public and secret key
172
+ // Subscribe Address Book
173
+ // Inject account
153
174
  /// Sign Transaction
154
175
 
155
176
  /// Sign External Request
@@ -164,7 +185,9 @@ export let ExternalRequestPromiseStatus;
164
185
  ExternalRequestPromiseStatus[ExternalRequestPromiseStatus["REJECTED"] = 1] = "REJECTED";
165
186
  ExternalRequestPromiseStatus[ExternalRequestPromiseStatus["FAILED"] = 2] = "FAILED";
166
187
  ExternalRequestPromiseStatus[ExternalRequestPromiseStatus["COMPLETED"] = 3] = "COMPLETED";
167
- })(ExternalRequestPromiseStatus || (ExternalRequestPromiseStatus = {}));
188
+ })(ExternalRequestPromiseStatus || (ExternalRequestPromiseStatus = {})); // Reject
189
+ // Resolve
190
+ ///
168
191
  export let ThemeNames;
169
192
  (function (ThemeNames) {
170
193
  ThemeNames["LIGHT"] = "light";
@@ -220,29 +243,65 @@ export let CardanoProviderErrorType;
220
243
  CardanoProviderErrorType["SUBMIT_TRANSACTION_REFUSED"] = "SUBMIT_TRANSACTION_REFUSED";
221
244
  CardanoProviderErrorType["SUBMIT_TRANSACTION_FAILURE"] = "SUBMIT_TRANSACTION_FAILURE";
222
245
  CardanoProviderErrorType["SIGN_TRANSACTION_DECLINED"] = "SIGN_TRANSACTION_DECLINED";
223
- })(CardanoProviderErrorType || (CardanoProviderErrorType = {}));
246
+ })(CardanoProviderErrorType || (CardanoProviderErrorType = {})); // TODO: add account info + dataToSign
247
+ // Design to use only one confirmation
248
+ /// Evm transaction
249
+ /// Evm Contract Input
250
+ /// Ledger
224
251
  export let POLKADOT_LEDGER_SCHEME;
225
252
  (function (POLKADOT_LEDGER_SCHEME) {
226
253
  POLKADOT_LEDGER_SCHEME["ED25519"] = "ed25519";
227
254
  POLKADOT_LEDGER_SCHEME["ECDSA"] = "ecdsa";
228
- })(POLKADOT_LEDGER_SCHEME || (POLKADOT_LEDGER_SCHEME = {}));
255
+ })(POLKADOT_LEDGER_SCHEME || (POLKADOT_LEDGER_SCHEME = {})); /// Qr Sign
256
+ // Parse Substrate
257
+ // Parse Evm
258
+ // Check lock
259
+ // Sign
260
+ /// Transfer
261
+ /// Stake
262
+ // Staking & Bonding
263
+ // Migrated
264
+ // Migrated
265
+ // UnBonding
266
+ // Claim
267
+ // Compound
268
+ /// Keyring state
269
+ // Change master password
270
+ // Migrate password
271
+ // Unlock
272
+ // Export mnemonic
273
+ // Reset wallet
274
+ /// Signing
275
+ // Mobile update
229
276
  export let NotificationType;
230
277
  (function (NotificationType) {
231
278
  NotificationType["INFO"] = "info";
232
279
  NotificationType["SUCCESS"] = "success";
233
280
  NotificationType["WARNING"] = "warning";
234
281
  NotificationType["ERROR"] = "error";
235
- })(NotificationType || (NotificationType = {}));
282
+ })(NotificationType || (NotificationType = {})); // Phishing detect
283
+ // Psp token
284
+ // Popular tokens
285
+ // Sufficient chains
286
+ /// WalletConnect
287
+ // Connect
288
+ // Not support
289
+ /// Manta
236
290
  export let MantaPayEnableMessage;
237
291
  (function (MantaPayEnableMessage) {
238
292
  MantaPayEnableMessage["WRONG_PASSWORD"] = "WRONG_PASSWORD";
239
293
  MantaPayEnableMessage["CHAIN_DISCONNECTED"] = "CHAIN_DISCONNECTED";
240
294
  MantaPayEnableMessage["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
241
295
  MantaPayEnableMessage["SUCCESS"] = "SUCCESS";
242
- })(MantaPayEnableMessage || (MantaPayEnableMessage = {}));
296
+ })(MantaPayEnableMessage || (MantaPayEnableMessage = {})); /// Metadata
297
+ /* Campaign */
243
298
  export let CampaignDataType;
244
299
  (function (CampaignDataType) {
245
300
  CampaignDataType["NOTIFICATION"] = "notification";
246
301
  CampaignDataType["BANNER"] = "banner";
247
302
  })(CampaignDataType || (CampaignDataType = {}));
303
+ /* Campaign */
304
+ /* Migrate Unified Account */
305
+ /* Core types */
306
+ // Use stringify to communicate, pure boolean value will error with case 'false' value
248
307
  export const MobileOS = ['iOS', 'Android'];
@@ -16,7 +16,16 @@ exports.RuntimeEnvironment = RuntimeEnvironment;
16
16
  RuntimeEnvironment["WebWorker"] = "Web Worker";
17
17
  RuntimeEnvironment["ServiceWorker"] = "Service Worker";
18
18
  RuntimeEnvironment["Unknown"] = "Unknown";
19
- })(RuntimeEnvironment || (exports.RuntimeEnvironment = RuntimeEnvironment = {}));
19
+ })(RuntimeEnvironment || (exports.RuntimeEnvironment = RuntimeEnvironment = {})); /// Request Auth
20
+ /// Manage Auth
21
+ // Get Auth
22
+ // Auth All site
23
+ // Manage site auth (all allowed/unAllowed)
24
+ // Manage single auth with single account
25
+ // Manage single site with multi account
26
+ // Manage site block
27
+ // Forget site auth
28
+ // Switch current network auth
20
29
  /// Staking subscribe
21
30
  let StakingType;
22
31
  exports.StakingType = StakingType;
@@ -123,8 +132,10 @@ exports.ExtrinsicType = ExtrinsicType;
123
132
  ExtrinsicType["CLAIM_BRIDGE"] = "claim.claim_bridge";
124
133
  ExtrinsicType["GOV_VOTE"] = "gov.vote";
125
134
  ExtrinsicType["GOV_UNVOTE"] = "gov.unvote";
126
- ExtrinsicType["GOV_UNLOCK_VOTE"] = "gov.unlock-vote";
135
+ ExtrinsicType["GOV_UNLOCK_VOTE"] = "gov.unlock_vote";
127
136
  ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
137
+ ExtrinsicType["ADD_SUBSTRATE_PROXY_ACCOUNT"] = "substrateProxyAccount.add";
138
+ ExtrinsicType["REMOVE_SUBSTRATE_PROXY_ACCOUNT"] = "substrateProxyAccount.remove";
128
139
  ExtrinsicType["UNKNOWN"] = "unknown";
129
140
  })(ExtrinsicType || (exports.ExtrinsicType = ExtrinsicType = {}));
130
141
  let ExtrinsicStatus;
@@ -138,7 +149,13 @@ exports.ExtrinsicStatus = ExtrinsicStatus;
138
149
  ExtrinsicStatus["CANCELLED"] = "cancelled";
139
150
  ExtrinsicStatus["TIMEOUT"] = "timeout";
140
151
  ExtrinsicStatus["UNKNOWN"] = "unknown";
141
- })(ExtrinsicStatus || (exports.ExtrinsicStatus = ExtrinsicStatus = {}));
152
+ })(ExtrinsicStatus || (exports.ExtrinsicStatus = ExtrinsicStatus = {})); // export type TransactionAdditionalInfo<T extends ExtrinsicType> = T extends ExtrinsicType.TRANSFER_XCM
153
+ // ? XCMTransactionAdditionalInfo
154
+ // : T extends ExtrinsicType.SEND_NFT
155
+ // ? NFTTransactionAdditionalInfo
156
+ // : T extends ExtrinsicType.MINT_VDOT
157
+ // ? Pick<SubmitBifrostLiquidStaking, 'rewardTokenSlug' | 'estimatedAmountReceived'>
158
+ // : undefined;
142
159
  let BalanceErrorType;
143
160
  exports.BalanceErrorType = BalanceErrorType;
144
161
  (function (BalanceErrorType) {
@@ -164,7 +181,11 @@ exports.AccountExternalErrorCode = AccountExternalErrorCode;
164
181
  AccountExternalErrorCode["INVALID_ADDRESS"] = "invalidToAccount";
165
182
  AccountExternalErrorCode["KEYRING_ERROR"] = "keyringError";
166
183
  AccountExternalErrorCode["UNKNOWN_ERROR"] = "unknownError";
167
- })(AccountExternalErrorCode || (exports.AccountExternalErrorCode = AccountExternalErrorCode = {}));
184
+ })(AccountExternalErrorCode || (exports.AccountExternalErrorCode = AccountExternalErrorCode = {})); // Attach QR-signer account
185
+ // Attach Ledger account
186
+ // Restore account with public and secret key
187
+ // Subscribe Address Book
188
+ // Inject account
168
189
  /// Sign Transaction
169
190
  /// Sign External Request
170
191
  // Status
@@ -175,7 +196,9 @@ exports.ExternalRequestPromiseStatus = ExternalRequestPromiseStatus;
175
196
  ExternalRequestPromiseStatus[ExternalRequestPromiseStatus["REJECTED"] = 1] = "REJECTED";
176
197
  ExternalRequestPromiseStatus[ExternalRequestPromiseStatus["FAILED"] = 2] = "FAILED";
177
198
  ExternalRequestPromiseStatus[ExternalRequestPromiseStatus["COMPLETED"] = 3] = "COMPLETED";
178
- })(ExternalRequestPromiseStatus || (exports.ExternalRequestPromiseStatus = ExternalRequestPromiseStatus = {}));
199
+ })(ExternalRequestPromiseStatus || (exports.ExternalRequestPromiseStatus = ExternalRequestPromiseStatus = {})); // Reject
200
+ // Resolve
201
+ ///
179
202
  let ThemeNames;
180
203
  exports.ThemeNames = ThemeNames;
181
204
  (function (ThemeNames) {
@@ -236,13 +259,37 @@ exports.CardanoProviderErrorType = CardanoProviderErrorType;
236
259
  CardanoProviderErrorType["SUBMIT_TRANSACTION_REFUSED"] = "SUBMIT_TRANSACTION_REFUSED";
237
260
  CardanoProviderErrorType["SUBMIT_TRANSACTION_FAILURE"] = "SUBMIT_TRANSACTION_FAILURE";
238
261
  CardanoProviderErrorType["SIGN_TRANSACTION_DECLINED"] = "SIGN_TRANSACTION_DECLINED";
239
- })(CardanoProviderErrorType || (exports.CardanoProviderErrorType = CardanoProviderErrorType = {}));
262
+ })(CardanoProviderErrorType || (exports.CardanoProviderErrorType = CardanoProviderErrorType = {})); // TODO: add account info + dataToSign
263
+ // Design to use only one confirmation
264
+ /// Evm transaction
265
+ /// Evm Contract Input
266
+ /// Ledger
240
267
  let POLKADOT_LEDGER_SCHEME;
241
268
  exports.POLKADOT_LEDGER_SCHEME = POLKADOT_LEDGER_SCHEME;
242
269
  (function (POLKADOT_LEDGER_SCHEME) {
243
270
  POLKADOT_LEDGER_SCHEME["ED25519"] = "ed25519";
244
271
  POLKADOT_LEDGER_SCHEME["ECDSA"] = "ecdsa";
245
- })(POLKADOT_LEDGER_SCHEME || (exports.POLKADOT_LEDGER_SCHEME = POLKADOT_LEDGER_SCHEME = {}));
272
+ })(POLKADOT_LEDGER_SCHEME || (exports.POLKADOT_LEDGER_SCHEME = POLKADOT_LEDGER_SCHEME = {})); /// Qr Sign
273
+ // Parse Substrate
274
+ // Parse Evm
275
+ // Check lock
276
+ // Sign
277
+ /// Transfer
278
+ /// Stake
279
+ // Staking & Bonding
280
+ // Migrated
281
+ // Migrated
282
+ // UnBonding
283
+ // Claim
284
+ // Compound
285
+ /// Keyring state
286
+ // Change master password
287
+ // Migrate password
288
+ // Unlock
289
+ // Export mnemonic
290
+ // Reset wallet
291
+ /// Signing
292
+ // Mobile update
246
293
  let NotificationType;
247
294
  exports.NotificationType = NotificationType;
248
295
  (function (NotificationType) {
@@ -250,7 +297,14 @@ exports.NotificationType = NotificationType;
250
297
  NotificationType["SUCCESS"] = "success";
251
298
  NotificationType["WARNING"] = "warning";
252
299
  NotificationType["ERROR"] = "error";
253
- })(NotificationType || (exports.NotificationType = NotificationType = {}));
300
+ })(NotificationType || (exports.NotificationType = NotificationType = {})); // Phishing detect
301
+ // Psp token
302
+ // Popular tokens
303
+ // Sufficient chains
304
+ /// WalletConnect
305
+ // Connect
306
+ // Not support
307
+ /// Manta
254
308
  let MantaPayEnableMessage;
255
309
  exports.MantaPayEnableMessage = MantaPayEnableMessage;
256
310
  (function (MantaPayEnableMessage) {
@@ -258,12 +312,17 @@ exports.MantaPayEnableMessage = MantaPayEnableMessage;
258
312
  MantaPayEnableMessage["CHAIN_DISCONNECTED"] = "CHAIN_DISCONNECTED";
259
313
  MantaPayEnableMessage["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
260
314
  MantaPayEnableMessage["SUCCESS"] = "SUCCESS";
261
- })(MantaPayEnableMessage || (exports.MantaPayEnableMessage = MantaPayEnableMessage = {}));
315
+ })(MantaPayEnableMessage || (exports.MantaPayEnableMessage = MantaPayEnableMessage = {})); /// Metadata
316
+ /* Campaign */
262
317
  let CampaignDataType;
263
318
  exports.CampaignDataType = CampaignDataType;
264
319
  (function (CampaignDataType) {
265
320
  CampaignDataType["NOTIFICATION"] = "notification";
266
321
  CampaignDataType["BANNER"] = "banner";
267
322
  })(CampaignDataType || (exports.CampaignDataType = CampaignDataType = {}));
323
+ /* Campaign */
324
+ /* Migrate Unified Account */
325
+ /* Core types */
326
+ // Use stringify to communicate, pure boolean value will error with case 'false' value
268
327
  const MobileOS = ['iOS', 'Android'];
269
328
  exports.MobileOS = MobileOS;
@@ -20,6 +20,9 @@ exports.APP_VER = APP_VER;
20
20
  const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
21
21
  const branchName = process.env.BRANCH_NAME || 'koni-dev';
22
22
  const targetFolder = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list' : 'preview';
23
+
24
+ // todo: check if can check exactly App Environment, Browser Type, OS Type
25
+
23
26
  async function fetchBlockedConfigObjects() {
24
27
  const targetFile = `${targetFolder}/envConfig.json`;
25
28
  return await (0, _utils.fetchStaticData)('blocked-actions', targetFile);
@@ -23,7 +23,7 @@ function getConditions(validateRecipientParams) {
23
23
  toAddress
24
24
  } = validateRecipientParams;
25
25
  const conditions = [];
26
- const isSendAction = [_types.ActionType.SEND_FUND, _types.ActionType.SEND_NFT].includes(actionType);
26
+ const isSendAction = [_types.ActionType.SEND_FUND, _types.ActionType.SEND_NFT, _types.ActionType.MANAGE_SUBSTRATE_PROXY_ACCOUNT].includes(actionType);
27
27
  conditions.push(_types.ValidationCondition.IS_NOT_NULL);
28
28
  conditions.push(_types.ValidationCondition.IS_ADDRESS);
29
29
  conditions.push(_types.ValidationCondition.IS_VALID_ADDRESS_FOR_ECOSYSTEM);
@@ -50,7 +50,6 @@ function _validateBalanceToSwapOnAssetHub(fromToken, feeToken, feeTokenChainInfo
50
50
  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?
51
51
  }
52
52
  }
53
-
54
53
  if (new _bignumber.default(swapAmount).gte(fromTokenBalance)) {
55
54
  const parsedMaxBalanceSwap = (0, _utils2.formatNumber)(fromTokenBalance, (0, _utils._getAssetDecimals)(fromToken));
56
55
  return new _TransactionError.TransactionError(_swap.SwapErrorType.SWAP_EXCEED_ALLOWANCE, `Amount too high. Lower your amount ${bnFromTokenBalance.gt(0) ? `below ${parsedMaxBalanceSwap} ${fromToken.symbol}` : ''} and try again`);
@@ -78,7 +77,6 @@ function _validateBalanceToSwap(fromToken, feeToken, feeTokenChainInfo, feeAmoun
78
77
  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?
79
78
  }
80
79
  }
81
-
82
80
  if (new _bignumber.default(swapAmount).gte(fromTokenBalance)) {
83
81
  const parsedMaxBalanceSwap = (0, _utils2.formatNumber)(fromTokenBalance, (0, _utils._getAssetDecimals)(fromToken));
84
82
  return new _TransactionError.TransactionError(_swap.SwapErrorType.SWAP_EXCEED_ALLOWANCE, `Amount too high. Lower your amount ${bnFromTokenBalance.gt(0) ? `below ${parsedMaxBalanceSwap} ${fromToken.symbol}` : ''} and try again`);
@@ -222,7 +220,6 @@ function _validateBalanceToSwapV2(request) {
222
220
  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?
223
221
  }
224
222
  }
225
-
226
223
  return undefined;
227
224
  }
228
225
  function _validateSwapRecipientV2(destChainInfo, recipient) {
@@ -326,7 +326,7 @@ function checkSupportForTransaction(validationResponse, transaction) {
326
326
  }
327
327
  }
328
328
  }
329
- async function estimateFeeForTransaction(validationResponse, transaction, chainInfo, evmApi, substrateApi, priceMap, feeInfo, nativeTokenInfo, nonNativeTokenPayFeeInfo, isTransferLocalTokenAndPayThatTokenAsFee) {
329
+ async function estimateFeeForTransaction(validationResponse, transaction, chainInfo, evmApi, substrateApi, priceMap, feeInfo, nativeTokenInfo, nonNativeTokenPayFeeInfo, isTransferLocalTokenAndPayThatTokenAsFee, signerSubstrateProxyAddress) {
330
330
  const estimateFee = {
331
331
  symbol: '',
332
332
  decimals: 0,
@@ -347,8 +347,14 @@ async function estimateFeeForTransaction(validationResponse, transaction, chainI
347
347
  if (transaction) {
348
348
  try {
349
349
  if ((0, _helpers.isSubstrateTransaction)(transaction)) {
350
- var _validationResponse$x;
351
- estimateFee.value = (_validationResponse$x = validationResponse.xcmFeeDryRun) !== null && _validationResponse$x !== void 0 ? _validationResponse$x : (await transaction.paymentInfo(validationResponse.address)).partialFee.toString();
350
+ if (signerSubstrateProxyAddress && !(0, _utils5.isSameAddress)(signerSubstrateProxyAddress, address)) {
351
+ await substrateApi.isReady;
352
+ const estimateExtrinsic = substrateApi.api.tx.proxy.proxy(address, null, transaction);
353
+ estimateFee.value = (await estimateExtrinsic.paymentInfo(signerSubstrateProxyAddress)).partialFee.toString();
354
+ } else {
355
+ var _validationResponse$x;
356
+ estimateFee.value = (_validationResponse$x = validationResponse.xcmFeeDryRun) !== null && _validationResponse$x !== void 0 ? _validationResponse$x : (await transaction.paymentInfo(validationResponse.address)).partialFee.toString();
357
+ }
352
358
  } else if ((0, _helpers.isTonTransaction)(transaction)) {
353
359
  estimateFee.value = transaction.estimateFee; // todo: might need to update logic estimate fee inside for future actions excluding normal transfer Ton and Jetton
354
360
  } else if ((0, _helpers.isCardanoTransaction)(transaction)) {
@@ -415,14 +421,13 @@ async function estimateFeeForTransaction(validationResponse, transaction, chainI
415
421
  }
416
422
  return estimateFee;
417
423
  }
418
- function checkSigningAccountForTransaction(validationResponse, chainInfoMap) {
424
+ function checkSigningAccountForTransaction(validationResponse, chainInfoMap, signer) {
419
425
  const {
420
- address,
421
426
  chain,
422
427
  chainType,
423
428
  extrinsicType
424
429
  } = validationResponse;
425
- const pair = _uiKeyring.keyring.getPair(address);
430
+ const pair = _uiKeyring.keyring.getPair(signer);
426
431
  if (!pair) {
427
432
  validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('bg.TRANSACTION.core.validation.transfer.unableToFindAccount')));
428
433
  } else {
@@ -442,7 +447,7 @@ function checkSigningAccountForTransaction(validationResponse, chainInfoMap) {
442
447
  }
443
448
  }
444
449
  }
445
- function checkBalanceWithTransactionFee(validationResponse, transactionInput, nativeTokenInfo, nativeTokenAvailable) {
450
+ function checkBalanceWithTransactionFee(validationResponse, transactionInput, nativeTokenInfo, nativeTokenAvailable, substrateProxyAccountNativeTokenAvailable) {
446
451
  if (!validationResponse.estimateFee) {
447
452
  // todo: estimateFee should be must-have, need to refactor interface
448
453
  return;
@@ -451,6 +456,7 @@ function checkBalanceWithTransactionFee(validationResponse, transactionInput, na
451
456
  edAsWarning,
452
457
  extrinsicType,
453
458
  isTransferAll,
459
+ signerSubstrateProxyAddress,
454
460
  skipFeeValidation,
455
461
  tokenPayFeeSlug
456
462
  } = transactionInput;
@@ -461,12 +467,29 @@ function checkBalanceWithTransactionFee(validationResponse, transactionInput, na
461
467
  const bnFee = new _bignumber.default(validationResponse.estimateFee.value);
462
468
  const bnNativeTokenAvailable = new _bignumber.default(nativeTokenAvailable.value);
463
469
  const bnNativeTokenTransferAmount = new _bignumber.default(validationResponse.transferNativeAmount || '0');
464
- if (!bnNativeTokenAvailable.gt(0)) {
470
+ if (!bnNativeTokenAvailable.gt(0) && !substrateProxyAccountNativeTokenAvailable) {
465
471
  validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE));
466
472
  }
467
473
  const isChainNotSupportTransferAll = [..._constants2._TRANSFER_CHAIN_GROUP.acala, ..._constants2._TRANSFER_CHAIN_GROUP.genshiro, ..._constants2._TRANSFER_CHAIN_GROUP.bitcountry, ..._constants2._TRANSFER_CHAIN_GROUP.statemine].includes(nativeTokenInfo.originChain);
468
- if (bnNativeTokenTransferAmount.plus(bnFee).gt(bnNativeTokenAvailable) && (!isTransferAll || isChainNotSupportTransferAll)) {
469
- validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE)); // todo: should be generalized and reused in all features
474
+ if (!substrateProxyAccountNativeTokenAvailable) {
475
+ if (bnNativeTokenTransferAmount.plus(bnFee).gt(bnNativeTokenAvailable) && (!isTransferAll || isChainNotSupportTransferAll)) {
476
+ validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE)); // todo: should be generalized and reused in all features
477
+ }
478
+ } else {
479
+ const bnSubstrateProxyAccountNativeTokenAvailable = new _bignumber.default(substrateProxyAccountNativeTokenAvailable.value);
480
+ if (bnNativeTokenTransferAmount.gt(bnNativeTokenAvailable) && (!isTransferAll || isChainNotSupportTransferAll) || bnFee.gt(bnSubstrateProxyAccountNativeTokenAvailable)) {
481
+ if (signerSubstrateProxyAddress) {
482
+ const account = (0, _utils5.getAccountJsonByAddress)(signerSubstrateProxyAddress);
483
+ const accountName = account === null || account === void 0 ? void 0 : account.name;
484
+ validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE, (0, _i18next.t)('bg.TRANSACTION.core.validation.transfer.proxyAccountNotEnoughBalance', {
485
+ replace: {
486
+ accountName: accountName || signerSubstrateProxyAddress
487
+ }
488
+ })));
489
+ } else {
490
+ validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE));
491
+ }
492
+ }
470
493
  }
471
494
 
472
495
  // todo: only system.pallet has metadata, we should add for other pallets and mechanisms as well
@@ -29,7 +29,6 @@ function _getSystemPalletTransferable(accountInfo, existentialDeposit, extrinsic
29
29
  function _canAccountBeReaped(accountInfo) {
30
30
  return accountInfo.consumers === 0; // might need to check refCount
31
31
  }
32
-
33
32
  function _isAccountActive(accountInfo) {
34
33
  return !(accountInfo.consumers === 0 && accountInfo.providers === 0 && accountInfo.sufficients === 0);
35
34
  }
@@ -57,7 +56,6 @@ function _getAppliedExistentialDeposit(accountInfo, existentialDeposit, strictMo
57
56
  }
58
57
  return _canAccountBeReaped(accountInfo) ? BigInt(0) : bnExistentialDeposit; // account for ED here will go better with max transfer logic
59
58
  }
60
-
61
59
  function _getSystemPalletTransferableV2(accountInfo, existentialDeposit, strictMode) {
62
60
  const bnLocked = BigInt(accountInfo.data.frozen) - BigInt(accountInfo.data.reserved); // locked can go below 0 but this shouldn't matter
63
61
  const bnAppliedExistentialDeposit = _getAppliedExistentialDeposit(accountInfo, existentialDeposit, strictMode);
package/cjs/core/types.js CHANGED
@@ -25,4 +25,5 @@ exports.ActionType = ActionType;
25
25
  ActionType["SEND_FUND"] = "SEND_FUND";
26
26
  ActionType["SEND_NFT"] = "SEND_NFT";
27
27
  ActionType["SWAP"] = "SWAP";
28
+ ActionType["MANAGE_SUBSTRATE_PROXY_ACCOUNT"] = "MANAGE_SUBSTRATE_PROXY_ACCOUNT";
28
29
  })(ActionType || (exports.ActionType = ActionType = {}));
@@ -403,7 +403,6 @@ class WasmNftApi extends _nft.BaseNftApi {
403
403
  }
404
404
  }
405
405
  }));
406
-
407
406
  nftOwnerMap[address] = nftIds;
408
407
  } catch (e) {
409
408
  console.error(`${this.chain}`, e);
@@ -129,7 +129,6 @@ async function subscribeAstarNominatorMetadata(chainInfo, address, substrateApi,
129
129
  }
130
130
  }
131
131
  }
132
-
133
132
  const unlockingChunks = ledger.unbondingInfo.unlockingChunks;
134
133
  if (unlockingChunks.length > 0) {
135
134
  for (const unlockingChunk of unlockingChunks) {
@@ -215,7 +214,6 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
215
214
  }
216
215
  }
217
216
  }
218
-
219
217
  const unlockingChunks = ledger.unbondingInfo.unlockingChunks;
220
218
  if (unlockingChunks.length > 0) {
221
219
  for (const unlockingChunk of unlockingChunks) {
@@ -150,7 +150,6 @@ async function getParaChainStakingMetadata(chain, substrateApi) {
150
150
  if (unvestedAllocation) {
151
151
  totalIssuance.add(unvestedAllocation); // for Turing network, read more at https://hackmd.io/@sbAqOuXkRvyiZPOB3Ryn6Q/Sypr3ZJh5
152
152
  }
153
-
154
153
  const inflationConfig = _inflation.toHuman();
155
154
  const inflation = (0, _utils.getParaCurrentInflation)((0, _utils4.parseRawNumber)(totalStake.toString()), inflationConfig);
156
155
  const unstakingPeriod = parseInt(unstakingDelay) * _constants._STAKING_ERA_LENGTH_MAP[chain];
@@ -203,7 +202,6 @@ async function subscribeParaChainNominatorMetadata(chainInfo, address, substrate
203
202
  }
204
203
  }
205
204
  }
206
-
207
205
  const bnStake = new _util.BN(delegation.amount);
208
206
  const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
209
207
  const bnActiveStake = bnStake.sub(bnUnstakeBalance);
@@ -297,7 +295,6 @@ async function getParaChainNominatorMetadata(chainInfo, address, substrateApi) {
297
295
  }
298
296
  }
299
297
  }
300
-
301
298
  const bnStake = new _util.BN(delegation.amount);
302
299
  const bnUnstakeBalance = unstakingMap[delegation.owner] ? new _util.BN(unstakingMap[delegation.owner].claimable) : _util.BN_ZERO;
303
300
  const bnActiveStake = bnStake.sub(bnUnstakeBalance);
@@ -246,7 +246,6 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
246
246
  });
247
247
  }));
248
248
  }
249
-
250
249
  let stakingStatus = _types.EarningStatus.NOT_EARNING;
251
250
  const bnActiveStake = new _util.BN(activeStake);
252
251
  let waitingNominationCount = 0;
@@ -298,13 +297,13 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
298
297
  * Deprecated
299
298
  * */
300
299
  async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi) {
301
- var _chainApi$api$query10, _chainApi$api$query11, _chainApi$api$query12, _chainApi$api$query13, _chainApi$api$query14, _chainApi$api$query15, _chainApi$api$query16, _chainApi$api$query17, _chainApi$api$query18, _chainApi$api$query19, _chainApi$api$query20, _chainApi$api$query21, _chainApi$api$query22, _chainApi$api$query23;
300
+ var _chainApi$api$query0, _chainApi$api$query0$, _chainApi$api$query1, _chainApi$api$query1$, _chainApi$api$query10, _chainApi$api$query11, _chainApi$api$query12, _chainApi$api$query13, _chainApi$api$query14, _chainApi$api$query15, _chainApi$api$query16, _chainApi$api$query17, _chainApi$api$query18, _chainApi$api$query19;
302
301
  if ((0, _utilCrypto.isEthereumAddress)(address)) {
303
302
  return;
304
303
  }
305
304
  const chain = chainInfo.slug;
306
305
  const chainApi = await substrateApi.isReady;
307
- const [_ledger, _nominations, _currentEra, _bonded, _minimumActiveStake, _minNominatorBond] = await Promise.all([(_chainApi$api$query10 = chainApi.api.query) === null || _chainApi$api$query10 === void 0 ? void 0 : (_chainApi$api$query11 = _chainApi$api$query10.staking) === null || _chainApi$api$query11 === void 0 ? void 0 : _chainApi$api$query11.ledger(address), (_chainApi$api$query12 = chainApi.api.query) === null || _chainApi$api$query12 === void 0 ? void 0 : (_chainApi$api$query13 = _chainApi$api$query12.staking) === null || _chainApi$api$query13 === void 0 ? void 0 : _chainApi$api$query13.nominators(address), (_chainApi$api$query14 = chainApi.api.query) === null || _chainApi$api$query14 === void 0 ? void 0 : (_chainApi$api$query15 = _chainApi$api$query14.staking) === null || _chainApi$api$query15 === void 0 ? void 0 : _chainApi$api$query15.currentEra(), (_chainApi$api$query16 = chainApi.api.query) === null || _chainApi$api$query16 === void 0 ? void 0 : (_chainApi$api$query17 = _chainApi$api$query16.staking) === null || _chainApi$api$query17 === void 0 ? void 0 : _chainApi$api$query17.bonded(address), ((_chainApi$api$query18 = chainApi.api.query) === null || _chainApi$api$query18 === void 0 ? void 0 : (_chainApi$api$query19 = _chainApi$api$query18.staking) === null || _chainApi$api$query19 === void 0 ? void 0 : _chainApi$api$query19.minimumActiveStake) && ((_chainApi$api$query20 = chainApi.api.query) === null || _chainApi$api$query20 === void 0 ? void 0 : (_chainApi$api$query21 = _chainApi$api$query20.staking) === null || _chainApi$api$query21 === void 0 ? void 0 : _chainApi$api$query21.minimumActiveStake()), (_chainApi$api$query22 = chainApi.api.query) === null || _chainApi$api$query22 === void 0 ? void 0 : (_chainApi$api$query23 = _chainApi$api$query22.staking) === null || _chainApi$api$query23 === void 0 ? void 0 : _chainApi$api$query23.minNominatorBond()]);
306
+ const [_ledger, _nominations, _currentEra, _bonded, _minimumActiveStake, _minNominatorBond] = await Promise.all([(_chainApi$api$query0 = chainApi.api.query) === null || _chainApi$api$query0 === void 0 ? void 0 : (_chainApi$api$query0$ = _chainApi$api$query0.staking) === null || _chainApi$api$query0$ === void 0 ? void 0 : _chainApi$api$query0$.ledger(address), (_chainApi$api$query1 = chainApi.api.query) === null || _chainApi$api$query1 === void 0 ? void 0 : (_chainApi$api$query1$ = _chainApi$api$query1.staking) === null || _chainApi$api$query1$ === void 0 ? void 0 : _chainApi$api$query1$.nominators(address), (_chainApi$api$query10 = chainApi.api.query) === null || _chainApi$api$query10 === void 0 ? void 0 : (_chainApi$api$query11 = _chainApi$api$query10.staking) === null || _chainApi$api$query11 === void 0 ? void 0 : _chainApi$api$query11.currentEra(), (_chainApi$api$query12 = chainApi.api.query) === null || _chainApi$api$query12 === void 0 ? void 0 : (_chainApi$api$query13 = _chainApi$api$query12.staking) === null || _chainApi$api$query13 === void 0 ? void 0 : _chainApi$api$query13.bonded(address), ((_chainApi$api$query14 = chainApi.api.query) === null || _chainApi$api$query14 === void 0 ? void 0 : (_chainApi$api$query15 = _chainApi$api$query14.staking) === null || _chainApi$api$query15 === void 0 ? void 0 : _chainApi$api$query15.minimumActiveStake) && ((_chainApi$api$query16 = chainApi.api.query) === null || _chainApi$api$query16 === void 0 ? void 0 : (_chainApi$api$query17 = _chainApi$api$query16.staking) === null || _chainApi$api$query17 === void 0 ? void 0 : _chainApi$api$query17.minimumActiveStake()), (_chainApi$api$query18 = chainApi.api.query) === null || _chainApi$api$query18 === void 0 ? void 0 : (_chainApi$api$query19 = _chainApi$api$query18.staking) === null || _chainApi$api$query19 === void 0 ? void 0 : _chainApi$api$query19.minNominatorBond()]);
308
307
  const minActiveStake = (_minimumActiveStake === null || _minimumActiveStake === void 0 ? void 0 : _minimumActiveStake.toString()) || '0';
309
308
  const minNominatorBond = _minNominatorBond.toString();
310
309
  const bnMinActiveStake = new _util.BN(minActiveStake);
@@ -359,7 +358,6 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
359
358
  });
360
359
  }));
361
360
  }
362
-
363
361
  let stakingStatus = _types.EarningStatus.NOT_EARNING;
364
362
  const bnActiveStake = new _util.BN(activeStake);
365
363
  let waitingNominationCount = 0;
@@ -112,7 +112,6 @@ function calculateChainStakedReturn(inflation, totalEraStake, totalIssuance, net
112
112
  if (_constants2._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
113
113
  stakedReturn *= 0.9; // 10% goes to treasury
114
114
  }
115
-
116
115
  return stakedReturn;
117
116
  }
118
117
  async function calculateChainStakedReturnV2(chainInfo, totalIssuance, erasPerDay, lastTotalStaked, validatorEraReward, inflation, isCompound) {
@@ -179,11 +178,9 @@ function calculateValidatorStakedReturn(chainStakedReturn, totalValidatorStake,
179
178
  const stakedReturn = (adjusted > Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : adjusted) / 100;
180
179
  return stakedReturn * (100 - commission) / 100; // Deduct commission
181
180
  }
182
-
183
181
  function getCommission(commissionString) {
184
182
  return parseFloat(commissionString.split('%')[0]); // Example: 12%
185
183
  }
186
-
187
184
  function getParaCurrentInflation(totalStaked, inflationConfig) {
188
185
  // read more at https://hackmd.io/@sbAqOuXkRvyiZPOB3Ryn6Q/Sypr3ZJh5
189
186
  const expectMin = (0, _utils2.parseRawNumber)(inflationConfig.expect.min);
@@ -307,7 +304,6 @@ function getYieldAvailableActionsByPosition(yieldPosition, yieldPoolInfo, unclai
307
304
  result.push(YieldAction.START_EARNING);
308
305
  result.push(YieldAction.WITHDRAW_EARNING); // TODO
309
306
  }
310
-
311
307
  return result;
312
308
  }
313
309
  let StakingAction;
@@ -19,7 +19,6 @@ class KoniCron {
19
19
  this.state = state;
20
20
  // this.init();
21
21
  }
22
-
23
22
  cronMap = {};
24
23
  subjectMap = {};
25
24
  getCron = name => {