@subwallet/extension-base 1.1.28-0 → 1.1.28-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 (292) hide show
  1. package/background/KoniTypes.d.ts +92 -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/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 +17 -15
  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 +2 -0
  25. package/cjs/koni/background/handlers/Extension.js +323 -69
  26. package/cjs/koni/background/handlers/State.js +57 -4
  27. package/cjs/koni/background/handlers/index.js +4 -2
  28. package/cjs/koni/background/subscription.js +89 -19
  29. package/cjs/packageInfo.js +1 -1
  30. package/cjs/services/campaign-service/index.js +9 -6
  31. package/cjs/services/chain-service/constants.js +2 -16
  32. package/cjs/services/chain-service/utils.js +7 -1
  33. package/cjs/services/earning-service/constants/chains.js +29 -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 +202 -0
  37. package/cjs/services/earning-service/handlers/index.js +60 -0
  38. package/cjs/services/earning-service/handlers/lending/base.js +20 -0
  39. package/cjs/services/earning-service/handlers/lending/index.js +13 -0
  40. package/cjs/services/earning-service/handlers/lending/interlay.js +168 -0
  41. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +196 -0
  42. package/cjs/services/earning-service/handlers/liquid-staking/base.js +39 -0
  43. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +257 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
  45. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +180 -0
  46. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +373 -0
  47. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +359 -0
  48. package/cjs/services/earning-service/handlers/native-staking/astar.js +426 -0
  49. package/cjs/services/earning-service/handlers/native-staking/base-para.js +137 -0
  50. package/cjs/services/earning-service/handlers/native-staking/base.js +109 -0
  51. package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
  52. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +361 -0
  53. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +512 -0
  54. package/cjs/services/earning-service/handlers/nomination-pool/index.js +501 -0
  55. package/cjs/services/earning-service/handlers/special.js +387 -0
  56. package/cjs/services/earning-service/service.js +327 -0
  57. package/cjs/services/earning-service/utils/index.js +111 -0
  58. package/cjs/services/event-service/index.js +4 -0
  59. package/cjs/services/keyring-service/index.js +14 -2
  60. package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
  61. package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
  62. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +17 -0
  63. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  64. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +17 -0
  65. package/cjs/services/migration-service/scripts/MigrateProvider.js +29 -0
  66. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  67. package/cjs/services/migration-service/scripts/index.js +4 -0
  68. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
  69. package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
  70. package/cjs/services/mint-campaign-service/constants.js +11 -0
  71. package/cjs/services/mint-campaign-service/index.js +18 -0
  72. package/cjs/services/notification-service/NotificationService.js +1 -1
  73. package/cjs/services/storage-service/DatabaseService.js +47 -0
  74. package/cjs/services/storage-service/databases/index.js +4 -0
  75. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  76. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
  77. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +65 -0
  78. package/cjs/services/storage-service/index.js +241 -0
  79. package/cjs/services/transaction-service/event-parser/index.js +58 -0
  80. package/cjs/services/transaction-service/helpers/index.js +3 -1
  81. package/cjs/services/transaction-service/index.js +180 -74
  82. package/cjs/services/transaction-service/utils.js +1 -0
  83. package/cjs/types/campaigns/index.js +16 -0
  84. package/cjs/types/campaigns/unlock-dot.js +1 -0
  85. package/cjs/types/index.js +44 -0
  86. package/cjs/types/ordinal.js +1 -0
  87. package/cjs/types/transaction.js +1 -0
  88. package/cjs/types/yield/actions/index.js +27 -0
  89. package/cjs/types/yield/actions/join/index.js +38 -0
  90. package/cjs/types/yield/actions/join/step.js +37 -0
  91. package/cjs/types/yield/actions/join/submit.js +1 -0
  92. package/cjs/types/yield/actions/join/validate.js +16 -0
  93. package/cjs/types/yield/actions/others.js +1 -0
  94. package/cjs/types/yield/index.js +27 -0
  95. package/cjs/types/yield/info/account/index.js +49 -0
  96. package/cjs/types/yield/info/account/info.js +1 -0
  97. package/cjs/types/yield/info/account/reward.js +1 -0
  98. package/cjs/types/yield/info/account/target.js +32 -0
  99. package/cjs/types/yield/info/account/unstake.js +27 -0
  100. package/cjs/types/yield/info/base.js +34 -0
  101. package/cjs/types/yield/info/chain/index.js +27 -0
  102. package/cjs/types/yield/info/chain/info.js +1 -0
  103. package/cjs/types/yield/info/chain/target.js +1 -0
  104. package/cjs/types/yield/info/index.js +49 -0
  105. package/cjs/types/yield/info/pallet.js +15 -0
  106. package/cjs/types.js +1 -0
  107. package/cjs/utils/address.js +34 -0
  108. package/cjs/utils/fetchStaticData.js +2 -1
  109. package/cjs/utils/index.js +89 -1
  110. package/cjs/utils/keyring.js +57 -0
  111. package/cjs/utils/object.js +12 -0
  112. package/constants/index.d.ts +2 -0
  113. package/constants/index.js +2 -0
  114. package/koni/api/nft/config.js +33 -23
  115. package/koni/api/nft/index.js +15 -1
  116. package/koni/api/nft/nft.js +2 -23
  117. package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
  118. package/koni/api/nft/ordinal_nft/constants.js +12 -0
  119. package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
  120. package/koni/api/nft/ordinal_nft/index.js +114 -0
  121. package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
  122. package/koni/api/nft/ordinal_nft/utils.js +33 -0
  123. package/koni/api/staking/bonding/amplitude.js +11 -9
  124. package/koni/api/staking/bonding/astar.js +9 -8
  125. package/koni/api/staking/bonding/index.d.ts +1 -1
  126. package/koni/api/staking/bonding/index.js +5 -1
  127. package/koni/api/staking/bonding/paraChain.js +12 -10
  128. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  129. package/koni/api/staking/bonding/relayChain.js +33 -30
  130. package/koni/api/staking/bonding/utils.d.ts +15 -38
  131. package/koni/api/staking/bonding/utils.js +85 -69
  132. package/koni/api/staking/index.js +2 -1
  133. package/koni/api/staking/paraChain.js +7 -6
  134. package/koni/api/staking/relayChain.js +4 -3
  135. package/koni/api/yield/helper/utils.d.ts +10 -0
  136. package/koni/api/yield/helper/utils.js +32 -0
  137. package/koni/background/cron.js +2 -0
  138. package/koni/background/handlers/Extension.d.ts +14 -1
  139. package/koni/background/handlers/Extension.js +282 -30
  140. package/koni/background/handlers/State.d.ts +18 -2
  141. package/koni/background/handlers/State.js +56 -4
  142. package/koni/background/handlers/index.js +4 -2
  143. package/koni/background/subscription.d.ts +5 -1
  144. package/koni/background/subscription.js +91 -21
  145. package/package.json +311 -8
  146. package/packageInfo.js +1 -1
  147. package/services/campaign-service/index.js +9 -6
  148. package/services/chain-service/constants.d.ts +0 -11
  149. package/services/chain-service/constants.js +1 -14
  150. package/services/chain-service/utils.d.ts +1 -0
  151. package/services/chain-service/utils.js +5 -1
  152. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
  153. package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
  154. package/services/earning-service/constants/chains.d.ts +14 -0
  155. package/services/earning-service/constants/chains.js +21 -0
  156. package/services/earning-service/constants/index.d.ts +2 -0
  157. package/services/earning-service/constants/index.js +5 -0
  158. package/services/earning-service/constants/step.d.ts +3 -0
  159. package/services/earning-service/constants/step.js +10 -0
  160. package/services/earning-service/handlers/base.d.ts +105 -0
  161. package/services/earning-service/handlers/base.js +195 -0
  162. package/services/earning-service/handlers/index.d.ts +5 -0
  163. package/services/earning-service/handlers/index.js +8 -0
  164. package/services/earning-service/handlers/lending/base.d.ts +6 -0
  165. package/services/earning-service/handlers/lending/base.js +12 -0
  166. package/services/earning-service/handlers/lending/index.d.ts +1 -0
  167. package/services/earning-service/handlers/lending/index.js +4 -0
  168. package/services/earning-service/handlers/lending/interlay.d.ts +22 -0
  169. package/services/earning-service/handlers/lending/interlay.js +160 -0
  170. package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
  171. package/services/earning-service/handlers/liquid-staking/acala.js +188 -0
  172. package/services/earning-service/handlers/liquid-staking/base.d.ts +8 -0
  173. package/services/earning-service/handlers/liquid-staking/base.js +31 -0
  174. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +44 -0
  175. package/services/earning-service/handlers/liquid-staking/bifrost.js +246 -0
  176. package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
  177. package/services/earning-service/handlers/liquid-staking/index.js +7 -0
  178. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +27 -0
  179. package/services/earning-service/handlers/liquid-staking/parallel.js +172 -0
  180. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +36 -0
  181. package/services/earning-service/handlers/liquid-staking/stella-swap.js +363 -0
  182. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  183. package/services/earning-service/handlers/native-staking/amplitude.js +350 -0
  184. package/services/earning-service/handlers/native-staking/astar.d.ts +18 -0
  185. package/services/earning-service/handlers/native-staking/astar.js +416 -0
  186. package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
  187. package/services/earning-service/handlers/native-staking/base-para.js +129 -0
  188. package/services/earning-service/handlers/native-staking/base.d.ts +19 -0
  189. package/services/earning-service/handlers/native-staking/base.js +101 -0
  190. package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
  191. package/services/earning-service/handlers/native-staking/index.js +7 -0
  192. package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
  193. package/services/earning-service/handlers/native-staking/para-chain.js +353 -0
  194. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
  195. package/services/earning-service/handlers/native-staking/relay-chain.js +503 -0
  196. package/services/earning-service/handlers/nomination-pool/index.d.ts +33 -0
  197. package/services/earning-service/handlers/nomination-pool/index.js +492 -0
  198. package/services/earning-service/handlers/special.d.ts +56 -0
  199. package/services/earning-service/handlers/special.js +379 -0
  200. package/services/earning-service/service.d.ts +36 -0
  201. package/services/earning-service/service.js +320 -0
  202. package/services/earning-service/utils/index.d.ts +14 -0
  203. package/services/earning-service/utils/index.js +100 -0
  204. package/services/event-service/index.d.ts +1 -0
  205. package/services/event-service/index.js +4 -0
  206. package/services/event-service/types.d.ts +8 -0
  207. package/services/keyring-service/index.d.ts +2 -1
  208. package/services/keyring-service/index.js +14 -2
  209. package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
  210. package/services/migration-service/scripts/DeleteEarningData.js +13 -0
  211. package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
  212. package/services/migration-service/scripts/EnableEarningChains.js +13 -0
  213. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  214. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  215. package/services/migration-service/scripts/index.js +4 -0
  216. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
  217. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
  218. package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
  219. package/services/mint-campaign-service/campaigns/index.js +4 -0
  220. package/services/mint-campaign-service/constants.d.ts +1 -0
  221. package/services/mint-campaign-service/constants.js +4 -0
  222. package/services/mint-campaign-service/index.d.ts +7 -0
  223. package/services/mint-campaign-service/index.js +11 -0
  224. package/services/notification-service/NotificationService.js +1 -1
  225. package/services/storage-service/DatabaseService.d.ts +17 -1
  226. package/services/storage-service/DatabaseService.js +47 -0
  227. package/services/storage-service/databases/index.d.ts +3 -1
  228. package/services/storage-service/databases/index.js +4 -0
  229. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  230. package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
  231. package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
  232. package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
  233. package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
  234. package/services/subscan-service/index.d.ts +2 -2
  235. package/services/transaction-service/event-parser/index.d.ts +3 -1
  236. package/services/transaction-service/event-parser/index.js +57 -1
  237. package/services/transaction-service/helpers/index.js +3 -1
  238. package/services/transaction-service/index.d.ts +4 -15
  239. package/services/transaction-service/index.js +178 -72
  240. package/services/transaction-service/types.d.ts +2 -0
  241. package/services/transaction-service/utils.js +1 -0
  242. package/types/campaigns/index.d.ts +1 -0
  243. package/types/campaigns/index.js +4 -0
  244. package/types/campaigns/unlock-dot.d.ts +71 -0
  245. package/types/campaigns/unlock-dot.js +1 -0
  246. package/types/index.d.ts +5 -0
  247. package/types/index.js +5 -1
  248. package/types/ordinal.d.ts +69 -0
  249. package/types/ordinal.js +1 -0
  250. package/types/transaction.d.ts +3 -0
  251. package/types/transaction.js +1 -0
  252. package/types/yield/actions/index.d.ts +2 -0
  253. package/types/yield/actions/index.js +5 -0
  254. package/types/yield/actions/join/index.d.ts +3 -0
  255. package/types/yield/actions/join/index.js +6 -0
  256. package/types/yield/actions/join/step.d.ts +75 -0
  257. package/types/yield/actions/join/step.js +34 -0
  258. package/types/yield/actions/join/submit.d.ts +53 -0
  259. package/types/yield/actions/join/submit.js +1 -0
  260. package/types/yield/actions/join/validate.d.ts +18 -0
  261. package/types/yield/actions/join/validate.js +10 -0
  262. package/types/yield/actions/others.d.ts +60 -0
  263. package/types/yield/actions/others.js +1 -0
  264. package/types/yield/index.d.ts +2 -0
  265. package/types/yield/index.js +5 -0
  266. package/types/yield/info/account/index.d.ts +4 -0
  267. package/types/yield/info/account/index.js +7 -0
  268. package/types/yield/info/account/info.d.ts +112 -0
  269. package/types/yield/info/account/info.js +1 -0
  270. package/types/yield/info/account/reward.d.ts +41 -0
  271. package/types/yield/info/account/reward.js +1 -0
  272. package/types/yield/info/account/target.d.ts +43 -0
  273. package/types/yield/info/account/target.js +27 -0
  274. package/types/yield/info/account/unstake.d.ts +31 -0
  275. package/types/yield/info/account/unstake.js +22 -0
  276. package/types/yield/info/base.d.ts +28 -0
  277. package/types/yield/info/base.js +28 -0
  278. package/types/yield/info/chain/index.d.ts +2 -0
  279. package/types/yield/info/chain/index.js +5 -0
  280. package/types/yield/info/chain/info.d.ts +190 -0
  281. package/types/yield/info/chain/info.js +1 -0
  282. package/types/yield/info/chain/target.d.ts +33 -0
  283. package/types/yield/info/chain/target.js +1 -0
  284. package/types/yield/info/index.d.ts +4 -0
  285. package/types/yield/info/index.js +7 -0
  286. package/types/yield/info/pallet.d.ts +143 -0
  287. package/types/yield/info/pallet.js +9 -0
  288. package/utils/fetchStaticData.js +2 -1
  289. package/utils/index.d.ts +5 -0
  290. package/utils/index.js +53 -1
  291. package/utils/object.d.ts +1 -0
  292. package/utils/object.js +6 -0
