@subwallet/extension-base 1.1.33-beta.0 → 1.1.34-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/background/KoniTypes.d.ts +69 -111
  2. package/background/KoniTypes.js +13 -19
  3. package/background/errors/TransactionError.js +0 -9
  4. package/cjs/background/KoniTypes.js +16 -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 +16 -19
  11. package/cjs/koni/api/staking/bonding/astar.js +10 -11
  12. package/cjs/koni/api/staking/bonding/index.js +1 -4
  13. package/cjs/koni/api/staking/bonding/paraChain.js +23 -25
  14. package/cjs/koni/api/staking/bonding/relayChain.js +45 -48
  15. package/cjs/koni/api/staking/bonding/utils.js +86 -104
  16. package/cjs/koni/api/staking/index.js +5 -6
  17. package/cjs/koni/api/staking/paraChain.js +17 -10
  18. package/cjs/koni/api/staking/relayChain.js +2 -3
  19. package/cjs/koni/background/cron.js +21 -3
  20. package/cjs/koni/background/handlers/Extension.js +69 -368
  21. package/cjs/koni/background/handlers/State.js +12 -18
  22. package/cjs/koni/background/handlers/index.js +2 -4
  23. package/cjs/koni/background/subscription.js +104 -7
  24. package/cjs/packageInfo.js +1 -1
  25. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +1 -3
  26. package/cjs/services/campaign-service/index.js +6 -9
  27. package/cjs/services/chain-service/constants.js +19 -2
  28. package/cjs/services/chain-service/handler/SubstrateApi.js +10 -5
  29. package/cjs/services/chain-service/index.js +101 -40
  30. package/cjs/services/chain-service/utils.js +69 -7
  31. package/cjs/services/event-service/index.js +0 -5
  32. package/cjs/services/keyring-service/index.js +2 -14
  33. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  34. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  35. package/cjs/services/migration-service/scripts/index.js +1 -6
  36. package/cjs/services/notification-service/NotificationService.js +1 -1
  37. package/cjs/services/storage-service/DatabaseService.js +0 -63
  38. package/cjs/services/storage-service/databases/index.js +0 -4
  39. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  40. package/cjs/services/subscan-service/index.js +0 -16
  41. package/cjs/services/transaction-service/event-parser/index.js +0 -58
  42. package/cjs/services/transaction-service/helpers/index.js +1 -3
  43. package/cjs/services/transaction-service/index.js +75 -249
  44. package/cjs/services/transaction-service/utils.js +0 -1
  45. package/cjs/types/index.js +0 -44
  46. package/cjs/utils/fetchStaticData.js +1 -2
  47. package/cjs/utils/index.js +1 -89
  48. package/cjs/utils/number.js +2 -6
  49. package/constants/index.d.ts +1 -6
  50. package/constants/index.js +1 -6
  51. package/koni/api/nft/config.js +23 -33
  52. package/koni/api/nft/index.js +1 -15
  53. package/koni/api/nft/nft.js +23 -2
  54. package/koni/api/staking/bonding/amplitude.js +10 -13
  55. package/koni/api/staking/bonding/astar.js +8 -9
  56. package/koni/api/staking/bonding/index.d.ts +1 -1
  57. package/koni/api/staking/bonding/index.js +1 -5
  58. package/koni/api/staking/bonding/paraChain.js +10 -12
  59. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  60. package/koni/api/staking/bonding/relayChain.js +30 -33
  61. package/koni/api/staking/bonding/utils.d.ts +38 -15
  62. package/koni/api/staking/bonding/utils.js +69 -85
  63. package/koni/api/staking/index.js +1 -2
  64. package/koni/api/staking/paraChain.js +18 -11
  65. package/koni/api/staking/relayChain.js +3 -4
  66. package/koni/background/cron.d.ts +4 -0
  67. package/koni/background/cron.js +22 -4
  68. package/koni/background/handlers/Extension.d.ts +1 -17
  69. package/koni/background/handlers/Extension.js +30 -327
  70. package/koni/background/handlers/State.d.ts +1 -6
  71. package/koni/background/handlers/State.js +12 -17
  72. package/koni/background/handlers/index.js +2 -4
  73. package/koni/background/subscription.d.ts +6 -1
  74. package/koni/background/subscription.js +104 -8
  75. package/package.json +7 -320
  76. package/packageInfo.js +1 -1
  77. package/services/balance-service/helpers/subscribe/substrate/index.js +2 -4
  78. package/services/campaign-service/index.js +6 -9
  79. package/services/chain-service/constants.d.ts +13 -0
  80. package/services/chain-service/constants.js +15 -0
  81. package/services/chain-service/handler/SubstrateApi.js +10 -5
  82. package/services/chain-service/index.d.ts +9 -1
  83. package/services/chain-service/index.js +97 -37
  84. package/services/chain-service/utils.d.ts +10 -2
  85. package/services/chain-service/utils.js +67 -6
  86. package/services/event-service/index.d.ts +0 -2
  87. package/services/event-service/index.js +0 -5
  88. package/services/event-service/types.d.ts +0 -9
  89. package/services/keyring-service/index.d.ts +1 -2
  90. package/services/keyring-service/index.js +2 -14
  91. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  92. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  93. package/services/migration-service/scripts/index.js +1 -6
  94. package/services/notification-service/NotificationService.js +1 -1
  95. package/services/storage-service/DatabaseService.d.ts +1 -22
  96. package/services/storage-service/DatabaseService.js +0 -63
  97. package/services/storage-service/databases/index.d.ts +1 -3
  98. package/services/storage-service/databases/index.js +0 -4
  99. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  100. package/services/subscan-service/index.d.ts +2 -3
  101. package/services/subscan-service/index.js +0 -15
  102. package/services/subscan-service/types.d.ts +0 -20
  103. package/services/transaction-service/event-parser/index.d.ts +1 -3
  104. package/services/transaction-service/event-parser/index.js +1 -57
  105. package/services/transaction-service/helpers/index.js +1 -3
  106. package/services/transaction-service/index.d.ts +13 -6
  107. package/services/transaction-service/index.js +73 -247
  108. package/services/transaction-service/types.d.ts +0 -2
  109. package/services/transaction-service/utils.js +0 -1
  110. package/types/index.d.ts +0 -5
  111. package/types/index.js +1 -5
  112. package/utils/fetchStaticData.js +1 -2
  113. package/utils/index.d.ts +0 -5
  114. package/utils/index.js +0 -52
  115. package/utils/number.d.ts +1 -2
  116. package/utils/number.js +1 -2
  117. package/cjs/koni/api/dotsama/balance.js +0 -464
  118. package/cjs/koni/api/nft/ordinal_nft/constants.js +0 -21
  119. package/cjs/koni/api/nft/ordinal_nft/index.js +0 -121
  120. package/cjs/koni/api/nft/ordinal_nft/utils.js +0 -41
  121. package/cjs/koni/api/yield/helper/utils.js +0 -46
  122. package/cjs/services/earning-service/constants/chains.js +0 -30
  123. package/cjs/services/earning-service/constants/index.js +0 -27
  124. package/cjs/services/earning-service/constants/step.js +0 -18
  125. package/cjs/services/earning-service/handlers/base.js +0 -262
  126. package/cjs/services/earning-service/handlers/index.js +0 -60
  127. package/cjs/services/earning-service/handlers/lending/base.js +0 -81
  128. package/cjs/services/earning-service/handlers/lending/index.js +0 -13
  129. package/cjs/services/earning-service/handlers/lending/interlay.js +0 -192
  130. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -240
  131. package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -97
  132. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -298
  133. package/cjs/services/earning-service/handlers/liquid-staking/index.js +0 -34
  134. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -227
  135. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -404
  136. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +0 -434
  137. package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -466
  138. package/cjs/services/earning-service/handlers/native-staking/base-para.js +0 -146
  139. package/cjs/services/earning-service/handlers/native-staking/base.js +0 -161
  140. package/cjs/services/earning-service/handlers/native-staking/index.js +0 -34
  141. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -390
  142. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +0 -567
  143. package/cjs/services/earning-service/handlers/nomination-pool/index.js +0 -566
  144. package/cjs/services/earning-service/handlers/special.js +0 -493
  145. package/cjs/services/earning-service/service.js +0 -740
  146. package/cjs/services/earning-service/utils/index.js +0 -128
  147. package/cjs/services/migration-service/scripts/DeleteEarningData.js +0 -21
  148. package/cjs/services/migration-service/scripts/EnableEarningChains.js +0 -21
  149. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
  150. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
  151. package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
  152. package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -21
  153. package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -21
  154. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -149
  155. package/cjs/services/mint-campaign-service/campaigns/index.js +0 -13
  156. package/cjs/services/mint-campaign-service/constants.js +0 -11
  157. package/cjs/services/mint-campaign-service/index.js +0 -18
  158. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +0 -36
  159. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +0 -71
  160. package/cjs/services/storage-service/index.js +0 -241
  161. package/cjs/types/campaigns/index.js +0 -16
  162. package/cjs/types/campaigns/unlock-dot.js +0 -1
  163. package/cjs/types/ordinal.js +0 -1
  164. package/cjs/types/transaction.js +0 -1
  165. package/cjs/types/yield/actions/index.js +0 -27
  166. package/cjs/types/yield/actions/join/index.js +0 -38
  167. package/cjs/types/yield/actions/join/step.js +0 -47
  168. package/cjs/types/yield/actions/join/submit.js +0 -1
  169. package/cjs/types/yield/actions/join/validate.js +0 -16
  170. package/cjs/types/yield/actions/others.js +0 -1
  171. package/cjs/types/yield/index.js +0 -27
  172. package/cjs/types/yield/info/account/index.js +0 -49
  173. package/cjs/types/yield/info/account/info.js +0 -1
  174. package/cjs/types/yield/info/account/reward.js +0 -1
  175. package/cjs/types/yield/info/account/target.js +0 -32
  176. package/cjs/types/yield/info/account/unstake.js +0 -27
  177. package/cjs/types/yield/info/base.js +0 -41
  178. package/cjs/types/yield/info/chain/index.js +0 -27
  179. package/cjs/types/yield/info/chain/info.js +0 -1
  180. package/cjs/types/yield/info/chain/target.js +0 -1
  181. package/cjs/types/yield/info/index.js +0 -49
  182. package/cjs/types/yield/info/pallet.js +0 -15
  183. package/cjs/types.js +0 -1
  184. package/cjs/utils/address.js +0 -34
  185. package/cjs/utils/keyring.js +0 -57
  186. package/cjs/utils/object.js +0 -12
  187. package/koni/api/nft/ordinal_nft/constants.d.ts +0 -9
  188. package/koni/api/nft/ordinal_nft/constants.js +0 -12
  189. package/koni/api/nft/ordinal_nft/index.d.ts +0 -8
  190. package/koni/api/nft/ordinal_nft/index.js +0 -114
  191. package/koni/api/nft/ordinal_nft/utils.d.ts +0 -2
  192. package/koni/api/nft/ordinal_nft/utils.js +0 -33
  193. package/koni/api/yield/helper/utils.d.ts +0 -10
  194. package/koni/api/yield/helper/utils.js +0 -32
  195. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +0 -1235
  196. package/services/earning-service/constants/abis/st_liquid_token_abi.json +0 -1355
  197. package/services/earning-service/constants/chains.d.ts +0 -15
  198. package/services/earning-service/constants/chains.js +0 -22
  199. package/services/earning-service/constants/index.d.ts +0 -2
  200. package/services/earning-service/constants/index.js +0 -5
  201. package/services/earning-service/constants/step.d.ts +0 -3
  202. package/services/earning-service/constants/step.js +0 -10
  203. package/services/earning-service/handlers/base.d.ts +0 -113
  204. package/services/earning-service/handlers/base.js +0 -256
  205. package/services/earning-service/handlers/index.d.ts +0 -5
  206. package/services/earning-service/handlers/index.js +0 -8
  207. package/services/earning-service/handlers/lending/base.d.ts +0 -8
  208. package/services/earning-service/handlers/lending/base.js +0 -73
  209. package/services/earning-service/handlers/lending/index.d.ts +0 -1
  210. package/services/earning-service/handlers/lending/index.js +0 -4
  211. package/services/earning-service/handlers/lending/interlay.d.ts +0 -24
  212. package/services/earning-service/handlers/lending/interlay.js +0 -184
  213. package/services/earning-service/handlers/liquid-staking/acala.d.ts +0 -27
  214. package/services/earning-service/handlers/liquid-staking/acala.js +0 -232
  215. package/services/earning-service/handlers/liquid-staking/base.d.ts +0 -11
  216. package/services/earning-service/handlers/liquid-staking/base.js +0 -89
  217. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +0 -46
  218. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -287
  219. package/services/earning-service/handlers/liquid-staking/index.d.ts +0 -4
  220. package/services/earning-service/handlers/liquid-staking/index.js +0 -7
  221. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +0 -26
  222. package/services/earning-service/handlers/liquid-staking/parallel.js +0 -219
  223. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +0 -34
  224. package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -394
  225. package/services/earning-service/handlers/native-staking/amplitude.d.ts +0 -22
  226. package/services/earning-service/handlers/native-staking/amplitude.js +0 -425
  227. package/services/earning-service/handlers/native-staking/astar.d.ts +0 -19
  228. package/services/earning-service/handlers/native-staking/astar.js +0 -456
  229. package/services/earning-service/handlers/native-staking/base-para.d.ts +0 -11
  230. package/services/earning-service/handlers/native-staking/base-para.js +0 -138
  231. package/services/earning-service/handlers/native-staking/base.d.ts +0 -21
  232. package/services/earning-service/handlers/native-staking/base.js +0 -152
  233. package/services/earning-service/handlers/native-staking/index.d.ts +0 -4
  234. package/services/earning-service/handlers/native-staking/index.js +0 -7
  235. package/services/earning-service/handlers/native-staking/para-chain.d.ts +0 -15
  236. package/services/earning-service/handlers/native-staking/para-chain.js +0 -382
  237. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +0 -21
  238. package/services/earning-service/handlers/native-staking/relay-chain.js +0 -558
  239. package/services/earning-service/handlers/nomination-pool/index.d.ts +0 -36
  240. package/services/earning-service/handlers/nomination-pool/index.js +0 -556
  241. package/services/earning-service/handlers/special.d.ts +0 -64
  242. package/services/earning-service/handlers/special.js +0 -485
  243. package/services/earning-service/service.d.ts +0 -94
  244. package/services/earning-service/service.js +0 -729
  245. package/services/earning-service/utils/index.d.ts +0 -18
  246. package/services/earning-service/utils/index.js +0 -112
  247. package/services/migration-service/scripts/DeleteEarningData.d.ts +0 -4
  248. package/services/migration-service/scripts/DeleteEarningData.js +0 -13
  249. package/services/migration-service/scripts/EnableEarningChains.d.ts +0 -4
  250. package/services/migration-service/scripts/EnableEarningChains.js +0 -13
  251. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +0 -4
  252. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +0 -13
  253. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +0 -4
  254. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +0 -13
  255. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +0 -13
  256. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -139
  257. package/services/mint-campaign-service/campaigns/index.d.ts +0 -1
  258. package/services/mint-campaign-service/campaigns/index.js +0 -4
  259. package/services/mint-campaign-service/constants.d.ts +0 -1
  260. package/services/mint-campaign-service/constants.js +0 -4
  261. package/services/mint-campaign-service/index.d.ts +0 -7
  262. package/services/mint-campaign-service/index.js +0 -11
  263. package/services/storage-service/db-stores/YieldPoolStore.d.ts +0 -10
  264. package/services/storage-service/db-stores/YieldPoolStore.js +0 -28
  265. package/services/storage-service/db-stores/YieldPositionStore.d.ts +0 -11
  266. package/services/storage-service/db-stores/YieldPositionStore.js +0 -63
  267. package/types/campaigns/index.d.ts +0 -1
  268. package/types/campaigns/index.js +0 -4
  269. package/types/campaigns/unlock-dot.d.ts +0 -71
  270. package/types/campaigns/unlock-dot.js +0 -1
  271. package/types/ordinal.d.ts +0 -69
  272. package/types/ordinal.js +0 -1
  273. package/types/transaction.d.ts +0 -3
  274. package/types/transaction.js +0 -1
  275. package/types/yield/actions/index.d.ts +0 -2
  276. package/types/yield/actions/index.js +0 -5
  277. package/types/yield/actions/join/index.d.ts +0 -3
  278. package/types/yield/actions/join/index.js +0 -6
  279. package/types/yield/actions/join/step.d.ts +0 -95
  280. package/types/yield/actions/join/step.js +0 -46
  281. package/types/yield/actions/join/submit.d.ts +0 -58
  282. package/types/yield/actions/join/submit.js +0 -1
  283. package/types/yield/actions/join/validate.d.ts +0 -18
  284. package/types/yield/actions/join/validate.js +0 -10
  285. package/types/yield/actions/others.d.ts +0 -85
  286. package/types/yield/actions/others.js +0 -1
  287. package/types/yield/index.d.ts +0 -2
  288. package/types/yield/index.js +0 -5
  289. package/types/yield/info/account/index.d.ts +0 -4
  290. package/types/yield/info/account/index.js +0 -7
  291. package/types/yield/info/account/info.d.ts +0 -92
  292. package/types/yield/info/account/info.js +0 -1
  293. package/types/yield/info/account/reward.d.ts +0 -47
  294. package/types/yield/info/account/reward.js +0 -1
  295. package/types/yield/info/account/target.d.ts +0 -43
  296. package/types/yield/info/account/target.js +0 -27
  297. package/types/yield/info/account/unstake.d.ts +0 -31
  298. package/types/yield/info/account/unstake.js +0 -22
  299. package/types/yield/info/base.d.ts +0 -45
  300. package/types/yield/info/base.js +0 -36
  301. package/types/yield/info/chain/index.d.ts +0 -2
  302. package/types/yield/info/chain/index.js +0 -5
  303. package/types/yield/info/chain/info.d.ts +0 -252
  304. package/types/yield/info/chain/info.js +0 -1
  305. package/types/yield/info/chain/target.d.ts +0 -37
  306. package/types/yield/info/chain/target.js +0 -1
  307. package/types/yield/info/index.d.ts +0 -4
  308. package/types/yield/info/index.js +0 -7
  309. package/types/yield/info/pallet.d.ts +0 -143
  310. package/types/yield/info/pallet.js +0 -9
  311. package/utils/object.d.ts +0 -1
  312. package/utils/object.js +0 -6
