@subwallet/extension-base 1.1.35-0 → 1.1.35-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/background/KoniTypes.d.ts +111 -69
  2. package/background/KoniTypes.js +19 -13
  3. package/background/errors/TransactionError.js +9 -0
  4. package/cjs/background/KoniTypes.js +20 -16
  5. package/cjs/background/errors/TransactionError.js +9 -0
  6. package/cjs/constants/index.js +19 -4
  7. package/cjs/koni/api/dotsama/balance.js +464 -0
  8. package/cjs/koni/api/nft/config.js +33 -23
  9. package/cjs/koni/api/nft/index.js +14 -0
  10. package/cjs/koni/api/nft/nft.js +1 -22
  11. package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
  12. package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
  13. package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
  14. package/cjs/koni/api/staking/bonding/amplitude.js +19 -16
  15. package/cjs/koni/api/staking/bonding/astar.js +11 -10
  16. package/cjs/koni/api/staking/bonding/index.js +4 -1
  17. package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
  18. package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
  19. package/cjs/koni/api/staking/bonding/utils.js +104 -86
  20. package/cjs/koni/api/staking/index.js +6 -5
  21. package/cjs/koni/api/staking/paraChain.js +6 -5
  22. package/cjs/koni/api/staking/relayChain.js +3 -2
  23. package/cjs/koni/api/yield/helper/utils.js +46 -0
  24. package/cjs/koni/background/cron.js +3 -21
  25. package/cjs/koni/background/handlers/Extension.js +368 -69
  26. package/cjs/koni/background/handlers/State.js +18 -12
  27. package/cjs/koni/background/handlers/index.js +4 -2
  28. package/cjs/koni/background/subscription.js +7 -104
  29. package/cjs/services/campaign-service/index.js +9 -6
  30. package/cjs/services/chain-service/constants.js +1 -16
  31. package/cjs/services/chain-service/index.js +6 -2
  32. package/cjs/services/chain-service/utils.js +7 -1
  33. package/cjs/services/earning-service/constants/chains.js +30 -0
  34. package/cjs/services/earning-service/constants/index.js +27 -0
  35. package/cjs/services/earning-service/constants/step.js +18 -0
  36. package/cjs/services/earning-service/handlers/base.js +262 -0
  37. package/cjs/services/earning-service/handlers/index.js +60 -0
  38. package/cjs/services/earning-service/handlers/lending/base.js +81 -0
  39. package/cjs/services/earning-service/handlers/lending/index.js +13 -0
  40. package/cjs/services/earning-service/handlers/lending/interlay.js +192 -0
  41. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +240 -0
  42. package/cjs/services/earning-service/handlers/liquid-staking/base.js +97 -0
  43. package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +140 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +298 -0
  45. package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
  46. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +227 -0
  47. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +404 -0
  48. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +434 -0
  49. package/cjs/services/earning-service/handlers/native-staking/astar.js +466 -0
  50. package/cjs/services/earning-service/handlers/native-staking/base-para.js +146 -0
  51. package/cjs/services/earning-service/handlers/native-staking/base.js +161 -0
  52. package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
  53. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +390 -0
  54. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +567 -0
  55. package/cjs/services/earning-service/handlers/nomination-pool/index.js +566 -0
  56. package/cjs/services/earning-service/handlers/special.js +493 -0
  57. package/cjs/services/earning-service/service.js +733 -0
  58. package/cjs/services/earning-service/utils/index.js +128 -0
  59. package/cjs/services/event-service/index.js +5 -0
  60. package/cjs/services/keyring-service/index.js +14 -2
  61. package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
  62. package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
  63. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +17 -0
  64. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  65. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +17 -0
  66. package/cjs/services/migration-service/scripts/MigrateProvider.js +29 -0
  67. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  68. package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
  69. package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
  70. package/cjs/services/migration-service/scripts/index.js +6 -1
  71. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
  72. package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
  73. package/cjs/services/mint-campaign-service/constants.js +11 -0
  74. package/cjs/services/mint-campaign-service/index.js +18 -0
  75. package/cjs/services/notification-service/NotificationService.js +3 -2
  76. package/cjs/services/request-service/handler/PopupHandler.js +2 -3
  77. package/cjs/services/storage-service/DatabaseService.js +63 -0
  78. package/cjs/services/storage-service/databases/index.js +4 -0
  79. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  80. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
  81. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +71 -0
  82. package/cjs/services/storage-service/index.js +241 -0
  83. package/cjs/services/subscan-service/index.js +16 -0
  84. package/cjs/services/transaction-service/event-parser/index.js +58 -0
  85. package/cjs/services/transaction-service/helpers/index.js +3 -1
  86. package/cjs/services/transaction-service/index.js +249 -75
  87. package/cjs/services/transaction-service/utils.js +1 -0
  88. package/cjs/types/campaigns/index.js +16 -0
  89. package/cjs/types/campaigns/unlock-dot.js +1 -0
  90. package/cjs/types/index.js +44 -0
  91. package/cjs/types/ordinal.js +1 -0
  92. package/cjs/types/transaction.js +1 -0
  93. package/cjs/types/yield/actions/index.js +27 -0
  94. package/cjs/types/yield/actions/join/index.js +38 -0
  95. package/cjs/types/yield/actions/join/step.js +47 -0
  96. package/cjs/types/yield/actions/join/submit.js +1 -0
  97. package/cjs/types/yield/actions/join/validate.js +16 -0
  98. package/cjs/types/yield/actions/others.js +1 -0
  99. package/cjs/types/yield/index.js +27 -0
  100. package/cjs/types/yield/info/account/index.js +49 -0
  101. package/cjs/types/yield/info/account/info.js +1 -0
  102. package/cjs/types/yield/info/account/reward.js +1 -0
  103. package/cjs/types/yield/info/account/target.js +32 -0
  104. package/cjs/types/yield/info/account/unstake.js +27 -0
  105. package/cjs/types/yield/info/base.js +41 -0
  106. package/cjs/types/yield/info/chain/index.js +27 -0
  107. package/cjs/types/yield/info/chain/info.js +1 -0
  108. package/cjs/types/yield/info/chain/target.js +1 -0
  109. package/cjs/types/yield/info/index.js +49 -0
  110. package/cjs/types/yield/info/pallet.js +15 -0
  111. package/cjs/types.js +1 -0
  112. package/cjs/utils/address.js +34 -0
  113. package/cjs/utils/environment.js +23 -28
  114. package/cjs/utils/fetchStaticCache.js +22 -0
  115. package/cjs/utils/fetchStaticData.js +2 -1
  116. package/cjs/utils/index.js +94 -10
  117. package/cjs/utils/keyring.js +57 -0
  118. package/cjs/utils/mv3.js +14 -0
  119. package/cjs/utils/number.js +6 -2
  120. package/cjs/utils/object.js +12 -0
  121. package/constants/index.d.ts +6 -1
  122. package/constants/index.js +6 -1
  123. package/koni/api/nft/config.js +33 -23
  124. package/koni/api/nft/index.js +15 -1
  125. package/koni/api/nft/nft.js +2 -23
  126. package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
  127. package/koni/api/nft/ordinal_nft/constants.js +12 -0
  128. package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
  129. package/koni/api/nft/ordinal_nft/index.js +114 -0
  130. package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
  131. package/koni/api/nft/ordinal_nft/utils.js +33 -0
  132. package/koni/api/staking/bonding/amplitude.js +13 -10
  133. package/koni/api/staking/bonding/astar.js +9 -8
  134. package/koni/api/staking/bonding/index.d.ts +1 -1
  135. package/koni/api/staking/bonding/index.js +5 -1
  136. package/koni/api/staking/bonding/paraChain.js +12 -10
  137. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  138. package/koni/api/staking/bonding/relayChain.js +33 -30
  139. package/koni/api/staking/bonding/utils.d.ts +15 -38
  140. package/koni/api/staking/bonding/utils.js +85 -69
  141. package/koni/api/staking/index.js +2 -1
  142. package/koni/api/staking/paraChain.js +7 -6
  143. package/koni/api/staking/relayChain.js +4 -3
  144. package/koni/api/yield/helper/utils.d.ts +10 -0
  145. package/koni/api/yield/helper/utils.js +32 -0
  146. package/koni/background/cron.d.ts +0 -4
  147. package/koni/background/cron.js +4 -22
  148. package/koni/background/handlers/Extension.d.ts +17 -1
  149. package/koni/background/handlers/Extension.js +327 -30
  150. package/koni/background/handlers/State.d.ts +6 -1
  151. package/koni/background/handlers/State.js +17 -12
  152. package/koni/background/handlers/index.js +4 -2
  153. package/koni/background/subscription.d.ts +1 -6
  154. package/koni/background/subscription.js +8 -104
  155. package/package.json +326 -3
  156. package/services/campaign-service/index.js +9 -6
  157. package/services/chain-service/constants.d.ts +0 -12
  158. package/services/chain-service/constants.js +0 -14
  159. package/services/chain-service/index.js +6 -2
  160. package/services/chain-service/utils.d.ts +1 -0
  161. package/services/chain-service/utils.js +5 -1
  162. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
  163. package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
  164. package/services/earning-service/constants/chains.d.ts +15 -0
  165. package/services/earning-service/constants/chains.js +22 -0
  166. package/services/earning-service/constants/index.d.ts +2 -0
  167. package/services/earning-service/constants/index.js +5 -0
  168. package/services/earning-service/constants/step.d.ts +3 -0
  169. package/services/earning-service/constants/step.js +10 -0
  170. package/services/earning-service/handlers/base.d.ts +113 -0
  171. package/services/earning-service/handlers/base.js +256 -0
  172. package/services/earning-service/handlers/index.d.ts +5 -0
  173. package/services/earning-service/handlers/index.js +8 -0
  174. package/services/earning-service/handlers/lending/base.d.ts +8 -0
  175. package/services/earning-service/handlers/lending/base.js +73 -0
  176. package/services/earning-service/handlers/lending/index.d.ts +1 -0
  177. package/services/earning-service/handlers/lending/index.js +4 -0
  178. package/services/earning-service/handlers/lending/interlay.d.ts +24 -0
  179. package/services/earning-service/handlers/lending/interlay.js +184 -0
  180. package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
  181. package/services/earning-service/handlers/liquid-staking/acala.js +232 -0
  182. package/services/earning-service/handlers/liquid-staking/base.d.ts +11 -0
  183. package/services/earning-service/handlers/liquid-staking/base.js +89 -0
  184. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +46 -0
  185. package/services/earning-service/handlers/liquid-staking/bifrost.js +287 -0
  186. package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
  187. package/services/earning-service/handlers/liquid-staking/index.js +7 -0
  188. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +26 -0
  189. package/services/earning-service/handlers/liquid-staking/parallel.js +219 -0
  190. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +34 -0
  191. package/services/earning-service/handlers/liquid-staking/stella-swap.js +394 -0
  192. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  193. package/services/earning-service/handlers/native-staking/amplitude.js +425 -0
  194. package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
  195. package/services/earning-service/handlers/native-staking/astar.js +456 -0
  196. package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
  197. package/services/earning-service/handlers/native-staking/base-para.js +138 -0
  198. package/services/earning-service/handlers/native-staking/base.d.ts +21 -0
  199. package/services/earning-service/handlers/native-staking/base.js +152 -0
  200. package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
  201. package/services/earning-service/handlers/native-staking/index.js +7 -0
  202. package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
  203. package/services/earning-service/handlers/native-staking/para-chain.js +382 -0
  204. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
  205. package/services/earning-service/handlers/native-staking/relay-chain.js +558 -0
  206. package/services/earning-service/handlers/nomination-pool/index.d.ts +36 -0
  207. package/services/earning-service/handlers/nomination-pool/index.js +556 -0
  208. package/services/earning-service/handlers/special.d.ts +64 -0
  209. package/services/earning-service/handlers/special.js +485 -0
  210. package/services/earning-service/service.d.ts +94 -0
  211. package/services/earning-service/service.js +722 -0
  212. package/services/earning-service/utils/index.d.ts +18 -0
  213. package/services/earning-service/utils/index.js +112 -0
  214. package/services/event-service/index.d.ts +2 -0
  215. package/services/event-service/index.js +5 -0
  216. package/services/event-service/types.d.ts +9 -0
  217. package/services/keyring-service/index.d.ts +2 -1
  218. package/services/keyring-service/index.js +14 -2
  219. package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
  220. package/services/migration-service/scripts/DeleteEarningData.js +13 -0
  221. package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
  222. package/services/migration-service/scripts/EnableEarningChains.js +13 -0
  223. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  224. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  225. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
  226. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
  227. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
  228. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
  229. package/services/migration-service/scripts/index.js +6 -1
  230. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
  231. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
  232. package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
  233. package/services/mint-campaign-service/campaigns/index.js +4 -0
  234. package/services/mint-campaign-service/constants.d.ts +1 -0
  235. package/services/mint-campaign-service/constants.js +4 -0
  236. package/services/mint-campaign-service/index.d.ts +7 -0
  237. package/services/mint-campaign-service/index.js +11 -0
  238. package/services/notification-service/NotificationService.js +3 -2
  239. package/services/request-service/handler/PopupHandler.js +3 -4
  240. package/services/storage-service/DatabaseService.d.ts +22 -1
  241. package/services/storage-service/DatabaseService.js +63 -0
  242. package/services/storage-service/databases/index.d.ts +3 -1
  243. package/services/storage-service/databases/index.js +4 -0
  244. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  245. package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
  246. package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
  247. package/services/storage-service/db-stores/YieldPositionStore.d.ts +11 -0
  248. package/services/storage-service/db-stores/YieldPositionStore.js +63 -0
  249. package/services/subscan-service/index.d.ts +3 -2
  250. package/services/subscan-service/index.js +15 -0
  251. package/services/subscan-service/types.d.ts +20 -0
  252. package/services/transaction-service/event-parser/index.d.ts +3 -1
  253. package/services/transaction-service/event-parser/index.js +57 -1
  254. package/services/transaction-service/helpers/index.js +3 -1
  255. package/services/transaction-service/index.d.ts +6 -13
  256. package/services/transaction-service/index.js +247 -73
  257. package/services/transaction-service/types.d.ts +2 -0
  258. package/services/transaction-service/utils.js +1 -0
  259. package/types/campaigns/index.d.ts +1 -0
  260. package/types/campaigns/index.js +4 -0
  261. package/types/campaigns/unlock-dot.d.ts +71 -0
  262. package/types/campaigns/unlock-dot.js +1 -0
  263. package/types/index.d.ts +5 -0
  264. package/types/index.js +5 -1
  265. package/types/ordinal.d.ts +69 -0
  266. package/types/ordinal.js +1 -0
  267. package/types/transaction.d.ts +3 -0
  268. package/types/transaction.js +1 -0
  269. package/types/yield/actions/index.d.ts +2 -0
  270. package/types/yield/actions/index.js +5 -0
  271. package/types/yield/actions/join/index.d.ts +3 -0
  272. package/types/yield/actions/join/index.js +6 -0
  273. package/types/yield/actions/join/step.d.ts +95 -0
  274. package/types/yield/actions/join/step.js +46 -0
  275. package/types/yield/actions/join/submit.d.ts +58 -0
  276. package/types/yield/actions/join/submit.js +1 -0
  277. package/types/yield/actions/join/validate.d.ts +18 -0
  278. package/types/yield/actions/join/validate.js +10 -0
  279. package/types/yield/actions/others.d.ts +85 -0
  280. package/types/yield/actions/others.js +1 -0
  281. package/types/yield/index.d.ts +2 -0
  282. package/types/yield/index.js +5 -0
  283. package/types/yield/info/account/index.d.ts +4 -0
  284. package/types/yield/info/account/index.js +7 -0
  285. package/types/yield/info/account/info.d.ts +92 -0
  286. package/types/yield/info/account/info.js +1 -0
  287. package/types/yield/info/account/reward.d.ts +47 -0
  288. package/types/yield/info/account/reward.js +1 -0
  289. package/types/yield/info/account/target.d.ts +43 -0
  290. package/types/yield/info/account/target.js +27 -0
  291. package/types/yield/info/account/unstake.d.ts +31 -0
  292. package/types/yield/info/account/unstake.js +22 -0
  293. package/types/yield/info/base.d.ts +45 -0
  294. package/types/yield/info/base.js +36 -0
  295. package/types/yield/info/chain/index.d.ts +2 -0
  296. package/types/yield/info/chain/index.js +5 -0
  297. package/types/yield/info/chain/info.d.ts +252 -0
  298. package/types/yield/info/chain/info.js +1 -0
  299. package/types/yield/info/chain/target.d.ts +37 -0
  300. package/types/yield/info/chain/target.js +1 -0
  301. package/types/yield/info/index.d.ts +4 -0
  302. package/types/yield/info/index.js +7 -0
  303. package/types/yield/info/pallet.d.ts +143 -0
  304. package/types/yield/info/pallet.js +9 -0
  305. package/utils/environment.d.ts +9 -2
  306. package/utils/environment.js +14 -26
  307. package/utils/fetchStaticCache.d.ts +1 -0
  308. package/utils/fetchStaticCache.js +14 -0
  309. package/utils/fetchStaticData.js +2 -1
  310. package/utils/index.d.ts +5 -1
  311. package/utils/index.js +53 -3
  312. package/utils/mv3.d.ts +2 -0
  313. package/utils/mv3.js +6 -0
  314. package/utils/number.d.ts +2 -1
  315. package/utils/number.js +2 -1
  316. package/utils/object.d.ts +1 -0
  317. package/utils/object.js +6 -0
