@subwallet/extension-base 1.2.31-0 → 1.2.33-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 (418) hide show
  1. package/background/KoniTypes.d.ts +78 -227
  2. package/background/KoniTypes.js +3 -40
  3. package/background/errors/SWError.d.ts +4 -7
  4. package/background/errors/SWError.js +4 -0
  5. package/background/errors/TransactionError.d.ts +2 -2
  6. package/background/errors/TransactionError.js +2 -4
  7. package/background/handlers/State.d.ts +0 -12
  8. package/background/types.d.ts +9 -134
  9. package/background/warnings/TransactionWarning.d.ts +1 -1
  10. package/background/warnings/TransactionWarning.js +5 -1
  11. package/cjs/background/KoniTypes.js +4 -44
  12. package/cjs/background/errors/SWError.js +4 -0
  13. package/cjs/background/errors/TransactionError.js +13 -15
  14. package/cjs/background/warnings/TransactionWarning.js +6 -2
  15. package/cjs/constants/environment.js +13 -0
  16. package/cjs/constants/index.js +40 -13
  17. package/cjs/constants/signing.js +23 -0
  18. package/cjs/constants/storage.js +4 -2
  19. package/cjs/core/consts.js +20 -0
  20. package/cjs/core/logic-validation/recipientAddress.js +106 -0
  21. package/cjs/core/logic-validation/request.js +11 -19
  22. package/cjs/core/logic-validation/swap.js +5 -5
  23. package/cjs/core/logic-validation/transfer.js +83 -42
  24. package/cjs/core/types.js +26 -0
  25. package/cjs/core/utils.js +113 -0
  26. package/cjs/koni/api/dotsama/crowdloan.js +1 -1
  27. package/cjs/koni/api/nft/index.js +14 -5
  28. package/cjs/koni/api/staking/bonding/paraChain.js +8 -8
  29. package/cjs/koni/api/staking/bonding/relayChain.js +9 -9
  30. package/cjs/koni/api/staking/index.js +4 -1
  31. package/cjs/koni/background/cron.js +7 -7
  32. package/cjs/koni/background/handlers/Extension.js +510 -1446
  33. package/cjs/koni/background/handlers/State.js +61 -238
  34. package/cjs/koni/background/handlers/Tabs.js +143 -107
  35. package/cjs/koni/background/subscription.js +5 -5
  36. package/cjs/packageInfo.js +1 -1
  37. package/cjs/page/Accounts.js +2 -5
  38. package/cjs/page/SubWalleEvmProvider.js +1 -1
  39. package/cjs/page/index.js +2 -1
  40. package/cjs/services/balance-service/BalanceMapImpl.js +48 -20
  41. package/cjs/services/balance-service/helpers/subscribe/index.js +27 -15
  42. package/cjs/services/balance-service/helpers/subscribe/ton/consts.js +40 -0
  43. package/cjs/services/balance-service/helpers/subscribe/ton/ton.js +120 -0
  44. package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +181 -0
  45. package/cjs/services/balance-service/index.js +25 -13
  46. package/cjs/services/balance-service/transfer/token.js +41 -24
  47. package/cjs/services/balance-service/transfer/ton-transfer.js +136 -0
  48. package/cjs/services/buy-service/index.js +5 -1
  49. package/cjs/services/chain-service/constants.js +1 -1
  50. package/cjs/services/chain-service/handler/SubstrateApi.js +1 -0
  51. package/cjs/services/chain-service/handler/TonApi.js +213 -0
  52. package/cjs/services/chain-service/handler/TonChainHandler.js +81 -0
  53. package/cjs/services/chain-service/index.js +32 -8
  54. package/cjs/services/chain-service/utils/index.js +78 -22
  55. package/cjs/services/earning-service/constants/chains.js +3 -1
  56. package/cjs/services/earning-service/handlers/base.js +2 -1
  57. package/cjs/services/earning-service/handlers/lending/base.js +8 -9
  58. package/cjs/services/earning-service/handlers/lending/interlay.js +1 -1
  59. package/cjs/services/earning-service/handlers/liquid-staking/base.js +9 -10
  60. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +1 -1
  61. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +1 -1
  62. package/cjs/services/earning-service/handlers/native-staking/astar.js +2 -2
  63. package/cjs/services/earning-service/handlers/native-staking/base-para.js +13 -13
  64. package/cjs/services/earning-service/handlers/native-staking/base.js +2 -2
  65. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +2 -2
  66. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +15 -15
  67. package/cjs/services/earning-service/handlers/nomination-pool/index.js +14 -14
  68. package/cjs/services/earning-service/handlers/special.js +10 -10
  69. package/cjs/services/earning-service/service.js +26 -17
  70. package/cjs/services/history-service/helpers/subscan-extrinsic-parser-helper.js +1 -1
  71. package/cjs/services/history-service/index.js +29 -11
  72. package/cjs/services/history-service/subscan-history.js +9 -21
  73. package/cjs/services/keyring-service/context/account-context.js +259 -0
  74. package/cjs/services/keyring-service/context/handlers/Base.js +20 -0
  75. package/cjs/services/keyring-service/context/handlers/Derive.js +377 -0
  76. package/cjs/services/keyring-service/context/handlers/Inject.js +75 -0
  77. package/cjs/services/keyring-service/context/handlers/Json.js +348 -0
  78. package/cjs/services/keyring-service/context/handlers/Ledger.js +165 -0
  79. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +218 -0
  80. package/cjs/services/keyring-service/context/handlers/Modify.js +258 -0
  81. package/cjs/services/keyring-service/context/handlers/Secret.js +310 -0
  82. package/cjs/services/keyring-service/context/handlers/index.js +82 -0
  83. package/cjs/services/keyring-service/context/state.js +649 -0
  84. package/cjs/services/keyring-service/context/stores/AccountProxy.js +32 -0
  85. package/cjs/services/keyring-service/context/stores/Base.js +37 -0
  86. package/cjs/services/keyring-service/context/stores/CurrentAccount.js +28 -0
  87. package/cjs/services/keyring-service/context/stores/ModifyPair.js +19 -0
  88. package/cjs/services/keyring-service/context/stores/index.js +38 -0
  89. package/cjs/services/keyring-service/index.js +20 -164
  90. package/cjs/services/migration-service/scripts/index.js +6 -4
  91. package/cjs/services/migration-service/scripts/{MigrateLedgerAccountV2.js → keyring/MigrateLedgerAccountV2.js} +1 -1
  92. package/cjs/services/migration-service/scripts/keyring/MigratePairData.js +28 -0
  93. package/cjs/services/migration-service/scripts/{MigrateRemoveGenesisHash.js → keyring/MigrateRemoveGenesisHash.js} +1 -1
  94. package/cjs/services/request-service/constants.js +5 -3
  95. package/cjs/services/request-service/handler/AuthRequestHandler.js +104 -57
  96. package/cjs/services/request-service/handler/EvmRequestHandler.js +3 -4
  97. package/cjs/services/request-service/handler/SubstrateRequestHandler.js +5 -11
  98. package/cjs/services/request-service/handler/TonRequestHandler.js +175 -0
  99. package/cjs/services/request-service/index.js +24 -5
  100. package/cjs/services/swap-service/handler/asset-hub/handler.js +6 -5
  101. package/cjs/services/swap-service/handler/base-handler.js +8 -8
  102. package/cjs/services/swap-service/handler/chainflip-handler.js +5 -4
  103. package/cjs/services/swap-service/handler/hydradx-handler.js +4 -3
  104. package/cjs/services/swap-service/index.js +4 -4
  105. package/cjs/services/transaction-service/helpers/index.js +6 -1
  106. package/cjs/services/transaction-service/index.js +184 -84
  107. package/cjs/services/wallet-connect-service/handler/PolkadotRequestHandler.js +2 -10
  108. package/cjs/stores/AccountProxyStore.js +18 -0
  109. package/cjs/stores/ModifyPairStore.js +18 -0
  110. package/cjs/stores/index.js +23 -2
  111. package/cjs/types/account/action/add/index.js +38 -0
  112. package/cjs/types/account/action/add/json.js +1 -0
  113. package/cjs/types/account/action/add/mnemonic.js +1 -0
  114. package/cjs/types/account/action/add/secret.js +1 -0
  115. package/cjs/types/account/action/derive.js +1 -0
  116. package/cjs/types/account/action/edit.js +1 -0
  117. package/cjs/types/account/action/export.js +1 -0
  118. package/cjs/types/account/action/index.js +71 -0
  119. package/cjs/types/account/action/subscribe.js +16 -0
  120. package/cjs/types/account/action/validate.js +1 -0
  121. package/cjs/types/account/error/common.js +40 -0
  122. package/cjs/types/account/error/derive.js +55 -0
  123. package/cjs/types/account/error/index.js +27 -0
  124. package/cjs/types/account/index.js +38 -0
  125. package/cjs/types/account/info/current.js +1 -0
  126. package/cjs/types/account/info/index.js +38 -0
  127. package/cjs/types/account/info/keyring.js +90 -0
  128. package/cjs/types/account/info/proxy.js +49 -0
  129. package/cjs/types/error.js +1 -0
  130. package/cjs/types/index.js +44 -0
  131. package/cjs/types/transaction/data.js +1 -0
  132. package/cjs/types/transaction/error.js +53 -0
  133. package/cjs/types/transaction/index.js +49 -0
  134. package/cjs/types/transaction/request.js +1 -0
  135. package/cjs/types/transaction/warning.js +14 -0
  136. package/cjs/types/yield/actions/join/validate.js +1 -16
  137. package/cjs/utils/account/analyze.js +166 -0
  138. package/cjs/utils/account/common.js +121 -0
  139. package/cjs/utils/account/derive/index.js +27 -0
  140. package/cjs/utils/account/derive/info/index.js +27 -0
  141. package/cjs/utils/account/derive/info/solo.js +246 -0
  142. package/cjs/utils/account/derive/info/unified.js +112 -0
  143. package/cjs/utils/account/derive/validate.js +177 -0
  144. package/cjs/utils/account/index.js +49 -0
  145. package/cjs/utils/account/transform.js +566 -0
  146. package/cjs/utils/auth.js +46 -0
  147. package/cjs/utils/getId.js +8 -1
  148. package/cjs/utils/index.js +48 -62
  149. package/constants/environment.d.ts +1 -0
  150. package/constants/environment.js +6 -0
  151. package/constants/index.d.ts +5 -1
  152. package/constants/index.js +5 -2
  153. package/constants/signing.d.ts +4 -0
  154. package/constants/signing.js +15 -0
  155. package/constants/storage.d.ts +1 -0
  156. package/constants/storage.js +2 -1
  157. package/core/consts.d.ts +1 -0
  158. package/core/consts.js +13 -0
  159. package/core/logic-validation/recipientAddress.d.ts +2 -0
  160. package/core/logic-validation/recipientAddress.js +100 -0
  161. package/core/logic-validation/request.js +10 -18
  162. package/core/logic-validation/swap.js +1 -1
  163. package/core/logic-validation/transfer.d.ts +3 -2
  164. package/core/logic-validation/transfer.js +50 -10
  165. package/core/types.d.ts +26 -0
  166. package/core/types.js +19 -0
  167. package/core/utils.d.ts +10 -0
  168. package/core/utils.js +105 -0
  169. package/koni/api/dotsama/crowdloan.js +1 -1
  170. package/koni/api/nft/index.js +14 -5
  171. package/koni/api/staking/bonding/paraChain.js +2 -2
  172. package/koni/api/staking/bonding/relayChain.js +2 -2
  173. package/koni/api/staking/index.js +4 -1
  174. package/koni/background/cron.js +7 -7
  175. package/koni/background/handlers/Extension.d.ts +26 -35
  176. package/koni/background/handlers/Extension.js +337 -1242
  177. package/koni/background/handlers/State.d.ts +12 -19
  178. package/koni/background/handlers/State.js +57 -231
  179. package/koni/background/handlers/Tabs.d.ts +2 -3
  180. package/koni/background/handlers/Tabs.js +105 -61
  181. package/koni/background/subscription.js +5 -5
  182. package/package.json +352 -53
  183. package/packageInfo.js +1 -1
  184. package/page/Accounts.js +2 -5
  185. package/page/SubWalleEvmProvider.js +1 -1
  186. package/page/index.js +2 -1
  187. package/services/balance-service/BalanceMapImpl.d.ts +6 -4
  188. package/services/balance-service/BalanceMapImpl.js +44 -18
  189. package/services/balance-service/helpers/subscribe/index.d.ts +3 -4
  190. package/services/balance-service/helpers/subscribe/index.js +29 -17
  191. package/services/balance-service/helpers/subscribe/ton/consts.d.ts +18 -0
  192. package/services/balance-service/helpers/subscribe/ton/consts.js +28 -0
  193. package/services/balance-service/helpers/subscribe/ton/ton.d.ts +3 -0
  194. package/services/balance-service/helpers/subscribe/ton/ton.js +111 -0
  195. package/services/balance-service/helpers/subscribe/ton/types.d.ts +26 -0
  196. package/services/balance-service/helpers/subscribe/ton/utils.d.ts +32 -0
  197. package/services/balance-service/helpers/subscribe/ton/utils.js +159 -0
  198. package/services/balance-service/index.js +25 -13
  199. package/services/balance-service/transfer/token.d.ts +2 -2
  200. package/services/balance-service/transfer/token.js +18 -1
  201. package/services/balance-service/transfer/ton-transfer.d.ts +25 -0
  202. package/services/balance-service/transfer/ton-transfer.js +127 -0
  203. package/services/buy-service/index.js +5 -1
  204. package/services/buy-service/types.d.ts +2 -2
  205. package/services/chain-service/constants.js +1 -1
  206. package/services/chain-service/handler/SubstrateApi.js +1 -0
  207. package/services/chain-service/handler/TonApi.d.ts +52 -0
  208. package/services/chain-service/handler/TonApi.js +204 -0
  209. package/services/chain-service/handler/TonChainHandler.d.ts +17 -0
  210. package/services/chain-service/handler/TonChainHandler.js +73 -0
  211. package/services/chain-service/index.d.ts +5 -1
  212. package/services/chain-service/index.js +32 -8
  213. package/services/chain-service/types.d.ts +24 -0
  214. package/services/chain-service/utils/index.d.ts +10 -2
  215. package/services/chain-service/utils/index.js +59 -18
  216. package/services/earning-service/constants/chains.d.ts +1 -0
  217. package/services/earning-service/constants/chains.js +1 -0
  218. package/services/earning-service/handlers/base.js +3 -2
  219. package/services/earning-service/handlers/lending/base.js +1 -2
  220. package/services/earning-service/handlers/lending/interlay.js +2 -2
  221. package/services/earning-service/handlers/liquid-staking/base.js +1 -2
  222. package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
  223. package/services/earning-service/handlers/native-staking/amplitude.js +2 -2
  224. package/services/earning-service/handlers/native-staking/astar.js +2 -2
  225. package/services/earning-service/handlers/native-staking/base-para.js +2 -2
  226. package/services/earning-service/handlers/native-staking/base.js +2 -2
  227. package/services/earning-service/handlers/native-staking/para-chain.js +2 -2
  228. package/services/earning-service/handlers/native-staking/relay-chain.js +2 -2
  229. package/services/earning-service/handlers/nomination-pool/index.js +2 -2
  230. package/services/earning-service/handlers/special.js +2 -2
  231. package/services/earning-service/service.js +18 -9
  232. package/services/event-service/types.d.ts +3 -1
  233. package/services/history-service/helpers/subscan-extrinsic-parser-helper.js +1 -1
  234. package/services/history-service/index.d.ts +4 -1
  235. package/services/history-service/index.js +29 -11
  236. package/services/history-service/subscan-history.js +8 -20
  237. package/services/keyring-service/context/account-context.d.ts +87 -0
  238. package/services/keyring-service/context/account-context.js +250 -0
  239. package/services/keyring-service/context/handlers/Base.d.ts +11 -0
  240. package/services/keyring-service/context/handlers/Base.js +13 -0
  241. package/services/keyring-service/context/handlers/Derive.d.ts +29 -0
  242. package/services/keyring-service/context/handlers/Derive.js +365 -0
  243. package/services/keyring-service/context/handlers/Inject.d.ts +11 -0
  244. package/services/keyring-service/context/handlers/Inject.js +69 -0
  245. package/services/keyring-service/context/handlers/Json.d.ts +18 -0
  246. package/services/keyring-service/context/handlers/Json.js +328 -0
  247. package/services/keyring-service/context/handlers/Ledger.d.ts +11 -0
  248. package/services/keyring-service/context/handlers/Ledger.js +158 -0
  249. package/services/keyring-service/context/handlers/Mnemonic.d.ts +15 -0
  250. package/services/keyring-service/context/handlers/Mnemonic.js +206 -0
  251. package/services/keyring-service/context/handlers/Modify.d.ts +16 -0
  252. package/services/keyring-service/context/handlers/Modify.js +250 -0
  253. package/services/keyring-service/context/handlers/Secret.d.ts +16 -0
  254. package/services/keyring-service/context/handlers/Secret.js +299 -0
  255. package/services/keyring-service/context/handlers/index.d.ts +7 -0
  256. package/services/keyring-service/context/handlers/index.js +10 -0
  257. package/services/keyring-service/context/state.d.ts +92 -0
  258. package/services/keyring-service/context/state.js +629 -0
  259. package/services/keyring-service/context/stores/AccountProxy.d.ts +13 -0
  260. package/services/keyring-service/context/stores/AccountProxy.js +25 -0
  261. package/services/keyring-service/context/stores/Base.d.ts +22 -0
  262. package/services/keyring-service/context/stores/Base.js +30 -0
  263. package/services/keyring-service/context/stores/CurrentAccount.d.ts +15 -0
  264. package/services/keyring-service/context/stores/CurrentAccount.js +21 -0
  265. package/services/keyring-service/context/stores/ModifyPair.d.ts +10 -0
  266. package/services/keyring-service/context/stores/ModifyPair.js +12 -0
  267. package/services/keyring-service/context/stores/index.d.ts +3 -0
  268. package/services/keyring-service/context/stores/index.js +6 -0
  269. package/services/keyring-service/index.d.ts +10 -22
  270. package/services/keyring-service/index.js +20 -161
  271. package/services/migration-service/scripts/index.js +6 -4
  272. package/services/migration-service/scripts/{MigrateLedgerAccountV2.d.ts → keyring/MigrateLedgerAccountV2.d.ts} +1 -1
  273. package/services/migration-service/scripts/{MigrateLedgerAccountV2.js → keyring/MigrateLedgerAccountV2.js} +1 -1
  274. package/services/migration-service/scripts/keyring/MigratePairData.d.ts +4 -0
  275. package/services/migration-service/scripts/keyring/MigratePairData.js +20 -0
  276. package/services/migration-service/scripts/{MigrateRemoveGenesisHash.js → keyring/MigrateRemoveGenesisHash.js} +1 -1
  277. package/services/mkt-campaign-service/types.d.ts +4 -0
  278. package/services/request-service/constants.d.ts +1 -1
  279. package/services/request-service/constants.js +2 -1
  280. package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
  281. package/services/request-service/handler/AuthRequestHandler.js +93 -45
  282. package/services/request-service/handler/EvmRequestHandler.js +3 -4
  283. package/services/request-service/handler/SubstrateRequestHandler.d.ts +2 -2
  284. package/services/request-service/handler/SubstrateRequestHandler.js +5 -11
  285. package/services/request-service/handler/TonRequestHandler.d.ts +17 -0
  286. package/services/request-service/handler/TonRequestHandler.js +168 -0
  287. package/services/request-service/index.d.ts +8 -3
  288. package/services/request-service/index.js +23 -5
  289. package/services/request-service/types.d.ts +6 -3
  290. package/services/swap-service/handler/asset-hub/handler.d.ts +1 -1
  291. package/services/swap-service/handler/asset-hub/handler.js +2 -1
  292. package/services/swap-service/handler/base-handler.js +1 -1
  293. package/services/swap-service/handler/chainflip-handler.d.ts +1 -1
  294. package/services/swap-service/handler/chainflip-handler.js +4 -3
  295. package/services/swap-service/handler/hydradx-handler.d.ts +1 -1
  296. package/services/swap-service/handler/hydradx-handler.js +2 -1
  297. package/services/swap-service/index.js +1 -1
  298. package/services/transaction-service/helpers/index.d.ts +2 -0
  299. package/services/transaction-service/helpers/index.js +4 -0
  300. package/services/transaction-service/index.d.ts +1 -0
  301. package/services/transaction-service/index.js +114 -17
  302. package/services/transaction-service/types.d.ts +4 -2
  303. package/services/wallet-connect-service/handler/PolkadotRequestHandler.js +2 -10
  304. package/stores/AccountProxyStore.d.ts +5 -0
  305. package/stores/AccountProxyStore.js +10 -0
  306. package/stores/Authorize.d.ts +1 -1
  307. package/stores/CurrentAccountStore.d.ts +1 -1
  308. package/stores/ModifyPairStore.d.ts +5 -0
  309. package/stores/ModifyPairStore.js +10 -0
  310. package/stores/index.d.ts +4 -1
  311. package/stores/index.js +5 -2
  312. package/types/account/action/add/index.d.ts +3 -0
  313. package/types/account/action/add/index.js +6 -0
  314. package/types/account/action/add/json.d.ts +29 -0
  315. package/types/account/action/add/json.js +1 -0
  316. package/types/account/action/add/mnemonic.d.ts +77 -0
  317. package/types/account/action/add/mnemonic.js +1 -0
  318. package/types/account/action/add/secret.d.ts +55 -0
  319. package/types/account/action/add/secret.js +1 -0
  320. package/types/account/action/derive.d.ts +77 -0
  321. package/types/account/action/derive.js +1 -0
  322. package/types/account/action/edit.d.ts +31 -0
  323. package/types/account/action/edit.js +1 -0
  324. package/types/account/action/export.d.ts +15 -0
  325. package/types/account/action/export.js +1 -0
  326. package/types/account/action/index.d.ts +6 -0
  327. package/types/account/action/index.js +9 -0
  328. package/types/account/action/subscribe.d.ts +22 -0
  329. package/types/account/action/subscribe.js +10 -0
  330. package/types/account/action/validate.d.ts +17 -0
  331. package/types/account/action/validate.js +1 -0
  332. package/types/account/error/common.d.ts +10 -0
  333. package/types/account/error/common.js +33 -0
  334. package/types/account/error/derive.d.ts +13 -0
  335. package/types/account/error/derive.js +48 -0
  336. package/types/account/error/index.d.ts +2 -0
  337. package/types/account/error/index.js +5 -0
  338. package/types/account/index.d.ts +3 -0
  339. package/types/account/index.js +6 -0
  340. package/types/account/info/current.d.ts +10 -0
  341. package/types/account/info/current.js +1 -0
  342. package/types/account/info/index.d.ts +3 -0
  343. package/types/account/info/index.js +6 -0
  344. package/types/account/info/keyring.d.ts +161 -0
  345. package/types/account/info/keyring.js +88 -0
  346. package/types/account/info/proxy.d.ts +73 -0
  347. package/types/account/info/proxy.js +46 -0
  348. package/types/balance/index.d.ts +4 -1
  349. package/types/buy.d.ts +3 -1
  350. package/types/error.d.ts +8 -0
  351. package/types/error.js +1 -0
  352. package/types/index.d.ts +4 -0
  353. package/types/index.js +5 -1
  354. package/types/transaction/data.d.ts +17 -0
  355. package/types/transaction/data.js +1 -0
  356. package/types/transaction/error.d.ts +39 -0
  357. package/types/transaction/error.js +44 -0
  358. package/types/transaction/index.d.ts +4 -0
  359. package/types/transaction/index.js +7 -0
  360. package/types/transaction/request.d.ts +24 -0
  361. package/types/transaction/request.js +1 -0
  362. package/types/transaction/warning.d.ts +5 -0
  363. package/types/transaction/warning.js +8 -0
  364. package/types/yield/actions/join/submit.d.ts +2 -2
  365. package/types/yield/actions/join/validate.d.ts +1 -6
  366. package/types/yield/actions/join/validate.js +1 -10
  367. package/types/yield/actions/others.d.ts +1 -1
  368. package/utils/account/analyze.d.ts +4 -0
  369. package/utils/account/analyze.js +159 -0
  370. package/utils/account/common.d.ts +16 -0
  371. package/utils/account/common.js +104 -0
  372. package/utils/account/derive/index.d.ts +2 -0
  373. package/utils/account/derive/index.js +5 -0
  374. package/utils/account/derive/info/index.d.ts +2 -0
  375. package/utils/account/derive/info/index.js +5 -0
  376. package/utils/account/derive/info/solo.d.ts +11 -0
  377. package/utils/account/derive/info/solo.js +230 -0
  378. package/utils/account/derive/info/unified.d.ts +7 -0
  379. package/utils/account/derive/info/unified.js +102 -0
  380. package/utils/account/derive/validate.d.ts +8 -0
  381. package/utils/account/derive/validate.js +165 -0
  382. package/utils/account/index.d.ts +4 -0
  383. package/utils/account/index.js +7 -0
  384. package/utils/account/transform.d.ts +41 -0
  385. package/utils/account/transform.js +533 -0
  386. package/utils/auth.d.ts +2 -0
  387. package/utils/auth.js +39 -0
  388. package/utils/canDerive.d.ts +1 -1
  389. package/utils/eth/mergeTransactionAndSignature.d.ts +1 -1
  390. package/utils/getId.d.ts +1 -0
  391. package/utils/getId.js +3 -1
  392. package/utils/index.d.ts +12 -5
  393. package/utils/index.js +28 -47
  394. package/cjs/signers/substrates/KeyringSigner.js +0 -35
  395. package/cjs/signers/substrates/LedgerSigner.js +0 -44
  396. package/cjs/signers/substrates/QrSigner.js +0 -63
  397. package/cjs/signers/types.js +0 -15
  398. package/cjs/signers/web3/QrSigner.js +0 -67
  399. package/cjs/utils/account.js +0 -34
  400. package/signers/substrates/KeyringSigner.d.ts +0 -13
  401. package/signers/substrates/KeyringSigner.js +0 -27
  402. package/signers/substrates/LedgerSigner.d.ts +0 -13
  403. package/signers/substrates/LedgerSigner.js +0 -37
  404. package/signers/substrates/QrSigner.d.ts +0 -20
  405. package/signers/substrates/QrSigner.js +0 -55
  406. package/signers/types.d.ts +0 -34
  407. package/signers/types.js +0 -9
  408. package/signers/web3/QrSigner.d.ts +0 -18
  409. package/signers/web3/QrSigner.js +0 -59
  410. package/types/transaction.d.ts +0 -3
  411. package/utils/account.d.ts +0 -5
  412. package/utils/account.js +0 -24
  413. /package/cjs/{types/transaction.js → services/balance-service/helpers/subscribe/ton/types.js} +0 -0
  414. /package/cjs/services/migration-service/scripts/{MigrateLedgerAccount.js → keyring/MigrateLedgerAccount.js} +0 -0
  415. /package/{types/transaction.js → services/balance-service/helpers/subscribe/ton/types.js} +0 -0
  416. /package/services/migration-service/scripts/{MigrateLedgerAccount.d.ts → keyring/MigrateLedgerAccount.d.ts} +0 -0
  417. /package/services/migration-service/scripts/{MigrateLedgerAccount.js → keyring/MigrateLedgerAccount.js} +0 -0
  418. /package/services/migration-service/scripts/{MigrateRemoveGenesisHash.d.ts → keyring/MigrateRemoveGenesisHash.d.ts} +0 -0
