@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,384 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
9
- var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
10
- var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
11
- var _constants = require("@subwallet/extension-base/services/chain-service/constants");
12
- var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
13
- var _utils2 = require("@subwallet/extension-base/services/earning-service/utils");
14
- var _types = require("@subwallet/extension-base/types");
15
- var _utils3 = require("@subwallet/extension-base/utils");
16
- var _util = require("@polkadot/util");
17
- var _basePara = _interopRequireDefault(require("./base-para"));
18
- // Copyright 2019-2022 @subwallet/extension-base
19
- // SPDX-License-Identifier: Apache-2.0
20
-
21
- class AmplitudeNativeStakingPoolHandler extends _basePara.default {
22
- /* Subscribe pool info */
23
-
24
- async subscribePoolInfo(callback) {
25
- let cancel = false;
26
- const nativeToken = this.nativeToken;
27
- if (!this.isActive) {
28
- const data = {
29
- ...this.baseInfo,
30
- type: this.type,
31
- metadata: {
32
- ...this.metadataInfo,
33
- description: this.getDescription()
34
- }
35
- };
36
- callback(data);
37
- return () => {
38
- cancel = true;
39
- };
40
- }
41
- const substrateApi = await this.substrateApi.isReady;
42
- const unsub = await substrateApi.api.query.parachainStaking.round(async _round => {
43
- if (cancel) {
44
- unsub();
45
- return;
46
- }
47
- const roundObj = _round.toHuman();
48
- const round = (0, _utils3.parseRawNumber)(roundObj.current);
49
- const maxDelegations = substrateApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
50
- const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
51
- const unstakingDelay = substrateApi.api.consts.parachainStaking.stakeDuration.toString(); // in blocks
52
- const _blockPerRound = substrateApi.api.consts.parachainStaking.defaultBlocksPerRound.toString();
53
- const blockPerRound = parseFloat(_blockPerRound);
54
- const roundTime = _constants._STAKING_ERA_LENGTH_MAP[this.chain] || _constants._STAKING_ERA_LENGTH_MAP.default; // in hours
55
- const blockDuration = roundTime / blockPerRound; // in hours
56
- const unstakingPeriod = blockDuration * parseInt(unstakingDelay);
57
- const minToHuman = (0, _utils3.formatNumber)(minDelegatorStake, nativeToken.decimals || 0, _utils3.balanceFormatter);
58
- const delegatorStorages = await substrateApi.api.query.parachainStaking.delegatorState.keys();
59
- const staked = await substrateApi.api.query.parachainStaking.totalCollatorStake();
60
- const stakeInfo = staked.toPrimitive();
61
- const data = {
62
- ...this.baseInfo,
63
- type: this.type,
64
- metadata: {
65
- ...this.metadataInfo,
66
- description: this.getDescription(minToHuman)
67
- },
68
- statistic: {
69
- assetEarning: [{
70
- slug: this.nativeToken.slug
71
- }],
72
- maxCandidatePerFarmer: parseInt(maxDelegations),
73
- maxWithdrawalRequestPerFarmer: 1,
74
- // by default
75
- earningThreshold: {
76
- join: minDelegatorStake,
77
- defaultUnstake: '0',
78
- fastUnstake: '0'
79
- },
80
- farmerCount: delegatorStorages.length,
81
- // One delegator (farmer) - One collator (candidate) - on storage
82
- era: round,
83
- eraTime: roundTime,
84
- tvl: stakeInfo.delegators,
85
- // TODO recheck
86
- totalApy: undefined,
87
- // TODO recheck
88
- unstakingPeriod
89
- }
90
- };
91
- callback(data);
92
- });
93
- return () => {
94
- cancel = true;
95
- unsub();
96
- };
97
- }
98
-
99
- /* Subscribe pool info */
100
-
101
- /* Subscribe pool position */
102
-
103
- async parseNominatorMetadata(chainInfo, address, substrateApi, delegatorState, unstakingInfo) {
104
- const nominationList = [];
105
- const unstakingList = [];
106
- const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
107
- let activeStake = '0';
108
- let unstakingBalance = '0';
109
- if (delegatorState) {
110
- // delegatorState can be null while unstaking all
111
- const [identity] = await (0, _utils2.parseIdentity)(substrateApi, delegatorState.owner);
112
- activeStake = delegatorState.amount.toString();
113
- const bnActiveStake = new _util.BN(activeStake);
114
- let delegationStatus = _types.EarningStatus.NOT_EARNING;
115
- if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegatorStake))) {
116
- delegationStatus = _types.EarningStatus.EARNING_REWARD;
117
- }
118
- nominationList.push({
119
- status: delegationStatus,
120
- chain: chainInfo.slug,
121
- validatorAddress: delegatorState.owner,
122
- activeStake: delegatorState.amount.toString(),
123
- validatorMinStake: '0',
124
- hasUnstaking: !!unstakingInfo && Object.values(unstakingInfo).length > 0,
125
- validatorIdentity: identity
126
- });
127
- }
128
- if (unstakingInfo && Object.values(unstakingInfo).length > 0) {
129
- const _currentBlockInfo = await substrateApi.api.rpc.chain.getHeader();
130
- const currentBlockInfo = _currentBlockInfo.toPrimitive();
131
- const currentBlockNumber = currentBlockInfo.number;
132
- const _blockPerRound = substrateApi.api.consts.parachainStaking.defaultBlocksPerRound.toString();
133
- const blockPerRound = parseFloat(_blockPerRound);
134
- const nearestUnstakingBlock = Object.keys(unstakingInfo)[0];
135
- const nearestUnstakingAmount = Object.values(unstakingInfo)[0];
136
- const blockDuration = (_constants._STAKING_ERA_LENGTH_MAP[chainInfo.slug] || _constants._STAKING_ERA_LENGTH_MAP.default) / blockPerRound; // in hours
137
-
138
- const isClaimable = parseInt(nearestUnstakingBlock) - currentBlockNumber < 0;
139
- const remainingBlock = parseInt(nearestUnstakingBlock) - currentBlockNumber;
140
- const waitingTime = remainingBlock * blockDuration;
141
- unstakingBalance = nearestUnstakingAmount.toString();
142
- unstakingList.push({
143
- chain: chainInfo.slug,
144
- status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
145
- claimable: nearestUnstakingAmount.toString(),
146
- waitingTime,
147
- validatorAddress: (delegatorState === null || delegatorState === void 0 ? void 0 : delegatorState.owner) || undefined
148
- });
149
- }
150
- const totalBalance = new _util.BN(activeStake).add(new _util.BN(unstakingBalance));
151
- const stakingStatus = (0, _utils.getEarningStatusByNominations)(new _util.BN(activeStake), nominationList);
152
- return {
153
- status: stakingStatus,
154
- balanceToken: this.nativeToken.slug,
155
- totalStake: totalBalance.toString(),
156
- activeStake: activeStake,
157
- unstakeBalance: unstakingBalance,
158
- isBondedBefore: true,
159
- nominations: nominationList,
160
- unstakings: unstakingList
161
- };
162
- }
163
- async subscribePoolPosition(useAddresses, resultCallback) {
164
- let cancel = false;
165
- const substrateApi = await this.substrateApi.isReady;
166
- const defaultInfo = this.baseInfo;
167
- const chainInfo = this.chainInfo;
168
- const unsub = await substrateApi.api.query.parachainStaking.delegatorState.multi(useAddresses, async ledgers => {
169
- if (cancel) {
170
- unsub();
171
- return;
172
- }
173
- if (ledgers) {
174
- const _unstakingStates = await substrateApi.api.query.parachainStaking.unstaking.multi(useAddresses);
175
- await Promise.all(ledgers.map(async (_delegatorState, i) => {
176
- const owner = (0, _utils3.reformatAddress)(useAddresses[i], 42);
177
- const delegatorState = _delegatorState.toPrimitive();
178
- const unstakingInfo = _unstakingStates[i].toPrimitive();
179
- if (!delegatorState && !unstakingInfo) {
180
- resultCallback({
181
- ...defaultInfo,
182
- type: this.type,
183
- address: owner,
184
- balanceToken: this.nativeToken.slug,
185
- totalStake: '0',
186
- activeStake: '0',
187
- unstakeBalance: '0',
188
- status: _types.EarningStatus.NOT_STAKING,
189
- isBondedBefore: false,
190
- nominations: [],
191
- unstakings: []
192
- });
193
- } else {
194
- const nominatorMetadata = await this.parseNominatorMetadata(chainInfo, owner, substrateApi, delegatorState, unstakingInfo);
195
- resultCallback({
196
- ...defaultInfo,
197
- ...nominatorMetadata,
198
- address: owner,
199
- type: this.type
200
- });
201
- }
202
- }));
203
- }
204
- });
205
- return () => {
206
- cancel = true;
207
- unsub();
208
- };
209
- }
210
-
211
- /* Subscribe pool position */
212
-
213
- /* Get pool reward */
214
-
215
- async getPoolReward(useAddresses, callBack) {
216
- let cancel = false;
217
- const substrateApi = this.substrateApi;
218
- await substrateApi.isReady;
219
- if (!_constants2._STAKING_CHAIN_GROUP.kilt.includes(this.chain)) {
220
- await Promise.all(useAddresses.map(async address => {
221
- const _unclaimedReward = await substrateApi.api.query.parachainStaking.rewards(address);
222
- if (cancel) {
223
- return;
224
- }
225
- callBack({
226
- ...this.baseInfo,
227
- address: address,
228
- type: this.type,
229
- unclaimedReward: _unclaimedReward.toString(),
230
- state: _KoniTypes.APIItemState.READY
231
- });
232
- }));
233
- }
234
- return () => {
235
- cancel = false;
236
- };
237
- }
238
-
239
- /* Get pool reward */
240
-
241
- /* Get pool targets */
242
-
243
- async getPoolTargets() {
244
- const chainApi = await this.substrateApi.isReady;
245
- const [_allCollators, _inflationConfig] = await Promise.all([chainApi.api.query.parachainStaking.candidatePool.entries(), chainApi.api.query.parachainStaking.inflationConfig()]);
246
- const maxDelegatorsPerCollator = chainApi.api.consts.parachainStaking.maxDelegatorsPerCollator.toString();
247
- const inflationConfig = _inflationConfig.toHuman();
248
- const rawDelegatorReturn = inflationConfig.delegator.rewardRate.annual;
249
- const delegatorReturn = parseFloat(rawDelegatorReturn.split('%')[0]);
250
- const allCollators = [];
251
- for (const _collator of _allCollators) {
252
- const collatorInfo = _collator[1].toPrimitive();
253
- const bnTotalStake = new _util.BN(collatorInfo.total);
254
- const bnOwnStake = new _util.BN(collatorInfo.stake);
255
- const bnOtherStake = bnTotalStake.sub(bnOwnStake);
256
- allCollators.push({
257
- address: collatorInfo.id,
258
- totalStake: bnTotalStake.toString(),
259
- ownStake: bnOwnStake.toString(),
260
- otherStake: bnOtherStake.toString(),
261
- nominatorCount: collatorInfo.delegators.length,
262
- commission: 0,
263
- expectedReturn: delegatorReturn,
264
- blocked: false,
265
- isVerified: false,
266
- minBond: '0',
267
- chain: this.chain,
268
- isCrowded: collatorInfo.delegators.length >= parseInt(maxDelegatorsPerCollator)
269
- });
270
- }
271
- return allCollators;
272
- }
273
-
274
- /* Get pool targets */
275
-
276
- /* Join pool action */
277
-
278
- get defaultSubmitStep() {
279
- return [{
280
- name: 'Nominate collators',
281
- type: _types.YieldStepType.NOMINATE
282
- }, {
283
- slug: this.nativeToken.slug,
284
- amount: '0'
285
- }];
286
- }
287
- async createJoinExtrinsic(data, positionInfo) {
288
- let bondDest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Staked';
289
- const {
290
- address,
291
- amount,
292
- selectedValidators: targetValidators
293
- } = data;
294
- const chainApi = await this.substrateApi.isReady;
295
- const binaryAmount = new _util.BN(amount);
296
- const poolPosition = await this.getPoolPosition(address);
297
- const selectedValidatorInfo = targetValidators[0];
298
-
299
- // eslint-disable-next-line @typescript-eslint/require-await
300
- const compoundResult = async extrinsic => {
301
- const tokenSlug = this.nativeToken.slug;
302
- // const feeInfo = await extrinsic.paymentInfo(address);
303
- // const fee = feeInfo.toPrimitive() as unknown as RuntimeDispatchInfo;
304
-
305
- // Not use the fee to validate and to display on UI
306
- return [extrinsic, {
307
- slug: tokenSlug,
308
- amount: '0'
309
- }];
310
- };
311
- if (!poolPosition) {
312
- const extrinsic = chainApi.api.tx.parachainStaking.joinDelegators(selectedValidatorInfo.address, binaryAmount);
313
- return compoundResult(extrinsic);
314
- }
315
- const {
316
- bondedValidators
317
- } = (0, _utils.getBondedValidators)(poolPosition.nominations);
318
- if (!bondedValidators.includes((0, _utils3.reformatAddress)(selectedValidatorInfo.address, 0))) {
319
- const extrinsic = chainApi.api.tx.parachainStaking.joinDelegators(selectedValidatorInfo.address, binaryAmount);
320
- return compoundResult(extrinsic);
321
- } else {
322
- const _params = chainApi.api.tx.parachainStaking.delegatorStakeMore.toJSON();
323
- const paramsCount = _params.args.length;
324
- if (paramsCount === 2) {
325
- // detect number of params
326
- const extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeMore(selectedValidatorInfo.address, binaryAmount);
327
- return compoundResult(extrinsic);
328
- } else {
329
- const extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeMore(binaryAmount);
330
- return compoundResult(extrinsic);
331
- }
332
- }
333
- }
334
-
335
- /* Join pool action */
336
-
337
- /* Leave pool action */
338
-
339
- async handleYieldUnstake(amount, address, selectedTarget) {
340
- const chainApi = await this.substrateApi.isReady;
341
- const binaryAmount = new _util.BN(amount);
342
- const poolPosition = await this.getPoolPosition(address);
343
- if (!selectedTarget || !poolPosition) {
344
- return Promise.reject(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INVALID_PARAMS));
345
- }
346
- const unstakeAll = (0, _utils.isUnstakeAll)(selectedTarget, poolPosition.nominations, amount);
347
- let extrinsic;
348
- if (!unstakeAll) {
349
- const _params = chainApi.api.tx.parachainStaking.delegatorStakeMore.toJSON();
350
- const paramsCount = _params.args.length;
351
- if (paramsCount === 2) {
352
- extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeLess(selectedTarget, binaryAmount);
353
- } else {
354
- extrinsic = chainApi.api.tx.parachainStaking.delegatorStakeLess(binaryAmount);
355
- }
356
- } else {
357
- extrinsic = chainApi.api.tx.parachainStaking.leaveDelegators();
358
- }
359
- return [_KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL, extrinsic];
360
- }
361
-
362
- /* Leave pool action */
363
-
364
- /* Other action */
365
-
366
- /**
367
- * @todo Need recheck
368
- * */
369
- async handleYieldCancelUnstake(params) {
370
- const chainApi = await this.substrateApi.isReady;
371
- return chainApi.api.tx.parachainStaking.cancelLeaveCandidates();
372
- }
373
- async handleYieldWithdraw(address, unstakingInfo) {
374
- const chainApi = await this.substrateApi.isReady;
375
- return chainApi.api.tx.parachainStaking.unlockUnstaked(address);
376
- }
377
- async handleYieldClaimReward(address, bondReward) {
378
- const chainApi = await this.substrateApi.isReady;
379
- return chainApi.api.tx.utility.batch([chainApi.api.tx.parachainStaking.incrementDelegatorRewards(), chainApi.api.tx.parachainStaking.claimRewards()]);
380
- }
381
-
382
- /* Other actions */
383
- }
384
- exports.default = AmplitudeNativeStakingPoolHandler;