@subwallet/extension-base 1.2.32-0 → 1.3.1

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 (415) 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 -12
  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/TonApi.js +213 -0
  51. package/cjs/services/chain-service/handler/TonChainHandler.js +81 -0
  52. package/cjs/services/chain-service/index.js +32 -8
  53. package/cjs/services/chain-service/utils/index.js +78 -22
  54. package/cjs/services/earning-service/constants/chains.js +3 -1
  55. package/cjs/services/earning-service/handlers/base.js +2 -1
  56. package/cjs/services/earning-service/handlers/lending/base.js +8 -9
  57. package/cjs/services/earning-service/handlers/lending/interlay.js +1 -1
  58. package/cjs/services/earning-service/handlers/liquid-staking/base.js +9 -10
  59. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +1 -1
  60. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +1 -1
  61. package/cjs/services/earning-service/handlers/native-staking/astar.js +2 -2
  62. package/cjs/services/earning-service/handlers/native-staking/base-para.js +13 -13
  63. package/cjs/services/earning-service/handlers/native-staking/base.js +2 -2
  64. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +2 -2
  65. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +15 -15
  66. package/cjs/services/earning-service/handlers/nomination-pool/index.js +14 -14
  67. package/cjs/services/earning-service/handlers/special.js +10 -10
  68. package/cjs/services/earning-service/service.js +26 -17
  69. package/cjs/services/history-service/helpers/subscan-extrinsic-parser-helper.js +1 -1
  70. package/cjs/services/history-service/index.js +29 -11
  71. package/cjs/services/history-service/subscan-history.js +9 -21
  72. package/cjs/services/keyring-service/context/account-context.js +259 -0
  73. package/cjs/services/keyring-service/context/handlers/Base.js +20 -0
  74. package/cjs/services/keyring-service/context/handlers/Derive.js +377 -0
  75. package/cjs/services/keyring-service/context/handlers/Inject.js +75 -0
  76. package/cjs/services/keyring-service/context/handlers/Json.js +348 -0
  77. package/cjs/services/keyring-service/context/handlers/Ledger.js +165 -0
  78. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +218 -0
  79. package/cjs/services/keyring-service/context/handlers/Modify.js +258 -0
  80. package/cjs/services/keyring-service/context/handlers/Secret.js +310 -0
  81. package/cjs/services/keyring-service/context/handlers/index.js +82 -0
  82. package/cjs/services/keyring-service/context/state.js +649 -0
  83. package/cjs/services/keyring-service/context/stores/AccountProxy.js +32 -0
  84. package/cjs/services/keyring-service/context/stores/Base.js +37 -0
  85. package/cjs/services/keyring-service/context/stores/CurrentAccount.js +28 -0
  86. package/cjs/services/keyring-service/context/stores/ModifyPair.js +19 -0
  87. package/cjs/services/keyring-service/context/stores/index.js +38 -0
  88. package/cjs/services/keyring-service/index.js +20 -164
  89. package/cjs/services/migration-service/scripts/index.js +6 -4
  90. package/cjs/services/migration-service/scripts/{MigrateLedgerAccountV2.js → keyring/MigrateLedgerAccountV2.js} +1 -1
  91. package/cjs/services/migration-service/scripts/keyring/MigratePairData.js +28 -0
  92. package/cjs/services/migration-service/scripts/{MigrateRemoveGenesisHash.js → keyring/MigrateRemoveGenesisHash.js} +1 -1
  93. package/cjs/services/request-service/constants.js +5 -3
  94. package/cjs/services/request-service/handler/AuthRequestHandler.js +104 -57
  95. package/cjs/services/request-service/handler/EvmRequestHandler.js +3 -4
  96. package/cjs/services/request-service/handler/SubstrateRequestHandler.js +5 -11
  97. package/cjs/services/request-service/handler/TonRequestHandler.js +175 -0
  98. package/cjs/services/request-service/index.js +24 -5
  99. package/cjs/services/swap-service/handler/asset-hub/handler.js +6 -5
  100. package/cjs/services/swap-service/handler/base-handler.js +8 -8
  101. package/cjs/services/swap-service/handler/chainflip-handler.js +5 -4
  102. package/cjs/services/swap-service/handler/hydradx-handler.js +4 -3
  103. package/cjs/services/swap-service/index.js +4 -4
  104. package/cjs/services/transaction-service/helpers/index.js +6 -1
  105. package/cjs/services/transaction-service/index.js +184 -84
  106. package/cjs/services/wallet-connect-service/handler/PolkadotRequestHandler.js +2 -10
  107. package/cjs/stores/AccountProxyStore.js +18 -0
  108. package/cjs/stores/ModifyPairStore.js +18 -0
  109. package/cjs/stores/index.js +23 -2
  110. package/cjs/types/account/action/add/index.js +38 -0
  111. package/cjs/types/account/action/add/json.js +1 -0
  112. package/cjs/types/account/action/add/mnemonic.js +1 -0
  113. package/cjs/types/account/action/add/secret.js +1 -0
  114. package/cjs/types/account/action/derive.js +1 -0
  115. package/cjs/types/account/action/edit.js +1 -0
  116. package/cjs/types/account/action/export.js +1 -0
  117. package/cjs/types/account/action/index.js +71 -0
  118. package/cjs/types/account/action/subscribe.js +16 -0
  119. package/cjs/types/account/action/validate.js +1 -0
  120. package/cjs/types/account/error/common.js +40 -0
  121. package/cjs/types/account/error/derive.js +55 -0
  122. package/cjs/types/account/error/index.js +27 -0
  123. package/cjs/types/account/index.js +38 -0
  124. package/cjs/types/account/info/current.js +1 -0
  125. package/cjs/types/account/info/index.js +38 -0
  126. package/cjs/types/account/info/keyring.js +90 -0
  127. package/cjs/types/account/info/proxy.js +49 -0
  128. package/cjs/types/error.js +1 -0
  129. package/cjs/types/index.js +44 -0
  130. package/cjs/types/transaction/data.js +1 -0
  131. package/cjs/types/transaction/error.js +53 -0
  132. package/cjs/types/transaction/index.js +49 -0
  133. package/cjs/types/transaction/request.js +1 -0
  134. package/cjs/types/transaction/warning.js +14 -0
  135. package/cjs/types/yield/actions/join/validate.js +1 -16
  136. package/cjs/utils/account/analyze.js +166 -0
  137. package/cjs/utils/account/common.js +121 -0
  138. package/cjs/utils/account/derive/index.js +27 -0
  139. package/cjs/utils/account/derive/info/index.js +27 -0
  140. package/cjs/utils/account/derive/info/solo.js +246 -0
  141. package/cjs/utils/account/derive/info/unified.js +112 -0
  142. package/cjs/utils/account/derive/validate.js +177 -0
  143. package/cjs/utils/account/index.js +49 -0
  144. package/cjs/utils/account/transform.js +566 -0
  145. package/cjs/utils/auth.js +46 -0
  146. package/cjs/utils/getId.js +8 -1
  147. package/cjs/utils/index.js +48 -62
  148. package/constants/environment.d.ts +1 -0
  149. package/constants/environment.js +6 -0
  150. package/constants/index.d.ts +5 -1
  151. package/constants/index.js +5 -2
  152. package/constants/signing.d.ts +4 -0
  153. package/constants/signing.js +15 -0
  154. package/constants/storage.d.ts +1 -0
  155. package/constants/storage.js +2 -1
  156. package/core/consts.d.ts +1 -0
  157. package/core/consts.js +13 -0
  158. package/core/logic-validation/recipientAddress.d.ts +2 -0
  159. package/core/logic-validation/recipientAddress.js +100 -0
  160. package/core/logic-validation/request.js +10 -18
  161. package/core/logic-validation/swap.js +1 -1
  162. package/core/logic-validation/transfer.d.ts +3 -2
  163. package/core/logic-validation/transfer.js +50 -10
  164. package/core/types.d.ts +26 -0
  165. package/core/types.js +19 -0
  166. package/core/utils.d.ts +10 -0
  167. package/core/utils.js +105 -0
  168. package/koni/api/dotsama/crowdloan.js +1 -1
  169. package/koni/api/nft/index.js +14 -5
  170. package/koni/api/staking/bonding/paraChain.js +2 -2
  171. package/koni/api/staking/bonding/relayChain.js +2 -2
  172. package/koni/api/staking/index.js +4 -1
  173. package/koni/background/cron.js +7 -7
  174. package/koni/background/handlers/Extension.d.ts +26 -35
  175. package/koni/background/handlers/Extension.js +337 -1242
  176. package/koni/background/handlers/State.d.ts +12 -19
  177. package/koni/background/handlers/State.js +57 -231
  178. package/koni/background/handlers/Tabs.d.ts +2 -3
  179. package/koni/background/handlers/Tabs.js +105 -61
  180. package/koni/background/subscription.js +5 -5
  181. package/package.json +352 -53
  182. package/packageInfo.js +1 -1
  183. package/page/Accounts.js +2 -5
  184. package/page/SubWalleEvmProvider.js +1 -1
  185. package/page/index.js +2 -1
  186. package/services/balance-service/BalanceMapImpl.d.ts +6 -4
  187. package/services/balance-service/BalanceMapImpl.js +44 -18
  188. package/services/balance-service/helpers/subscribe/index.d.ts +3 -4
  189. package/services/balance-service/helpers/subscribe/index.js +29 -14
  190. package/services/balance-service/helpers/subscribe/ton/consts.d.ts +18 -0
  191. package/services/balance-service/helpers/subscribe/ton/consts.js +28 -0
  192. package/services/balance-service/helpers/subscribe/ton/ton.d.ts +3 -0
  193. package/services/balance-service/helpers/subscribe/ton/ton.js +111 -0
  194. package/services/balance-service/helpers/subscribe/ton/types.d.ts +26 -0
  195. package/services/balance-service/helpers/subscribe/ton/utils.d.ts +32 -0
  196. package/services/balance-service/helpers/subscribe/ton/utils.js +159 -0
  197. package/services/balance-service/index.js +25 -13
  198. package/services/balance-service/transfer/token.d.ts +2 -2
  199. package/services/balance-service/transfer/token.js +18 -1
  200. package/services/balance-service/transfer/ton-transfer.d.ts +25 -0
  201. package/services/balance-service/transfer/ton-transfer.js +127 -0
  202. package/services/buy-service/index.js +5 -1
  203. package/services/buy-service/types.d.ts +2 -2
  204. package/services/chain-service/constants.js +1 -1
  205. package/services/chain-service/handler/TonApi.d.ts +52 -0
  206. package/services/chain-service/handler/TonApi.js +204 -0
  207. package/services/chain-service/handler/TonChainHandler.d.ts +17 -0
  208. package/services/chain-service/handler/TonChainHandler.js +73 -0
  209. package/services/chain-service/index.d.ts +5 -1
  210. package/services/chain-service/index.js +32 -8
  211. package/services/chain-service/types.d.ts +24 -0
  212. package/services/chain-service/utils/index.d.ts +10 -2
  213. package/services/chain-service/utils/index.js +59 -18
  214. package/services/earning-service/constants/chains.d.ts +1 -0
  215. package/services/earning-service/constants/chains.js +1 -0
  216. package/services/earning-service/handlers/base.js +3 -2
  217. package/services/earning-service/handlers/lending/base.js +1 -2
  218. package/services/earning-service/handlers/lending/interlay.js +2 -2
  219. package/services/earning-service/handlers/liquid-staking/base.js +1 -2
  220. package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
  221. package/services/earning-service/handlers/native-staking/amplitude.js +2 -2
  222. package/services/earning-service/handlers/native-staking/astar.js +2 -2
  223. package/services/earning-service/handlers/native-staking/base-para.js +2 -2
  224. package/services/earning-service/handlers/native-staking/base.js +2 -2
  225. package/services/earning-service/handlers/native-staking/para-chain.js +2 -2
  226. package/services/earning-service/handlers/native-staking/relay-chain.js +2 -2
  227. package/services/earning-service/handlers/nomination-pool/index.js +2 -2
  228. package/services/earning-service/handlers/special.js +2 -2
  229. package/services/earning-service/service.js +18 -9
  230. package/services/event-service/types.d.ts +3 -1
  231. package/services/history-service/helpers/subscan-extrinsic-parser-helper.js +1 -1
  232. package/services/history-service/index.d.ts +4 -1
  233. package/services/history-service/index.js +29 -11
  234. package/services/history-service/subscan-history.js +8 -20
  235. package/services/keyring-service/context/account-context.d.ts +87 -0
  236. package/services/keyring-service/context/account-context.js +250 -0
  237. package/services/keyring-service/context/handlers/Base.d.ts +11 -0
  238. package/services/keyring-service/context/handlers/Base.js +13 -0
  239. package/services/keyring-service/context/handlers/Derive.d.ts +29 -0
  240. package/services/keyring-service/context/handlers/Derive.js +365 -0
  241. package/services/keyring-service/context/handlers/Inject.d.ts +11 -0
  242. package/services/keyring-service/context/handlers/Inject.js +69 -0
  243. package/services/keyring-service/context/handlers/Json.d.ts +18 -0
  244. package/services/keyring-service/context/handlers/Json.js +328 -0
  245. package/services/keyring-service/context/handlers/Ledger.d.ts +11 -0
  246. package/services/keyring-service/context/handlers/Ledger.js +158 -0
  247. package/services/keyring-service/context/handlers/Mnemonic.d.ts +15 -0
  248. package/services/keyring-service/context/handlers/Mnemonic.js +206 -0
  249. package/services/keyring-service/context/handlers/Modify.d.ts +16 -0
  250. package/services/keyring-service/context/handlers/Modify.js +250 -0
  251. package/services/keyring-service/context/handlers/Secret.d.ts +16 -0
  252. package/services/keyring-service/context/handlers/Secret.js +299 -0
  253. package/services/keyring-service/context/handlers/index.d.ts +7 -0
  254. package/services/keyring-service/context/handlers/index.js +10 -0
  255. package/services/keyring-service/context/state.d.ts +92 -0
  256. package/services/keyring-service/context/state.js +629 -0
  257. package/services/keyring-service/context/stores/AccountProxy.d.ts +13 -0
  258. package/services/keyring-service/context/stores/AccountProxy.js +25 -0
  259. package/services/keyring-service/context/stores/Base.d.ts +22 -0
  260. package/services/keyring-service/context/stores/Base.js +30 -0
  261. package/services/keyring-service/context/stores/CurrentAccount.d.ts +15 -0
  262. package/services/keyring-service/context/stores/CurrentAccount.js +21 -0
  263. package/services/keyring-service/context/stores/ModifyPair.d.ts +10 -0
  264. package/services/keyring-service/context/stores/ModifyPair.js +12 -0
  265. package/services/keyring-service/context/stores/index.d.ts +3 -0
  266. package/services/keyring-service/context/stores/index.js +6 -0
  267. package/services/keyring-service/index.d.ts +10 -22
  268. package/services/keyring-service/index.js +20 -161
  269. package/services/migration-service/scripts/index.js +6 -4
  270. package/services/migration-service/scripts/{MigrateLedgerAccountV2.d.ts → keyring/MigrateLedgerAccountV2.d.ts} +1 -1
  271. package/services/migration-service/scripts/{MigrateLedgerAccountV2.js → keyring/MigrateLedgerAccountV2.js} +1 -1
  272. package/services/migration-service/scripts/keyring/MigratePairData.d.ts +4 -0
  273. package/services/migration-service/scripts/keyring/MigratePairData.js +20 -0
  274. package/services/migration-service/scripts/{MigrateRemoveGenesisHash.js → keyring/MigrateRemoveGenesisHash.js} +1 -1
  275. package/services/request-service/constants.d.ts +1 -1
  276. package/services/request-service/constants.js +2 -1
  277. package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
  278. package/services/request-service/handler/AuthRequestHandler.js +93 -45
  279. package/services/request-service/handler/EvmRequestHandler.js +3 -4
  280. package/services/request-service/handler/SubstrateRequestHandler.d.ts +2 -2
  281. package/services/request-service/handler/SubstrateRequestHandler.js +5 -11
  282. package/services/request-service/handler/TonRequestHandler.d.ts +17 -0
  283. package/services/request-service/handler/TonRequestHandler.js +168 -0
  284. package/services/request-service/index.d.ts +8 -3
  285. package/services/request-service/index.js +23 -5
  286. package/services/request-service/types.d.ts +6 -3
  287. package/services/swap-service/handler/asset-hub/handler.d.ts +1 -1
  288. package/services/swap-service/handler/asset-hub/handler.js +2 -1
  289. package/services/swap-service/handler/base-handler.js +1 -1
  290. package/services/swap-service/handler/chainflip-handler.d.ts +1 -1
  291. package/services/swap-service/handler/chainflip-handler.js +4 -3
  292. package/services/swap-service/handler/hydradx-handler.d.ts +1 -1
  293. package/services/swap-service/handler/hydradx-handler.js +2 -1
  294. package/services/swap-service/index.js +1 -1
  295. package/services/transaction-service/helpers/index.d.ts +2 -0
  296. package/services/transaction-service/helpers/index.js +4 -0
  297. package/services/transaction-service/index.d.ts +1 -0
  298. package/services/transaction-service/index.js +114 -17
  299. package/services/transaction-service/types.d.ts +4 -2
  300. package/services/wallet-connect-service/handler/PolkadotRequestHandler.js +2 -10
  301. package/stores/AccountProxyStore.d.ts +5 -0
  302. package/stores/AccountProxyStore.js +10 -0
  303. package/stores/Authorize.d.ts +1 -1
  304. package/stores/CurrentAccountStore.d.ts +1 -1
  305. package/stores/ModifyPairStore.d.ts +5 -0
  306. package/stores/ModifyPairStore.js +10 -0
  307. package/stores/index.d.ts +4 -1
  308. package/stores/index.js +5 -2
  309. package/types/account/action/add/index.d.ts +3 -0
  310. package/types/account/action/add/index.js +6 -0
  311. package/types/account/action/add/json.d.ts +29 -0
  312. package/types/account/action/add/json.js +1 -0
  313. package/types/account/action/add/mnemonic.d.ts +77 -0
  314. package/types/account/action/add/mnemonic.js +1 -0
  315. package/types/account/action/add/secret.d.ts +55 -0
  316. package/types/account/action/add/secret.js +1 -0
  317. package/types/account/action/derive.d.ts +77 -0
  318. package/types/account/action/derive.js +1 -0
  319. package/types/account/action/edit.d.ts +31 -0
  320. package/types/account/action/edit.js +1 -0
  321. package/types/account/action/export.d.ts +15 -0
  322. package/types/account/action/export.js +1 -0
  323. package/types/account/action/index.d.ts +6 -0
  324. package/types/account/action/index.js +9 -0
  325. package/types/account/action/subscribe.d.ts +22 -0
  326. package/types/account/action/subscribe.js +10 -0
  327. package/types/account/action/validate.d.ts +17 -0
  328. package/types/account/action/validate.js +1 -0
  329. package/types/account/error/common.d.ts +10 -0
  330. package/types/account/error/common.js +33 -0
  331. package/types/account/error/derive.d.ts +13 -0
  332. package/types/account/error/derive.js +48 -0
  333. package/types/account/error/index.d.ts +2 -0
  334. package/types/account/error/index.js +5 -0
  335. package/types/account/index.d.ts +3 -0
  336. package/types/account/index.js +6 -0
  337. package/types/account/info/current.d.ts +10 -0
  338. package/types/account/info/current.js +1 -0
  339. package/types/account/info/index.d.ts +3 -0
  340. package/types/account/info/index.js +6 -0
  341. package/types/account/info/keyring.d.ts +161 -0
  342. package/types/account/info/keyring.js +88 -0
  343. package/types/account/info/proxy.d.ts +73 -0
  344. package/types/account/info/proxy.js +46 -0
  345. package/types/balance/index.d.ts +4 -1
  346. package/types/buy.d.ts +3 -1
  347. package/types/error.d.ts +8 -0
  348. package/types/error.js +1 -0
  349. package/types/index.d.ts +4 -0
  350. package/types/index.js +5 -1
  351. package/types/transaction/data.d.ts +17 -0
  352. package/types/transaction/data.js +1 -0
  353. package/types/transaction/error.d.ts +39 -0
  354. package/types/transaction/error.js +44 -0
  355. package/types/transaction/index.d.ts +4 -0
  356. package/types/transaction/index.js +7 -0
  357. package/types/transaction/request.d.ts +24 -0
  358. package/types/transaction/request.js +1 -0
  359. package/types/transaction/warning.d.ts +5 -0
  360. package/types/transaction/warning.js +8 -0
  361. package/types/yield/actions/join/submit.d.ts +2 -2
  362. package/types/yield/actions/join/validate.d.ts +1 -6
  363. package/types/yield/actions/join/validate.js +1 -10
  364. package/types/yield/actions/others.d.ts +1 -1
  365. package/utils/account/analyze.d.ts +4 -0
  366. package/utils/account/analyze.js +159 -0
  367. package/utils/account/common.d.ts +16 -0
  368. package/utils/account/common.js +104 -0
  369. package/utils/account/derive/index.d.ts +2 -0
  370. package/utils/account/derive/index.js +5 -0
  371. package/utils/account/derive/info/index.d.ts +2 -0
  372. package/utils/account/derive/info/index.js +5 -0
  373. package/utils/account/derive/info/solo.d.ts +11 -0
  374. package/utils/account/derive/info/solo.js +230 -0
  375. package/utils/account/derive/info/unified.d.ts +7 -0
  376. package/utils/account/derive/info/unified.js +102 -0
  377. package/utils/account/derive/validate.d.ts +8 -0
  378. package/utils/account/derive/validate.js +165 -0
  379. package/utils/account/index.d.ts +4 -0
  380. package/utils/account/index.js +7 -0
  381. package/utils/account/transform.d.ts +41 -0
  382. package/utils/account/transform.js +533 -0
  383. package/utils/auth.d.ts +2 -0
  384. package/utils/auth.js +39 -0
  385. package/utils/canDerive.d.ts +1 -1
  386. package/utils/eth/mergeTransactionAndSignature.d.ts +1 -1
  387. package/utils/getId.d.ts +1 -0
  388. package/utils/getId.js +3 -1
  389. package/utils/index.d.ts +12 -5
  390. package/utils/index.js +28 -47
  391. package/cjs/signers/substrates/KeyringSigner.js +0 -35
  392. package/cjs/signers/substrates/LedgerSigner.js +0 -44
  393. package/cjs/signers/substrates/QrSigner.js +0 -63
  394. package/cjs/signers/types.js +0 -15
  395. package/cjs/signers/web3/QrSigner.js +0 -67
  396. package/cjs/utils/account.js +0 -34
  397. package/signers/substrates/KeyringSigner.d.ts +0 -13
  398. package/signers/substrates/KeyringSigner.js +0 -27
  399. package/signers/substrates/LedgerSigner.d.ts +0 -13
  400. package/signers/substrates/LedgerSigner.js +0 -37
  401. package/signers/substrates/QrSigner.d.ts +0 -20
  402. package/signers/substrates/QrSigner.js +0 -55
  403. package/signers/types.d.ts +0 -34
  404. package/signers/types.js +0 -9
  405. package/signers/web3/QrSigner.d.ts +0 -18
  406. package/signers/web3/QrSigner.js +0 -59
  407. package/types/transaction.d.ts +0 -3
  408. package/utils/account.d.ts +0 -5
  409. package/utils/account.js +0 -24
  410. /package/cjs/{types/transaction.js → services/balance-service/helpers/subscribe/ton/types.js} +0 -0
  411. /package/cjs/services/migration-service/scripts/{MigrateLedgerAccount.js → keyring/MigrateLedgerAccount.js} +0 -0
  412. /package/{types/transaction.js → services/balance-service/helpers/subscribe/ton/types.js} +0 -0
  413. /package/services/migration-service/scripts/{MigrateLedgerAccount.d.ts → keyring/MigrateLedgerAccount.d.ts} +0 -0
  414. /package/services/migration-service/scripts/{MigrateLedgerAccount.js → keyring/MigrateLedgerAccount.js} +0 -0
  415. /package/services/migration-service/scripts/{MigrateRemoveGenesisHash.d.ts → keyring/MigrateRemoveGenesisHash.d.ts} +0 -0