@@ -10,15 +10,16 @@ var _TransactionError = require("@subwallet/extension-base/background/errors/Tra
10
10
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
11
11
  var _constants = require("@subwallet/extension-base/constants");
12
12
  var _transfer = require("@subwallet/extension-base/core/logic-validation/transfer");
13
- var _utils = require("@subwallet/extension-base/services/chain-service/utils");
13
+ var _utils = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/ton/utils");
14
+ var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
14
15
  var _constants2 = require("@subwallet/extension-base/services/request-service/constants");
15
16
  var _constants3 = require("@subwallet/extension-base/services/transaction-service/constants");
16
17
  var _eventParser = require("@subwallet/extension-base/services/transaction-service/event-parser");
17
18
  var _helpers = require("@subwallet/extension-base/services/transaction-service/helpers");
18
- var _utils2 = require("@subwallet/extension-base/services/transaction-service/utils");
19
+ var _utils3 = require("@subwallet/extension-base/services/transaction-service/utils");
19
20
  var _helpers2 = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
20
21
  var _types = require("@subwallet/extension-base/types");
21
- var _utils3 = require("@subwallet/extension-base/utils");
22
+ var _utils4 = require("@subwallet/extension-base/utils");
22
23
  var _mergeTransactionAndSignature = require("@subwallet/extension-base/utils/eth/mergeTransactionAndSignature");
23
24
  var _parseTransaction = require("@subwallet/extension-base/utils/eth/parseTransaction");
24
25
  var _number = require("@subwallet/extension-base/utils/number");
@@ -58,7 +59,7 @@ class TransactionService {
58
59
  // Check duplicated transaction
59
60
  const existed = this.processingTransactions.filter(item => item.address === transaction.address && item.chain === transaction.chain);
60
61
  if (existed.length > 0) {
61
- return [new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.DUPLICATE_TRANSACTION)];
62
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.DUPLICATE_TRANSACTION)];
62
63
  }
