@subwallet/extension-base 1.1.35-0 → 1.1.35-beta.1

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 (317) hide show
  1. package/background/KoniTypes.d.ts +111 -69
  2. package/background/KoniTypes.js +19 -13
  3. package/background/errors/TransactionError.js +9 -0
  4. package/cjs/background/KoniTypes.js +20 -16
  5. package/cjs/background/errors/TransactionError.js +9 -0
  6. package/cjs/constants/index.js +19 -4
  7. package/cjs/koni/api/dotsama/balance.js +464 -0
  8. package/cjs/koni/api/nft/config.js +33 -23
  9. package/cjs/koni/api/nft/index.js +14 -0
  10. package/cjs/koni/api/nft/nft.js +1 -22
  11. package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
  12. package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
  13. package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
  14. package/cjs/koni/api/staking/bonding/amplitude.js +19 -16
  15. package/cjs/koni/api/staking/bonding/astar.js +11 -10
  16. package/cjs/koni/api/staking/bonding/index.js +4 -1
  17. package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
  18. package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
  19. package/cjs/koni/api/staking/bonding/utils.js +104 -86
  20. package/cjs/koni/api/staking/index.js +6 -5
  21. package/cjs/koni/api/staking/paraChain.js +6 -5
  22. package/cjs/koni/api/staking/relayChain.js +3 -2
  23. package/cjs/koni/api/yield/helper/utils.js +46 -0
  24. package/cjs/koni/background/cron.js +3 -21
  25. package/cjs/koni/background/handlers/Extension.js +368 -69
  26. package/cjs/koni/background/handlers/State.js +18 -12
  27. package/cjs/koni/background/handlers/index.js +4 -2
  28. package/cjs/koni/background/subscription.js +7 -104
  29. package/cjs/services/campaign-service/index.js +9 -6
  30. package/cjs/services/chain-service/constants.js +1 -16
  31. package/cjs/services/chain-service/index.js +6 -2
  32. package/cjs/services/chain-service/utils.js +7 -1
  33. package/cjs/services/earning-service/constants/chains.js +30 -0
  34. package/cjs/services/earning-service/constants/index.js +27 -0
  35. package/cjs/services/earning-service/constants/step.js +18 -0
  36. package/cjs/services/earning-service/handlers/base.js +262 -0
  37. package/cjs/services/earning-service/handlers/index.js +60 -0
  38. package/cjs/services/earning-service/handlers/lending/base.js +81 -0
  39. package/cjs/services/earning-service/handlers/lending/index.js +13 -0
  40. package/cjs/services/earning-service/handlers/lending/interlay.js +192 -0
  41. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +240 -0
  42. package/cjs/services/earning-service/handlers/liquid-staking/base.js +97 -0
  43. package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +140 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +298 -0
  45. package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
  46. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +227 -0
  47. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +404 -0
  48. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +434 -0
  49. package/cjs/services/earning-service/handlers/native-staking/astar.js +466 -0
  50. package/cjs/services/earning-service/handlers/native-staking/base-para.js +146 -0
  51. package/cjs/services/earning-service/handlers/native-staking/base.js +161 -0
  52. package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
  53. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +390 -0
  54. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +567 -0
  55. package/cjs/services/earning-service/handlers/nomination-pool/index.js +566 -0
  56. package/cjs/services/earning-service/handlers/special.js +493 -0
  57. package/cjs/services/earning-service/service.js +733 -0
  58. package/cjs/services/earning-service/utils/index.js +128 -0
  59. package/cjs/services/event-service/index.js +5 -0
  60. package/cjs/services/keyring-service/index.js +14 -2
  61. package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
  62. package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
  63. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +17 -0
  64. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  65. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +17 -0
  66. package/cjs/services/migration-service/scripts/MigrateProvider.js +29 -0
  67. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  68. package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
  69. package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
  70. package/cjs/services/migration-service/scripts/index.js +6 -1
  71. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
  72. package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
  73. package/cjs/services/mint-campaign-service/constants.js +11 -0
  74. package/cjs/services/mint-campaign-service/index.js +18 -0
  75. package/cjs/services/notification-service/NotificationService.js +3 -2
  76. package/cjs/services/request-service/handler/PopupHandler.js +2 -3
  77. package/cjs/services/storage-service/DatabaseService.js +63 -0
  78. package/cjs/services/storage-service/databases/index.js +4 -0
  79. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  80. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
  81. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +71 -0
  82. package/cjs/services/storage-service/index.js +241 -0
  83. package/cjs/services/subscan-service/index.js +16 -0
  84. package/cjs/services/transaction-service/event-parser/index.js +58 -0
  85. package/cjs/services/transaction-service/helpers/index.js +3 -1
  86. package/cjs/services/transaction-service/index.js +249 -75
  87. package/cjs/services/transaction-service/utils.js +1 -0
  88. package/cjs/types/campaigns/index.js +16 -0
  89. package/cjs/types/campaigns/unlock-dot.js +1 -0
  90. package/cjs/types/index.js +44 -0
  91. package/cjs/types/ordinal.js +1 -0
  92. package/cjs/types/transaction.js +1 -0
  93. package/cjs/types/yield/actions/index.js +27 -0
  94. package/cjs/types/yield/actions/join/index.js +38 -0
  95. package/cjs/types/yield/actions/join/step.js +47 -0
  96. package/cjs/types/yield/actions/join/submit.js +1 -0
  97. package/cjs/types/yield/actions/join/validate.js +16 -0
  98. package/cjs/types/yield/actions/others.js +1 -0
  99. package/cjs/types/yield/index.js +27 -0
  100. package/cjs/types/yield/info/account/index.js +49 -0
  101. package/cjs/types/yield/info/account/info.js +1 -0
  102. package/cjs/types/yield/info/account/reward.js +1 -0
  103. package/cjs/types/yield/info/account/target.js +32 -0
  104. package/cjs/types/yield/info/account/unstake.js +27 -0
  105. package/cjs/types/yield/info/base.js +41 -0
  106. package/cjs/types/yield/info/chain/index.js +27 -0
  107. package/cjs/types/yield/info/chain/info.js +1 -0
  108. package/cjs/types/yield/info/chain/target.js +1 -0
  109. package/cjs/types/yield/info/index.js +49 -0
  110. package/cjs/types/yield/info/pallet.js +15 -0
  111. package/cjs/types.js +1 -0
  112. package/cjs/utils/address.js +34 -0
  113. package/cjs/utils/environment.js +23 -28
  114. package/cjs/utils/fetchStaticCache.js +22 -0
  115. package/cjs/utils/fetchStaticData.js +2 -1
  116. package/cjs/utils/index.js +94 -10
  117. package/cjs/utils/keyring.js +57 -0
  118. package/cjs/utils/mv3.js +21 -0
  119. package/cjs/utils/number.js +6 -2
  120. package/cjs/utils/object.js +12 -0
  121. package/constants/index.d.ts +6 -1
  122. package/constants/index.js +6 -1
  123. package/koni/api/nft/config.js +33 -23
  124. package/koni/api/nft/index.js +15 -1
  125. package/koni/api/nft/nft.js +2 -23
  126. package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
  127. package/koni/api/nft/ordinal_nft/constants.js +12 -0
  128. package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
  129. package/koni/api/nft/ordinal_nft/index.js +114 -0
  130. package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
  131. package/koni/api/nft/ordinal_nft/utils.js +33 -0
  132. package/koni/api/staking/bonding/amplitude.js +13 -10
  133. package/koni/api/staking/bonding/astar.js +9 -8
  134. package/koni/api/staking/bonding/index.d.ts +1 -1
  135. package/koni/api/staking/bonding/index.js +5 -1
  136. package/koni/api/staking/bonding/paraChain.js +12 -10
  137. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  138. package/koni/api/staking/bonding/relayChain.js +33 -30
  139. package/koni/api/staking/bonding/utils.d.ts +15 -38
  140. package/koni/api/staking/bonding/utils.js +85 -69
  141. package/koni/api/staking/index.js +2 -1
  142. package/koni/api/staking/paraChain.js +7 -6
  143. package/koni/api/staking/relayChain.js +4 -3
  144. package/koni/api/yield/helper/utils.d.ts +10 -0
  145. package/koni/api/yield/helper/utils.js +32 -0
  146. package/koni/background/cron.d.ts +0 -4
  147. package/koni/background/cron.js +4 -22
  148. package/koni/background/handlers/Extension.d.ts +17 -1
  149. package/koni/background/handlers/Extension.js +327 -30
  150. package/koni/background/handlers/State.d.ts +6 -1
  151. package/koni/background/handlers/State.js +17 -12
  152. package/koni/background/handlers/index.js +4 -2
  153. package/koni/background/subscription.d.ts +1 -6
  154. package/koni/background/subscription.js +8 -104
  155. package/package.json +326 -3
  156. package/services/campaign-service/index.js +9 -6
  157. package/services/chain-service/constants.d.ts +0 -12
  158. package/services/chain-service/constants.js +0 -14
  159. package/services/chain-service/index.js +6 -2
  160. package/services/chain-service/utils.d.ts +1 -0
  161. package/services/chain-service/utils.js +5 -1
  162. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
  163. package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
  164. package/services/earning-service/constants/chains.d.ts +15 -0
  165. package/services/earning-service/constants/chains.js +22 -0
  166. package/services/earning-service/constants/index.d.ts +2 -0
  167. package/services/earning-service/constants/index.js +5 -0
  168. package/services/earning-service/constants/step.d.ts +3 -0
  169. package/services/earning-service/constants/step.js +10 -0
  170. package/services/earning-service/handlers/base.d.ts +113 -0
  171. package/services/earning-service/handlers/base.js +256 -0
  172. package/services/earning-service/handlers/index.d.ts +5 -0
  173. package/services/earning-service/handlers/index.js +8 -0
  174. package/services/earning-service/handlers/lending/base.d.ts +8 -0
  175. package/services/earning-service/handlers/lending/base.js +73 -0
  176. package/services/earning-service/handlers/lending/index.d.ts +1 -0
  177. package/services/earning-service/handlers/lending/index.js +4 -0
  178. package/services/earning-service/handlers/lending/interlay.d.ts +24 -0
  179. package/services/earning-service/handlers/lending/interlay.js +184 -0
  180. package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
  181. package/services/earning-service/handlers/liquid-staking/acala.js +232 -0
  182. package/services/earning-service/handlers/liquid-staking/base.d.ts +11 -0
  183. package/services/earning-service/handlers/liquid-staking/base.js +89 -0
  184. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +46 -0
  185. package/services/earning-service/handlers/liquid-staking/bifrost.js +287 -0
  186. package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
  187. package/services/earning-service/handlers/liquid-staking/index.js +7 -0
  188. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +26 -0
  189. package/services/earning-service/handlers/liquid-staking/parallel.js +219 -0
  190. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +34 -0
  191. package/services/earning-service/handlers/liquid-staking/stella-swap.js +394 -0
  192. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  193. package/services/earning-service/handlers/native-staking/amplitude.js +425 -0
  194. package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
  195. package/services/earning-service/handlers/native-staking/astar.js +456 -0
  196. package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
  197. package/services/earning-service/handlers/native-staking/base-para.js +138 -0
  198. package/services/earning-service/handlers/native-staking/base.d.ts +21 -0
  199. package/services/earning-service/handlers/native-staking/base.js +152 -0
  200. package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
  201. package/services/earning-service/handlers/native-staking/index.js +7 -0
  202. package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
  203. package/services/earning-service/handlers/native-staking/para-chain.js +382 -0
  204. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
  205. package/services/earning-service/handlers/native-staking/relay-chain.js +558 -0
  206. package/services/earning-service/handlers/nomination-pool/index.d.ts +36 -0
  207. package/services/earning-service/handlers/nomination-pool/index.js +556 -0
  208. package/services/earning-service/handlers/special.d.ts +64 -0
  209. package/services/earning-service/handlers/special.js +485 -0
  210. package/services/earning-service/service.d.ts +94 -0
  211. package/services/earning-service/service.js +722 -0
  212. package/services/earning-service/utils/index.d.ts +18 -0
  213. package/services/earning-service/utils/index.js +112 -0
  214. package/services/event-service/index.d.ts +2 -0
  215. package/services/event-service/index.js +5 -0
  216. package/services/event-service/types.d.ts +9 -0
  217. package/services/keyring-service/index.d.ts +2 -1
  218. package/services/keyring-service/index.js +14 -2
  219. package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
  220. package/services/migration-service/scripts/DeleteEarningData.js +13 -0
  221. package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
  222. package/services/migration-service/scripts/EnableEarningChains.js +13 -0
  223. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  224. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  225. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
  226. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
  227. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
  228. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
  229. package/services/migration-service/scripts/index.js +6 -1
  230. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
  231. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
  232. package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
  233. package/services/mint-campaign-service/campaigns/index.js +4 -0
  234. package/services/mint-campaign-service/constants.d.ts +1 -0
  235. package/services/mint-campaign-service/constants.js +4 -0
  236. package/services/mint-campaign-service/index.d.ts +7 -0
  237. package/services/mint-campaign-service/index.js +11 -0
  238. package/services/notification-service/NotificationService.js +3 -2
  239. package/services/request-service/handler/PopupHandler.js +3 -4
  240. package/services/storage-service/DatabaseService.d.ts +22 -1
  241. package/services/storage-service/DatabaseService.js +63 -0
  242. package/services/storage-service/databases/index.d.ts +3 -1
  243. package/services/storage-service/databases/index.js +4 -0
  244. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  245. package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
  246. package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
  247. package/services/storage-service/db-stores/YieldPositionStore.d.ts +11 -0
  248. package/services/storage-service/db-stores/YieldPositionStore.js +63 -0
  249. package/services/subscan-service/index.d.ts +3 -2
  250. package/services/subscan-service/index.js +15 -0
  251. package/services/subscan-service/types.d.ts +20 -0
  252. package/services/transaction-service/event-parser/index.d.ts +3 -1
  253. package/services/transaction-service/event-parser/index.js +57 -1
  254. package/services/transaction-service/helpers/index.js +3 -1
  255. package/services/transaction-service/index.d.ts +6 -13
  256. package/services/transaction-service/index.js +247 -73
  257. package/services/transaction-service/types.d.ts +2 -0
  258. package/services/transaction-service/utils.js +1 -0
  259. package/types/campaigns/index.d.ts +1 -0
  260. package/types/campaigns/index.js +4 -0
  261. package/types/campaigns/unlock-dot.d.ts +71 -0
  262. package/types/campaigns/unlock-dot.js +1 -0
  263. package/types/index.d.ts +5 -0
  264. package/types/index.js +5 -1
  265. package/types/ordinal.d.ts +69 -0
  266. package/types/ordinal.js +1 -0
  267. package/types/transaction.d.ts +3 -0
  268. package/types/transaction.js +1 -0
  269. package/types/yield/actions/index.d.ts +2 -0
  270. package/types/yield/actions/index.js +5 -0
  271. package/types/yield/actions/join/index.d.ts +3 -0
  272. package/types/yield/actions/join/index.js +6 -0
  273. package/types/yield/actions/join/step.d.ts +95 -0
  274. package/types/yield/actions/join/step.js +46 -0
  275. package/types/yield/actions/join/submit.d.ts +58 -0
  276. package/types/yield/actions/join/submit.js +1 -0
  277. package/types/yield/actions/join/validate.d.ts +18 -0
  278. package/types/yield/actions/join/validate.js +10 -0
  279. package/types/yield/actions/others.d.ts +85 -0
  280. package/types/yield/actions/others.js +1 -0
  281. package/types/yield/index.d.ts +2 -0
  282. package/types/yield/index.js +5 -0
  283. package/types/yield/info/account/index.d.ts +4 -0
  284. package/types/yield/info/account/index.js +7 -0
  285. package/types/yield/info/account/info.d.ts +92 -0
  286. package/types/yield/info/account/info.js +1 -0
  287. package/types/yield/info/account/reward.d.ts +47 -0
  288. package/types/yield/info/account/reward.js +1 -0
  289. package/types/yield/info/account/target.d.ts +43 -0
  290. package/types/yield/info/account/target.js +27 -0
  291. package/types/yield/info/account/unstake.d.ts +31 -0
  292. package/types/yield/info/account/unstake.js +22 -0
  293. package/types/yield/info/base.d.ts +45 -0
  294. package/types/yield/info/base.js +36 -0
  295. package/types/yield/info/chain/index.d.ts +2 -0
  296. package/types/yield/info/chain/index.js +5 -0
  297. package/types/yield/info/chain/info.d.ts +252 -0
  298. package/types/yield/info/chain/info.js +1 -0
  299. package/types/yield/info/chain/target.d.ts +37 -0
  300. package/types/yield/info/chain/target.js +1 -0
  301. package/types/yield/info/index.d.ts +4 -0
  302. package/types/yield/info/index.js +7 -0
  303. package/types/yield/info/pallet.d.ts +143 -0
  304. package/types/yield/info/pallet.js +9 -0
  305. package/utils/environment.d.ts +9 -2
  306. package/utils/environment.js +14 -26
  307. package/utils/fetchStaticCache.d.ts +1 -0
  308. package/utils/fetchStaticCache.js +14 -0
  309. package/utils/fetchStaticData.js +2 -1
  310. package/utils/index.d.ts +5 -1
  311. package/utils/index.js +53 -3
  312. package/utils/mv3.d.ts +2 -0
  313. package/utils/mv3.js +13 -0
  314. package/utils/number.d.ts +2 -1
  315. package/utils/number.js +2 -1
  316. package/utils/object.d.ts +1 -0
  317. package/utils/object.js +6 -0