@@ -1,298 +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 _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
- var _constants = require("@subwallet/extension-base/services/chain-service/constants");
10
- var _utils = require("@subwallet/extension-base/services/chain-service/utils");
11
- var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
12
- var _types = require("@subwallet/extension-base/types");
13
- var _utils2 = require("@subwallet/extension-base/utils");
14
- var _bignumber = _interopRequireDefault(require("bignumber.js"));
15
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
16
- var _util = require("@polkadot/util");
17
- var _base = _interopRequireDefault(require("./base"));
18
- // Copyright 2019-2022 @subwallet/extension-base
19
- // SPDX-License-Identifier: Apache-2.0
20
-
21
- const STATS_URL = 'https://api.bifrost.app/api/site';
22
- const BIFROST_GRAPHQL_ENDPOINT = 'https://bifrost-subsql.liebi.com/v1/graphql';
23
- const BIFROST_EXCHANGE_RATE_REQUEST = 'query MyQuery{slp_polkadot_ratio(limit:1 where:{key:{_eq:"0"}} order_by:{timestamp:desc_nulls_first}){ratio key timestamp total_issuance token_pool}}';
24
- class BifrostLiquidStakingPoolHandler extends _base.default {
25
- altInputAsset = 'polkadot-NATIVE-DOT';
26
- derivativeAssets = ['bifrost_dot-LOCAL-vDOT'];
27
- inputAsset = 'bifrost_dot-LOCAL-DOT';
28
- rewardAssets = ['bifrost_dot-LOCAL-DOT'];
29
- feeAssets = ['bifrost_dot-NATIVE-BNC', 'bifrost_dot-LOCAL-DOT'];
30
- minAmountPercent = 0.99;
31
- availableMethod = {
32
- join: true,
33
- defaultUnstake: true,
34
- fastUnstake: true,
35
- cancelUnstake: false,
36
- withdraw: false,
37
- claimReward: false
38
- };
39
- rateDecimals = 0;
40
- constructor(state, chain) {
41
- super(state, chain);
42
- const chainInfo = this.chainInfo;
43
- this.slug = `DOT___liquid_staking___${chain}`;
44
- this.name = `${chainInfo.name} Liquid Staking`;
45
- this.shortName = chainInfo.name.replaceAll(' Relay Chain', '');
46
- }
47
- getDescription() {
48
- return 'Stake DOT to earn yield on vDOT';
49
- }
50
-
51
- /* Subscribe pool info */
52
-
53
- async getPoolStat() {
54
- const substrateApi = await this.substrateApi.isReady;
55
- const stakingMetaPromise = new Promise(function (resolve) {
56
- (0, _crossFetch.default)(STATS_URL, {
57
- method: 'GET'
58
- }).then(res => {
59
- resolve(res.json());
60
- }).catch(console.error);
61
- });
62
- const exchangeRatePromise = new Promise(function (resolve) {
63
- (0, _crossFetch.default)(BIFROST_GRAPHQL_ENDPOINT, {
64
- method: 'POST',
65
- headers: {
66
- 'Content-Type': 'application/json'
67
- },
68
- body: JSON.stringify({
69
- query: BIFROST_EXCHANGE_RATE_REQUEST
70
- })
71
- }).then(resp => {
72
- resolve(resp.json());
73
- }).catch(console.error);
74
- });
75
- const derivativeTokenInfo = this.state.getAssetBySlug(this.derivativeAssets[0]);
76
- const inputTokenInfo = this.state.getAssetBySlug(this.inputAsset);
77
- const [_stakingMeta, _exchangeRate, _minimumRedeem, _minimumMint] = await Promise.all([stakingMetaPromise, exchangeRatePromise, substrateApi.api.query.vtokenMinting.minimumRedeem((0, _utils._getTokenOnChainInfo)(derivativeTokenInfo)), substrateApi.api.query.vtokenMinting.minimumMint((0, _utils._getTokenOnChainInfo)(inputTokenInfo))]);
78
- const minimumRedeem = _minimumRedeem.toString();
79
- const minimumMint = _minimumMint.toString();
80
- const stakingMeta = _stakingMeta;
81
- const exchangeRate = _exchangeRate;
82
- const vDOTStats = stakingMeta.vDOT;
83
- const assetInfo = this.state.getAssetBySlug(this.inputAsset);
84
- const assetDecimals = 10 ** (0, _utils._getAssetDecimals)(assetInfo);
85
- const rate = parseFloat(exchangeRate.data.slp_polkadot_ratio[0].ratio);
86
- this.updateExchangeRate(rate);
87
- return {
88
- ...this.baseInfo,
89
- type: this.type,
90
- metadata: {
91
- ...this.metadataInfo,
92
- description: this.getDescription()
93
- },
94
- statistic: {
95
- assetEarning: [{
96
- slug: this.rewardAssets[0],
97
- apy: parseFloat(vDOTStats.apyBase),
98
- exchangeRate: rate
99
- }],
100
- unstakingPeriod: 24 * 28,
101
- maxCandidatePerFarmer: 1,
102
- maxWithdrawalRequestPerFarmer: 1,
103
- earningThreshold: {
104
- join: minimumMint,
105
- defaultUnstake: minimumRedeem,
106
- fastUnstake: '0'
107
- },
108
- totalApy: parseFloat(vDOTStats.apyBase),
109
- tvl: (vDOTStats.tvm * assetDecimals).toString()
110
- }
111
- };
112
- }
113
-
114
- /* Subscribe pool info */
115
-
116
- /* Subscribe pool position */
117
-
118
- async subscribePoolPosition(useAddresses, resultCallback) {
119
- let cancel = false;
120
- const substrateApi = this.substrateApi;
121
- await substrateApi.isReady;
122
-
123
- // @ts-ignore
124
- const derivativeTokenSlug = this.derivativeAssets[0];
125
- const derivativeTokenInfo = this.state.getAssetBySlug(derivativeTokenSlug);
126
- const inputTokenSlug = this.inputAsset;
127
- const inputTokenInfo = this.state.getAssetBySlug(inputTokenSlug);
128
- const unsub = await substrateApi.api.query.tokens.accounts.multi(useAddresses.map(address => [address, (0, _utils._getTokenOnChainInfo)(derivativeTokenInfo)]), async _balance => {
129
- if (cancel) {
130
- unsub();
131
- return;
132
- }
133
- const balances = _balance;
134
- const [_unlockLedgerList, _currentRelayEra, rate] = await Promise.all([substrateApi.api.query.vtokenMinting.userUnlockLedger.multi(useAddresses.map(address => [address, (0, _utils._getTokenOnChainInfo)(inputTokenInfo)])), substrateApi.api.query.vtokenMinting.ongoingTimeUnit((0, _utils._getTokenOnChainInfo)(inputTokenInfo)), this.getExchangeRate()]);
135
- const exchangeRate = new _bignumber.default(rate);
136
- const currentRelayEraObj = _currentRelayEra.toPrimitive();
137
- const currentRelayEra = currentRelayEraObj.Era;
138
- const unlockLedgerList = [];
139
- const activeBalanceMap = {};
140
- for (let i = 0; i < balances.length; i++) {
141
- const balanceItem = balances[i];
142
- const address = useAddresses[i];
143
- const formattedAddress = (0, _utils2.reformatAddress)(address);
144
- activeBalanceMap[formattedAddress] = balanceItem.free || _util.BN_ZERO;
145
- const _unlockLedger = _unlockLedgerList[i];
146
- const unlockLedger = _unlockLedger.toPrimitive();
147
- if (unlockLedger) {
148
- // @ts-ignore
149
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
150
- const unstakingLedgerIds = unlockLedger[1];
151
- unstakingLedgerIds.forEach(ledgerId => {
152
- unlockLedgerList.push({
153
- address: formattedAddress,
154
- ledgerId
155
- });
156
- });
157
- }
158
-
159
- // const bnTotalBalance = bnActiveBalance.add(bnUnstakingBalance);
160
- }
161
-
162
- const unlockingMap = {};
163
-
164
- // TODO: review unstaking info vtokenMinting.userUnlockLedger
165
- const _unlockInfoList = await substrateApi.api.query.vtokenMinting.tokenUnlockLedger.multi(unlockLedgerList.map(_ref => {
166
- let {
167
- ledgerId
168
- } = _ref;
169
- return [(0, _utils._getTokenOnChainInfo)(inputTokenInfo), ledgerId];
170
- }));
171
- for (let i = 0; i < _unlockInfoList.length; i++) {
172
- const unlockInfo = _unlockInfoList[i].toPrimitive();
173
- const owner = (0, _utils2.reformatAddress)(unlockInfo[0]);
174
- const amount = unlockInfo[1].toString();
175
- // @ts-ignore
176
- const withdrawalEra = unlockInfo[2].era;
177
- if (owner in unlockingMap) {
178
- unlockingMap[owner].push({
179
- balance: amount,
180
- era: withdrawalEra
181
- });
182
- } else {
183
- unlockingMap[owner] = [{
184
- balance: amount,
185
- era: withdrawalEra
186
- }];
187
- }
188
- }
189
- const unstakingList = [];
190
- useAddresses.forEach(address => {
191
- const formattedAddress = (0, _utils2.reformatAddress)(address);
192
- const bnActiveBalance = activeBalanceMap[formattedAddress];
193
- const unlockings = unlockingMap[formattedAddress];
194
- let unlockBalance = _util.BN_ZERO;
195
- if (unlockings) {
196
- unlockings.forEach(unlocking => {
197
- const isClaimable = unlocking.era - currentRelayEra < 0;
198
- const remainingEra = unlocking.era - currentRelayEra;
199
- const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[this.chain];
200
- unlockBalance = unlockBalance.add(new _util.BN(unlocking.balance));
201
- unstakingList.push({
202
- chain: this.chain,
203
- status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
204
- claimable: unlocking.balance,
205
- waitingTime: waitingTime
206
- });
207
- });
208
- }
209
- const activeToTotalBalance = exchangeRate.multipliedBy(bnActiveBalance.toString());
210
- const totalBalance = activeToTotalBalance.plus(unlockBalance.toString());
211
- const result = {
212
- ...this.baseInfo,
213
- type: this.type,
214
- address,
215
- balanceToken: this.inputAsset,
216
- derivativeToken: derivativeTokenSlug,
217
- totalStake: totalBalance.toString(),
218
- activeStake: bnActiveBalance.toString(),
219
- unstakeBalance: unlockBalance.toString(),
220
- status: bnActiveBalance.gt(_util.BN_ZERO) ? _types.EarningStatus.EARNING_REWARD : _types.EarningStatus.NOT_EARNING,
221
- isBondedBefore: totalBalance.gt(_util.BN_ZERO.toString()),
222
- nominations: [],
223
- unstakings: unstakingList
224
- };
225
- resultCallback(result);
226
- });
227
- });
228
- return () => {
229
- cancel = true;
230
- unsub();
231
- };
232
- }
233
-
234
- /* Subscribe pool position */
235
-
236
- /* Join pool action */
237
-
238
- get submitJoinStepInfo() {
239
- return {
240
- name: 'Mint vDOT',
241
- type: _types.YieldStepType.MINT_VDOT
242
- };
243
- }
244
- async getSubmitStepFee(params) {
245
- const poolOriginSubstrateApi = await this.substrateApi.isReady;
246
- const inputTokenSlug = this.inputAsset;
247
- const inputTokenInfo = this.state.getAssetBySlug(inputTokenSlug);
248
- const defaultFeeTokenSlug = this.feeAssets[0];
249
- if (new _util.BN(params.amount).gt(_util.BN_ZERO)) {
250
- const _mintFeeInfo = await poolOriginSubstrateApi.api.tx.vtokenMinting.mint((0, _utils._getTokenOnChainInfo)(inputTokenInfo), params.amount, undefined, undefined).paymentInfo(_constants2.fakeAddress);
251
- const mintFeeInfo = _mintFeeInfo.toPrimitive();
252
- return {
253
- amount: mintFeeInfo.partialFee.toString(),
254
- slug: defaultFeeTokenSlug
255
- };
256
- } else {
257
- return {
258
- amount: '0',
259
- slug: defaultFeeTokenSlug
260
- };
261
- }
262
- }
263
- async handleSubmitStep(data, path) {
264
- const substrateApi = await this.substrateApi.isReady;
265
- const inputTokenSlug = this.inputAsset;
266
- const inputTokenInfo = this.state.getAssetBySlug(inputTokenSlug);
267
- const extrinsic = substrateApi.api.tx.vtokenMinting.mint((0, _utils._getTokenOnChainInfo)(inputTokenInfo), data.amount, undefined, undefined);
268
- return {
269
- txChain: this.chain,
270
- extrinsicType: _KoniTypes.ExtrinsicType.MINT_VDOT,
271
- extrinsic,
272
- txData: data,
273
- transferNativeAmount: '0',
274
- chainType: _KoniTypes.ChainType.SUBSTRATE
275
- };
276
- }
277
-
278
- /* Join pool action */
279
-
280
- /* Leave pool action */
281
-
282
- async handleYieldRedeem(amount, address, selectedTarget) {
283
- const substrateApi = await this.substrateApi.isReady;
284
- const weightedMinAmount = await this.createParamToRedeem(amount, address);
285
- const extrinsic = substrateApi.api.tx.stablePool.swap(0, 1, 0, amount, weightedMinAmount);
286
- return [_KoniTypes.ExtrinsicType.REDEEM_VDOT, extrinsic];
287
- }
288
- async handleYieldUnstake(amount, address, selectedTarget) {
289
- const chainApi = await this.substrateApi.isReady;
290
- const derivativeTokenSlug = this.derivativeAssets[0];
291
- const derivativeTokenInfo = this.state.getAssetBySlug(derivativeTokenSlug);
292
- const extrinsic = chainApi.api.tx.vtokenMinting.redeem((0, _utils._getTokenOnChainInfo)(derivativeTokenInfo), amount);
293
- return [_KoniTypes.ExtrinsicType.UNSTAKE_VDOT, extrinsic];
294
- }
295
-
296
- /* Leave pool action */
297
- }
298
- exports.default = BifrostLiquidStakingPoolHandler;
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "AcalaLiquidStakingPoolHandler", {
8
- enumerable: true,
9
- get: function () {
10
- return _acala.default;
11
- }
12
- });
13
- Object.defineProperty(exports, "BifrostLiquidStakingPoolHandler", {
14
- enumerable: true,
15
- get: function () {
16
- return _bifrost.default;
17
- }
18
- });
19
- Object.defineProperty(exports, "ParallelLiquidStakingPoolHandler", {
20
- enumerable: true,
21
- get: function () {
22
- return _parallel.default;
23
- }
24
- });
25
- Object.defineProperty(exports, "StellaSwapLiquidStakingPoolHandler", {
26
- enumerable: true,
27
- get: function () {
28
- return _stellaSwap.default;
29
- }
30
- });
31
- var _acala = _interopRequireDefault(require("./acala"));
32
- var _bifrost = _interopRequireDefault(require("./bifrost"));
33
- var _parallel = _interopRequireDefault(require("./parallel"));
34
- var _stellaSwap = _interopRequireDefault(require("./stella-swap"));
@@ -1,227 +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 _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
- var _constants = require("@subwallet/extension-base/services/chain-service/constants");
10
- var _utils = require("@subwallet/extension-base/services/chain-service/utils");
11
- var _constants2 = require("@subwallet/extension-base/services/earning-service/constants");
12
- var _types = require("@subwallet/extension-base/types");
13
- var _util = require("@polkadot/util");
14
- var _base = _interopRequireDefault(require("./base"));
15
- // Copyright 2019-2022 @subwallet/extension-base
16
- // SPDX-License-Identifier: Apache-2.0
17
-
18
- class ParallelLiquidStakingPoolHandler extends _base.default {
19
- altInputAsset = 'polkadot-NATIVE-DOT';
20
- derivativeAssets = ['parallel-LOCAL-sDOT'];
21
- inputAsset = 'parallel-LOCAL-DOT';
22
- rewardAssets = ['parallel-LOCAL-DOT'];
23
- feeAssets = ['parallel-NATIVE-PARA'];
24
- minAmountPercent = 0.97;
25
- rateDecimals = 18;
26
- availableMethod = {
27
- join: true,
28
- defaultUnstake: true,
29
- fastUnstake: true,
30
- cancelUnstake: false,
31
- withdraw: false,
32
- claimReward: false
33
- };
34
- constructor(state, chain) {
35
- super(state, chain);
36
- const chainInfo = this.chainInfo;
37
- this.slug = `DOT___liquid_staking___${chain}`;
38
- this.name = `${chainInfo.name} Liquid Staking`;
39
- this.shortName = chainInfo.name.replaceAll(' Relay Chain', '');
40
- }
41
- getDescription() {
42
- return 'Stake DOT to earn yield on sDOT';
43
- }
44
-
45
- /* Subscribe pool info */
46
-
47
- async getPoolStat() {
48
- const substrateApi = await this.substrateApi.isReady;
49
- const [_exchangeRate, _currentBlockHeader, _currentTimestamp, _stakingLedgers] = await Promise.all([substrateApi.api.query.liquidStaking.exchangeRate(), substrateApi.api.rpc.chain.getHeader(), substrateApi.api.query.timestamp.now(), substrateApi.api.query.liquidStaking.stakingLedgers.entries()]);
50
- let tvl = _util.BN_ZERO;
51
- for (const _stakingLedger of _stakingLedgers) {
52
- const _ledger = _stakingLedger[1];
53
- const ledger = _ledger.toPrimitive();
54
- tvl = tvl.add(new _util.BN(ledger.total.toString()));
55
- }
56
- const exchangeRate = _exchangeRate.toPrimitive();
57
- const currentBlockHeader = _currentBlockHeader.toPrimitive();
58
- const currentTimestamp = _currentTimestamp.toPrimitive();
59
- const beginBlock = currentBlockHeader.number - 24 * 60 * 60 / 6 * 14;
60
- const _beginBlockHash = await substrateApi.api.rpc.chain.getBlockHash(beginBlock);
61
- const beginBlockHash = _beginBlockHash.toString();
62
- const [_beginTimestamp, _beginExchangeRate] = await Promise.all([substrateApi.api.query.timestamp.now.at(beginBlockHash), substrateApi.api.query.liquidStaking.exchangeRate.at(beginBlockHash)]);
63
- const beginTimestamp = _beginTimestamp.toPrimitive();
64
- const beginExchangeRate = _beginExchangeRate.toPrimitive();
65
- const decimals = 10 ** this.rateDecimals;
66
- const apy = (exchangeRate / beginExchangeRate) ** (365 * 24 * 60 * 60000 / (currentTimestamp - beginTimestamp)) - 1;
67
- const minStake = substrateApi.api.consts.liquidStaking.minStake.toString();
68
- const minUnstake = substrateApi.api.consts.liquidStaking.minUnstake.toString();
69
- this.updateExchangeRate(exchangeRate);
70
- return {
71
- ...this.baseInfo,
72
- type: this.type,
73
- metadata: {
74
- ...this.metadataInfo,
75
- description: this.getDescription()
76
- },
77
- statistic: {
78
- assetEarning: [{
79
- slug: this.rewardAssets[0],
80
- apy: apy * 100,
81
- exchangeRate: exchangeRate / decimals
82
- }],
83
- unstakingPeriod: 24 * 28,
84
- maxCandidatePerFarmer: 1,
85
- maxWithdrawalRequestPerFarmer: 1,
86
- earningThreshold: {
87
- join: minStake,
88
- defaultUnstake: minUnstake,
89
- fastUnstake: '0'
90
- },
91
- totalApy: apy * 100,
92
- tvl: tvl.toString()
93
- }
94
- };
95
- }
96
-
97
- /* Subscribe pool info */
98
-
99
- /* Subscribe pool position */
100
-
101
- async subscribePoolPosition(useAddresses, resultCallback) {
102
- let cancel = false;
103
- const substrateApi = this.substrateApi;
104
- await substrateApi.isReady;
105
- const derivativeTokenSlug = this.derivativeAssets[0];
106
- const derivativeTokenInfo = this.state.getAssetBySlug(derivativeTokenSlug);
107
- const unsub = await substrateApi.api.query.assets.account.multi(useAddresses.map(address => [(0, _utils._getTokenOnChainAssetId)(derivativeTokenInfo), address]), async balances => {
108
- if (cancel) {
109
- unsub();
110
- return;
111
- }
112
- const [unlockingChunks, _currentEra, exchangeRate] = await Promise.all([substrateApi.api.query.liquidStaking.unlockings.multi(useAddresses), substrateApi.api.query.liquidStaking.currentEra(), this.getExchangeRate()]);
113
- const currentEra = _currentEra.toPrimitive();
114
- const decimals = _util.BN_TEN.pow(new _util.BN(this.rateDecimals));
115
- for (let i = 0; i < balances.length; i++) {
116
- const b = balances[i];
117
- const address = useAddresses[i];
118
- // @ts-ignore
119
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-assignment
120
- const bdata = b === null || b === void 0 ? void 0 : b.toHuman();
121
- const chunks = unlockingChunks[i].toPrimitive();
122
-
123
- // @ts-ignore
124
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument
125
- const activeBalance = bdata && bdata.balance ? new _util.BN(String(bdata === null || bdata === void 0 ? void 0 : bdata.balance).replaceAll(',', '') || '0') : _util.BN_ZERO;
126
- let totalBalance = activeBalance.mul(new _util.BN(exchangeRate)).div(decimals);
127
- let unlockingBalance = _util.BN_ZERO;
128
- const unstakings = [];
129
- if (chunks) {
130
- for (const chunk of chunks) {
131
- const amount = new _util.BN(chunk.value);
132
- const isClaimable = chunk.era - currentEra < 0;
133
- const remainingEra = chunk.era - currentEra;
134
- const eraTime = _constants._STAKING_ERA_LENGTH_MAP[this.chain] || _constants._STAKING_ERA_LENGTH_MAP.default;
135
- const waitingTime = remainingEra * eraTime;
136
- totalBalance = totalBalance.add(amount);
137
- unlockingBalance = unlockingBalance.add(amount);
138
- unstakings.push({
139
- chain: this.chain,
140
- status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
141
- claimable: amount.toString(),
142
- waitingTime: waitingTime
143
- });
144
- }
145
- }
146
- const result = {
147
- ...this.baseInfo,
148
- type: this.type,
149
- address,
150
- balanceToken: this.inputAsset,
151
- totalStake: totalBalance.toString(),
152
- activeStake: activeBalance.toString(),
153
- unstakeBalance: unlockingBalance.toString(),
154
- status: activeBalance.gt(_util.BN_ZERO) ? _types.EarningStatus.EARNING_REWARD : _types.EarningStatus.NOT_EARNING,
155
- derivativeToken: derivativeTokenSlug,
156
- isBondedBefore: totalBalance.gt(_util.BN_ZERO),
157
- nominations: [],
158
- unstakings: unstakings
159
- };
160
- resultCallback(result);
161
- }
162
- });
163
- return () => {
164
- cancel = true;
165
- unsub();
166
- };
167
- }
168
-
169
- /* Subscribe pool position */
170
-
171
- /* Join pool action */
172
-
173
- get submitJoinStepInfo() {
174
- return {
175
- name: 'Mint sDOT',
176
- type: _types.YieldStepType.MINT_SDOT
177
- };
178
- }
179
- async getSubmitStepFee(params) {
180
- const poolOriginSubstrateApi = await this.substrateApi.isReady;
181
- const defaultFeeTokenSlug = this.feeAssets[0];
182
- if (new _util.BN(params.amount).gt(_util.BN_ZERO)) {
183
- const _mintFeeInfo = await poolOriginSubstrateApi.api.tx.liquidStaking.stake(params.amount).paymentInfo(_constants2.fakeAddress);
184
- const mintFeeInfo = _mintFeeInfo.toPrimitive();
185
- return {
186
- amount: mintFeeInfo.partialFee.toString(),
187
- slug: defaultFeeTokenSlug
188
- };
189
- } else {
190
- return {
191
- amount: '0',
192
- slug: defaultFeeTokenSlug
193
- };
194
- }
195
- }
196
- async handleSubmitStep(data, path) {
197
- const substrateApi = await this.substrateApi.isReady;
198
- const extrinsic = substrateApi.api.tx.liquidStaking.stake(data.amount);
199
- return {
200
- txChain: this.chain,
201
- extrinsicType: _KoniTypes.ExtrinsicType.MINT_SDOT,
202
- extrinsic,
203
- txData: data,
204
- transferNativeAmount: '0',
205
- chainType: _KoniTypes.ChainType.SUBSTRATE
206
- };
207
- }
208
-
209
- /* Join pool action */
210
-
211
- /* Leave pool action */
212
-
213
- async handleYieldRedeem(amount, address, selectedTarget) {
214
- const substrateApi = await this.substrateApi.isReady;
215
- const weightedMinAmount = await this.createParamToRedeem(amount, address);
216
- const extrinsic = substrateApi.api.tx.ammRoute.swapExactTokensForTokens(['1001', '101'], amount, weightedMinAmount);
217
- return [_KoniTypes.ExtrinsicType.REDEEM_SDOT, extrinsic];
218
- }
219
- async handleYieldUnstake(amount, address, selectedTarget) {
220
- const chainApi = await this.substrateApi.isReady;
221
- const extrinsic = chainApi.api.tx.liquidStaking.unstake(amount, 'RelayChain');
222
- return [_KoniTypes.ExtrinsicType.UNSTAKE_SDOT, extrinsic];
223
- }
224
-
225
- /* Leave pool action */
226
- }
227
- exports.default = ParallelLiquidStakingPoolHandler;