@subwallet/extension-base 1.1.33-beta.1 → 1.1.34-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 (316) hide show
  1. package/background/KoniTypes.d.ts +69 -120
  2. package/background/KoniTypes.js +13 -22
  3. package/background/errors/TransactionError.js +0 -9
  4. package/cjs/background/KoniTypes.js +16 -23
  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 +16 -19
  11. package/cjs/koni/api/staking/bonding/astar.js +10 -11
  12. package/cjs/koni/api/staking/bonding/index.js +1 -4
  13. package/cjs/koni/api/staking/bonding/paraChain.js +23 -25
  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 +17 -10
  18. package/cjs/koni/api/staking/relayChain.js +2 -3
  19. package/cjs/koni/background/cron.js +21 -3
  20. package/cjs/koni/background/handlers/Extension.js +69 -368
  21. package/cjs/koni/background/handlers/State.js +12 -18
  22. package/cjs/koni/background/handlers/index.js +2 -4
  23. package/cjs/koni/background/subscription.js +104 -7
  24. package/cjs/packageInfo.js +1 -1
  25. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +1 -3
  26. package/cjs/services/campaign-service/index.js +6 -9
  27. package/cjs/services/chain-service/constants.js +17 -2
  28. package/cjs/services/chain-service/index.js +3 -25
  29. package/cjs/services/chain-service/utils.js +1 -7
  30. package/cjs/services/event-service/index.js +0 -5
  31. package/cjs/services/keyring-service/index.js +2 -14
  32. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  33. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  34. package/cjs/services/migration-service/scripts/index.js +1 -6
  35. package/cjs/services/notification-service/NotificationService.js +1 -1
  36. package/cjs/services/storage-service/DatabaseService.js +1 -92
  37. package/cjs/services/storage-service/databases/index.js +0 -7
  38. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  39. package/cjs/services/subscan-service/index.js +0 -16
  40. package/cjs/services/transaction-service/event-parser/index.js +0 -58
  41. package/cjs/services/transaction-service/helpers/index.js +1 -3
  42. package/cjs/services/transaction-service/index.js +75 -252
  43. package/cjs/services/transaction-service/utils.js +0 -1
  44. package/cjs/types/index.js +0 -44
  45. package/cjs/utils/fetchStaticData.js +1 -2
  46. package/cjs/utils/index.js +1 -89
  47. package/cjs/utils/number.js +2 -6
  48. package/constants/index.d.ts +1 -6
  49. package/constants/index.js +1 -6
  50. package/koni/api/nft/config.js +23 -33
  51. package/koni/api/nft/index.js +1 -15
  52. package/koni/api/nft/nft.js +23 -2
  53. package/koni/api/staking/bonding/amplitude.js +10 -13
  54. package/koni/api/staking/bonding/astar.js +8 -9
  55. package/koni/api/staking/bonding/index.d.ts +1 -1
  56. package/koni/api/staking/bonding/index.js +1 -5
  57. package/koni/api/staking/bonding/paraChain.js +10 -12
  58. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  59. package/koni/api/staking/bonding/relayChain.js +30 -33
  60. package/koni/api/staking/bonding/utils.d.ts +38 -15
  61. package/koni/api/staking/bonding/utils.js +69 -85
  62. package/koni/api/staking/index.js +1 -2
  63. package/koni/api/staking/paraChain.js +18 -11
  64. package/koni/api/staking/relayChain.js +3 -4
  65. package/koni/background/cron.d.ts +4 -0
  66. package/koni/background/cron.js +22 -4
  67. package/koni/background/handlers/Extension.d.ts +1 -17
  68. package/koni/background/handlers/Extension.js +30 -327
  69. package/koni/background/handlers/State.d.ts +1 -6
  70. package/koni/background/handlers/State.js +12 -17
  71. package/koni/background/handlers/index.js +2 -4
  72. package/koni/background/subscription.d.ts +6 -1
  73. package/koni/background/subscription.js +104 -8
  74. package/package.json +8 -331
  75. package/packageInfo.js +1 -1
  76. package/services/balance-service/helpers/subscribe/substrate/index.js +2 -4
  77. package/services/campaign-service/index.js +6 -9
  78. package/services/chain-service/constants.d.ts +13 -1
  79. package/services/chain-service/constants.js +15 -1
  80. package/services/chain-service/index.d.ts +0 -2
  81. package/services/chain-service/index.js +3 -25
  82. package/services/chain-service/utils.d.ts +0 -1
  83. package/services/chain-service/utils.js +1 -5
  84. package/services/event-service/index.d.ts +0 -2
  85. package/services/event-service/index.js +0 -5
  86. package/services/event-service/types.d.ts +0 -9
  87. package/services/keyring-service/index.d.ts +1 -2
  88. package/services/keyring-service/index.js +2 -14
  89. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  90. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  91. package/services/migration-service/scripts/index.js +1 -6
  92. package/services/notification-service/NotificationService.js +1 -1
  93. package/services/storage-service/DatabaseService.d.ts +3 -30
  94. package/services/storage-service/DatabaseService.js +1 -91
  95. package/services/storage-service/databases/index.d.ts +2 -8
  96. package/services/storage-service/databases/index.js +0 -7
  97. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  98. package/services/subscan-service/index.d.ts +2 -3
  99. package/services/subscan-service/index.js +0 -15
  100. package/services/subscan-service/types.d.ts +0 -20
  101. package/services/transaction-service/event-parser/index.d.ts +1 -3
  102. package/services/transaction-service/event-parser/index.js +1 -57
  103. package/services/transaction-service/helpers/index.js +1 -3
  104. package/services/transaction-service/index.d.ts +13 -6
  105. package/services/transaction-service/index.js +73 -250
  106. package/services/transaction-service/types.d.ts +0 -2
  107. package/services/transaction-service/utils.js +0 -1
  108. package/types/index.d.ts +0 -5
  109. package/types/index.js +1 -5
  110. package/utils/fetchStaticData.js +1 -2
  111. package/utils/index.d.ts +0 -5
  112. package/utils/index.js +0 -52
  113. package/utils/number.d.ts +1 -2
  114. package/utils/number.js +1 -2
  115. package/cjs/koni/api/dotsama/balance.js +0 -464
  116. package/cjs/koni/api/nft/ordinal_nft/constants.js +0 -21
  117. package/cjs/koni/api/nft/ordinal_nft/index.js +0 -121
  118. package/cjs/koni/api/nft/ordinal_nft/utils.js +0 -41
  119. package/cjs/koni/api/yield/helper/utils.js +0 -49
  120. package/cjs/services/earning-service/constants/chains.js +0 -30
  121. package/cjs/services/earning-service/constants/index.js +0 -27
  122. package/cjs/services/earning-service/constants/step.js +0 -18
  123. package/cjs/services/earning-service/handlers/base.js +0 -262
  124. package/cjs/services/earning-service/handlers/index.js +0 -60
  125. package/cjs/services/earning-service/handlers/lending/base.js +0 -81
  126. package/cjs/services/earning-service/handlers/lending/index.js +0 -13
  127. package/cjs/services/earning-service/handlers/lending/interlay.js +0 -192
  128. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -240
  129. package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -98
  130. package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -140
  131. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -299
  132. package/cjs/services/earning-service/handlers/liquid-staking/index.js +0 -41
  133. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -227
  134. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -404
  135. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +0 -434
  136. package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -466
  137. package/cjs/services/earning-service/handlers/native-staking/base-para.js +0 -146
  138. package/cjs/services/earning-service/handlers/native-staking/base.js +0 -161
  139. package/cjs/services/earning-service/handlers/native-staking/index.js +0 -34
  140. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -390
  141. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +0 -567
  142. package/cjs/services/earning-service/handlers/nomination-pool/index.js +0 -566
  143. package/cjs/services/earning-service/handlers/special.js +0 -497
  144. package/cjs/services/earning-service/service.js +0 -741
  145. package/cjs/services/earning-service/utils/index.js +0 -128
  146. package/cjs/services/migration-service/scripts/DeleteEarningData.js +0 -21
  147. package/cjs/services/migration-service/scripts/EnableEarningChains.js +0 -21
  148. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
  149. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
  150. package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
  151. package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -21
  152. package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -21
  153. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -149
  154. package/cjs/services/mint-campaign-service/campaigns/index.js +0 -13
  155. package/cjs/services/mint-campaign-service/constants.js +0 -11
  156. package/cjs/services/mint-campaign-service/index.js +0 -18
  157. package/cjs/services/storage-service/db-stores/AssetRef.js +0 -24
  158. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +0 -36
  159. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +0 -71
  160. package/cjs/services/storage-service/index.js +0 -241
  161. package/cjs/types/campaigns/index.js +0 -16
  162. package/cjs/types/campaigns/unlock-dot.js +0 -1
  163. package/cjs/types/ordinal.js +0 -1
  164. package/cjs/types/transaction.js +0 -1
  165. package/cjs/types/yield/actions/index.js +0 -27
  166. package/cjs/types/yield/actions/join/index.js +0 -38
  167. package/cjs/types/yield/actions/join/step.js +0 -48
  168. package/cjs/types/yield/actions/join/submit.js +0 -1
  169. package/cjs/types/yield/actions/join/validate.js +0 -16
  170. package/cjs/types/yield/actions/others.js +0 -1
  171. package/cjs/types/yield/index.js +0 -27
  172. package/cjs/types/yield/info/account/index.js +0 -49
  173. package/cjs/types/yield/info/account/info.js +0 -1
  174. package/cjs/types/yield/info/account/reward.js +0 -1
  175. package/cjs/types/yield/info/account/target.js +0 -32
  176. package/cjs/types/yield/info/account/unstake.js +0 -27
  177. package/cjs/types/yield/info/base.js +0 -41
  178. package/cjs/types/yield/info/chain/index.js +0 -27
  179. package/cjs/types/yield/info/chain/info.js +0 -1
  180. package/cjs/types/yield/info/chain/target.js +0 -1
  181. package/cjs/types/yield/info/index.js +0 -49
  182. package/cjs/types/yield/info/pallet.js +0 -15
  183. package/cjs/types.js +0 -1
  184. package/cjs/utils/address.js +0 -34
  185. package/cjs/utils/keyring.js +0 -57
  186. package/cjs/utils/object.js +0 -12
  187. package/koni/api/nft/ordinal_nft/constants.d.ts +0 -9
  188. package/koni/api/nft/ordinal_nft/constants.js +0 -12
  189. package/koni/api/nft/ordinal_nft/index.d.ts +0 -8
  190. package/koni/api/nft/ordinal_nft/index.js +0 -114
  191. package/koni/api/nft/ordinal_nft/utils.d.ts +0 -2
  192. package/koni/api/nft/ordinal_nft/utils.js +0 -33
  193. package/koni/api/yield/helper/utils.d.ts +0 -10
  194. package/koni/api/yield/helper/utils.js +0 -34
  195. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +0 -1235
  196. package/services/earning-service/constants/abis/st_liquid_token_abi.json +0 -1355
  197. package/services/earning-service/constants/chains.d.ts +0 -15
  198. package/services/earning-service/constants/chains.js +0 -22
  199. package/services/earning-service/constants/index.d.ts +0 -2
  200. package/services/earning-service/constants/index.js +0 -5
  201. package/services/earning-service/constants/step.d.ts +0 -3
  202. package/services/earning-service/constants/step.js +0 -10
  203. package/services/earning-service/handlers/base.d.ts +0 -113
  204. package/services/earning-service/handlers/base.js +0 -256
  205. package/services/earning-service/handlers/index.d.ts +0 -5
  206. package/services/earning-service/handlers/index.js +0 -8
  207. package/services/earning-service/handlers/lending/base.d.ts +0 -8
  208. package/services/earning-service/handlers/lending/base.js +0 -73
  209. package/services/earning-service/handlers/lending/index.d.ts +0 -1
  210. package/services/earning-service/handlers/lending/index.js +0 -4
  211. package/services/earning-service/handlers/lending/interlay.d.ts +0 -24
  212. package/services/earning-service/handlers/lending/interlay.js +0 -184
  213. package/services/earning-service/handlers/liquid-staking/acala.d.ts +0 -27
  214. package/services/earning-service/handlers/liquid-staking/acala.js +0 -232
  215. package/services/earning-service/handlers/liquid-staking/base.d.ts +0 -11
  216. package/services/earning-service/handlers/liquid-staking/base.js +0 -90
  217. package/services/earning-service/handlers/liquid-staking/bifrost-manta.d.ts +0 -37
  218. package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -132
  219. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +0 -46
  220. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -288
  221. package/services/earning-service/handlers/liquid-staking/index.d.ts +0 -5
  222. package/services/earning-service/handlers/liquid-staking/index.js +0 -8
  223. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +0 -26
  224. package/services/earning-service/handlers/liquid-staking/parallel.js +0 -219
  225. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +0 -34
  226. package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -394
  227. package/services/earning-service/handlers/native-staking/amplitude.d.ts +0 -22
  228. package/services/earning-service/handlers/native-staking/amplitude.js +0 -425
  229. package/services/earning-service/handlers/native-staking/astar.d.ts +0 -19
  230. package/services/earning-service/handlers/native-staking/astar.js +0 -456
  231. package/services/earning-service/handlers/native-staking/base-para.d.ts +0 -11
  232. package/services/earning-service/handlers/native-staking/base-para.js +0 -138
  233. package/services/earning-service/handlers/native-staking/base.d.ts +0 -21
  234. package/services/earning-service/handlers/native-staking/base.js +0 -152
  235. package/services/earning-service/handlers/native-staking/index.d.ts +0 -4
  236. package/services/earning-service/handlers/native-staking/index.js +0 -7
  237. package/services/earning-service/handlers/native-staking/para-chain.d.ts +0 -15
  238. package/services/earning-service/handlers/native-staking/para-chain.js +0 -382
  239. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +0 -21
  240. package/services/earning-service/handlers/native-staking/relay-chain.js +0 -558
  241. package/services/earning-service/handlers/nomination-pool/index.d.ts +0 -36
  242. package/services/earning-service/handlers/nomination-pool/index.js +0 -556
  243. package/services/earning-service/handlers/special.d.ts +0 -64
  244. package/services/earning-service/handlers/special.js +0 -489
  245. package/services/earning-service/service.d.ts +0 -94
  246. package/services/earning-service/service.js +0 -730
  247. package/services/earning-service/utils/index.d.ts +0 -18
  248. package/services/earning-service/utils/index.js +0 -112
  249. package/services/migration-service/scripts/DeleteEarningData.d.ts +0 -4
  250. package/services/migration-service/scripts/DeleteEarningData.js +0 -13
  251. package/services/migration-service/scripts/EnableEarningChains.d.ts +0 -4
  252. package/services/migration-service/scripts/EnableEarningChains.js +0 -13
  253. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +0 -4
  254. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -13
  255. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +0 -4
  256. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -13
  257. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +0 -13
  258. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -139
  259. package/services/mint-campaign-service/campaigns/index.d.ts +0 -1
  260. package/services/mint-campaign-service/campaigns/index.js +0 -4
  261. package/services/mint-campaign-service/constants.d.ts +0 -1
  262. package/services/mint-campaign-service/constants.js +0 -4
  263. package/services/mint-campaign-service/index.d.ts +0 -7
  264. package/services/mint-campaign-service/index.js +0 -11
  265. package/services/storage-service/db-stores/AssetRef.d.ts +0 -7
  266. package/services/storage-service/db-stores/AssetRef.js +0 -16
  267. package/services/storage-service/db-stores/YieldPoolStore.d.ts +0 -10
  268. package/services/storage-service/db-stores/YieldPoolStore.js +0 -28
  269. package/services/storage-service/db-stores/YieldPositionStore.d.ts +0 -11
  270. package/services/storage-service/db-stores/YieldPositionStore.js +0 -63
  271. package/types/campaigns/index.d.ts +0 -1
  272. package/types/campaigns/index.js +0 -4
  273. package/types/campaigns/unlock-dot.d.ts +0 -71
  274. package/types/campaigns/unlock-dot.js +0 -1
  275. package/types/ordinal.d.ts +0 -69
  276. package/types/ordinal.js +0 -1
  277. package/types/transaction.d.ts +0 -3
  278. package/types/transaction.js +0 -1
  279. package/types/yield/actions/index.d.ts +0 -2
  280. package/types/yield/actions/index.js +0 -5
  281. package/types/yield/actions/join/index.d.ts +0 -3
  282. package/types/yield/actions/join/index.js +0 -6
  283. package/types/yield/actions/join/step.d.ts +0 -96
  284. package/types/yield/actions/join/step.js +0 -47
  285. package/types/yield/actions/join/submit.d.ts +0 -58
  286. package/types/yield/actions/join/submit.js +0 -1
  287. package/types/yield/actions/join/validate.d.ts +0 -18
  288. package/types/yield/actions/join/validate.js +0 -10
  289. package/types/yield/actions/others.d.ts +0 -85
  290. package/types/yield/actions/others.js +0 -1
  291. package/types/yield/index.d.ts +0 -2
  292. package/types/yield/index.js +0 -5
  293. package/types/yield/info/account/index.d.ts +0 -4
  294. package/types/yield/info/account/index.js +0 -7
  295. package/types/yield/info/account/info.d.ts +0 -92
  296. package/types/yield/info/account/info.js +0 -1
  297. package/types/yield/info/account/reward.d.ts +0 -47
  298. package/types/yield/info/account/reward.js +0 -1
  299. package/types/yield/info/account/target.d.ts +0 -43
  300. package/types/yield/info/account/target.js +0 -27
  301. package/types/yield/info/account/unstake.d.ts +0 -31
  302. package/types/yield/info/account/unstake.js +0 -22
  303. package/types/yield/info/base.d.ts +0 -45
  304. package/types/yield/info/base.js +0 -36
  305. package/types/yield/info/chain/index.d.ts +0 -2
  306. package/types/yield/info/chain/index.js +0 -5
  307. package/types/yield/info/chain/info.d.ts +0 -252
  308. package/types/yield/info/chain/info.js +0 -1
  309. package/types/yield/info/chain/target.d.ts +0 -37
  310. package/types/yield/info/chain/target.js +0 -1
  311. package/types/yield/info/index.d.ts +0 -4
  312. package/types/yield/info/index.js +0 -7
  313. package/types/yield/info/pallet.d.ts +0 -143
  314. package/types/yield/info/pallet.js +0 -9
  315. package/utils/object.d.ts +0 -1
  316. package/utils/object.js +0 -6
