@subwallet/extension-base 1.1.31-beta.0 → 1.1.33-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/background/KoniTypes.d.ts +71 -111
  2. package/background/KoniTypes.js +14 -19
  3. package/background/errors/TransactionError.js +0 -9
  4. package/cjs/background/KoniTypes.js +17 -20
  5. package/cjs/background/errors/TransactionError.js +0 -9
  6. package/cjs/constants/index.js +4 -19
  7. package/cjs/koni/api/nft/config.js +23 -33
  8. package/cjs/koni/api/nft/index.js +0 -14
  9. package/cjs/koni/api/nft/nft.js +22 -1
  10. package/cjs/koni/api/staking/bonding/amplitude.js +108 -76
  11. package/cjs/koni/api/staking/bonding/astar.js +10 -11
  12. package/cjs/koni/api/staking/bonding/index.js +3 -4
  13. package/cjs/koni/api/staking/bonding/paraChain.js +29 -28
  14. package/cjs/koni/api/staking/bonding/relayChain.js +45 -48
  15. package/cjs/koni/api/staking/bonding/utils.js +86 -104
  16. package/cjs/koni/api/staking/index.js +5 -6
  17. package/cjs/koni/api/staking/paraChain.js +36 -11
  18. package/cjs/koni/api/staking/relayChain.js +2 -3
  19. package/cjs/koni/api/xcm/xTokens.js +1 -1
  20. package/cjs/koni/background/cron.js +1 -11
  21. package/cjs/koni/background/handlers/Extension.js +69 -362
  22. package/cjs/koni/background/handlers/State.js +3 -51
  23. package/cjs/koni/background/handlers/Tabs.js +19 -2
  24. package/cjs/koni/background/handlers/index.js +2 -4
  25. package/cjs/koni/background/subscription.js +37 -95
  26. package/cjs/packageInfo.js +1 -1
  27. package/cjs/services/campaign-service/index.js +25 -9
  28. package/cjs/services/chain-service/constants.js +21 -4
  29. package/cjs/services/chain-service/index.js +2 -3
  30. package/cjs/services/chain-service/utils.js +1 -7
  31. package/cjs/services/event-service/index.js +0 -4
  32. package/cjs/services/history-service/index.js +12 -8
  33. package/cjs/services/keyring-service/index.js +2 -14
  34. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  35. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  36. package/cjs/services/migration-service/scripts/index.js +1 -7
  37. package/cjs/services/notification-service/NotificationService.js +1 -1
  38. package/cjs/services/storage-service/DatabaseService.js +3 -51
  39. package/cjs/services/storage-service/databases/index.js +0 -4
  40. package/cjs/services/storage-service/db-stores/Campaign.js +9 -3
  41. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  42. package/cjs/services/subscan-service/index.js +0 -16
  43. package/cjs/services/transaction-service/event-parser/index.js +0 -58
  44. package/cjs/services/transaction-service/helpers/index.js +1 -3
  45. package/cjs/services/transaction-service/index.js +131 -242
  46. package/cjs/services/transaction-service/utils.js +0 -1
  47. package/cjs/types/index.js +0 -44
  48. package/cjs/utils/fetchEvmChainInfo.js +20 -0
  49. package/cjs/utils/fetchStaticData.js +1 -2
  50. package/cjs/utils/index.js +17 -81
  51. package/cjs/utils/number.js +1 -3
  52. package/constants/index.d.ts +1 -6
  53. package/constants/index.js +1 -6
  54. package/koni/api/nft/config.js +23 -33
  55. package/koni/api/nft/index.js +1 -15
  56. package/koni/api/nft/nft.js +23 -2
  57. package/koni/api/staking/bonding/amplitude.d.ts +1 -1
  58. package/koni/api/staking/bonding/amplitude.js +105 -73
  59. package/koni/api/staking/bonding/astar.js +8 -9
  60. package/koni/api/staking/bonding/index.d.ts +2 -1
  61. package/koni/api/staking/bonding/index.js +3 -5
  62. package/koni/api/staking/bonding/paraChain.js +16 -15
  63. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  64. package/koni/api/staking/bonding/relayChain.js +30 -33
  65. package/koni/api/staking/bonding/utils.d.ts +42 -15
  66. package/koni/api/staking/bonding/utils.js +69 -85
  67. package/koni/api/staking/index.js +1 -2
  68. package/koni/api/staking/paraChain.js +37 -12
  69. package/koni/api/staking/relayChain.js +3 -4
  70. package/koni/api/xcm/xTokens.js +1 -1
  71. package/koni/background/cron.d.ts +0 -1
  72. package/koni/background/cron.js +2 -12
  73. package/koni/background/handlers/Extension.d.ts +1 -17
  74. package/koni/background/handlers/Extension.js +30 -321
  75. package/koni/background/handlers/State.d.ts +2 -18
  76. package/koni/background/handlers/State.js +3 -50
  77. package/koni/background/handlers/Tabs.js +20 -3
  78. package/koni/background/handlers/index.js +2 -4
  79. package/koni/background/subscription.d.ts +1 -6
  80. package/koni/background/subscription.js +38 -97
  81. package/package.json +13 -321
  82. package/packageInfo.js +1 -1
  83. package/services/campaign-service/index.js +25 -9
  84. package/services/chain-service/constants.d.ts +12 -0
  85. package/services/chain-service/constants.js +19 -3
  86. package/services/chain-service/index.js +2 -3
  87. package/services/chain-service/utils.d.ts +0 -1
  88. package/services/chain-service/utils.js +1 -5
  89. package/services/event-service/index.d.ts +0 -1
  90. package/services/event-service/index.js +0 -4
  91. package/services/event-service/types.d.ts +1 -8
  92. package/services/history-service/index.js +12 -8
  93. package/services/keyring-service/index.d.ts +1 -2
  94. package/services/keyring-service/index.js +2 -14
  95. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  96. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  97. package/services/migration-service/scripts/index.js +1 -7
  98. package/services/notification-service/NotificationService.js +1 -1
  99. package/services/storage-service/DatabaseService.d.ts +2 -18
  100. package/services/storage-service/DatabaseService.js +3 -51
  101. package/services/storage-service/databases/index.d.ts +1 -3
  102. package/services/storage-service/databases/index.js +0 -4
  103. package/services/storage-service/db-stores/Campaign.js +9 -3
  104. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  105. package/services/subscan-service/index.d.ts +2 -3
  106. package/services/subscan-service/index.js +0 -15
  107. package/services/subscan-service/types.d.ts +0 -20
  108. package/services/transaction-service/event-parser/index.d.ts +1 -3
  109. package/services/transaction-service/event-parser/index.js +1 -57
  110. package/services/transaction-service/helpers/index.js +1 -3
  111. package/services/transaction-service/index.d.ts +16 -4
  112. package/services/transaction-service/index.js +118 -230
  113. package/services/transaction-service/types.d.ts +1 -2
  114. package/services/transaction-service/utils.js +0 -1
  115. package/types/index.d.ts +0 -5
  116. package/types/index.js +1 -5
  117. package/utils/fetchEvmChainInfo.d.ts +17 -0
  118. package/utils/fetchEvmChainInfo.js +14 -0
  119. package/utils/fetchStaticData.js +1 -2
  120. package/utils/index.d.ts +2 -5
  121. package/utils/index.js +2 -52
  122. package/utils/number.d.ts +1 -1
  123. package/utils/number.js +1 -1
  124. package/cjs/koni/api/dotsama/balance.js +0 -464
  125. package/cjs/koni/api/nft/ordinal_nft/constants.js +0 -21
  126. package/cjs/koni/api/nft/ordinal_nft/index.js +0 -121
  127. package/cjs/koni/api/nft/ordinal_nft/utils.js +0 -41
  128. package/cjs/koni/api/yield/helper/utils.js +0 -46
  129. package/cjs/services/earning-service/constants/chains.js +0 -29
  130. package/cjs/services/earning-service/constants/index.js +0 -27
  131. package/cjs/services/earning-service/constants/step.js +0 -18
  132. package/cjs/services/earning-service/handlers/base.js +0 -259
  133. package/cjs/services/earning-service/handlers/index.js +0 -60
  134. package/cjs/services/earning-service/handlers/lending/base.js +0 -20
  135. package/cjs/services/earning-service/handlers/lending/index.js +0 -13
  136. package/cjs/services/earning-service/handlers/lending/interlay.js +0 -191
  137. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -239
  138. package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -43
  139. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -297
  140. package/cjs/services/earning-service/handlers/liquid-staking/index.js +0 -34
  141. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -226
  142. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -395
  143. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +0 -384
  144. package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -461
  145. package/cjs/services/earning-service/handlers/native-staking/base-para.js +0 -146
  146. package/cjs/services/earning-service/handlers/native-staking/base.js +0 -159
  147. package/cjs/services/earning-service/handlers/native-staking/index.js +0 -34
  148. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -385
  149. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +0 -558
  150. package/cjs/services/earning-service/handlers/nomination-pool/index.js +0 -560
  151. package/cjs/services/earning-service/handlers/special.js +0 -503
  152. package/cjs/services/earning-service/service.js +0 -387
  153. package/cjs/services/earning-service/utils/index.js +0 -128
  154. package/cjs/services/migration-service/scripts/DeleteEarningData.js +0 -21
  155. package/cjs/services/migration-service/scripts/EnableEarningChains.js +0 -21
  156. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
  157. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
  158. package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
  159. package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -21
  160. package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -21
  161. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -149
  162. package/cjs/services/mint-campaign-service/campaigns/index.js +0 -13
  163. package/cjs/services/mint-campaign-service/constants.js +0 -11
  164. package/cjs/services/mint-campaign-service/index.js +0 -18
  165. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +0 -36
  166. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +0 -65
  167. package/cjs/services/storage-service/index.js +0 -241
  168. package/cjs/types/campaigns/index.js +0 -16
  169. package/cjs/types/campaigns/unlock-dot.js +0 -1
  170. package/cjs/types/ordinal.js +0 -1
  171. package/cjs/types/transaction.js +0 -1
  172. package/cjs/types/yield/actions/index.js +0 -27
  173. package/cjs/types/yield/actions/join/index.js +0 -38
  174. package/cjs/types/yield/actions/join/step.js +0 -47
  175. package/cjs/types/yield/actions/join/submit.js +0 -1
  176. package/cjs/types/yield/actions/join/validate.js +0 -16
  177. package/cjs/types/yield/actions/others.js +0 -1
  178. package/cjs/types/yield/index.js +0 -27
  179. package/cjs/types/yield/info/account/index.js +0 -49
  180. package/cjs/types/yield/info/account/info.js +0 -1
  181. package/cjs/types/yield/info/account/reward.js +0 -1
  182. package/cjs/types/yield/info/account/target.js +0 -32
  183. package/cjs/types/yield/info/account/unstake.js +0 -27
  184. package/cjs/types/yield/info/base.js +0 -41
  185. package/cjs/types/yield/info/chain/index.js +0 -27
  186. package/cjs/types/yield/info/chain/info.js +0 -1
  187. package/cjs/types/yield/info/chain/target.js +0 -1
  188. package/cjs/types/yield/info/index.js +0 -49
  189. package/cjs/types/yield/info/pallet.js +0 -15
  190. package/cjs/types.js +0 -1
  191. package/cjs/utils/address.js +0 -34
  192. package/cjs/utils/keyring.js +0 -57
  193. package/cjs/utils/object.js +0 -12
  194. package/koni/api/nft/ordinal_nft/constants.d.ts +0 -9
  195. package/koni/api/nft/ordinal_nft/constants.js +0 -12
  196. package/koni/api/nft/ordinal_nft/index.d.ts +0 -8
  197. package/koni/api/nft/ordinal_nft/index.js +0 -114
  198. package/koni/api/nft/ordinal_nft/utils.d.ts +0 -2
  199. package/koni/api/nft/ordinal_nft/utils.js +0 -33
  200. package/koni/api/yield/helper/utils.d.ts +0 -10
  201. package/koni/api/yield/helper/utils.js +0 -32
  202. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +0 -1235
  203. package/services/earning-service/constants/abis/st_liquid_token_abi.json +0 -1355
  204. package/services/earning-service/constants/chains.d.ts +0 -14
  205. package/services/earning-service/constants/chains.js +0 -21
  206. package/services/earning-service/constants/index.d.ts +0 -2
  207. package/services/earning-service/constants/index.js +0 -5
  208. package/services/earning-service/constants/step.d.ts +0 -3
  209. package/services/earning-service/constants/step.js +0 -10
  210. package/services/earning-service/handlers/base.d.ts +0 -112
  211. package/services/earning-service/handlers/base.js +0 -253
  212. package/services/earning-service/handlers/index.d.ts +0 -5
  213. package/services/earning-service/handlers/index.js +0 -8
  214. package/services/earning-service/handlers/lending/base.d.ts +0 -6
  215. package/services/earning-service/handlers/lending/base.js +0 -12
  216. package/services/earning-service/handlers/lending/index.d.ts +0 -1
  217. package/services/earning-service/handlers/lending/index.js +0 -4
  218. package/services/earning-service/handlers/lending/interlay.d.ts +0 -24
  219. package/services/earning-service/handlers/lending/interlay.js +0 -183
  220. package/services/earning-service/handlers/liquid-staking/acala.d.ts +0 -27
  221. package/services/earning-service/handlers/liquid-staking/acala.js +0 -231
  222. package/services/earning-service/handlers/liquid-staking/base.d.ts +0 -9
  223. package/services/earning-service/handlers/liquid-staking/base.js +0 -35
  224. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +0 -46
  225. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -286
  226. package/services/earning-service/handlers/liquid-staking/index.d.ts +0 -4
  227. package/services/earning-service/handlers/liquid-staking/index.js +0 -7
  228. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +0 -26
  229. package/services/earning-service/handlers/liquid-staking/parallel.js +0 -218
  230. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +0 -34
  231. package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -385
  232. package/services/earning-service/handlers/native-staking/amplitude.d.ts +0 -22
  233. package/services/earning-service/handlers/native-staking/amplitude.js +0 -375
  234. package/services/earning-service/handlers/native-staking/astar.d.ts +0 -19
  235. package/services/earning-service/handlers/native-staking/astar.js +0 -451
  236. package/services/earning-service/handlers/native-staking/base-para.d.ts +0 -11
  237. package/services/earning-service/handlers/native-staking/base-para.js +0 -138
  238. package/services/earning-service/handlers/native-staking/base.d.ts +0 -21
  239. package/services/earning-service/handlers/native-staking/base.js +0 -150
  240. package/services/earning-service/handlers/native-staking/index.d.ts +0 -4
  241. package/services/earning-service/handlers/native-staking/index.js +0 -7
  242. package/services/earning-service/handlers/native-staking/para-chain.d.ts +0 -15
  243. package/services/earning-service/handlers/native-staking/para-chain.js +0 -377
  244. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +0 -21
  245. package/services/earning-service/handlers/native-staking/relay-chain.js +0 -549
  246. package/services/earning-service/handlers/nomination-pool/index.d.ts +0 -36
  247. package/services/earning-service/handlers/nomination-pool/index.js +0 -550
  248. package/services/earning-service/handlers/special.d.ts +0 -65
  249. package/services/earning-service/handlers/special.js +0 -495
  250. package/services/earning-service/service.d.ts +0 -45
  251. package/services/earning-service/service.js +0 -379
  252. package/services/earning-service/utils/index.d.ts +0 -18
  253. package/services/earning-service/utils/index.js +0 -112
  254. package/services/migration-service/scripts/DeleteEarningData.d.ts +0 -4
  255. package/services/migration-service/scripts/DeleteEarningData.js +0 -13
  256. package/services/migration-service/scripts/EnableEarningChains.d.ts +0 -4
  257. package/services/migration-service/scripts/EnableEarningChains.js +0 -13
  258. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +0 -4
  259. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -13
  260. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +0 -4
  261. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -13
  262. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +0 -13
  263. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -139
  264. package/services/mint-campaign-service/campaigns/index.d.ts +0 -1
  265. package/services/mint-campaign-service/campaigns/index.js +0 -4
  266. package/services/mint-campaign-service/constants.d.ts +0 -1
  267. package/services/mint-campaign-service/constants.js +0 -4
  268. package/services/mint-campaign-service/index.d.ts +0 -7
  269. package/services/mint-campaign-service/index.js +0 -11
  270. package/services/storage-service/db-stores/YieldPoolStore.d.ts +0 -10
  271. package/services/storage-service/db-stores/YieldPoolStore.js +0 -28
  272. package/services/storage-service/db-stores/YieldPositionStore.d.ts +0 -9
  273. package/services/storage-service/db-stores/YieldPositionStore.js +0 -57
  274. package/types/campaigns/index.d.ts +0 -1
  275. package/types/campaigns/index.js +0 -4
  276. package/types/campaigns/unlock-dot.d.ts +0 -71
  277. package/types/campaigns/unlock-dot.js +0 -1
  278. package/types/ordinal.d.ts +0 -69
  279. package/types/ordinal.js +0 -1
  280. package/types/transaction.d.ts +0 -3
  281. package/types/transaction.js +0 -1
  282. package/types/yield/actions/index.d.ts +0 -2
  283. package/types/yield/actions/index.js +0 -5
  284. package/types/yield/actions/join/index.d.ts +0 -3
  285. package/types/yield/actions/join/index.js +0 -6
  286. package/types/yield/actions/join/step.d.ts +0 -95
  287. package/types/yield/actions/join/step.js +0 -46
  288. package/types/yield/actions/join/submit.d.ts +0 -57
  289. package/types/yield/actions/join/submit.js +0 -1
  290. package/types/yield/actions/join/validate.d.ts +0 -18
  291. package/types/yield/actions/join/validate.js +0 -10
  292. package/types/yield/actions/others.d.ts +0 -85
  293. package/types/yield/actions/others.js +0 -1
  294. package/types/yield/index.d.ts +0 -2
  295. package/types/yield/index.js +0 -5
  296. package/types/yield/info/account/index.d.ts +0 -4
  297. package/types/yield/info/account/index.js +0 -7
  298. package/types/yield/info/account/info.d.ts +0 -92
  299. package/types/yield/info/account/info.js +0 -1
  300. package/types/yield/info/account/reward.d.ts +0 -45
  301. package/types/yield/info/account/reward.js +0 -1
  302. package/types/yield/info/account/target.d.ts +0 -43
  303. package/types/yield/info/account/target.js +0 -27
  304. package/types/yield/info/account/unstake.d.ts +0 -31
  305. package/types/yield/info/account/unstake.js +0 -22
  306. package/types/yield/info/base.d.ts +0 -45
  307. package/types/yield/info/base.js +0 -36
  308. package/types/yield/info/chain/index.d.ts +0 -2
  309. package/types/yield/info/chain/index.js +0 -5
  310. package/types/yield/info/chain/info.d.ts +0 -251
  311. package/types/yield/info/chain/info.js +0 -1
  312. package/types/yield/info/chain/target.d.ts +0 -37
  313. package/types/yield/info/chain/target.js +0 -1
  314. package/types/yield/info/index.d.ts +0 -4
  315. package/types/yield/info/index.js +0 -7
  316. package/types/yield/info/pallet.d.ts +0 -143
  317. package/types/yield/info/pallet.js +0 -9
  318. package/utils/object.d.ts +0 -1
  319. package/utils/object.js +0 -6
