@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
@@ -1,7 +1,7 @@
1
1
  /// <reference types="chrome" />
2
2
  import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _MultiChainAsset } from '@subwallet/chain-list/types';
3
- import { AddTokenRequestExternal, AmountData, ApiMap, AuthRequestV2, ChainStakingMetadata, ConfirmationsQueue, CrowdloanItem, CrowdloanJson, CurrentAccountInfo, EvmSendTransactionParams, ExternalRequestPromise, MantaPayConfig, MantaPaySyncState, NftCollection, NftItem, NftJson, NominatorMetadata, RequestAccountExportPrivateKey, RequestCheckPublicAndSecretKey, RequestConfirmationComplete, RequestCrowdloanContributions, RequestSettingsType, ResponseAccountExportPrivateKey, ResponseCheckPublicAndSecretKey, ServiceInfo, SingleModeJson, StakingItem, StakingJson, StakingRewardItem, StakingRewardJson, StakingType, UiSettings } from '@subwallet/extension-base/background/KoniTypes';
4
- import { AccountJson, RequestAuthorizeTab, RequestRpcSend, RequestRpcSubscribe, RequestRpcUnsubscribe, RequestSign, ResponseRpcListProviders, ResponseSigning } from '@subwallet/extension-base/background/types';
3
+ import { AddTokenRequestExternal, AmountData, ApiMap, AuthRequestV2, ChainStakingMetadata, ConfirmationsQueue, ConfirmationsQueueTon, CrowdloanItem, CrowdloanJson, EvmSendTransactionParams, ExternalRequestPromise, MantaPayConfig, MantaPaySyncState, NftCollection, NftItem, NftJson, NominatorMetadata, RequestAccountExportPrivateKey, RequestConfirmationComplete, RequestConfirmationCompleteTon, RequestCrowdloanContributions, RequestSettingsType, ResponseAccountExportPrivateKey, ServiceInfo, SingleModeJson, StakingItem, StakingJson, StakingRewardItem, StakingRewardJson, StakingType, UiSettings } from '@subwallet/extension-base/background/KoniTypes';
4
+ import { RequestAuthorizeTab, RequestRpcSend, RequestRpcSubscribe, RequestRpcUnsubscribe, RequestSign, ResponseRpcListProviders, ResponseSigning } from '@subwallet/extension-base/background/types';
5
5
  import { BalanceService } from '@subwallet/extension-base/services/balance-service';
6
6
  import BuyService from '@subwallet/extension-base/services/buy-service';
7
7
  import CampaignService from '@subwallet/extension-base/services/campaign-service';
@@ -25,9 +25,8 @@ import { SubscanService } from '@subwallet/extension-base/services/subscan-servi
25
25
  import { SwapService } from '@subwallet/extension-base/services/swap-service';
26
26
  import TransactionService from '@subwallet/extension-base/services/transaction-service';
27
27
  import WalletConnectService from '@subwallet/extension-base/services/wallet-connect-service';
28
- import { BalanceMap, EvmFeeInfo, StorageDataInterface } from '@subwallet/extension-base/types';
28
+ import { EvmFeeInfo, RequestCheckPublicAndSecretKey, ResponseCheckPublicAndSecretKey, StorageDataInterface } from '@subwallet/extension-base/types';
29
29
  import { MetadataDef, ProviderMeta } from '@subwallet/extension-inject/types';
30
- import SimpleKeyring from 'eth-simple-keyring';
31
30
  import { BehaviorSubject, Subject } from 'rxjs';
32
31
  import { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback } from '@polkadot/rpc-provider/types';