@@ -29,7 +29,10 @@ var _constants = require("@subwallet/extension-base/constants");
29
29
  var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
30
30
  var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
31
31
  var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
32
- var _utils3 = require("@subwallet/extension-base/utils");
32
+ var _constants3 = require("@subwallet/extension-base/services/earning-service/constants");
33
+ var _utils3 = require("@subwallet/extension-base/services/earning-service/utils");
34
+ var _types = require("@subwallet/extension-base/types");
35
+ var _utils4 = require("@subwallet/extension-base/utils");
33
36
  var _bignumber = _interopRequireDefault(require("bignumber.js"));
34
37
  var _i18next = require("i18next");
35
38
  var _util = require("@polkadot/util");
@@ -83,7 +86,7 @@ function validateRelayBondingCondition(chainInfo, amount, selectedValidators, ad
83
86
  const bnMinStake = new _util.BN(chainStakingMetadata.minStake);
84
87
  const minStakeErrorMessage = (0, _utils.getMinStakeErrorMessage)(chainInfo, bnMinStake);
85
88
  const maxValidatorErrorMessage = (0, _utils.getMaxValidatorErrorMessage)(chainInfo, chainStakingMetadata.maxValidatorPerNominator);
86
- if (!nominatorMetadata || nominatorMetadata.status === _KoniTypes.StakingStatus.NOT_STAKING) {
89
+ if (!nominatorMetadata || nominatorMetadata.status === _types.EarningStatus.NOT_STAKING) {
87
90
  if (!bnTotalStake.gte(bnMinStake)) {
88
91
  errors.push(new _TransactionError.TransactionError(_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE, minStakeErrorMessage));
89
92
  }
@@ -128,7 +131,7 @@ function subscribeRelayChainStakingMetadata(chainInfo, substrateApi, callback) {
128
131
  callback(chainInfo.slug, {
129
132
  chain: chainInfo.slug,
130
133
  type: _KoniTypes.StakingType.NOMINATED,
131
- expectedReturn: !_constants2._STAKING_CHAIN_GROUP.ternoa.includes(chainInfo.slug) ? expectedReturn : undefined,
134
+ expectedReturn: !_constants3._STAKING_CHAIN_GROUP.ternoa.includes(chainInfo.slug) ? expectedReturn : undefined,
132
135
  // in %, annually
133
136
  inflation,
134
137
  era: parseInt(currentEra),
@@ -142,12 +145,12 @@ function subscribeRelayChainStakingMetadata(chainInfo, substrateApi, callback) {
142
145
  });
143
146
  }
144
147
  async function getRelayChainStakingMetadata(chainInfo, substrateApi) {
145
- var _chainApi$api$query$a, _chainApi$api$query, _chainApi$api$query$s, _chainApi$api$query2, _chainApi$api$query2$, _chainApi$api$query3, _chainApi$api$query3$;
148
+ var _chainApi$api$consts$, _chainApi$api$consts$2, _chainApi$api$query$a, _chainApi$api$query, _chainApi$api$query$s, _chainApi$api$query2, _chainApi$api$query2$, _chainApi$api$query3, _chainApi$api$query3$;
146
149
  const chain = chainInfo.slug;
147
150
  const chainApi = await substrateApi.isReady;
148
151
  const _era = await chainApi.api.query.staking.currentEra();
149
152
  const currentEra = _era.toString();
150
- const maxNominations = chainApi.api.consts.staking.maxNominations.toString();
153
+ const maxNominations = ((_chainApi$api$consts$ = chainApi.api.consts.staking) === null || _chainApi$api$consts$ === void 0 ? void 0 : (_chainApi$api$consts$2 = _chainApi$api$consts$.maxNominations) === null || _chainApi$api$consts$2 === void 0 ? void 0 : _chainApi$api$consts$2.toString()) || '16'; // TODO
151
154
  const maxUnlockingChunks = chainApi.api.consts.staking.maxUnlockingChunks.toString();
152
155
  const unlockingEras = chainApi.api.consts.staking.bondingDuration.toString();
153
156
  const [_totalEraStake, _totalIssuance, _auctionCounter, _minimumActiveStake, _minNominatorBond, _minPoolJoin, _eraStakers] = await Promise.all([chainApi.api.query.staking.erasTotalStake(parseInt(currentEra)), chainApi.api.query.balances.totalIssuance(), (_chainApi$api$query$a = chainApi.api.query.auctions) === null || _chainApi$api$query$a === void 0 ? void 0 : _chainApi$api$query$a.auctionCounter(), ((_chainApi$api$query = chainApi.api.query) === null || _chainApi$api$query === void 0 ? void 0 : (_chainApi$api$query$s = _chainApi$api$query.staking) === null || _chainApi$api$query$s === void 0 ? void 0 : _chainApi$api$query$s.minimumActiveStake) && ((_chainApi$api$query2 = chainApi.api.query) === null || _chainApi$api$query2 === void 0 ? void 0 : (_chainApi$api$query2$ = _chainApi$api$query2.staking) === null || _chainApi$api$query2$ === void 0 ? void 0 : _chainApi$api$query2$.minimumActiveStake()), chainApi.api.query.staking.minNominatorBond(), (_chainApi$api$query3 = chainApi.api.query) === null || _chainApi$api$query3 === void 0 ? void 0 : (_chainApi$api$query3$ = _chainApi$api$query3.nominationPools) === null || _chainApi$api$query3$ === void 0 ? void 0 : _chainApi$api$query3$.minJoinBond(), chainApi.api.query.staking.erasStakers.entries(parseInt(currentEra))]);
@@ -184,7 +187,7 @@ async function getRelayChainStakingMetadata(chainInfo, substrateApi) {
184
187
  chain,
185
188
  type: _KoniTypes.StakingType.NOMINATED,
186
189
  era: parseInt(currentEra),
187
- expectedReturn: !_constants2._STAKING_CHAIN_GROUP.ternoa.includes(chain) ? expectedReturn : undefined,
190
+ expectedReturn: !_constants3._STAKING_CHAIN_GROUP.ternoa.includes(chain) ? expectedReturn : undefined,
188
191
  // in %, annually
189
192
  inflation,
190
193
  minStake: minStake.toString(),
@@ -218,8 +221,8 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
218
221
  if (nominations) {
219
222
  const validatorList = nominations.targets;
220
223
  await Promise.all(validatorList.map(async validatorAddress => {
221
- let nominationStatus = _KoniTypes.StakingStatus.NOT_EARNING;
222
- const [[identity], _eraStaker] = await Promise.all([(0, _utils.parseIdentity)(chainApi, validatorAddress), chainApi.api.query.staking.erasStakers(currentEra, validatorAddress)]);
224
+ let nominationStatus = _types.EarningStatus.NOT_EARNING;
225
+ const [[identity], _eraStaker] = await Promise.all([(0, _utils3.parseIdentity)(chainApi, validatorAddress), chainApi.api.query.staking.erasStakers(currentEra, validatorAddress)]);
223
226
  const eraStaker = _eraStaker.toPrimitive();
224
227
  const sortedNominators = eraStaker.others.sort((a, b) => {
225
228
  return new _bignumber.default(b.value).minus(a.value).toNumber();
@@ -227,12 +230,12 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
227
230
  const topNominators = sortedNominators.map(nominator => {
228
231
  return nominator.who;
229
232
  });
230
- if (!topNominators.includes((0, _utils3.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
233
+ if (!topNominators.includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
231
234
  // if nominator has target but not in nominator list
232
- nominationStatus = _KoniTypes.StakingStatus.WAITING;
233
- } else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0, _utils3.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
235
+ nominationStatus = _types.EarningStatus.WAITING;
236
+ } else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
234
237
  // if address in top nominators
235
- nominationStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
238
+ nominationStatus = _types.EarningStatus.EARNING_REWARD;
236
239
  }
237
240
  nominationList.push({
238
241
  chain,
@@ -244,20 +247,20 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
244
247
  }));
245
248
  }
246
249
 
247
- let stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
250
+ let stakingStatus = _types.EarningStatus.NOT_EARNING;
248
251
  const bnActiveStake = new _util.BN(activeStake);
249
252
  let waitingNominationCount = 0;
250
253
  if (bnActiveStake.gte(minStake)) {
251
254
  for (const nomination of nominationList) {
252
- if (nomination.status === _KoniTypes.StakingStatus.EARNING_REWARD) {
255
+ if (nomination.status === _types.EarningStatus.EARNING_REWARD) {
253
256
  // only need 1 earning nomination to count
254
- stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
255
- } else if (nomination.status === _KoniTypes.StakingStatus.WAITING) {
257
+ stakingStatus = _types.EarningStatus.EARNING_REWARD;
258
+ } else if (nomination.status === _types.EarningStatus.WAITING) {
256
259
  waitingNominationCount += 1;
257
260
  }
258
261
  }
259
262
  if (waitingNominationCount === nominationList.length) {
260
- stakingStatus = _KoniTypes.StakingStatus.WAITING;
263
+ stakingStatus = _types.EarningStatus.WAITING;
261
264
  }
262
265
  }
263
266
  ledger.unlocking.forEach(unlockingChunk => {
@@ -274,7 +277,7 @@ async function subscribeRelayChainNominatorMetadata(chainInfo, address, substrat
274
277
  const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chain] + remainingHours;
275
278
  unstakingList.push({
276
279
  chain,
277
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
280
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
278
281
  claimable: unlockingChunk.value.toString(),
279
282
  waitingTime: waitingTime
280
283
  });
@@ -318,7 +321,7 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
318
321
  return {
319
322
  chain,
320
323
  type: _KoniTypes.StakingType.NOMINATED,
321
- status: _KoniTypes.StakingStatus.NOT_STAKING,
324
+ status: _types.EarningStatus.NOT_STAKING,
322
325
  address: address,
323
326
  activeStake: '0',
324
327
  nominations: [],
@@ -331,8 +334,8 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
331
334
  if (nominations) {
332
335
  const validatorList = nominations.targets;
333
336
  await Promise.all(validatorList.map(async validatorAddress => {
334
- let nominationStatus = _KoniTypes.StakingStatus.NOT_EARNING;
335
- const [[identity], _eraStaker] = await Promise.all([(0, _utils.parseIdentity)(chainApi, validatorAddress), chainApi.api.query.staking.erasStakers(currentEra, validatorAddress)]);
337
+ let nominationStatus = _types.EarningStatus.NOT_EARNING;
338
+ const [[identity], _eraStaker] = await Promise.all([(0, _utils3.parseIdentity)(chainApi, validatorAddress), chainApi.api.query.staking.erasStakers(currentEra, validatorAddress)]);
336
339
  const eraStaker = _eraStaker.toPrimitive();
337
340
  const sortedNominators = eraStaker.others.sort((a, b) => {
338
341
  return new _bignumber.default(b.value).minus(a.value).toNumber();
@@ -340,12 +343,12 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
340
343
  const topNominators = sortedNominators.map(nominator => {
341
344
  return nominator.who;
342
345
  });
343
- if (!topNominators.includes((0, _utils3.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
346
+ if (!topNominators.includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
344
347
  // if nominator has target but not in nominator list
345
- nominationStatus = _KoniTypes.StakingStatus.WAITING;
346
- } else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0, _utils3.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
348
+ nominationStatus = _types.EarningStatus.WAITING;
349
+ } else if (topNominators.slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator).includes((0, _utils4.reformatAddress)(address, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
347
350
  // if address in top nominators
348
- nominationStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
351
+ nominationStatus = _types.EarningStatus.EARNING_REWARD;
349
352
  }
350
353
  nominationList.push({
351
354
  chain,
@@ -357,20 +360,20 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
357
360
  }));
358
361
  }
359
362
 
360
- let stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
363
+ let stakingStatus = _types.EarningStatus.NOT_EARNING;
361
364
  const bnActiveStake = new _util.BN(activeStake);
362
365
  let waitingNominationCount = 0;
363
366
  if (bnActiveStake.gte(minStake)) {
364
367
  for (const nomination of nominationList) {
365
- if (nomination.status === _KoniTypes.StakingStatus.EARNING_REWARD) {
368
+ if (nomination.status === _types.EarningStatus.EARNING_REWARD) {
366
369
  // only need 1 earning nomination to count
367
- stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
368
- } else if (nomination.status === _KoniTypes.StakingStatus.WAITING) {
370
+ stakingStatus = _types.EarningStatus.EARNING_REWARD;
371
+ } else if (nomination.status === _types.EarningStatus.WAITING) {
369
372
  waitingNominationCount += 1;
370
373
  }
371
374
  }
372
375
  if (waitingNominationCount === nominationList.length) {
373
- stakingStatus = _KoniTypes.StakingStatus.WAITING;
376
+ stakingStatus = _types.EarningStatus.WAITING;
374
377
  }
375
378
  }
376
379
  ledger.unlocking.forEach(unlockingChunk => {
@@ -379,7 +382,7 @@ async function getRelayChainNominatorMetadata(chainInfo, address, substrateApi)
379
382
  const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chain];
380
383
  unstakingList.push({
381
384
  chain,
382
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
385
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
383
386
  claimable: unlockingChunk.value.toString(),
384
387
  waitingTime: waitingTime
385
388
  });
@@ -406,7 +409,7 @@ async function subscribeRelayChainPoolMemberMetadata(chainInfo, address, substra
406
409
  const poolMetadata = _poolMetadata.toPrimitive();
407
410
  const currentEra = _currentEra.toString();
408
411
  const nominations = _nominations.toJSON();
409
- let stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
412
+ let stakingStatus = _types.EarningStatus.NOT_EARNING;
410
413
  const getPoolName = () => {
411
414
  if (poolMetadata.isUtf8) {
412
415
  return poolMetadata.toUtf8();
@@ -427,9 +430,9 @@ async function subscribeRelayChainPoolMemberMetadata(chainInfo, address, substra
427
430
  const topNominators = sortedNominators.map(nominator => {
428
431
  return nominator.who;
429
432
  }).slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator);
430
- if (topNominators.includes((0, _utils3.reformatAddress)(poolStashAccount, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
433
+ if (topNominators.includes((0, _utils4.reformatAddress)(poolStashAccount, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
431
434
  // if address in top nominators
432
- stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
435
+ stakingStatus = _types.EarningStatus.EARNING_REWARD;
433
436
  }
434
437
  }));
435
438
  }
@@ -458,14 +461,14 @@ async function subscribeRelayChainPoolMemberMetadata(chainInfo, address, substra
458
461
  const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chainInfo.slug] + remainingHours;
459
462
  unstakings.push({
460
463
  chain: chainInfo.slug,
461
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
464
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
462
465
  claimable: amount.toString(),
463
466
  waitingTime: waitingTime
464
467
  });
465
468
  });
466
469
  const bnActiveStake = new _util.BN(poolMemberInfo.points.toString());
467
470
  if (!bnActiveStake.gt(_util.BN_ZERO)) {
468
- stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
471
+ stakingStatus = _types.EarningStatus.NOT_EARNING;
469
472
  }
470
473
  return {
471
474
  chain: chainInfo.slug,
@@ -496,14 +499,14 @@ async function getRelayChainPoolMemberMetadata(chainInfo, address, substrateApi)
496
499
  chain: chainInfo.slug,
497
500
  type: _KoniTypes.StakingType.POOLED,
498
501
  address,
499
- status: _KoniTypes.StakingStatus.NOT_STAKING,
502
+ status: _types.EarningStatus.NOT_STAKING,
500
503
  activeStake: '0',
501
504
  nominations: [],
502
505
  // can only join 1 pool at a time
503
506
  unstakings: []
504
507
  };
505
508
  }
506
- let stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
509
+ let stakingStatus = _types.EarningStatus.NOT_EARNING;
507
510
  const _poolMetadata = await chainApi.api.query.nominationPools.metadata(poolMemberInfo.poolId);
508
511
  const poolMetadata = _poolMetadata.toPrimitive();
509
512
  const getPoolName = () => {
@@ -529,9 +532,9 @@ async function getRelayChainPoolMemberMetadata(chainInfo, address, substrateApi)
529
532
  const topNominators = sortedNominators.map(nominator => {
530
533
  return nominator.who;
531
534
  }).slice(0, unlimitedNominatorRewarded ? undefined : maxNominatorRewardedPerValidator);
532
- if (topNominators.includes((0, _utils3.reformatAddress)(poolStashAccount, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
535
+ if (topNominators.includes((0, _utils4.reformatAddress)(poolStashAccount, (0, _utils2._getChainSubstrateAddressPrefix)(chainInfo)))) {
533
536
  // if address in top nominators
534
- stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
537
+ stakingStatus = _types.EarningStatus.EARNING_REWARD;
535
538
  }
536
539
  }));
537
540
  }
@@ -552,14 +555,14 @@ async function getRelayChainPoolMemberMetadata(chainInfo, address, substrateApi)
552
555
  const waitingTime = remainingEra * _constants2._STAKING_ERA_LENGTH_MAP[chainInfo.slug];
553
556
  unstakings.push({
554
557
  chain: chainInfo.slug,
555
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
558
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
556
559
  claimable: amount.toString(),
557
560
  waitingTime: waitingTime
558
561
  });
559
562
  });
560
563
  const bnActiveStake = new _util.BN(poolMemberInfo.points.toString());
561
564
  if (!bnActiveStake.gt(_util.BN_ZERO)) {
562
- stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
565
+ stakingStatus = _types.EarningStatus.NOT_EARNING;
563
566
  }
564
567
  return {
565
568
  chain: chainInfo.slug,
@@ -625,7 +628,7 @@ async function getRelayValidatorsInfo(chain, substrateApi, decimals, chainStakin
625
628
  const extraInfoMap = {};
626
629
  await Promise.all(allValidators.map(async address => {
627
630
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
628
- const [_commissionInfo, [identity, isVerified]] = await Promise.all([chainApi.api.query.staking.validators(address), (0, _utils.parseIdentity)(chainApi, address)]);
631
+ const [_commissionInfo, [identity, isVerified]] = await Promise.all([chainApi.api.query.staking.validators(address), (0, _utils3.parseIdentity)(chainApi, address)]);
629
632
  const commissionInfo = _commissionInfo.toHuman();
630
633
  extraInfoMap[address] = {
631
634
  commission: commissionInfo.commission,
@@ -638,9 +641,9 @@ async function getRelayValidatorsInfo(chain, substrateApi, decimals, chainStakin
638
641
  for (const validator of validatorInfoList) {
639
642
  const commission = extraInfoMap[validator.address].commission;
640
643
  const bnValidatorStake = totalStakeMap[validator.address].div(bnDecimals);
641
- if (_constants2._STAKING_CHAIN_GROUP.aleph.includes(chain)) {
644
+ if (_constants3._STAKING_CHAIN_GROUP.aleph.includes(chain)) {
642
645
  validator.expectedReturn = (0, _utils.calculateAlephZeroValidatorReturn)(chainStakingMetadata.expectedReturn, (0, _utils.getCommission)(commission));
643
- } else if (_constants2._STAKING_CHAIN_GROUP.ternoa.includes(chain)) {
646
+ } else if (_constants3._STAKING_CHAIN_GROUP.ternoa.includes(chain)) {
644
647
  const rewardPerValidator = new _util.BN(stakingRewards.sessionExtraRewardPayout).divn(allValidators.length).div(bnDecimals);
645
648
  const validatorStake = totalStakeMap[validator.address].div(bnDecimals).toNumber();
646
649
  validator.expectedReturn = (0, _utils.calculateTernoaValidatorReturn)(rewardPerValidator.toNumber(), validatorStake, (0, _utils.getCommission)(commission));
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.StakingAction = exports.PalletParachainStakingRequestType = void 0;
6
+ exports.YieldAction = exports.StakingAction = exports.PalletParachainStakingRequestType = void 0;
7
7
  exports.calcInflationRewardCurve = calcInflationRewardCurve;
8
8
  exports.calcInflationUniformEraPayout = calcInflationUniformEraPayout;
9
9
  exports.calculateAlephZeroValidatorReturn = calculateAlephZeroValidatorReturn;
@@ -13,25 +13,28 @@ exports.calculateTernoaValidatorReturn = calculateTernoaValidatorReturn;
13
13
  exports.calculateValidatorStakedReturn = calculateValidatorStakedReturn;
14
14
  exports.getBondedValidators = getBondedValidators;
15
15
  exports.getCommission = getCommission;
16
+ exports.getEarningStatusByNominations = getEarningStatusByNominations;
16
17
  exports.getExistUnstakeErrorMessage = void 0;
17
18
  exports.getInflationParams = getInflationParams;
18
19
  exports.getMinStakeErrorMessage = exports.getMaxValidatorErrorMessage = void 0;
19
20
  exports.getParaCurrentInflation = getParaCurrentInflation;
20
21
  exports.getStakingAvailableActionsByChain = getStakingAvailableActionsByChain;
21
22
  exports.getStakingAvailableActionsByNominator = getStakingAvailableActionsByNominator;
22
- exports.getStakingStatusByNominations = getStakingStatusByNominations;
23
23
  exports.getValidatorLabel = getValidatorLabel;
24
24
  exports.getWithdrawalInfo = getWithdrawalInfo;
25
+ exports.getYieldAvailableActionsByPosition = getYieldAvailableActionsByPosition;
26
+ exports.getYieldAvailableActionsByType = getYieldAvailableActionsByType;
25
27
  exports.isActionFromValidator = isActionFromValidator;
26
28
  exports.isShowNominationByValidator = isShowNominationByValidator;
27
29
  exports.isUnstakeAll = isUnstakeAll;
28
- exports.parseIdentity = parseIdentity;
29
30
  exports.parsePoolStashAddress = parsePoolStashAddress;
30
31
  exports.transformPoolName = transformPoolName;
31
32
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
32
33
  var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
33
34
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
34
35
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
36
+ var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
37
+ var _types = require("@subwallet/extension-base/types");
35
38
  var _utils2 = require("@subwallet/extension-base/utils");
36
39
  var _number = require("@subwallet/extension-base/utils/number");
37
40
  var _i18next = require("i18next");
@@ -57,64 +60,6 @@ function parsePoolStashAddress(api, index, poolId, poolsPalletId) {
57
60
  function transformPoolName(input) {
58
61
  return input.replace(/[^\x20-\x7E]/g, '');
59
62
  }
60
-
61
- /**
62
- * @returns
63
- * <p>
64
- * [0] - identity
65
- * </p>
66
- * <p>
67
- * [1] - isReasonable (isVerified)
68
- * </p>
69
- * */
70
- async function parseIdentity(substrateApi, address, children) {
71
- const compactResult = rs => {
72
- const result = [];
73
- if (rs) {
74
- result.push(rs);
75
- }
76
- if (children) {
77
- result.push(children);
78
- }
79
- if (result.length > 0) {
80
- return result.join('/');
81
- } else {
82
- return undefined;
83
- }
84
- };
85
- if (substrateApi.api.query.identity) {
86
- let identity;
87
- const _parent = await substrateApi.api.query.identity.superOf(address);
88
- const parentInfo = _parent.toHuman();
89
- if (parentInfo) {
90
- const [parentAddress, {
91
- Raw: data
92
- }] = parentInfo;
93
- const child = (0, _util.isHex)(data) ? (0, _util.hexToString)(data) : data;
94
- if (!(0, _utils2.isSameAddress)(address, parentAddress)) {
95
- const [rs, isReasonable] = await parseIdentity(substrateApi, parentAddress, child);
96
- return [compactResult(rs), isReasonable];
97
- }
98
- }
99
- const _identity = await substrateApi.api.query.identity.identityOf(address);
100
- const identityInfo = _identity.toHuman();
101
- if (identityInfo) {
102
- var _identityInfo$info, _identityInfo$info$di, _identityInfo$info2, _identityInfo$info2$w, _identityInfo$info3, _identityInfo$info3$r, _identityInfo$info4, _identityInfo$info4$t;
103
- const displayName = (_identityInfo$info = identityInfo.info) === null || _identityInfo$info === void 0 ? void 0 : (_identityInfo$info$di = _identityInfo$info.display) === null || _identityInfo$info$di === void 0 ? void 0 : _identityInfo$info$di.Raw;
104
- const web = (_identityInfo$info2 = identityInfo.info) === null || _identityInfo$info2 === void 0 ? void 0 : (_identityInfo$info2$w = _identityInfo$info2.web) === null || _identityInfo$info2$w === void 0 ? void 0 : _identityInfo$info2$w.Raw;
105
- const riot = (_identityInfo$info3 = identityInfo.info) === null || _identityInfo$info3 === void 0 ? void 0 : (_identityInfo$info3$r = _identityInfo$info3.riot) === null || _identityInfo$info3$r === void 0 ? void 0 : _identityInfo$info3$r.Raw;
106
- const twitter = (_identityInfo$info4 = identityInfo.info) === null || _identityInfo$info4 === void 0 ? void 0 : (_identityInfo$info4$t = _identityInfo$info4.twitter) === null || _identityInfo$info4$t === void 0 ? void 0 : _identityInfo$info4$t.Raw;
107
- const isReasonable = identityInfo.judgements.length > 0;
108
- if (displayName) {
109
- identity = (0, _util.isHex)(displayName) ? (0, _util.hexToString)(displayName) : displayName;
110
- } else {
111
- identity = twitter || web || riot;
112
- }
113
- return [compactResult(identity), isReasonable];
114
- }
115
- }
116
- return [undefined, false];
117
- }
118
63
  function getInflationParams(networkKey) {
119
64
  return _constants._KNOWN_CHAIN_INFLATION_PARAMS[networkKey] || _constants._SUBSTRATE_DEFAULT_INFLATION_PARAMS;
120
65
  }
@@ -138,7 +83,7 @@ function calculateInflation(totalEraStake, totalIssuance, numAuctions, networkKe
138
83
  const idealStake = stakeTarget - Math.min(auctionMax, numAuctions) * auctionAdjust;
139
84
  const idealInterest = maxInflation / idealStake;
140
85
  const stakedFraction = totalEraStake.mul(_util.BN_MILLION).div(totalIssuance).toNumber() / _util.BN_MILLION.toNumber();
141
- if (_constants._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
86
+ if (_constants2._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
142
87
  if (inflationParams.yearlyInflationInTokens) {
143
88
  return 100 * calcInflationUniformEraPayout(totalIssuance, inflationParams.yearlyInflationInTokens);
144
89
  } else {
@@ -151,7 +96,7 @@ function calculateInflation(totalEraStake, totalIssuance, numAuctions, networkKe
151
96
  function calculateChainStakedReturn(inflation, totalEraStake, totalIssuance, networkKey) {
152
97
  const stakedFraction = totalEraStake.mul(_util.BN_MILLION).div(totalIssuance).toNumber() / _util.BN_MILLION.toNumber();
153
98
  let stakedReturn = inflation / stakedFraction;
154
- if (_constants._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
99
+ if (_constants2._STAKING_CHAIN_GROUP.aleph.includes(networkKey)) {
155
100
  stakedReturn *= 0.9; // 10% goes to treasury
156
101
  }
157
102
 
@@ -193,11 +138,11 @@ function getParaCurrentInflation(totalStaked, inflationConfig) {
193
138
  }
194
139
  // validations and check conditions
195
140
  function isShowNominationByValidator(chain) {
196
- if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
141
+ if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
197
142
  return 'showByValue';
198
- } else if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
143
+ } else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
199
144
  return 'mixed';
200
- } else if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
145
+ } else if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
201
146
  return 'showByValidator';
202
147
  }
203
148
  return 'showByValue';
@@ -228,6 +173,79 @@ function isUnstakeAll(selectedValidator, nominations, unstakeAmount) {
228
173
  }
229
174
  return isUnstakeAll;
230
175
  }
176
+ let YieldAction;
177
+ exports.YieldAction = YieldAction;
178
+ (function (YieldAction) {
179
+ YieldAction["STAKE"] = "STAKE";
180
+ YieldAction["UNSTAKE"] = "UNSTAKE";
181
+ YieldAction["WITHDRAW"] = "WITHDRAW";
182
+ YieldAction["CLAIM_REWARD"] = "CLAIM_REWARD";
183
+ YieldAction["CANCEL_UNSTAKE"] = "CANCEL_UNSTAKE";
184
+ YieldAction["START_EARNING"] = "EARN";
185
+ YieldAction["WITHDRAW_EARNING"] = "WITHDRAW_EARNING";
186
+ YieldAction["CUSTOM_ACTION"] = "CUSTOM_ACTION";
187
+ })(YieldAction || (exports.YieldAction = YieldAction = {}));
188
+ function getYieldAvailableActionsByType(yieldPoolInfo) {
189
+ if ([_types.YieldPoolType.NATIVE_STAKING, _types.YieldPoolType.NOMINATION_POOL].includes(yieldPoolInfo.type)) {
190
+ if (yieldPoolInfo.type === _types.YieldPoolType.NOMINATION_POOL) {
191
+ return [YieldAction.STAKE, YieldAction.CLAIM_REWARD, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
192
+ }
193
+ const chain = yieldPoolInfo.chain;
194
+ if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
195
+ return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW, YieldAction.CANCEL_UNSTAKE];
196
+ } else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
197
+ return [YieldAction.STAKE, YieldAction.CLAIM_REWARD, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
198
+ } else if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
199
+ return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
200
+ }
201
+ }
202
+ if (yieldPoolInfo.type === _types.YieldPoolType.LENDING) {
203
+ return [YieldAction.START_EARNING, YieldAction.WITHDRAW_EARNING];
204
+ } else if (yieldPoolInfo.type === _types.YieldPoolType.LIQUID_STAKING) {
205
+ return [YieldAction.START_EARNING, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
206
+ }
207
+ return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW, YieldAction.CANCEL_UNSTAKE];
208
+ }
209
+ function getYieldAvailableActionsByPosition(yieldPosition, yieldPoolInfo, unclaimedReward) {
210
+ const result = [];
211
+ if ([_types.YieldPoolType.NATIVE_STAKING, _types.YieldPoolType.NOMINATION_POOL].includes(yieldPoolInfo.type)) {
212
+ result.push(YieldAction.STAKE);
213
+ const bnActiveStake = new _util.BN(yieldPosition.activeStake);
214
+ if (yieldPosition.activeStake && bnActiveStake.gt(_util.BN_ZERO)) {
215
+ result.push(YieldAction.UNSTAKE);
216
+ const isAstarNetwork = _constants2._STAKING_CHAIN_GROUP.astar.includes(yieldPosition.chain);
217
+ const isAmplitudeNetwork = _constants2._STAKING_CHAIN_GROUP.amplitude.includes(yieldPosition.chain);
218
+ const bnUnclaimedReward = new _util.BN(unclaimedReward || '0');
219
+ if ((yieldPosition.type === _types.YieldPoolType.NOMINATION_POOL || isAmplitudeNetwork) && bnUnclaimedReward.gt(_util.BN_ZERO) || isAstarNetwork) {
220
+ result.push(YieldAction.CLAIM_REWARD);
221
+ }
222
+ }
223
+ if (yieldPosition.unstakings.length > 0) {
224
+ result.push(YieldAction.CANCEL_UNSTAKE);
225
+ const hasClaimable = yieldPosition.unstakings.some(unstaking => unstaking.status === _types.UnstakingStatus.CLAIMABLE);
226
+ if (hasClaimable) {
227
+ result.push(YieldAction.WITHDRAW);
228
+ }
229
+ }
230
+ } else if (yieldPoolInfo.type === _types.YieldPoolType.LIQUID_STAKING) {
231
+ result.push(YieldAction.START_EARNING);
232
+ const activeBalance = new _util.BN(yieldPosition.activeStake || '0');
233
+ if (activeBalance.gt(_util.BN_ZERO)) {
234
+ result.push(YieldAction.UNSTAKE);
235
+ }
236
+ const hasWithdrawal = yieldPosition.unstakings.some(unstakingInfo => unstakingInfo.status === _types.UnstakingStatus.CLAIMABLE);
237
+ if (hasWithdrawal) {
238
+ result.push(YieldAction.WITHDRAW);
239
+ }
240
+
241
+ // TODO: check has unstakings to withdraw
242
+ } else {
243
+ result.push(YieldAction.START_EARNING);
244
+ result.push(YieldAction.WITHDRAW_EARNING); // TODO
245
+ }
246
+
247
+ return result;
248
+ }
231
249
  let StakingAction;
232
250
  exports.StakingAction = StakingAction;
233
251
  (function (StakingAction) {
@@ -241,11 +259,11 @@ function getStakingAvailableActionsByChain(chain, type) {
241
259
  if (type === _KoniTypes.StakingType.POOLED) {
242
260
  return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CLAIM_REWARD];
243
261
  }
244
- if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
262
+ if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
245
263
  return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CANCEL_UNSTAKE];
246
- } else if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
264
+ } else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
247
265
  return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CLAIM_REWARD];
248
- } else if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
266
+ } else if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
249
267
  return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW];
250
268
  }
251
269
  return [StakingAction.STAKE, StakingAction.UNSTAKE, StakingAction.WITHDRAW, StakingAction.CANCEL_UNSTAKE];
@@ -255,8 +273,8 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
255
273
  const bnActiveStake = new _util.BN(nominatorMetadata.activeStake);
256
274
  if (nominatorMetadata.activeStake && bnActiveStake.gt(_util.BN_ZERO)) {
257
275
  result.push(StakingAction.UNSTAKE);
258
- const isAstarNetwork = _constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain);
259
- const isAmplitudeNetwork = _constants._STAKING_CHAIN_GROUP.amplitude.includes(nominatorMetadata.chain);
276
+ const isAstarNetwork = _constants2._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain);
277
+ const isAmplitudeNetwork = _constants2._STAKING_CHAIN_GROUP.amplitude.includes(nominatorMetadata.chain);
260
278
  const bnUnclaimedReward = new _util.BN(unclaimedReward || '0');
261
279
  if ((nominatorMetadata.type === _KoniTypes.StakingType.POOLED || isAmplitudeNetwork) && bnUnclaimedReward.gt(_util.BN_ZERO) || isAstarNetwork) {
262
280
  result.push(StakingAction.CLAIM_REWARD);
@@ -264,7 +282,7 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
264
282
  }
265
283
  if (nominatorMetadata.unstakings.length > 0) {
266
284
  result.push(StakingAction.CANCEL_UNSTAKE);
267
- const hasClaimable = nominatorMetadata.unstakings.some(unstaking => unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE);
285
+ const hasClaimable = nominatorMetadata.unstakings.some(unstaking => unstaking.status === _types.UnstakingStatus.CLAIMABLE);
268
286
  if (hasClaimable) {
269
287
  result.push(StakingAction.WITHDRAW);
270
288
  }
@@ -272,14 +290,14 @@ function getStakingAvailableActionsByNominator(nominatorMetadata, unclaimedRewar
272
290
  return result;
273
291
  }
274
292
  function isActionFromValidator(stakingType, chain) {
275
- if (stakingType === _KoniTypes.StakingType.POOLED) {
293
+ if (stakingType === _KoniTypes.StakingType.POOLED || stakingType === _KoniTypes.StakingType.LIQUID_STAKING) {
276
294
  return false;
277
295
  }
278
- if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
296
+ if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
279
297
  return true;
280
- } else if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
298
+ } else if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
281
299
  return true;
282
- } else if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
300
+ } else if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
283
301
  return true;
284
302
  }
285
303
  return false;
@@ -287,40 +305,40 @@ function isActionFromValidator(stakingType, chain) {
287
305
  function getWithdrawalInfo(nominatorMetadata) {
288
306
  const unstakings = nominatorMetadata.unstakings;
289
307
  let result;
290
- if (_constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain)) {
308
+ if (_constants2._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain)) {
291
309
  return (0, _astar.getAstarWithdrawable)(nominatorMetadata);
292
310
  }
293
311
  for (const unstaking of unstakings) {
294
- if (unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE) {
312
+ if (unstaking.status === _types.UnstakingStatus.CLAIMABLE) {
295
313
  result = unstaking; // only get the first withdrawal
296
314
  break;
297
315
  }
298
316
  }
299
317
  return result;
300
318
  }
301
- function getStakingStatusByNominations(bnTotalActiveStake, nominationList) {
302
- let stakingStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
319
+ function getEarningStatusByNominations(bnTotalActiveStake, nominationList) {
320
+ let stakingStatus = _types.EarningStatus.EARNING_REWARD;
303
321
  if (bnTotalActiveStake.isZero()) {
304
- stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
322
+ stakingStatus = _types.EarningStatus.NOT_EARNING;
305
323
  } else {
306
324
  let invalidDelegationCount = 0;
307
325
  for (const nomination of nominationList) {
308
- if (nomination.status === _KoniTypes.StakingStatus.NOT_EARNING) {
326
+ if (nomination.status === _types.EarningStatus.NOT_EARNING) {
309
327
  invalidDelegationCount += 1;
310
328
  }
311
329
  }
312
330
  if (invalidDelegationCount > 0 && invalidDelegationCount < nominationList.length) {
313
- stakingStatus = _KoniTypes.StakingStatus.PARTIALLY_EARNING;
331
+ stakingStatus = _types.EarningStatus.PARTIALLY_EARNING;
314
332
  } else if (invalidDelegationCount === nominationList.length) {
315
- stakingStatus = _KoniTypes.StakingStatus.NOT_EARNING;
333
+ stakingStatus = _types.EarningStatus.NOT_EARNING;
316
334
  }
317
335
  }
318
336
  return stakingStatus;
319
337
  }
320
338
  function getValidatorLabel(chain) {
321
- if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
339
+ if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
322
340
  return 'dApp';
323
- } else if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
341
+ } else if (_constants2._STAKING_CHAIN_GROUP.relay.includes(chain)) {
324
342
  return 'Validator';
325
343
  }
326
344
  return 'Collator';
@@ -11,6 +11,7 @@ var _relayChain = require("@subwallet/extension-base/koni/api/staking/relayChain
11
11
  var _subsquidStaking = require("@subwallet/extension-base/koni/api/staking/subsquidStaking");
12
12
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
13
13
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
14
+ var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
14
15
  var _utils2 = require("@subwallet/extension-base/utils");
15
16
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
16
17
  // SPDX-License-Identifier: Apache-2.0
@@ -37,20 +38,20 @@ function stakingOnChainApi(addresses, substrateApiMap, chainInfoMap, stakingCall
37
38
  } = _ref2;
38
39
  const parentApi = await apiPromise.isReady;
39
40
  const useAddresses = (0, _utils._isChainEvmCompatible)(chainInfoMap[chain]) ? evmAddresses : substrateAddresses;
40
- if (_constants._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
41
+ if (_constants2._STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
41
42
  const unsub = await (0, _paraChain.getAmplitudeStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
42
43
  unsubList.push(unsub);
43
- } else if (_constants._STAKING_CHAIN_GROUP.astar.includes(chain)) {
44
+ } else if (_constants2._STAKING_CHAIN_GROUP.astar.includes(chain)) {
44
45
  const unsub = await (0, _paraChain.getAstarStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
45
46
  unsubList.push(unsub);
46
- } else if (_constants._STAKING_CHAIN_GROUP.para.includes(chain)) {
47
+ } else if (_constants2._STAKING_CHAIN_GROUP.para.includes(chain)) {
47
48
  const unsub = await (0, _paraChain.getParaStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
48
49
  unsubList.push(unsub);
49
- } else if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
50
+ } else if (_constants2._STAKING_CHAIN_GROUP.relay.includes(chain)) {
50
51
  const unsub = await (0, _relayChain.getRelayStakingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
51
52
  unsubList.push(unsub);
52
53
  }
53
- if (_constants._STAKING_CHAIN_GROUP.nominationPool.includes(chain)) {
54
+ if (_constants2._STAKING_CHAIN_GROUP.nominationPool.includes(chain)) {
54
55
  const unsub = await (0, _relayChain.getRelayPoolingOnChain)(parentApi, useAddresses, chainInfoMap, chain, stakingCallback, nominatorStateCallback);
55
56
  unsubList.push(unsub);
56
57
  }