@@ -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';
@@ -35,7 +36,7 @@ function getSingleStakingAmplitude(substrateApi, address, chainInfoMap, chain, s
35
36
  chain,
36
37
  type: StakingType.NOMINATED,
37
38
  address: owner,
38
- status: StakingStatus.NOT_STAKING,
39
+ status: EarningStatus.NOT_STAKING,
39
40
  activeStake: '0',
40
41
  nominations: [],
41
42
  unstakings: []
@@ -96,7 +97,7 @@ function getMultiStakingAmplitude(substrateApi, useAddresses, chainInfoMap, chai
96
97
  chain,
97
98
  type: StakingType.NOMINATED,
98
99
  address: owner,
99
- status: StakingStatus.NOT_STAKING,
100
+ status: EarningStatus.NOT_STAKING,
100
101
  activeStake: '0',
101
102
  nominations: [],
102
103
  unstakings: []
@@ -214,7 +215,7 @@ export function getParaStakingOnChain(substrateApi, useAddresses, chainInfoMap,
214
215
  chain,
215
216
  type: StakingType.NOMINATED,
216
217
  address: owner,
217
- status: StakingStatus.NOT_STAKING,
218
+ status: EarningStatus.NOT_STAKING,
218
219
  activeStake: '0',
219
220
  nominations: [],
220
221
  unstakings: []
@@ -274,7 +275,7 @@ export function getAstarStakingOnChain(substrateApi, useAddresses, chainInfoMap,
274
275
  chain,
275
276
  type: StakingType.NOMINATED,
276
277
  address: owner,
277
- status: StakingStatus.NOT_STAKING,
278
+ status: EarningStatus.NOT_STAKING,
278
279
  activeStake: '0',
279
280
  nominations: [],
280
281
  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$metadata$as;
26
+ const derivativeDecimals = _getAssetDecimals(derivativeTokenInfo);
27
+ const originDecimals = _getAssetDecimals(originTokenInfo);
28
+ const exchangeRate = ((_poolInfo$metadata$as = poolInfo.metadata.assetEarning) === null || _poolInfo$metadata$as === void 0 ? void 0 : _poolInfo$metadata$as[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
+ }
@@ -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,19 @@ export default class KoniExtension {
214
214
  private resolveAddressByDomain;
215
215
  private addInjects;
216
216
  private removeInjects;
217
+ private subscribeYieldPoolInfo;
218
+ private getOptimalYieldPath;
219
+ private handleYieldStep;
220
+ private handleYieldLeave;
221
+ private getYieldPoolTargets;
222
+ private subscribeYieldPosition;
223
+ private subscribeYieldReward;
224
+ private handleValidateYieldProcess;
225
+ private yieldSubmitWithdrawal;
226
+ private yieldSubmitCancelWithdrawal;
227
+ private yieldSubmitClaimReward;
228
+ private unlockDotCheckCanMint;
229
+ private unlockDotSubscribeMintedData;
217
230
  private subscribeProcessingBanner;
218
231
  private completeCampaignBanner;
219
232
  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,204 @@ 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 getOptimalYieldPath(request) {
3555
+ return await this.#koniState.earningService.generateOptimalSteps(request);
3556
+ }
3557
+ async handleYieldStep(inputData) {
3558
+ const {
3559
+ data,
3560
+ path
3561
+ } = inputData;
3562
+ const {
3563
+ address
3564
+ } = data;
3565
+ if (!data) {
3566
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INTERNAL_ERROR)]);
3567
+ }
3568
+ const isLastStep = inputData.currentStep + 1 === path.steps.length;
3569
+ const yieldValidation = await this.#koniState.earningService.validateYieldJoin({
3570
+ data,
3571
+ path
3572
+ }); // TODO: validate, set to fail upon submission
3573
+
3574
+ if (yieldValidation.length > 0) {
3575
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors(yieldValidation);
3576
+ }
3577
+
3578
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3579
+ const {
3580
+ extrinsic,
3581
+ extrinsicType,
3582
+ transferNativeAmount,
3583
+ txChain,
3584
+ txData
3585
+ } = await this.#koniState.earningService.handleYieldJoin(inputData);
3586
+ const isPoolSupportAlternativeFee = this.#koniState.earningService.isPoolSupportAlternativeFee(inputData.data.slug);
3587
+ const isMintingStep = YIELD_EXTRINSIC_TYPES.includes(extrinsicType);
3588
+ const chainInfo = this.#koniState.getChainInfo(txChain);
3589
+ return await this.#koniState.transactionService.handleTransaction({
3590
+ address,
3591
+ chain: txChain,
3592
+ transaction: extrinsic,
3593
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3594
+ data: txData,
3595
+ extrinsicType,
3596
+ // change this depends on step
3597
+ chainType: _isChainEvmCompatible(chainInfo) ? ChainType.EVM : ChainType.SUBSTRATE,
3598
+ resolveOnDone: !isLastStep,
3599
+ transferNativeAmount,
3600
+ skipFeeValidation: isMintingStep && isPoolSupportAlternativeFee
3601
+ });
3602
+ }
3603
+ async handleYieldLeave(params) {
3604
+ const {
3605
+ address,
3606
+ slug
3607
+ } = params;
3608
+ const leaveValidation = await this.#koniState.earningService.validateYieldLeave(params);
3609
+ if (leaveValidation.length > 0) {
3610
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors(leaveValidation);
3611
+ }
3612
+ const [extrinsicType, extrinsic] = await this.#koniState.earningService.handleYieldLeave(params);
3613
+ const handler = this.#koniState.earningService.getPoolHandler(slug);
3614
+ return await this.#koniState.transactionService.handleTransaction({
3615
+ address,
3616
+ chain: (handler === null || handler === void 0 ? void 0 : handler.chain) || '',
3617
+ transaction: extrinsic,
3618
+ data: params,
3619
+ // TODO
3620
+ extrinsicType,
3621
+ chainType: (handler === null || handler === void 0 ? void 0 : handler.transactionChainType) || ChainType.SUBSTRATE
3622
+ });
3623
+ }
3624
+ async getYieldPoolTargets(request) {
3625
+ const {
3626
+ slug
3627
+ } = request;
3628
+ return this.#koniState.earningService.getPoolTargets(slug);
3629
+ }
3630
+ async subscribeYieldPosition(id, port) {
3631
+ const cb = createSubscription(id, port);
3632
+ const yieldPositionSubscription = this.#koniState.subscribeYieldPosition().subscribe({
3633
+ next: rs => {
3634
+ cb(rs);
3635
+ }
3636
+ });
3637
+ this.createUnsubscriptionHandle(id, yieldPositionSubscription.unsubscribe);
3638
+ port.onDisconnect.addListener(() => {
3639
+ this.cancelSubscription(id);
3640
+ });
3641
+ return this.#koniState.getYieldPositionInfo();
3642
+ }
3643
+ subscribeYieldReward(id, port) {
3644
+ const cb = createSubscription(id, port);
3645
+ const stakingRewardSubscription = this.#koniState.earningService.subscribeEarningReward().subscribe({
3646
+ next: rs => {
3647
+ cb(rs);
3648
+ }
3649
+ });
3650
+ this.createUnsubscriptionHandle(id, stakingRewardSubscription.unsubscribe);
3651
+ port.onDisconnect.addListener(() => {
3652
+ this.cancelSubscription(id);
3653
+ });
3654
+ return this.#koniState.earningService.getEarningRewards();
3655
+ }
3656
+ handleValidateYieldProcess(inputData) {
3657
+ return this.#koniState.earningService.validateYieldJoin(inputData);
3658
+ }
3659
+ async yieldSubmitWithdrawal(params) {
3660
+ const {
3661
+ address,
3662
+ slug
3663
+ } = params;
3664
+ const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3665
+ if (!poolHandler) {
3666
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
3667
+ }
3668
+ const extrinsic = await this.#koniState.earningService.handleYieldWithdraw(params);
3669
+ return await this.#koniState.transactionService.handleTransaction({
3670
+ address: address,
3671
+ chain: poolHandler.chain,
3672
+ transaction: extrinsic,
3673
+ data: params,
3674
+ extrinsicType: ExtrinsicType.STAKING_WITHDRAW,
3675
+ chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
3676
+ });
3677
+ }
3678
+ async yieldSubmitCancelWithdrawal(params) {
3679
+ const {
3680
+ address,
3681
+ selectedUnstaking,
3682
+ slug
3683
+ } = params;
3684
+ const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3685
+ if (!poolHandler || !selectedUnstaking) {
3686
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
3687
+ }
3688
+ const chain = poolHandler.chain;
3689
+ const extrinsic = await this.#koniState.earningService.handleYieldCancelUnstake(params);
3690
+ return await this.#koniState.transactionService.handleTransaction({
3691
+ address,
3692
+ chain,
3693
+ transaction: extrinsic,
3694
+ data: params,
3695
+ extrinsicType: ExtrinsicType.STAKING_CANCEL_UNSTAKE,
3696
+ chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
3697
+ });
3698
+ }
3699
+ async yieldSubmitClaimReward(params) {
3700
+ const {
3701
+ address,
3702
+ slug
3703
+ } = params;
3704
+ const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
3705
+ if (!address || !poolHandler) {
3706
+ return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new TransactionError(BasicTxErrorType.INVALID_PARAMS)]);
3707
+ }
3708
+ const extrinsic = await this.#koniState.earningService.handleYieldClaimReward(params);
3709
+ return await this.#koniState.transactionService.handleTransaction({
3710
+ address,
3711
+ chain: poolHandler.chain,
3712
+ transaction: extrinsic,
3713
+ data: params,
3714
+ extrinsicType: ExtrinsicType.STAKING_CLAIM_REWARD,
3715
+ chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || ChainType.SUBSTRATE
3716
+ });
3717
+ }
3540
3718
 