63
64
  return [];
64
65
  }
@@ -90,25 +91,33 @@ class TransactionService {
90
91
  // Check support for transaction
91
92
  (0, _transfer.checkSupportForTransaction)(validationResponse, transaction);
92
93
  if (!chainInfo) {
93
- validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('Cannot find network')));
94
+ validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('Cannot find network')));
94
95
  }
95
96
  const evmApi = this.state.chainService.getEvmApi(chainInfo.slug);
96
- const isNeedEvmApi = transaction && !(0, _helpers.isSubstrateTransaction)(transaction) && !evmApi;
97
- if (isNeedEvmApi) {
98
- validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.CHAIN_DISCONNECTED, undefined));
97
+ const tonApi = this.state.chainService.getTonApi(chainInfo.slug);
98
+ const isNoEvmApi = transaction && !(0, _helpers.isSubstrateTransaction)(transaction) && !(0, _helpers.isTonTransaction)(transaction) && !evmApi; // todo: should split isEvmTx && isNoEvmApi. Because other chains type also has no Evm Api
99
+ const isNoTonApi = transaction && (0, _helpers.isTonTransaction)(transaction) && !tonApi;
100
+ if (isNoEvmApi || isNoTonApi) {
101
+ validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.CHAIN_DISCONNECTED, undefined));
99
102
  }