@@ -0,0 +1,566 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transformAddresses = exports.transformAddress = exports.transformAccounts = exports.transformAccount = exports.singleAddressToAccount = exports.pairToAccount = exports.getAccountTransactionActions = exports.getAccountTokenTypes = exports.getAccountSignMode = exports.getAccountChainType = exports.getAccountActions = exports.createAccountProxyId = exports.convertAccountProxyType = exports.combineAllAccountProxy = exports.combineAccountsWithSubjectInfo = exports.combineAccountsWithKeyPair = exports._combineAccounts = void 0;
7
+ var _types = require("@subwallet/chain-list/types");
8
+ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
+ var _constants = require("@subwallet/extension-base/constants");
10
+ var _utils = require("@subwallet/extension-base/services/chain-service/utils");
11
+ var _types2 = require("@subwallet/extension-base/types");
12
+ var _keyring = require("@subwallet/keyring");
13
+ var _types3 = require("@subwallet/keyring/types");
14
+ var _utils2 = require("@subwallet/keyring/utils");
15
+ var _util = require("@polkadot/util");
16
+ var _utilCrypto = require("@polkadot/util-crypto");
17
+ var _derive = require("./derive");
18
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
19
+ // SPDX-License-Identifier: Apache-2.0
20
+
21
+ const createAccountProxyId = (_suri, derivationPath) => {
22
+ let data = _suri;
23
+ if ((0, _utilCrypto.mnemonicValidate)(_suri)) {
24
+ const entropy = (0, _utilCrypto.mnemonicToEntropy)(_suri);
25
+ data = (0, _util.u8aToHex)(entropy);
26
+ if (derivationPath) {
27
+ data = (0, _utilCrypto.blake2AsHex)(data, 256);
28
+ }
29
+ } else if ((0, _utils2.tonMnemonicValidate)(_suri)) {
30
+ const entropy = (0, _keyring.tonMnemonicToEntropy)(_suri);
31
+ data = (0, _util.u8aToHex)(entropy);
32
+ if (derivationPath) {
33
+ data = (0, _utilCrypto.blake2AsHex)(data, 256);
34
+ }
35
+ }
36
+ if (derivationPath) {
37
+ data = (0, _util.hexStripPrefix)(data).concat(derivationPath);
38
+ }
39
+ return (0, _utilCrypto.blake2AsHex)(data, 256);
40
+ };
41
+ exports.createAccountProxyId = createAccountProxyId;
42
+ const getAccountChainType = type => {
43
+ return type ? _types3.EthereumKeypairTypes.includes(type) ? _types2.AccountChainType.ETHEREUM : _types3.TonKeypairTypes.includes(type) ? _types2.AccountChainType.TON : _types3.BitcoinKeypairTypes.includes(type) ? _types2.AccountChainType.BITCOIN : _types2.AccountChainType.SUBSTRATE : _types2.AccountChainType.SUBSTRATE;
44
+ };
45
+ exports.getAccountChainType = getAccountChainType;
46
+ const getAccountSignMode = (address, _meta) => {
47
+ const meta = _meta;
48
+ if (!address || !meta) {
49
+ return _types2.AccountSignMode.UNKNOWN;
50
+ } else {
51
+ if (address === _constants.ALL_ACCOUNT_KEY) {
52
+ return _types2.AccountSignMode.ALL_ACCOUNT;
53
+ } else {
54
+ if (meta.isInjected) {
55
+ return _types2.AccountSignMode.INJECTED;
56
+ }
57
+ if (meta.isExternal) {
58
+ if (meta.isHardware) {
59
+ if (meta.isGeneric) {
60
+ return _types2.AccountSignMode.GENERIC_LEDGER;
61
+ } else {
62
+ return _types2.AccountSignMode.LEGACY_LEDGER;
63
+ }
64
+ } else if (meta.isReadOnly) {
65
+ return _types2.AccountSignMode.READ_ONLY;
66
+ } else {
67
+ return _types2.AccountSignMode.QR;
68
+ }
69
+ } else {
70
+ return _types2.AccountSignMode.PASSWORD;
71
+ }
72
+ }
73
+ }
74
+ };
75
+ exports.getAccountSignMode = getAccountSignMode;
76
+ const getAccountActions = (signMode, networkType, type, _meta, parentAccount) => {
77
+ const result = [];
78
+ const meta = _meta;
79
+
80
+ // JSON
81
+ if (signMode === _types2.AccountSignMode.PASSWORD) {
82
+ result.push(_types2.AccountActions.EXPORT_JSON);
83
+ }
84
+
85
+ // Mnemonic
86
+ if (meta && meta.isMasterAccount) {
87
+ result.push(_types2.AccountActions.EXPORT_MNEMONIC);
88
+ }
89
+
90
+ // Private key
91
+ if (signMode === _types2.AccountSignMode.PASSWORD) {
92
+ if (networkType === _types2.AccountChainType.ETHEREUM || networkType === _types2.AccountChainType.TON) {
93
+ result.push(_types2.AccountActions.EXPORT_PRIVATE_KEY);
94
+ }
95
+ }
96
+
97
+ // QR
98
+ if (signMode === _types2.AccountSignMode.PASSWORD) {
99
+ if (networkType === _types2.AccountChainType.ETHEREUM || networkType === _types2.AccountChainType.SUBSTRATE) {
100
+ result.push(_types2.AccountActions.EXPORT_QR);
101
+ }
102
+ }
103
+
104
+ // Derive
105
+ if (signMode === _types2.AccountSignMode.PASSWORD) {
106
+ const deriveInfo = (0, _derive.getSoloDerivationInfo)(type, meta);
107
+ if (networkType === _types2.AccountChainType.SUBSTRATE) {
108
+ if (deriveInfo.depth === 0) {
109
+ result.push(_types2.AccountActions.DERIVE);
110
+ } else if (deriveInfo.depth === 1) {
111
+ if (parentAccount && parentAccount.accountActions.includes(_types2.AccountActions.DERIVE)) {
112
+ result.push(_types2.AccountActions.DERIVE);
113
+ }
114
+ }
115
+ } else if (type !== 'ton-native') {
116
+ if (deriveInfo.depth === 0) {
117
+ if (meta && meta.isMasterAccount) {
118
+ result.push(_types2.AccountActions.DERIVE);
119
+ }
120
+ } else if (deriveInfo.depth === 1) {
121
+ if (parentAccount && parentAccount.accountActions.includes(_types2.AccountActions.DERIVE)) {
122
+ result.push(_types2.AccountActions.DERIVE);
123
+ }
124
+ }
125
+ }
126
+ }
127
+
128
+ // Ton change wallet contract version
129
+ if (networkType === _types2.AccountChainType.TON && signMode !== _types2.AccountSignMode.READ_ONLY) {
130
+ result.push(_types2.AccountActions.TON_CHANGE_WALLET_CONTRACT_VERSION);
131
+ }
132
+ return result;
133
+ };
134
+ exports.getAccountActions = getAccountActions;
135
+ const BASE_TRANSFER_ACTIONS = [_KoniTypes.ExtrinsicType.TRANSFER_BALANCE, _KoniTypes.ExtrinsicType.TRANSFER_TOKEN];
136
+ const NATIVE_STAKE_ACTIONS = [_KoniTypes.ExtrinsicType.STAKING_BOND, _KoniTypes.ExtrinsicType.STAKING_UNBOND, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW,
137
+ // ExtrinsicType.STAKING_COMPOUNDING,
138
+ // ExtrinsicType.STAKING_CANCEL_COMPOUNDING,
139
+ _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE];
140
+ const POOL_STAKE_ACTIONS = [_KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL, _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD, _KoniTypes.ExtrinsicType.JOIN_YIELD_POOL];
141
+ const EARN_VDOT_ACTIONS = [_KoniTypes.ExtrinsicType.MINT_VDOT, _KoniTypes.ExtrinsicType.REDEEM_VDOT, _KoniTypes.ExtrinsicType.UNSTAKE_VDOT];
142
+ const EARN_LDOT_ACTIONS = [_KoniTypes.ExtrinsicType.MINT_LDOT, _KoniTypes.ExtrinsicType.REDEEM_LDOT, _KoniTypes.ExtrinsicType.UNSTAKE_LDOT];
143
+ const EARN_SDOT_ACTIONS = [_KoniTypes.ExtrinsicType.MINT_SDOT, _KoniTypes.ExtrinsicType.REDEEM_SDOT, _KoniTypes.ExtrinsicType.UNSTAKE_SDOT];
144
+ const EARN_QDOT_ACTIONS = [_KoniTypes.ExtrinsicType.MINT_QDOT, _KoniTypes.ExtrinsicType.REDEEM_QDOT, _KoniTypes.ExtrinsicType.UNSTAKE_QDOT];
145
+ const EARN_STDOT_ACTIONS = [_KoniTypes.ExtrinsicType.MINT_STDOT, _KoniTypes.ExtrinsicType.REDEEM_STDOT, _KoniTypes.ExtrinsicType.UNSTAKE_STDOT];
146
+ const EARN_VMANTA_ACTIONS = [_KoniTypes.ExtrinsicType.MINT_VMANTA, _KoniTypes.ExtrinsicType.REDEEM_VMANTA, _KoniTypes.ExtrinsicType.UNSTAKE_VMANTA];
147
+ const EVM_ACTIONS = [_KoniTypes.ExtrinsicType.TOKEN_SPENDING_APPROVAL, _KoniTypes.ExtrinsicType.EVM_EXECUTE];
148
+ const OTHER_ACTIONS = [_KoniTypes.ExtrinsicType.TRANSFER_XCM, _KoniTypes.ExtrinsicType.SEND_NFT, _KoniTypes.ExtrinsicType.SWAP, _KoniTypes.ExtrinsicType.CROWDLOAN];
149
+ const getAccountTransactionActions = (signMode, networkType, type, _meta, _specialNetwork) => {
150
+ if ([_types2.AccountSignMode.PASSWORD, _types2.AccountSignMode.INJECTED].includes(signMode)) {
151
+ switch (networkType) {
152
+ case _types2.AccountChainType.SUBSTRATE:
153
+ return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...OTHER_ACTIONS];
154
+ case _types2.AccountChainType.ETHEREUM:
155
+ return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...OTHER_ACTIONS, ...EVM_ACTIONS];
156
+ case _types2.AccountChainType.TON:
157
+ return [...BASE_TRANSFER_ACTIONS];
158
+ }
159
+ } else if (signMode === _types2.AccountSignMode.QR) {
160
+ switch (networkType) {
161
+ case _types2.AccountChainType.SUBSTRATE:
162
+ return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...OTHER_ACTIONS];
163
+ case _types2.AccountChainType.ETHEREUM:
164
+ return [...(_constants.isProductionMode ? [] : [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...OTHER_ACTIONS, ...EVM_ACTIONS])];
165
+ case _types2.AccountChainType.TON:
166
+ return [];
167
+ }
168
+ } else if (signMode === _types2.AccountSignMode.GENERIC_LEDGER) {
169
+ switch (networkType) {
170
+ case _types2.AccountChainType.SUBSTRATE:
171
+ return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_VMANTA_ACTIONS,
172
+ // ...EARN_LDOT_ACTIONS,
173
+ // ...EARN_SDOT_ACTIONS,
174
+ // ...EARN_QDOT_ACTIONS,
175
+ ...OTHER_ACTIONS];
176
+ case _types2.AccountChainType.ETHEREUM:
177
+ return [...BASE_TRANSFER_ACTIONS, ...EARN_STDOT_ACTIONS, ...EVM_ACTIONS, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW,
178
+ // For liquid staking
179
+ _KoniTypes.ExtrinsicType.SEND_NFT, _KoniTypes.ExtrinsicType.SWAP];
180
+ case _types2.AccountChainType.TON:
181
+ return [...BASE_TRANSFER_ACTIONS];
182
+ }
183
+ } else if (signMode === _types2.AccountSignMode.LEGACY_LEDGER) {
184
+ // Only for Substrate
185
+ const result = [];
186
+ const specialNetwork = _specialNetwork || '';
187
+ result.push(...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, _KoniTypes.ExtrinsicType.SWAP, _KoniTypes.ExtrinsicType.CROWDLOAN);
188
+
189
+ // NFT
190
+ if (!['astar', 'avail_mainnet'].includes(specialNetwork)) {
191
+ result.push(_KoniTypes.ExtrinsicType.SEND_NFT);
192
+ }
193
+
194
+ // Earning
195
+ if (specialNetwork === 'bifrost') {
196
+ result.push(...EARN_VDOT_ACTIONS, ...EARN_VMANTA_ACTIONS);
197
+ }
198
+
199
+ // if (specialNetwork === 'acala') {
200
+ // result.push(...EARN_LDOT_ACTIONS);
201
+ // }
202
+
203
+ // if (specialNetwork === 'parallel') {
204
+ // result.push(...EARN_SDOT_ACTIONS);
205
+ // }
206
+
207
+ // if (specialNetwork === 'interlay') {
208
+ // result.push(...EARN_QDOT_ACTIONS);
209
+ // }
210
+
211
+ // Transfer XCM
212
+ if (['polkadot', 'kusama', 'statemint', 'statemine'].includes(specialNetwork)) {
213
+ result.push(_KoniTypes.ExtrinsicType.TRANSFER_XCM);
214
+ }
215
+ return result;
216
+ }
217
+ return [];
218
+ };
219
+ exports.getAccountTransactionActions = getAccountTransactionActions;
220
+ const getAccountTokenTypes = type => {
221
+ switch (type) {
222
+ case 'ethereum':
223
+ return [_types._AssetType.NATIVE, _types._AssetType.LOCAL, _types._AssetType.ERC20, _types._AssetType.ERC721];
224
+ case 'sr25519':
225
+ case 'ed25519':
226
+ case 'ecdsa':
227
+ return [_types._AssetType.NATIVE, _types._AssetType.LOCAL, _types._AssetType.PSP22, _types._AssetType.PSP34, _types._AssetType.GRC20, _types._AssetType.ERC721, _types._AssetType.VFT];
228
+ case 'ton':
229
+ case 'ton-native':
230
+ return [_types._AssetType.NATIVE, _types._AssetType.TEP74];
231
+ case 'bitcoin-44':
232
+ case 'bittest-44':
233
+ case 'bitcoin-84':
234
+ case 'bittest-84':
235
+ return [_types._AssetType.NATIVE];
236
+ case 'bitcoin-86':
237
+ case 'bittest-86':
238
+ return [_types._AssetType.NATIVE, _types._AssetType.RUNE, _types._AssetType.BRC20];
239
+ default:
240
+ return [];
241
+ }
242
+ };
243
+
244
+ /**
245
+ * Transforms account data into an `AccountJson` object.
246
+ *
247
+ * @param {string} address - The address of the account.
248
+ * @param {KeypairType} [_type] - The type of the keypair (optional).
249
+ * @param {KeyringPair$Meta} [meta] - Metadata associated with the keyring pair (optional).
250
+ * @param {Record<string, _ChainInfo>} [chainInfoMap] - A map of chain information (optional).
251
+ * If chain information is provided, add full data to account.
252
+ * @returns {AccountJson} The transformed account data.
253
+ *
254
+ * This function performs the following steps:
255
+ * 1. Determines the sign mode of the account based on the address and metadata.
256
+ * 2. Determines the network type of the account based on the keypair type.
257
+ * 3. If chain information is provided, add full data (accountActions, transactionActions) to account.
258
+ * 4. Returns an `AccountJson` object containing the transformed account data.
259
+ */
260
+ exports.getAccountTokenTypes = getAccountTokenTypes;
261
+ const transformAccount = (address, _type, meta, chainInfoMap, parentAccount) => {
262
+ const signMode = getAccountSignMode(address, meta);
263
+ const type = _type || (0, _keyring.getKeypairTypeByAddress)(address);
264
+ const chainType = getAccountChainType(type);
265
+ let specialChain;
266
+ if (!chainInfoMap) {
267
+ return {
268
+ address,
269
+ ...meta,
270
+ type,
271
+ accountActions: [],
272
+ transactionActions: [],
273
+ tokenTypes: [],
274
+ signMode,
275
+ chainType
276
+ };
277
+ }
278
+ const genesisHash = meta === null || meta === void 0 ? void 0 : meta.genesisHash;
279
+ if (chainInfoMap && signMode === _types2.AccountSignMode.LEGACY_LEDGER && genesisHash) {
280
+ const chainInfo = Object.values(chainInfoMap).find(info => (0, _utils._getSubstrateGenesisHash)(info) === genesisHash);
281
+ if (chainInfo) {
282
+ specialChain = chainInfo.slug;
283
+ }
284
+ }
285
+ const accountActions = getAccountActions(signMode, chainType, type, meta, parentAccount);
286
+ const transactionActions = getAccountTransactionActions(signMode, chainType, type, meta, specialChain);
287
+ const tokenTypes = getAccountTokenTypes(type);
288
+
289
+ /* Account actions */
290
+
291
+ return {
292
+ address,
293
+ ...meta,
294
+ type,
295
+ accountActions,
296
+ transactionActions,
297
+ signMode,
298
+ chainType,
299
+ specialChain,
300
+ tokenTypes
301
+ };
302
+ };
303
+ exports.transformAccount = transformAccount;
304
+ const singleAddressToAccount = (_ref, chainInfoMap, parentAccount) => {
305
+ let {
306
+ json: {
307
+ address,
308
+ meta
309
+ },
310
+ type
311
+ } = _ref;
312
+ return transformAccount(address, type, meta, chainInfoMap, parentAccount);
313
+ };
314
+ exports.singleAddressToAccount = singleAddressToAccount;
315
+ const pairToAccount = (_ref2, chainInfoMap, parentAccount) => {
316
+ let {
317
+ address,
318
+ meta,
319
+ type
320
+ } = _ref2;
321
+ return transformAccount(address, type, meta, chainInfoMap, parentAccount);
322
+ };
323
+ exports.pairToAccount = pairToAccount;
324
+ const transformAccounts = accounts => Object.values(accounts).map(data => singleAddressToAccount(data));
325
+ exports.transformAccounts = transformAccounts;
326
+ const transformAddress = (address, meta) => {
327
+ const type = (0, _keyring.getKeypairTypeByAddress)(address);
328
+ const chainType = getAccountChainType(type);
329
+ return {
330
+ address,
331
+ ...meta,
332
+ chainType
333
+ };
334
+ };
335
+ exports.transformAddress = transformAddress;
336
+ const transformAddresses = addresses => Object.values(addresses).map(_ref3 => {
337
+ let {
338
+ json: {
339
+ address,
340
+ meta
341
+ }
342
+ } = _ref3;
343
+ return transformAddress(address, meta);
344
+ });
345
+ exports.transformAddresses = transformAddresses;
346
+ const convertAccountProxyType = accountSignMode => {
347
+ switch (accountSignMode) {
348
+ case _types2.AccountSignMode.GENERIC_LEDGER:
349
+ case _types2.AccountSignMode.LEGACY_LEDGER:
350
+ return _types2.AccountProxyType.LEDGER;
351
+ case _types2.AccountSignMode.QR:
352
+ return _types2.AccountProxyType.QR;
353
+ case _types2.AccountSignMode.READ_ONLY:
354
+ return _types2.AccountProxyType.READ_ONLY;
355
+ case _types2.AccountSignMode.INJECTED:
356
+ return _types2.AccountProxyType.INJECTED;
357
+ case _types2.AccountSignMode.PASSWORD:
358
+ return _types2.AccountProxyType.SOLO;
359
+ case _types2.AccountSignMode.ALL_ACCOUNT:
360
+ return _types2.AccountProxyType.ALL_ACCOUNT;
361
+ case _types2.AccountSignMode.UNKNOWN:
362
+ return _types2.AccountProxyType.UNKNOWN;
363
+ }
364
+ return _types2.AccountProxyType.UNKNOWN;
365
+ };
366
+ exports.convertAccountProxyType = convertAccountProxyType;
367
+ const _combineAccounts = (accounts, modifyPairs, accountProxies) => {
368
+ const temp = {};
369
+ for (const account of accounts) {
370
+ const address = account.address;
371
+ const modifyPair = modifyPairs[address];
372
+ if (modifyPair && modifyPair.accountProxyId) {
373
+ const accountGroup = accountProxies[modifyPair.accountProxyId];
374
+ if (accountGroup) {
375
+ if (!temp[accountGroup.id]) {
376
+ temp[accountGroup.id] = {
377
+ ...accountGroup,
378
+ accounts: [],
379
+ chainTypes: [],
380
+ tokenTypes: [],
381
+ accountActions: []
382
+ };
383
+ }
384
+ account.proxyId = accountGroup.id;
385
+ temp[accountGroup.id].accounts.push(account);
386
+ continue;
387
+ }
388
+ }
389
+ temp[address] = {
390
+ id: address,
391
+ name: account.name || account.address,
392
+ accounts: [{
393
+ ...account,
394
+ proxyId: address
395
+ }],
396
+ chainTypes: [account.chainType],
397
+ parentId: account.parentAddress,
398
+ suri: account.derivationPath || account.suri,
399
+ tokenTypes: account.tokenTypes,
400
+ accountActions: []
401
+ };
402
+ }
403
+ const result = Object.fromEntries(Object.entries(temp).map(_ref4 => {
404
+ let [key, value] = _ref4;
405
+ let accountType = _types2.AccountProxyType.UNKNOWN;
406
+ let chainTypes = [];
407
+ let tokenTypes = [];
408
+ let accountActions = [];
409
+ let specialChain;
410
+ if (value.accounts.length > 1) {
411
+ accountType = _types2.AccountProxyType.UNIFIED;
412
+ chainTypes = Array.from(value.accounts.reduce((rs, account) => rs.add(account.chainType), new Set()));
413
+ tokenTypes = Array.from(value.accounts.reduce((rs, account) => {
414
+ for (const tokenType of account.tokenTypes) {
415
+ rs.add(tokenType);
416
+ }
417
+ return rs;
418
+ }, new Set()));
419
+
420
+ /* Account actions */
421
+
422
+ // Mnemonic
423
+ if (value.accounts.every(account => account.accountActions.includes(_types2.AccountActions.EXPORT_MNEMONIC))) {
424
+ accountActions.push(_types2.AccountActions.EXPORT_MNEMONIC);
425
+ }
426
+
427
+ // // Json
428
+ // if (value.accounts.every((account) => account.accountActions.includes(AccountActions.EXPORT_JSON))) {
429
+ // accountActions.push(AccountActions.EXPORT_JSON);
430
+ // }
431
+
432
+ // Derive
433
+ if (value.accounts.every(account => account.accountActions.includes(_types2.AccountActions.DERIVE))) {
434
+ accountActions.push(_types2.AccountActions.DERIVE);
435
+ }
436
+
437
+ // Ton change wallet contract version
438
+ if (value.accounts.some(account => account.accountActions.includes(_types2.AccountActions.TON_CHANGE_WALLET_CONTRACT_VERSION))) {
439
+ accountActions.push(_types2.AccountActions.TON_CHANGE_WALLET_CONTRACT_VERSION);
440
+ }
441
+ } else if (value.accounts.length === 1) {
442
+ const account = value.accounts[0];
443
+ chainTypes = [account.chainType];
444
+ tokenTypes = account.tokenTypes;
445
+ accountType = convertAccountProxyType(account.signMode);
446
+ accountActions = account.accountActions;
447
+ if (account.chainType === _types2.AccountChainType.TON) {
448
+ accountActions = accountActions.filter(action => action !== _types2.AccountActions.DERIVE);
449
+ }
450
+ switch (account.signMode) {
451
+ case _types2.AccountSignMode.GENERIC_LEDGER:
452
+ case _types2.AccountSignMode.LEGACY_LEDGER:
453
+ specialChain = account.specialChain;
454
+ break;
455
+ }
456
+ }
457
+ return [key, {
458
+ ...value,
459
+ accountType,
460
+ chainTypes,
461
+ specialChain,
462
+ tokenTypes,
463
+ accountActions
464
+ }];
465
+ }));
466
+ const deepSearchParentId = parentId => {
467
+ const parent = result[parentId];
468
+ if (parent && parent.parentId) {
469
+ return deepSearchParentId(parent.parentId);
470
+ }
471
+ return parentId;
472
+ };
473
+ for (const value of Object.values(result)) {
474
+ if (value.parentId) {
475
+ value.parentId = deepSearchParentId(value.parentId);
476
+ }
477
+ }
478
+ const deepSearchChildren = id => {
479
+ const rs = [];
480
+ for (const accountProxy of Object.values(result)) {
481
+ if (accountProxy.parentId === id) {
482
+ rs.push(accountProxy.id);
483
+ }
484
+ }
485
+ return rs;
486
+ };
487
+ for (const value of Object.values(result)) {
488
+ value.children = deepSearchChildren(value.id);
489
+ }
490
+ return result;
491
+ };
492
+
493
+ /**
494
+ * @summary Use for `AccountContext` subscribe account
495
+ * */
496
+ exports._combineAccounts = _combineAccounts;
497
+ const combineAccountsWithSubjectInfo = (pairs, modifyPairs, accountProxies, chainInfoMap) => {
498
+ const accountMap = {};
499
+ const convertAccount = address => {
500
+ const value = pairs[address];
501
+ if (!value) {
502
+ throw new Error(`Unable to retrieve account '${address}'`);
503
+ }
504
+ const {
505
+ json: {
506
+ meta
507
+ }
508
+ } = value;
509
+ if (accountMap[address]) {
510
+ return accountMap[address];
511
+ }
512
+ const {
513
+ parentAddress
514
+ } = meta;
515
+ let parentAccount;
516
+ if (parentAddress) {
517
+ parentAccount = accountMap[parentAddress];
518
+ if (!parentAccount && pairs[parentAddress]) {
519
+ parentAccount = convertAccount(parentAddress);
520
+ }
521
+ }
522
+ const rs = singleAddressToAccount(value, chainInfoMap, parentAccount);
523
+ accountMap[address] = rs;
524
+ return rs;
525
+ };
526
+ for (const address of Object.keys(pairs)) {
527
+ convertAccount(address);
528
+ }
529
+ return _combineAccounts(Object.values(accountMap), modifyPairs, accountProxies);
530
+ };
531
+ exports.combineAccountsWithSubjectInfo = combineAccountsWithSubjectInfo;
532
+ const combineAccountsWithKeyPair = (pairs, modifyPairs, accountProxies, chainInfoMap) => {
533
+ const accounts = Object.values(pairs).map(data => pairToAccount(data, chainInfoMap));
534
+ return _combineAccounts(accounts, modifyPairs || {}, accountProxies || {});
535
+ };
536
+ exports.combineAccountsWithKeyPair = combineAccountsWithKeyPair;
537
+ const combineAllAccountProxy = accountProxies => {
538
+ const chainTypes = new Set();
539
+ const tokenTypes = new Set();
540
+ const specialChain = accountProxies.length === 1 ? accountProxies[0].specialChain : undefined;
541
+ for (const accountProxy of accountProxies) {
542
+ // Have 4 network types, but at the moment, we only support 3 network types
543
+ if (chainTypes.size === 3) {
544
+ break;
545
+ }
546
+ for (const chainType of accountProxy.chainTypes) {
547
+ chainTypes.add(chainType);
548
+ }
549
+ }
550
+ for (const accountProxy of accountProxies) {
551
+ for (const tokenType of accountProxy.tokenTypes) {
552
+ tokenTypes.add(tokenType);
553
+ }
554
+ }
555
+ return {
556
+ id: _constants.ALL_ACCOUNT_KEY,
557
+ name: 'All',
558
+ accounts: [],
559
+ accountActions: [],
560
+ accountType: _types2.AccountProxyType.ALL_ACCOUNT,
561
+ chainTypes: Array.from(chainTypes),
562
+ tokenTypes: Array.from(tokenTypes),
563
+ specialChain
564
+ };
565
+ };
566
+ exports.combineAllAccountProxy = combineAllAccountProxy;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isAddressValidWithAuthType = void 0;
7
+ var _keyring = require("@subwallet/keyring");
8
+ var _types = require("@subwallet/keyring/types");
9
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+
12
+ const isAddressValidWithAuthType = (address, accountAuthTypes) => {
13
+ const keypairType = (0, _keyring.getKeypairTypeByAddress)(address);
14
+ const validTypes = {
15
+ evm: _types.EthereumKeypairTypes,
16
+ substrate: _types.SubstrateKeypairTypes,
17
+ ton: _types.TonKeypairTypes
18
+ };
19
+ return !!(accountAuthTypes !== null && accountAuthTypes !== void 0 && accountAuthTypes.some(authType => {
20
+ var _validTypes$authType;
21
+ return (_validTypes$authType = validTypes[authType]) === null || _validTypes$authType === void 0 ? void 0 : _validTypes$authType.includes(keypairType);
22
+ }));
23
+ };
24
+
25
+ // export const isAddressValidWithAuthType = (address: string, accountAuthType?: AccountAuthType): boolean => {
26
+ // const keypairType = getKeypairTypeByAddress(address);
27
+ //
28
+ // if (!['ethereum', 'bitcoin-84', 'bitcoin-86', 'bittest-84', 'bittest-86'].includes(keypairType)) {
29
+ // return false;
30
+ // }
31
+ //
32
+ // if (accountAuthType === 'both') {
33
+ // return true;
34
+ // }
35
+ //
36
+ // if (accountAuthType === 'evm') {
37
+ // return keypairType === 'ethereum';
38
+ // }
39
+ //
40
+ // if (accountAuthType === 'bitcoin') {
41
+ // return ['bitcoin-86', 'bittest-86', 'bitcoin-84', 'bittest-84'].includes(keypairType);
42
+ // }
43
+ //
44
+ // return false;
45
+ // };
46
+ exports.isAddressValidWithAuthType = isAddressValidWithAuthType;
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.generateRandomString = void 0;
6
7
  exports.getId = getId;
8
+ var _utilCrypto = require("@polkadot/util-crypto");
7
9
  var _defaults = require("../defaults");
8
10
  // Copyright 2019-2022 @polkadot/extension authors & contributors
9
11
  // SPDX-License-Identifier: Apache-2.0
@@ -11,4 +13,9 @@ var _defaults = require("../defaults");
11
13
  let counter = 0;
12
14
  function getId() {
13
15
  return `${_defaults.ID_PREFIX}.${Date.now()}.${++counter}`;
14
- }
16
+ }
17
+ const generateRandomString = function () {
18
+ let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;
19
+ return Buffer.from((0, _utilCrypto.randomAsU8a)(Math.ceil(length / 2))).toString('hex').slice(0, length);
20
+ };
21
+ exports.generateRandomString = generateRandomString;