@subwallet/extension-base 1.1.29-0 → 1.1.29-beta.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 (289) hide show
  1. package/background/KoniTypes.d.ts +94 -68
  2. package/background/KoniTypes.js +16 -13
  3. package/background/errors/TransactionError.js +9 -0
  4. package/cjs/background/KoniTypes.js +17 -16
  5. package/cjs/background/errors/TransactionError.js +9 -0
  6. package/cjs/constants/index.js +9 -3
  7. package/cjs/koni/api/nft/config.js +33 -23
  8. package/cjs/koni/api/nft/index.js +14 -0
  9. package/cjs/koni/api/nft/nft.js +1 -22
  10. package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
  11. package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
  12. package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
  13. package/cjs/koni/api/staking/bonding/amplitude.js +17 -15
  14. package/cjs/koni/api/staking/bonding/astar.js +11 -10
  15. package/cjs/koni/api/staking/bonding/index.js +4 -1
  16. package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
  17. package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
  18. package/cjs/koni/api/staking/bonding/utils.js +104 -86
  19. package/cjs/koni/api/staking/index.js +6 -5
  20. package/cjs/koni/api/staking/paraChain.js +6 -5
  21. package/cjs/koni/api/staking/relayChain.js +3 -2
  22. package/cjs/koni/api/yield/helper/utils.js +46 -0
  23. package/cjs/koni/background/cron.js +2 -0
  24. package/cjs/koni/background/handlers/Extension.js +347 -69
  25. package/cjs/koni/background/handlers/State.js +51 -3
  26. package/cjs/koni/background/handlers/index.js +4 -2
  27. package/cjs/koni/background/subscription.js +88 -18
  28. package/cjs/services/campaign-service/index.js +9 -6
  29. package/cjs/services/chain-service/constants.js +2 -16
  30. package/cjs/services/chain-service/utils.js +7 -1
  31. package/cjs/services/earning-service/constants/chains.js +29 -0
  32. package/cjs/services/earning-service/constants/index.js +27 -0
  33. package/cjs/services/earning-service/constants/step.js +18 -0
  34. package/cjs/services/earning-service/handlers/base.js +230 -0
  35. package/cjs/services/earning-service/handlers/index.js +60 -0
  36. package/cjs/services/earning-service/handlers/lending/base.js +20 -0
  37. package/cjs/services/earning-service/handlers/lending/index.js +13 -0
  38. package/cjs/services/earning-service/handlers/lending/interlay.js +176 -0
  39. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +206 -0
  40. package/cjs/services/earning-service/handlers/liquid-staking/base.js +43 -0
  41. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +267 -0
  42. package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
  43. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +190 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +382 -0
  45. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +380 -0
  46. package/cjs/services/earning-service/handlers/native-staking/astar.js +454 -0
  47. package/cjs/services/earning-service/handlers/native-staking/base-para.js +137 -0
  48. package/cjs/services/earning-service/handlers/native-staking/base.js +119 -0
  49. package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
  50. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +381 -0
  51. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +540 -0
  52. package/cjs/services/earning-service/handlers/nomination-pool/index.js +528 -0
  53. package/cjs/services/earning-service/handlers/special.js +412 -0
  54. package/cjs/services/earning-service/service.js +351 -0
  55. package/cjs/services/earning-service/utils/index.js +128 -0
  56. package/cjs/services/event-service/index.js +4 -0
  57. package/cjs/services/keyring-service/index.js +14 -2
  58. package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
  59. package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
  60. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  61. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  62. package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
  63. package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
  64. package/cjs/services/migration-service/scripts/index.js +7 -1
  65. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
  66. package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
  67. package/cjs/services/mint-campaign-service/constants.js +11 -0
  68. package/cjs/services/mint-campaign-service/index.js +18 -0
  69. package/cjs/services/notification-service/NotificationService.js +1 -1
  70. package/cjs/services/storage-service/DatabaseService.js +51 -0
  71. package/cjs/services/storage-service/databases/index.js +4 -0
  72. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  73. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
  74. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +65 -0
  75. package/cjs/services/transaction-service/event-parser/index.js +58 -0
  76. package/cjs/services/transaction-service/helpers/index.js +3 -1
  77. package/cjs/services/transaction-service/index.js +185 -74
  78. package/cjs/services/transaction-service/utils.js +1 -0
  79. package/cjs/types/campaigns/index.js +16 -0
  80. package/cjs/types/campaigns/unlock-dot.js +1 -0
  81. package/cjs/types/index.js +44 -0
  82. package/cjs/types/ordinal.js +1 -0
  83. package/cjs/types/transaction.js +1 -0
  84. package/cjs/types/yield/actions/index.js +27 -0
  85. package/cjs/types/yield/actions/join/index.js +38 -0
  86. package/cjs/types/yield/actions/join/step.js +47 -0
  87. package/cjs/types/yield/actions/join/submit.js +1 -0
  88. package/cjs/types/yield/actions/join/validate.js +16 -0
  89. package/cjs/types/yield/actions/others.js +1 -0
  90. package/cjs/types/yield/index.js +27 -0
  91. package/cjs/types/yield/info/account/index.js +49 -0
  92. package/cjs/types/yield/info/account/info.js +1 -0
  93. package/cjs/types/yield/info/account/reward.js +1 -0
  94. package/cjs/types/yield/info/account/target.js +32 -0
  95. package/cjs/types/yield/info/account/unstake.js +27 -0
  96. package/cjs/types/yield/info/base.js +41 -0
  97. package/cjs/types/yield/info/chain/index.js +27 -0
  98. package/cjs/types/yield/info/chain/info.js +1 -0
  99. package/cjs/types/yield/info/chain/target.js +1 -0
  100. package/cjs/types/yield/info/index.js +49 -0
  101. package/cjs/types/yield/info/pallet.js +15 -0
  102. package/cjs/utils/fetchStaticData.js +2 -1
  103. package/cjs/utils/index.js +89 -1
  104. package/cjs/utils/object.js +12 -0
  105. package/cjs/utils/yield/index.js +3 -0
  106. package/constants/index.d.ts +2 -0
  107. package/constants/index.js +2 -0
  108. package/koni/api/nft/config.js +33 -23
  109. package/koni/api/nft/index.js +15 -1
  110. package/koni/api/nft/nft.js +2 -23
  111. package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
  112. package/koni/api/nft/ordinal_nft/constants.js +12 -0
  113. package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
  114. package/koni/api/nft/ordinal_nft/index.js +114 -0
  115. package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
  116. package/koni/api/nft/ordinal_nft/utils.js +33 -0
  117. package/koni/api/staking/bonding/amplitude.js +11 -9
  118. package/koni/api/staking/bonding/astar.js +9 -8
  119. package/koni/api/staking/bonding/index.d.ts +1 -1
  120. package/koni/api/staking/bonding/index.js +5 -1
  121. package/koni/api/staking/bonding/paraChain.js +12 -10
  122. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  123. package/koni/api/staking/bonding/relayChain.js +33 -30
  124. package/koni/api/staking/bonding/utils.d.ts +15 -38
  125. package/koni/api/staking/bonding/utils.js +85 -69
  126. package/koni/api/staking/index.js +2 -1
  127. package/koni/api/staking/paraChain.js +7 -6
  128. package/koni/api/staking/relayChain.js +4 -3
  129. package/koni/api/yield/helper/utils.d.ts +10 -0
  130. package/koni/api/yield/helper/utils.js +32 -0
  131. package/koni/background/cron.js +2 -0
  132. package/koni/background/handlers/Extension.d.ts +16 -1
  133. package/koni/background/handlers/Extension.js +306 -30
  134. package/koni/background/handlers/State.d.ts +18 -2
  135. package/koni/background/handlers/State.js +50 -3
  136. package/koni/background/handlers/index.js +4 -2
  137. package/koni/background/subscription.d.ts +5 -1
  138. package/koni/background/subscription.js +90 -20
  139. package/package.json +316 -3
  140. package/services/campaign-service/index.js +9 -6
  141. package/services/chain-service/constants.d.ts +0 -11
  142. package/services/chain-service/constants.js +1 -14
  143. package/services/chain-service/utils.d.ts +1 -0
  144. package/services/chain-service/utils.js +5 -1
  145. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
  146. package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
  147. package/services/earning-service/constants/chains.d.ts +14 -0
  148. package/services/earning-service/constants/chains.js +21 -0
  149. package/services/earning-service/constants/index.d.ts +2 -0
  150. package/services/earning-service/constants/index.js +5 -0
  151. package/services/earning-service/constants/step.d.ts +3 -0
  152. package/services/earning-service/constants/step.js +10 -0
  153. package/services/earning-service/handlers/base.d.ts +108 -0
  154. package/services/earning-service/handlers/base.js +224 -0
  155. package/services/earning-service/handlers/index.d.ts +5 -0
  156. package/services/earning-service/handlers/index.js +8 -0
  157. package/services/earning-service/handlers/lending/base.d.ts +6 -0
  158. package/services/earning-service/handlers/lending/base.js +12 -0
  159. package/services/earning-service/handlers/lending/index.d.ts +1 -0
  160. package/services/earning-service/handlers/lending/index.js +4 -0
  161. package/services/earning-service/handlers/lending/interlay.d.ts +22 -0
  162. package/services/earning-service/handlers/lending/interlay.js +168 -0
  163. package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
  164. package/services/earning-service/handlers/liquid-staking/acala.js +198 -0
  165. package/services/earning-service/handlers/liquid-staking/base.d.ts +9 -0
  166. package/services/earning-service/handlers/liquid-staking/base.js +35 -0
  167. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +44 -0
  168. package/services/earning-service/handlers/liquid-staking/bifrost.js +256 -0
  169. package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
  170. package/services/earning-service/handlers/liquid-staking/index.js +7 -0
  171. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +27 -0
  172. package/services/earning-service/handlers/liquid-staking/parallel.js +182 -0
  173. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +36 -0
  174. package/services/earning-service/handlers/liquid-staking/stella-swap.js +372 -0
  175. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  176. package/services/earning-service/handlers/native-staking/amplitude.js +371 -0
  177. package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
  178. package/services/earning-service/handlers/native-staking/astar.js +444 -0
  179. package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
  180. package/services/earning-service/handlers/native-staking/base-para.js +129 -0
  181. package/services/earning-service/handlers/native-staking/base.d.ts +20 -0
  182. package/services/earning-service/handlers/native-staking/base.js +110 -0
  183. package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
  184. package/services/earning-service/handlers/native-staking/index.js +7 -0
  185. package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
  186. package/services/earning-service/handlers/native-staking/para-chain.js +373 -0
  187. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
  188. package/services/earning-service/handlers/native-staking/relay-chain.js +531 -0
  189. package/services/earning-service/handlers/nomination-pool/index.d.ts +33 -0
  190. package/services/earning-service/handlers/nomination-pool/index.js +518 -0
  191. package/services/earning-service/handlers/special.d.ts +59 -0
  192. package/services/earning-service/handlers/special.js +404 -0
  193. package/services/earning-service/service.d.ts +40 -0
  194. package/services/earning-service/service.js +343 -0
  195. package/services/earning-service/utils/index.d.ts +18 -0
  196. package/services/earning-service/utils/index.js +112 -0
  197. package/services/event-service/index.d.ts +1 -0
  198. package/services/event-service/index.js +4 -0
  199. package/services/event-service/types.d.ts +8 -0
  200. package/services/keyring-service/index.d.ts +2 -1
  201. package/services/keyring-service/index.js +14 -2
  202. package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
  203. package/services/migration-service/scripts/DeleteEarningData.js +13 -0
  204. package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
  205. package/services/migration-service/scripts/EnableEarningChains.js +13 -0
  206. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  207. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  208. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
  209. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
  210. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
  211. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
  212. package/services/migration-service/scripts/index.js +7 -1
  213. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
  214. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
  215. package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
  216. package/services/mint-campaign-service/campaigns/index.js +4 -0
  217. package/services/mint-campaign-service/constants.d.ts +1 -0
  218. package/services/mint-campaign-service/constants.js +4 -0
  219. package/services/mint-campaign-service/index.d.ts +7 -0
  220. package/services/mint-campaign-service/index.js +11 -0
  221. package/services/notification-service/NotificationService.js +1 -1
  222. package/services/storage-service/DatabaseService.d.ts +18 -1
  223. package/services/storage-service/DatabaseService.js +51 -0
  224. package/services/storage-service/databases/index.d.ts +3 -1
  225. package/services/storage-service/databases/index.js +4 -0
  226. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  227. package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
  228. package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
  229. package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
  230. package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
  231. package/services/subscan-service/index.d.ts +2 -2
  232. package/services/transaction-service/event-parser/index.d.ts +3 -1
  233. package/services/transaction-service/event-parser/index.js +57 -1
  234. package/services/transaction-service/helpers/index.js +3 -1
  235. package/services/transaction-service/index.d.ts +4 -15
  236. package/services/transaction-service/index.js +183 -72
  237. package/services/transaction-service/types.d.ts +2 -0
  238. package/services/transaction-service/utils.js +1 -0
  239. package/types/campaigns/index.d.ts +1 -0
  240. package/types/campaigns/index.js +4 -0
  241. package/types/campaigns/unlock-dot.d.ts +71 -0
  242. package/types/campaigns/unlock-dot.js +1 -0
  243. package/types/index.d.ts +5 -0
  244. package/types/index.js +5 -1
  245. package/types/ordinal.d.ts +69 -0
  246. package/types/ordinal.js +1 -0
  247. package/types/transaction.d.ts +3 -0
  248. package/types/transaction.js +1 -0
  249. package/types/yield/actions/index.d.ts +2 -0
  250. package/types/yield/actions/index.js +5 -0
  251. package/types/yield/actions/join/index.d.ts +3 -0
  252. package/types/yield/actions/join/index.js +6 -0
  253. package/types/yield/actions/join/step.d.ts +94 -0
  254. package/types/yield/actions/join/step.js +46 -0
  255. package/types/yield/actions/join/submit.d.ts +53 -0
  256. package/types/yield/actions/join/submit.js +1 -0
  257. package/types/yield/actions/join/validate.d.ts +18 -0
  258. package/types/yield/actions/join/validate.js +10 -0
  259. package/types/yield/actions/others.d.ts +63 -0
  260. package/types/yield/actions/others.js +1 -0
  261. package/types/yield/index.d.ts +2 -0
  262. package/types/yield/index.js +5 -0
  263. package/types/yield/info/account/index.d.ts +4 -0
  264. package/types/yield/info/account/index.js +7 -0
  265. package/types/yield/info/account/info.d.ts +101 -0
  266. package/types/yield/info/account/info.js +1 -0
  267. package/types/yield/info/account/reward.d.ts +30 -0
  268. package/types/yield/info/account/reward.js +1 -0
  269. package/types/yield/info/account/target.d.ts +43 -0
  270. package/types/yield/info/account/target.js +27 -0
  271. package/types/yield/info/account/unstake.d.ts +31 -0
  272. package/types/yield/info/account/unstake.js +22 -0
  273. package/types/yield/info/base.d.ts +45 -0
  274. package/types/yield/info/base.js +36 -0
  275. package/types/yield/info/chain/index.d.ts +2 -0
  276. package/types/yield/info/chain/index.js +5 -0
  277. package/types/yield/info/chain/info.d.ts +217 -0
  278. package/types/yield/info/chain/info.js +1 -0
  279. package/types/yield/info/chain/target.d.ts +37 -0
  280. package/types/yield/info/chain/target.js +1 -0
  281. package/types/yield/info/index.d.ts +4 -0
  282. package/types/yield/info/index.js +7 -0
  283. package/types/yield/info/pallet.d.ts +143 -0
  284. package/types/yield/info/pallet.js +9 -0
  285. package/utils/fetchStaticData.js +2 -1
  286. package/utils/index.d.ts +5 -0
  287. package/utils/index.js +53 -1
  288. package/utils/object.d.ts +1 -0
  289. package/utils/object.js +6 -0