@@ -0,0 +1,17 @@
1
+ export interface OnlineEvmChainInfo {
2
+ chain: string;
3
+ name: string;
4
+ chainId: number;
5
+ nativeCurrency: {
6
+ name: string;
7
+ symbol: string;
8
+ decimals: number;
9
+ };
10
+ rpc: string[];
11
+ explorers: {
12
+ name: string;
13
+ url: string;
14
+ standard: string;
15
+ }[];
16
+ }
17
+ export declare function getEVMChainInfo(chainId: number): Promise<OnlineEvmChainInfo>;
@@ -0,0 +1,14 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ const onlineMap = {};
5
+ export async function getEVMChainInfo(chainId) {
6
+ if (Object.keys(onlineMap).length === 0) {
7
+ const rs = await fetch('https://chainid.network/chains.json');
8
+ const data = await rs.json();
9
+ data.forEach(item => {
10
+ onlineMap[item.chainId] = item;
11
+ });
12
+ }
13
+ return onlineMap[chainId];
14
+ }
@@ -3,9 +3,8 @@
3
3
 
4
4
  import { staticData } from '@subwallet/extension-base/utils/staticData';
5
5
  import axios from 'axios';
6
- const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
7
6
  const branchName = process.env.BRANCH_NAME || 'koni-dev';
