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