@@ -83,6 +83,7 @@ export class KoniCron {
83
83
 
84
84
  // MantaPay
85
85
  reloadMantaPay && this.removeCron('syncMantaPay');
86
+ commonReload && this.removeCron('refreshPoolingStakingReward');
86
87
 
87
88
  // NFT
88
89
  (commonReload || needUpdateNft) && this.resetNft(address);
@@ -93,6 +94,7 @@ export class KoniCron {
93
94
  // only add cron job if there's at least 1 active network
94
95
  (commonReload || needUpdateNft) && this.addCron('refreshNft', this.refreshNft(address, serviceInfo.chainApiMap, this.state.getSmartContractNfts(), this.state.getActiveChainInfoMap()), CRON_REFRESH_NFT_INTERVAL);
95
96
  reloadMantaPay && this.addCron('syncMantaPay', this.syncMantaPay, CRON_SYNC_MANTA_PAY);
97
+ commonReload && this.addCron('refreshPoolingStakingReward', this.refreshStakingRewardFastInterval(currentAccountInfo.address), CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL);
96
98
  } else {
97
99
  this.setStakingRewardReady();
98
100
  }
@@ -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,21 @@ 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 subscribeEarningMinAmountPercent;
226
+ private handleValidateYieldProcess;
227
+ private yieldSubmitWithdrawal;
228
+ private yieldSubmitCancelWithdrawal;
229
+ private yieldSubmitClaimReward;
230
+ private unlockDotCheckCanMint;
231
+ private unlockDotSubscribeMintedData;
217
232
  private subscribeProcessingBanner;
218
233
  private completeCampaignBanner;
219
234
  private subscribeBuyTokens;
@@ -15,12 +15,13 @@ import { resolveAzeroAddressToDomain, resolveAzeroDomainToAddress } from '@subwa
15
15
  import { parseSubstrateTransaction } from '@subwallet/extension-base/koni/api/dotsama/parseTransaction';
16
16
  import { checkReferenceCount, checkSupportTransfer, createTransferExtrinsic } from '@subwallet/extension-base/koni/api/dotsama/transfer';
17
17
  import { getNftTransferExtrinsic, isRecipientSelf } from '@subwallet/extension-base/koni/api/nft/transfer';
18
- import { getBondingExtrinsic, getCancelWithdrawalExtrinsic, getClaimRewardExtrinsic, getNominationPoolsInfo, getUnbondingExtrinsic, getValidatorsInfo, getWithdrawalExtrinsic, validateBondingCondition, validateUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding';
18
+ import { getBondingExtrinsic, getCancelWithdrawalExtrinsic, getClaimRewardExtrinsic, getNominationPoolsInfo, getUnbondingExtrinsic, getValidatorsInfo, validateBondingCondition, validateUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding';
19
19
  import { getTuringCancelCompoundingExtrinsic, getTuringCompoundExtrinsic } from '@subwallet/extension-base/koni/api/staking/bonding/paraChain';
20
20
  import { getPoolingBondingExtrinsic, getPoolingUnbondingExtrinsic, validatePoolBondingCondition, validateRelayUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding/relayChain';
21
21
  import { getERC20TransactionObject, getERC721Transaction, getEVMTransactionObject } from '@subwallet/extension-base/koni/api/tokens/evm/transfer';
22
22
  import { getPSP34TransferExtrinsic } from '@subwallet/extension-base/koni/api/tokens/wasm';
23
23
  import { createXcmExtrinsic } from '@subwallet/extension-base/koni/api/xcm';
24
+ import { YIELD_EXTRINSIC_TYPES } from '@subwallet/extension-base/koni/api/yield/helper/utils';
24
25
  import { _API_OPTIONS_CHAIN_GROUP, _DEFAULT_MANTA_ZK_CHAIN, _MANTA_ZK_CHAIN_GROUP, _ZK_ASSET_PREFIX } from '@subwallet/extension-base/services/chain-service/constants';
25
26
  import { _ChainConnectionStatus } from '@subwallet/extension-base/services/chain-service/types';
26
27
  import { _getChainNativeTokenBasicInfo, _getContractAddressOfToken, _getEvmChainId, _getSubstrateGenesisHash, _getTokenMinAmount, _isAssetSmartContractNft, _isChainEvmCompatible, _isCustomAsset, _isLocalToken, _isMantaZkAsset, _isNativeToken, _isTokenEvmSmartContract, _isTokenTransferredByEvm } from '@subwallet/extension-base/services/chain-service/utils';
@@ -28,6 +29,7 @@ import { EXTENSION_REQUEST_URL } from '@subwallet/extension-base/services/reques
28
29
  import { DEFAULT_AUTO_LOCK_TIME } from '@subwallet/extension-base/services/setting-service/constants';
29
30
  import { WALLET_CONNECT_EIP155_NAMESPACE } from '@subwallet/extension-base/services/wallet-connect-service/constants';
30
31
  import { isProposalExpired, isSupportWalletConnectChain, isSupportWalletConnectNamespace } from '@subwallet/extension-base/services/wallet-connect-service/helpers';
32
+ import { YieldPoolType } from '@subwallet/extension-base/types';
31
33
  import { convertSubjectInfoToAddresses, isSameAddress, reformatAddress, uniqueStringArray } from '@subwallet/extension-base/utils';
32
34
  import { createTransactionFromRLP, recalculateGasPrice, signatureToHex } from '@subwallet/extension-base/utils/eth';
33
35
  import { parseContractInput, parseEvmRlp } from '@subwallet/extension-base/utils/eth/parseTransaction';
@@ -468,6 +470,7 @@ export default class KoniExtension {
468
470
  const cb = createSubscription(id, port);
469
471
  const keyringService = this.#koniState.keyringService;
470
472
  await this.#koniState.eventService.waitAccountReady;
473
+ await this.#koniState.eventService.waitInjectReady;
471
474
  const currentAccount = keyringService.currentAccount;
472
475
  const transformedAccounts = transformAccounts(keyringService.accounts);
473
476
  const responseData = {
@@ -1022,6 +1025,9 @@ export default class KoniExtension {
1022
1025
  getCrowdloan(reset) {
1023
1026
  return this.#koniState.getCrowdloan(reset);
1024
1027
  }
1028
+ getCrowdloanContributions(request) {
1029
+ return this.#koniState.getCrowdloanContributions(request);
1030
+ }
1025
1031
  subscribeCrowdloan(id, port) {
1026
1032
  const cb = createSubscription(id, port);
1027
1033
  const crowdloanSubscription = this.#koniState.subscribeCrowdloan().subscribe({
@@ -1910,12 +1916,22 @@ export default class KoniExtension {
1910
1916
  token
1911
1917
  }, id, port) {
1912
1918
  const cb = createSubscription(id, port);
1913
- const [unsub, currentFreeBalance] = await this.#koniState.balanceService.subscribeTokenFreeBalance(address, networkKey, token, cb);
1919
+ const convertData = data => {
1920
+ return {
1921
+ ...data,
1922
+ id
1923
+ };
1924
+ };
1925
+ const _cb = data => {
1926
+ // eslint-disable-next-line node/no-callback-literal
1927
+ cb(convertData(data));
1928
+ };
1929
+ const [unsub, currentFreeBalance] = await this.#koniState.balanceService.subscribeTokenFreeBalance(address, networkKey, token, _cb);
1914
1930
  this.createUnsubscriptionHandle(id, unsub);
1915
1931
  port.onDisconnect.addListener(() => {
1916
1932
  this.cancelSubscription(id);
1917
1933
  });
1918
- return currentFreeBalance;
1934
+ return convertData(currentFreeBalance);
1919
1935
  }
1920
1936
  async transferCheckReferenceCount({
1921
1937
  address,
@@ -2525,36 +2541,18 @@ export default class KoniExtension {
2525
2541
  chainType: ChainType.SUBSTRATE
2526
2542
  });
2527
2543
  }
2528
- async submitStakeWithdrawal(inputData) {
2529
- const {
2530
- chain,
2531
- nominatorMetadata,
2532
- validatorAddress
2533
- } = inputData;
2534
- if (!nominatorMetadata) {
2535
- return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
2536
- }
2537
- const dotSamaApi = this.#koniState.getSubstrateApi(chain);
2538
- const extrinsic = await getWithdrawalExtrinsic(dotSamaApi, chain, nominatorMetadata, validatorAddress);
2539
- return await this.#koniState.transactionService.handleTransaction({
2540
- address: nominatorMetadata.address,
2541
- chain: chain,
2542
- transaction: extrinsic,
2543
- data: inputData,
2544
- extrinsicType: ExtrinsicType.STAKING_WITHDRAW,
2545
- chainType: ChainType.SUBSTRATE
2546
- });
2547
- }
2548
2544
  async submitStakeClaimReward(inputData) {
2549
2545
  const {
2550
2546
  address,
2551
2547
  bondReward,
2552
- chain,
2553
- stakingType
2548
+ slug
2554
2549
  } = inputData;
2555
- if (!address) {
2550
+ const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
2551
+ if (!address || !poolHandler) {
2556
2552
  return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
2557
2553
  }
2554
+ const chain = poolHandler.chain;
2555
+ const stakingType = poolHandler.type === YieldPoolType.NOMINATION_POOL ? StakingType.POOLED : StakingType.NOMINATED;
2558
2556
  const substrateApi = this.#koniState.getSubstrateApi(chain);
2559
2557
  const extrinsic = await getClaimRewardExtrinsic(substrateApi, chain, address, stakingType, bondReward);
2560
2558
  return await this.#koniState.transactionService.handleTransaction({
@@ -2567,15 +2565,18 @@ export default class KoniExtension {
2567
2565
  });
2568
2566
  }
2569
2567
  async submitCancelStakeWithdrawal(inputData) {
2568
+ var _this$koniState$earni;
2570
2569
  const {
2571
2570
  address,
2572
- chain,
2573
- selectedUnstaking
2571
+ selectedUnstaking,
2572
+ slug
2574
2573
  } = inputData;
2574
+ const chain = (_this$koniState$earni = this.#koniState.earningService.getPoolHandler(slug)) === null || _this$koniState$earni === void 0 ? void 0 : _this$koniState$earni.chain;
2575
2575
  if (!chain || !selectedUnstaking) {
2576
2576
  return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
2577
2577
  }
2578
2578
  const substrateApi = this.#koniState.getSubstrateApi(chain);
2579
+ // @ts-ignore
2579
2580
  const extrinsic = await getCancelWithdrawalExtrinsic(substrateApi, chain, selectedUnstaking);
2580
2581
  return await this.#koniState.transactionService.handleTransaction({
2581
2582
  address,
@@ -3537,9 +3538,224 @@ export default class KoniExtension {
3537
3538
  this.#koniState.keyringService.removeInjectAccounts(request.addresses);
3538
3539
  return true;
3539
3540
  }
3541
+ subscribeYieldPoolInfo(id, port) {
3542
+ const cb = createSubscription(id, port);
3543
+ const yieldPoolSubscription = this.#koniState.subscribeYieldPoolInfo().subscribe({
3544
+ next: rs => {
3545
+ cb(rs);
3546
+ }
3547
+ });
3548
+ this.createUnsubscriptionHandle(id, yieldPoolSubscription.unsubscribe);
3549
+ port.onDisconnect.addListener(() => {
3550
+ this.cancelSubscription(id);
3551
+ });
3552
+ return this.#koniState.getYieldPoolInfo();
3553
+ }
3554
+ async earlyValidateJoin(request) {
3555
+ return await this.#koniState.earningService.earlyValidateJoin(request);
3556
+ }
3557
+ async getOptimalYieldPath(request) {
3558
+ return await this.#koniState.earningService.generateOptimalSteps(request);
3559
+ }
3560
+ async handleYieldStep(inputData) {
3561
+ const {
3562
+ data,
3563
+ path
3564
+ } = inputData;
3565
+ const {
3566
+ address
3567
+ } = data;
3568
+ if (!data) {
3569
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INTERNAL_ERROR)]);
3570
+ }
3571
+ const isLastStep = inputData.currentStep + 1 === path.steps.length;
3572
+ const yieldValidation = await this.#koniState.earningService.validateYieldJoin({
3573
+ data,
3574
+ path
3575
+ }); // TODO: validate, set to fail upon submission
3576
+
3577
+ if (yieldValidation.length > 0) {
3578
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors(yieldValidation);
3579
+ }
3580
+
3581
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3582
+ const {
3583
+ extrinsic,
3584
+ extrinsicType,
3585
+ transferNativeAmount,
3586
+ txChain,
3587
+ txData
3588
+ } = await this.#koniState.earningService.handleYieldJoin(inputData);
3589
+ const isPoolSupportAlternativeFee = this.#koniState.earningService.isPoolSupportAlternativeFee(inputData.data.slug);
3590
+ const isMintingStep = YIELD_EXTRINSIC_TYPES.includes(extrinsicType);
3591
+ const chainInfo = this.#koniState.getChainInfo(txChain);
3592
+ return await this.#koniState.transactionService.handleTransaction({
3593
+ address,
3594
+ chain: txChain,
3595
+ transaction: extrinsic,
3596
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3597
+ data: txData,
3598
+ extrinsicType,
3599
+ // change this depends on step
3600
+ chainType: _isChainEvmCompatible(chainInfo) ? ChainType.EVM : ChainType.SUBSTRATE,
3601
+ resolveOnDone: !isLastStep,
3602
+ transferNativeAmount,
3603
+ skipFeeValidation: isMintingStep && isPoolSupportAlternativeFee
3604
+ });
3605
+ }
3606
+ async handleYieldLeave(params) {
3607
+ const {
3608
+ address,
3609
+ slug
3610
+ } = params;
3611
+ const leaveValidation = await this.#koniState.earningService.validateYieldLeave(params);
3612
+ if (leaveValidation.length > 0) {
3613
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors(leaveValidation);
3614
+ }
3615
+ const [extrinsicType, extrinsic] = await this.#koniState.earningService.handleYieldLeave(params);
3616
+ const handler = this.#koniState.earningService.getPoolHandler(slug);
3617
+ return await this.#koniState.transactionService.handleTransaction({
3618
+ address,
3619
+ chain: (handler === null || handler === void 0 ? void 0 : handler.chain) || '',
3620
+ transaction: extrinsic,
3621
+ data: params,
3622
+ // TODO
3623
+ extrinsicType,
3624
+ chainType: (handler === null || handler === void 0 ? void 0 : handler.transactionChainType) || ChainType.SUBSTRATE
3625
+ });
3626
+ }
3627
+ async getYieldPoolTargets(request) {
3628
+ const {
3629
+ slug
3630
+ } = request;
3631
+ const targets = await this.#koniState.earningService.getPoolTargets(slug);
3632
+ return {
3633
+ slug,
3634
+ targets
3635
+ };
3636
+ }
3637
+ async subscribeYieldPosition(id, port) {
3638
+ const cb = createSubscription(id, port);
3639
+ const yieldPositionSubscription = this.#koniState.subscribeYieldPosition().subscribe({
3640
+ next: rs => {
3641
+ cb(rs);
3642
+ }
3643
+ });
3644
+ this.createUnsubscriptionHandle(id, yieldPositionSubscription.unsubscribe);
3645
+ port.onDisconnect.addListener(() => {
3646
+ this.cancelSubscription(id);
3647
+ });
3648
+ return this.#koniState.getYieldPositionInfo();
3649
+ }
3650
+ subscribeYieldReward(id, port) {
3651
+ const cb = createSubscription(id, port);
3652
+ const stakingRewardSubscription = this.#koniState.earningService.subscribeEarningReward().subscribe({
3653
+ next: rs => {
3654
+ cb(rs);
3655
+ }
3656
+ });
3657
+ this.createUnsubscriptionHandle(id, stakingRewardSubscription.unsubscribe);
3658
+ port.onDisconnect.addListener(() => {
3659
+ this.cancelSubscription(id);
3660
+ });
3661
+ return this.#koniState.earningService.getEarningRewards();
3662
+ }
3663
+ subscribeEarningMinAmountPercent(id, port) {
3664
+ const cb = createSubscription(id, port);
3665
+ const earningMinAmountPercentSubscription = this.#koniState.earningService.subscribeMinAmountPercent().subscribe({
3666
+ next: rs => {
3667
+ cb(rs);
3668
+ }
3669
+ });
3670
+ this.createUnsubscriptionHandle(id, earningMinAmountPercentSubscription.unsubscribe);
3671
+ port.onDisconnect.addListener(() => {
3672
+ this.cancelSubscription(id);
3673
+ });
3674
+ return this.#koniState.earningService.getMinAmountPercent();
3675
+ }
3676
+ handleValidateYieldProcess(inputData) {
3677
+ return this.#koniState.earningService.validateYieldJoin(inputData);
3678
+ }
3679
+ async yieldSubmitWithdrawal(params) {
3680
+ const {
3681
+ address,
3682
+ slug
3683
+ } = params;
3684
+ const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3685
+ if (!poolHandler) {
3686
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
3687
+ }
3688
+ const extrinsic = await this.#koniState.earningService.handleYieldWithdraw(params);
3689
+ return await this.#koniState.transactionService.handleTransaction({
3690
+ address: address,
3691
+ chain: poolHandler.chain,
3692
+ transaction: extrinsic,
3693
+ data: params,
3694
+ extrinsicType: ExtrinsicType.STAKING_WITHDRAW,
3695
+ chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
3696
+ });
3697
+ }
3698
+ async yieldSubmitCancelWithdrawal(params) {
3699
+ const {
3700
+ address,
3701
+ selectedUnstaking,
3702
+ slug
3703
+ } = params;
3704
+ const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3705
+ if (!poolHandler || !selectedUnstaking) {
3706
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
3707
+ }
3708
+ const chain = poolHandler.chain;
3709
+ const extrinsic = await this.#koniState.earningService.handleYieldCancelUnstake(params);
3710
+ return await this.#koniState.transactionService.handleTransaction({
3711
+ address,
3712
+ chain,
3713
+ transaction: extrinsic,
3714
+ data: params,
3715
+ extrinsicType: ExtrinsicType.STAKING_CANCEL_UNSTAKE,
3716
+ chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
3717
+ });
3718
+ }
3719
+ async yieldSubmitClaimReward(params) {
3720
+ const {
3721
+ address,
3722
+ slug
3723
+ } = params;
3724
+ const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3725
+ if (!address || !poolHandler) {
3726
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
3727
+ }
3728
+ const extrinsic = await this.#koniState.earningService.handleYieldClaimReward(params);
3729
+ return await this.#koniState.transactionService.handleTransaction({
3730
+ address,
3731
+ chain: poolHandler.chain,
3732
+ transaction: extrinsic,
3733
+ data: params,
3734
+ extrinsicType: ExtrinsicType.STAKING_CLAIM_REWARD,
3735
+ chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
3736
+ });
3737
+ }
3540
3738
 
