@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
@@ -1,11 +1,9 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { StakingType } from '@subwallet/extension-base/background/KoniTypes';
5
- import { getBondedValidators, getEarningStatusByNominations, isUnstakeAll } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
6
- import { _STAKING_ERA_LENGTH_MAP } from '@subwallet/extension-base/services/chain-service/constants';
7
- import { parseIdentity } from '@subwallet/extension-base/services/earning-service/utils';
8
- import { EarningStatus, UnstakingStatus } from '@subwallet/extension-base/types';
4
+ import { StakingStatus, StakingType, UnstakingStatus } from '@subwallet/extension-base/background/KoniTypes';
5
+ import { getBondedValidators, getStakingStatusByNominations, isUnstakeAll, parseIdentity } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
6
+ import { _STAKING_CHAIN_GROUP, _STAKING_ERA_LENGTH_MAP } from '@subwallet/extension-base/services/chain-service/constants';
9
7
  import { parseRawNumber, reformatAddress } from '@subwallet/extension-base/utils';
10
8
  import { BN, BN_ZERO } from '@polkadot/util';
11
9
  import { isEthereumAddress } from '@polkadot/util-crypto';
@@ -18,7 +16,7 @@ export function subscribeAmplitudeStakingMetadata(chain, substrateApi, callback)
18
16
  const unstakingDelay = substrateApi.api.consts.parachainStaking.stakeDuration.toString();
19
17
  const _blockPerRound = substrateApi.api.consts.parachainStaking.defaultBlocksPerRound.toString();
20
18
  const blockPerRound = parseFloat(_blockPerRound);
21
- const blockDuration = (_STAKING_ERA_LENGTH_MAP[chain] || _STAKING_ERA_LENGTH_MAP.default) / blockPerRound; // in hours
19
+ const blockDuration = (_STAKING_ERA_LENGTH_MAP[chain] || _STAKING_ERA_LENGTH_MAP.default) / blockPerRound;
22
20
  const unstakingPeriod = blockDuration * parseInt(unstakingDelay);
