@subwallet/extension-base 1.0.9-2 → 1.0.11-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 (455) hide show
  1. package/background/KoniTypes.d.ts +6 -0
  2. package/cjs/koni/api/dotsama/transfer.js +16 -7
  3. package/cjs/koni/api/nft/wasm_nft/index.js +4 -1
  4. package/cjs/koni/api/staking/bonding/index.js +3 -0
  5. package/cjs/koni/api/staking/bonding/paraChain.js +3 -2
  6. package/cjs/koni/api/staking/bonding/relayChain.js +3 -2
  7. package/cjs/koni/api/staking/bonding/utils.js +1 -1
  8. package/cjs/koni/api/xcm/polkadotXcm.js +5 -4
  9. package/cjs/koni/api/xcm/xTokens.js +1 -1
  10. package/cjs/koni/api/xcm/xcmPallet.js +1 -1
  11. package/cjs/koni/background/cron.js +4 -29
  12. package/cjs/koni/background/handlers/Extension.js +24 -12
  13. package/cjs/koni/background/handlers/State.js +74 -23
  14. package/cjs/koni/background/subscription.js +4 -2
  15. package/cjs/packageInfo.js +1 -1
  16. package/cjs/services/chain-service/constants.js +5 -2
  17. package/cjs/services/chain-service/handler/AbstractChainHandler.js +93 -0
  18. package/cjs/services/chain-service/handler/EvmApi.js +131 -0
  19. package/cjs/services/chain-service/handler/EvmChainHandler.js +55 -39
  20. package/cjs/services/chain-service/handler/SubstrateApi.js +212 -0
  21. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +76 -199
  22. package/cjs/services/chain-service/helper/api-helper/spec/dataavail.js +152 -0
  23. package/cjs/services/chain-service/index.js +119 -141
  24. package/cjs/services/event-service/index.js +2 -0
  25. package/cjs/services/history-service/index.js +4 -0
  26. package/cjs/services/migration-service/index.js +0 -3
  27. package/cjs/services/migration-service/scripts/MigrateNetworkSettings.js +1 -1
  28. package/cjs/services/price-service/index.js +4 -1
  29. package/cjs/services/storage-service/DatabaseService.js +6 -1
  30. package/cjs/services/storage-service/databases/index.js +3 -0
  31. package/cjs/services/storage-service/db-stores/Metadata.js +26 -0
  32. package/cjs/services/storage-service/db-stores/index.js +7 -0
  33. package/koni/api/dotsama/transfer.js +16 -7
  34. package/koni/api/nft/wasm_nft/index.js +4 -1
  35. package/koni/api/staking/bonding/index.js +3 -0
  36. package/koni/api/staking/bonding/paraChain.js +3 -2
  37. package/koni/api/staking/bonding/relayChain.js +3 -2
  38. package/koni/api/staking/bonding/utils.js +1 -1
  39. package/koni/api/xcm/polkadotXcm.js +5 -4
  40. package/koni/api/xcm/xTokens.js +1 -1
  41. package/koni/api/xcm/xcmPallet.js +1 -1
  42. package/koni/background/cron.d.ts +2 -4
  43. package/koni/background/cron.js +5 -30
  44. package/koni/background/handlers/Extension.d.ts +0 -1
  45. package/koni/background/handlers/Extension.js +24 -12
  46. package/koni/background/handlers/State.d.ts +10 -8
  47. package/koni/background/handlers/State.js +73 -23
  48. package/koni/background/subscription.d.ts +2 -2
  49. package/koni/background/subscription.js +4 -2
  50. package/package.json +38 -668
  51. package/packageInfo.js +1 -1
  52. package/services/chain-service/constants.d.ts +2 -0
  53. package/services/chain-service/constants.js +3 -1
  54. package/services/chain-service/handler/AbstractChainHandler.d.ts +29 -0
  55. package/services/chain-service/handler/AbstractChainHandler.js +83 -0
  56. package/services/chain-service/handler/EvmApi.d.ts +36 -0
  57. package/services/chain-service/handler/EvmApi.js +122 -0
  58. package/services/chain-service/handler/EvmChainHandler.d.ts +15 -9
  59. package/services/chain-service/handler/EvmChainHandler.js +54 -38
  60. package/services/chain-service/handler/SubstrateApi.d.ts +48 -0
  61. package/services/chain-service/handler/SubstrateApi.js +204 -0
  62. package/services/chain-service/handler/SubstrateChainHandler.d.ts +14 -12
  63. package/services/chain-service/handler/SubstrateChainHandler.js +74 -198
  64. package/services/chain-service/handler/types.d.ts +6 -0
  65. package/services/chain-service/helper/api-helper/spec/dataavail.js +145 -0
  66. package/services/chain-service/index.d.ts +16 -16
  67. package/services/chain-service/index.js +109 -133
  68. package/services/chain-service/types.d.ts +8 -5
  69. package/services/event-service/index.d.ts +2 -0
  70. package/services/event-service/index.js +2 -0
  71. package/services/event-service/types.d.ts +4 -0
  72. package/services/history-service/index.js +4 -0
  73. package/services/migration-service/index.js +0 -3
  74. package/services/migration-service/scripts/MigrateNetworkSettings.js +1 -1
  75. package/services/price-service/index.js +4 -1
  76. package/services/storage-service/DatabaseService.d.ts +5 -2
  77. package/services/storage-service/DatabaseService.js +7 -2
  78. package/services/storage-service/databases/index.d.ts +4 -1
  79. package/services/storage-service/databases/index.js +3 -0
  80. package/services/storage-service/db-stores/Metadata.d.ts +8 -0
  81. package/services/storage-service/db-stores/Metadata.js +18 -0
  82. package/services/storage-service/db-stores/index.d.ts +1 -0
  83. package/services/storage-service/db-stores/index.js +1 -0
  84. package/cjs/services/chain-service/helper/api-helper/chain/crust-maxwell.js +0 -108
  85. package/cjs/services/chain-service/helper/api-helper/chain/index.js +0 -17
  86. package/cjs/services/chain-service/helper/api-helper/index.js +0 -35
  87. package/cjs/services/chain-service/helper/api-helper/spec/acala.js +0 -11
  88. package/cjs/services/chain-service/helper/api-helper/spec/ajuna.js +0 -22
  89. package/cjs/services/chain-service/helper/api-helper/spec/altair.js +0 -31
  90. package/cjs/services/chain-service/helper/api-helper/spec/apron.js +0 -24
  91. package/cjs/services/chain-service/helper/api-helper/spec/ares-gladios.js +0 -191
  92. package/cjs/services/chain-service/helper/api-helper/spec/ares-parachain.js +0 -192
  93. package/cjs/services/chain-service/helper/api-helper/spec/astar.js +0 -44
  94. package/cjs/services/chain-service/helper/api-helper/spec/automata.js +0 -43
  95. package/cjs/services/chain-service/helper/api-helper/spec/basilisk.js +0 -139
  96. package/cjs/services/chain-service/helper/api-helper/spec/beresheet.js +0 -12
  97. package/cjs/services/chain-service/helper/api-helper/spec/bifrost-asgard.js +0 -11
  98. package/cjs/services/chain-service/helper/api-helper/spec/bifrost-parachain.js +0 -11
  99. package/cjs/services/chain-service/helper/api-helper/spec/bifrost.js +0 -11
  100. package/cjs/services/chain-service/helper/api-helper/spec/bitcountry-pioneer.js +0 -11
  101. package/cjs/services/chain-service/helper/api-helper/spec/bitcountry-rococo.js +0 -122
  102. package/cjs/services/chain-service/helper/api-helper/spec/bitcountry.js +0 -84
  103. package/cjs/services/chain-service/helper/api-helper/spec/canvas.js +0 -31
  104. package/cjs/services/chain-service/helper/api-helper/spec/centrifuge-chain.js +0 -77
  105. package/cjs/services/chain-service/helper/api-helper/spec/centrifuge.js +0 -31
  106. package/cjs/services/chain-service/helper/api-helper/spec/chainx.js +0 -403
  107. package/cjs/services/chain-service/helper/api-helper/spec/clover-rococo.js +0 -68
  108. package/cjs/services/chain-service/helper/api-helper/spec/clover.js +0 -34
  109. package/cjs/services/chain-service/helper/api-helper/spec/coinversation.js +0 -24
  110. package/cjs/services/chain-service/helper/api-helper/spec/competitors-club.js +0 -84
  111. package/cjs/services/chain-service/helper/api-helper/spec/crab.js +0 -11
  112. package/cjs/services/chain-service/helper/api-helper/spec/crown-sterling.js +0 -55
  113. package/cjs/services/chain-service/helper/api-helper/spec/crust.js +0 -11
  114. package/cjs/services/chain-service/helper/api-helper/spec/cumulus-test-parachain.js +0 -24
  115. package/cjs/services/chain-service/helper/api-helper/spec/darwinia.js +0 -11
  116. package/cjs/services/chain-service/helper/api-helper/spec/datahighway.js +0 -240
  117. package/cjs/services/chain-service/helper/api-helper/spec/dock-mainnet.js +0 -16
  118. package/cjs/services/chain-service/helper/api-helper/spec/dock-testnet.js +0 -16
  119. package/cjs/services/chain-service/helper/api-helper/spec/dolphin.js +0 -29
  120. package/cjs/services/chain-service/helper/api-helper/spec/dotmog.js +0 -65
  121. package/cjs/services/chain-service/helper/api-helper/spec/eave.js +0 -416
  122. package/cjs/services/chain-service/helper/api-helper/spec/edgeware.js +0 -11
  123. package/cjs/services/chain-service/helper/api-helper/spec/encointer-node-notee.js +0 -75
  124. package/cjs/services/chain-service/helper/api-helper/spec/encointer-node-teeproxy.js +0 -52
  125. package/cjs/services/chain-service/helper/api-helper/spec/encointer-para.js +0 -79
  126. package/cjs/services/chain-service/helper/api-helper/spec/equilibrium.js +0 -109
  127. package/cjs/services/chain-service/helper/api-helper/spec/fantour.js +0 -70
  128. package/cjs/services/chain-service/helper/api-helper/spec/galital-parachain.js +0 -65
  129. package/cjs/services/chain-service/helper/api-helper/spec/galital.js +0 -70
  130. package/cjs/services/chain-service/helper/api-helper/spec/galois.js +0 -54
  131. package/cjs/services/chain-service/helper/api-helper/spec/gamepower.js +0 -71
  132. package/cjs/services/chain-service/helper/api-helper/spec/genshiro.js +0 -31
  133. package/cjs/services/chain-service/helper/api-helper/spec/hanonycash.js +0 -33
  134. package/cjs/services/chain-service/helper/api-helper/spec/hydrate.js +0 -59
  135. package/cjs/services/chain-service/helper/api-helper/spec/idavoll.js +0 -24
  136. package/cjs/services/chain-service/helper/api-helper/spec/index.js +0 -272
  137. package/cjs/services/chain-service/helper/api-helper/spec/integritee.js +0 -35
  138. package/cjs/services/chain-service/helper/api-helper/spec/interbtc.js +0 -60
  139. package/cjs/services/chain-service/helper/api-helper/spec/ipse.js +0 -113
  140. package/cjs/services/chain-service/helper/api-helper/spec/jupiter-rococo.js +0 -24
  141. package/cjs/services/chain-service/helper/api-helper/spec/jupiter.js +0 -70
  142. package/cjs/services/chain-service/helper/api-helper/spec/khala.js +0 -11
  143. package/cjs/services/chain-service/helper/api-helper/spec/kilt.js +0 -11
  144. package/cjs/services/chain-service/helper/api-helper/spec/konomi.js +0 -24
  145. package/cjs/services/chain-service/helper/api-helper/spec/kpron.js +0 -24
  146. package/cjs/services/chain-service/helper/api-helper/spec/kulupu.js +0 -64
  147. package/cjs/services/chain-service/helper/api-helper/spec/kusari.js +0 -45
  148. package/cjs/services/chain-service/helper/api-helper/spec/kylin.js +0 -36
  149. package/cjs/services/chain-service/helper/api-helper/spec/laminar.js +0 -11
  150. package/cjs/services/chain-service/helper/api-helper/spec/litentry.js +0 -24
  151. package/cjs/services/chain-service/helper/api-helper/spec/mangata.js +0 -20
  152. package/cjs/services/chain-service/helper/api-helper/spec/manta.js +0 -29
  153. package/cjs/services/chain-service/helper/api-helper/spec/mathchain.js +0 -54
  154. package/cjs/services/chain-service/helper/api-helper/spec/moonbeam.js +0 -11
  155. package/cjs/services/chain-service/helper/api-helper/spec/moonsama-development.js +0 -24
  156. package/cjs/services/chain-service/helper/api-helper/spec/mybank.js +0 -87
  157. package/cjs/services/chain-service/helper/api-helper/spec/neatcoin.js +0 -32
  158. package/cjs/services/chain-service/helper/api-helper/spec/neumann.js +0 -55
  159. package/cjs/services/chain-service/helper/api-helper/spec/nftmart.js +0 -134
  160. package/cjs/services/chain-service/helper/api-helper/spec/nodle.js +0 -53
  161. package/cjs/services/chain-service/helper/api-helper/spec/opal.js +0 -15
  162. package/cjs/services/chain-service/helper/api-helper/spec/opportunity.js +0 -12
  163. package/cjs/services/chain-service/helper/api-helper/spec/origintrail.js +0 -206
  164. package/cjs/services/chain-service/helper/api-helper/spec/pangolin.js +0 -11
  165. package/cjs/services/chain-service/helper/api-helper/spec/pangoro.js +0 -12
  166. package/cjs/services/chain-service/helper/api-helper/spec/parallel.js +0 -11
  167. package/cjs/services/chain-service/helper/api-helper/spec/parami.js +0 -21
  168. package/cjs/services/chain-service/helper/api-helper/spec/phoenix.js +0 -52
  169. package/cjs/services/chain-service/helper/api-helper/spec/pichiu.js +0 -36
  170. package/cjs/services/chain-service/helper/api-helper/spec/plasm.js +0 -54
  171. package/cjs/services/chain-service/helper/api-helper/spec/polkadex.js +0 -32
  172. package/cjs/services/chain-service/helper/api-helper/spec/polkafoundry.js +0 -43
  173. package/cjs/services/chain-service/helper/api-helper/spec/polymesh.js +0 -21
  174. package/cjs/services/chain-service/helper/api-helper/spec/pontem.js +0 -11
  175. package/cjs/services/chain-service/helper/api-helper/spec/prism.js +0 -24
  176. package/cjs/services/chain-service/helper/api-helper/spec/quartz.js +0 -15
  177. package/cjs/services/chain-service/helper/api-helper/spec/realis.js +0 -42
  178. package/cjs/services/chain-service/helper/api-helper/spec/riochain.js +0 -104
  179. package/cjs/services/chain-service/helper/api-helper/spec/robonomics.js +0 -41
  180. package/cjs/services/chain-service/helper/api-helper/spec/shibuya.js +0 -54
  181. package/cjs/services/chain-service/helper/api-helper/spec/shiden.js +0 -54
  182. package/cjs/services/chain-service/helper/api-helper/spec/snowbridge.js +0 -11
  183. package/cjs/services/chain-service/helper/api-helper/spec/soraSubstrate.js +0 -11
  184. package/cjs/services/chain-service/helper/api-helper/spec/spanner.js +0 -501
  185. package/cjs/services/chain-service/helper/api-helper/spec/stafi.js +0 -25
  186. package/cjs/services/chain-service/helper/api-helper/spec/standard.js +0 -12
  187. package/cjs/services/chain-service/helper/api-helper/spec/subdao.js +0 -21
  188. package/cjs/services/chain-service/helper/api-helper/spec/subgame.js +0 -185
  189. package/cjs/services/chain-service/helper/api-helper/spec/subsocial.js +0 -15
  190. package/cjs/services/chain-service/helper/api-helper/spec/subspace.js +0 -127
  191. package/cjs/services/chain-service/helper/api-helper/spec/substrateContractsNode.js +0 -23
  192. package/cjs/services/chain-service/helper/api-helper/spec/swapdex.js +0 -45
  193. package/cjs/services/chain-service/helper/api-helper/spec/ternoa.js +0 -95
  194. package/cjs/services/chain-service/helper/api-helper/spec/trustbase.js +0 -24
  195. package/cjs/services/chain-service/helper/api-helper/spec/uart.js +0 -289
  196. package/cjs/services/chain-service/helper/api-helper/spec/unique.js +0 -124
  197. package/cjs/services/chain-service/helper/api-helper/spec/unitv.js +0 -25
  198. package/cjs/services/chain-service/helper/api-helper/spec/vln-rococo.js +0 -109
  199. package/cjs/services/chain-service/helper/api-helper/spec/vln.js +0 -45
  200. package/cjs/services/chain-service/helper/api-helper/spec/vodka.js +0 -22
  201. package/cjs/services/chain-service/helper/api-helper/spec/web3games.js +0 -43
  202. package/cjs/services/chain-service/helper/api-helper/spec/westlake.js +0 -305
  203. package/cjs/services/chain-service/helper/api-helper/spec/zCloak.js +0 -46
  204. package/cjs/services/chain-service/helper/api-helper/spec/zeitgeist.js +0 -33
  205. package/cjs/services/chain-service/helper/api-helper/spec/zenlink.js +0 -57
  206. package/cjs/services/chain-service/helper/api-helper/spec/zero.js +0 -11
  207. package/cjs/services/chain-service/helper/api-helper/util.js +0 -25
  208. package/services/chain-service/helper/api-helper/chain/crust-maxwell.d.ts +0 -98
  209. package/services/chain-service/helper/api-helper/chain/crust-maxwell.js +0 -103
  210. package/services/chain-service/helper/api-helper/chain/index.d.ts +0 -1943
  211. package/services/chain-service/helper/api-helper/chain/index.js +0 -11
  212. package/services/chain-service/helper/api-helper/index.d.ts +0 -7
  213. package/services/chain-service/helper/api-helper/index.js +0 -18
  214. package/services/chain-service/helper/api-helper/spec/acala.d.ts +0 -42
  215. package/services/chain-service/helper/api-helper/spec/acala.js +0 -5
  216. package/services/chain-service/helper/api-helper/spec/ajuna.js +0 -15
  217. package/services/chain-service/helper/api-helper/spec/altair.d.ts +0 -3
  218. package/services/chain-service/helper/api-helper/spec/altair.js +0 -24
  219. package/services/chain-service/helper/api-helper/spec/apron.d.ts +0 -3
  220. package/services/chain-service/helper/api-helper/spec/apron.js +0 -17
  221. package/services/chain-service/helper/api-helper/spec/ares-gladios.d.ts +0 -3
  222. package/services/chain-service/helper/api-helper/spec/ares-gladios.js +0 -184
  223. package/services/chain-service/helper/api-helper/spec/ares-parachain.d.ts +0 -3
  224. package/services/chain-service/helper/api-helper/spec/ares-parachain.js +0 -185
  225. package/services/chain-service/helper/api-helper/spec/astar.d.ts +0 -3
  226. package/services/chain-service/helper/api-helper/spec/astar.js +0 -37
  227. package/services/chain-service/helper/api-helper/spec/automata.d.ts +0 -3
  228. package/services/chain-service/helper/api-helper/spec/automata.js +0 -36
  229. package/services/chain-service/helper/api-helper/spec/basilisk.d.ts +0 -3
  230. package/services/chain-service/helper/api-helper/spec/basilisk.js +0 -132
  231. package/services/chain-service/helper/api-helper/spec/beresheet.d.ts +0 -3
  232. package/services/chain-service/helper/api-helper/spec/beresheet.js +0 -9
  233. package/services/chain-service/helper/api-helper/spec/bifrost-asgard.d.ts +0 -3
  234. package/services/chain-service/helper/api-helper/spec/bifrost-asgard.js +0 -5
  235. package/services/chain-service/helper/api-helper/spec/bifrost-parachain.d.ts +0 -3
  236. package/services/chain-service/helper/api-helper/spec/bifrost-parachain.js +0 -5
  237. package/services/chain-service/helper/api-helper/spec/bifrost.d.ts +0 -3
  238. package/services/chain-service/helper/api-helper/spec/bifrost.js +0 -5
  239. package/services/chain-service/helper/api-helper/spec/bitcountry-pioneer.d.ts +0 -2
  240. package/services/chain-service/helper/api-helper/spec/bitcountry-pioneer.js +0 -5
  241. package/services/chain-service/helper/api-helper/spec/bitcountry-rococo.d.ts +0 -3
  242. package/services/chain-service/helper/api-helper/spec/bitcountry-rococo.js +0 -115
  243. package/services/chain-service/helper/api-helper/spec/bitcountry.d.ts +0 -3
  244. package/services/chain-service/helper/api-helper/spec/bitcountry.js +0 -77
  245. package/services/chain-service/helper/api-helper/spec/canvas.d.ts +0 -3
  246. package/services/chain-service/helper/api-helper/spec/canvas.js +0 -24
  247. package/services/chain-service/helper/api-helper/spec/centrifuge-chain.d.ts +0 -3
  248. package/services/chain-service/helper/api-helper/spec/centrifuge-chain.js +0 -70
  249. package/services/chain-service/helper/api-helper/spec/centrifuge.d.ts +0 -3
  250. package/services/chain-service/helper/api-helper/spec/centrifuge.js +0 -24
  251. package/services/chain-service/helper/api-helper/spec/chainx.d.ts +0 -3
  252. package/services/chain-service/helper/api-helper/spec/chainx.js +0 -396
  253. package/services/chain-service/helper/api-helper/spec/clover-rococo.d.ts +0 -3
  254. package/services/chain-service/helper/api-helper/spec/clover-rococo.js +0 -61
  255. package/services/chain-service/helper/api-helper/spec/clover.d.ts +0 -3
  256. package/services/chain-service/helper/api-helper/spec/clover.js +0 -27
  257. package/services/chain-service/helper/api-helper/spec/coinversation.d.ts +0 -3
  258. package/services/chain-service/helper/api-helper/spec/coinversation.js +0 -17
  259. package/services/chain-service/helper/api-helper/spec/competitors-club.d.ts +0 -3
  260. package/services/chain-service/helper/api-helper/spec/competitors-club.js +0 -77
  261. package/services/chain-service/helper/api-helper/spec/crab.d.ts +0 -2
  262. package/services/chain-service/helper/api-helper/spec/crab.js +0 -5
  263. package/services/chain-service/helper/api-helper/spec/crown-sterling.d.ts +0 -3
  264. package/services/chain-service/helper/api-helper/spec/crown-sterling.js +0 -48
  265. package/services/chain-service/helper/api-helper/spec/crust.d.ts +0 -3
  266. package/services/chain-service/helper/api-helper/spec/crust.js +0 -5
  267. package/services/chain-service/helper/api-helper/spec/cumulus-test-parachain.d.ts +0 -3
  268. package/services/chain-service/helper/api-helper/spec/cumulus-test-parachain.js +0 -17
  269. package/services/chain-service/helper/api-helper/spec/darwinia.d.ts +0 -2
  270. package/services/chain-service/helper/api-helper/spec/darwinia.js +0 -5
  271. package/services/chain-service/helper/api-helper/spec/datahighway.d.ts +0 -3
  272. package/services/chain-service/helper/api-helper/spec/datahighway.js +0 -233
  273. package/services/chain-service/helper/api-helper/spec/dock-mainnet.d.ts +0 -3
  274. package/services/chain-service/helper/api-helper/spec/dock-mainnet.js +0 -9
  275. package/services/chain-service/helper/api-helper/spec/dock-testnet.d.ts +0 -3
  276. package/services/chain-service/helper/api-helper/spec/dock-testnet.js +0 -9
  277. package/services/chain-service/helper/api-helper/spec/dolphin.d.ts +0 -3
  278. package/services/chain-service/helper/api-helper/spec/dolphin.js +0 -22
  279. package/services/chain-service/helper/api-helper/spec/dotmog.d.ts +0 -3
  280. package/services/chain-service/helper/api-helper/spec/dotmog.js +0 -58
  281. package/services/chain-service/helper/api-helper/spec/eave.d.ts +0 -3
  282. package/services/chain-service/helper/api-helper/spec/eave.js +0 -409
  283. package/services/chain-service/helper/api-helper/spec/edgeware.d.ts +0 -3
  284. package/services/chain-service/helper/api-helper/spec/edgeware.js +0 -7
  285. package/services/chain-service/helper/api-helper/spec/encointer-node-notee.d.ts +0 -3
  286. package/services/chain-service/helper/api-helper/spec/encointer-node-notee.js +0 -68
  287. package/services/chain-service/helper/api-helper/spec/encointer-node-teeproxy.d.ts +0 -3
  288. package/services/chain-service/helper/api-helper/spec/encointer-node-teeproxy.js +0 -45
  289. package/services/chain-service/helper/api-helper/spec/encointer-para.d.ts +0 -3
  290. package/services/chain-service/helper/api-helper/spec/encointer-para.js +0 -72
  291. package/services/chain-service/helper/api-helper/spec/equilibrium.d.ts +0 -8
  292. package/services/chain-service/helper/api-helper/spec/equilibrium.js +0 -97
  293. package/services/chain-service/helper/api-helper/spec/fantour.d.ts +0 -3
  294. package/services/chain-service/helper/api-helper/spec/fantour.js +0 -63
  295. package/services/chain-service/helper/api-helper/spec/galital-parachain.d.ts +0 -3
  296. package/services/chain-service/helper/api-helper/spec/galital-parachain.js +0 -58
  297. package/services/chain-service/helper/api-helper/spec/galital.d.ts +0 -3
  298. package/services/chain-service/helper/api-helper/spec/galital.js +0 -63
  299. package/services/chain-service/helper/api-helper/spec/galois.d.ts +0 -3
  300. package/services/chain-service/helper/api-helper/spec/galois.js +0 -47
  301. package/services/chain-service/helper/api-helper/spec/gamepower.d.ts +0 -3
  302. package/services/chain-service/helper/api-helper/spec/gamepower.js +0 -64
  303. package/services/chain-service/helper/api-helper/spec/genshiro.d.ts +0 -3
  304. package/services/chain-service/helper/api-helper/spec/genshiro.js +0 -24
  305. package/services/chain-service/helper/api-helper/spec/hanonycash.d.ts +0 -3
  306. package/services/chain-service/helper/api-helper/spec/hanonycash.js +0 -26
  307. package/services/chain-service/helper/api-helper/spec/hydrate.d.ts +0 -3
  308. package/services/chain-service/helper/api-helper/spec/hydrate.js +0 -52
  309. package/services/chain-service/helper/api-helper/spec/idavoll.d.ts +0 -3
  310. package/services/chain-service/helper/api-helper/spec/idavoll.js +0 -17
  311. package/services/chain-service/helper/api-helper/spec/index.d.ts +0 -3
  312. package/services/chain-service/helper/api-helper/spec/index.js +0 -264
  313. package/services/chain-service/helper/api-helper/spec/integritee.d.ts +0 -3
  314. package/services/chain-service/helper/api-helper/spec/integritee.js +0 -28
  315. package/services/chain-service/helper/api-helper/spec/interbtc.d.ts +0 -7
  316. package/services/chain-service/helper/api-helper/spec/interbtc.js +0 -50
  317. package/services/chain-service/helper/api-helper/spec/ipse.d.ts +0 -3
  318. package/services/chain-service/helper/api-helper/spec/ipse.js +0 -106
  319. package/services/chain-service/helper/api-helper/spec/jupiter-rococo.d.ts +0 -3
  320. package/services/chain-service/helper/api-helper/spec/jupiter-rococo.js +0 -17
  321. package/services/chain-service/helper/api-helper/spec/jupiter.d.ts +0 -3
  322. package/services/chain-service/helper/api-helper/spec/jupiter.js +0 -63
  323. package/services/chain-service/helper/api-helper/spec/khala.d.ts +0 -3
  324. package/services/chain-service/helper/api-helper/spec/khala.js +0 -5
  325. package/services/chain-service/helper/api-helper/spec/kilt.d.ts +0 -3
  326. package/services/chain-service/helper/api-helper/spec/kilt.js +0 -5
  327. package/services/chain-service/helper/api-helper/spec/konomi.d.ts +0 -3
  328. package/services/chain-service/helper/api-helper/spec/konomi.js +0 -17
  329. package/services/chain-service/helper/api-helper/spec/kpron.d.ts +0 -3
  330. package/services/chain-service/helper/api-helper/spec/kpron.js +0 -17
  331. package/services/chain-service/helper/api-helper/spec/kulupu.d.ts +0 -3
  332. package/services/chain-service/helper/api-helper/spec/kulupu.js +0 -57
  333. package/services/chain-service/helper/api-helper/spec/kusari.d.ts +0 -3
  334. package/services/chain-service/helper/api-helper/spec/kusari.js +0 -38
  335. package/services/chain-service/helper/api-helper/spec/kylin.d.ts +0 -3
  336. package/services/chain-service/helper/api-helper/spec/kylin.js +0 -29
  337. package/services/chain-service/helper/api-helper/spec/laminar.d.ts +0 -3
  338. package/services/chain-service/helper/api-helper/spec/laminar.js +0 -5
  339. package/services/chain-service/helper/api-helper/spec/litentry.d.ts +0 -3
  340. package/services/chain-service/helper/api-helper/spec/litentry.js +0 -17
  341. package/services/chain-service/helper/api-helper/spec/mangata.d.ts +0 -3
  342. package/services/chain-service/helper/api-helper/spec/mangata.js +0 -13
  343. package/services/chain-service/helper/api-helper/spec/manta.d.ts +0 -3
  344. package/services/chain-service/helper/api-helper/spec/manta.js +0 -22
  345. package/services/chain-service/helper/api-helper/spec/mathchain.d.ts +0 -3
  346. package/services/chain-service/helper/api-helper/spec/mathchain.js +0 -47
  347. package/services/chain-service/helper/api-helper/spec/moonbeam.d.ts +0 -2
  348. package/services/chain-service/helper/api-helper/spec/moonbeam.js +0 -5
  349. package/services/chain-service/helper/api-helper/spec/moonsama-development.d.ts +0 -3
  350. package/services/chain-service/helper/api-helper/spec/moonsama-development.js +0 -17
  351. package/services/chain-service/helper/api-helper/spec/mybank.d.ts +0 -3
  352. package/services/chain-service/helper/api-helper/spec/mybank.js +0 -80
  353. package/services/chain-service/helper/api-helper/spec/neatcoin.d.ts +0 -3
  354. package/services/chain-service/helper/api-helper/spec/neatcoin.js +0 -25
  355. package/services/chain-service/helper/api-helper/spec/neumann.d.ts +0 -3
  356. package/services/chain-service/helper/api-helper/spec/neumann.js +0 -48
  357. package/services/chain-service/helper/api-helper/spec/nftmart.d.ts +0 -3
  358. package/services/chain-service/helper/api-helper/spec/nftmart.js +0 -127
  359. package/services/chain-service/helper/api-helper/spec/nodle.d.ts +0 -3
  360. package/services/chain-service/helper/api-helper/spec/nodle.js +0 -46
  361. package/services/chain-service/helper/api-helper/spec/opal.d.ts +0 -3
  362. package/services/chain-service/helper/api-helper/spec/opal.js +0 -9
  363. package/services/chain-service/helper/api-helper/spec/opportunity.d.ts +0 -3
  364. package/services/chain-service/helper/api-helper/spec/opportunity.js +0 -5
  365. package/services/chain-service/helper/api-helper/spec/origintrail.d.ts +0 -5
  366. package/services/chain-service/helper/api-helper/spec/origintrail.js +0 -198
  367. package/services/chain-service/helper/api-helper/spec/pangolin.d.ts +0 -2
  368. package/services/chain-service/helper/api-helper/spec/pangolin.js +0 -5
  369. package/services/chain-service/helper/api-helper/spec/pangoro.d.ts +0 -2
  370. package/services/chain-service/helper/api-helper/spec/pangoro.js +0 -7
  371. package/services/chain-service/helper/api-helper/spec/parallel.d.ts +0 -14
  372. package/services/chain-service/helper/api-helper/spec/parallel.js +0 -5
  373. package/services/chain-service/helper/api-helper/spec/parami.d.ts +0 -3
  374. package/services/chain-service/helper/api-helper/spec/parami.js +0 -14
  375. package/services/chain-service/helper/api-helper/spec/phoenix.d.ts +0 -3
  376. package/services/chain-service/helper/api-helper/spec/phoenix.js +0 -45
  377. package/services/chain-service/helper/api-helper/spec/pichiu.d.ts +0 -3
  378. package/services/chain-service/helper/api-helper/spec/pichiu.js +0 -29
  379. package/services/chain-service/helper/api-helper/spec/plasm.d.ts +0 -3
  380. package/services/chain-service/helper/api-helper/spec/plasm.js +0 -47
  381. package/services/chain-service/helper/api-helper/spec/polkadex.d.ts +0 -3
  382. package/services/chain-service/helper/api-helper/spec/polkadex.js +0 -25
  383. package/services/chain-service/helper/api-helper/spec/polkafoundry.d.ts +0 -3
  384. package/services/chain-service/helper/api-helper/spec/polkafoundry.js +0 -36
  385. package/services/chain-service/helper/api-helper/spec/polymesh.d.ts +0 -3
  386. package/services/chain-service/helper/api-helper/spec/polymesh.js +0 -13
  387. package/services/chain-service/helper/api-helper/spec/pontem.d.ts +0 -2
  388. package/services/chain-service/helper/api-helper/spec/pontem.js +0 -5
  389. package/services/chain-service/helper/api-helper/spec/prism.d.ts +0 -3
  390. package/services/chain-service/helper/api-helper/spec/prism.js +0 -17
  391. package/services/chain-service/helper/api-helper/spec/quartz.d.ts +0 -3
  392. package/services/chain-service/helper/api-helper/spec/quartz.js +0 -9
  393. package/services/chain-service/helper/api-helper/spec/realis.d.ts +0 -3
  394. package/services/chain-service/helper/api-helper/spec/realis.js +0 -35
  395. package/services/chain-service/helper/api-helper/spec/riochain.d.ts +0 -3
  396. package/services/chain-service/helper/api-helper/spec/riochain.js +0 -97
  397. package/services/chain-service/helper/api-helper/spec/robonomics.d.ts +0 -3
  398. package/services/chain-service/helper/api-helper/spec/robonomics.js +0 -34
  399. package/services/chain-service/helper/api-helper/spec/shibuya.d.ts +0 -3
  400. package/services/chain-service/helper/api-helper/spec/shibuya.js +0 -47
  401. package/services/chain-service/helper/api-helper/spec/shiden.d.ts +0 -3
  402. package/services/chain-service/helper/api-helper/spec/shiden.js +0 -47
  403. package/services/chain-service/helper/api-helper/spec/snowbridge.d.ts +0 -2
  404. package/services/chain-service/helper/api-helper/spec/snowbridge.js +0 -5
  405. package/services/chain-service/helper/api-helper/spec/soraSubstrate.d.ts +0 -3
  406. package/services/chain-service/helper/api-helper/spec/soraSubstrate.js +0 -5
  407. package/services/chain-service/helper/api-helper/spec/spanner.d.ts +0 -3
  408. package/services/chain-service/helper/api-helper/spec/spanner.js +0 -494
  409. package/services/chain-service/helper/api-helper/spec/stafi.d.ts +0 -3
  410. package/services/chain-service/helper/api-helper/spec/stafi.js +0 -18
  411. package/services/chain-service/helper/api-helper/spec/standard.d.ts +0 -3
  412. package/services/chain-service/helper/api-helper/spec/standard.js +0 -5
  413. package/services/chain-service/helper/api-helper/spec/subdao.d.ts +0 -3
  414. package/services/chain-service/helper/api-helper/spec/subdao.js +0 -14
  415. package/services/chain-service/helper/api-helper/spec/subgame.d.ts +0 -3
  416. package/services/chain-service/helper/api-helper/spec/subgame.js +0 -178
  417. package/services/chain-service/helper/api-helper/spec/subsocial.d.ts +0 -2
  418. package/services/chain-service/helper/api-helper/spec/subsocial.js +0 -8
  419. package/services/chain-service/helper/api-helper/spec/subspace.d.ts +0 -0
  420. package/services/chain-service/helper/api-helper/spec/subspace.js +0 -126
  421. package/services/chain-service/helper/api-helper/spec/substrateContractsNode.d.ts +0 -3
  422. package/services/chain-service/helper/api-helper/spec/substrateContractsNode.js +0 -16
  423. package/services/chain-service/helper/api-helper/spec/swapdex.d.ts +0 -3
  424. package/services/chain-service/helper/api-helper/spec/swapdex.js +0 -38
  425. package/services/chain-service/helper/api-helper/spec/ternoa.d.ts +0 -3
  426. package/services/chain-service/helper/api-helper/spec/ternoa.js +0 -88
  427. package/services/chain-service/helper/api-helper/spec/trustbase.d.ts +0 -3
  428. package/services/chain-service/helper/api-helper/spec/trustbase.js +0 -17
  429. package/services/chain-service/helper/api-helper/spec/uart.d.ts +0 -3
  430. package/services/chain-service/helper/api-helper/spec/uart.js +0 -282
  431. package/services/chain-service/helper/api-helper/spec/unique.d.ts +0 -3
  432. package/services/chain-service/helper/api-helper/spec/unique.js +0 -117
  433. package/services/chain-service/helper/api-helper/spec/unitv.d.ts +0 -3
  434. package/services/chain-service/helper/api-helper/spec/unitv.js +0 -18
  435. package/services/chain-service/helper/api-helper/spec/vln-rococo.d.ts +0 -3
  436. package/services/chain-service/helper/api-helper/spec/vln-rococo.js +0 -102
  437. package/services/chain-service/helper/api-helper/spec/vln.d.ts +0 -3
  438. package/services/chain-service/helper/api-helper/spec/vln.js +0 -38
  439. package/services/chain-service/helper/api-helper/spec/vodka.d.ts +0 -3
  440. package/services/chain-service/helper/api-helper/spec/vodka.js +0 -15
  441. package/services/chain-service/helper/api-helper/spec/web3games.d.ts +0 -3
  442. package/services/chain-service/helper/api-helper/spec/web3games.js +0 -36
  443. package/services/chain-service/helper/api-helper/spec/westlake.d.ts +0 -3
  444. package/services/chain-service/helper/api-helper/spec/westlake.js +0 -298
  445. package/services/chain-service/helper/api-helper/spec/zCloak.d.ts +0 -3
  446. package/services/chain-service/helper/api-helper/spec/zCloak.js +0 -39
  447. package/services/chain-service/helper/api-helper/spec/zeitgeist.d.ts +0 -3
  448. package/services/chain-service/helper/api-helper/spec/zeitgeist.js +0 -24
  449. package/services/chain-service/helper/api-helper/spec/zenlink.d.ts +0 -3
  450. package/services/chain-service/helper/api-helper/spec/zenlink.js +0 -50
  451. package/services/chain-service/helper/api-helper/spec/zero.d.ts +0 -3
  452. package/services/chain-service/helper/api-helper/spec/zero.js +0 -5
  453. package/services/chain-service/helper/api-helper/util.d.ts +0 -5
  454. package/services/chain-service/helper/api-helper/util.js +0 -15
  455. /package/services/chain-service/helper/api-helper/spec/{ajuna.d.ts → dataavail.d.ts} +0 -0