@@ -1,425 +0,0 @@
1
- // Copyright 2019-2022 @subwallet/extension-base
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
5
- import { APIItemState, BasicTxErrorType, ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
6
- import { getBondedValidators, getEarningStatusByNominations, isUnstakeAll } from '@subwallet/extension-base/koni/api/staking/bonding/utils';
7
- import { _STAKING_ERA_LENGTH_MAP } from '@subwallet/extension-base/services/chain-service/constants';
8
- import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/earning-service/constants';
9
- import { parseIdentity } from '@subwallet/extension-base/services/earning-service/utils';
10
- import { EarningStatus, UnstakingStatus, YieldStepType } from '@subwallet/extension-base/types';
11
- import { balanceFormatter, formatNumber, parseRawNumber, reformatAddress } from '@subwallet/extension-base/utils';
12
- import { BN, BN_ZERO } from '@polkadot/util';
13
- import BaseParaNativeStakingPoolHandler from "./base-para.js";
14
- export default class AmplitudeNativeStakingPoolHandler extends BaseParaNativeStakingPoolHandler {
15
- /* Subscribe pool info */
16
-
17
- async subscribePoolInfo(callback) {
18
- let cancel = false;
19
- const nativeToken = this.nativeToken;
20
- const defaultCallback = async () => {
21
- const data = {
22
- ...this.baseInfo,
23
- type: this.type,
24
- metadata: {
25
- ...this.metadataInfo,
26
- description: this.getDescription()
27
- }
28
- };
29
- const poolInfo = await this.getPoolInfo();
30
- !poolInfo && callback(data);
31
- };
32
- if (!this.isActive) {
33
- await defaultCallback();
34
- return () => {
35
- cancel = true;
36
- };
37
- }
38
- await defaultCallback();
39
- const substrateApi = await this.substrateApi.isReady;
40
- const unsub = await substrateApi.api.query.parachainStaking.round(async _round => {
41
- if (cancel) {
42
- unsub();
43
- return;
44
- }
45
- const roundObj = _round.toHuman();
46
- const round = parseRawNumber(roundObj.current);
47
- const maxDelegations = substrateApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
48
- const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
49
- const unstakingDelay = substrateApi.api.consts.parachainStaking.stakeDuration.toString(); // in blocks
50
- const _blockPerRound = substrateApi.api.consts.parachainStaking.defaultBlocksPerRound.toString();
51
- const maxUnstakeRequests = substrateApi.api.consts.parachainStaking.maxUnstakeRequests.toPrimitive();
52
- const blockPerRound = parseFloat(_blockPerRound);
53
- const roundTime = _STAKING_ERA_LENGTH_MAP[this.chain] || _STAKING_ERA_LENGTH_MAP.default; // in hours
54
- const blockDuration = roundTime / blockPerRound; // in hours
55
- const unstakingPeriod = blockDuration * parseInt(unstakingDelay);
56
- const minToHuman = formatNumber(minDelegatorStake, nativeToken.decimals || 0, balanceFormatter);
57
- const delegatorStorages = await substrateApi.api.query.parachainStaking.delegatorState.keys();
58
- const staked = await substrateApi.api.query.parachainStaking.totalCollatorStake();
59
- const stakeInfo = staked.toPrimitive();
60
- const data = {
61
- ...this.baseInfo,
62
- type: this.type,
63
- metadata: {
64
- ...this.metadataInfo,
65
- description: this.getDescription(minToHuman)
66
- },
67
- statistic: {
68
- assetEarning: [{
69
- slug: this.nativeToken.slug
70
- }],
71
- maxCandidatePerFarmer: parseInt(maxDelegations),
72
- maxWithdrawalRequestPerFarmer: maxUnstakeRequests,
73
- // by default
74
- earningThreshold: {
75
- join: minDelegatorStake,
76
- defaultUnstake: '0',
77
- fastUnstake: '0'
78
- },
79
- farmerCount: delegatorStorages.length,
80
- // One delegator (farmer) - One collator (candidate) - on storage
81
- era: round,
82
- eraTime: roundTime,
83
- tvl: stakeInfo.delegators,
84
- // TODO recheck
85
- totalApy: undefined,
86
- // TODO recheck
87
- unstakingPeriod
88
- }
89
- };
90
- callback(data);
91
- });
92
- return () => {
93
- cancel = true;
94
- unsub();
95
- };
96
- }
97
-
98
- /* Subscribe pool info */
99
-
100
- /* Subscribe pool position */
101
-
102
- async parseNominatorMetadata(chainInfo, address, substrateApi, delegatorState, unstakingInfo) {
103
- const nominationList = [];
104
- const unstakingList = [];
105
- const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
106
- const hasUnstakingInfo = unstakingInfo && Object.values(unstakingInfo).length > 0;
107
- let activeStake = '0';
108
- let unstakingBalance = '0';
109
- if (delegatorState) {
110
- // delegatorState can be null while unstaking all
111
- const identityPromises = delegatorState.map(delegate => parseIdentity(substrateApi, delegate.owner));
112
- const identities = await Promise.all(identityPromises);
113
- for (let i = 0; i < delegatorState.length; i++) {
114
- const delegate = delegatorState[i];
115
- const [identity] = identities[i];
116
- activeStake = delegate.amount.toString();
117
- const bnActiveStake = new BN(activeStake);
118
- let delegationStatus = EarningStatus.NOT_EARNING;
119
- if (bnActiveStake.gt(BN_ZERO) && bnActiveStake.gte(new BN(minDelegatorStake))) {
120
- delegationStatus = EarningStatus.EARNING_REWARD;
121
- }
122
- nominationList.push({
123
- status: delegationStatus,
124
- chain: chainInfo.slug,
125
- validatorAddress: delegate.owner,
126
- activeStake: delegate.amount.toString(),
127
- validatorMinStake: '0',
128
- hasUnstaking: hasUnstakingInfo,
129
- validatorIdentity: identity
130
- });
131
- }
132
- if (hasUnstakingInfo) {
133
- const _currentBlockInfo = await substrateApi.api.rpc.chain.getHeader();
134
- const currentBlockInfo = _currentBlockInfo.toPrimitive();
135
- const currentBlockNumber = currentBlockInfo.number;
136
- const _blockPerRound = substrateApi.api.consts.parachainStaking.defaultBlocksPerRound.toString();
137
- const blockPerRound = parseFloat(_blockPerRound);
138
- for (const [unstakingBlock, unstakingAmount] of Object.entries(unstakingInfo)) {
139
- const blockDuration = (_STAKING_ERA_LENGTH_MAP[chainInfo.slug] || _STAKING_ERA_LENGTH_MAP.default) / blockPerRound; // in hours
140
-
141
- const isClaimable = parseInt(unstakingBlock) - currentBlockNumber < 0;
142
- const remainingBlock = parseInt(unstakingBlock) - currentBlockNumber;
143
- const waitingTime = remainingBlock * blockDuration;
144
- unstakingBalance = unstakingAmount.toString();
145
- unstakingList.push({
146
- chain: chainInfo.slug,
147
- status: isClaimable ? UnstakingStatus.CLAIMABLE : UnstakingStatus.UNLOCKING,
148
- claimable: unstakingAmount.toString(),
149
- waitingTime,
150
- validatorAddress: undefined
151
- });
152
- }
153
- }
154
- }
155
- const totalBalance = new BN(activeStake).add(new BN(unstakingBalance));
156
- const stakingStatus = getEarningStatusByNominations(new BN(activeStake), nominationList);
157
- return {
158
- status: stakingStatus,
159
- balanceToken: this.nativeToken.slug,
160
- totalStake: totalBalance.toString(),
161
- activeStake: activeStake,
162
- unstakeBalance: unstakingBalance,
163
- isBondedBefore: true,
164
- nominations: nominationList,
165
- unstakings: unstakingList
166
- };
167
- }
168
- async subscribePoolPosition(useAddresses, resultCallback) {
169
- let cancel = false;
170
- const substrateApi = await this.substrateApi.isReady;
171
- const defaultInfo = this.baseInfo;
172
- const chainInfo = this.chainInfo;
173
- const unsub = await substrateApi.api.query.parachainStaking.delegatorState.multi(useAddresses, async ledgers => {
174
- if (cancel) {
175
- unsub();
176
- return;
177
- }
178
- if (ledgers) {
179
- const _unstakingStates = await substrateApi.api.query.parachainStaking.unstaking.multi(useAddresses);
180
- await Promise.all(ledgers.map(async (_delegatorState, i) => {
181
- const owner = reformatAddress(useAddresses[i], 42);
182
- let delegatorState = [];
183
- const unstakingInfo = _unstakingStates[i].toPrimitive();
184
- if (_STAKING_CHAIN_GROUP.krest_network.includes(this.chain)) {
185
- const krestDelegatorState = _delegatorState.toPrimitive();
186
- const delegates = krestDelegatorState === null || krestDelegatorState === void 0 ? void 0 : krestDelegatorState.delegations;
187
- if (delegates) {
188
- delegatorState = delegatorState.concat(delegates);
189
- }
190
- } else {
191
- const delegate = _delegatorState.toPrimitive();
192
- if (delegate) {
193
- delegatorState.push(delegate);
194
- }
195
- }
196
- if (!delegatorState && !unstakingInfo) {
197
- resultCallback({
198
- ...defaultInfo,
199
- type: this.type,
200
- address: owner,
201
- balanceToken: this.nativeToken.slug,
202
- totalStake: '0',
203
- activeStake: '0',
204
- unstakeBalance: '0',
205
- status: EarningStatus.NOT_STAKING,
206
- isBondedBefore: false,
207
- nominations: [],
208
- unstakings: []
209
- });
210
- } else {
211
- const nominatorMetadata = await this.parseNominatorMetadata(chainInfo, owner, substrateApi, delegatorState, unstakingInfo);
212
- resultCallback({
213
- ...defaultInfo,
214
- ...nominatorMetadata,
215
- address: owner,
216
- type: this.type
217
- });
218
- }
219
- }));
220
- }
221
- });
222
- return () => {
223
- cancel = true;
224
- unsub();
225
- };
226
- }
227
-
228
- /* Subscribe pool position */
229
-
230
- /* Get pool reward */
231
-
232
- async getPoolReward(useAddresses, callBack) {
233
- let cancel = false;
234
- const substrateApi = this.substrateApi;
235
- await substrateApi.isReady;
236
- if (!_STAKING_CHAIN_GROUP.kilt.includes(this.chain) && !_STAKING_CHAIN_GROUP.krest_network.includes(this.chain)) {
237
- await Promise.all(useAddresses.map(async address => {
238
- const _unclaimedReward = await substrateApi.api.query.parachainStaking.rewards(address);
239
- if (cancel) {
240
- return;
241
- }
242
- callBack({
243
- ...this.baseInfo,
244
- address: address,
245
- type: this.type,
246
- unclaimedReward: _unclaimedReward.toString(),
247
- state: APIItemState.READY
248
- });
249
- }));
250
- }
251
- return () => {
252
- cancel = false;
253
- };
254
- }
255
-
256
- /* Get pool reward */
257
-
258
- /* Get pool targets */
259
-
260
- async getPoolTargets() {
261
- const chainApi = await this.substrateApi.isReady;
262
- if (_STAKING_CHAIN_GROUP.krest_network.includes(this.chain)) {
263
- const _allCollators = await chainApi.api.query.parachainStaking.candidatePool.entries();
264
- const maxDelegatorsPerCollator = chainApi.api.consts.parachainStaking.maxDelegatorsPerCollator.toString();
265
- const allCollators = [];
266
- for (const _collator of _allCollators) {
267
- const collatorInfo = _collator[1].toPrimitive();
268
- const bnTotalStake = new BN(collatorInfo.total);
269
- const bnOwnStake = new BN(collatorInfo.stake);
270
- const bnOtherStake = bnTotalStake.sub(bnOwnStake);
271
- allCollators.push({
272
- address: collatorInfo.id,
273
- totalStake: bnTotalStake.toString(),
274
- ownStake: bnOwnStake.toString(),
275
- otherStake: bnOtherStake.toString(),
276
- nominatorCount: collatorInfo.delegators.length,
277
- commission: 0,
278
- blocked: false,
279
- isVerified: false,
280
- minBond: '0',
281
- chain: this.chain,
282
- isCrowded: collatorInfo.delegators.length >= parseInt(maxDelegatorsPerCollator)
283
- });
284
- }
285
- return allCollators;
286
- } else {
287
- const [_allCollators, _inflationConfig] = await Promise.all([chainApi.api.query.parachainStaking.candidatePool.entries(), chainApi.api.query.parachainStaking.inflationConfig()]);
288
- const maxDelegatorsPerCollator = chainApi.api.consts.parachainStaking.maxDelegatorsPerCollator.toString();
289
- const inflationConfig = _inflationConfig.toHuman();
290
- const rawDelegatorReturn = inflationConfig.delegator.rewardRate.annual;
291
- const delegatorReturn = parseFloat(rawDelegatorReturn.split('%')[0]);
292
- const allCollators = [];
293
- for (const _collator of _allCollators) {
294
- const collatorInfo = _collator[1].toPrimitive();
295
- const bnTotalStake = new BN(collatorInfo.total);
296
- const bnOwnStake = new BN(collatorInfo.stake);
297
- const bnOtherStake = bnTotalStake.sub(bnOwnStake);
298
- allCollators.push({
299
- address: collatorInfo.id,
300
- totalStake: bnTotalStake.toString(),
301
- ownStake: bnOwnStake.toString(),
302
- otherStake: bnOtherStake.toString(),
303
- nominatorCount: collatorInfo.delegators.length,
304
- commission: 0,
305
- expectedReturn: delegatorReturn,
306
- blocked: false,
307
- isVerified: false,
308
- minBond: '0',
309
- chain: this.chain,
310
- isCrowded: collatorInfo.delegators.length >= parseInt(maxDelegatorsPerCollator)
311
- });
312
- }
313
- return allCollators;
314
- }
315
- }
316
-
317
- /* Get pool targets */
318
-
319
- /* Join pool action */
320
-
321
- get defaultSubmitStep() {
322
- return [{
323
- name: 'Nominate collators',
324
- type: YieldStepType.NOMINATE
325
- }, {
326
- slug: this.nativeToken.slug,
327
- amount: '0'
328
- }];
329
- }
330
- async createJoinExtrinsic(data, positionInfo, bondDest = 'Staked') {
331
- const {
332
- address,
333
- amount,
334
- selectedValidators: targetValidators
335
- } = data;
336
- const chainApi = await this.substrateApi.isReady;
337
- const binaryAmount = new BN(amount);
338
- const poolPosition = await this.getPoolPosition(address);
339
- const selectedValidatorInfo = targetValidators[0];
340
-
341
- // eslint-disable-next-line @typescript-eslint/require-await
342
- const compoundResult = async extrinsic => {
343
- const tokenSlug = this.nativeToken.slug;
344
- // const feeInfo = await extrinsic.paymentInfo(address);
345
- // const fee = feeInfo.toPrimitive() as unknown as RuntimeDispatchInfo;
346
-
347
- // Not use the fee to validate and to display on UI
348
- return [extrinsic, {
349
- slug: tokenSlug,
350
- amount: '0'
351
- }];
352
- };
353
- if (!poolPosition) {
354
- const extrinsic = chainApi.api.tx.parachainStaking.joinDelegators(selectedValidatorInfo.address, binaryAmount);
355
- return compoundResult(extrinsic);
356
- }
357
- const {
358
- bondedValidators
359
- } = getBondedValidators(poolPosition.nominations);
360
- if (!bondedValidators.includes(reformatAddress(selectedValidatorInfo.address, 0))) {
361
- const extrinsic = chainApi.api.tx.parachainStaking.joinDelegators(selectedValidatorInfo.address, binaryAmount);
362
- return compoundResult(extrinsic);
363
- } else {
364
- const _params = chainApi.api.tx.parachainStaking.delegatorStakeMore.toJSON();
365
- const paramsCount = _params.args.length;
366
- if (paramsCount === 2) {
367
- // detect number of params
368
- const extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeMore(selectedValidatorInfo.address, binaryAmount);
369
- return compoundResult(extrinsic);
370
- } else {
371
- const extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeMore(binaryAmount);
372
- return compoundResult(extrinsic);
373
- }
374
- }
375
- }
376
-
377
- /* Join pool action */
378
-
379
- /* Leave pool action */
380
-
381
- async handleYieldUnstake(amount, address, selectedTarget) {
382
- const chainApi = await this.substrateApi.isReady;
383
- const binaryAmount = new BN(amount);
384
- const poolPosition = await this.getPoolPosition(address);
385
- if (!selectedTarget || !poolPosition) {
386
- return Promise.reject(new TransactionError(BasicTxErrorType.INVALID_PARAMS));
387
- }
388
- const unstakeAll = isUnstakeAll(selectedTarget, poolPosition.nominations, amount);
389
- let extrinsic;
390
- if (!unstakeAll) {
391
- const _params = chainApi.api.tx.parachainStaking.delegatorStakeMore.toJSON();
392
- const paramsCount = _params.args.length;
393
- if (paramsCount === 2) {
394
- extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeLess(selectedTarget, binaryAmount);
395
- } else {
396
- extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeLess(binaryAmount);
397
- }
398
- } else {
399
- extrinsic = chainApi.api.tx.parachainStaking.leaveDelegators();
400
- }
401
- return [ExtrinsicType.STAKING_LEAVE_POOL, extrinsic];
402
- }
403
-
404
- /* Leave pool action */
405
-
406
- /* Other action */
407
-
408
- /**
409
- * @todo Need recheck
410
- * */
411
- async handleYieldCancelUnstake(params) {
412
- const chainApi = await this.substrateApi.isReady;
413
- return chainApi.api.tx.parachainStaking.cancelLeaveCandidates();
414
- }
415
- async handleYieldWithdraw(address, unstakingInfo) {
416
- const chainApi = await this.substrateApi.isReady;
417
- return chainApi.api.tx.parachainStaking.unlockUnstaked(address);
418
- }
419
- async handleYieldClaimReward(address, bondReward) {
420
- const chainApi = await this.substrateApi.isReady;
421
- return chainApi.api.tx.utility.batch([chainApi.api.tx.parachainStaking.incrementDelegatorRewards(), chainApi.api.tx.parachainStaking.claimRewards()]);
422
- }
423
-
424
- /* Other actions */
425
- }
@@ -1,19 +0,0 @@
1
- import { _ChainInfo } from '@subwallet/chain-list/types';
2
- import { ExtrinsicType, UnstakingInfo } from '@subwallet/extension-base/background/KoniTypes';
3
- import { _SubstrateApi } from '@subwallet/extension-base/services/chain-service/types';
4
- import { BaseYieldPositionInfo, PalletDappsStakingAccountLedger, StakeCancelWithdrawalParams, SubmitJoinNativeStaking, TransactionData, ValidatorInfo, YieldPoolInfo, YieldPoolMethodInfo, YieldPositionInfo, YieldStepBaseInfo, YieldTokenBaseInfo } from '@subwallet/extension-base/types';
5
- import BaseParaNativeStakingPoolHandler from './base-para';
6
- export declare function getAstarWithdrawable(yieldPosition: YieldPositionInfo): UnstakingInfo | undefined;
7
- export default class AstarNativeStakingPoolHandler extends BaseParaNativeStakingPoolHandler {
8
- protected readonly availableMethod: YieldPoolMethodInfo;
9
- subscribePoolInfo(callback: (data: YieldPoolInfo) => void): Promise<VoidFunction>;
10
- parseNominatorMetadata(chainInfo: _ChainInfo, address: string, substrateApi: _SubstrateApi, ledger: PalletDappsStakingAccountLedger): Promise<Omit<YieldPositionInfo, keyof BaseYieldPositionInfo>>;
11
- subscribePoolPosition(useAddresses: string[], resultCallback: (rs: YieldPositionInfo) => void): Promise<VoidFunction>;
12
- getPoolTargets(): Promise<ValidatorInfo[]>;
13
- get defaultSubmitStep(): YieldStepBaseInfo;
14
- createJoinExtrinsic(data: SubmitJoinNativeStaking, positionInfo?: YieldPositionInfo, bondDest?: string): Promise<[TransactionData, YieldTokenBaseInfo]>;
15
- handleYieldUnstake(amount: string, address: string, selectedTarget?: string): Promise<[ExtrinsicType, TransactionData]>;
16
- handleYieldCancelUnstake(params: StakeCancelWithdrawalParams): Promise<TransactionData>;
17
- handleYieldWithdraw(address: string, unstakingInfo: UnstakingInfo): Promise<TransactionData>;
18
- handleYieldClaimReward(address: string, bondReward?: boolean): Promise<import("@polkadot/api-base/types").SubmittableExtrinsic<"promise", import("@polkadot/types/types").ISubmittableResult>>;
19
- }