@@ -8,7 +8,9 @@ import ChainStakingMetadataStore from '@subwallet/extension-base/services/storag
8
8
  import MantaPayStore from '@subwallet/extension-base/services/storage-service/db-stores/MantaPay';
9
9
  import NominatorMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/NominatorMetadata';
10
10
  import { HistoryQuery } from '@subwallet/extension-base/services/storage-service/db-stores/Transaction';
11
- import { BalanceItem } from '@subwallet/extension-base/types';
11
+ import YieldPoolStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPoolStore';
12
+ import YieldPositionStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPositionStore';
13
+ import { BalanceItem, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
12
14
  import { Subscription } from 'dexie';
13
15
  import { DexieExportJsonStructure } from 'dexie-export-import';
14
16
  export declare const DEXIE_BACKUP_TABLES: string[];
@@ -27,6 +29,8 @@ export default class DatabaseService {
27
29
  metadata: MetadataStore;
28
30
  chain: ChainStore;
29
31
  asset: AssetStore;
32
+ yieldPoolInfo: YieldPoolStore;
33
+ yieldPosition: YieldPositionStore;
30
34
  chainStakingMetadata: ChainStakingMetadataStore;
31
35
  nominatorMetadata: NominatorMetadataStore;
32
36
  mantaPay: MantaPayStore;
@@ -35,6 +39,7 @@ export default class DatabaseService {
35
39
  private logger;
36
40
  private nftSubscription;
37
41
  private stakingSubscription;
42
+ private yieldInfoSubscription;
38
43
  constructor(eventService: EventService);
39
44
  updatePriceStore(priceData: PriceJson): Promise<void>;
40
45
  getPriceStore(): Promise<PriceJson | undefined>;
@@ -83,6 +88,22 @@ export default class DatabaseService {
83
88
  subscribeMantaPayConfig(chain: string, callback: (data: MantaPayConfig[]) => void): void;
84
89
  getMantaPayConfig(chain: string): Promise<any[]>;
85
90
  getMantaPayFirstConfig(chain: string): Promise<any>;
91
+ removeOldEarningData(): Promise<void>;
92
+ updateYieldPoolStore(data: YieldPoolInfo): Promise<void>;
93
+ updateYieldPoolsStore(data: YieldPoolInfo[]): Promise<void>;
94
+ deleteYieldPoolInfo(slugs: string[]): Promise<void>;
95
+ getYieldPools(): Promise<YieldPoolInfo[]>;
96
+ getYieldPoolStakingInfo(chain: string, poolType: YieldPoolType): Promise<YieldPoolInfo | undefined>;
97
+ getYieldPool(slug: string): Promise<YieldPoolInfo | undefined>;
98
+ getYieldPositionByAddressAndSlug(address: string, slug: string): Promise<YieldPositionInfo | undefined>;
99
+ subscribeYieldPoolInfo(chains: string[], callback: (data: YieldPoolInfo[]) => void): Subscription;
100
+ removeYieldPositionByAddresses(addresses: string[]): import("dexie").PromiseExtended<number>;
101
+ removeYieldPositionByChains(chains: string[]): import("dexie").PromiseExtended<number>;
102
+ updateYieldPosition(data: YieldPositionInfo): Promise<void>;
103
+ updateYieldPositions(data: YieldPositionInfo[]): Promise<void>;
104
+ getYieldPositionByAddress(addresses: string[]): Promise<YieldPositionInfo[]>;
105
+ subscribeYieldPosition(addresses: string[], callback: (data: YieldPositionInfo[]) => void): Subscription;
106
+ getYieldNominationPoolPosition(addresses: string[], chains: string[]): Promise<YieldPositionInfo[]>;
86
107
  getAllCampaign(): Promise<import("@subwallet/extension-base/background/KoniTypes").CampaignData[]>;
87
108
  subscribeProcessingCampaign(): import("dexie").Observable<import("@subwallet/extension-base/background/KoniTypes").CampaignData[]>;
88
109
  getProcessingCampaign(): Promise<import("@subwallet/extension-base/background/KoniTypes").CampaignData[]>;
@@ -8,6 +8,8 @@ import CampaignStore from '@subwallet/extension-base/services/storage-service/db
8
8
  import ChainStakingMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/ChainStakingMetadata';
9
9
  import MantaPayStore from '@subwallet/extension-base/services/storage-service/db-stores/MantaPay';
10
10
  import NominatorMetadataStore from '@subwallet/extension-base/services/storage-service/db-stores/NominatorMetadata';
11
+ import YieldPoolStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPoolStore';
12
+ import YieldPositionStore from '@subwallet/extension-base/services/storage-service/db-stores/YieldPositionStore';
11
13
  import { reformatAddress } from '@subwallet/extension-base/utils';
12
14
  import { exportDB } from 'dexie-export-import';
13
15
  import { logger as createLogger } from '@polkadot/util';
@@ -34,6 +36,9 @@ export default class DatabaseService {
34
36
  metadata: new MetadataStore(this._db.metadata),
35
37
  chain: new ChainStore(this._db.chain),
36
38
  asset: new AssetStore(this._db.asset),
39
+ // yield
40
+ yieldPoolInfo: new YieldPoolStore(this._db.yieldPoolInfo),
41
+ yieldPosition: new YieldPositionStore(this._db.yieldPosition),
37
42
  // staking
38
43
  chainStakingMetadata: new ChainStakingMetadataStore(this._db.chainStakingMetadata),
39
44
  nominatorMetadata: new NominatorMetadataStore(this._db.nominatorMetadata),
@@ -274,6 +279,64 @@ export default class DatabaseService {
274
279
  return this.stores.mantaPay.getFirstConfig(chain);
275
280
  }
276
281
 
282
+ /* Earning */
283
+
284
+ async removeOldEarningData() {
285
+ await this.stores.yieldPoolInfo.clear();
286
+ await this.stores.yieldPosition.clear();
287
+ }
288
+ async updateYieldPoolStore(data) {
289
+ await this.stores.yieldPoolInfo.upsert(data);
290
+ }
291
+ async updateYieldPoolsStore(data) {
292
+ await this.stores.yieldPoolInfo.bulkUpsert(data);
293
+ }
294
+ async deleteYieldPoolInfo(slugs) {
295
+ await this.stores.yieldPoolInfo.bulkDelete(slugs);
296
+ }
297
+ async getYieldPools() {
298
+ return this.stores.yieldPoolInfo.getAll();
299
+ }
300
+ async getYieldPoolStakingInfo(chain, poolType) {
301
+ return this.stores.yieldPoolInfo.getByChainAndType(chain, poolType);
302
+ }
303
+ async getYieldPool(slug) {
304
+ return this.stores.yieldPoolInfo.getBySlug(slug);
305
+ }
306
+ async getYieldPositionByAddressAndSlug(address, slug) {
307
+ return this.stores.yieldPosition.getByAddressAndSlug(address, slug);
308
+ }
309
+ subscribeYieldPoolInfo(chains, callback) {
310
+ this.yieldInfoSubscription && this.yieldInfoSubscription.unsubscribe();
311
+ this.yieldInfoSubscription = this.stores.yieldPoolInfo.subscribeYieldPoolInfo(chains).subscribe({
312
+ next: data => callback && callback(data)
313
+ });
314
+ return this.yieldInfoSubscription;
315
+ }
316
+ removeYieldPositionByAddresses(addresses) {
317
+ return this.stores.yieldPosition.removeByAddresses(addresses);
318
+ }
319
+ removeYieldPositionByChains(chains) {
320
+ return this.stores.yieldPosition.removeByChains(chains);
321
+ }
322
+ async updateYieldPosition(data) {
323
+ await this.stores.yieldPosition.upsert(data);
324
+ }
325
+ async updateYieldPositions(data) {
326
+ await this.stores.yieldPosition.bulkUpsert(data);
327
+ }
328
+ async getYieldPositionByAddress(addresses) {
329
+ return this.stores.yieldPosition.getByAddress(addresses);
330
+ }
331
+ subscribeYieldPosition(addresses, callback) {
332
+ return this.stores.yieldPosition.subscribeYieldPositions(addresses).subscribe({
333
+ next: data => callback && callback(data)
334
+ });
335
+ }
336
+ async getYieldNominationPoolPosition(addresses, chains) {
337
+ return this.stores.yieldPosition.getByAddressAndChains(addresses, chains);
338
+ }
339
+
277
340
  /* Campaign */
278
341
 
279
342
  getAllCampaign() {
@@ -1,6 +1,6 @@
1
1
  import { _AssetRef, _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
2
2
  import { CampaignData, ChainStakingMetadata, CrowdloanItem, MetadataItem, NftCollection, NftItem, NominatorMetadata, PriceJson, StakingItem, TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
3
- import { BalanceItem } from '@subwallet/extension-base/types';
3
+ import { BalanceItem, YieldPoolInfo, YieldPositionInfo } from '@subwallet/extension-base/types';
4
4
  import Dexie, { Table } from 'dexie';
5
5
  export interface DefaultChainDoc {
6
6
  chain: string;
@@ -48,6 +48,8 @@ export default class KoniDatabase extends Dexie {
48
48
  asset: Table<_ChainAsset, object>;
49
49
  chainStakingMetadata: Table<ChainStakingMetadata, object>;
50
50
  nominatorMetadata: Table<NominatorMetadata, object>;
51
+ yieldPoolInfo: Table<YieldPoolInfo, object>;
52
+ yieldPosition: Table<YieldPositionInfo, object>;
51
53
  mantaPay: Table<IMantaPayLedger, object>;
52
54
  campaign: Table<ICampaign, object>;
53
55
  private schemaVersion;
@@ -31,6 +31,10 @@ export default class KoniDatabase extends Dexie {
31
31
  mantaPay: 'key, chain'
32
32
  });
33
33
  this.conditionalVersion(4, {
34
+ yieldPoolInfo: 'slug, chain, type',
35
+ yieldPosition: '[slug+chain+address], [address+slug], address, chain'
36
+ });
37
+ this.conditionalVersion(5, {
34
38
  campaign: 'slug'
35
39
  });
36
40
  }
@@ -1,12 +1,12 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { StakingStatus } from '@subwallet/extension-base/background/KoniTypes';
5
4
  import BaseStoreWithAddressAndChain from '@subwallet/extension-base/services/storage-service/db-stores/BaseStoreWithAddressAndChain';
5
+ import { EarningStatus } from '@subwallet/extension-base/types';
6
6
  import { liveQuery } from 'dexie';
7
7
  export default class NominatorMetadataStore extends BaseStoreWithAddressAndChain {
8
8
  async getAll() {
9
- return this.table.filter(item => item.status !== StakingStatus.NOT_STAKING).toArray();
9
+ return this.table.filter(item => item.status !== EarningStatus.NOT_STAKING).toArray();
10
10
  }
11
11
  subscribeByAddresses(addresses) {
12
12
  return liveQuery(() => this.getByAddress(addresses));
@@ -15,7 +15,7 @@ export default class NominatorMetadataStore extends BaseStoreWithAddressAndChain
15
15
  return liveQuery(() => this.getAll());
16
16
  }
17
17
  getByAddress(addresses) {
18
- return this.table.where('address').anyOfIgnoreCase(addresses).and(item => item.status !== StakingStatus.NOT_STAKING).toArray();
18
+ return this.table.where('address').anyOfIgnoreCase(addresses).and(item => item.status !== EarningStatus.NOT_STAKING).toArray();
19
19
  }
20
20
  async removeByAddress(address) {
21
21
  return this.table.where('address').anyOfIgnoreCase(address).delete();
@@ -0,0 +1,10 @@
1
+ import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
2
+ import { YieldPoolInfo, YieldPoolType } from '@subwallet/extension-base/types';
3
+ export default class YieldPoolStore extends BaseStore<YieldPoolInfo> {
4
+ getAll(): Promise<YieldPoolInfo[]>;
5
+ getByChains(chains: string[]): Promise<YieldPoolInfo[]>;
6
+ getByChainAndType(chain: string, poolType: YieldPoolType): Promise<YieldPoolInfo | undefined>;
7
+ bulkDelete(slugs: string[]): Promise<void>;
8
+ getBySlug(slug: string): Promise<YieldPoolInfo | undefined>;
9
+ subscribeYieldPoolInfo(chains: string[]): import("dexie").Observable<YieldPoolInfo[]>;
10
+ }
@@ -0,0 +1,28 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
5
+ import { liveQuery } from 'dexie';
6
+ export default class YieldPoolStore extends BaseStore {
7
+ async getAll() {
8
+ return this.table.toArray();
9
+ }
10
+ async getByChains(chains) {
11
+ if (chains.length === 0) {
12
+ return this.getAll();
13
+ }
14
+ return this.table.where('chain').anyOfIgnoreCase(chains).toArray();
15
+ }
16
+ async getByChainAndType(chain, poolType) {
17
+ return this.table.where('chain').equals(chain).and(item => item.type === poolType).first();
18
+ }
19
+ async bulkDelete(slugs) {
20
+ return this.table.bulkDelete(slugs);
21
+ }
22
+ async getBySlug(slug) {
23
+ return this.table.get(slug);
24
+ }
25
+ subscribeYieldPoolInfo(chains) {
26
+ return liveQuery(() => this.getByChains(chains));
27
+ }
28
+ }
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
2
+ import { YieldPositionInfo } from '@subwallet/extension-base/types';
3
+ export default class YieldPositionStore extends BaseStore<YieldPositionInfo> {
4
+ getAll(): Promise<YieldPositionInfo[]>;
5
+ getByAddress(addresses: string[]): Promise<YieldPositionInfo[]>;
6
+ removeByAddresses(addresses: string[]): import("dexie").PromiseExtended<number>;
7
+ removeByChains(chains: string[]): import("dexie").PromiseExtended<number>;
8
+ getByAddressAndChains(addresses: string[], chains: string[]): Promise<YieldPositionInfo[]>;
9
+ getByAddressAndSlug(address: string, slug: string): import("dexie").PromiseExtended<YieldPositionInfo | undefined>;
10
+ subscribeYieldPositions(addresses: string[]): import("dexie").Observable<YieldPositionInfo[]>;
11
+ }
@@ -0,0 +1,63 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import BaseStore from '@subwallet/extension-base/services/storage-service/db-stores/BaseStore';
5
+ import { liveQuery } from 'dexie';
6
+ export default class YieldPositionStore extends BaseStore {
7
+ async getAll() {
8
+ return this.table
9
+ // .filter((item) => {
10
+ // let isValidLiquidStaking = false;
11
+ //
12
+ // if (item.type === YieldPoolType.LIQUID_STAKING) {
13
+ // const nominatorMetadata = item.metadata as NominatorMetadata;
14
+ //
15
+ // if (nominatorMetadata.unstakings.length > 0) {
16
+ // console.log('true', item);
17
+ // isValidLiquidStaking = true;
18
+ // }
19
+ // }
20
+ //
21
+ // return parseInt(item.balance[0].activeBalance) > 0 || isValidLiquidStaking;
22
+ // })
23
+ .toArray();
24
+ }
25
+ async getByAddress(addresses) {
26
+ if (addresses.length === 0) {
27
+ return this.getAll();
28
+ }
29
+ return this.table.where('address').anyOfIgnoreCase(addresses)
30
+ // .filter((item) => {
31
+ // let isValidLiquidStaking = false;
32
+ //
33
+ // if (item.type === YieldPoolType.LIQUID_STAKING) {
34
+ // const nominatorMetadata = item.metadata as NominatorMetadata;
35
+ //
36
+ // if (nominatorMetadata && nominatorMetadata?.unstakings?.length > 0) {
37
+ // isValidLiquidStaking = true;
38
+ // }
39
+ // }
40
+ //
41
+ // return parseInt(item.balance[0].activeBalance) > 0 || isValidLiquidStaking;
42
+ // })
43
+ .toArray();
44
+ }
45
+ removeByAddresses(addresses) {
46
+ return this.table.where('address').anyOf(addresses).delete();
47
+ }
48
+ removeByChains(chains) {
49
+ return this.table.where('chain').anyOf(chains).delete();
50
+ }
51
+ async getByAddressAndChains(addresses, chains) {
52
+ return this.table.where('address').anyOfIgnoreCase(addresses).filter(item => chains.includes(item.chain)).toArray();
53
+ }
54
+ getByAddressAndSlug(address, slug) {
55
+ return this.table.get({
56
+ address,
57
+ slug
58
+ });
59
+ }
60
+ subscribeYieldPositions(addresses) {
61
+ return liveQuery(() => this.getByAddress(addresses));
62
+ }
63
+ }
@@ -1,4 +1,4 @@
1
- import { CrowdloanContributionsResponse, ExtrinsicItem, ExtrinsicsListResponse, IMultiChainBalance, RequestBlockRange, TransferItem, TransfersListResponse } from '@subwallet/extension-base/services/subscan-service/types';
1
+ import { CrowdloanContributionsResponse, ExtrinsicItem, ExtrinsicsListResponse, IMultiChainBalance, RequestBlockRange, RewardHistoryListResponse, SubscanRequest, TransferItem, TransfersListResponse } from '@subwallet/extension-base/services/subscan-service/types';
2
2
  export declare class SubscanService {
3
3
  private subscanChainMap;
4
4
  private limitRate;
@@ -15,7 +15,7 @@ export declare class SubscanService {
15
15
  });
16
16
  private getApiUrl;
17
17
  private postRequest;
18
- private addRequest;
18
+ addRequest<T>(run: SubscanRequest<T>['run']): Promise<T>;
19
19
  private process;
20
20
  checkSupportedSubscanChain(chain: string): boolean;
21
21
  setSubscanChainMap(subscanChainMap: Record<string, string>): void;
@@ -31,4 +31,5 @@ export declare class SubscanService {
31
31
  page: number;
32
32
  record: number;
33
33
  }): Promise<Record<string, TransferItem[]>>;
34
+ getRewardHistoryList(chain: string, address: string, page?: number): Promise<RewardHistoryListResponse>;
34
35
  }
@@ -237,4 +237,19 @@ export class SubscanService {
237
237
  await _getTransferItems(0);
238
238
  return resultMap;
239
239
  }
240
+ getRewardHistoryList(chain, address, page = 0) {
241
+ return this.addRequest(async () => {
242
+ const rs = await this.postRequest(this.getApiUrl(chain, 'api/scan/account/reward_slash'), {
243
+ page,
244
+ category: 'Reward',
245
+ row: 10,
246
+ address
247
+ });
248
+ if (rs.status !== 200) {
249
+ throw new SWError('SubscanService.getRewardHistoryList', await rs.text());
250
+ }
251
+ const jsonData = await rs.json();
252
+ return jsonData.data;
253
+ });
254
+ }
240
255
  }
@@ -175,3 +175,23 @@ export declare type RequestBlockRange = {
175
175
  from: number | null;
176
176
  to: number | null;
177
177
  };
178
+ export interface RewardHistoryItem {
179
+ block_num: number;
180
+ extrinsic_idx: number;
181
+ stash: string;
182
+ account: string;
183
+ module_id: string;
184
+ event_id: string;
185
+ event_method: string;
186
+ params: string;
187
+ extrinsic_hash: string;
188
+ event_idx: number;
189
+ amount: string;
190
+ block_timestamp: number;
191
+ event_index: string;
192
+ extrinsic_index: string;
193
+ }
194
+ export interface RewardHistoryListResponse {
195
+ count: number;
196
+ list: null | RewardHistoryItem[];
197
+ }
@@ -1,5 +1,7 @@
1
1
  import { _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
2
- import { TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
2
+ import { ExtrinsicType, TransactionHistoryItem } from '@subwallet/extension-base/background/KoniTypes';
3
3
  import { EventRecord } from '@polkadot/types/interfaces';
4
4
  export declare function parseXcmEventLogs(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], chain: string, sendingTokenInfo: _ChainAsset, chainInfo: _ChainInfo): void;
5
5
  export declare function parseTransferEventLogs(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], chain: string, sendingTokenInfo: _ChainAsset, chainInfo: _ChainInfo): void;
6
+ export declare function parseLiquidStakingEvents(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], inputTokenInfo: _ChainAsset, chainInfo: _ChainInfo, feePaidWithInputAsset: boolean, extrinsicType: ExtrinsicType): void;
7
+ export declare function parseLiquidStakingFastUnstakeEvents(historyItem: Partial<TransactionHistoryItem>, eventLogs: EventRecord[], chainInfo: _ChainInfo, extrinsicType: ExtrinsicType): void;
@@ -1,7 +1,8 @@
1
1
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { _getAssetDecimals, _getChainNativeTokenBasicInfo } from '@subwallet/extension-base/services/chain-service/utils';
4
+ import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
5
+ import { _getAssetDecimals, _getAssetSymbol, _getChainNativeTokenBasicInfo } from '@subwallet/extension-base/services/chain-service/utils';
5
6
  export function parseXcmEventLogs(historyItem, eventLogs, chain, sendingTokenInfo, chainInfo) {
6
7
  for (let index = 0; index < eventLogs.length; index++) {
7
8
  const record = eventLogs[index];
@@ -65,4 +66,59 @@ export function parseTransferEventLogs(historyItem, eventLogs, chain, sendingTok
65
66
  }
66
67
  }
67
68
  }
69
+ }
70
+ export function parseLiquidStakingEvents(historyItem, eventLogs, inputTokenInfo, chainInfo, feePaidWithInputAsset, extrinsicType) {
71
+ if (feePaidWithInputAsset) {
72
+ historyItem.fee = {
73
+ value: '0',
74
+ // TODO
75
+ symbol: _getAssetSymbol(inputTokenInfo),
76
+ decimals: _getAssetDecimals(inputTokenInfo)
77
+ };
78
+ } else {
79
+ for (let index = 0; index < eventLogs.length; index++) {
80
+ const record = eventLogs[index];
81
+ const {
82
+ decimals: nativeDecimals,
83
+ symbol: nativeSymbol
84
+ } = _getChainNativeTokenBasicInfo(chainInfo);
85
+ const section = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
86
+ const eventMethod = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
87
+ if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
88
+ var _record$event$data$9;
89
+ if ((_record$event$data$9 = record.event.data[2]) !== null && _record$event$data$9 !== void 0 && _record$event$data$9.toString()) {
90
+ var _record$event$data$10;
91
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
92
+ historyItem.fee = {
93
+ value: ((_record$event$data$10 = record.event.data[2]) === null || _record$event$data$10 === void 0 ? void 0 : _record$event$data$10.toString()) || '0',
94
+ symbol: nativeSymbol,
95
+ decimals: nativeDecimals
96
+ };
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ export function parseLiquidStakingFastUnstakeEvents(historyItem, eventLogs, chainInfo, extrinsicType) {
103
+ for (let index = 0; index < eventLogs.length; index++) {
104
+ const record = eventLogs[index];
105
+ const {
106
+ decimals: nativeDecimals,
107
+ symbol: nativeSymbol
108
+ } = _getChainNativeTokenBasicInfo(chainInfo);
109
+ const section = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
110
+ const eventMethod = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
111
+ if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
112
+ var _record$event$data$11;
113
+ if ((_record$event$data$11 = record.event.data[2]) !== null && _record$event$data$11 !== void 0 && _record$event$data$11.toString()) {
114
+ var _record$event$data$12;
115
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
116
+ historyItem.fee = {
117
+ value: ((_record$event$data$12 = record.event.data[2]) === null || _record$event$data$12 === void 0 ? void 0 : _record$event$data$12.toString()) || '0',
118
+ symbol: nativeSymbol,
119
+ decimals: nativeDecimals
120
+ };
121
+ }
122
+ }
123
+ }
68
124
  }
@@ -30,7 +30,7 @@ const typeName = type => {
30
30
  case ExtrinsicType.STAKING_BOND:
31
31
  return 'Bond';
32
32
  case ExtrinsicType.STAKING_UNBOND:
33
- return 'Unbond';
33
+ return 'Unstake';
34
34
  case ExtrinsicType.STAKING_CLAIM_REWARD:
35
35
  return 'Claim reward';
36
36
  case ExtrinsicType.STAKING_WITHDRAW:
@@ -45,6 +45,8 @@ const typeName = type => {
45
45
  return 'Cancel compounding';
46
46
  case ExtrinsicType.STAKING_POOL_WITHDRAW:
47
47
  return 'Withdraw pool';
48
+ case ExtrinsicType.JOIN_YIELD_POOL:
49
+ return 'Start earning';
48
50
  case ExtrinsicType.UNKNOWN:
49
51
  default:
50
52
  return 'unknown';
@@ -1,27 +1,19 @@
1
1
  import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
2
- import { BalanceService } from '@subwallet/extension-base/services/balance-service';
3
- import { ChainService } from '@subwallet/extension-base/services/chain-service';
4
- import { EventService } from '@subwallet/extension-base/services/event-service';
5
- import { HistoryService } from '@subwallet/extension-base/services/history-service';
6
- import NotificationService from '@subwallet/extension-base/services/notification-service/NotificationService';
7
- import RequestService from '@subwallet/extension-base/services/request-service';
8
- import DatabaseService from '@subwallet/extension-base/services/storage-service/DatabaseService';
2
+ import KoniState from '@subwallet/extension-base/koni/background/handlers/State';
9
3
  import { SWTransaction, SWTransactionInput, SWTransactionResponse, TransactionEmitter } from '@subwallet/extension-base/services/transaction-service/types';
10
4
  import { BehaviorSubject } from 'rxjs';
11
5
  import { TransactionConfig } from 'web3-core';
12
6
  import { HexString } from '@polkadot/util/types';
13
7
  export default class TransactionService {
14
- private readonly balanceService;
15
- private readonly chainService;
16
- private readonly databaseService;
8
+ private readonly state;
9
+ private readonly transactionSubject;
17
10
  private readonly eventService;
18
11
  private readonly historyService;
19
12
  private readonly notificationService;
20
- private readonly requestService;
21
- private readonly transactionSubject;
13
+ private readonly chainService;
22
14
  private readonly watchTransactionSubscribes;
23
15
  private get transactions();
24
- constructor(chainService: ChainService, eventService: EventService, requestService: RequestService, balanceService: BalanceService, historyService: HistoryService, notificationService: NotificationService, databaseService: DatabaseService);
16
+ constructor(state: KoniState);
25
17
  private get allTransactions();
26
18
  private get processingTransactions();
27
19
  getTransaction(id: string): SWTransaction;
@@ -48,5 +40,6 @@ export default class TransactionService {
48
40
  private signAndSendEvmTransaction;
49
41
  private signAndSendSubstrateTransaction;
50
42
  private handleTransactionTimeout;
43
+ private handlePostEarningTransaction;
51
44
  resetWallet(): void;
52
45
  }