100
103
 
101
104
  // Estimate fee for transaction
102
105
  validationResponse.estimateFee = await (0, _transfer.estimateFeeForTransaction)(validationResponse, transaction, chainInfo, evmApi);
106
+ const chainInfoMap = this.state.chainService.getChainInfoMap();
103
107
 
104
108
  // Check account signing transaction
105
- (0, _transfer.checkSigningAccountForTransaction)(validationResponse);
109
+ (0, _transfer.checkSigningAccountForTransaction)(validationResponse, chainInfoMap);
106
110
  const nativeTokenInfo = this.state.chainService.getNativeTokenInfo(chain);
107
111
  const nativeTokenAvailable = await this.state.balanceService.getTransferableBalance(address, chain, nativeTokenInfo.slug, extrinsicType);
108
112
 
109
113
  // Check available balance against transaction fee
110
114
  (0, _transfer.checkBalanceWithTransactionFee)(validationResponse, transactionInput, nativeTokenInfo, nativeTokenAvailable);
111
115
 
116
+ // Warnings Ton address if bounceable and not active
117
+ // if (transaction && isTonTransaction(transaction) && tonApi) {
118
+ // await checkTonAddressBounceableAndAccountNotActive(tonApi, validationResponse);
119
+ // }
120
+
112
121
  // Check additional validations