@@ -0,0 +1,145 @@
1
+ // Copyright 2017-2021 @polkadot/apps-config authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ // import type {H256} from '@polkadot/types/interfaces';
4
+ // eslint-disable-next-line header/header
5
+
6
+ // structs need to be in order
7
+ /* eslint-disable sort-keys */
8
+
9
+ const definitions = {
10
+ rpc: {
11
+ kate: {
12
+ blockLength: {
13
+ description: 'Get Block Length',
14
+ params: [{
15
+ name: 'at',
16
+ type: 'Hash',
17
+ isOptional: true
18
+ }],
19
+ type: 'BlockLength'
20
+ },
21
+ queryProof: {
22
+ description: 'Generate the kate proof for the given `cells`',
23
+ params: [{
24
+ name: 'cells',
25
+ type: 'Vec<Cell>'
26
+ }, {
27
+ name: 'at',
28
+ type: 'Hash',
29
+ isOptional: true
30
+ }],
31
+ type: 'Vec<u8>'
32
+ },
33
+ queryAppData: {
34
+ description: 'Fetches app data rows for the given app',
35
+ params: [{
36
+ name: 'app_id',
37
+ type: 'AppId'
38
+ }, {
39
+ name: 'at',
40
+ type: 'Hash',
41
+ isOptional: true
42
+ }],
43
+ type: 'Vec<Option<Vec<u8>>>'
44
+ },
45
+ queryDataProof: {
46
+ description: 'Generate the data proof for the given `index`',
47
+ params: [{
48
+ name: 'data_index',
49
+ type: 'u32'
50
+ }, {
51
+ name: 'at',
52
+ type: 'Hash',
53
+ isOptional: true
54
+ }],
55
+ type: 'DataProof'
56
+ }
57
+ }
58
+ },
59
+ types: [{
60
+ // on all versions
61
+ minmax: [0, undefined],
62
+ types: {
63
+ AppId: 'Compact<u32>',
64
+ DataLookupIndexItem: {
65
+ appId: 'AppId',
66
+ start: 'Compact<u32>'
67
+ },
68
+ DataLookup: {
69
+ size: 'Compact<u32>',
70
+ index: 'Vec<DataLookupIndexItem>'
71
+ },
72
+ KateCommitment: {
73
+ rows: 'Compact<u16>',
74
+ cols: 'Compact<u16>',
75
+ dataRoot: 'H256',
76
+ commitment: 'Vec<u8>'
77
+ },
78
+ V1HeaderExtension: {
79
+ commitment: 'KateCommitment',
80
+ appLookup: 'DataLookup'
81
+ },
82
+ VTHeaderExtension: {
83
+ newField: 'Vec<u8>',
84
+ commitment: 'KateCommitment',
85
+ appLookup: 'DataLookup'
86
+ },
87
+ HeaderExtension: {
88
+ _enum: {
89
+ V1: 'V1HeaderExtension',
90
+ VTest: 'VTHeaderExtension'
91
+ }
92
+ },
93
+ DaHeader: {
94
+ parentHash: 'Hash',
95
+ number: 'Compact<BlockNumber>',
96
+ stateRoot: 'Hash',
97
+ extrinsicsRoot: 'Hash',
98
+ digest: 'Digest',
99
+ extension: 'HeaderExtension'
100
+ },
101
+ Header: 'DaHeader',
102
+ CheckAppIdExtra: {
103
+ appId: 'AppId'
104
+ },
105
+ CheckAppIdTypes: {},
106
+ CheckAppId: {
107
+ extra: 'CheckAppIdExtra',
108
+ types: 'CheckAppIdTypes'
109
+ },
110
+ BlockLengthColumns: 'Compact<u32>',
111
+ BlockLengthRows: 'Compact<u32>',
112
+ BlockLength: {
113
+ max: 'PerDispatchClass',
114
+ cols: 'BlockLengthColumns',
115
+ rows: 'BlockLengthRows',
116
+ chunkSize: 'Compact<u32>'
117
+ },
118
+ PerDispatchClass: {
119
+ normal: 'u32',
120
+ operational: 'u32',
121
+ mandatory: 'u32'
122
+ },
123
+ DataProof: {
124
+ root: 'H256',
125
+ proof: 'Vec<H256>',
126
+ numberOfLeaves: 'Compact<u32>',
127
+ leaf_index: 'Compact<u32>',
128
+ leaf: 'H256'
129
+ },
130
+ Cell: {
131
+ row: 'BlockLengthRows',
132
+ col: 'BlockLengthColumns'
133
+ }
134
+ }
135
+ }],
136
+ signedExtensions: {
137
+ CheckAppId: {
138
+ extrinsic: {
139
+ appId: 'AppId'
140
+ },
141
+ payload: {}
142
+ }
143
+ }
144
+ };
145
+ export default definitions;
@@ -1,7 +1,9 @@
1
1
  import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _MultiChainAsset } from '@subwallet/chain-list/types';