23
21
  callback(chain, {
24
22
  chain,
@@ -60,48 +58,54 @@ export async function subscribeAmplitudeNominatorMetadata(chainInfo, address, su
60
58
  const nominationList = [];
61
59
  const unstakingList = [];
62
60
  const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
61
+ const hasUnstakingInfo = unstakingInfo && Object.values(unstakingInfo).length > 0;
63
62
  let activeStake = '0';
64
63
  if (delegatorState) {
65
64
  // delegatorState can be null while unstaking all
66
- const [identity] = await parseIdentity(substrateApi, delegatorState.owner);
67
- activeStake = delegatorState.amount.toString();
68
- const bnActiveStake = new BN(activeStake);
69
- let delegationStatus = EarningStatus.NOT_EARNING;
70
- if (bnActiveStake.gt(BN_ZERO) && bnActiveStake.gte(new BN(minDelegatorStake))) {
71
- delegationStatus = EarningStatus.EARNING_REWARD;
72
- }
73
- nominationList.push({
74
- status: delegationStatus,
75
- chain: chainInfo.slug,
76
- validatorAddress: delegatorState.owner,
77
- activeStake: delegatorState.amount.toString(),
78
- validatorMinStake: '0',
79
- hasUnstaking: !!unstakingInfo && Object.values(unstakingInfo).length > 0,
80
- validatorIdentity: identity
81
- });
82
- }
83
- if (unstakingInfo && Object.values(unstakingInfo).length > 0) {
84
- const _currentBlockInfo = await substrateApi.api.rpc.chain.getHeader();
85
- const currentBlockInfo = _currentBlockInfo.toPrimitive();
86
- const currentBlockNumber = currentBlockInfo.number;
87
- const _blockPerRound = substrateApi.api.consts.parachainStaking.defaultBlocksPerRound.toString();
88
- const blockPerRound = parseFloat(_blockPerRound);
89
- const nearestUnstakingBlock = Object.keys(unstakingInfo)[0];
90
- const nearestUnstakingAmount = Object.values(unstakingInfo)[0];
91
- const blockDuration = (_STAKING_ERA_LENGTH_MAP[chainInfo.slug] || _STAKING_ERA_LENGTH_MAP.default) / blockPerRound; // in hours
65
+ const identityPromises = delegatorState.map(delegate => parseIdentity(substrateApi, delegate.owner));
66
+ const identities = await Promise.all(identityPromises);
67
+ for (let i = 0; i < delegatorState.length; i++) {
68
+ const delegate = delegatorState[i];
69
+ const [identity] = identities[i];
70
+ activeStake = delegate.amount.toString();
71
+ const bnActiveStake = new BN(activeStake);
72
+ let delegationStatus = StakingStatus.NOT_EARNING;
73
+ if (bnActiveStake.gt(BN_ZERO) && bnActiveStake.gte(new BN(minDelegatorStake))) {
74
+ delegationStatus = StakingStatus.EARNING_REWARD;
75
+ }
76
+ nominationList.push({
77
+ status: delegationStatus,
78
+ chain: chainInfo.slug,
79
+ validatorAddress: delegate.owner,
80
+ activeStake: delegate.amount.toString(),
81
+ validatorMinStake: '0',
82
+ hasUnstaking: hasUnstakingInfo,
83
+ validatorIdentity: identity
84
+ });
85
+ if (hasUnstakingInfo) {
86
+ const _currentBlockInfo = await substrateApi.api.rpc.chain.getHeader();
87
+ const currentBlockInfo = _currentBlockInfo.toPrimitive();
88
+ const currentBlockNumber = currentBlockInfo.number;
89
+ const _blockPerRound = substrateApi.api.consts.parachainStaking.defaultBlocksPerRound.toString();
90
+ const blockPerRound = parseFloat(_blockPerRound);
91
+ const nearestUnstakingBlock = Object.keys(unstakingInfo)[0];
92
+ const nearestUnstakingAmount = Object.values(unstakingInfo)[0];
93
+ const blockDuration = (_STAKING_ERA_LENGTH_MAP[chainInfo.slug] || _STAKING_ERA_LENGTH_MAP.default) / blockPerRound; // in hours
92
94
 
93
- const isClaimable = parseInt(nearestUnstakingBlock) - currentBlockNumber < 0;
94
- const remainingBlock = parseInt(nearestUnstakingBlock) - currentBlockNumber;
95
- const waitingTime = remainingBlock * blockDuration;
96
- unstakingList.push({
97
- chain: chainInfo.slug,
98
- status: isClaimable ? UnstakingStatus.CLAIMABLE : UnstakingStatus.UNLOCKING,
99
- claimable: nearestUnstakingAmount.toString(),
100
- waitingTime,
101
- validatorAddress: (delegatorState === null || delegatorState === void 0 ? void 0 : delegatorState.owner) || undefined
102
- });
95
+ const isClaimable = parseInt(nearestUnstakingBlock) - currentBlockNumber < 0;
96
+ const remainingBlock = parseInt(nearestUnstakingBlock) - currentBlockNumber;
97
+ const waitingTime = remainingBlock * blockDuration;
98
+ unstakingList.push({
99
+ chain: chainInfo.slug,
100
+ status: isClaimable ? UnstakingStatus.CLAIMABLE : UnstakingStatus.UNLOCKING,
101
+ claimable: nearestUnstakingAmount.toString(),
102
+ waitingTime,
103
+ validatorAddress: (delegate === null || delegate === void 0 ? void 0 : delegate.owner) || undefined
104
+ });
105
+ }
106
+ }
103
107
  }
104
- const stakingStatus = getEarningStatusByNominations(new BN(activeStake), nominationList);
108
+ const stakingStatus = getStakingStatusByNominations(new BN(activeStake), nominationList);
105
109
  return {
106
110
  chain: chainInfo.slug,
107
111
  type: StakingType.NOMINATED,
@@ -133,7 +137,7 @@ export async function getAmplitudeNominatorMetadata(chainInfo, address, substrat
133
137
  chain: chainInfo.slug,
134
138
  type: StakingType.NOMINATED,
135
139
  address,
136
- status: EarningStatus.NOT_STAKING,
140
+ status: StakingStatus.NOT_STAKING,
137
141
  activeStake: '0',
138
142
  nominations: [],
139
143
  unstakings: []
@@ -145,9 +149,9 @@ export async function getAmplitudeNominatorMetadata(chainInfo, address, substrat
145
149
  const [identity] = await parseIdentity(substrateApi, delegatorState.owner);
146
150
  activeStake = delegatorState.amount.toString();
147
151
  const bnActiveStake = new BN(activeStake);
148
- let delegationStatus = EarningStatus.NOT_EARNING;
152
+ let delegationStatus = StakingStatus.NOT_EARNING;
149
153
  if (bnActiveStake.gt(BN_ZERO) && bnActiveStake.gte(new BN(minDelegatorStake))) {
150
- delegationStatus = EarningStatus.EARNING_REWARD;
154
+ delegationStatus = StakingStatus.EARNING_REWARD;
151
155
  }
152
156
  nominationList.push({
153
157
  status: delegationStatus,
@@ -183,7 +187,7 @@ export async function getAmplitudeNominatorMetadata(chainInfo, address, substrat
183
187
  if (nominationList.length === 0 && unstakingList.length === 0) {
184
188
  return;
185
189
  }
186
- const stakingStatus = getEarningStatusByNominations(new BN(activeStake), nominationList);
190
+ const stakingStatus = getStakingStatusByNominations(new BN(activeStake), nominationList);
187
191
  return {
188
192
  chain,
189
193
  type: StakingType.NOMINATED,
@@ -196,33 +200,61 @@ export async function getAmplitudeNominatorMetadata(chainInfo, address, substrat
196
200
  }
197
201
  export async function getAmplitudeCollatorsInfo(chain, substrateApi) {
198
202
  const chainApi = await substrateApi.isReady;
199
- const [_allCollators, _inflationConfig] = await Promise.all([chainApi.api.query.parachainStaking.candidatePool.entries(), chainApi.api.query.parachainStaking.inflationConfig()]);
200
- const maxDelegatorsPerCollator = chainApi.api.consts.parachainStaking.maxDelegatorsPerCollator.toString();
201
- const inflationConfig = _inflationConfig.toHuman();
202
- const rawDelegatorReturn = inflationConfig.delegator.rewardRate.annual;
203
- const delegatorReturn = parseFloat(rawDelegatorReturn.split('%')[0]);
204
- const allCollators = [];
205
- for (const _collator of _allCollators) {
206
- const collatorInfo = _collator[1].toPrimitive();
207
- const bnTotalStake = new BN(collatorInfo.total);
208
- const bnOwnStake = new BN(collatorInfo.stake);
209
- const bnOtherStake = bnTotalStake.sub(bnOwnStake);
210
- allCollators.push({
211
- address: collatorInfo.id,
212
- totalStake: bnTotalStake.toString(),
213
- ownStake: bnOwnStake.toString(),
214
- otherStake: bnOtherStake.toString(),
215
- nominatorCount: collatorInfo.delegators.length,
216
- commission: 0,
217
- expectedReturn: delegatorReturn,
218
- blocked: false,
219
- isVerified: false,
220
- minBond: '0',
221
- chain,
222
- isCrowded: collatorInfo.delegators.length >= parseInt(maxDelegatorsPerCollator)
223
- });
203
+
204
+ // Noted: Krest do not have reward
205
+ if (_STAKING_CHAIN_GROUP.krest_network.includes(chain)) {
206
+ const _allCollators = await chainApi.api.query.parachainStaking.candidatePool.entries();
207
+ const maxDelegatorsPerCollator = chainApi.api.consts.parachainStaking.maxDelegatorsPerCollator.toString();
208
+ const allCollators = [];
209
+ for (const _collator of _allCollators) {
210
+ const collatorInfo = _collator[1].toPrimitive();
211
+ const bnTotalStake = new BN(collatorInfo.total);
212
+ const bnOwnStake = new BN(collatorInfo.stake);
213
+ const bnOtherStake = bnTotalStake.sub(bnOwnStake);
214
+ allCollators.push({
215
+ address: collatorInfo.id,
216
+ totalStake: bnTotalStake.toString(),
217
+ ownStake: bnOwnStake.toString(),
218
+ otherStake: bnOtherStake.toString(),
219
+ nominatorCount: collatorInfo.delegators.length,
220
+ commission: 0,
221
+ blocked: false,
222
+ isVerified: false,
223
+ minBond: '0',
224
+ chain,
225
+ isCrowded: collatorInfo.delegators.length >= parseInt(maxDelegatorsPerCollator)
226
+ });
227
+ }
228
+ return allCollators;
229
+ } else {
230
+ const [_allCollators, _inflationConfig] = await Promise.all([chainApi.api.query.parachainStaking.candidatePool.entries(), chainApi.api.query.parachainStaking.inflationConfig()]);
231
+ const maxDelegatorsPerCollator = chainApi.api.consts.parachainStaking.maxDelegatorsPerCollator.toString();
232
+ const inflationConfig = _inflationConfig.toHuman();
233
+ const rawDelegatorReturn = inflationConfig.delegator.rewardRate.annual;
234
+ const delegatorReturn = parseFloat(rawDelegatorReturn.split('%')[0]);
235
+ const allCollators = [];
236
+ for (const _collator of _allCollators) {
237
+ const collatorInfo = _collator[1].toPrimitive();
238
+ const bnTotalStake = new BN(collatorInfo.total);
239
+ const bnOwnStake = new BN(collatorInfo.stake);
240
+ const bnOtherStake = bnTotalStake.sub(bnOwnStake);
241
+ allCollators.push({
242
+ address: collatorInfo.id,
243
+ totalStake: bnTotalStake.toString(),
244
+ ownStake: bnOwnStake.toString(),
245
+ otherStake: bnOtherStake.toString(),
246
+ nominatorCount: collatorInfo.delegators.length,
247
+ commission: 0,
248
+ expectedReturn: delegatorReturn,
249
+ blocked: false,
250
+ isVerified: false,
251
+ minBond: '0',
252
+ chain,
253
+ isCrowded: collatorInfo.delegators.length >= parseInt(maxDelegatorsPerCollator)
254
+ });
255
+ }
256
+ return allCollators;
224
257
  }
225
- return allCollators;
226
258
  }
227
259
  export async function getAmplitudeBondingExtrinsic(substrateApi, amount, selectedValidatorInfo, nominatorMetadata) {
228
260
  const chainApi = await substrateApi.isReady;
@@ -1,10 +1,9 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { StakingType } from '@subwallet/extension-base/background/KoniTypes';
5
- import { getEarningStatusByNominations } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
4
+ import { StakingStatus, StakingType, UnstakingStatus } from '@subwallet/extension-base/background/KoniTypes';
5
+ import { getStakingStatusByNominations } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
6
6
  import { _STAKING_ERA_LENGTH_MAP } from '@subwallet/extension-base/services/chain-service/constants';
7
- import { EarningStatus, UnstakingStatus } from '@subwallet/extension-base/types';
8
7
  import { isUrl, parseRawNumber } from '@subwallet/extension-base/utils';
9
8
  import fetch from 'cross-fetch';
10
9
  import { BN, BN_ZERO } from '@polkadot/util';
@@ -100,7 +99,7 @@ export async function subscribeAstarNominatorMetadata(chainInfo, address, substr
100
99
  const currentStake = stakeList.slice(-1)[0].staked.toString() || '0';
101
100
  const bnCurrentStake = new BN(currentStake);
102
101
  if (bnCurrentStake.gt(BN_ZERO)) {
103
- const dappStakingStatus = bnCurrentStake.gt(BN_ZERO) && bnCurrentStake.gte(new BN(minDelegatorStake)) ? EarningStatus.EARNING_REWARD : EarningStatus.NOT_EARNING;
102
+ const dappStakingStatus = bnCurrentStake.gt(BN_ZERO) && bnCurrentStake.gte(new BN(minDelegatorStake)) ? StakingStatus.EARNING_REWARD : StakingStatus.NOT_EARNING;
104
103
  bnTotalActiveStake = bnTotalActiveStake.add(bnCurrentStake);
105
104
  const dappInfo = dAppInfoMap[dappAddress];
106
105
  nominationList.push({
@@ -135,13 +134,13 @@ export async function subscribeAstarNominatorMetadata(chainInfo, address, substr
135
134
  chain: chainInfo.slug,
136
135
  type: StakingType.NOMINATED,
137
136
  address,
138
- status: EarningStatus.NOT_STAKING,
137
+ status: StakingStatus.NOT_STAKING,
139
138
  activeStake: '0',
140
139
  nominations: [],
141
140
  unstakings: []
142
141
  };
143
142
  }
144
- const stakingStatus = getEarningStatusByNominations(bnTotalActiveStake, nominationList);
143
+ const stakingStatus = getStakingStatusByNominations(bnTotalActiveStake, nominationList);
145
144
  return {
146
145
  chain: chainInfo.slug,
147
146
  type: StakingType.NOMINATED,
@@ -186,7 +185,7 @@ export async function getAstarNominatorMetadata(chainInfo, address, substrateApi
186
185
  const currentStake = stakeList.slice(-1)[0].staked.toString() || '0';
187
186
  const bnCurrentStake = new BN(currentStake);
188
187
  if (bnCurrentStake.gt(BN_ZERO)) {
189
- const dappStakingStatus = bnCurrentStake.gt(BN_ZERO) && bnCurrentStake.gte(new BN(minDelegatorStake)) ? EarningStatus.EARNING_REWARD : EarningStatus.NOT_EARNING;
188
+ const dappStakingStatus = bnCurrentStake.gt(BN_ZERO) && bnCurrentStake.gte(new BN(minDelegatorStake)) ? StakingStatus.EARNING_REWARD : StakingStatus.NOT_EARNING;
190
189
  bnTotalActiveStake = bnTotalActiveStake.add(bnCurrentStake);
191
190
  const dappInfo = dAppInfoMap[dappAddress];
192
191
  nominationList.push({
@@ -221,13 +220,13 @@ export async function getAstarNominatorMetadata(chainInfo, address, substrateApi
221
220
  chain: chainInfo.slug,
222
221
  type: StakingType.NOMINATED,
223
222
  address,
224
- status: EarningStatus.NOT_STAKING,
223
+ status: StakingStatus.NOT_STAKING,
225
224
  activeStake: '0',
226
225
  nominations: [],
227
226
  unstakings: []
228
227
  };
229
228
  }
230
- const stakingStatus = getEarningStatusByNominations(bnTotalActiveStake, nominationList);
229
+ const stakingStatus = getStakingStatusByNominations(bnTotalActiveStake, nominationList);
231
230
  return {
232
231
  chain,
233
232
  type: StakingType.NOMINATED,
@@ -4,13 +4,14 @@ import { ChainStakingMetadata, NominatorMetadata, StakingType, UnstakingInfo, Va
4
4
  import { _SubstrateApi } from '@subwallet/extension-base/services/chain-service/types';
5
5
  export declare function validateUnbondingCondition(nominatorMetadata: NominatorMetadata, amount: string, chain: string, chainStakingMetadata: ChainStakingMetadata, selectedValidator?: string): TransactionError[];
6
6
  export declare function validateBondingCondition(chainInfo: _ChainInfo, amount: string, selectedValidators: ValidatorInfo[], address: string, chainStakingMetadata: ChainStakingMetadata, nominatorMetadata?: NominatorMetadata): TransactionError[];
7
+ /** Deprecated */
7
8
  export declare function getChainStakingMetadata(chainInfo: _ChainInfo, substrateApi: _SubstrateApi): Promise<ChainStakingMetadata>;
8
9
  /**
9
10
  * Deprecated
10
11
  * */
11
12
  export declare function getNominatorMetadata(chainInfo: _ChainInfo, address: string, substrateApi: _SubstrateApi): Promise<NominatorMetadata | undefined>;
12
13
  export declare function getValidatorsInfo(networkKey: string, substrateApi: _SubstrateApi, decimals: number, chainStakingMetadata: ChainStakingMetadata): Promise<ValidatorInfo[]>;
13
- export declare function getNominationPoolsInfo(chain: string, substrateApi: _SubstrateApi): Promise<import("../../../../types").NominationPoolInfo[]>;
14
+ export declare function getNominationPoolsInfo(chain: string, substrateApi: _SubstrateApi): Promise<import("@subwallet/extension-base/background/KoniTypes").NominationPoolInfo[]>;
14
15
  export declare function getBondingExtrinsic(chainInfo: _ChainInfo, amount: string, selectedValidators: ValidatorInfo[], substrateApi: _SubstrateApi, address: string, nominatorMetadata?: NominatorMetadata): Promise<import("@polkadot/api-base/types").SubmittableExtrinsic<"promise", import("@polkadot/types/types").ISubmittableResult>>;
15
16
  export declare function getUnbondingExtrinsic(nominatorMetadata: NominatorMetadata, amount: string, chain: string, substrateApi: _SubstrateApi, selectedValidator?: string): Promise<import("@polkadot/api-base/types").SubmittableExtrinsic<"promise", import("@polkadot/types/types").ISubmittableResult>>;
16
17
  export declare function getWithdrawalExtrinsic(substrateApi: _SubstrateApi, chain: string, nominatorMetadata: NominatorMetadata, validatorAddress?: string): Promise<import("@polkadot/api-base/types").SubmittableExtrinsic<"promise", import("@polkadot/types/types").ISubmittableResult>>;
@@ -6,14 +6,10 @@ import { getAmplitudeBondingExtrinsic, getAmplitudeClaimRewardExtrinsic, getAmpl
6
6
  import { getAstarBondingExtrinsic, getAstarClaimRewardExtrinsic, getAstarDappsInfo, getAstarNominatorMetadata, getAstarStakingMetadata, getAstarUnbondingExtrinsic, getAstarWithdrawalExtrinsic, subscribeAstarStakingMetadata } from '@subwallet/extension-base/koni/api/staking/bonding/astar';
7
7
  import { getParaBondingExtrinsic, getParaCancelWithdrawalExtrinsic, getParachainCollatorsInfo, getParaChainNominatorMetadata, getParaChainStakingMetadata, getParaUnbondingExtrinsic, getParaWithdrawalExtrinsic, subscribeParaChainStakingMetadata, validateParaChainBondingCondition, validateParaChainUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding/paraChain';
8
8
  import { getPoolingClaimRewardExtrinsic, getPoolingWithdrawalExtrinsic, getRelayBondingExtrinsic, getRelayCancelWithdrawalExtrinsic, getRelayChainNominatorMetadata, getRelayChainStakingMetadata, getRelayPoolsInfo, getRelayUnbondingExtrinsic, getRelayValidatorsInfo, getRelayWithdrawalExtrinsic, subscribeRelayChainStakingMetadata, validateRelayBondingCondition, validateRelayUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding/relayChain';
9
- import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/earning-service/constants';
10
-
9
+ import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/chain-service/constants';
11
10
  // all addresses must be converted to its chain format
12
11
 
13
12
  export function validateUnbondingCondition(nominatorMetadata, amount, chain, chainStakingMetadata, selectedValidator) {
14
- if (nominatorMetadata.type === StakingType.LIQUID_STAKING) {
15
- return [];
16
- }
17
13
  if (_STAKING_CHAIN_GROUP.relay.includes(chain)) {
18
14
  return validateRelayUnbondingCondition(amount, chainStakingMetadata, nominatorMetadata);
19
15
  }
@@ -25,6 +21,8 @@ export function validateBondingCondition(chainInfo, amount, selectedValidators,
25
21
  }
26
22
  return validateParaChainBondingCondition(chainInfo, amount, selectedValidators, address, chainStakingMetadata, nominatorMetadata);
27
23
  }
24
+
25
+ /** Deprecated */
28
26
  export async function getChainStakingMetadata(chainInfo, substrateApi) {
29
27
  if (_STAKING_CHAIN_GROUP.astar.includes(chainInfo.slug)) {
30
28
  return getAstarStakingMetadata(chainInfo.slug, substrateApi);
@@ -2,12 +2,10 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
5
- import { BasicTxErrorType, StakingTxErrorType, StakingType } from '@subwallet/extension-base/background/KoniTypes';
6
- import { getBondedValidators, getEarningStatusByNominations, getExistUnstakeErrorMessage, getMaxValidatorErrorMessage, getMinStakeErrorMessage, getParaCurrentInflation, isUnstakeAll } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
5
+ import { BasicTxErrorType, StakingStatus, StakingTxErrorType, StakingType, UnstakingStatus } from '@subwallet/extension-base/background/KoniTypes';
6
+ import { getBondedValidators, getExistUnstakeErrorMessage, getMaxValidatorErrorMessage, getMinStakeErrorMessage, getParaCurrentInflation, getStakingStatusByNominations, isUnstakeAll, parseIdentity } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
7
7
  import { _STAKING_ERA_LENGTH_MAP } from '@subwallet/extension-base/services/chain-service/constants';
8
8
  import { _isChainEvmCompatible } from '@subwallet/extension-base/services/chain-service/utils';
9
- import { parseIdentity } from '@subwallet/extension-base/services/earning-service/utils';
10
- import { EarningStatus, UnstakingStatus } from '@subwallet/extension-base/types';
11
9
  import { isSameAddress, parseRawNumber, reformatAddress } from '@subwallet/extension-base/utils';
12
10
  import { BN, BN_ZERO } from '@polkadot/util';
13
11
  import { isEthereumAddress } from '@polkadot/util-crypto';
@@ -48,7 +46,7 @@ export function validateParaChainBondingCondition(chainInfo, amount, selectedCol
48
46
  const minStakeErrorMessage = getMinStakeErrorMessage(chainInfo, bnMinStake);
49
47
  const maxValidatorErrorMessage = getMaxValidatorErrorMessage(chainInfo, chainStakingMetadata.maxValidatorPerNominator);
50
48
  const existUnstakeErrorMessage = getExistUnstakeErrorMessage(chainInfo.slug, nominatorMetadata === null || nominatorMetadata === void 0 ? void 0 : nominatorMetadata.type, true);
51
- if (!nominatorMetadata || nominatorMetadata.status === EarningStatus.NOT_STAKING) {
49
+ if (!nominatorMetadata || nominatorMetadata.status === StakingStatus.NOT_STAKING) {
52
50
  if (!bnTotalStake.gte(bnMinStake)) {
53
51
  errors.push(new TransactionError(StakingTxErrorType.NOT_ENOUGH_MIN_STAKE, minStakeErrorMessage));
54
52
  }
@@ -89,17 +87,18 @@ export function validateParaChainBondingCondition(chainInfo, amount, selectedCol
89
87
  }
90
88
  export function subscribeParaChainStakingMetadata(chain, substrateApi, callback) {
91
89
  return substrateApi.api.query.parachainStaking.round(_round => {
92
- var _substrateApi$api$con, _substrateApi$api$con2, _substrateApi$api$con3;
90
+ var _substrateApi$api$con, _substrateApi$api$con2, _substrateApi$api$con3, _substrateApi$api$con4, _substrateApi$api$con5, _substrateApi$api$con6;
93
91
  const roundObj = _round.toHuman();
94
92
  const round = parseRawNumber(roundObj.current);
95
93
  const maxDelegations = (_substrateApi$api$con = substrateApi.api.consts) === null || _substrateApi$api$con === void 0 ? void 0 : (_substrateApi$api$con2 = _substrateApi$api$con.parachainStaking) === null || _substrateApi$api$con2 === void 0 ? void 0 : (_substrateApi$api$con3 = _substrateApi$api$con2.maxDelegationsPerDelegator) === null || _substrateApi$api$con3 === void 0 ? void 0 : _substrateApi$api$con3.toString();
96
94
  const unstakingDelay = substrateApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
97
95
  const unstakingPeriod = parseInt(unstakingDelay) * (_STAKING_ERA_LENGTH_MAP[chain] || _STAKING_ERA_LENGTH_MAP.default);
96
+ const minDelegatorStake = (_substrateApi$api$con4 = substrateApi.api.consts) === null || _substrateApi$api$con4 === void 0 ? void 0 : (_substrateApi$api$con5 = _substrateApi$api$con4.parachainStaking) === null || _substrateApi$api$con5 === void 0 ? void 0 : (_substrateApi$api$con6 = _substrateApi$api$con5.minDelegatorStk) === null || _substrateApi$api$con6 === void 0 ? void 0 : _substrateApi$api$con6.toString();
98
97
  callback(chain, {
99
98
  chain,
100
99
  type: StakingType.NOMINATED,
101
100
  era: round,
102
- minStake: '0',
101
+ minStake: minDelegatorStake || '0',
103
102
  maxValidatorPerNominator: parseInt(maxDelegations),
104
103
  maxWithdrawalRequestPerValidator: 1,
105
104
  // by default
@@ -109,11 +108,13 @@ export function subscribeParaChainStakingMetadata(chain, substrateApi, callback)
109
108
  });
110
109
  }
111
110
  export async function getParaChainStakingMetadata(chain, substrateApi) {
111
+ var _chainApi$api$consts$, _chainApi$api$consts$2;
112
112
  const chainApi = await substrateApi.isReady;
113
113
  const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
114
114
  const round = parseRawNumber(_round.current);
115
115
  const maxDelegations = chainApi.api.consts.parachainStaking.maxDelegationsPerDelegator.toString();
116
116
  const unstakingDelay = chainApi.api.consts.parachainStaking.delegationBondLessDelay.toString();
117
+ const minDelegatorStake = (_chainApi$api$consts$ = chainApi.api.consts.parachainStaking) === null || _chainApi$api$consts$ === void 0 ? void 0 : (_chainApi$api$consts$2 = _chainApi$api$consts$.minDelegatorStk) === null || _chainApi$api$consts$2 === void 0 ? void 0 : _chainApi$api$consts$2.toString();
117
118
  let _unvestedAllocation;
118
119
  if (chainApi.api.query.vesting && chainApi.api.query.vesting.totalUnvestedAllocation) {
119
120
  _unvestedAllocation = await chainApi.api.query.vesting.totalUnvestedAllocation();
@@ -138,7 +139,7 @@ export async function getParaChainStakingMetadata(chain, substrateApi) {
138
139
  type: StakingType.NOMINATED,
139
140
  era: round,
140
141
  inflation,
141
- minStake: '0',
142
+ minStake: minDelegatorStake || '0',
142
143
  maxValidatorPerNominator: parseInt(maxDelegations),
143
144
  maxWithdrawalRequestPerValidator: 1,
144
145
  // by default
@@ -159,7 +160,7 @@ export async function subscribeParaChainNominatorMetadata(chainInfo, address, su
159
160
  const minDelegation = collatorInfo === null || collatorInfo === void 0 ? void 0 : collatorInfo.lowestTopDelegationAmount.toString();
160
161
  const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
161
162
  let hasUnstaking = false;
162
- let delegationStatus = EarningStatus.NOT_EARNING;
163
+ let delegationStatus = StakingStatus.NOT_EARNING;
163
164
 
164
165
  // parse unstaking info
165
166
  if (delegationScheduledRequests) {
@@ -187,7 +188,7 @@ export async function subscribeParaChainNominatorMetadata(chainInfo, address, su
187
188
  const bnUnstakeBalance = unstakingMap[delegation.owner] ? new BN(unstakingMap[delegation.owner].claimable) : BN_ZERO;
188
189
  const bnActiveStake = bnStake.sub(bnUnstakeBalance);
189
190
  if (bnActiveStake.gt(BN_ZERO) && bnActiveStake.gte(new BN(minDelegation))) {
190
- delegationStatus = EarningStatus.EARNING_REWARD;
191
+ delegationStatus = StakingStatus.EARNING_REWARD;
191
192
  }
192
193
  bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
193
194
  nominationList.push({
@@ -208,7 +209,7 @@ export async function subscribeParaChainNominatorMetadata(chainInfo, address, su
208
209
  // nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
209
210
  // }));
210
211
 
211
- const stakingStatus = getEarningStatusByNominations(bnTotalActiveStake, nominationList);
212
+ const stakingStatus = getStakingStatusByNominations(bnTotalActiveStake, nominationList);
212
213
  return {
213
214
  chain: chainInfo.slug,
214
215
  type: StakingType.NOMINATED,
@@ -238,7 +239,7 @@ export async function getParaChainNominatorMetadata(chainInfo, address, substrat
238
239
  chain: chainInfo.slug,
239
240
  type: StakingType.NOMINATED,
240
241
  address,
241
- status: EarningStatus.NOT_STAKING,
242
+ status: StakingStatus.NOT_STAKING,
242
243
  activeStake: '0',
243
244
  nominations: [],
244
245
  unstakings: []
@@ -253,7 +254,7 @@ export async function getParaChainNominatorMetadata(chainInfo, address, substrat
253
254
  const delegationScheduledRequests = _delegationScheduledRequests.toPrimitive();
254
255
  const currentRound = roundInfo.current;
255
256
  let hasUnstaking = false;
256
- let delegationStatus = EarningStatus.NOT_EARNING;
257
+ let delegationStatus = StakingStatus.NOT_EARNING;
257
258
 
258
259
  // parse unstaking info
259
260
  if (delegationScheduledRequests) {
@@ -281,7 +282,7 @@ export async function getParaChainNominatorMetadata(chainInfo, address, substrat
281
282
  const bnUnstakeBalance = unstakingMap[delegation.owner] ? new BN(unstakingMap[delegation.owner].claimable) : BN_ZERO;
282
283
  const bnActiveStake = bnStake.sub(bnUnstakeBalance);
283
284
  if (bnActiveStake.gt(BN_ZERO) && bnActiveStake.gte(new BN(minDelegation))) {
284
- delegationStatus = EarningStatus.EARNING_REWARD;
285
+ delegationStatus = StakingStatus.EARNING_REWARD;
285
286
  }
286
287
  bnTotalActiveStake = bnTotalActiveStake.add(bnActiveStake);
287
288
  nominationList.push({
@@ -298,7 +299,7 @@ export async function getParaChainNominatorMetadata(chainInfo, address, substrat
298
299
  const collatorInfo = _collatorInfo.toPrimitive();
299
300
  nomination.validatorMinStake = collatorInfo.lowestTopDelegationAmount.toString();
300
301
  }));
301
- const stakingStatus = getEarningStatusByNominations(bnTotalActiveStake, nominationList);
302
+ const stakingStatus = getStakingStatusByNominations(bnTotalActiveStake, nominationList);
302
303
  return {
303
304
  chain,
304
305
  type: StakingType.NOMINATED,
@@ -1,8 +1,8 @@
1
1
  import { _ChainInfo } from '@subwallet/chain-list/types';
2
2
  import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
3
- import { ChainStakingMetadata, NominatorMetadata, UnstakingInfo, ValidatorInfo } from '@subwallet/extension-base/background/KoniTypes';
3
+ import { ChainStakingMetadata, NominationPoolInfo, NominatorMetadata, UnstakingInfo, ValidatorInfo } from '@subwallet/extension-base/background/KoniTypes';
4
+ import { PalletNominationPoolsPoolMember } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
4
5
  import { _SubstrateApi } from '@subwallet/extension-base/services/chain-service/types';
5
- import { NominationPoolInfo, PalletNominationPoolsPoolMember } from '@subwallet/extension-base/types';
6
6
  import { Codec } from '@polkadot/types/types';
7
7
  export interface PalletStakingNominations {
8
8
  targets: string[];