3541
3739
  /* Campaign */
3542
3740
 
3741
+ unlockDotCheckCanMint({
3742
+ address,
3743
+ network,
3744
+ slug
3745
+ }) {
3746
+ return this.#koniState.mintCampaignService.unlockDotCampaign.canMint(address, slug, network);
3747
+ }
3748
+ unlockDotSubscribeMintedData(id, port, {
3749
+ transactionId
3750
+ }) {
3751
+ const cb = createSubscription(id, port);
3752
+ const subscription = this.#koniState.mintCampaignService.unlockDotCampaign.subscribeMintedNft(transactionId, cb);
3753
+ this.createUnsubscriptionHandle(id, subscription.unsubscribe);
3754
+ port.onDisconnect.addListener(() => {
3755
+ this.cancelSubscription(id);
3756
+ });
3757
+ return this.#koniState.mintCampaignService.unlockDotCampaign.getMintedNft(transactionId);
3758
+ }
3543
3759
  async subscribeProcessingBanner(id, port) {
3544
3760
  const cb = createSubscription(id, port);
3545
3761
  const filterBanner = data => {
@@ -3742,6 +3958,8 @@ export default class KoniExtension {
3742
3958
  return await this.subscribeBalance(id, port);
3743
3959
  case 'pri(crowdloan.getCrowdloan)':
3744
3960
  return this.getCrowdloan();
3961
+ case 'pri(crowdloan.getCrowdloanContributions)':
3962
+ return this.getCrowdloanContributions(request);
3745
3963
  case 'pri(crowdloan.getSubscription)':
3746
3964
  return this.subscribeCrowdloan(id, port);
3747
3965
  case 'pri(derivation.createV2)':
@@ -3771,6 +3989,55 @@ export default class KoniExtension {
3771
3989
  case 'pri(transaction.history.subscribe)':
3772
3990
  return this.subscribeHistoryByChainAndAddress(request, id, port);
3773
3991
 
3992
+ /* Earning */
3993
+
3994
+ /* Info */
3995
+
3996
+ case 'pri(yield.subscribePoolInfo)':
3997
+ return this.subscribeYieldPoolInfo(id, port);
3998
+ case 'pri(yield.getTargets)':
3999
+ return this.getYieldPoolTargets(request);
4000
+ case 'pri(yield.subscribeYieldPosition)':
4001
+ return this.subscribeYieldPosition(id, port);
4002
+ case 'pri(yield.subscribeYieldReward)':
4003
+ return this.subscribeYieldReward(id, port);
4004
+ case 'pri(yield.minAmountPercent)':
4005
+ return this.subscribeEarningMinAmountPercent(id, port);
4006
+
4007
+ /* Info */
4008
+
4009
+ /* Actions */
4010
+
4011
+ /* Join */
4012
+
4013
+ case 'pri(yield.join.earlyValidate)':
4014
+ return await this.earlyValidateJoin(request);
4015
+ case 'pri(yield.join.getOptimalPath)':
4016
+ return await this.getOptimalYieldPath(request);
4017
+ case 'pri(yield.join.handleStep)':
4018
+ return await this.handleYieldStep(request);
4019
+ case 'pri(yield.join.validateProcess)':
4020
+ return await this.handleValidateYieldProcess(request);
4021
+
4022
+ /* Join */
4023
+
4024
+ /* Others */
4025
+
4026
+ case 'pri(yield.leave.submit)':
4027
+ return await this.handleYieldLeave(request);
4028
+ case 'pri(yield.withdraw.submit)':
4029
+ return await this.yieldSubmitWithdrawal(request);
4030
+ case 'pri(yield.cancelWithdrawal.submit)':
4031
+ return await this.yieldSubmitCancelWithdrawal(request);
4032
+ case 'pri(yield.claimReward.submit)':
4033
+ return await this.yieldSubmitClaimReward(request);
4034
+
4035
+ /* Others */
4036
+
4037
+ /* Actions */
4038
+
4039
+ /* Earning */
4040
+
3774
4041
  /* Account management */
3775
4042
  // Add account
3776
4043
  case 'pri(accounts.create.suriV2)':
@@ -3889,6 +4156,8 @@ export default class KoniExtension {
3889
4156
  return this.transferGetExistentialDeposit(request);
3890
4157
  case 'pri(transfer.getMaxTransferable)':
3891
4158
  return this.transferGetMaxTransferable(request);
4159
+ case 'pri(transfer.subscribeMaxTransferable)':
4160
+ return this.transferGetMaxTransferable(request);
3892
4161
  case 'pri(freeBalance.get)':
3893
4162
  return this.getAddressFreeBalance(request);
3894
4163
  case 'pri(freeBalance.subscribe)':
@@ -3947,8 +4216,6 @@ export default class KoniExtension {
3947
4216
  return await this.submitBonding(request);
3948
4217
  case 'pri(unbonding.submitTransaction)':
3949
4218
  return await this.submitUnbonding(request);
3950
- case 'pri(unbonding.submitWithdrawal)':
3951
- return await this.submitStakeWithdrawal(request);
3952
4219
  case 'pri(staking.submitClaimReward)':
3953
4220
  return await this.submitStakeClaimReward(request);
3954
4221
  case 'pri(staking.submitCancelWithdrawal)':
@@ -4052,6 +4319,15 @@ export default class KoniExtension {
4052
4319
  case 'pri(mantaPay.subscribeSyncingState)':
4053
4320
  return this.subscribeMantaPaySyncState(id, port);
4054
4321
 
4322
+ /* Campaign */
4323
+
4324
+ case 'pri(campaign.unlockDot.canMint)':
4325
+ return this.unlockDotCheckCanMint(request);
4326
+ case 'pri(campaign.unlockDot.subscribe)':
4327
+ return this.unlockDotSubscribeMintedData(id, port, request);
4328
+
4329
+ /* Campaign */
4330
+
4055
4331
  // Metadata
4056
4332
  case 'pri(metadata.find)':
4057
4333
  return this.findRawMetadata(request);
@@ -1,16 +1,18 @@
1
1
  /// <reference types="chrome" />
2
2
  import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _MultiChainAsset } from '@subwallet/chain-list/types';
3
- import { AddTokenRequestExternal, AmountData, ApiMap, AuthRequestV2, ChainStakingMetadata, ConfirmationsQueue, CrowdloanItem, CrowdloanJson, CurrentAccountInfo, EvmSendTransactionParams, ExternalRequestPromise, MantaPayConfig, MantaPaySyncState, NftCollection, NftItem, NftJson, NominatorMetadata, RequestAccountExportPrivateKey, RequestCheckPublicAndSecretKey, RequestConfirmationComplete, RequestSettingsType, ResponseAccountExportPrivateKey, ResponseCheckPublicAndSecretKey, ServiceInfo, SingleModeJson, StakingItem, StakingJson, StakingRewardItem, StakingRewardJson, StakingType, UiSettings } from '@subwallet/extension-base/background/KoniTypes';
3
+ import { AddTokenRequestExternal, AmountData, ApiMap, AuthRequestV2, ChainStakingMetadata, ConfirmationsQueue, CrowdloanItem, CrowdloanJson, CurrentAccountInfo, EvmSendTransactionParams, ExternalRequestPromise, MantaPayConfig, MantaPaySyncState, NftCollection, NftItem, NftJson, NominatorMetadata, RequestAccountExportPrivateKey, RequestCheckPublicAndSecretKey, RequestConfirmationComplete, RequestCrowdloanContributions, RequestSettingsType, ResponseAccountExportPrivateKey, ResponseCheckPublicAndSecretKey, ServiceInfo, SingleModeJson, StakingItem, StakingJson, StakingRewardItem, StakingRewardJson, StakingType, UiSettings } from '@subwallet/extension-base/background/KoniTypes';
4
4
  import { AccountJson, RequestAuthorizeTab, RequestRpcSend, RequestRpcSubscribe, RequestRpcUnsubscribe, RequestSign, ResponseRpcListProviders, ResponseSigning } from '@subwallet/extension-base/background/types';
5
5
  import { BalanceService } from '@subwallet/extension-base/services/balance-service';
6
6
  import BuyService from '@subwallet/extension-base/services/buy-service';
7
7
  import CampaignService from '@subwallet/extension-base/services/campaign-service';
8
8
  import { ChainService } from '@subwallet/extension-base/services/chain-service';
9
9
  import { _ChainState, _NetworkUpsertParams, _ValidateCustomAssetRequest } from '@subwallet/extension-base/services/chain-service/types';
10
+ import EarningService from '@subwallet/extension-base/services/earning-service/service';
10
11
  import { EventService } from '@subwallet/extension-base/services/event-service';
11
12
  import { HistoryService } from '@subwallet/extension-base/services/history-service';
12
13
  import { KeyringService } from '@subwallet/extension-base/services/keyring-service';
13
14
  import MigrationService from '@subwallet/extension-base/services/migration-service';
15
+ import MintCampaignService from '@subwallet/extension-base/services/mint-campaign-service';
14
16
  import NotificationService from '@subwallet/extension-base/services/notification-service/NotificationService';
15
17
  import { PriceService } from '@subwallet/extension-base/services/price-service';
16
18
  import RequestService from '@subwallet/extension-base/services/request-service';
@@ -20,7 +22,7 @@ import DatabaseService from '@subwallet/extension-base/services/storage-service/
20
22
  import { SubscanService } from '@subwallet/extension-base/services/subscan-service';
21
23
  import TransactionService from '@subwallet/extension-base/services/transaction-service';
22
24
  import WalletConnectService from '@subwallet/extension-base/services/wallet-connect-service';
23
- import { BalanceItem, BalanceJson, BalanceMap } from '@subwallet/extension-base/types';
25
+ import { BalanceItem, BalanceJson, BalanceMap, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
24
26
  import { MetadataDef, ProviderMeta } from '@subwallet/extension-inject/types';
25
27
  import SimpleKeyring from 'eth-simple-keyring';
26
28
  import { BehaviorSubject, Subject } from 'rxjs';
@@ -46,6 +48,8 @@ export default class KoniState {
46
48
  private stakingNominatorMetadataSubject;
47
49
  private stakingRewardSubject;
48
50
  private stakingRewardState;
51
+ private yieldPoolInfoSubject;
52
+ private yieldPositionSubject;
49
53
  private lazyMap;
50
54
  readonly notificationService: NotificationService;
51
55
  readonly eventService: EventService;
@@ -64,8 +68,10 @@ export default class KoniState {
64
68
  readonly migrationService: MigrationService;
65
69
  readonly subscanService: SubscanService;
66
70
  readonly walletConnectService: WalletConnectService;
71
+ readonly mintCampaignService: MintCampaignService;
67
72
  readonly campaignService: CampaignService;
68
73
  readonly buyService: BuyService;
74
+ readonly earningService: EarningService;
69
75
  private generalStatus;
70
76
  private waitSleeping;
71
77
  private waitStarting;
@@ -108,6 +114,11 @@ export default class KoniState {
108
114
  getStaking(): Promise<StakingJson>;
109
115
  getStakingOwnersByChains(chains: string[]): Promise<string[]>;
110
116
  getPooledStakingRecordsByAddress(addresses: string[]): Promise<StakingItem[]>;
117
+ getPooledPositionByAddress(addresses: string[]): Promise<YieldPositionInfo[]>;
118
+ subscribeYieldPoolInfo(): Subject<YieldPoolInfo[]>;
119
+ subscribeYieldPosition(): Subject<YieldPositionInfo[]>;
120
+ getYieldPoolInfo(): Promise<YieldPoolInfo[]>;
121
+ getYieldPositionInfo(): Promise<YieldPositionInfo[]>;
111
122
  subscribeMantaPayConfig(): Subject<MantaPayConfig[]>;
112
123
  subscribeStaking(): Subject<StakingJson>;
113
124
  subscribeChainStakingMetadata(): Subject<ChainStakingMetadata[]>;
@@ -251,5 +262,10 @@ export default class KoniState {
251
262
  metadata: string;
252
263
  specVersion: number;
253
264
  }>;
265
+ updateYieldPoolInfo(data: YieldPoolInfo): void;
266
+ resetYieldPoolInfo(chains: string[]): void;
267
+ updateYieldPosition(data: YieldPositionInfo): void;
268
+ getYieldPoolStakingInfo(chain: string, poolType: YieldPoolType): Promise<YieldPoolInfo | undefined>;
269
+ getCrowdloanContributions({ address, page, relayChain }: RequestCrowdloanContributions): Promise<import("../../../services/subscan-service/types").CrowdloanContributionsResponse>;
254
270
  }
255
271
  export {};