33
32
  declare type Providers = Record<string, {
@@ -38,7 +37,6 @@ export default class KoniState {
38
37
  private injectedProviders;
39
38
  private readonly providers;
40
39
  private readonly unsubscriptionMap;
41
- private readonly accountRefStore;
42
40
  private externalRequest;
43
41
  private crowdloanMap;
44
42
  private crowdloanSubject;
@@ -90,9 +88,8 @@ export default class KoniState {
90
88
  rpcSubscribeConnected(_request: null, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): void;
91
89
  rpcUnsubscribe(request: RequestRpcUnsubscribe, port: chrome.runtime.Port): Promise<boolean>;
92
90
  saveMetadata(meta: MetadataDef): void;
93
- sign(url: string, request: RequestSign, account: AccountJson): Promise<ResponseSigning>;
91
+ sign(url: string, request: RequestSign): Promise<ResponseSigning>;
94
92
  get authSubjectV2(): BehaviorSubject<import("@subwallet/extension-base/background/types").AuthorizeRequest[]>;
95
- generateDefaultBalanceMap(_addresses?: string[]): BalanceMap;
96
93
  private afterChainServiceInit;
97
94
  init(): Promise<void>;
98
95
  initMantaPay(password: string): Promise<void>;
@@ -106,7 +103,6 @@ export default class KoniState {
106
103
  subscribeEvmChainChange(): Subject<AuthUrls>;
107
104
  subscribeAuthorizeUrlSubject(): Subject<AuthUrls>;
108
105
  getAuthList(): Promise<AuthUrls>;
109
- getAddressList(value?: boolean): Record<string, boolean>;
110
106
  authorizeUrlV2(url: string, request: RequestAuthorizeTab): Promise<boolean>;
111
107
  getNativeTokenInfo(networkKey: string): _ChainAsset;
112
108
  getChainInfo(networkKey: string): _ChainInfo;
@@ -137,13 +133,8 @@ export default class KoniState {
137
133
  resetStakingReward(): void;
138
134
  updateStakingReward(stakingRewardData: StakingRewardItem, callback?: (stakingRewardData: StakingRewardJson) => void): void;
139
135
  updateStakingRewardReady(ready: boolean): void;
140
- getAccountRefMap(callback: (refMap: Record<string, Array<string>>) => void): void;
141
- addAccountRef(addresses: string[], callback: () => void): void;
142
- removeAccountRef(address: string, callback: () => void): void;
143
136
  getStakingReward(update: (value: StakingRewardJson) => void): void;
144
137
  subscribeStakingReward(): Subject<StakingRewardJson>;
145
- setCurrentAccount(data: CurrentAccountInfo, callback?: () => void, preventOneAccount?: boolean): void;
146
- setAccountTie(address: string, genesisHash: string | null): boolean;
147
138
  switchEvmNetworkByUrl(shortenUrl: string, networkKey: string): Promise<void>;
148
139
  addNetworkConfirm(id: string, url: string, networkData: _NetworkUpsertParams): Promise<null>;
149
140
  addTokenConfirm(id: string, url: string, tokenInfo: AddTokenRequestExternal): Promise<true>;
@@ -154,9 +145,6 @@ export default class KoniState {
154
145
  updateSetting<T extends keyof UiSettings>(key: T, value: UiSettings[T]): void;
155
146
  setShowBalance(value: boolean): void;
156
147
  subscribeSettingsSubject(): Subject<RequestSettingsType>;
157
- getAccountAddress(): string | null;
158
- getDecodedAddresses(address?: string): string[];
159
- getAllAddresses(): string[];
160
148
  resetCrowdloanMap(newAddress: string): Promise<void>;
161
149
  resetStaking(newAddress: string): void;
162
150
  getCrowdloan(reset?: boolean): CrowdloanJson;
@@ -197,6 +185,8 @@ export default class KoniState {
197
185
  getSubstrateApi(networkKey: string): import("@subwallet/extension-base/services/chain-service/types")._SubstrateApi;
198
186
  getEvmApiMap(): Record<string, import("../../../services/chain-service/handler/EvmApi").EvmApi>;
199
187
  getEvmApi(networkKey: string): import("../../../services/chain-service/handler/EvmApi").EvmApi;
188
+ getTonApiMap(): Record<string, import("../../../services/chain-service/handler/TonApi").TonApi>;
189
+ getTonApi(networkKey: string): import("../../../services/chain-service/handler/TonApi").TonApi;
200
190
  getApiMap(): ApiMap;
201
191
  refreshSubstrateApi(key: string): boolean;
202
192
  refreshWeb3Api(key: string): void;
@@ -213,20 +203,23 @@ export default class KoniState {
213
203
  findChainIdGenesisHash(genesisHash?: string | null): number | undefined;
214
204
  findNetworkKeyByChainId(chainId?: number | null): [string | undefined, _ChainInfo | undefined];
215
205
  findSingleMode(genesisHash: string): SingleModeJson | undefined;
216
- accountExportPrivateKey({ address, password }: RequestAccountExportPrivateKey): ResponseAccountExportPrivateKey;
217
- checkPublicAndSecretKey({ publicKey, secretKey }: RequestCheckPublicAndSecretKey): ResponseCheckPublicAndSecretKey;
218
- getEthKeyring(address: string, password: string): Promise<SimpleKeyring>;
206
+ accountExportPrivateKey(request: RequestAccountExportPrivateKey): ResponseAccountExportPrivateKey;
207
+ checkPublicAndSecretKey(request: RequestCheckPublicAndSecretKey): ResponseCheckPublicAndSecretKey;
219
208
  evmSign(id: string, url: string, method: string, params: any, topic?: string): Promise<string | undefined>;
220
209
  calculateAllGasFeeOnChain(activeEvmChains: string[], timeout?: number): Promise<Record<string, EvmFeeInfo | null>>;
221
210
  evmSendTransaction(id: string, url: string, transactionParams: EvmSendTransactionParams, networkKeyInit?: string, topic?: string): Promise<string | undefined>;
222
211
  getConfirmationsQueueSubject(): BehaviorSubject<ConfirmationsQueue>;
212
+ getConfirmationsQueueSubjectTon(): BehaviorSubject<ConfirmationsQueueTon>;
223
213
  completeConfirmation(request: RequestConfirmationComplete): Promise<boolean>;
214
+ completeConfirmationTon(request: RequestConfirmationCompleteTon): Promise<boolean>;
224
215
  private onMV3Update;
216
+ private storePreviousVersionData;
225
217
  migrateMV3LocalStorage(data: string): Promise<boolean>;
226
218
  private onMV3Install;
227
219
  onInstallOrUpdate(details: chrome.runtime.InstalledDetails): void;
228
220
  private onHandleRemindExportAccount;
229
221
  setStorageFromWS({ key, value }: StorageDataInterface): Promise<boolean>;
222
+ getStorageFromWS(key: string): Promise<string | null>;
230
223
  onCheckToRemindUser(): void;
231
224
  onInstall(): void;
232
225
  get activeNetworks(): Record<string, _ChainInfo>;
@@ -4,8 +4,8 @@
4
4
  import { EvmProviderError } from '@subwallet/extension-base/background/errors/EvmProviderError';
5
5
  import { withErrorLog } from '@subwallet/extension-base/background/handlers/helpers';
6
6
  import { isSubscriptionRunning, unsubscribe } from '@subwallet/extension-base/background/handlers/subscriptions';
7
- import { APIItemState, BasicTxErrorType, ChainType, EvmProviderErrorType, ExternalRequestPromiseStatus, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
8
- import { ALL_ACCOUNT_KEY, ALL_GENESIS_HASH, MANTA_PAY_BALANCE_INTERVAL, REMIND_EXPORT_ACCOUNT } from '@subwallet/extension-base/constants';
7
+ import { APIItemState, ChainType, EvmProviderErrorType, ExternalRequestPromiseStatus, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
8
+ import { MANTA_PAY_BALANCE_INTERVAL, REMIND_EXPORT_ACCOUNT } from '@subwallet/extension-base/constants';
9
9
  import { convertErrorFormat, generateValidationProcess, validationAuthMiddleware, validationAuthWCMiddleware, validationConnectMiddleware, validationEvmDataTransactionMiddleware, validationEvmSignMessageMiddleware } from '@subwallet/extension-base/core/logic-validation';
10
10
  import { BalanceService } from '@subwallet/extension-base/services/balance-service';
11
11
  import { ServiceStatus } from '@subwallet/extension-base/services/base/types';
@@ -34,31 +34,25 @@ import { SwapService } from '@subwallet/extension-base/services/swap-service';
34
34
  import TransactionService from '@subwallet/extension-base/services/transaction-service';
35
35
  import WalletConnectService from '@subwallet/extension-base/services/wallet-connect-service';
36
36
  import { SWStorage } from '@subwallet/extension-base/storage';
37
- import AccountRefStore from '@subwallet/extension-base/stores/AccountRef';
38
- import { isAccountAll, isManifestV3, stripUrl, targetIsWeb } from '@subwallet/extension-base/utils';
37
+ import { BasicTxErrorType } from '@subwallet/extension-base/types';
38
+ import { isManifestV3, stripUrl, targetIsWeb } from '@subwallet/extension-base/utils';
39
39
  import { createPromiseHandler } from '@subwallet/extension-base/utils/promise';
40
- import { decodePair } from '@subwallet/keyring/pair/decode';
41
40
  import { keyring } from '@subwallet/ui-keyring';
42
41
  import BN from 'bn.js';
43
- import SimpleKeyring from 'eth-simple-keyring';
44
42
  import { t } from 'i18next';
45
43
  import { Subject } from 'rxjs';
46
- import { assert, hexStripPrefix, hexToU8a, isHex, logger as createLogger, noop, u8aToHex } from '@polkadot/util';
47
- import { base64Decode, isEthereumAddress, keyExtractSuri } from '@polkadot/util-crypto';
44
+ import { assert, logger as createLogger, noop } from '@polkadot/util';
45
+ import { isEthereumAddress } from '@polkadot/util-crypto';
48
46
  import { KoniCron } from "../cron.js";
49
47
  import { KoniSubscription } from "../subscription.js";
50
48
 
51
49
  // eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-assignment
52
50
  const passworder = require('browser-passworder');
53
- const ETH_DERIVE_DEFAULT = '/m/44\'/60\'/0\'/0/0';
54
51
  const ERROR_CONFIRMATION_TYPE = ['errorConnectNetwork'];
55
52
 
56
53
  // List of providers passed into constructor. This is the list of providers
57
54
  // exposed by the extension.
58
55
 
59
- const getSuri = (seed, type) => {
60
- return type === 'ethereum' ? `${seed}${ETH_DERIVE_DEFAULT}` : seed;
61
- };
62
56
  const generateDefaultCrowdloanMap = () => {
63
57
  const crowdloanMap = {};
64
58
  return crowdloanMap;
@@ -67,7 +61,6 @@ const DEFAULT_CURRENCY = 'USD';
67
61
  export default class KoniState {
68
62
  injectedProviders = new Map();
69
63
  unsubscriptionMap = {};
70
- accountRefStore = new AccountRefStore();
71
64
  externalRequest = {};
72
65
  crowdloanMap = generateDefaultCrowdloanMap();
73
66
  crowdloanSubject = new Subject();
@@ -91,7 +84,7 @@ export default class KoniState {
91
84
  this.providers = providers;
92
85
  this.eventService = new EventService();
93
86
  this.dbService = new DatabaseService(this.eventService);
94
- this.keyringService = new KeyringService(this.eventService);
87
+ this.keyringService = new KeyringService(this);
95
88
  this.notificationService = new NotificationService();
96
89
  this.chainService = new ChainService(this.dbService, this.eventService);
97
90
  this.subscanService = SubscanService.getInstance();
@@ -191,35 +184,12 @@ export default class KoniState {
191
184
  saveMetadata(meta) {
192
185
  this.requestService.saveMetadata(meta);
193
186
  }
194
- sign(url, request, account) {
195
- return this.requestService.sign(url, request, account);
187
+ sign(url, request) {
188
+ return this.requestService.sign(url, request);
196
189
  }
197
190
  get authSubjectV2() {
198
191
  return this.requestService.authSubjectV2;
199
192
  }
200
- generateDefaultBalanceMap(_addresses) {
201
- const balanceMap = {};
202
- const activeChains = this.chainService.getActiveChainInfoMap();
203
- const isAllAccount = isAccountAll(this.keyringService.currentAccount.address);
204
- const addresses = _addresses || (isAllAccount ? Object.keys(this.keyringService.accounts) : [this.keyringService.currentAccount.address]);
205
- addresses.forEach(address => {
206
- const temp = {};
207
- Object.values(activeChains).forEach(chainInfo => {
208
- const chainAssetMap = this.chainService.getFungibleTokensByChain(chainInfo.slug);
209
- Object.keys(chainAssetMap).forEach(assetSlug => {
210
- temp[assetSlug] = {
211
- address,
212
- tokenSlug: assetSlug,
213
- free: '',
214
- locked: '',
215
- state: APIItemState.PENDING
216
- };
217
- });
218
- });
219
- balanceMap[address] = temp;
220
- });
221
- return balanceMap;
222
- }
223
193
  afterChainServiceInit() {
224
194
  this.subscanService.setSubscanChainMap(this.chainService.getSubscanChainMap());
225
195
  }
@@ -303,13 +273,6 @@ export default class KoniState {
303
273
  getAuthList() {
304
274
  return this.requestService.getAuthList();
305
275
  }
306
- getAddressList(value = false) {
307
- const addressList = Object.keys(this.keyringService.accounts);
308
- return addressList.reduce((addressList, v) => ({
309
- ...addressList,
310
- [v]: value
311
- }), {});
312
- }
313
276
  async authorizeUrlV2(url, request) {
314
277
  return this.requestService.authorizeUrlV2(url, request);
315
278
  }
@@ -333,7 +296,7 @@ export default class KoniState {
333
296
  return this.dbService.getMantaPayConfig(chain);
334
297
  }
335
298
  async getStaking() {
336
- const addresses = this.getDecodedAddresses();
299
+ const addresses = this.keyringService.context.getDecodedAddresses();
337
300
  const stakings = await this.dbService.getStakings(addresses, this.activeChainSlugs);
338
301
  return {
339
302
  ready: true,
@@ -393,7 +356,7 @@ export default class KoniState {
393
356
  nftList: [],
394
357
  total: 0
395
358
  })).catch(e => this.logger.warn(e));
396
- const addresses = this.getDecodedAddresses(newAddress);
359
+ const addresses = this.keyringService.context.getDecodedAddresses(newAddress);
397
360
  this.dbService.subscribeNft(addresses, this.activeChainSlugs, nfts => {
398
361
  this.nftSubject.next({
399
362
  nftList: nfts,
@@ -412,7 +375,7 @@ export default class KoniState {
412
375
  this.dbService.cleanUpNft(chain, owner, collectionId, nftIds, ownNothing).catch(e => this.logger.warn(e));
413
376
  }
414
377
  async getNft() {
415
- const addresses = this.getDecodedAddresses();
378
+ const addresses = this.keyringService.context.getDecodedAddresses();
416
379
  if (!addresses.length) {
417
380
  return;
418
381
  }
@@ -442,94 +405,12 @@ export default class KoniState {
442
405
  this.stakingRewardState.ready = ready;
443
406
  this.stakingRewardSubject.next(this.stakingRewardState);
444
407
  }
445
- getAccountRefMap(callback) {
446
- const refMap = {};
447
- this.accountRefStore.get('refList', refList => {
448
- if (refList) {
449
- refList.forEach(accRef => {
450
- accRef.forEach(acc => {
451
- refMap[acc] = [...accRef].filter(r => !(r === acc));
452
- });
453
- });
454
- }
455
- callback(refMap);
456
- });
457
- }
458
- addAccountRef(addresses, callback) {
459
- this.accountRefStore.get('refList', refList => {
460
- const newList = refList ? [...refList] : [];
461
- newList.push(addresses);
462
- this.accountRefStore.set('refList', newList, callback);
463
- });
464
- }
465
- removeAccountRef(address, callback) {
466
- this.accountRefStore.get('refList', refList => {
467
- if (refList) {
468
- refList.forEach(accRef => {
469
- if (accRef.indexOf(address) > -1) {
470
- accRef.splice(accRef.indexOf(address), 1);
471
- }
472
- if (accRef.length < 2) {
473
- refList.splice(refList.indexOf(accRef), 1);
474
- }
475
- });
476
- this.accountRefStore.set('refList', refList, () => {
477
- callback();
478
- });
479
- } else {
480
- callback();
481
- }
482
- });
483
- }
484
408
  getStakingReward(update) {
485
409
  update(this.stakingRewardState);
486
410
  }
487
411
  subscribeStakingReward() {
488
412
  return this.stakingRewardSubject;
489
413
  }
490
- setCurrentAccount(data, callback, preventOneAccount) {
491
- const {
492
- address,
493
- currentGenesisHash
494
- } = data;
495
- const result = {
496
- ...data
497
- };
498
- if (address === ALL_ACCOUNT_KEY) {
499
- const pairs = keyring.getAccounts();
500
- const pair = pairs[0];
501
- const pairGenesisHash = (pair === null || pair === void 0 ? void 0 : pair.meta.genesisHash) || '';
502
- if (pairs.length > 1 || !pair) {
503
- result.allGenesisHash = currentGenesisHash || undefined;
504
- } else {
505
- if (!preventOneAccount) {
506
- result.address = pair.address;
507
- result.currentGenesisHash = pairGenesisHash || '';
508
- result.allGenesisHash = pairGenesisHash || undefined;
509
- } else {
510
- result.allGenesisHash = currentGenesisHash || undefined;
511
- }
512
- }
513
- }
514
- this.keyringService.setCurrentAccount(result);
515
- callback && callback();
516
- }
517
- setAccountTie(address, genesisHash) {
518
- if (address !== ALL_ACCOUNT_KEY) {
519
- const pair = keyring.getPair(address);
520
- assert(pair, t('Unable to find account'));
521
- keyring.saveAccountMeta(pair, {
522
- ...pair.meta,
523
- genesisHash
524
- });
525
- }
526
- const accountInfo = this.keyringService.currentAccount;
527
- if (address === accountInfo.address) {
528
- accountInfo.currentGenesisHash = genesisHash || ALL_GENESIS_HASH;
529
- this.setCurrentAccount(accountInfo);
530
- }
531
- return true;
532
- }
533
414
  async switchEvmNetworkByUrl(shortenUrl, networkKey) {
534
415
  const authUrls = await this.getAuthList();
535
416
  const chainInfo = this.chainService.getChainInfoByKey(networkKey);
@@ -622,29 +503,6 @@ export default class KoniState {
622
503
  subscribeSettingsSubject() {
623
504
  return this.settingService.getSubject();
624
505
  }
625
- getAccountAddress() {
626
- const address = this.keyringService.currentAccount.address;
627
- if (address === '') {
628
- return null;
629
- }
630
- return address;
631
- }
632
- getDecodedAddresses(address) {
633
- let checkingAddress = address;
634
- if (!address) {
635
- checkingAddress = this.getAccountAddress();
636
- }
637
- if (!checkingAddress) {
638
- return [];
639
- }
640
- if (checkingAddress === ALL_ACCOUNT_KEY) {
641
- return this.getAllAddresses();
642
- }
643
- return [checkingAddress];
644
- }
645
- getAllAddresses() {
646
- return keyring.getAccounts().map(account => account.address);
647
- }
648
506
  async resetCrowdloanMap(newAddress) {
649
507
  const defaultData = generateDefaultCrowdloanMap();
650
508
  const storedData = await this.getStoredCrowdloan(newAddress);
@@ -658,7 +516,7 @@ export default class KoniState {
658
516
  this.getStaking().then(data => {
659
517
  this.stakingSubject.next(data);
660
518
  }).catch(e => this.logger.warn(e));
661
- const addresses = this.getDecodedAddresses(newAddress);
519
+ const addresses = this.keyringService.context.getDecodedAddresses(newAddress);
662
520
  this.dbService.subscribeStaking(addresses, this.activeChainSlugs, stakings => {
663
521
  this.stakingSubject.next({
664
522
  ready: true,
@@ -690,8 +548,8 @@ export default class KoniState {
690
548
  });
691
549
  }
692
550
  updateCrowdloanStore(networkKey, item) {
693
- const currentAccountInfo = this.keyringService.currentAccount;
694
- this.dbService.updateCrowdloanStore(networkKey, currentAccountInfo.address, item).catch(e => this.logger.warn(e));
551
+ const currentAccountInfo = this.keyringService.context.currentAccount;
552
+ this.dbService.updateCrowdloanStore(networkKey, currentAccountInfo.proxyId, item).catch(e => this.logger.warn(e));
695
553
  }
696
554
  subscribeCrowdloan() {
697
555
  return this.crowdloanSubject;
@@ -846,6 +704,12 @@ export default class KoniState {
846
704
  getEvmApi(networkKey) {
847
705
  return this.chainService.getEvmApi(networkKey);
848
706
  }
707
+ getTonApiMap() {
708
+ return this.chainService.getTonApiMap();
709
+ }
710
+ getTonApi(networkKey) {
711
+ return this.chainService.getTonApi(networkKey);
712
+ }
849
713
  getApiMap() {
850
714
  return {
851
715
  substrate: this.chainService.getSubstrateApiMap(),
@@ -863,7 +727,7 @@ export default class KoniState {
863
727
  return {
864
728
  chainInfoMap: this.chainService.getChainInfoMap(),
865
729
  chainApiMap: this.getApiMap(),
866
- currentAccountInfo: this.keyringService.currentAccount,
730
+ currentAccountInfo: this.keyringService.context.currentAccount,
867
731
  assetRegistry: this.chainService.getAssetRegistry(),
868
732
  chainStateMap: this.chainService.getChainStateMap()
869
733
  };
@@ -970,75 +834,11 @@ export default class KoniState {
970
834
  }
971
835
  return Object.values(_PREDEFINED_SINGLE_MODES).find(item => item.networkKeys.includes(networkKey));
972
836
  }
973
- accountExportPrivateKey({
974
- address,
975
- password
976
- }) {
977
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
978
- const exportedJson = keyring.backupAccount(keyring.getPair(address), password);
979
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
980
- const decoded = decodePair(password, base64Decode(exportedJson.encoded), exportedJson.encoding.type);
981
- return {
982
- privateKey: u8aToHex(decoded.secretKey),
983
- publicKey: u8aToHex(decoded.publicKey)
984
- };
837
+ accountExportPrivateKey(request) {
838
+ return this.keyringService.context.accountExportPrivateKey(request);
985
839
  }
986
- checkPublicAndSecretKey({
987
- publicKey,
988
- secretKey
989
- }) {
990
- try {
991
- const _secret = hexStripPrefix(secretKey);
992
- if (_secret.length === 64) {
993
- const suri = `0x${_secret}`;
994
- const {
995
- phrase
996
- } = keyExtractSuri(suri);
997
- if (isHex(phrase) && isHex(phrase, 256)) {
998
- const type = 'ethereum';
999
- const address = keyring.createFromUri(getSuri(suri, type), {}, type).address;
1000
- return {
1001
- address: address,
1002
- isValid: true,
1003
- isEthereum: true
1004
- };
1005
- } else {
1006
- return {
1007
- address: '',
1008
- isValid: false,
1009
- isEthereum: true
1010
- };
1011
- }
1012
- }
1013
- const keyPair = keyring.keyring.addFromPair({
1014
- publicKey: hexToU8a(publicKey),
1015
- secretKey: hexToU8a(secretKey)
1016
- });
1017
- return {
1018
- address: keyPair.address,
1019
- isValid: true,
1020
- isEthereum: false
1021
- };
1022
- } catch (e) {
1023
- console.error(e);
1024
- return {
1025
- address: '',
1026
- isValid: false,
1027
- isEthereum: false
1028
- };
1029
- }
1030
- }
1031
- getEthKeyring(address, password) {
1032
- return new Promise(resolve => {
1033
- const {
1034
- privateKey
1035
- } = this.accountExportPrivateKey({
1036
- address,
1037
- password: password
1038
- });
1039
- const ethKeyring = new SimpleKeyring([privateKey]);
1040
- resolve(ethKeyring);
1041
- });
840
+ checkPublicAndSecretKey(request) {
841
+ return this.keyringService.context.checkPublicAndSecretKey(request);
1042
842
  }
1043
843
  async evmSign(id, url, method, params, topic) {
1044
844
  let address = '';
@@ -1193,9 +993,15 @@ export default class KoniState {
1193
993
  getConfirmationsQueueSubject() {
1194
994
  return this.requestService.confirmationsQueueSubject;
1195
995
  }
996
+ getConfirmationsQueueSubjectTon() {
997
+ return this.requestService.confirmationsQueueSubjectTon;
998
+ }
1196
999
  async completeConfirmation(request) {
1197
1000
  return await this.requestService.completeConfirmation(request);
1198
1001
  }
1002
+ async completeConfirmationTon(request) {
1003
+ return await this.requestService.completeConfirmationTon(request);
1004
+ }
1199
1005
  async onMV3Update() {
1200
1006
  const migrationStatus = await SWStorage.instance.getItem('mv3_migration');
1201
1007
  if (!migrationStatus || migrationStatus !== 'done') {
@@ -1210,6 +1016,18 @@ export default class KoniState {
1210
1016
  }
1211
1017
  }
1212
1018
  }
1019
+ async storePreviousVersionData(details) {
1020
+ if (details.reason === 'update') {
1021
+ const previousVersion = details.previousVersion;
1022
+ if (!previousVersion) {
1023
+ return;
1024
+ }
1025
+ const storedData = await SWStorage.instance.getItem('previous_version');
1026
+ if (!storedData || !storedData.includes(previousVersion)) {
1027
+ await SWStorage.instance.setItem('previous_version', previousVersion);
1028
+ }
1029
+ }
1030
+ }
1213
1031
  async migrateMV3LocalStorage(data) {
1214
1032
  try {
1215
1033
  const parsedData = JSON.parse(data);
@@ -1240,13 +1058,14 @@ export default class KoniState {
1240
1058
  this.onMV3Install().catch(console.error);
1241
1059
  } else if (details.reason === 'update') {
1242
1060
  this.onMV3Update().catch(console.error);
1061
+ this.storePreviousVersionData(details).catch(console.error);
1243
1062
  }
1244
1063
  }
1245
1064
  async onHandleRemindExportAccount() {
1246
1065
  const remindStatus = await SWStorage.instance.getItem(REMIND_EXPORT_ACCOUNT);
1247
1066
  if (!remindStatus || !remindStatus.includes('done')) {
1248
1067
  const handleRemind = account => {
1249
- if (account.address !== '') {
1068
+ if (account.proxyId !== '') {
1250
1069
  // Open remind tab
1251
1070
  const url = `${chrome.runtime.getURL('index.html')}#/remind-export-account`;
1252
1071
  openPopup(url).then(noop).catch(console.error).finally(() => subscription.unsubscribe());
@@ -1256,7 +1075,7 @@ export default class KoniState {
1256
1075
  }, 3000);
1257
1076
  }
1258
1077
  };
1259
- const subscription = this.keyringService.currentAccountSubject.subscribe(handleRemind);
1078
+ const subscription = this.keyringService.context.observable.currentAccount.subscribe(handleRemind);
1260
1079
  }
1261
1080
  }
1262
1081
  async setStorageFromWS({
@@ -1272,6 +1091,14 @@ export default class KoniState {
1272
1091
  return false;
1273
1092
  }
1274
1093
  }
1094
+ async getStorageFromWS(key) {
1095
+ try {
1096
+ return await SWStorage.instance.getItem(key);
1097
+ } catch (e) {
1098
+ console.error(e);
1099
+ return null;
1100
+ }
1101
+ }
1275
1102
  onCheckToRemindUser() {
1276
1103
  this.onHandleRemindExportAccount().catch(console.error);
1277
1104
  }
@@ -1440,7 +1267,7 @@ export default class KoniState {
1440
1267
  });
1441
1268
  }
1442
1269
  async reloadNft() {
1443
- const currentAddress = this.keyringService.currentAccount.address;
1270
+ const currentAddress = this.keyringService.context.currentAccount.proxyId;
1444
1271
  await this.dbService.removeNftsByAddress(currentAddress);
1445
1272
  return await this.cron.reloadNft();
1446
1273
  }
@@ -1481,7 +1308,6 @@ export default class KoniState {
1481
1308
  // await this.handleResetBalance(ALL_ACCOUNT_KEY, true);
1482
1309
  await this.earningService.resetWallet();
1483
1310
  await this.dbService.resetWallet(resetAll);
1484
- this.accountRefStore.set('refList', []);
1485
1311
  if (resetAll) {
1486
1312
  await this.priceService.setPriceCurrency(DEFAULT_CURRENCY);
1487
1313
  this.settingService.resetWallet();
@@ -1601,7 +1427,7 @@ export default class KoniState {
1601
1427
  subscribeMantaPayBalance() {
1602
1428
  var _this$chainService27, _this$chainService27$;
1603
1429
  let interval;
1604
- (_this$chainService27 = this.chainService) === null || _this$chainService27 === void 0 ? void 0 : (_this$chainService27$ = _this$chainService27.mantaPay) === null || _this$chainService27$ === void 0 ? void 0 : _this$chainService27$.getMantaPayConfig(this.keyringService.currentAccount.address, _DEFAULT_MANTA_ZK_CHAIN).then(config => {
1430
+ (_this$chainService27 = this.chainService) === null || _this$chainService27 === void 0 ? void 0 : (_this$chainService27$ = _this$chainService27.mantaPay) === null || _this$chainService27$ === void 0 ? void 0 : _this$chainService27$.getMantaPayConfig(this.keyringService.context.currentAccount.proxyId, _DEFAULT_MANTA_ZK_CHAIN).then(config => {
1605
1431
  if (config && config.enabled && config.isInitialSync) {
1606
1432
  this.getMantaZkBalance();
1607
1433
  interval = setInterval(this.getMantaZkBalance, MANTA_PAY_BALANCE_INTERVAL);
@@ -1,9 +1,8 @@
1
1
  /// <reference types="chrome" />
2
- import { AuthUrlInfo } from '@subwallet/extension-base/background/handlers/State';
3
2
  import { RequestAddPspToken } from '@subwallet/extension-base/background/KoniTypes';
4
3
  import { MessageTypes, RequestTypes, ResponseTypes } from '@subwallet/extension-base/background/types';
5
4
  import KoniState from '@subwallet/extension-base/koni/background/handlers/State';
6
- import { AuthUrls } from '@subwallet/extension-base/services/request-service/types';
5
+ import { AuthUrlInfo, AuthUrls } from '@subwallet/extension-base/services/request-service/types';
7
6
  import { RequestArguments } from 'web3-core';
8
7
  export declare const chainPatrolCheckUrl: (url: string) => Promise<boolean>;
9
8
  export default class KoniTabs {
@@ -28,7 +27,7 @@ export default class KoniTabs {
28
27
  private createUnsubscriptionHandle;
29
28
  getAuthInfo(url: string, fromList?: AuthUrls): Promise<AuthUrlInfo | undefined>;
30
29
  private accountsListV2;
31
- private accountsSubscribeV2;
30
+ private accountsSubstrateSubscribeV2;
32
31
  private accountsUnsubscribe;
33
32
  private authorizeV2;
34
33
  private getEvmCurrentAccount;