113
122
  additionalValidator && (await additionalValidator(validationResponse));
114
123
  return validationResponse;
@@ -160,8 +169,9 @@ class TransactionService {
160
169
  }
161
170
  async handleTransaction(transaction) {
162
171
  const validatedTransaction = await this.validateTransaction(transaction);
172
+ const ignoreWarnings = validatedTransaction.ignoreWarnings || [];
163
173
  const stopByErrors = validatedTransaction.errors.length > 0;
164
- const stopByWarnings = validatedTransaction.warnings.length > 0 && !validatedTransaction.ignoreWarnings;
174
+ const stopByWarnings = validatedTransaction.warnings.length > 0 && validatedTransaction.warnings.some(warning => !ignoreWarnings.includes(warning.warningType));
165
175
  if (stopByErrors || stopByWarnings) {
166
176
  // @ts-ignore
167
177
  'transaction' in validatedTransaction && delete validatedTransaction.transaction;
@@ -202,7 +212,7 @@ class TransactionService {
202
212
  }
203
213
  async sendTransaction(transaction) {
204
214
  // Send Transaction
205
- const emitter = await (transaction.chainType === 'substrate' ? this.signAndSendSubstrateTransaction(transaction) : this.signAndSendEvmTransaction(transaction));
215
+ const emitter = await (transaction.chainType === 'substrate' ? this.signAndSendSubstrateTransaction(transaction) : transaction.chainType === 'evm' ? this.signAndSendEvmTransaction(transaction) : this.signAndSendTonTransaction(transaction));
206
216
  const {
207
217
  eventsHandler
208
218
  } = transaction;
@@ -223,13 +233,13 @@ class TransactionService {
223
233
  // this.handlePostProcessing(data.id); // might enable this later
224
234
  this.onFailed({
225
235
  ...data,
226
- errors: [...data.errors, new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR)]
236
+ errors: [...data.errors, new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR)]
227
237
  });
228
238
  });
229
239
  emitter.on('timeout', data => {
230
240
  this.onTimeOut({
231
241
  ...data,
232
- errors: [...data.errors, new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.TIMEOUT)]
242
+ errors: [...data.errors, new _TransactionError.TransactionError(_types.BasicTxErrorType.TIMEOUT)]
233
243
  });
234
244
  });
235
245
 