8
- const fetchTarget = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list.json' : 'preview.json';
7
+ const fetchTarget = branchName === 'master' || branchName === 'webapp' ? 'list.json' : 'preview.json';
9
8
  export async function fetchStaticData(slug, targetFile) {
10
9
  const fetchFile = targetFile || fetchTarget;
11
10
  try {
package/utils/index.d.ts CHANGED
@@ -39,15 +39,12 @@ export declare function isSameAddress(address1: string, address2: string): boole
39
39
  export declare function getDomainFromUrl(url: string): string;
40
40
  export declare function waitTimeout(ms: number): Promise<void>;
41
41
  export declare const stripUrl: (url: string) => string;
42
- export declare const baseParseIPFSUrl: (input: string) => string | undefined;
43
- export declare const swParseIPFSUrl: (input: string) => string | undefined;
44
42
  export declare function wait(milliseconds: number): Promise<void>;
45
43
  export * from './account';
46
44
  export * from './array';
47
45
  export * from './environment';
48
- export * from './number';
49
46
  export * from './lazy';
50
- export * from './promise';
51
47
  export * from './registry';
52
48
  export * from './translate';
53
- export * from './object';
49
+ export * from './fetchStaticData';
50
+ export * from './fetchEvmChainInfo';
package/utils/index.js CHANGED
@@ -3,7 +3,6 @@
3
3
 
4
4
  import { CrowdloanParaState, MobileOS } from '@subwallet/extension-base/background/KoniTypes';
5
5
  import { ALL_ACCOUNT_KEY } from '@subwallet/extension-base/constants';
6
- import { getRandomIpfsGateway, SUBWALLET_IPFS } from '@subwallet/extension-base/koni/api/nft/config';
7
6
  import { getOS } from '@subwallet/extension-base/utils/environment';
8
7
  import { t } from 'i18next';
9
8
  import { assert, BN, hexToU8a, isHex } from '@polkadot/util';
@@ -288,54 +287,6 @@ export const stripUrl = url => {
288
287
  const parts = url.split('/');
289
288
  return parts[2];
290
289
  };
291
- export const baseParseIPFSUrl = input => {
292
- if (!input || input.length === 0) {
293
- return undefined;
294
- }
295
- if (isUrl(input)) {
296
- return input;
297
- }
298
- if (isUrl(input) || input.includes('https://') || input.includes('http')) {
299
- return input;
300
- }
301
- if (input.startsWith('/ipfs/')) {
302
- return getRandomIpfsGateway() + input.split('/ipfs/')[1];
303
- }
304
- if (!input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
305
- // just the IPFS hash
306
- return getRandomIpfsGateway() + input;
307
- }
308
- if (input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
309
- // starts with ipfs://
310
- return getRandomIpfsGateway() + input.split('ipfs://')[1];
311
- }
312
- return getRandomIpfsGateway() + input.split('ipfs://ipfs/')[1]; // starts with ipfs://ipfs/
313
- };
314
-
315
- export const swParseIPFSUrl = input => {
316
- if (!input || input.length === 0) {
317
- return undefined;
318
- }
319
- if (isUrl(input)) {
320
- return input;
321
- }
322
- if (isUrl(input) || input.includes('https://') || input.includes('http')) {
323
- return input;
324
- }
325
- if (input.startsWith('/ipfs/')) {
326
- return SUBWALLET_IPFS + input.split('/ipfs/')[1];
327
- }
328
- if (!input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
329
- // just the IPFS hash
330
- return SUBWALLET_IPFS + input;
331
- }
332
- if (input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
333
- // starts with ipfs://
334
- return SUBWALLET_IPFS + input.split('ipfs://')[1];
335
- }
336
- return SUBWALLET_IPFS + input.split('ipfs://ipfs/')[1]; // starts with ipfs://ipfs/
337
- };
338
-
339
290
  export function wait(milliseconds) {
340
291
  return new Promise(resolve => {
341
292
  setTimeout(() => {
@@ -346,9 +297,8 @@ export function wait(milliseconds) {
346
297
  export * from "./account.js";
347
298
  export * from "./array.js";
348
299
  export * from "./environment.js";
349
- export * from "./number.js";
350
300
  export * from "./lazy.js";
351
- export * from "./promise.js";
352
301
  export * from "./registry.js";
353
302
  export * from "./translate.js";
354
- export * from "./object.js";
303
+ export * from "./fetchStaticData.js";
304
+ export * from "./fetchEvmChainInfo.js";
package/utils/number.d.ts CHANGED
@@ -6,4 +6,4 @@ export interface NumberFormatter {
6
6
  export declare const balanceFormatter: NumberFormatter;
7
7
  export declare const PREDEFINED_FORMATTER: Record<string, NumberFormatter>;
8
8
  export declare const toBNString: (input: string | number | BigNumber, decimal: number) => string;
9
- export declare const formatNumber: (input: string | number | BigNumber, decimal: number, formatter?: NumberFormatter, metadata?: Record<string, number>) => string;
9
+ export declare const formatNumber: (input: string | number | BigNumber, decimal: number, formatter: NumberFormatter, metadata?: Record<string, number>) => string;
package/utils/number.js CHANGED
@@ -94,7 +94,7 @@ export const toBNString = (input, decimal) => {
94
94
  const raw = new BigNumber(input);
95
95
  return raw.multipliedBy(BN_TEN.pow(decimal)).toFixed();
96
96
  };
97
- export const formatNumber = (input, decimal, formatter = balanceFormatter, metadata) => {
97
+ export const formatNumber = (input, decimal, formatter, metadata) => {
98
98
  const raw = new BigNumber(input).dividedBy(BN_TEN.pow(decimal)).toFixed();
99
99
  return formatter(raw, metadata);
100
100
  };
@@ -1,464 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.subscribeBalance = subscribeBalance;
8
- exports.subscribeEVMBalance = subscribeEVMBalance;
9
- exports.subscribeSubstrateBalance = subscribeSubstrateBalance;
10
- var _types = require("@subwallet/chain-list/types");
11
- var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
12
- var _constants = require("@subwallet/extension-base/constants");
13
- var _balance = require("@subwallet/extension-base/koni/api/tokens/evm/balance");
14
- var _web = require("@subwallet/extension-base/koni/api/tokens/evm/web3");
15
- var _wasm = require("@subwallet/extension-base/koni/api/tokens/wasm");
16
- var _utils = require("@subwallet/extension-base/koni/api/tokens/wasm/utils");
17
- var _handlers = require("@subwallet/extension-base/koni/background/handlers");
18
- var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
19
- var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
20
- var _utils3 = require("@subwallet/extension-base/utils");
21
- var _bignumber = _interopRequireDefault(require("bignumber.js"));
22
- var _util = require("@polkadot/util");
23
- // Copyright 2019-2022 @subwallet/extension-base
24
- // SPDX-License-Identifier: Apache-2.0
25
-
26
- // main subscription
27
- function subscribeBalance(addresses, chainInfoMap, substrateApiMap, evmApiMap, callback) {
28
- const [substrateAddresses, evmAddresses] = (0, _utils3.categoryAddresses)(addresses);
29
-
30
- // Looping over each chain
31
- const unsubList = Object.entries(chainInfoMap).map(async _ref => {
32
- let [chainSlug, chainInfo] = _ref;
33
- const useAddresses = (0, _utils2._isChainEvmCompatible)(chainInfo) ? evmAddresses : substrateAddresses;
34
- if ((0, _utils2._isPureEvmChain)(chainInfo)) {
35
- const nativeTokenInfo = _handlers.state.getNativeTokenInfo(chainSlug);
36
- return subscribeEVMBalance(chainSlug, useAddresses, evmApiMap, callback, nativeTokenInfo);
37
- }
38
- if (!useAddresses || useAddresses.length === 0 || _constants2._PURE_EVM_CHAINS.indexOf(chainSlug) > -1) {
39
- const fungibleTokensByChain = _handlers.state.chainService.getFungibleTokensByChain(chainSlug, true);
40
- const now = new Date().getTime();
41
- Object.values(fungibleTokensByChain).map(token => {
42
- return {
43
- tokenSlug: token.slug,
44
- free: '0',
45
- locked: '0',
46
- state: _KoniTypes.APIItemState.READY,
47
- timestamp: now
48
- };
49
- }).forEach(callback);
50
- return undefined;
51
- }
52
- const networkAPI = await substrateApiMap[chainSlug].isReady;
53
- return subscribeSubstrateBalance(useAddresses, chainInfo, chainSlug, networkAPI, evmApiMap, callback);
54
- });
55
- return () => {
56
- unsubList.forEach(subProm => {
57
- subProm.then(unsub => {
58
- unsub && unsub();
59
- }).catch(console.error);
60
- });
61
- };
62
- }
63
- async function subscribeSubstrateBalance(addresses, chainInfo, chain, networkAPI, evmApiMap, callBack) {
64
- let unsubNativeToken;
65
- if (!_constants2._BALANCE_CHAIN_GROUP.kintsugi.includes(chain) && !_constants2._BALANCE_CHAIN_GROUP.genshiro.includes(chain) && !_constants2._BALANCE_CHAIN_GROUP.equilibrium_parachain.includes(chain)) {
66
- unsubNativeToken = await subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI.api, callBack);
67
- }
68
- let unsubLocalToken;
69
- let unsubEvmContractToken;
70
- let unsubWasmContractToken;
71
- try {
72
- if (_constants2._BALANCE_CHAIN_GROUP.bifrost.includes(chain)) {
73
- unsubLocalToken = await subscribeTokensAccountsPallet(addresses, chain, networkAPI.api, callBack);
74
- } else if (_constants2._BALANCE_CHAIN_GROUP.kintsugi.includes(chain)) {
75
- unsubLocalToken = await subscribeTokensAccountsPallet(addresses, chain, networkAPI.api, callBack, true);
76
- } else if (_constants2._BALANCE_CHAIN_GROUP.statemine.includes(chain)) {
77
- unsubLocalToken = await subscribeAssetsAccountPallet(addresses, chain, networkAPI.api, callBack);
78
- } else if (_constants2._BALANCE_CHAIN_GROUP.genshiro.includes(chain)) {
79
- unsubLocalToken = await subscribeEqBalanceAccountPallet(addresses, chain, networkAPI.api, callBack, true);
80
- } else if (_constants2._BALANCE_CHAIN_GROUP.equilibrium_parachain.includes(chain)) {
81
- unsubLocalToken = await subscribeEquilibriumTokenBalance(addresses, chain, networkAPI.api, callBack, true);
82
- } else if (_constants2._BALANCE_CHAIN_GROUP.centrifuge.includes(chain)) {
83
- unsubLocalToken = await subscribeOrmlTokensPallet(addresses, chain, networkAPI.api, callBack);
84
- }
85
- if ((0, _utils2._isChainEvmCompatible)(chainInfo)) {
86
- unsubEvmContractToken = subscribeERC20Interval(addresses, chain, evmApiMap, callBack);
87
- }
88
- if ((0, _utils2._checkSmartContractSupportByChain)(chainInfo, _types._AssetType.PSP22)) {
89
- // Get sub-token for substrate-based chains
90
- unsubWasmContractToken = subscribePSP22Balance(addresses, chain, networkAPI.api, callBack);
91
- }
92
- } catch (err) {
93
- console.warn(err);
94
- }
95
- return () => {
96
- unsubNativeToken && unsubNativeToken();
97
- unsubLocalToken && unsubLocalToken();
98
- unsubEvmContractToken && unsubEvmContractToken();
99
- unsubWasmContractToken && unsubWasmContractToken();
100
- };
101
- }
102
-
103
- // handler according to different logic
104
- async function subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI, callBack) {
105
- const chainNativeTokenSlug = (0, _utils2._getChainNativeTokenSlug)(chainInfo);
106
- const unsub = await networkAPI.query.system.account.multi(addresses, async balances => {
107
- let [total, reserved, miscFrozen, feeFrozen] = [new _util.BN(0), new _util.BN(0), new _util.BN(0), new _util.BN(0)];
108
- let pooledStakingBalance = _util.BN_ZERO;
109
- if ((0, _utils2._isSubstrateRelayChain)(chainInfo) && networkAPI.query.nominationPools) {
110
- var _networkAPI$query$nom;
111
- const poolMemberDatas = await ((_networkAPI$query$nom = networkAPI.query.nominationPools.poolMembers) === null || _networkAPI$query$nom === void 0 ? void 0 : _networkAPI$query$nom.multi(addresses));
112
- if (poolMemberDatas) {
113
- for (const _poolMemberData of poolMemberDatas) {
114
- const poolMemberData = _poolMemberData.toPrimitive();
115
- if (poolMemberData) {
116
- const pooledBalance = new _util.BN(poolMemberData.points.toString());
117
- pooledStakingBalance = pooledStakingBalance.add(pooledBalance);
118
- Object.entries(poolMemberData.unbondingEras).forEach(_ref2 => {
119
- let [, amount] = _ref2;
120
- pooledStakingBalance = pooledStakingBalance.add(new _util.BN(amount));
121
- });
122
- }
123
- }
124
- }
125
- }
126
- balances.forEach(balance => {
127
- var _balance$data, _balance$data$free, _balance$data2, _balance$data2$reserv, _balance$data3, _balance$data3$miscFr, _balance$data4, _balance$data4$frozen, _balance$data5, _balance$data5$feeFro;
128
- total = total.add(((_balance$data = balance.data) === null || _balance$data === void 0 ? void 0 : (_balance$data$free = _balance$data.free) === null || _balance$data$free === void 0 ? void 0 : _balance$data$free.toBn()) || new _util.BN(0)); // reserved is seperated
129
- reserved = reserved.add(((_balance$data2 = balance.data) === null || _balance$data2 === void 0 ? void 0 : (_balance$data2$reserv = _balance$data2.reserved) === null || _balance$data2$reserv === void 0 ? void 0 : _balance$data2$reserv.toBn()) || new _util.BN(0));
130
- // @ts-ignore
131
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
132
- miscFrozen = miscFrozen.add(((_balance$data3 = balance.data) === null || _balance$data3 === void 0 ? void 0 : (_balance$data3$miscFr = _balance$data3.miscFrozen) === null || _balance$data3$miscFr === void 0 ? void 0 : _balance$data3$miscFr.toBn()) || (balance === null || balance === void 0 ? void 0 : (_balance$data4 = balance.data) === null || _balance$data4 === void 0 ? void 0 : (_balance$data4$frozen = _balance$data4.frozen) === null || _balance$data4$frozen === void 0 ? void 0 : _balance$data4$frozen.toBn()) || new _util.BN(0)); // TODO: update frozen
133
- feeFrozen = feeFrozen.add(((_balance$data5 = balance.data) === null || _balance$data5 === void 0 ? void 0 : (_balance$data5$feeFro = _balance$data5.feeFrozen) === null || _balance$data5$feeFro === void 0 ? void 0 : _balance$data5$feeFro.toBn()) || new _util.BN(0));
134
- });
135
- let locked = reserved.add(miscFrozen);
136
- total = total.add(reserved); // total = free + reserved
137
-
138
- if (pooledStakingBalance.gt(_util.BN_ZERO)) {
139
- total = total.add(pooledStakingBalance);
140
- locked = locked.add(pooledStakingBalance);
141
- }
142
- const free = total.sub(locked);
143
- callBack({
144
- tokenSlug: chainNativeTokenSlug,
145
- free: free.gte(_util.BN_ZERO) ? free.toString() : '0',
146
- locked: locked.toString(),
147
- state: _KoniTypes.APIItemState.READY,
148
- substrateInfo: {
149
- miscFrozen: miscFrozen.toString(),
150
- reserved: reserved.toString(),
151
- feeFrozen: feeFrozen.toString()
152
- }
153
- });
154
- });
155
- return () => {
156
- unsub();
157
- };
158
- }
159
- function subscribeERC20Interval(addresses, chain, evmApiMap, callBack) {
160
- let tokenList = {};
161
- const erc20ContractMap = {};
162
- const getTokenBalances = () => {
163
- Object.values(tokenList).map(async tokenInfo => {
164
- let free = new _util.BN(0);
165
- try {
166
- const contract = erc20ContractMap[tokenInfo.slug];
167
- const balanceList = await Promise.all(addresses.map(address => {
168
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
169
- return contract.methods.balanceOf(address).call();
170
- }));
171
- free = (0, _utils3.sumBN)(balanceList.map(balance => new _util.BN(balance || 0)));
172
- callBack({
173
- tokenSlug: tokenInfo.slug,
174
- free: free.toString(),
175
- locked: '0',
176
- state: _KoniTypes.APIItemState.READY
177
- });
178
- } catch (err) {
179
- console.log(tokenInfo.slug, err);
180
- }
181
- });
182
- };
183
- tokenList = _handlers.state.getAssetByChainAndAsset(chain, [_types._AssetType.ERC20]);
184
- Object.entries(tokenList).forEach(_ref3 => {
185
- let [slug, tokenInfo] = _ref3;
186
- erc20ContractMap[slug] = (0, _web.getERC20Contract)(chain, (0, _utils2._getContractAddressOfToken)(tokenInfo), evmApiMap);
187
- });
188
- getTokenBalances();
189
- const interval = setInterval(getTokenBalances, _constants.SUB_TOKEN_REFRESH_BALANCE_INTERVAL);
190
- return () => {
191
- clearInterval(interval);
192
- };
193
- }
194
- function subscribePSP22Balance(addresses, chain, api, callBack) {
195
- let tokenList = {};
196
- const psp22ContractMap = {};
197
- const getTokenBalances = () => {
198
- Object.values(tokenList).map(async tokenInfo => {
199
- let free = new _util.BN(0);
200
- try {
201
- const contract = psp22ContractMap[tokenInfo.slug];
202
- const balances = await Promise.all(addresses.map(async address => {
203
- var _balanceOf$output;
204
- const _balanceOf = await contract.query['psp22::balanceOf'](address, {
205
- gasLimit: (0, _utils.getDefaultWeightV2)(api)
206
- }, address);
207
- const balanceObj = _balanceOf === null || _balanceOf === void 0 ? void 0 : (_balanceOf$output = _balanceOf.output) === null || _balanceOf$output === void 0 ? void 0 : _balanceOf$output.toPrimitive();
208
- return _balanceOf.output ? balanceObj.ok || balanceObj.Ok : '0';
209
- }));
210
- free = (0, _utils3.sumBN)(balances.map(bal => new _util.BN(bal || 0)));
211
- callBack({
212
- tokenSlug: tokenInfo.slug,
213
- free: free.toString(),
214
- locked: '0',
215
- state: _KoniTypes.APIItemState.READY
216
- });
217
- } catch (err) {
218
- console.warn(tokenInfo.slug, err); // TODO: error createType
219
- }
220
- });
221
- };
222
-
223
- tokenList = _handlers.state.getAssetByChainAndAsset(chain, [_types._AssetType.PSP22]);
224
- Object.entries(tokenList).forEach(_ref4 => {
225
- let [slug, tokenInfo] = _ref4;
226
- psp22ContractMap[slug] = (0, _wasm.getPSP22ContractPromise)(api, (0, _utils2._getContractAddressOfToken)(tokenInfo));
227
- });
228
- getTokenBalances();
229
- const interval = setInterval(getTokenBalances, _constants.SUB_TOKEN_REFRESH_BALANCE_INTERVAL);
230
- return () => {
231
- clearInterval(interval);
232
- };
233
- }
234
- async function subscribeEquilibriumTokenBalance(addresses, chain, api, callBack, includeNativeToken) {
235
- const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
236
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
237
- const unsub = await api.query.system.account.multi(addresses, balances => {
238
- // Equilibrium customizes the SystemAccount pallet
239
- Object.values(tokenMap).forEach(tokenInfo => {
240
- const assetId = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
241
- let tokenFreeBalance = _util.BN_ZERO;
242
- for (const balance of balances) {
243
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
244
- const balancesData = JSON.parse(balance.data.toString());
245
- const balanceList = balancesData.v0.balance;
246
-
247
- // @ts-ignore
248
- const freeTokenBalance = balanceList.find(data => data[0] === parseInt(assetId));
249
- const bnFreeTokenBalance = freeTokenBalance ? new _util.BN(new _bignumber.default(freeTokenBalance[1].positive).toString()) : _util.BN_ZERO;
250
- tokenFreeBalance = tokenFreeBalance.add(bnFreeTokenBalance);
251
- }
252
- const tokenBalance = {
253
- free: tokenFreeBalance.toString(),
254
- locked: '0',
255
- // Equilibrium doesn't show locked balance
256
- state: _KoniTypes.APIItemState.READY,
257
- tokenSlug: tokenInfo.slug
258
- };
259
- callBack(tokenBalance);
260
- });
261
- });
262
- return () => {
263
- unsub();
264
- };
265
- }
266
-
267
- // eslint-disable-next-line @typescript-eslint/require-await
268
- async function subscribeEqBalanceAccountPallet(addresses, chain, api, callBack, includeNativeToken) {
269
- const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
270
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
271
- const unsubList = Object.values(tokenMap).map(async tokenInfo => {
272
- try {
273
- const assetId = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
274
- const unsub = await api.query.eqBalances.account.multi(addresses.map(address => [address, [assetId]]), balances => {
275
- const tokenBalance = {
276
- free: (0, _utils3.sumBN)(balances.map(b => b.asPositive)).toString(),
277
- locked: '0',
278
- // Equilibrium doesn't show locked balance
279
- state: _KoniTypes.APIItemState.READY,
280
- tokenSlug: tokenInfo.slug
281
- };
282
- callBack(tokenBalance);
283
- });
284
- return unsub;
285
- } catch (err) {
286
- console.warn(err);
287
- return undefined;
288
- }
289
- });
290
- return () => {
291
- unsubList.forEach(subProm => {
292
- subProm.then(unsub => {
293
- unsub && unsub();
294
- }).catch(console.error);
295
- });
296
- };
297
- }
298
-
299
- // eslint-disable-next-line @typescript-eslint/require-await
300
- async function subscribeOrmlTokensPallet(addresses, chain, api, callBack) {
301
- const tokenTypes = [_types._AssetType.LOCAL];
302
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
303
- const unsubList = Object.values(tokenMap).map(async tokenInfo => {
304
- try {
305
- const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo);
306
-
307
- // Get Token Balance
308
- // @ts-ignore
309
- const unsub = await api.query.ormlTokens.accounts.multi(addresses.map(address => [address, onChainInfo]), balances => {
310
- const tokenBalance = {
311
- reserved: (0, _utils3.sumBN)(balances.map(b => b.reserved || new _util.BN(0))),
312
- frozen: (0, _utils3.sumBN)(balances.map(b => b.frozen || new _util.BN(0))),
313
- free: (0, _utils3.sumBN)(balances.map(b => b.free || new _util.BN(0))) // free is actually total balance
314
- };
315
-
316
- // free balance = total balance - frozen misc
317
- // locked balance = reserved + frozen misc
318
- const freeBalance = tokenBalance.free.sub(tokenBalance.frozen);
319
- const lockedBalance = tokenBalance.frozen.add(tokenBalance.reserved);
320
- callBack({
321
- tokenSlug: tokenInfo.slug,
322
- state: _KoniTypes.APIItemState.READY,
323
- free: freeBalance.toString(),
324
- locked: lockedBalance.toString(),
325
- substrateInfo: {
326
- reserved: tokenBalance.reserved.toString(),
327
- miscFrozen: tokenBalance.frozen.toString()
328
- }
329
- });
330
- });
331
- return unsub;
332
- } catch (err) {
333
- console.warn(err);
334
- return undefined;
335
- }
336
- });
337
- return () => {
338
- unsubList.forEach(subProm => {
339
- subProm.then(unsub => {
340
- unsub && unsub();
341
- }).catch(console.error);
342
- });
343
- };
344
- }
345
- async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, includeNativeToken) {
346
- const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
347
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
348
- const unsubList = await Promise.all(Object.values(tokenMap).map(async tokenInfo => {
349
- try {
350
- const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo);
351
- const assetId = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
352
-
353
- // Get Token Balance
354
- // @ts-ignore
355
- return await api.query.tokens.accounts.multi(addresses.map(address => [address, onChainInfo || assetId]), balances => {
356
- const tokenBalance = {
357
- reserved: (0, _utils3.sumBN)(balances.map(b => b.reserved || new _util.BN(0))),
358
- frozen: (0, _utils3.sumBN)(balances.map(b => b.frozen || new _util.BN(0))),
359
- free: (0, _utils3.sumBN)(balances.map(b => b.free || new _util.BN(0))) // free is actually total balance
360
- };
361
-
362
- // free balance = total balance - frozen misc
363
- // locked balance = reserved + frozen misc
364
- const freeBalance = tokenBalance.free.sub(tokenBalance.frozen);
365
- const lockedBalance = tokenBalance.frozen.add(tokenBalance.reserved);
366
- callBack({
367
- tokenSlug: tokenInfo.slug,
368
- state: _KoniTypes.APIItemState.READY,
369
- free: freeBalance.toString(),
370
- locked: lockedBalance.toString(),
371
- substrateInfo: {
372
- reserved: tokenBalance.reserved.toString(),
373
- miscFrozen: tokenBalance.frozen.toString()
374
- }
375
- });
376
- });
377
- } catch (err) {
378
- console.warn(err);
379
- }
380
- return undefined;
381
- }));
382
- return () => {
383
- unsubList.forEach(unsub => {
384
- unsub && unsub();
385
- });
386
- };
387
- }
388
- async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
389
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, [_types._AssetType.LOCAL]);
390
- Object.values(tokenMap).forEach(token => {
391
- if (_constants2._MANTA_ZK_CHAIN_GROUP.includes(token.originChain) && token.symbol.startsWith(_constants2._ZK_ASSET_PREFIX)) {
392
- delete tokenMap[token.slug];
393
- }
394
- });
395
- const unsubList = await Promise.all(Object.values(tokenMap).map(async tokenInfo => {
396
- try {
397
- const assetIndex = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
398
-
399
- // Get Token Balance
400
- return await api.query.assets.account.multi(addresses.map(address => [assetIndex, address]), balances => {
401
- let total = new _util.BN(0);
402
- let frozen = new _util.BN(0);
403
- balances.forEach(b => {
404
- // @ts-ignore
405
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-assignment
406
- const bdata = b === null || b === void 0 ? void 0 : b.toHuman();
407
- if (bdata) {
408
- // @ts-ignore
409
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument
410
- const addressBalance = new _util.BN(String(bdata === null || bdata === void 0 ? void 0 : bdata.balance).replaceAll(',', '') || '0');
411
-
412
- // @ts-ignore
413
- if (bdata !== null && bdata !== void 0 && bdata.isFrozen) {
414
- frozen = frozen.add(addressBalance);
415
- } else {
416
- total = total.add(addressBalance);
417
- }
418
- }
419
- });
420
- const free = total.sub(frozen);
421
- callBack({
422
- tokenSlug: tokenInfo.slug,
423
- free: free.toString(),
424
- locked: frozen.toString(),
425
- state: _KoniTypes.APIItemState.READY,
426
- substrateInfo: {
427
- miscFrozen: frozen.toString(),
428
- reserved: '0'
429
- }
430
- });
431
- });
432
- } catch (err) {
433
- console.warn(err);
434
- }
435
- return undefined;
436
- }));
437
- return () => {
438
- unsubList.forEach(unsub => {
439
- unsub && unsub();
440
- });
441
- };
442
- }
443
- function subscribeEVMBalance(chain, addresses, evmApiMap, callback, tokenInfo) {
444
- const balanceItem = {
445
- tokenSlug: tokenInfo.slug,
446
- state: _KoniTypes.APIItemState.PENDING,
447
- free: '0',
448
- locked: '0'
449
- };
450
- function getBalance() {
451
- (0, _balance.getEVMBalance)(chain, addresses, evmApiMap).then(balances => {
452
- balanceItem.free = (0, _utils3.sumBN)(balances.map(b => new _util.BN(b || '0'))).toString();
453
- balanceItem.state = _KoniTypes.APIItemState.READY;
454
- callback(balanceItem);
455
- }).catch(console.warn);
456
- }
457
- getBalance();
458
- const interval = setInterval(getBalance, _constants.ASTAR_REFRESH_BALANCE_INTERVAL);
459
- const unsub2 = subscribeERC20Interval(addresses, chain, evmApiMap, callback);
460
- return () => {
461
- clearInterval(interval);
462
- unsub2 && unsub2();
463
- };
464
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GET_EXTRINSIC_PARAMS_API = exports.GET_EVENT_LIST_API = exports.BASE_FETCH_ORDINAL_EVENT_DATA = void 0;
7
- // Copyright 2019-2022 @subwallet/extension-base authors & contributors
8
- // SPDX-License-Identifier: Apache-2.0
9
-
10
- const GET_EVENT_LIST_API = 'https://{{chain}}.api.subscan.io/api/v2/scan/events';
11
- exports.GET_EVENT_LIST_API = GET_EVENT_LIST_API;
12
- const GET_EXTRINSIC_PARAMS_API = 'https://{{chain}}.api.subscan.io/api/scan/extrinsic/params';
13
- exports.GET_EXTRINSIC_PARAMS_API = GET_EXTRINSIC_PARAMS_API;
14
- const BASE_FETCH_ORDINAL_EVENT_DATA = {
15
- event_id: 'Remarked',
16
- module: 'system',
17
- order: 'desc',
18
- success: true,
19
- row: 100
20
- };
21
- exports.BASE_FETCH_ORDINAL_EVENT_DATA = BASE_FETCH_ORDINAL_EVENT_DATA;