@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
@@ -1,16 +1,10 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { _ChainInfo } from '@subwallet/chain-list/types';
3
- import { NominationInfo, NominatorMetadata, StakingStatus, StakingType, UnstakingInfo } from '@subwallet/extension-base/background/KoniTypes';
3
+ import { NominationInfo, NominatorMetadata, StakingType, UnstakingInfo } from '@subwallet/extension-base/background/KoniTypes';
4
4
  import { _SubstrateInflationParams } from '@subwallet/extension-base/services/chain-service/constants';
5
- import { _SubstrateApi } from '@subwallet/extension-base/services/chain-service/types';
5
+ import { EarningStatus, YieldPoolInfo, YieldPositionInfo } from '@subwallet/extension-base/types';
6
6
  import { ApiPromise } from '@polkadot/api';
7
7
  import { BN } from '@polkadot/util';
8
- export interface PalletNominationPoolsPoolMember {
9
- poolId: number;
10
- points: number;
11
- lasRecordedRewardCounter: number;
12
- unbondingEras: Record<string, number>;
13
- }
14
8
  export interface PalletDappsStakingDappInfo {
15
9
  address: string;
16
10
  name: string;
@@ -71,15 +65,6 @@ export interface PalletParachainStakingDelegator {
71
65
  lessTotal: number;
72
66
  status: number;
73
67
  }
74
- export interface PalletStakingExposureItem {
75
- who: string;
76
- value: number;
77
- }
78
- export interface PalletStakingExposure {
79
- total: number;
80
- own: number;
81
- others: PalletStakingExposureItem[];
82
- }
83
68
  export interface PalletIdentityRegistration {
84
69
  judgements: any[];
85
70
  deposit: number;
@@ -101,32 +86,12 @@ export interface PalletIdentityRegistration {
101
86
  export declare type PalletIdentitySuper = [string, {
102
87
  Raw: string;
103
88
  }];
104
- export interface ValidatorExtraInfo {
105
- commission: string;
106
- blocked: false;
107
- identity?: string;
108
- isVerified: boolean;
109
- }
110
89
  export interface Unlocking {
111
90
  remainingEras: BN;
112
91
  value: BN;
113
92
  }
114
- export interface TernoaStakingRewardsStakingRewardsData {
115
- sessionEraPayout: string;
116
- sessionExtraRewardPayout: string;
117
- }
118
93
  export declare function parsePoolStashAddress(api: ApiPromise, index: number, poolId: number, poolsPalletId: string): string;
119
94
  export declare function transformPoolName(input: string): string;
120
- /**
121
- * @returns
122
- * <p>
123
- * [0] - identity
124
- * </p>
125
- * <p>
126
- * [1] - isReasonable (isVerified)
127
- * </p>
128
- * */
129
- export declare function parseIdentity(substrateApi: _SubstrateApi, address: string, children?: string): Promise<[string | undefined, boolean]>;
130
95
  export declare function getInflationParams(networkKey: string): _SubstrateInflationParams;
131
96
  export declare function calcInflationUniformEraPayout(totalIssuance: BN, yearlyInflationInTokens: number): number;
132
97
  export declare function calcInflationRewardCurve(minInflation: number, stakedFraction: number, idealStake: number, idealInterest: number, falloff: number): number;
@@ -164,6 +129,18 @@ export declare function getBondedValidators(nominations: NominationInfo[]): {
164
129
  bondedValidators: string[];
165
130
  };
166
131
  export declare function isUnstakeAll(selectedValidator: string, nominations: NominationInfo[], unstakeAmount: string): boolean;
132
+ export declare enum YieldAction {
133
+ STAKE = "STAKE",
134
+ UNSTAKE = "UNSTAKE",
135
+ WITHDRAW = "WITHDRAW",
136
+ CLAIM_REWARD = "CLAIM_REWARD",
137
+ CANCEL_UNSTAKE = "CANCEL_UNSTAKE",
138
+ START_EARNING = "EARN",
139
+ WITHDRAW_EARNING = "WITHDRAW_EARNING",
140
+ CUSTOM_ACTION = "CUSTOM_ACTION"
141
+ }
142
+ export declare function getYieldAvailableActionsByType(yieldPoolInfo: YieldPoolInfo): YieldAction[];
143
+ export declare function getYieldAvailableActionsByPosition(yieldPosition: YieldPositionInfo, yieldPoolInfo: YieldPoolInfo, unclaimedReward?: string): YieldAction[];
167
144
  export declare enum StakingAction {
168
145
  STAKE = "STAKE",
169
146
  UNSTAKE = "UNSTAKE",
@@ -175,7 +152,7 @@ export declare function getStakingAvailableActionsByChain(chain: string, type: S
175
152
  export declare function getStakingAvailableActionsByNominator(nominatorMetadata: NominatorMetadata, unclaimedReward?: string): StakingAction[];
176
153
  export declare function isActionFromValidator(stakingType: StakingType, chain: string): boolean;
177
154
  export declare function getWithdrawalInfo(nominatorMetadata: NominatorMetadata): UnstakingInfo | undefined;
178
- export declare function getStakingStatusByNominations(bnTotalActiveStake: BN, nominationList: NominationInfo[]): StakingStatus;
155
+ export declare function getEarningStatusByNominations(bnTotalActiveStake: BN, nominationList: NominationInfo[]): EarningStatus;
179
156
  export declare function getValidatorLabel(chain: string): "dApp" | "Validator" | "Collator";
180
157
  export declare const getMinStakeErrorMessage: (chainInfo: _ChainInfo, bnMinStake: BN) => string;
181
158
  export declare const getMaxValidatorErrorMessage: (chainInfo: _ChainInfo, max: number) => string;
@@ -1,14 +1,16 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { StakingStatus, StakingType, UnstakingStatus } from '@subwallet/extension-base/background/KoniTypes';
4
+ import { StakingType } from '@subwallet/extension-base/background/KoniTypes';
5
5
  import { getAstarWithdrawable } from '@subwallet/extension-base/koni/api/staking/bonding/astar';
6
- import { _KNOWN_CHAIN_INFLATION_PARAMS, _STAKING_CHAIN_GROUP, _SUBSTRATE_DEFAULT_INFLATION_PARAMS } from '@subwallet/extension-base/services/chain-service/constants';
6
+ import { _KNOWN_CHAIN_INFLATION_PARAMS, _SUBSTRATE_DEFAULT_INFLATION_PARAMS } from '@subwallet/extension-base/services/chain-service/constants';
7
7
  import { _getChainNativeTokenBasicInfo } from '@subwallet/extension-base/services/chain-service/utils';
8
- import { detectTranslate, isSameAddress, parseRawNumber, reformatAddress } from '@subwallet/extension-base/utils';
8
+ import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/earning-service/constants';
9
+ import { EarningStatus, UnstakingStatus, YieldPoolType } from '@subwallet/extension-base/types';
10
+ import { detectTranslate, parseRawNumber, reformatAddress } from '@subwallet/extension-base/utils';
9
11
  import { balanceFormatter, formatNumber } from '@subwallet/extension-base/utils/number';
10
12
  import { t } from 'i18next';
11
- import { BN, BN_BILLION, BN_HUNDRED, BN_MILLION, BN_THOUSAND, BN_ZERO, bnToU8a, hexToString, isHex, stringToU8a, u8aConcat } from '@polkadot/util';
13
+ import { BN, BN_BILLION, BN_HUNDRED, BN_MILLION, BN_THOUSAND, BN_ZERO, bnToU8a, stringToU8a, u8aConcat } from '@polkadot/util';
12
14
  export let PalletParachainStakingRequestType;
13
15
  (function (PalletParachainStakingRequestType) {
14
16
  PalletParachainStakingRequestType["REVOKE"] = "revoke";
@@ -27,64 +29,6 @@ export function parsePoolStashAddress(api, index, poolId, poolsPalletId) {
27
29
  export function transformPoolName(input) {
28
30
  return input.replace(/[^\x20-\x7E]/g, '');
29
31
  }
30
-
31
- /**
32
- * @returns
33
- * <p>
34
- * [0] - identity
35
- * </p>
36
- * <p>
37
- * [1] - isReasonable (isVerified)
38
- * </p>
39
- * */
40
- export async function parseIdentity(substrateApi, address, children) {
41
- const compactResult = rs => {
42
- const result = [];
43
- if (rs) {
44
- result.push(rs);
45
- }
46
- if (children) {
47
- result.push(children);
48
- }
49
- if (result.length > 0) {
50
- return result.join('/');
51
- } else {
52
- return undefined;
53
- }
54
- };
55
- if (substrateApi.api.query.identity) {
56
- let identity;
57
- const _parent = await substrateApi.api.query.identity.superOf(address);
58
- const parentInfo = _parent.toHuman();
59
- if (parentInfo) {
60
- const [parentAddress, {
61
- Raw: data
62
- }] = parentInfo;
63
- const child = isHex(data) ? hexToString(data) : data;
64
- if (!isSameAddress(address, parentAddress)) {
65
- const [rs, isReasonable] = await parseIdentity(substrateApi, parentAddress, child);
66
- return [compactResult(rs), isReasonable];
67
- }
68
- }
69
- const _identity = await substrateApi.api.query.identity.identityOf(address);
70
- const identityInfo = _identity.toHuman();
71
- if (identityInfo) {
72
- var _identityInfo$info, _identityInfo$info$di, _identityInfo$info2, _identityInfo$info2$w, _identityInfo$info3, _identityInfo$info3$r, _identityInfo$info4, _identityInfo$info4$t;
73
- 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;
74
- 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;
75
- 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;
76
- 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;
77
- const isReasonable = identityInfo.judgements.length > 0;
78
- if (displayName) {
79
- identity = isHex(displayName) ? hexToString(displayName) : displayName;
80
- } else {
81
- identity = twitter || web || riot;
82
- }
83
- return [compactResult(identity), isReasonable];
84
- }
85
- }
86
- return [undefined, false];
87
- }
88
32
  export function getInflationParams(networkKey) {
89
33
  return _KNOWN_CHAIN_INFLATION_PARAMS[networkKey] || _SUBSTRATE_DEFAULT_INFLATION_PARAMS;
90
34
  }
@@ -198,6 +142,78 @@ export function isUnstakeAll(selectedValidator, nominations, unstakeAmount) {
198
142
  }
199
143
  return isUnstakeAll;
200
144
  }
145
+ export let YieldAction;
146
+ (function (YieldAction) {
147
+ YieldAction["STAKE"] = "STAKE";
148
+ YieldAction["UNSTAKE"] = "UNSTAKE";
149
+ YieldAction["WITHDRAW"] = "WITHDRAW";
150
+ YieldAction["CLAIM_REWARD"] = "CLAIM_REWARD";
151
+ YieldAction["CANCEL_UNSTAKE"] = "CANCEL_UNSTAKE";
152
+ YieldAction["START_EARNING"] = "EARN";
153
+ YieldAction["WITHDRAW_EARNING"] = "WITHDRAW_EARNING";
154
+ YieldAction["CUSTOM_ACTION"] = "CUSTOM_ACTION";
155
+ })(YieldAction || (YieldAction = {}));
156
+ export function getYieldAvailableActionsByType(yieldPoolInfo) {
157
+ if ([YieldPoolType.NATIVE_STAKING, YieldPoolType.NOMINATION_POOL].includes(yieldPoolInfo.type)) {
158
+ if (yieldPoolInfo.type === YieldPoolType.NOMINATION_POOL) {
159
+ return [YieldAction.STAKE, YieldAction.CLAIM_REWARD, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
160
+ }
161
+ const chain = yieldPoolInfo.chain;
162
+ if (_STAKING_CHAIN_GROUP.para.includes(chain)) {
163
+ return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW, YieldAction.CANCEL_UNSTAKE];
164
+ } else if (_STAKING_CHAIN_GROUP.astar.includes(chain)) {
165
+ return [YieldAction.STAKE, YieldAction.CLAIM_REWARD, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
166
+ } else if (_STAKING_CHAIN_GROUP.amplitude.includes(chain)) {
167
+ return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
168
+ }
169
+ }
170
+ if (yieldPoolInfo.type === YieldPoolType.LENDING) {
171
+ return [YieldAction.START_EARNING, YieldAction.WITHDRAW_EARNING];
172
+ } else if (yieldPoolInfo.type === YieldPoolType.LIQUID_STAKING) {
173
+ return [YieldAction.START_EARNING, YieldAction.UNSTAKE, YieldAction.WITHDRAW];
174
+ }
175
+ return [YieldAction.STAKE, YieldAction.UNSTAKE, YieldAction.WITHDRAW, YieldAction.CANCEL_UNSTAKE];
176
+ }
177
+ export function getYieldAvailableActionsByPosition(yieldPosition, yieldPoolInfo, unclaimedReward) {
178
+ const result = [];
179
+ if ([YieldPoolType.NATIVE_STAKING, YieldPoolType.NOMINATION_POOL].includes(yieldPoolInfo.type)) {
180
+ result.push(YieldAction.STAKE);
181
+ const bnActiveStake = new BN(yieldPosition.activeStake);
182
+ if (yieldPosition.activeStake && bnActiveStake.gt(BN_ZERO)) {
183
+ result.push(YieldAction.UNSTAKE);
184
+ const isAstarNetwork = _STAKING_CHAIN_GROUP.astar.includes(yieldPosition.chain);
185
+ const isAmplitudeNetwork = _STAKING_CHAIN_GROUP.amplitude.includes(yieldPosition.chain);
186
+ const bnUnclaimedReward = new BN(unclaimedReward || '0');
187
+ if ((yieldPosition.type === YieldPoolType.NOMINATION_POOL || isAmplitudeNetwork) && bnUnclaimedReward.gt(BN_ZERO) || isAstarNetwork) {
188
+ result.push(YieldAction.CLAIM_REWARD);
189
+ }
190
+ }
191
+ if (yieldPosition.unstakings.length > 0) {
192
+ result.push(YieldAction.CANCEL_UNSTAKE);
193
+ const hasClaimable = yieldPosition.unstakings.some(unstaking => unstaking.status === UnstakingStatus.CLAIMABLE);
194
+ if (hasClaimable) {
195
+ result.push(YieldAction.WITHDRAW);
196
+ }
197
+ }
198
+ } else if (yieldPoolInfo.type === YieldPoolType.LIQUID_STAKING) {
199
+ result.push(YieldAction.START_EARNING);
200
+ const activeBalance = new BN(yieldPosition.activeStake || '0');
201
+ if (activeBalance.gt(BN_ZERO)) {
202
+ result.push(YieldAction.UNSTAKE);
203
+ }
204
+ const hasWithdrawal = yieldPosition.unstakings.some(unstakingInfo => unstakingInfo.status === UnstakingStatus.CLAIMABLE);
205
+ if (hasWithdrawal) {
206
+ result.push(YieldAction.WITHDRAW);
207
+ }
208
+
209
+ // TODO: check has unstakings to withdraw
210
+ } else {
211
+ result.push(YieldAction.START_EARNING);
212
+ result.push(YieldAction.WITHDRAW_EARNING); // TODO
213
+ }
214
+
215
+ return result;
216
+ }
201
217
  export let StakingAction;
202
218
  (function (StakingAction) {
203
219
  StakingAction["STAKE"] = "STAKE";
@@ -241,7 +257,7 @@ export function getStakingAvailableActionsByNominator(nominatorMetadata, unclaim
241
257
  return result;
242
258
  }
243
259
  export function isActionFromValidator(stakingType, chain) {
244
- if (stakingType === StakingType.POOLED) {
260
+ if (stakingType === StakingType.POOLED || stakingType === StakingType.LIQUID_STAKING) {
245
261
  return false;
246
262
  }
247
263
  if (_STAKING_CHAIN_GROUP.astar.includes(chain)) {
@@ -267,21 +283,21 @@ export function getWithdrawalInfo(nominatorMetadata) {
267
283
  }
268
284
  return result;
269
285
  }
270
- export function getStakingStatusByNominations(bnTotalActiveStake, nominationList) {
271
- let stakingStatus = StakingStatus.EARNING_REWARD;
286
+ export function getEarningStatusByNominations(bnTotalActiveStake, nominationList) {
287
+ let stakingStatus = EarningStatus.EARNING_REWARD;
272
288
  if (bnTotalActiveStake.isZero()) {
273
- stakingStatus = StakingStatus.NOT_EARNING;
289
+ stakingStatus = EarningStatus.NOT_EARNING;
274
290
  } else {
275
291
  let invalidDelegationCount = 0;
276
292
  for (const nomination of nominationList) {
277
- if (nomination.status === StakingStatus.NOT_EARNING) {
293
+ if (nomination.status === EarningStatus.NOT_EARNING) {
278
294
  invalidDelegationCount += 1;
279
295
  }
280
296
  }
281
297
  if (invalidDelegationCount > 0 && invalidDelegationCount < nominationList.length) {
282
- stakingStatus = StakingStatus.PARTIALLY_EARNING;
298
+ stakingStatus = EarningStatus.PARTIALLY_EARNING;
283
299
  } else if (invalidDelegationCount === nominationList.length) {
284
- stakingStatus = StakingStatus.NOT_EARNING;
300
+ stakingStatus = EarningStatus.NOT_EARNING;
285
301
  }
286
302
  }
287
303
  return stakingStatus;
@@ -4,8 +4,9 @@
4
4
  import { getAmplitudeStakingOnChain, getAstarStakingOnChain, getParaStakingOnChain } from '@subwallet/extension-base/koni/api/staking/paraChain';
5
5
  import { getNominationPoolReward, getRelayPoolingOnChain, getRelayStakingOnChain } from '@subwallet/extension-base/koni/api/staking/relayChain';
6
6
  import { getAllSubsquidStaking } from '@subwallet/extension-base/koni/api/staking/subsquidStaking';
7
- import { _PURE_EVM_CHAINS, _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/chain-service/constants';
7
+ import { _PURE_EVM_CHAINS } from '@subwallet/extension-base/services/chain-service/constants';
8
8
  import { _isChainEvmCompatible, _isChainSupportSubstrateStaking, _isSubstrateRelayChain } from '@subwallet/extension-base/services/chain-service/utils';
9
+ import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/earning-service/constants';
9
10
  import { categoryAddresses } from '@subwallet/extension-base/utils';
10
11
  export function stakingOnChainApi(addresses, substrateApiMap, chainInfoMap, stakingCallback, nominatorStateCallback) {
11
12
  const filteredApiMap = [];
@@ -1,12 +1,13 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { APIItemState, StakingStatus, StakingType } from '@subwallet/extension-base/background/KoniTypes';
4
+ import { APIItemState, StakingType } from '@subwallet/extension-base/background/KoniTypes';
5
5
  import { subscribeAmplitudeNominatorMetadata } from '@subwallet/extension-base/koni/api/staking/bonding/amplitude';
6
6
  import { subscribeAstarNominatorMetadata } from '@subwallet/extension-base/koni/api/staking/bonding/astar';
7
7
  import { subscribeParaChainNominatorMetadata } from '@subwallet/extension-base/koni/api/staking/bonding/paraChain';
8
- import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/chain-service/constants';
9
8
  import { _getChainNativeTokenBasicInfo } from '@subwallet/extension-base/services/chain-service/utils';
9
+ import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/earning-service/constants';
10
+ import { EarningStatus } from '@subwallet/extension-base/types';
10
11
  import { reformatAddress } from '@subwallet/extension-base/utils';
11
12
  import { BN, BN_ZERO } from '@polkadot/util';
12
13
  import { isEthereumAddress } from '@polkadot/util-crypto';
@@ -47,7 +48,7 @@ function getSingleStakingAmplitude(substrateApi, address, chainInfoMap, chain, s
47
48
  chain,
48
49
  type: StakingType.NOMINATED,
49
50
  address: owner,
50
- status: StakingStatus.NOT_STAKING,
51
+ status: EarningStatus.NOT_STAKING,
51
52
  activeStake: '0',
52
53
  nominations: [],
53
54
  unstakings: []
@@ -125,7 +126,7 @@ function getMultiStakingAmplitude(substrateApi, useAddresses, chainInfoMap, chai
125
126
  chain,
126
127
  type: StakingType.NOMINATED,
127
128
  address: owner,
128
- status: StakingStatus.NOT_STAKING,
129
+ status: EarningStatus.NOT_STAKING,
129
130
  activeStake: '0',
130
131
  nominations: [],
131
132
  unstakings: []
@@ -248,7 +249,7 @@ export function getParaStakingOnChain(substrateApi, useAddresses, chainInfoMap,
248
249
  chain,
249
250
  type: StakingType.NOMINATED,
250
251
  address: owner,
251
- status: StakingStatus.NOT_STAKING,
252
+ status: EarningStatus.NOT_STAKING,
252
253
  activeStake: '0',
253
254
  nominations: [],
254
255
  unstakings: []
@@ -308,7 +309,7 @@ export function getAstarStakingOnChain(substrateApi, useAddresses, chainInfoMap,
308
309
  chain,
309
310
  type: StakingType.NOMINATED,
310
311
  address: owner,
311
- status: StakingStatus.NOT_STAKING,
312
+ status: EarningStatus.NOT_STAKING,
312
313
  activeStake: '0',
313
314
  nominations: [],
314
315
  unstakings: []
@@ -1,9 +1,10 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { APIItemState, StakingStatus, StakingType } from '@subwallet/extension-base/background/KoniTypes';
4
+ import { APIItemState, StakingType } from '@subwallet/extension-base/background/KoniTypes';
5
5
  import { subscribeRelayChainNominatorMetadata, subscribeRelayChainPoolMemberMetadata } from '@subwallet/extension-base/koni/api/staking/bonding/relayChain';
6
6
  import { _getChainNativeTokenBasicInfo } from '@subwallet/extension-base/services/chain-service/utils';
7
+ import { EarningStatus } from '@subwallet/extension-base/types';
7
8
  import { reformatAddress } from '@subwallet/extension-base/utils';
8
9
  import { BN } from '@polkadot/util';
9
10
  import { isEthereumAddress } from '@polkadot/util-crypto';
@@ -51,7 +52,7 @@ export function getRelayStakingOnChain(substrateApi, useAddresses, chainInfoMap,
51
52
  nominatorStateCallback({
52
53
  chain,
53
54
  type: StakingType.NOMINATED,
54
- status: StakingStatus.NOT_STAKING,
55
+ status: EarningStatus.NOT_STAKING,
55
56
  address: owner,
56
57
  activeStake: '0',
57
58
  nominations: [],
@@ -113,7 +114,7 @@ export function getRelayPoolingOnChain(substrateApi, useAddresses, chainInfoMap,
113
114
  chain,
114
115
  type: StakingType.POOLED,
115
116
  address: owner,
116
- status: StakingStatus.NOT_STAKING,
117
+ status: EarningStatus.NOT_STAKING,
117
118
  activeStake: '0',
118
119
  nominations: [],
119
120
  // can only join 1 pool at a time
@@ -0,0 +1,10 @@
1
+ import { _ChainAsset } from '@subwallet/chain-list/types';
2
+ import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
3
+ import { RuntimeDispatchInfo, SpecialYieldPoolInfo, YieldStepDetail } from '@subwallet/extension-base/types';
4
+ export declare const syntheticSelectedValidators: string[];
5
+ export declare function calculateAlternativeFee(feeInfo: RuntimeDispatchInfo): number;
6
+ export declare const DEFAULT_YIELD_FIRST_STEP: YieldStepDetail;
7
+ export declare const YIELD_EXTRINSIC_TYPES: ExtrinsicType[];
8
+ export declare const YIELD_POOL_STAT_REFRESH_INTERVAL = 90000;
9
+ export declare const YIELD_POOL_MIN_AMOUNT_PERCENT: Record<string, number>;
10
+ export declare function convertDerivativeToOriginToken(amount: string, poolInfo: SpecialYieldPoolInfo, derivativeTokenInfo: _ChainAsset, originTokenInfo: _ChainAsset): number;
@@ -0,0 +1,32 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
5
+ import { _getAssetDecimals } from '@subwallet/extension-base/services/chain-service/utils';
6
+ import { YieldStepType } from '@subwallet/extension-base/types';
7
+ export const syntheticSelectedValidators = ['15MLn9YQaHZ4GMkhK3qXqR5iGGSdULyJ995ctjeBgFRseyi6', '1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih', '1yGJ3h7TQuJWLYSsUVPZbM8aR8UsQXCqMvrFx5Fn1ktiAmq', '16GDRhRYxk42paoK6TfHAqWej8PdDDUwdDazjv4bAn4KGNeb', '13Ybj8CPEArUee78DxUAP9yX3ABmFNVQME1ZH4w8HVncHGzc', '14yx4vPAACZRhoDQm1dyvXD3QdRQyCRRCe5tj1zPomhhS29a', '14Vh8S1DzzycngbAB9vqEgPFR9JpSvmF1ezihTUES1EaHAV', '153YD8ZHD9dRh82U419bSCB5SzWhbdAFzjj4NtA5pMazR2yC', '1LUckyocmz9YzeQZHVpBvYYRGXb3rnSm2tvfz79h3G3JDgP', '14oRE62MB1SWR6h5RTx3GY5HK2oZipi1Gp3zdiLwVYLfEyRZ', '1cFsLn7o74nmjbRyDtMAnMpQMc5ZLsjgCSz9Np2mcejUK83', '15ZvLonEseaWZNy8LDkXXj3Y8bmAjxCjwvpy4pXWSL4nGSBs', '1NebF2xZHb4TJJpiqZZ3reeTo8dZov6LZ49qZqcHHbsmHfo', '1HmAqbBRrWvsqbLkvpiVDkdA2PcctUE5JUe3qokEh1FN455', '15tfUt4iQNjMyhZiJGBf4EpETE2KqtW1nfJwbBT1MvWjvcK9', '12RXTLiaYh59PokjZVhQvKzcfBEB5CvDnjKKUmDUotzcTH3S'];
8
+ export function calculateAlternativeFee(feeInfo) {
9
+ return feeInfo.partialFee;
10
+ }
11
+ export const DEFAULT_YIELD_FIRST_STEP = {
12
+ id: 0,
13
+ name: 'Fill information',
14
+ type: YieldStepType.DEFAULT
15
+ };
16
+ export const YIELD_EXTRINSIC_TYPES = [ExtrinsicType.MINT_VDOT, ExtrinsicType.MINT_LDOT, ExtrinsicType.MINT_SDOT, ExtrinsicType.MINT_QDOT, ExtrinsicType.MINT_STDOT, ExtrinsicType.REDEEM_QDOT, ExtrinsicType.REDEEM_SDOT, ExtrinsicType.REDEEM_VDOT, ExtrinsicType.REDEEM_LDOT, ExtrinsicType.REDEEM_STDOT, ExtrinsicType.STAKING_JOIN_POOL, ExtrinsicType.STAKING_CLAIM_REWARD, ExtrinsicType.STAKING_LEAVE_POOL, ExtrinsicType.STAKING_POOL_WITHDRAW];
17
+ export const YIELD_POOL_STAT_REFRESH_INTERVAL = 90000;
18
+ export const YIELD_POOL_MIN_AMOUNT_PERCENT = {
19
+ DOT___acala_liquid_staking: 0.98,
20
+ DOT___bifrost_liquid_staking: 0.99,
21
+ DOT___parallel_liquid_staking: 0.97,
22
+ default: 0.98
23
+ };
24
+ export function convertDerivativeToOriginToken(amount, poolInfo, derivativeTokenInfo, originTokenInfo) {
25
+ var _poolInfo$statistic, _poolInfo$statistic$a;
26
+ const derivativeDecimals = _getAssetDecimals(derivativeTokenInfo);
27
+ const originDecimals = _getAssetDecimals(originTokenInfo);
28
+ const exchangeRate = ((_poolInfo$statistic = poolInfo.statistic) === null || _poolInfo$statistic === void 0 ? void 0 : (_poolInfo$statistic$a = _poolInfo$statistic.assetEarning) === null || _poolInfo$statistic$a === void 0 ? void 0 : _poolInfo$statistic$a[0].exchangeRate) || 1;
29
+ const formattedAmount = parseInt(amount) / 10 ** derivativeDecimals; // TODO: decimals
30
+ const minAmount = formattedAmount * exchangeRate;
31
+ return Math.floor(minAmount * 10 ** originDecimals);
32
+ }
@@ -10,7 +10,6 @@ export declare class KoniCron {
10
10
  private serviceSubscription;
11
11
  dbService: DatabaseService;
12
12
  private state;
13
- private logger;
14
13
  constructor(state: KoniState, subscriptions: KoniSubscription, dbService: DatabaseService);
15
14
  private cronMap;
16
15
  private subjectMap;
@@ -26,9 +25,6 @@ export declare class KoniCron {
26
25
  syncMantaPay: () => void;
27
26
  refreshNft: (address: string, apiMap: ApiMap, smartContractNfts: _ChainAsset[], chainInfoMap: Record<string, _ChainInfo>) => () => void;
28
27
  resetNft: (newAddress: string) => void;
29
- refreshStakingReward: (address: string) => () => void;
30
- refreshStakingRewardFastInterval: (address: string) => () => void;
31
- setStakingRewardReady: () => void;
32
28
  checkNetworkAvailable: (serviceInfo: ServiceInfo) => boolean;
33
29
  reloadNft(): Promise<boolean>;
34
30
  reloadStaking(): Promise<boolean>;
@@ -1,18 +1,16 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { CRON_REFRESH_NFT_INTERVAL, CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL, CRON_SYNC_MANTA_PAY } from '@subwallet/extension-base/constants';
4
+ import { CRON_REFRESH_NFT_INTERVAL, CRON_SYNC_MANTA_PAY } from '@subwallet/extension-base/constants';
5
5
  import { _isChainSupportEvmNft, _isChainSupportNativeNft, _isChainSupportWasmNft } from '@subwallet/extension-base/services/chain-service/utils';
6
6
  import { waitTimeout } from '@subwallet/extension-base/utils';
7
7
  import { Subject } from 'rxjs';
8
- import { logger as createLogger } from '@polkadot/util';
9
8
  export class KoniCron {
10
9
  status = 'pending';
11
10
  constructor(state, subscriptions, dbService) {
12
11
  this.subscriptions = subscriptions;
13
12
  this.dbService = dbService;
14
13
  this.state = state;
15
- this.logger = createLogger('Cron');
16
14
  // this.init();
17
15
  }
18
16
 
@@ -83,18 +81,18 @@ export class KoniCron {
83
81
 
84
82
  // MantaPay
85
83
  reloadMantaPay && this.removeCron('syncMantaPay');
84
+ commonReload && this.removeCron('refreshPoolingStakingReward');
86
85
 
87
86
  // NFT
88
87
  (commonReload || needUpdateNft) && this.resetNft(address);
89
88
  (commonReload || needUpdateNft) && this.removeCron('refreshNft');
89
+ commonReload && this.removeCron('refreshPoolingStakingReward');
90
90
 
91
91
  // Chains
92
92
  if (this.checkNetworkAvailable(serviceInfo)) {
93
- // only add cron job if there's at least 1 active network
93
+ // only add cron jobs if there's at least 1 active network
94
94
  (commonReload || needUpdateNft) && this.addCron('refreshNft', this.refreshNft(address, serviceInfo.chainApiMap, this.state.getSmartContractNfts(), this.state.getActiveChainInfoMap()), CRON_REFRESH_NFT_INTERVAL);
95
95
  reloadMantaPay && this.addCron('syncMantaPay', this.syncMantaPay, CRON_SYNC_MANTA_PAY);
96
- } else {
97
- this.setStakingRewardReady();
98
96
  }
99
97
  };
100
98
  this.state.eventService.onLazy(this.eventHandler);
@@ -105,10 +103,7 @@ export class KoniCron {
105
103
  this.resetNft(currentAccountInfo.address);
106
104
  this.addCron('refreshNft', this.refreshNft(currentAccountInfo.address, this.state.getApiMap(), this.state.getSmartContractNfts(), this.state.getActiveChainInfoMap()), CRON_REFRESH_NFT_INTERVAL);
107
105
  // this.addCron('refreshStakingReward', this.refreshStakingReward(currentAccountInfo.address), CRON_REFRESH_STAKING_REWARD_INTERVAL);
108
- this.addCron('refreshPoolingStakingReward', this.refreshStakingRewardFastInterval(currentAccountInfo.address), CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL);
109
106
  this.addCron('syncMantaPay', this.syncMantaPay, CRON_SYNC_MANTA_PAY);
110
- } else {
111
- this.setStakingRewardReady();
112
107
  }
113
108
  this.status = 'running';
114
109
  };
@@ -143,19 +138,6 @@ export class KoniCron {
143
138
  resetNft = newAddress => {
144
139
  this.state.resetNft(newAddress);
145
140
  };
146
- refreshStakingReward = address => {
147
- return () => {
148
- this.subscriptions.subscribeStakingReward(address).catch(this.logger.error);
149
- };
150
- };
151
- refreshStakingRewardFastInterval = address => {
152
- return () => {
153
- this.subscriptions.subscribeStakingRewardFastInterval(address).catch(this.logger.error);
154
- };
155
- };
156
- setStakingRewardReady = () => {
157
- this.state.updateStakingRewardReady(true);
158
- };
159
141
  checkNetworkAvailable = serviceInfo => {
160
142
  return Object.keys(serviceInfo.chainApiMap.substrate).length > 0 || Object.keys(serviceInfo.chainApiMap.evm).length > 0;
161
143
  };
@@ -92,6 +92,7 @@ export default class KoniExtension {
92
92
  private getBalance;
93
93
  private subscribeBalance;
94
94
  private getCrowdloan;
95
+ private getCrowdloanContributions;
95
96
  private subscribeCrowdloan;
96
97
  private validatePassword;
97
98
  private validatedAccountsPassword;
@@ -162,7 +163,6 @@ export default class KoniExtension {
162
163
  private getNominationPoolOptions;
163
164
  private submitBonding;
164
165
  private submitUnbonding;
165
- private submitStakeWithdrawal;
166
166
  private submitStakeClaimReward;
167
167
  private submitCancelStakeWithdrawal;
168
168
  private submitPoolBonding;
@@ -214,6 +214,22 @@ export default class KoniExtension {
214
214
  private resolveAddressByDomain;
215
215
  private addInjects;
216
216
  private removeInjects;
217
+ private subscribeYieldPoolInfo;
218
+ private earlyValidateJoin;
219
+ private getOptimalYieldPath;
220
+ private handleYieldStep;
221
+ private handleYieldLeave;
222
+ private getYieldPoolTargets;
223
+ private subscribeYieldPosition;
224
+ private subscribeYieldReward;
225
+ private subscribeYieldRewardHistory;
226
+ private subscribeEarningMinAmountPercent;
227
+ private handleValidateYieldProcess;
228
+ private yieldSubmitWithdrawal;
229
+ private yieldSubmitCancelWithdrawal;
230
+ private yieldSubmitClaimReward;
231
+ private unlockDotCheckCanMint;
232
+ private unlockDotSubscribeMintedData;
217
233
  private subscribeProcessingBanner;
218
234
  private completeCampaignBanner;
219
235
  private subscribeBuyTokens;