@@ -258,13 +268,13 @@ class TransactionService {
258
268
  getTransactionLink(id) {
259
269
  const transaction = this.getTransaction(id);
260
270
  const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
261
- return (0, _utils2.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
271
+ return (0, _utils3.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
262
272
  }
263
273
  transactionToHistories(id, startBlock, nonce, eventLogs) {
264
274
  const transaction = this.getTransaction(id);
265
275
  const extrinsicType = transaction.extrinsicType;
266
276
  const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
267
- const formattedTransactionAddress = (0, _utils3.reformatAddress)(transaction.address);
277
+ const formattedTransactionAddress = (0, _utils4.reformatAddress)(transaction.address);
268
278
  const historyItem = {
269
279
  origin: 'app',
270
280
  chain: transaction.chain,
@@ -286,7 +296,7 @@ class TransactionService {
286
296
  nonce: nonce !== null && nonce !== void 0 ? nonce : 0,
287
297
  startBlock: startBlock || 0
288
298
  };
289
- const nativeAsset = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
299
+ const nativeAsset = (0, _utils2._getChainNativeTokenBasicInfo)(chainInfo);
290
300
  const baseNativeAmount = {
291
301
  value: '0',
292
302
  decimals: nativeAsset.decimals,
@@ -297,7 +307,7 @@ class TransactionService {
297
307
  switch (extrinsicType) {
298
308
  case _KoniTypes.ExtrinsicType.TRANSFER_BALANCE:
299
309
  {
300
- const inputData = (0, _utils2.parseTransactionData)(transaction.data);
310
+ const inputData = (0, _utils3.parseTransactionData)(transaction.data);
301
311
  historyItem.to = inputData.to;
302
312
  const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
303
313
  historyItem.amount = {
@@ -310,7 +320,7 @@ class TransactionService {
310
320
  break;
311
321
  case _KoniTypes.ExtrinsicType.TRANSFER_TOKEN:
312
322
  {
313
- const inputData = (0, _utils2.parseTransactionData)(transaction.data);
323
+ const inputData = (0, _utils3.parseTransactionData)(transaction.data);
314
324
  historyItem.to = inputData.to;
315
325
  const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
316
326
  historyItem.amount = {
@@ -323,7 +333,7 @@ class TransactionService {
323
333
  break;
324
334
  case _KoniTypes.ExtrinsicType.TRANSFER_XCM:
325
335
  {
326
- const inputData = (0, _utils2.parseTransactionData)(transaction.data);
336
+ const inputData = (0, _utils3.parseTransactionData)(transaction.data);
327
337
  historyItem.to = inputData.to;
328
338
  const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
329
339
  historyItem.amount = {
@@ -343,7 +353,7 @@ class TransactionService {
343
353
  break;
344
354
  case _KoniTypes.ExtrinsicType.SEND_NFT:
345
355
  {
346
- const inputData = (0, _utils2.parseTransactionData)(transaction.data);
356
+ const inputData = (0, _utils3.parseTransactionData)(transaction.data);
347
357
  historyItem.to = inputData.recipientAddress;
348
358
  historyItem.amount = {
349
359
  decimals: 0,
@@ -354,7 +364,7 @@ class TransactionService {
354
364
  break;
355
365
  case _KoniTypes.ExtrinsicType.STAKING_BOND:
356
366
  {
357
- const data = (0, _utils2.parseTransactionData)(transaction.data);
367
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
358
368
  historyItem.amount = {
359
369
  ...baseNativeAmount,
360
370
  value: data.amount || '0'
@@ -363,7 +373,7 @@ class TransactionService {
363
373
  break;
364
374
  case _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL:
365
375
  {
366
- const data = (0, _utils2.parseTransactionData)(transaction.data);
376
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
367
377
  historyItem.amount = {
368
378
  ...baseNativeAmount,
369
379
  value: data.amount || '0'
@@ -373,11 +383,11 @@ class TransactionService {
373
383
  break;
374
384
  case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
375
385
  {
376
- const data = (0, _utils2.parseTransactionData)(transaction.data);
386
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
377
387
  if (data.isLiquidStaking && data.derivativeTokenInfo && data.exchangeRate && data.inputTokenInfo) {
378
388
  historyItem.amount = {
379
- decimals: (0, _utils._getAssetDecimals)(data.derivativeTokenInfo),
380
- symbol: (0, _utils._getAssetSymbol)(data.derivativeTokenInfo),
389
+ decimals: (0, _utils2._getAssetDecimals)(data.derivativeTokenInfo),
390
+ symbol: (0, _utils2._getAssetSymbol)(data.derivativeTokenInfo),
381
391
  value: data.amount
382
392
  };
383
393
  historyItem.additionalInfo = {
@@ -395,7 +405,7 @@ class TransactionService {
395
405
  break;
396
406
  case _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL:
397
407
  {
398
- const data = (0, _utils2.parseTransactionData)(transaction.data);
408
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
399
409
  historyItem.to = data.address || '';
400
410
  historyItem.amount = {
401
411
  ...baseNativeAmount,
@@ -405,7 +415,7 @@ class TransactionService {
405
415
  break;
406
416
  case _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD:
407
417
  {
408
- const data = (0, _utils2.parseTransactionData)(transaction.data);
418
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
409
419
  historyItem.amount = {
410
420
  ...baseNativeAmount,
411
421
  value: data.unclaimedReward || '0'
@@ -414,7 +424,7 @@ class TransactionService {
414
424
  break;
415
425
  case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
416
426
  {
417
- const data = (0, _utils2.parseTransactionData)(transaction.data);
427
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
418
428
  const slug = data.slug;
419
429
  const poolHandler = this.state.earningService.getPoolHandler(slug);
420
430
  const amount = {
@@ -434,7 +444,7 @@ class TransactionService {
434
444
  }
435
445
  case _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE:
436
446
  {
437
- const data = (0, _utils2.parseTransactionData)(transaction.data);
447
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
438
448
  historyItem.amount = {
439
449
  ...baseNativeAmount,
440
450
  value: data.selectedUnstaking.claimable || '0'
@@ -444,7 +454,7 @@ class TransactionService {
444
454
  case _KoniTypes.ExtrinsicType.EVM_EXECUTE:
445
455
  {
446
456
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
447
- const data = (0, _utils2.parseTransactionData)(transaction.data);
457
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
448
458
 
449
459
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access
450
460
  historyItem.to = (data === null || data === void 0 ? void 0 : data.to) || '';
@@ -459,13 +469,13 @@ class TransactionService {
459
469
  // eslint-disable-next-line no-fallthrough
460
470
  case _KoniTypes.ExtrinsicType.MINT_VDOT:
461
471
  {
462
- const params = (0, _utils2.parseTransactionData)(transaction.data);
472
+ const params = (0, _utils3.parseTransactionData)(transaction.data);
463
473
  const inputTokenInfo = this.state.chainService.getAssetBySlug(params.inputTokenSlug);
464
474
  const isFeePaidWithInputAsset = params.feeTokenSlug === params.inputTokenSlug;
465
475
  historyItem.amount = {
466
476
  value: params.amount,
467
- symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
468
- decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
477
+ symbol: (0, _utils2._getAssetSymbol)(inputTokenInfo),
478
+ decimals: (0, _utils2._getAssetDecimals)(inputTokenInfo)
469
479
  };
470
480
  const additionalInfo = {
471
481
  slug: params.slug,
@@ -473,7 +483,7 @@ class TransactionService {
473
483
  exchangeRate: params.exchangeRate
474
484
  };
475
485
  historyItem.additionalInfo = additionalInfo;
476
- eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingEvents)(historyItem, eventLogs, inputTokenInfo, chainInfo, isFeePaidWithInputAsset, extrinsicType);
486
+ eventLogs && !(0, _utils2._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingEvents)(historyItem, eventLogs, inputTokenInfo, chainInfo, isFeePaidWithInputAsset, extrinsicType);
477
487
  break;
478
488
  }
479
489
  case _KoniTypes.ExtrinsicType.UNSTAKE_QDOT:
@@ -481,15 +491,15 @@ class TransactionService {
481
491
  // eslint-disable-next-line no-fallthrough
482
492
  case _KoniTypes.ExtrinsicType.REDEEM_QDOT:
483
493
  {
484
- const data = (0, _utils2.parseTransactionData)(transaction.data);
494
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
485
495
  const yieldPoolInfo = data.poolInfo;
486
496
  if (yieldPoolInfo.metadata.derivativeAssets) {
487
497
  const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
488
498
  const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
489
499
  historyItem.amount = {
490
500
  value: data.amount,
491
- symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
492
- decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
501
+ symbol: (0, _utils2._getAssetSymbol)(inputTokenInfo),
502
+ decimals: (0, _utils2._getAssetDecimals)(inputTokenInfo)
493
503
  };
494
504
  eventLogs && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
495
505
  const additionalInfo = {
@@ -520,7 +530,7 @@ class TransactionService {
520
530
  // eslint-disable-next-line no-fallthrough
521
531
  case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
522
532
  {
523
- const data = (0, _utils2.parseTransactionData)(transaction.data);
533
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
524
534
  const yieldPoolInfo = data.poolInfo;
525
535
  const minAmountPercents = this.state.earningService.getMinAmountPercent();
526
536
  if (yieldPoolInfo.metadata.derivativeAssets) {
@@ -530,10 +540,10 @@ class TransactionService {
530
540
  const chainInfo = this.state.chainService.getChainInfoByKey(data.poolInfo.chain);
531
541
  historyItem.amount = {
532
542
  value: data.amount,
533
- symbol: (0, _utils._getAssetSymbol)(derivativeTokenInfo),
534
- decimals: (0, _utils._getAssetDecimals)(derivativeTokenInfo)
543
+ symbol: (0, _utils2._getAssetSymbol)(derivativeTokenInfo),
544
+ decimals: (0, _utils2._getAssetDecimals)(derivativeTokenInfo)
535
545
  };
536
- eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
546
+ eventLogs && !(0, _utils2._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
537
547
  const minAmountPercent = minAmountPercents[yieldPoolInfo.slug] || 1;
538
548
  const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
539
549
  const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
@@ -554,23 +564,23 @@ class TransactionService {
554
564
  }
555
565
  case _KoniTypes.ExtrinsicType.TOKEN_SPENDING_APPROVAL:
556
566
  {
557
- const data = (0, _utils2.parseTransactionData)(transaction.data);
567
+ const data = (0, _utils3.parseTransactionData)(transaction.data);
558
568
  const inputAsset = this.state.chainService.getAssetBySlug(data.contractAddress);
559
569
  historyItem.amount = {
560
570
  value: '0',
561
- symbol: (0, _utils._getAssetSymbol)(inputAsset),
562
- decimals: (0, _utils._getAssetDecimals)(inputAsset)
571
+ symbol: (0, _utils2._getAssetSymbol)(inputAsset),
572
+ decimals: (0, _utils2._getAssetDecimals)(inputAsset)
563
573
  };
564
574
  break;
565
575
  }
566
576
  case _KoniTypes.ExtrinsicType.SWAP:
567
577
  {
568
- const data = (0, _utils2.parseTransactionData)(transaction.data); // TODO: switch by provider
578
+ const data = (0, _utils3.parseTransactionData)(transaction.data); // TODO: switch by provider
569
579
  const inputAsset = this.state.chainService.getAssetBySlug(data.quote.pair.from);
570
580
  historyItem.amount = {
571
581
  value: data.quote.fromAmount,
572
- symbol: (0, _utils._getAssetSymbol)(inputAsset),
573
- decimals: (0, _utils._getAssetDecimals)(inputAsset)
582
+ symbol: (0, _utils2._getAssetSymbol)(inputAsset),
583
+ decimals: (0, _utils2._getAssetDecimals)(inputAsset)
574
584
  };
575
585
  historyItem.additionalInfo = data;
576
586
  break;
@@ -590,7 +600,7 @@ class TransactionService {
590
600
  switch (extrinsicType) {
591
601
  case _KoniTypes.ExtrinsicType.TRANSFER_XCM:
592
602
  {
593
- const inputData = (0, _utils2.parseTransactionData)(transaction.data);
603
+ const inputData = (0, _utils3.parseTransactionData)(transaction.data);
594
604
  receiverHistory.chain = inputData.destinationNetworkKey;
595
605
  break;
596
606
  }
@@ -651,7 +661,7 @@ class TransactionService {
651
661
  // must be done after success/failure to make sure the transaction is finalized
652
662
  const transaction = this.getTransaction(id);
653
663
  if (transaction.extrinsicType === _KoniTypes.ExtrinsicType.SEND_NFT) {
654
- const inputData = (0, _utils2.parseTransactionData)(transaction.data);
664
+ const inputData = (0, _utils3.parseTransactionData)(transaction.data);
655
665
  try {
656
666
  const sender = _uiKeyring.default.getPair(inputData.senderAddress);
657
667
  sender && this.state.dbService.handleNftTransfer(transaction.chain, [sender.address, _constants.ALL_ACCOUNT_KEY], inputData.nftItem).then(() => {
@@ -672,7 +682,7 @@ class TransactionService {
672
682
  } else if ([_KoniTypes.ExtrinsicType.STAKING_BOND, _KoniTypes.ExtrinsicType.STAKING_UNBOND, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD, _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL].includes(transaction.extrinsicType)) {
673
683
  this.state.eventService.emit('transaction.submitStaking', transaction.chain);
674
684
  } else if (transaction.extrinsicType === _KoniTypes.ExtrinsicType.SWAP) {
675
- const inputData = (0, _utils2.parseTransactionData)(transaction.data);
685
+ const inputData = (0, _utils3.parseTransactionData)(transaction.data);
676
686
  const toAssetSlug = inputData.quote.pair.to;
677
687
 
678
688
  // todo: consider async
@@ -800,30 +810,30 @@ class TransactionService {
800
810
  generateHashPayload(chain, transaction) {
801
811
  const chainInfo = this.state.chainService.getChainInfoByKey(chain);
802
812
  let txObject;
803
- const max = (0, _utils3.anyNumberToBN)(transaction.maxFeePerGas);
813
+ const max = (0, _utils4.anyNumberToBN)(transaction.maxFeePerGas);
804
814
  if (max.gt(_number.BN_ZERO)) {
805
815
  var _transaction$nonce;
806
816
  txObject = {
807
817
  nonce: (_transaction$nonce = transaction.nonce) !== null && _transaction$nonce !== void 0 ? _transaction$nonce : 0,
808
- maxFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils3.anyNumberToBN)(transaction.maxFeePerGas).toString(16)),
809
- maxPriorityFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils3.anyNumberToBN)(transaction.maxPriorityFeePerGas).toString(16)),
810
- gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils3.anyNumberToBN)(transaction.gas).toString(16)),
818
+ maxFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.maxFeePerGas).toString(16)),
819
+ maxPriorityFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.maxPriorityFeePerGas).toString(16)),
820
+ gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gas).toString(16)),
811
821
  to: transaction.to,
812
- value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils3.anyNumberToBN)(transaction.value).toString(16)),
822
+ value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.value).toString(16)),
813
823
  data: transaction.data,
814
- chainId: (0, _utils._getEvmChainId)(chainInfo),
824
+ chainId: (0, _utils2._getEvmChainId)(chainInfo),
815
825
  type: 2
816
826
  };
817
827
  } else {
818
828
  var _transaction$nonce2;
819
829
  txObject = {
820
830
  nonce: (_transaction$nonce2 = transaction.nonce) !== null && _transaction$nonce2 !== void 0 ? _transaction$nonce2 : 0,
821
- gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0, _utils3.anyNumberToBN)(transaction.gasPrice).toString(16)),
822
- gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils3.anyNumberToBN)(transaction.gas).toString(16)),
831
+ gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gasPrice).toString(16)),
832
+ gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gas).toString(16)),
823
833
  to: transaction.to,
824
- value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils3.anyNumberToBN)(transaction.value).toString(16)),
834
+ value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.value).toString(16)),
825
835
  data: transaction.data,
826
- chainId: (0, _utils._getEvmChainId)(chainInfo),
836
+ chainId: (0, _utils2._getEvmChainId)(chainInfo),
827
837
  type: 0
828
838
  };
829
839
  }
@@ -843,13 +853,7 @@ class TransactionService {
843
853
  const chainInfo = this.state.chainService.getChainInfoByKey(chain);
844
854
  const hasError = !!(payload.errors && payload.errors.length > 0);
845
855
  const accountPair = _uiKeyring.default.getPair(address);
846
- const account = {
847
- address,
848
- ...accountPair.meta
849
- };
850
- if (!payload.account) {
851
- payload.account = account;
852
- }
856
+ const account = (0, _utils4.pairToAccount)(accountPair);
853
857
 
854
858
  // Allow sign transaction
855
859
  payload.canSign = true;
@@ -865,6 +869,9 @@ class TransactionService {
865
869
  payload.parseData = payload.data;
866
870
  }
867
871
  }
872
+ if (!payload.address) {
873
+ payload.address = address;
874
+ }
868
875
  if ('data' in payload && payload.data === undefined) {
869
876
  delete payload.data;
870
877
  }
@@ -895,12 +902,12 @@ class TransactionService {
895
902
  const txObject = {
896
903
  nonce: (_payload$nonce = payload.nonce) !== null && _payload$nonce !== void 0 ? _payload$nonce : 0,
897
904
  from: payload.from,
898
- gasPrice: (0, _utils3.anyNumberToBN)(payload.gasPrice).toNumber(),
899
- maxFeePerGas: (0, _utils3.anyNumberToBN)(payload.maxFeePerGas).toNumber(),
900
- maxPriorityFeePerGas: (0, _utils3.anyNumberToBN)(payload.maxPriorityFeePerGas).toNumber(),
901
- gasLimit: (0, _utils3.anyNumberToBN)(payload.gas).toNumber(),
905
+ gasPrice: (0, _utils4.anyNumberToBN)(payload.gasPrice).toNumber(),
906
+ maxFeePerGas: (0, _utils4.anyNumberToBN)(payload.maxFeePerGas).toNumber(),
907
+ maxPriorityFeePerGas: (0, _utils4.anyNumberToBN)(payload.maxPriorityFeePerGas).toNumber(),
908
+ gasLimit: (0, _utils4.anyNumberToBN)(payload.gas).toNumber(),
902
909
  to: payload.to,
903
- value: (0, _utils3.anyNumberToBN)(payload.value).toNumber(),
910
+ value: (0, _utils4.anyNumberToBN)(payload.value).toNumber(),
904
911
  data: payload.data,
905
912
  chainId: payload.chainId
906
913
  };
@@ -953,7 +960,7 @@ class TransactionService {
953
960
  const onError = error => {
954
961
  if (error) {
955
962
  // TODO: Change type and message
956
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNABLE_TO_SEND, error.message));
963
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SEND, error.message));
957
964
  emitter.emit('error', eventData);
958
965
  onComplete();
959
966
  reject(error);
@@ -966,13 +973,13 @@ class TransactionService {
966
973
  });
967
974
  } else {
968
975
  this.removeTransaction(id);
969
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.USER_REJECT_REQUEST));
976
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
970
977
  emitter.emit('error', eventData);
971
978
  }
972
979
  }).catch(e => {
973
980
  this.removeTransaction(id);
974
981
  // TODO: Change type
975
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
982
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
976
983
  emitter.emit('error', eventData);
977
984
  });
978
985
  } else {
@@ -1017,20 +1024,20 @@ class TransactionService {
1017
1024
  eventData.blockNumber = rs.blockNumber;
1018
1025
  emitter.emit('success', eventData);
1019
1026
  }).once('error', e => {
1020
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.SEND_TRANSACTION_FAILED, (0, _i18next.t)(e.message)));
1027
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, (0, _i18next.t)(e.message)));
1021
1028
  emitter.emit('error', eventData);
1022
1029
  }).catch(e => {
1023
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNABLE_TO_SEND, (0, _i18next.t)(e.message)));
1030
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SEND, (0, _i18next.t)(e.message)));
1024
1031
  emitter.emit('error', eventData);
1025
1032
  });
1026
1033
  } else {
1027
1034
  this.removeTransaction(id);
1028
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.USER_REJECT_REQUEST));
1035
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
1029
1036
  emitter.emit('error', eventData);
1030
1037
  }
1031
1038
  }).catch(e => {
1032
1039
  this.removeTransaction(id);
1033
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNABLE_TO_SIGN, (0, _i18next.t)(e.message)));
1040
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, (0, _i18next.t)(e.message)));
1034
1041
  emitter.emit('error', eventData);
1035
1042
  });
1036
1043
  }
@@ -1070,7 +1077,7 @@ class TransactionService {
1070
1077
  },
1071
1078
  withSignedTransaction: true
1072
1079
  };
1073
- if ((0, _utils3._isRuntimeUpdated)(signedExtensions)) {
1080
+ if ((0, _utils4._isRuntimeUpdated)(signedExtensions)) {
1074
1081
  const metadataHash = await this.state.chainService.calculateMetadataHash(chain);
1075
1082
  if (metadataHash) {
1076
1083
  signerOption.mode = 1;
@@ -1120,7 +1127,7 @@ class TransactionService {
1120
1127
  }
1121
1128
  } = _ref12;
1122
1129
  if (method === 'ExtrinsicFailed') {
1123
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.SEND_TRANSACTION_FAILED, error.toString()));
1130
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, error.toString()));
1124
1131
  emitter.emit('error', eventData);
1125
1132
  } else if (method === 'ExtrinsicSuccess') {
1126
1133
  emitter.emit('success', eventData);
@@ -1128,12 +1135,105 @@ class TransactionService {
1128
1135
  });
1129
1136
  }
1130
1137
  }).catch(e => {
1131
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.SEND_TRANSACTION_FAILED, e.message));
1138
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, e.message));
1139
+ emitter.emit('error', eventData);
1140
+ });
1141
+ }).catch(e => {
1142
+ this.removeTransaction(id);
1143
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
1144
+ emitter.emit('error', eventData);
1145
+ });
1146
+ return emitter;
1147
+ }
1148
+ signAndSendTonTransaction(_ref13) {
1149
+ let {
1150
+ address,
1151
+ chain,
1152
+ extrinsicType,
1153
+ id,
1154
+ transaction,
1155
+ url
1156
+ } = _ref13;
1157
+ const walletContract = _uiKeyring.default.getPair(address).ton.currentContract;
1158
+ const emitter = new _eventemitter.default();
1159
+ const eventData = {
1160
+ id,
1161
+ errors: [],
1162
+ warnings: [],
1163
+ extrinsicHash: id
1164
+ };
1165
+ const payload = transaction;
1166
+ const signer = message => {
1167
+ return new Promise(resolve => {
1168
+ this.state.requestService.addConfirmationTon(id, url || _constants2.EXTENSION_REQUEST_URL, 'tonSendTransactionRequest', {
1169
+ ...payload,
1170
+ messagePayload: (0, _utils.cellToBase64Str)(message),
1171
+ messages: []
1172
+ }, {}).then(_ref14 => {
1173
+ let {
1174
+ isApproved,
1175
+ payload
1176
+ } = _ref14;
1177
+ if (!isApproved) {
1178
+ this.removeTransaction(id);
1179
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
1180
+ emitter.emit('error', eventData);
1181
+ } else {
1182
+ if (!payload) {
1183
+ throw new Error('Bad signature');
1184
+ }
1185
+ resolve(Buffer.from((0, _util.hexToU8a)(payload)));
1186
+ }
1187
+ }).catch(e => {
1188
+ this.removeTransaction(id);
1189
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, (0, _i18next.t)(e.message)));
1190
+ emitter.emit('error', eventData);
1191
+ });
1192
+ });
1193
+ };
1194
+ const tonTransactionConfig = transaction;
1195
+ const seqno = tonTransactionConfig.seqno;
1196
+ const messages = tonTransactionConfig.messages;
1197
+ const transferObjectPromise = (0, _utils.getTransferCellPromise)(walletContract, signer, payload, seqno, messages);
1198
+ transferObjectPromise.then(tx => {
1199
+ // Emit signed event
1200
+ emitter.emit('signed', eventData);
1201
+ const boc = (0, _utils.externalMessage)(walletContract, seqno, tx).toBoc().toString('base64');
1202
+ this.handleTransactionTimeout(emitter, eventData);
1203
+ emitter.emit('send', eventData); // This event is needed after sending transaction with queue
1204
+
1205
+ const tonApi = this.state.chainService.getTonApi(chain);
1206
+ tonApi.sendTonTransaction(boc).then(externalMsgHash => {
1207
+ // the externalMsgHash is the hash of first message, not the hash of transaction.
1208
+ if (!externalMsgHash) {
1209
+ return;
1210
+ }
1211
+ tonApi.getStatusByExtMsgHash(externalMsgHash, extrinsicType).then(_ref15 => {
1212
+ let [status, hex] = _ref15;
1213
+ if (status && hex) {
1214
+ eventData.extrinsicHash = hex;
1215
+ emitter.emit('extrinsicHash', eventData);
1216
+ emitter.emit('success', eventData);
1217
+ }
1218
+ if (!status && hex) {
1219
+ eventData.extrinsicHash = hex;
1220
+ emitter.emit('extrinsicHash', eventData);
1221
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED));
1222
+ emitter.emit('error', eventData);
1223
+ }
1224
+ }).catch(e => {
1225
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, e.message));
1226
+ emitter.emit('error', eventData);
1227
+ });
1228
+
1229
+ // todo: handle status of externalMsgHash
1230
+ }).catch(e => {
1231
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, e.message));
1132
1232
  emitter.emit('error', eventData);