3541
3719
  /* Campaign */
3542
3720
 
3721
+ unlockDotCheckCanMint({
3722
+ address,
3723
+ network,
3724
+ slug
3725
+ }) {
3726
+ return this.#koniState.mintCampaignService.unlockDotCampaign.canMint(address, slug, network);
3727
+ }
3728
+ unlockDotSubscribeMintedData(id, port, {
3729
+ transactionId
3730
+ }) {
3731
+ const cb = createSubscription(id, port);
3732
+ const subscription = this.#koniState.mintCampaignService.unlockDotCampaign.subscribeMintedNft(transactionId, cb);
3733
+ this.createUnsubscriptionHandle(id, subscription.unsubscribe);
3734
+ port.onDisconnect.addListener(() => {
3735
+ this.cancelSubscription(id);
3736
+ });
3737
+ return this.#koniState.mintCampaignService.unlockDotCampaign.getMintedNft(transactionId);
3738
+ }
3543
3739
  async subscribeProcessingBanner(id, port) {
3544
3740
  const cb = createSubscription(id, port);
3545
3741
  const filterBanner = data => {
@@ -3742,6 +3938,8 @@ export default class KoniExtension {
3742
3938
  return await this.subscribeBalance(id, port);
3743
3939
  case 'pri(crowdloan.getCrowdloan)':
3744
3940
  return this.getCrowdloan();
3941
+ case 'pri(crowdloan.getCrowdloanContributions)':
3942
+ return this.getCrowdloanContributions(request);
3745
3943
  case 'pri(crowdloan.getSubscription)':
3746
3944
  return this.subscribeCrowdloan(id, port);
3747
3945
  case 'pri(derivation.createV2)':
@@ -3771,6 +3969,51 @@ export default class KoniExtension {
3771
3969
  case 'pri(transaction.history.subscribe)':
3772
3970
  return this.subscribeHistoryByChainAndAddress(request, id, port);
3773
3971
 
3972
+ /* Earning */
3973
+
3974
+ /* Info */
3975
+
3976
+ case 'pri(yield.subscribePoolInfo)':
3977
+ return this.subscribeYieldPoolInfo(id, port);
3978
+ case 'pri(yield.getTargets)':
3979
+ return this.getYieldPoolTargets(request);
3980
+ case 'pri(yield.subscribeYieldPosition)':
3981
+ return this.subscribeYieldPosition(id, port);
3982
+ case 'pri(yield.subscribeYieldReward)':
3983
+ return this.subscribeYieldReward(id, port);
3984
+
3985
+ /* Info */
3986
+
3987
+ /* Actions */
3988
+
3989
+ /* Join */
3990
+
3991
+ case 'pri(yield.join.getOptimalPath)':
3992
+ return await this.getOptimalYieldPath(request);
3993
+ case 'pri(yield.join.handleStep)':
3994
+ return await this.handleYieldStep(request);
3995
+ case 'pri(yield.join.validateProcess)':
3996
+ return await this.handleValidateYieldProcess(request);
3997
+
3998
+ /* Join */
3999
+
4000
+ /* Others */
4001
+
4002
+ case 'pri(yield.leave.submit)':
4003
+ return await this.handleYieldLeave(request);
4004
+ case 'pri(yield.withdraw.submit)':
4005
+ return await this.yieldSubmitWithdrawal(request);
4006
+ case 'pri(yield.cancelWithdrawal.submit)':
4007
+ return await this.yieldSubmitCancelWithdrawal(request);
4008
+ case 'pri(yield.claimReward.submit)':
4009
+ return await this.yieldSubmitClaimReward(request);
4010
+
4011
+ /* Others */
4012
+
4013
+ /* Actions */
4014
+
4015
+ /* Earning */
4016
+
3774
4017
  /* Account management */
3775
4018
  // Add account
3776
4019
  case 'pri(accounts.create.suriV2)':
@@ -3889,6 +4132,8 @@ export default class KoniExtension {
3889
4132
  return this.transferGetExistentialDeposit(request);
3890
4133
  case 'pri(transfer.getMaxTransferable)':
3891
4134
  return this.transferGetMaxTransferable(request);
4135
+ case 'pri(transfer.subscribeMaxTransferable)':
4136
+ return this.transferGetMaxTransferable(request);
3892
4137
  case 'pri(freeBalance.get)':
3893
4138
  return this.getAddressFreeBalance(request);
3894
4139
  case 'pri(freeBalance.subscribe)':
@@ -3947,8 +4192,6 @@ export default class KoniExtension {
3947
4192
  return await this.submitBonding(request);
3948
4193
  case 'pri(unbonding.submitTransaction)':
3949
4194
  return await this.submitUnbonding(request);
3950
- case 'pri(unbonding.submitWithdrawal)':
3951
- return await this.submitStakeWithdrawal(request);
3952
4195
  case 'pri(staking.submitClaimReward)':
3953
4196
  return await this.submitStakeClaimReward(request);
3954
4197
  case 'pri(staking.submitCancelWithdrawal)':
@@ -4052,6 +4295,15 @@ export default class KoniExtension {
4052
4295
  case 'pri(mantaPay.subscribeSyncingState)':
4053
4296
  return this.subscribeMantaPaySyncState(id, port);
4054
4297
 
4298
+ /* Campaign */
4299
+
4300
+ case 'pri(campaign.unlockDot.canMint)':
4301
+ return this.unlockDotCheckCanMint(request);
4302
+ case 'pri(campaign.unlockDot.subscribe)':
4303
+ return this.unlockDotSubscribeMintedData(id, port, request);
4304
+
4305
+ /* Campaign */
4306
+
4055
4307
  // Metadata
4056
4308
  case 'pri(metadata.find)':
4057
4309
  return this.findRawMetadata(request);