2
2
  import { AssetSetting, ValidateNetworkResponse } from '@subwallet/extension-base/background/KoniTypes';
3
- import { _ChainConnectionStatus, _ChainState, _EvmApi, _NetworkUpsertParams, _SubstrateApi, _ValidateCustomAssetRequest, _ValidateCustomAssetResponse } from '@subwallet/extension-base/services/chain-service/types';
3
+ import { SubstrateApi } from '@subwallet/extension-base/services/chain-service/handler/SubstrateApi';
4
+ import { _ChainConnectionStatus, _ChainState, _NetworkUpsertParams, _ValidateCustomAssetRequest, _ValidateCustomAssetResponse } from '@subwallet/extension-base/services/chain-service/types';
4
5
  import { EventService } from '@subwallet/extension-base/services/event-service';
6
+ import { IMetadataItem } from '@subwallet/extension-base/services/storage-service/databases';
5
7
  import DatabaseService from '@subwallet/extension-base/services/storage-service/DatabaseService';
6
8
  import { BehaviorSubject, Subject } from 'rxjs';
7
9
  export declare class ChainService {
@@ -21,10 +23,10 @@ export declare class ChainService {
21
23
  private logger;
22
24
  constructor(dbService: DatabaseService, eventService: EventService);
23
25
  getXcmRefMap(): Record<string, _AssetRef>;
24
- getEvmApi(slug: string): _EvmApi;
25
- getEvmApiMap(): Record<string, _EvmApi>;
26
- getSubstrateApiMap(): Record<string, _SubstrateApi>;
27
- getSubstrateApi(slug: string): _SubstrateApi;
26
+ getEvmApi(slug: string): import("./handler/EvmApi").EvmApi;
27
+ getEvmApiMap(): Record<string, import("./handler/EvmApi").EvmApi>;
28
+ getSubstrateApiMap(): Record<string, SubstrateApi>;
29
+ getSubstrateApi(slug: string): SubstrateApi;
28
30
  getChainCurrentProviderByKey(slug: string): {
29
31
  endpoint: string;
30
32
  providerName: string;
@@ -45,6 +47,7 @@ export declare class ChainService {
45
47
  getAssetRefMap(): Record<string, _AssetRef>;
46
48
  getChainStateMap(): Record<string, _ChainState>;
47
49
  getChainStateByKey(key: string): _ChainState;
50
+ getActiveChains(): string[];
48
51
  getSupportedSmartContractTypes(): _AssetType[];
49
52
  getActiveChainInfoMap(): Record<string, _ChainInfo>;
50
53
  getActiveChainSlugs(): string[];
@@ -65,10 +68,8 @@ export declare class ChainService {
65
68
  private initApis;
66
69
  private initApiForChain;
67
70
  private destroyApiForChain;
68
- private initApi;
69
- private _enableChain;
70
- enableChain(chainSlug: string): boolean;
71
- enableChains(chainSlugs: string[]): boolean;
71
+ enableChain(chainSlug: string): Promise<boolean>;
72
+ enableChains(chainSlugs: string[]): Promise<boolean>;
72
73
  disableChain(chainSlug: string): boolean;
73
74
  private checkExistedPredefinedChain;
74
75
  private fetchLatestData;
@@ -79,7 +80,7 @@ export declare class ChainService {
79
80
  private updateChainSubscription;
80
81
  private updateChain;
81
82
  private insertChain;
82
- upsertChain(params: _NetworkUpsertParams): string | undefined;
83
+ upsertChain(params: _NetworkUpsertParams): Promise<string | undefined>;
83
84
  private generateSlugForCustomChain;
84
85
  validateCustomChain(provider: string, existingChainSlug?: string): Promise<ValidateNetworkResponse>;
85
86
  private getChainSpecByProvider;
@@ -90,12 +91,9 @@ export declare class ChainService {
90
91
  private generateSlugForNativeToken;
91
92
  refreshSubstrateApi(slug: string): void;
92
93
  refreshEvmApi(slug: string): void;
93
- stopAllChainApis(): Promise<void[]>;
94
- resumeAllChainApis(): Promise<void[]>;
95
- private refreshChainStateTimeout;
96
- private refreshChainStateTimes;
97
- private refreshChainStateInterval;
98
- updateApiMapStatus(): Promise<void>;
94
+ stopAllChainApis(): Promise<void>;
95
+ resumeAllChainApis(): Promise<void>;
96
+ checkAndUpdateStatusMapForChain(chainSlug: string): void;
99
97
  initAssetSettings(): Promise<void>;
100
98
  setAssetSettings(assetSettings: Record<string, AssetSetting>, emitEvent?: boolean): void;
101
99
  getStoreAssetSettings(): Promise<Record<string, AssetSetting>>;
@@ -106,4 +104,6 @@ export declare class ChainService {
106
104
  getChainLogoMap(): Promise<Record<string, string>>;
107
105
  getAssetLogoMap(): Promise<Record<string, string>>;
108
106
  resetWallet(resetAll: boolean): void;
107
+ getMetadata(chain: string): import("dexie").PromiseExtended<IMetadataItem | undefined>;
108
+ upsertMetadata(chain: string, metadata: IMetadataItem): import("dexie").PromiseExtended<unknown>;
109
109
  }
@@ -35,14 +35,13 @@ export class ChainService {
35
35
  constructor(dbService, eventService) {
36
36
  this.dbService = dbService;
37
37
  this.eventService = eventService;
38
- this.substrateChainHandler = new SubstrateChainHandler();
39
- this.evmChainHandler = new EvmChainHandler();
40
- this.chainInfoMapSubject.next(this.dataMap.chainInfoMap);
41
38
  this.chainStateMapSubject.next(this.dataMap.chainStateMap);
39
+ this.chainInfoMapSubject.next(this.dataMap.chainInfoMap);
42
40
  this.assetRegistrySubject.next(this.dataMap.assetRegistry);
43
41
  this.xcmRefMapSubject.next(this.dataMap.assetRefMap);
42
+ this.substrateChainHandler = new SubstrateChainHandler(this);
43
+ this.evmChainHandler = new EvmChainHandler(this);
44
44
  this.logger = createLogger('chain-service');
45
- this.refreshChainStateInterval(3000, 6);
46
45
  }
47
46
 
48
47
  // Getter
@@ -172,6 +171,9 @@ export class ChainService {
172
171
  getChainStateByKey(key) {
173
172
  return this.dataMap.chainStateMap[key];
174
173
  }
174
+ getActiveChains() {
175
+ return Object.entries(this.dataMap.chainStateMap).filter(([, chainState]) => _isChainEnabled(chainState)).map(([key]) => key);
176
+ }
175
177
  getSupportedSmartContractTypes() {
176
178
  return [_AssetType.ERC20, _AssetType.ERC721, _AssetType.PSP22, _AssetType.PSP34];
177
179
  }
@@ -352,6 +354,8 @@ export class ChainService {
352
354
 
353
355
  // Business logic
354
356
  async init() {
357
+ await this.eventService.waitDatabaseReady;
358
+
355
359
  // TODO: reconsider the flow of initiation
356
360
  const [latestAssetRefMap, latestMultiChainAssetMap] = await Promise.all([this.fetchLatestData(_ASSET_REF_SRC, AssetRefMap), this.fetchLatestData(_MULTI_CHAIN_ASSET_SRC, MultiChainAssetMap)]);
357
361
  this.multiChainAssetMapSubject.next(latestMultiChainAssetMap);
@@ -361,28 +365,51 @@ export class ChainService {
361
365
  this.chainStateMapSubject.next(this.getChainStateMap());
362
366
  this.assetRegistrySubject.next(this.getAssetRegistry());
363
367
  this.xcmRefMapSubject.next(this.dataMap.assetRefMap);
364
- this.initApis();
368
+ await this.initApis();
365
369
  await this.initAssetSettings();
366
370
  }
367
- initApis() {
368
- // TODO: this might be async
369
- Object.entries(this.getChainInfoMap()).forEach(([slug, chainInfo]) => {
370
- if (this.getChainStateByKey(slug).active) {
371
- this.initApiForChain(chainInfo);
371
+ async initApis() {
372
+ const chainInfoMap = this.getChainInfoMap();
373
+ const chainStateMap = this.getChainStateMap();
374
+ await Promise.all(Object.entries(chainInfoMap).filter(([slug]) => {
375
+ var _chainStateMap$slug;
376
+ return (_chainStateMap$slug = chainStateMap[slug]) === null || _chainStateMap$slug === void 0 ? void 0 : _chainStateMap$slug.active;
377
+ }).map(([, chainInfo]) => {
378
+ try {
379
+ return this.initApiForChain(chainInfo);
380
+ } catch (e) {
381
+ console.error(e);
382
+ return Promise.resolve();
372
383
  }
373
- });
384
+ }));
374
385
  }
375
- initApiForChain(chainInfo) {
386
+ async initApiForChain(chainInfo) {
376
387
  const {
377
388
  endpoint,
378
389
  providerName
379
390
  } = this.getChainCurrentProviderByKey(chainInfo.slug);
380
- if (chainInfo.substrateInfo !== null) {
381
- const chainApi = this.initApi(chainInfo.slug, endpoint, 'substrate', providerName);
391
+ const onUpdateStatus = isConnected => {
392
+ const currentStatus = this.getChainStateByKey(chainInfo.slug).connectionStatus;
393
+ const newStatus = isConnected ? _ChainConnectionStatus.CONNECTED : _ChainConnectionStatus.DISCONNECTED;
394
+
395
+ // Avoid unnecessary update in case disable chain
396
+ if (currentStatus !== newStatus) {
397
+ this.setChainConnectionStatus(chainInfo.slug, newStatus);
398
+ this.chainStateMapSubject.next(this.getChainStateMap());
399
+ }
400
+ };
401
+ if (chainInfo.substrateInfo !== null && chainInfo.substrateInfo !== undefined) {
402
+ const chainApi = await this.substrateChainHandler.initApi(chainInfo.slug, endpoint, {
403
+ providerName,
404
+ onUpdateStatus
405
+ });
382
406
  this.substrateChainHandler.setSubstrateApi(chainInfo.slug, chainApi);
383
407
  }
384
- if (chainInfo.evmInfo !== null) {
385
- const chainApi = this.initApi(chainInfo.slug, endpoint, 'evm', providerName);
408
+ if (chainInfo.evmInfo !== null && chainInfo.evmInfo !== undefined) {
409
+ const chainApi = await this.evmChainHandler.initApi(chainInfo.slug, endpoint, {
410
+ providerName,
411
+ onUpdateStatus
412
+ });
386
413
  this.evmChainHandler.setEvmApi(chainInfo.slug, chainApi);
387
414
  }
388
415
  }
@@ -394,47 +421,53 @@ export class ChainService {
394
421
  this.evmChainHandler.destroyEvmApi(chainInfo.slug);
395
422
  }
396
423
  }
397
- initApi(slug, endpoint, type = 'substrate', providerName) {
398
- switch (type) {
399
- case 'evm':
400
- return this.evmChainHandler.initApi(slug, endpoint, providerName);
401
- default:
402
- // substrate by default
403
- return this.substrateChainHandler.initApi(slug, endpoint, providerName);
404
- }
405
- }
406
- _enableChain(chainSlug) {
424
+ async enableChain(chainSlug) {
407
425
  const chainInfo = this.getChainInfoByKey(chainSlug);
408
426
  const chainStateMap = this.getChainStateMap();
409
427
  if (chainStateMap[chainSlug].active || this.lockChainInfoMap) {
410
428
  return false;
411
429
  }
412
430
  this.lockChainInfoMap = true;
413
- chainStateMap[chainSlug].active = true;
414
- this.initApiForChain(chainInfo);
415
- this.refreshChainStateInterval(3000, 6);
416
431
  this.dbService.updateChainStore({
417
432
  ...chainInfo,
418
433
  active: true,
419
434
  currentProvider: chainStateMap[chainSlug].currentProvider
420
435
  }).catch(console.error);
436
+ chainStateMap[chainSlug].active = true;
437
+ await this.initApiForChain(chainInfo);
421
438
  this.lockChainInfoMap = false;
422
439
  this.eventService.emit('chain.updateState', chainSlug);
440
+ this.updateChainStateMapSubscription();
423
441
  return true;
424
442
  }
425
- enableChain(chainSlug) {
426
- const rs = this._enableChain(chainSlug);
427
- if (rs) {
428
- this.updateChainStateMapSubscription();
429
- }
430
- return rs;
431
- }
432
- enableChains(chainSlugs) {
433
- const rs = chainSlugs.map(this._enableChain.bind(this));
434
- if (rs.some(r => r)) {
435
- this.updateChainStateMapSubscription();
443
+ async enableChains(chainSlugs) {
444
+ const chainInfoMap = this.getChainInfoMap();
445
+ const chainStateMap = this.getChainStateMap();
446
+ let needUpdate = false;
447
+ if (this.lockChainInfoMap) {
448
+ return false;
436
449
  }
437
- return rs.every(r => r);
450
+ this.lockChainInfoMap = true;
451
+ const initPromises = chainSlugs.map(async chainSlug => {
452
+ var _chainStateMap$chainS;
453
+ const chainInfo = chainInfoMap[chainSlug];
454
+ const currentState = (_chainStateMap$chainS = chainStateMap[chainSlug]) === null || _chainStateMap$chainS === void 0 ? void 0 : _chainStateMap$chainS.active;
455
+ if (!currentState) {
456
+ this.dbService.updateChainStore({
457
+ ...chainInfo,
458
+ active: true,
459
+ currentProvider: chainStateMap[chainSlug].currentProvider
460
+ }).catch(console.error);
461
+ chainStateMap[chainSlug].active = true;
462
+ await this.initApiForChain(chainInfo);
463
+ this.eventService.emit('chain.updateState', chainSlug);
464
+ needUpdate = true;
465
+ }
466
+ });
467
+ await Promise.all(initPromises);
468
+ this.lockChainInfoMap = false;
469
+ needUpdate && this.updateChainStateMapSubscription();
470
+ return needUpdate;
438
471
  }
439
472
  disableChain(chainSlug) {
440
473
  const chainInfo = this.getChainInfoByKey(chainSlug);
@@ -688,7 +721,7 @@ export class ChainService {
688
721
  }
689
722
 
690
723
  // Can only update providers or block explorer, crowdloan url
691
- updateChain(params) {
724
+ async updateChain(params) {
692
725
  const chainSlug = params.chainEditInfo.slug;
693
726
  const targetChainInfo = this.getChainInfoByKey(chainSlug);
694
727
  const targetChainState = this.getChainStateByKey(chainSlug);
@@ -702,8 +735,8 @@ export class ChainService {
702
735
  targetChainState.active = true;
703
736
  }
704
737
 
705
- // TODO: it might override existed API
706
- this.initApiForChain(targetChainInfo);
738
+ // It auto detects the change of api url to create new instance or reuse existed one
739
+ await this.initApiForChain(targetChainInfo);
707
740
  this.updateChainStateMapSubscription();
708
741
  }
709
742
  if (targetChainInfo.substrateInfo) {
@@ -728,7 +761,7 @@ export class ChainService {
728
761
  this.eventService.emit('chain.updateState', chainSlug);
729
762
  }).catch(e => this.logger.error(e));
730
763
  }
731
- insertChain(params) {
764
+ async insertChain(params) {
732
765
  const chainInfoMap = this.getChainInfoMap();
733
766
  if (!params.chainSpec) {
734
767
  return;
@@ -786,7 +819,7 @@ export class ChainService {
786
819
  currentProvider: params.chainEditInfo.currentProvider,
787
820
  slug: newChainSlug
788
821
  };
789
- this.initApiForChain(chainInfo);
822
+ await this.initApiForChain(chainInfo);
790
823
 
791
824
  // create a record in assetRegistry for native token and update store/subscription
792
825
  const nativeTokenSlug = this.upsertCustomToken({
@@ -817,7 +850,7 @@ export class ChainService {
817
850
  }).catch(e => this.logger.error(e));
818
851
  return nativeTokenSlug;
819
852
  }
820
- upsertChain(params) {
853
+ async upsertChain(params) {
821
854
  if (this.lockChainInfoMap) {
822
855
  return;
823
856
  }
@@ -825,10 +858,10 @@ export class ChainService {
825
858
  let result;
826
859
  if (params.mode === 'update') {
827
860
  // update existing chainInfo
828
- this.updateChain(params);
861
+ await this.updateChain(params);
829
862
  } else {
830
863
  // insert custom network
831
- result = this.insertChain(params);
864
+ result = await this.insertChain(params);
832
865
  }
833
866
  this.lockChainInfoMap = false;
834
867
  return result;
@@ -870,9 +903,9 @@ export class ChainService {
870
903
  // TODO: EVM chain might have WS provider
871
904
  if (provider.startsWith('http')) {
872
905
  // HTTP provider is EVM by default
873
- api = this.evmChainHandler.initApi('custom', provider);
906
+ api = await this.evmChainHandler.initApi('custom', provider);
874
907
  } else {
875
- api = this.substrateChainHandler.initApi('custom', provider);
908
+ api = await this.substrateChainHandler.initApi('custom', provider);
876
909
  }
877
910
  const connectionTimeout = new Promise(resolve => {
878
911
  const id = setTimeout(() => {
@@ -1057,68 +1090,21 @@ export class ChainService {
1057
1090
  return `${originChain}-${assetType}-${symbol}`;
1058
1091
  }
1059
1092
  refreshSubstrateApi(slug) {
1060
- this.substrateChainHandler.refreshApi(slug);
1093
+ this.substrateChainHandler.recoverApi(slug).catch(console.error);
1061
1094
  }
1062
1095
  refreshEvmApi(slug) {
1063
- const {
1064
- endpoint,
1065
- providerName
1066
- } = this.getChainCurrentProviderByKey(slug);
1067
- this.evmChainHandler.refreshApi(slug, endpoint, providerName);
1068
- }
1069
- stopAllChainApis() {
1070
- // TODO: add logic for EvmApi
1071
- // Object.entries(this.apiMap.web3).forEach(([key, network]) => {
1072
- // if (network.currentProvider instanceof Web3.providers.WebsocketProvider) {
1073
- // if (network.currentProvider?.connected) {
1074
- // console.log(`[Web3] ${key} is connected`);
1075
- // network.currentProvider?.disconnect(code, reason);
1076
- // console.log(`[Web3] ${key} is ${network.currentProvider.connected ? 'connected' : 'disconnected'} now`);
1077
- // }
1078
- // }
1079
- // });
1080
-
1081
- return this.substrateChainHandler.disconnectAllApis();
1096
+ this.evmChainHandler.recoverApi(slug).catch(console.error);
1082
1097
  }
1083
- resumeAllChainApis() {
1084
- // TODO: add logic for EvmApi
1085
- // Object.entries(this.apiMap.web3).forEach(([key, network]) => {
1086
- // const currentProvider = network.currentProvider;
1087
-
1088
- // if (currentProvider instanceof Web3.providers.WebsocketProvider) {
1089
- // if (!currentProvider.connected) {
1090
- // console.log(`[Web3] ${key} is disconnected`);
1091
- // currentProvider?.connect();
1092
- // setTimeout(() => console.log(`[Web3] ${key} is ${currentProvider.connected ? 'connected' : 'disconnected'} now`), 500);
1093
- // }
1094
- // }
1095
- // });
1096
-
1097
- return this.substrateChainHandler.resumeAllApis();
1098
- }
1099
- refreshChainStateTimeout = undefined;
1100
- refreshChainStateTimes = 0;
1101
- refreshChainStateInterval(delay = 0, times) {
1102
- clearTimeout(this.refreshChainStateTimeout);
1103
- setTimeout(() => {
1104
- if (times) {
1105
- this.refreshChainStateTimes = times;
1106
- }
1107
- this.refreshChainStateTimes -= 1;
1108
- if (this.refreshChainStateTimes < 0) {
1109
- return;
1110
- }
1111
- this.updateApiMapStatus().catch(console.error);
1112
- this.refreshChainStateTimeout = setTimeout(() => {
1113
- this.updateApiMapStatus().catch(console.error);
1114
- this.refreshChainStateInterval(0);
1115
- }, 3000);
1116
- }, delay);
1117
- }
1118
- async updateApiMapStatus() {
1098
+ async stopAllChainApis() {
1099
+ await Promise.all([this.substrateChainHandler.sleep(), this.evmChainHandler.sleep()]);
1100
+ }
1101
+ async resumeAllChainApis() {
1102
+ await Promise.all([this.substrateChainHandler.wakeUp(), this.evmChainHandler.wakeUp()]);
1103
+ }
1104
+ checkAndUpdateStatusMapForChain(chainSlug) {
1119
1105
  const substrateApiMap = this.getSubstrateApiMap();
1120
1106
  const evmApiMap = this.getEvmApiMap();
1121
- const chainStateMap = this.getChainStateMap();
1107
+ const chainState = this.getChainStateByKey(chainSlug);
1122
1108
  let update = false;
1123
1109
  function updateState(current, status) {
1124
1110
  if (current.connectionStatus !== status) {
@@ -1126,32 +1112,16 @@ export class ChainService {
1126
1112
  update = true;
1127
1113
  }
1128
1114
  }
1129
- const promiseList = Object.entries(chainStateMap).map(async ([chain, chainState]) => {
1130
- try {
1131
- if (chainState.active) {
1132
- if (substrateApiMap[chain]) {
1133
- const api = substrateApiMap[chain];
1134
- if (api.isApiConnected) {
1135
- updateState(chainState, _ChainConnectionStatus.CONNECTED);
1136
- return;
1137
- }
1138
- } else if (evmApiMap[chain]) {
1139
- var _api$api;
1140
- const api = evmApiMap[chain];
1141
- if (await (api === null || api === void 0 ? void 0 : (_api$api = api.api) === null || _api$api === void 0 ? void 0 : _api$api.eth.net.isListening())) {
1142
- updateState(chainState, _ChainConnectionStatus.CONNECTED);
1143
- return;
1144
- }
1145
- }
1146
- }
1147
- updateState(chainState, _ChainConnectionStatus.DISCONNECTED);
1148
- } catch (e) {
1149
- updateState(chainState, _ChainConnectionStatus.DISCONNECTED);
1115
+ if (chainState.active) {
1116
+ const api = substrateApiMap[chainSlug] || evmApiMap[chainSlug];
1117
+ if (api) {
1118
+ updateState(chainState, api.isApiConnected ? _ChainConnectionStatus.CONNECTED : _ChainConnectionStatus.DISCONNECTED);
1150
1119
  }
1151
- });
1152
- await Promise.all(promiseList);
1120
+ } else {
1121
+ updateState(chainState, _ChainConnectionStatus.DISCONNECTED);
1122
+ }
1153
1123
  if (update) {
1154
- this.chainStateMapSubject.next(chainStateMap);
1124
+ this.dataMap.chainStateMap[chainSlug] = chainState;
1155
1125
  }
1156
1126
  }
1157
1127
  async initAssetSettings() {
@@ -1215,7 +1185,7 @@ export class ChainService {
1215
1185
 
1216
1186
  // if chain not enabled, then automatically enable
1217
1187
  if (chainState && !chainState.active) {
1218
- this.enableChain(chainState.slug);
1188
+ await this.enableChain(chainState.slug);
1219
1189
  needUpdateSubject = true;
1220
1190
  if (autoEnableNativeToken) {
1221
1191
  const nativeAsset = this.getNativeTokenInfo(assetInfo.originChain);
@@ -1279,4 +1249,10 @@ export class ChainService {
1279
1249
  this.deleteCustomAssets(customToken);
1280
1250
  }
1281
1251
  }
1252
+ getMetadata(chain) {
1253
+ return this.dbService.stores.metadata.getMetadata(chain);
1254
+ }
1255
+ upsertMetadata(chain, metadata) {
1256
+ return this.dbService.stores.metadata.upsertMetadata(chain, metadata);
1257
+ }
1282
1258
  }
@@ -1,5 +1,6 @@
1
1
  import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
2
2
  import { _CHAIN_VALIDATION_ERROR } from '@subwallet/extension-base/services/chain-service/handler/types';
3
+ import { BehaviorSubject } from 'rxjs';
3
4
  import Web3 from 'web3';
4
5
  import { ApiPromise } from '@polkadot/api';
5
6
  import { SubmittableExtrinsicFunction } from '@polkadot/api/promise/types';
@@ -34,12 +35,15 @@ export interface _ChainBaseApi {
34
35
  apiError?: string;
35
36
  apiRetry?: number;
36
37
  isApiReady: boolean;
38
+ isApiConnectedSubject: BehaviorSubject<boolean>;
37
39
  isApiReadyOnce: boolean;
38
40
  isApiConnected: boolean;
39
- isApiInitialized: boolean;
40
- isDevelopment?: boolean;
41
- recoverConnect?: () => void;
42
- isReady: Promise<any>;
41
+ updateApiUrl: (apiUrl: string) => Promise<void>;
42
+ connect: () => void;
43
+ disconnect: () => Promise<void>;
44
+ recoverConnect: () => Promise<void>;
45
+ destroy: () => Promise<void>;
46
+ isReady: Promise<_ChainBaseApi>;
43
47
  }
44
48
  export interface _SubstrateChainMetadata {
45
49
  properties: ChainProperties;
@@ -55,7 +59,6 @@ export interface _SubstrateApiState {
55
59
  }
56
60
  export interface _SubstrateApi extends _SubstrateApiState, _ChainBaseApi {
57
61
  api: ApiPromise;
58
- isNotSupport?: boolean;
59
62
  isReady: Promise<_SubstrateApi>;
60
63
  specName: string;
61
64
  specVersion: string;
@@ -5,6 +5,8 @@ export declare class EventService extends EventEmitter<EventRegistry> {
5
5
  private timeoutId;
6
6
  private pendingEvents;
7
7
  private lazyEmitter;
8
+ readonly waitCryptoReady: Promise<boolean>;
9
+ readonly waitDatabaseReady: Promise<boolean>;
8
10
  readonly waitKeyringReady: Promise<boolean>;
9
11
  readonly waitAccountReady: Promise<boolean>;
10
12
  readonly waitChainReady: Promise<boolean>;
@@ -13,6 +13,8 @@ export class EventService extends EventEmitter {
13
13
  super();
14
14
  this.lazyTime = options.lazyTime;
15
15
  this.timeoutId = null;
16
+ this.waitCryptoReady = this.generateWaitPromise('crypto.ready');
17
+ this.waitDatabaseReady = this.generateWaitPromise('database.ready');
16
18
  this.waitKeyringReady = this.generateWaitPromise('keyring.ready');
17
19
  this.waitAccountReady = this.generateWaitPromise('account.ready');
18
20
  this.waitChainReady = this.generateWaitPromise('chain.ready');
@@ -1,6 +1,10 @@
1
1
  import { CurrentAccountInfo } from '@subwallet/extension-base/background/KoniTypes';
2
2
  import { SWTransaction } from '@subwallet/extension-base/services/transaction-service/types';
3
3
  export interface EventRegistry {
4
+ 'general.sleep': [boolean];
5
+ 'general.wakeup': [boolean];
6
+ 'crypto.ready': [boolean];
7
+ 'database.ready': [boolean];
4
8
  'keyring.ready': [boolean];
5
9
  'account.updateCurrent': [CurrentAccountInfo];
6
10
  'account.ready': [boolean];