1133
1233
  });
1134
1234
  }).catch(e => {
1135
1235
  this.removeTransaction(id);
1136
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
1236
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
1137
1237
  emitter.emit('error', eventData);
1138
1238
  });
1139
1239
  return emitter;
@@ -1142,7 +1242,7 @@ class TransactionService {
1142
1242
  const timeout = setTimeout(() => {
1143
1243
  const transaction = this.getTransaction(eventData.id);
1144
1244
  if (transaction.status !== _KoniTypes.ExtrinsicStatus.SUCCESS && transaction.status !== _KoniTypes.ExtrinsicStatus.FAIL) {
1145
- eventData.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.TIMEOUT, (0, _i18next.t)('Transaction timeout')));
1245
+ eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.TIMEOUT, (0, _i18next.t)('Transaction timeout')));
1146
1246
  emitter.emit('timeout', eventData);
1147
1247
  clearTimeout(timeout);
1148
1248
  }
@@ -62,10 +62,7 @@ class PolkadotRequestHandler {
62
62
  address: address,
63
63
  data: param.message,
64
64
  type: 'bytes'
65
- }), {
66
- address,
67
- ...pair.meta
68
- }, (0, _helpers.getWCId)(id)).then(async _ref => {
65
+ }), (0, _helpers.getWCId)(id)).then(async _ref => {
69
66
  let {
70
67
  signature
71
68
  } = _ref;
@@ -81,12 +78,7 @@ class PolkadotRequestHandler {
81
78
  } else if (method === _types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION) {
82
79
  const param = (0, _helpers.parseRequestParams)(request.params);
83
80
  (0, _classPrivateFieldLooseBase2.default)(this, _checkAccount)[_checkAccount](param.address, sessionAccounts);
84
- const pair = _uiKeyring.default.getPair(param.address);
85
- const address = pair.address;
86
- (0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].sign(url, new _RequestExtrinsicSign.default(param.transactionPayload), {
87
- address,
88
- ...pair.meta
89
- }, (0, _helpers.getWCId)(id)).then(async _ref2 => {
81
+ (0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].sign(url, new _RequestExtrinsicSign.default(param.transactionPayload), (0, _helpers.getWCId)(id)).then(async _ref2 => {
90
82
  let {
91
83
  signature
92
84
  } = _ref2;