@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
@@ -3,8 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.parseLiquidStakingEvents = parseLiquidStakingEvents;
7
+ exports.parseLiquidStakingFastUnstakeEvents = parseLiquidStakingFastUnstakeEvents;
6
8
  exports.parseTransferEventLogs = parseTransferEventLogs;
7
9
  exports.parseXcmEventLogs = parseXcmEventLogs;
10
+ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
8
11
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
9
12
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
10
13
  // SPDX-License-Identifier: Apache-2.0
@@ -72,4 +75,59 @@ function parseTransferEventLogs(historyItem, eventLogs, chain, sendingTokenInfo,
72
75
  }
73
76
  }
74
77
  }
78
+ }
79
+ function parseLiquidStakingEvents(historyItem, eventLogs, inputTokenInfo, chainInfo, feePaidWithInputAsset, extrinsicType) {
80
+ if (feePaidWithInputAsset) {
81
+ historyItem.fee = {
82
+ value: '0',
83
+ // TODO
84
+ symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
85
+ decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
86
+ };
87
+ } else {
88
+ for (let index = 0; index < eventLogs.length; index++) {
89
+ const record = eventLogs[index];
90
+ const {
91
+ decimals: nativeDecimals,
92
+ symbol: nativeSymbol
93
+ } = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
94
+ const section = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
95
+ const eventMethod = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
96
+ if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
97
+ var _record$event$data$9;
98
+ if ((_record$event$data$9 = record.event.data[2]) !== null && _record$event$data$9 !== void 0 && _record$event$data$9.toString()) {
99
+ var _record$event$data$10;
100
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
101
+ historyItem.fee = {
102
+ value: ((_record$event$data$10 = record.event.data[2]) === null || _record$event$data$10 === void 0 ? void 0 : _record$event$data$10.toString()) || '0',
103
+ symbol: nativeSymbol,
104
+ decimals: nativeDecimals
105
+ };
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ function parseLiquidStakingFastUnstakeEvents(historyItem, eventLogs, chainInfo, extrinsicType) {
112
+ for (let index = 0; index < eventLogs.length; index++) {
113
+ const record = eventLogs[index];
114
+ const {
115
+ decimals: nativeDecimals,
116
+ symbol: nativeSymbol
117
+ } = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
118
+ const section = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
119
+ const eventMethod = extrinsicType === _KoniTypes.ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
120
+ if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
121
+ var _record$event$data$11;
122
+ if ((_record$event$data$11 = record.event.data[2]) !== null && _record$event$data$11 !== void 0 && _record$event$data$11.toString()) {
123
+ var _record$event$data$12;
124
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
125
+ historyItem.fee = {
126
+ value: ((_record$event$data$12 = record.event.data[2]) === null || _record$event$data$12 === void 0 ? void 0 : _record$event$data$12.toString()) || '0',
127
+ symbol: nativeSymbol,
128
+ decimals: nativeDecimals
129
+ };
130
+ }
131
+ }
132
+ }
75
133
  }
@@ -40,7 +40,7 @@ const typeName = type => {
40
40
  case _KoniTypes.ExtrinsicType.STAKING_BOND:
41
41
  return 'Bond';
42
42
  case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
43
- return 'Unbond';
43
+ return 'Unstake';
44
44
  case _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD:
45
45
  return 'Claim reward';
46
46
  case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
@@ -55,6 +55,8 @@ const typeName = type => {
55
55
  return 'Cancel compounding';
56
56
  case _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW:
57
57
  return 'Withdraw pool';
58
+ case _KoniTypes.ExtrinsicType.JOIN_YIELD_POOL:
59
+ return 'Start earning';
58
60
  case _KoniTypes.ExtrinsicType.UNKNOWN:
59
61
  default:
60
62
  return 'unknown';
@@ -10,14 +10,14 @@ var _TransactionError = require("@subwallet/extension-base/background/errors/Tra
10
10
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
11
11
  var _TransactionWarning = require("@subwallet/extension-base/background/warnings/TransactionWarning");
12
12
  var _constants = require("@subwallet/extension-base/constants");
13
- var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
14
13
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
15
- var _constants3 = require("@subwallet/extension-base/services/request-service/constants");
16
- var _constants4 = require("@subwallet/extension-base/services/transaction-service/constants");
14
+ var _constants2 = require("@subwallet/extension-base/services/request-service/constants");
15
+ var _constants3 = require("@subwallet/extension-base/services/transaction-service/constants");
17
16
  var _eventParser = require("@subwallet/extension-base/services/transaction-service/event-parser");
18
17
  var _helpers = require("@subwallet/extension-base/services/transaction-service/helpers");
19
18
  var _utils2 = require("@subwallet/extension-base/services/transaction-service/utils");
20
19
  var _helpers2 = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
20
+ var _types = require("@subwallet/extension-base/types");
21
21
  var _utils3 = require("@subwallet/extension-base/utils");
22
22
  var _eth = require("@subwallet/extension-base/utils/eth");
23
23
  var _mergeTransactionAndSignature = require("@subwallet/extension-base/utils/eth/mergeTransactionAndSignature");
@@ -30,6 +30,7 @@ var _eventemitter = _interopRequireDefault(require("eventemitter3"));
30
30
  var _i18next = require("i18next");
31
31
  var _rxjs = require("rxjs");
32
32
  var _util = require("@polkadot/util");
33
+ var _constants4 = require("../chain-service/constants");
33
34
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
34
35
  // SPDX-License-Identifier: Apache-2.0
35
36
 
@@ -39,14 +40,8 @@ class TransactionService {
39
40
  get transactions() {
40
41
  return this.transactionSubject.getValue();
41
42
  }
42
- constructor(chainService, eventService, requestService, balanceService, historyService, notificationService, databaseService) {
43
- this.chainService = chainService;
44
- this.eventService = eventService;
45
- this.requestService = requestService;
46
- this.balanceService = balanceService;
47
- this.historyService = historyService;
48
- this.notificationService = notificationService;
49
- this.databaseService = databaseService;
43
+ constructor(state) {
44
+ this.state = state;
50
45
  }
51
46
  get allTransactions() {
52
47
  return Object.values(this.transactions);
@@ -103,7 +98,7 @@ class TransactionService {
103
98
  decimals: 0,
104
99
  value: ''
105
100
  };
106
- const chainInfo = this.chainService.getChainInfoByKey(chain);
101
+ const chainInfo = this.state.chainService.getChainInfoByKey(chain);
107
102
  if (!chainInfo) {
108
103
  validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('Cannot find network')));
109
104
  } else {
@@ -118,7 +113,7 @@ class TransactionService {
118
113
  if ((0, _helpers.isSubstrateTransaction)(transaction)) {
119
114
  estimateFee.value = (await transaction.paymentInfo(address)).partialFee.toString();
120
115
  } else {
121
- const web3 = this.chainService.getEvmApi(chain);
116
+ const web3 = this.state.chainService.getEvmApi(chain);
122
117
  if (!web3) {
123
118
  validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.CHAIN_DISCONNECTED, undefined));
124
119
  } else {
@@ -152,32 +147,35 @@ class TransactionService {
152
147
 
153
148
  // Balance
154
149
  const transferNative = validationResponse.transferNativeAmount || '0';
155
- const nativeTokenInfo = this.chainService.getNativeTokenInfo(chain);
156
- const balance = await this.balanceService.getTokenFreeBalance(address, chain, nativeTokenInfo.slug);
150
+ const nativeTokenInfo = this.state.chainService.getNativeTokenInfo(chain);
151
+ const balance = await this.state.balanceService.getTokenFreeBalance(address, chain, nativeTokenInfo.slug);
157
152
  const existentialDeposit = nativeTokenInfo.minAmount || '0';
158
153
  const feeNum = parseInt(estimateFee.value);
159
154
  const balanceNum = parseInt(balance.value);
160
155
  const edNum = parseInt(existentialDeposit);
161
156
  const transferNativeNum = parseInt(transferNative);
162
- if (!new _bignumber.default(balance.value).gt(0)) {
163
- validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
164
- }
165
- if (transferNativeNum + feeNum > balanceNum) {
166
- if (!isTransferAll) {
157
+ if (!validationInput.skipFeeValidation) {
158
+ // TODO
159
+ if (!new _bignumber.default(balance.value).gt(0)) {
167
160
  validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
168
- } else {
169
- if ([..._constants2._TRANSFER_CHAIN_GROUP.acala, ..._constants2._TRANSFER_CHAIN_GROUP.genshiro, ..._constants2._TRANSFER_CHAIN_GROUP.bitcountry, ..._constants2._TRANSFER_CHAIN_GROUP.statemine].includes(chain)) {
170
- // Chain not have transfer all function
161
+ }
162
+ if (transferNativeNum + feeNum > balanceNum) {
163
+ if (!isTransferAll) {
171
164
  validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
165
+ } else {
166
+ if ([..._constants4._TRANSFER_CHAIN_GROUP.acala, ..._constants4._TRANSFER_CHAIN_GROUP.genshiro, ..._constants4._TRANSFER_CHAIN_GROUP.bitcountry, ..._constants4._TRANSFER_CHAIN_GROUP.statemine].includes(chain)) {
167
+ // Chain not have transfer all function
168
+ validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
169
+ }
172
170
  }
173
171
  }
174
- }
175
- if (!isTransferAll) {
176
- if (balanceNum - (transferNativeNum + feeNum) < edNum) {
177
- if (edAsWarning) {
178
- validationResponse.warnings.push(new _TransactionWarning.TransactionWarning(_KoniTypes.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
179
- } else {
180
- validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
172
+ if (!isTransferAll) {
173
+ if (balanceNum - (transferNativeNum + feeNum) < edNum) {
174
+ if (edAsWarning) {
175
+ validationResponse.warnings.push(new _TransactionWarning.TransactionWarning(_KoniTypes.BasicTxWarningCode.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
176
+ } else {
177
+ validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_EXISTENTIAL_DEPOSIT));
178
+ }
181
179
  }
182
180
  }
183
181
  }
@@ -198,7 +196,7 @@ class TransactionService {
198
196
  updatedAt: new Date().getTime(),
199
197
  errors: transaction.errors || [],
200
198
  warnings: transaction.warnings || [],
201
- url: transaction.url || _constants3.EXTENSION_REQUEST_URL,
199
+ url: transaction.url || _constants2.EXTENSION_REQUEST_URL,
202
200
  status: _KoniTypes.ExtrinsicStatus.QUEUED,
203
201
  isInternal,
204
202
  id: transactionId,
@@ -244,12 +242,21 @@ class TransactionService {
244
242
  }
245
243
  validatedTransaction.warnings = [];
246
244
  const emitter = await this.addTransaction(validatedTransaction);
247
- await new Promise(resolve => {
248
- emitter.on('signed', data => {
249
- validatedTransaction.id = data.id;
250
- validatedTransaction.extrinsicHash = data.extrinsicHash;
251
- resolve();
252
- });
245
+ await new Promise((resolve, reject) => {
246
+ // TODO
247
+ if (transaction.resolveOnDone) {
248
+ emitter.on('success', data => {
249
+ validatedTransaction.id = data.id;
250
+ validatedTransaction.extrinsicHash = data.extrinsicHash;
251
+ resolve();
252
+ });
253
+ } else {
254
+ emitter.on('signed', data => {
255
+ validatedTransaction.id = data.id;
256
+ validatedTransaction.extrinsicHash = data.extrinsicHash;
257
+ resolve();
258
+ });
259
+ }
253
260
  emitter.on('error', data => {
254
261
  if (data.errors.length > 0) {
255
262
  validatedTransaction.errors.push(...data.errors);
@@ -315,7 +322,7 @@ class TransactionService {
315
322
  }
316
323
  getTransactionLink(id) {
317
324
  const transaction = this.getTransaction(id);
318
- const chainInfo = this.chainService.getChainInfoByKey(transaction.chain);
325
+ const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
319
326
  return (0, _utils2.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
320
327
  }
321
328
  transactionToHistories(id, startBlock, nonce, eventLogs) {
@@ -343,7 +350,7 @@ class TransactionService {
343
350
  nonce: nonce !== null && nonce !== void 0 ? nonce : 0,
344
351
  startBlock: startBlock || 0
345
352
  };
346
- const chainInfo = this.chainService.getChainInfoByKey(transaction.chain);
353
+ const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
347
354
  const nativeAsset = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
348
355
  const baseNativeAmount = {
349
356
  value: '0',
@@ -357,7 +364,7 @@ class TransactionService {
357
364
  {
358
365
  const inputData = (0, _utils2.parseTransactionData)(transaction.data);
359
366
  historyItem.to = inputData.to;
360
- const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
367
+ const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
361
368
  historyItem.amount = {
362
369
  value: inputData.value || '0',
363
370
  decimals: sendingTokenInfo.decimals || 0,
@@ -370,7 +377,7 @@ class TransactionService {
370
377
  {
371
378
  const inputData = (0, _utils2.parseTransactionData)(transaction.data);
372
379
  historyItem.to = inputData.to;
373
- const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
380
+ const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
374
381
  historyItem.amount = {
375
382
  value: inputData.value || '0',
376
383
  decimals: sendingTokenInfo.decimals || 0,
@@ -383,7 +390,7 @@ class TransactionService {
383
390
  {
384
391
  const inputData = (0, _utils2.parseTransactionData)(transaction.data);
385
392
  historyItem.to = inputData.to;
386
- const sendingTokenInfo = this.chainService.getAssetBySlug(inputData.tokenSlug);
393
+ const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
387
394
  historyItem.amount = {
388
395
  value: inputData.value || '0',
389
396
  decimals: sendingTokenInfo.decimals || 0,
@@ -432,17 +439,29 @@ class TransactionService {
432
439
  case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
433
440
  {
434
441
  const data = (0, _utils2.parseTransactionData)(transaction.data);
435
- historyItem.to = data.validatorAddress || '';
436
- historyItem.amount = {
437
- ...baseNativeAmount,
438
- value: data.amount || '0'
439
- };
442
+ if (data.isLiquidStaking && data.derivativeTokenInfo && data.exchangeRate && data.inputTokenInfo) {
443
+ historyItem.amount = {
444
+ decimals: (0, _utils._getAssetDecimals)(data.derivativeTokenInfo),
445
+ symbol: (0, _utils._getAssetSymbol)(data.derivativeTokenInfo),
446
+ value: data.amount
447
+ };
448
+ historyItem.additionalInfo = {
449
+ inputTokenSlug: data.inputTokenInfo.slug,
450
+ exchangeRate: data.exchangeRate
451
+ };
452
+ } else {
453
+ historyItem.to = data.validatorAddress || '';
454
+ historyItem.amount = {
455
+ ...baseNativeAmount,
456
+ value: data.amount || '0'
457
+ };
458
+ }
440
459
  }
441
460
  break;
442
461
  case _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL:
443
462
  {
444
463
  const data = (0, _utils2.parseTransactionData)(transaction.data);
445
- historyItem.to = data.nominatorMetadata.address || '';
464
+ historyItem.to = data.address || '';
446
465
  historyItem.amount = {
447
466
  ...baseNativeAmount,
448
467
  value: data.amount || '0'
@@ -461,7 +480,7 @@ class TransactionService {
461
480
  case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
462
481
  {
463
482
  const data = (0, _utils2.parseTransactionData)(transaction.data);
464
- historyItem.to = data.validatorAddress || '';
483
+ historyItem.to = data.unstakingInfo.validatorAddress || '';
465
484
  historyItem.amount = {
466
485
  ...baseNativeAmount,
467
486
  value: data.unstakingInfo.claimable || '0'
@@ -486,6 +505,68 @@ class TransactionService {
486
505
  historyItem.to = (data === null || data === void 0 ? void 0 : data.to) || '';
487
506
  break;
488
507
  }
508
+ case _KoniTypes.ExtrinsicType.MINT_STDOT:
509
+ case _KoniTypes.ExtrinsicType.MINT_QDOT:
510
+ case _KoniTypes.ExtrinsicType.MINT_LDOT:
511
+ case _KoniTypes.ExtrinsicType.MINT_SDOT:
512
+
513
+ // eslint-disable-next-line no-fallthrough
514
+ case _KoniTypes.ExtrinsicType.MINT_VDOT:
515
+ {
516
+ const data = (0, _utils2.parseTransactionData)(transaction.data);
517
+ const params = data.data;
518
+ const inputTokenInfo = this.state.chainService.getAssetBySlug(params.inputTokenSlug);
519
+ const isFeePaidWithInputAsset = params.feeTokenSlug === params.inputTokenSlug;
520
+ historyItem.amount = {
521
+ value: params.amount,
522
+ symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
523
+ decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
524
+ };
525
+ historyItem.additionalInfo = {
526
+ derivativeTokenSlug: params.derivativeTokenSlug,
527
+ exchangeRate: params.exchangeRate
528
+ };
529
+ eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingEvents)(historyItem, eventLogs, inputTokenInfo, chainInfo, isFeePaidWithInputAsset, extrinsicType);
530
+ break;
531
+ }
532
+ case _KoniTypes.ExtrinsicType.REDEEM_QDOT:
533
+ {
534
+ const data = (0, _utils2.parseTransactionData)(transaction.data);
535
+ const yieldPoolInfo = data.yieldPoolInfo;
536
+ if (yieldPoolInfo.metadata.derivativeAssets) {
537
+ const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
538
+ const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
539
+ historyItem.amount = {
540
+ value: data.amount,
541
+ symbol: (0, _utils._getAssetSymbol)(inputTokenInfo),
542
+ decimals: (0, _utils._getAssetDecimals)(inputTokenInfo)
543
+ };
544
+ eventLogs && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
545
+ }
546
+ break;
547
+ }
548
+ case _KoniTypes.ExtrinsicType.REDEEM_STDOT:
549
+ case _KoniTypes.ExtrinsicType.REDEEM_LDOT:
550
+ case _KoniTypes.ExtrinsicType.REDEEM_SDOT:
551
+
552
+ // eslint-disable-next-line no-fallthrough
553
+ case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
554
+ {
555
+ const data = (0, _utils2.parseTransactionData)(transaction.data);
556
+ const yieldPoolInfo = data.yieldPoolInfo;
557
+ if (yieldPoolInfo.metadata.derivativeAssets) {
558
+ const derivativeTokenSlug = yieldPoolInfo.metadata.derivativeAssets[0];
559
+ const derivativeTokenInfo = this.state.chainService.getAssetBySlug(derivativeTokenSlug);
560
+ const chainInfo = this.state.chainService.getChainInfoByKey(data.yieldPoolInfo.chain);
561
+ historyItem.amount = {
562
+ value: data.amount,
563
+ symbol: (0, _utils._getAssetSymbol)(derivativeTokenInfo),
564
+ decimals: (0, _utils._getAssetDecimals)(derivativeTokenInfo)
565
+ };
566
+ eventLogs && !(0, _utils._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
567
+ }
568
+ break;
569
+ }
489
570
  case _KoniTypes.ExtrinsicType.UNKNOWN:
490
571
  break;
491
572
  }
@@ -533,7 +614,7 @@ class TransactionService {
533
614
  });
534
615
 
535
616
  // Create Input History Transaction History
536
- this.historyService.insertHistories(this.transactionToHistories(id, startBlock, nonce)).catch(console.error);
617
+ this.state.historyService.insertHistories(this.transactionToHistories(id, startBlock, nonce)).catch(console.error);
537
618
  console.debug(`Transaction "${id}" is sent`);
538
619
  }
539
620
  onHasTransactionHash(_ref3) {
@@ -551,8 +632,12 @@ class TransactionService {
551
632
  this.updateTransaction(id, updateData);
552
633
 
553
634
  // In this case transaction id is the same as extrinsic hash and will change after below update
554
- this.historyService.updateHistoryByExtrinsicHash(id, updateData).catch(console.error);
635
+ this.state.historyService.updateHistoryByExtrinsicHash(id, updateData).catch(console.error);
555
636
  console.debug(`Transaction "${id}" is submitted with hash ${extrinsicHash || ''}`);
637
+ const transaction = this.getTransaction(id);
638
+ if ([_KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.JOIN_YIELD_POOL, _KoniTypes.ExtrinsicType.MINT_LDOT, _KoniTypes.ExtrinsicType.MINT_QDOT, _KoniTypes.ExtrinsicType.MINT_SDOT, _KoniTypes.ExtrinsicType.MINT_VDOT].includes(transaction.extrinsicType)) {
639
+ this.handlePostEarningTransaction(id);
640
+ }
556
641
  }
557
642
  handlePostProcessing(id) {
558
643
  // must be done after success/failure to make sure the transaction is finalized
@@ -561,15 +646,15 @@ class TransactionService {
561
646
  const inputData = (0, _utils2.parseTransactionData)(transaction.data);
562
647
  try {
563
648
  const sender = _uiKeyring.default.getPair(inputData.senderAddress);
564
- sender && this.databaseService.handleNftTransfer(transaction.chain, [sender.address, _constants.ALL_ACCOUNT_KEY], inputData.nftItem).then(() => {
565
- this.eventService.emit('transaction.transferNft', undefined);
649
+ sender && this.state.dbService.handleNftTransfer(transaction.chain, [sender.address, _constants.ALL_ACCOUNT_KEY], inputData.nftItem).then(() => {
650
+ this.state.eventService.emit('transaction.transferNft', undefined);
566
651
  }).catch(console.error);
567
652
  } catch (e) {
568
653
  console.error(e);
569
654
  }
570
655
  try {
571
656
  const recipient = _uiKeyring.default.getPair(inputData.recipientAddress);
572
- recipient && this.databaseService.addNft(recipient.address, {
657
+ recipient && this.state.dbService.addNft(recipient.address, {
573
658
  ...inputData.nftItem,
574
659
  owner: recipient.address
575
660
  }).catch(console.error);
@@ -577,7 +662,7 @@ class TransactionService {
577
662
  console.error(e);
578
663
  }
579
664
  } else if ([_KoniTypes.ExtrinsicType.STAKING_BOND, _KoniTypes.ExtrinsicType.STAKING_UNBOND, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD, _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL].includes(transaction.extrinsicType)) {
580
- this.eventService.emit('transaction.submitStaking', transaction.chain);
665
+ this.state.eventService.emit('transaction.submitStaking', transaction.chain);
581
666
  }
582
667
  }
583
668
  onSuccess(_ref4) {
@@ -594,14 +679,14 @@ class TransactionService {
594
679
  });
595
680
 
596
681
  // Write success transaction history
597
- this.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
682
+ this.state.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
598
683
  extrinsicHash,
599
684
  status: _KoniTypes.ExtrinsicStatus.SUCCESS,
600
685
  blockNumber: blockNumber || 0,
601
686
  blockHash: blockHash || ''
602
687
  }).catch(console.error);
603
- const info = (0, _util.isHex)(extrinsicHash) ? extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.chainService.getChainInfoMap());
604
- this.notificationService.notify({
688
+ const info = (0, _util.isHex)(extrinsicHash) ? extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.state.chainService.getChainInfoMap());
689
+ this.state.notificationService.notify({
605
690
  type: _KoniTypes.NotificationType.SUCCESS,
606
691
  title: (0, _i18next.t)('Transaction completed'),
607
692
  message: (0, _i18next.t)('Transaction {{info}} completed', {
@@ -614,7 +699,7 @@ class TransactionService {
614
699
  },
615
700
  notifyViaBrowser: true
616
701
  });
617
- this.eventService.emit('transaction.done', transaction);
702
+ this.state.eventService.emit('transaction.done', transaction);
618
703
  }
619
704
  onFailed(_ref5) {
620
705
  let {
@@ -634,14 +719,14 @@ class TransactionService {
634
719
  });
635
720
 
636
721
  // Write failed transaction history
637
- this.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
722
+ this.state.historyService.updateHistoryByExtrinsicHash(transaction.extrinsicHash, {
638
723
  extrinsicHash: extrinsicHash || transaction.extrinsicHash,
639
724
  status: nextStatus,
640
725
  blockNumber: blockNumber || 0,
641
726
  blockHash: blockHash || ''
642
727
  }).catch(console.error);
643
- const info = (0, _util.isHex)(transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash) ? transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.chainService.getChainInfoMap());
644
- this.notificationService.notify({
728
+ const info = (0, _util.isHex)(transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash) ? transaction === null || transaction === void 0 ? void 0 : transaction.extrinsicHash : (0, _helpers.getBaseTransactionInfo)(transaction, this.state.chainService.getChainInfoMap());
729
+ this.state.notificationService.notify({
645
730
  type: _KoniTypes.NotificationType.ERROR,
646
731
  title: (0, _i18next.t)('Transaction failed'),
647
732
  message: (0, _i18next.t)('Transaction {{info}} failed', {
@@ -655,11 +740,11 @@ class TransactionService {
655
740
  notifyViaBrowser: true
656
741
  });
657
742
  }
658
- this.eventService.emit('transaction.failed', transaction);
743
+ this.state.eventService.emit('transaction.failed', transaction);
659
744
  }
660
745
  generateHashPayload(chain, transaction) {
661
746
  var _transaction$nonce;
662
- const chainInfo = this.chainService.getChainInfoByKey(chain);
747
+ const chainInfo = this.state.chainService.getChainInfoByKey(chain);
663
748
  const txObject = {
664
749
  nonce: (_transaction$nonce = transaction.nonce) !== null && _transaction$nonce !== void 0 ? _transaction$nonce : 0,
665
750
  gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0, _eth.anyNumberToBN)(transaction.gasPrice).toString(16)),
@@ -681,8 +766,8 @@ class TransactionService {
681
766
  url
682
767
  } = _ref6;
683
768
  const payload = transaction;
684
- const evmApi = this.chainService.getEvmApi(chain);
685
- const chainInfo = this.chainService.getChainInfoByKey(chain);
769
+ const evmApi = this.state.chainService.getEvmApi(chain);
770
+ const chainInfo = this.state.chainService.getChainInfoByKey(chain);
686
771
  const accountPair = _uiKeyring.default.getPair(address);
687
772
  const account = {
688
773
  address,
@@ -712,7 +797,7 @@ class TransactionService {
712
797
 
713
798
  // Set unique nonce to avoid transaction errors
714
799
  if (!payload.nonce) {
715
- const evmApi = this.chainService.getEvmApi(chain);
800
+ const evmApi = this.state.chainService.getEvmApi(chain);
716
801
  payload.nonce = await evmApi.api.eth.getTransactionCount(address);
717
802
  }
718
803
  if (!payload.chainId) {
@@ -747,7 +832,7 @@ class TransactionService {
747
832
  extrinsicHash: id
748
833
  };
749
834
  if (isInjected) {
750
- this.requestService.addConfirmation(id, url || _constants3.EXTENSION_REQUEST_URL, 'evmWatchTransactionRequest', payload, {}).then(async _ref7 => {
835
+ this.state.requestService.addConfirmation(id, url || _constants2.EXTENSION_REQUEST_URL, 'evmWatchTransactionRequest', payload, {}).then(async _ref7 => {
751
836
  let {
752
837
  isApproved,
753
838
  payload
@@ -756,7 +841,7 @@ class TransactionService {
756
841
  if (!payload) {
757
842
  throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.UNAUTHORIZED, 'Bad signature');
758
843
  }
759
- const web3Api = this.chainService.getEvmApi(chain).api;
844
+ const web3Api = this.state.chainService.getEvmApi(chain).api;
760
845
 
761
846
  // Emit signed event
762
847
  emitter.emit('signed', eventData);
@@ -812,7 +897,7 @@ class TransactionService {
812
897
  emitter.emit('error', eventData);
813
898
  });
814
899
  } else {
815
- this.requestService.addConfirmation(id, url || _constants3.EXTENSION_REQUEST_URL, 'evmSendTransactionRequest', payload, {}).then(async _ref8 => {
900
+ this.state.requestService.addConfirmation(id, url || _constants2.EXTENSION_REQUEST_URL, 'evmSendTransactionRequest', payload, {}).then(async _ref8 => {
816
901
  let {
817
902
  isApproved,
818
903
  payload
@@ -822,7 +907,7 @@ class TransactionService {
822
907
  if (!payload) {
823
908
  throw new _EvmProviderError.EvmProviderError(_KoniTypes.EvmProviderErrorType.UNAUTHORIZED, (0, _i18next.t)('Failed to sign'));
824
909
  }
825
- const web3Api = this.chainService.getEvmApi(chain).api;
910
+ const web3Api = this.state.chainService.getEvmApi(chain).api;
826
911
  if (!isExternal) {
827
912
  signedTransaction = payload;
828
913
  } else {
@@ -890,7 +975,7 @@ class TransactionService {
890
975
  transaction.signAsync(address, {
891
976
  signer: {
892
977
  signPayload: async payload => {
893
- const signing = await this.requestService.signInternalTransaction(id, address, url || _constants3.EXTENSION_REQUEST_URL, payload);
978
+ const signing = await this.state.requestService.signInternalTransaction(id, address, url || _constants2.EXTENSION_REQUEST_URL, payload);
894
979
  return {
895
980
  id: new Date().getTime(),
896
981
  signature: signing.signature
@@ -902,7 +987,7 @@ class TransactionService {
902
987
  emitter.emit('signed', eventData);
903
988
 
904
989
  // Send transaction
905
- const api = this.chainService.getSubstrateApi(chain);
990
+ const api = this.state.chainService.getSubstrateApi(chain);
906
991
  eventData.nonce = rs.nonce.toNumber();
907
992
  eventData.startBlock = (await api.api.query.system.number()).toPrimitive();
908
993
  this.handleTransactionTimeout(emitter, eventData);
@@ -966,7 +1051,7 @@ class TransactionService {
966
1051
  emitter.emit('error', eventData);
967
1052
  clearTimeout(timeout);
968
1053
  }
969
- }, _constants4.TRANSACTION_TIMEOUT);
1054
+ }, _constants3.TRANSACTION_TIMEOUT);
970
1055
  emitter.once('success', () => {
971
1056
  clearTimeout(timeout);
972
1057
  });
@@ -974,6 +1059,27 @@ class TransactionService {
974
1059
  clearTimeout(timeout);
975
1060
  });
976
1061
  }
1062
+ handlePostEarningTransaction(id) {
1063
+ const transaction = this.getTransaction(id);
1064
+ const data = transaction.data;
1065
+ const slug = data.data.slug;
1066
+ const poolHandler = this.state.earningService.getPoolHandler(slug);
1067
+ if (poolHandler) {
1068
+ const type = poolHandler.type;
1069
+ if (type === _types.YieldPoolType.NATIVE_STAKING) {
1070
+ return;
1071
+ }
1072
+ } else {
1073
+ return;
1074
+ }
1075
+ this.state.mintCampaignService.unlockDotCampaign.mintNft({
1076
+ transactionId: id,
1077
+ address: transaction.address,
1078
+ slug: slug,
1079
+ network: transaction.chain,
1080
+ extrinsicHash: transaction.extrinsicHash
1081
+ }).catch(console.error);
1082
+ }
977
1083
  resetWallet() {
978
1084
  this.transactionSubject.next({});
979
1085
  }
@@ -11,6 +11,7 @@ var _utils = require("@subwallet/extension-base/services/chain-service/utils");
11
11
 
12
12
  // @ts-ignore
13
13
  function parseTransactionData(data) {
14
+ // @ts-ignore
14
15
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
15
16
  return data;
16
17
  }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _unlockDot = require("./unlock-dot");
7
+ Object.keys(_unlockDot).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _unlockDot[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _unlockDot[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1 @@
1
+ "use strict";