@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
@@ -0,0 +1,69 @@
1
+ export interface OrdinalItem {
2
+ chain: string;
3
+ address: string;
4
+ data: Record<string, any>;
5
+ }
6
+ export interface SubscanEventBaseItemData {
7
+ id: number;
8
+ block_timestamp: number;
9
+ extrinsic_index: string;
10
+ extrinsic_hash: string;
11
+ finalized: boolean;
12
+ event_index: string;
13
+ phase: number;
14
+ module_id: string;
15
+ event_id: string;
16
+ }
17
+ export interface SubscanEventListResponse {
18
+ code: number;
19
+ message: string;
20
+ generated_at: number;
21
+ data: {
22
+ count: number;
23
+ events: SubscanEventBaseItemData[];
24
+ };
25
+ }
26
+ export interface SubscanBatchChildParam {
27
+ name: string;
28
+ type: string;
29
+ value: string;
30
+ }
31
+ export interface SubscanBatchChild {
32
+ call_index: string;
33
+ call_module: string;
34
+ call_name: string;
35
+ params: SubscanBatchChildParam[];
36
+ }
37
+ export interface SubscanExtrinsicParamDetail {
38
+ name: string;
39
+ type: string;
40
+ type_name: string;
41
+ value: string | SubscanBatchChild[];
42
+ }
43
+ export interface SubscanExtrinsicParam {
44
+ extrinsic_index: string;
45
+ params: SubscanExtrinsicParamDetail[];
46
+ }
47
+ export interface SubscanExtrinsicParamResponse {
48
+ code: number;
49
+ message: string;
50
+ generated_at: number;
51
+ data: SubscanExtrinsicParam[];
52
+ }
53
+ export interface OrdinalRemarkData {
54
+ p: string;
55
+ op: string;
56
+ tick: string;
57
+ amt: string;
58
+ }
59
+ export interface OrdinalNftProperties {
60
+ P: {
61
+ value: string;
62
+ };
63
+ Op: {
64
+ value: string;
65
+ };
66
+ Tick: {
67
+ value: string;
68
+ };
69
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { TransactionConfig } from 'web3-core';
2
+ import { SubmittableExtrinsic } from '@polkadot/api/types';
3
+ export declare type TransactionData = SubmittableExtrinsic<'promise'> | TransactionConfig;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './join';
2
+ export * from './others';
@@ -0,0 +1,5 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./join/index.js";
5
+ export * from "./others.js";
@@ -0,0 +1,3 @@
1
+ export * from './step';
2
+ export * from './submit';
3
+ export * from './validate';
@@ -0,0 +1,6 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./step.js";
5
+ export * from "./submit.js";
6
+ export * from "./validate.js";
@@ -0,0 +1,75 @@
1
+ import { YieldPoolTarget } from '@subwallet/extension-base/types';
2
+ /**
3
+ * @interface OptimalYieldPathParams
4
+ * @description Params to generate steps
5
+ * */
6
+ export interface OptimalYieldPathParams {
7
+ slug: string;
8
+ address: string;
9
+ amount: string;
10
+ targets?: YieldPoolTarget[];
11
+ }
12
+ /**
13
+ * @enum {string}
14
+ * @description Type of join yield step
15
+ * */
16
+ export declare enum YieldStepType {
17
+ DEFAULT = "DEFAULT",
18
+ XCM = "XCM",
19
+ NOMINATE = "NOMINATE",
20
+ JOIN_NOMINATION_POOL = "JOIN_NOMINATION_POOL",
21
+ MINT_VDOT = "MINT_VDOT",
22
+ MINT_LDOT = "MINT_LDOT",
23
+ MINT_QDOT = "MINT_QDOT",
24
+ MINT_SDOT = "MINT_SDOT",
25
+ MINT_STDOT = "MINT_STDOT",
26
+ TOKEN_APPROVAL = "TOKEN_APPROVAL"
27
+ }
28
+ /**
29
+ * @interface BaseYieldStepDetail
30
+ * @description Base info of a step
31
+ * @prop {string} name - Step's name
32
+ * @prop {YieldStepType} type - Step's type
33
+ * @prop {Record<string,unknown>} [metadata] - Metadata for generating extrinsic
34
+ * */
35
+ export interface BaseYieldStepDetail {
36
+ /** Step's name */
37
+ name: string;
38
+ /** Step's type */
39
+ type: YieldStepType;
40
+ /** Metadata for generating extrinsic */
41
+ metadata?: Record<string, unknown>;
42
+ }
43
+ /**
44
+ * @interface YieldStepDetail
45
+ * @extends BaseYieldStepDetail
46
+ * @description Detail of a step
47
+ * @prop {number} id - Step's id
48
+ * */
49
+ export interface YieldStepDetail extends BaseYieldStepDetail {
50
+ /** Step's id */
51
+ id: number;
52
+ }
53
+ /**
54
+ * @interface YieldTokenBaseInfo
55
+ * @prop {string} slug - Token's slug
56
+ * @prop {string} [amount] - Token's amount
57
+ * */
58
+ export interface YieldTokenBaseInfo {
59
+ /** Token's slug */
60
+ slug: string;
61
+ /** Token's amount */
62
+ amount?: string;
63
+ }
64
+ /** Base info and fee of a step */
65
+ export declare type YieldStepBaseInfo = [BaseYieldStepDetail, YieldTokenBaseInfo];
66
+ /**
67
+ * @interface OptimalYieldPath
68
+ * @description Result after generate steps
69
+ * */
70
+ export interface OptimalYieldPath {
71
+ totalFee: YieldTokenBaseInfo[];
72
+ steps: YieldStepDetail[];
73
+ connectionError?: string;
74
+ }
75
+ export declare type GenStepFunction = (params: OptimalYieldPathParams) => Promise<YieldStepBaseInfo | undefined>;
@@ -0,0 +1,34 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * @interface OptimalYieldPathParams
6
+ * @description Params to generate steps
7
+ * */
8
+
9
+ /**
10
+ * @enum {string}
11
+ * @description Type of join yield step
12
+ * */
13
+
14
+ export let YieldStepType;
15
+
16
+ /**
17
+ * @interface BaseYieldStepDetail
18
+ * @description Base info of a step
19
+ * @prop {string} name - Step's name
20
+ * @prop {YieldStepType} type - Step's type
21
+ * @prop {Record<string,unknown>} [metadata] - Metadata for generating extrinsic
22
+ * */
23
+ (function (YieldStepType) {
24
+ YieldStepType["DEFAULT"] = "DEFAULT";
25
+ YieldStepType["XCM"] = "XCM";
26
+ YieldStepType["NOMINATE"] = "NOMINATE";
27
+ YieldStepType["JOIN_NOMINATION_POOL"] = "JOIN_NOMINATION_POOL";
28
+ YieldStepType["MINT_VDOT"] = "MINT_VDOT";
29
+ YieldStepType["MINT_LDOT"] = "MINT_LDOT";
30
+ YieldStepType["MINT_QDOT"] = "MINT_QDOT";
31
+ YieldStepType["MINT_SDOT"] = "MINT_SDOT";
32
+ YieldStepType["MINT_STDOT"] = "MINT_STDOT";
33
+ YieldStepType["TOKEN_APPROVAL"] = "TOKEN_APPROVAL";
34
+ })(YieldStepType || (YieldStepType = {}));
@@ -0,0 +1,53 @@
1
+ import { BaseRequestSign, ExtrinsicType, InternalRequestSign } from '@subwallet/extension-base/background/KoniTypes';
2
+ import { TransactionData } from '../../../transaction';
3
+ import { NominationPoolInfo, ValidatorInfo, YieldPositionInfo } from '../../info';
4
+ import { OptimalYieldPath } from './step';
5
+ export interface HandleYieldStepData {
6
+ txChain: string;
7
+ extrinsicType: ExtrinsicType;
8
+ extrinsic: TransactionData;
9
+ txData: any;
10
+ transferNativeAmount: string;
11
+ }
12
+ export interface AbstractSubmitYieldJoinData {
13
+ slug: string;
14
+ amount: string;
15
+ address: string;
16
+ }
17
+ export interface SubmitJoinNativeStaking extends AbstractSubmitYieldJoinData {
18
+ selectedValidators: ValidatorInfo[];
19
+ }
20
+ export interface SubmitJoinNominationPool extends AbstractSubmitYieldJoinData {
21
+ selectedPool: NominationPoolInfo;
22
+ }
23
+ export interface SubmitYieldStepData extends AbstractSubmitYieldJoinData {
24
+ exchangeRate: number;
25
+ inputTokenSlug: string;
26
+ derivativeTokenSlug?: string;
27
+ rewardTokenSlug: string;
28
+ feeTokenSlug: string;
29
+ }
30
+ export declare type SubmitYieldJoinData = SubmitYieldStepData | SubmitJoinNativeStaking | SubmitJoinNominationPool;
31
+ export interface HandleYieldStepParams extends BaseRequestSign {
32
+ path: OptimalYieldPath;
33
+ data: SubmitYieldJoinData;
34
+ currentStep: number;
35
+ }
36
+ export declare type RequestYieldStepSubmit = InternalRequestSign<HandleYieldStepParams>;
37
+ export interface StakePoolingBondingParams extends BaseRequestSign {
38
+ poolPosition?: YieldPositionInfo;
39
+ slug: string;
40
+ selectedPool: NominationPoolInfo;
41
+ amount: string;
42
+ address: string;
43
+ }
44
+ export declare type RequestStakePoolingBonding = InternalRequestSign<StakePoolingBondingParams>;
45
+ export interface BondingSubmitParams extends BaseRequestSign {
46
+ slug: string;
47
+ poolPosition?: YieldPositionInfo;
48
+ amount: string;
49
+ address: string;
50
+ selectedValidators: ValidatorInfo[];
51
+ lockPeriod?: number;
52
+ }
53
+ export declare type RequestBondingSubmit = InternalRequestSign<BondingSubmitParams>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import { OptimalYieldPath, YieldStepDetail } from './step';
2
+ import { SubmitYieldJoinData } from './submit';
3
+ export declare enum YieldValidationStatus {
4
+ NOT_ENOUGH_FEE = "NOT_ENOUGH_FEE",
5
+ NOT_ENOUGH_BALANCE = "NOT_ENOUGH_BALANCE",
6
+ NOT_ENOUGH_MIN_JOIN_POOL = "NOT_ENOUGH_MIN_JOIN_POOL",
7
+ OK = "OK"
8
+ }
9
+ export interface YieldProcessValidation {
10
+ ok: boolean;
11
+ status: YieldValidationStatus;
12
+ failedStep?: YieldStepDetail;
13
+ message?: string;
14
+ }
15
+ export interface ValidateYieldProcessParams {
16
+ path: OptimalYieldPath;
17
+ data: SubmitYieldJoinData;
18
+ }
@@ -0,0 +1,10 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export let YieldValidationStatus;
5
+ (function (YieldValidationStatus) {
6
+ YieldValidationStatus["NOT_ENOUGH_FEE"] = "NOT_ENOUGH_FEE";
7
+ YieldValidationStatus["NOT_ENOUGH_BALANCE"] = "NOT_ENOUGH_BALANCE";
8
+ YieldValidationStatus["NOT_ENOUGH_MIN_JOIN_POOL"] = "NOT_ENOUGH_MIN_JOIN_POOL";
9
+ YieldValidationStatus["OK"] = "OK";
10
+ })(YieldValidationStatus || (YieldValidationStatus = {}));
@@ -0,0 +1,60 @@
1
+ import { BaseRequestSign, InternalRequestSign } from '@subwallet/extension-base/background/KoniTypes';
2
+ import { UnstakingInfo } from '../info';
3
+ /**
4
+ * @interface YieldLeaveParams
5
+ * @description Request params to leave pool
6
+ * @prop {string} address - Request account
7
+ * @prop {string} amount - Amount token want to leave
8
+ * @prop {string} slug - Pool's slug
9
+ * @prop {string} [selectedTarget] - Pool target want to leave (nomination pool and native staking need)
10
+ * @prop {boolean} fastLeave - Fast leave pool (swap token)
11
+ * */
12
+ export interface YieldLeaveParams extends BaseRequestSign {
13
+ /** Request account */
14
+ address: string;
15
+ /** Amount token want to leave */
16
+ amount: string;
17
+ /** Pool's slug */
18
+ slug: string;
19
+ /** Pool target want to leave (nomination pool and native staking need) */
20
+ selectedTarget?: string;
21
+ /** Fast leave pool (swap token) */
22
+ fastLeave: boolean;
23
+ }
24
+ export declare type RequestYieldLeave = InternalRequestSign<YieldLeaveParams>;
25
+ /**
26
+ * @interface RequestYieldWithdrawal
27
+ * @description Request params to withdraw
28
+ * @prop {string} address - Request account
29
+ * @prop {string} slug - Pool's slug
30
+ * @prop {UnstakingInfo} unstakingInfo - Info of unstaking request wants to withdraw
31
+ * */
32
+ export interface YieldWithdrawalParams extends BaseRequestSign {
33
+ /** Request account */
34
+ address: string;
35
+ /** Pool's slug */
36
+ slug: string;
37
+ /**
38
+ * <p>
39
+ * Info of unstaking request wants to withdraw
40
+ * </p>
41
+ * <p>
42
+ * Need to create amount on history
43
+ * </p>
44
+ * */
45
+ unstakingInfo: UnstakingInfo;
46
+ }
47
+ export declare type RequestYieldWithdrawal = InternalRequestSign<YieldWithdrawalParams>;
48
+ export interface StakeCancelWithdrawalParams extends BaseRequestSign {
49
+ address: string;
50
+ slug: string;
51
+ selectedUnstaking: UnstakingInfo;
52
+ }
53
+ export declare type RequestStakeCancelWithdrawal = InternalRequestSign<StakeCancelWithdrawalParams>;
54
+ export interface StakeClaimRewardParams extends BaseRequestSign {
55
+ address: string;
56
+ slug: string;
57
+ unclaimedReward?: string;
58
+ bondReward?: boolean;
59
+ }
60
+ export declare type RequestStakeClaimReward = InternalRequestSign<StakeClaimRewardParams>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './info';
2
+ export * from './actions';
@@ -0,0 +1,5 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./info/index.js";
5
+ export * from "./actions/index.js";
@@ -0,0 +1,4 @@
1
+ export * from './info';
2
+ export * from './reward';
3
+ export * from './target';
4
+ export * from './unstake';
@@ -0,0 +1,7 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./info.js";
5
+ export * from "./reward.js";
6
+ export * from "./target.js";
7
+ export * from "./unstake.js";
@@ -0,0 +1,112 @@
1
+ import { YieldPoolType } from '../base';
2
+ import { EarningStatus, NominationInfo } from './target';
3
+ import { UnstakingInfo } from './unstake';
4
+ export interface YieldAssetBalance {
5
+ slug: string;
6
+ activeBalance: string;
7
+ exchangeRate?: number;
8
+ }
9
+ /**
10
+ * @interface BaseYieldPositionInfo
11
+ * @prop {string} address - Account address
12
+ * @prop {string} chain - Chain's slug
13
+ * @prop {string} group - Pool's group
14
+ * @prop {string} slug - Pool's slug
15
+ * @prop {YieldPoolType} type - Pool's type
16
+ * */
17
+ export interface BaseYieldPositionInfo {
18
+ /** Account address */
19
+ address: string;
20
+ /** Chain's slug */
21
+ chain: string;
22
+ /** Pool's group */
23
+ group: string;
24
+ /** Pool's slug */
25
+ slug: string;
26
+ /** Pool's type */
27
+ type: YieldPoolType;
28
+ }
29
+ /**
30
+ * @interface AbstractYieldPositionInfo
31
+ * @prop {string} address - Account address
32
+ * @prop {string} chain - Chain's slug
33
+ * @prop {YieldPoolGroup} group - Pool's group
34
+ * @prop {string} slug - Pool's slug
35
+ * @prop {YieldPoolType} type - Pool's type
36
+ * @prop {string} totalStake - Total stake of the account
37
+ * @prop {string} activeStake - Active stake of the account
38
+ * @prop {string} unstakeBalance - Unstaking balance of the account
39
+ * @prop {YieldAssetBalance[]} balance - List balance related with stake
40
+ * @prop {boolean} isBondedBefore - Is the account bonded in pool before?
41
+ * @prop {NominationInfo[]} nominations - List nominations account joined - use for nomination pool and native staking
42
+ * @prop {EarningStatus} status - Earning status of the account
43
+ * @prop {UnstakingInfo[]} unstakings - List unstake request of the account - use for nomination pool and native staking
44
+ * */
45
+ export interface AbstractYieldPositionInfo extends BaseYieldPositionInfo {
46
+ /** Token to show */
47
+ balanceToken: string;
48
+ /** Total stake of the account */
49
+ totalStake: string;
50
+ /** Active stake of the account */
51
+ activeStake: string;
52
+ /** Unstaking balance of the account */
53
+ unstakeBalance: string;
54
+ /** Is the account bonded in pool before? */
55
+ isBondedBefore: boolean;
56
+ /** List nominations account joined - use for nomination pool and native staking */
57
+ nominations: NominationInfo[];
58
+ /** Earning status of the account */
59
+ status: EarningStatus;
60
+ /** List unstake request of the account - use for nomination pool and native staking */
61
+ unstakings: UnstakingInfo[];
62
+ }
63
+ /**
64
+ * @interface SpecialYieldPositionInfo
65
+ * @extends AbstractYieldPositionInfo
66
+ * @prop {string} rootAsset - Input token - Root token before stake and after unstake (slug)
67
+ * */
68
+ export interface SpecialYieldPositionInfo extends AbstractYieldPositionInfo {
69
+ type: YieldPoolType.LIQUID_STAKING | YieldPoolType.LENDING;
70
+ /** @description
71
+ * <p>Derivative token - Token got after stake (slug)</p>
72
+ * <p>To detect exchange rate</p>
73
+ * <p>Exchange rate = root token amount / balance token amount</p>
74
+ * */
75
+ derivativeToken: string;
76
+ }
77
+ /**
78
+ * @interface LiquidYieldPositionInfo
79
+ * @extends SpecialYieldPositionInfo
80
+ * @prop {YieldPoolType.LIQUID_STAKING} type - Pool's type
81
+ * */
82
+ export interface LiquidYieldPositionInfo extends SpecialYieldPositionInfo {
83
+ type: YieldPoolType.LIQUID_STAKING;
84
+ }
85
+ /**
86
+ * @interface LendingYieldPositionInfo
87
+ * @extends SpecialYieldPositionInfo
88
+ * @prop {YieldPoolType.LENDING} type - Pool's type
89
+ * */
90
+ export interface LendingYieldPositionInfo extends SpecialYieldPositionInfo {
91
+ type: YieldPoolType.LENDING;
92
+ }
93
+ /**
94
+ * @interface NominationYieldPositionInfo
95
+ * @extends AbstractYieldPositionInfo
96
+ * @prop {YieldPoolType.NOMINATION_POOL} type - Pool's type
97
+ * */
98
+ export interface NominationYieldPositionInfo extends AbstractYieldPositionInfo {
99
+ type: YieldPoolType.NOMINATION_POOL;
100
+ }
101
+ /**
102
+ * @interface NativeYieldPositionInfo
103
+ * @extends AbstractYieldPositionInfo
104
+ * @prop {YieldPoolType.NATIVE_STAKING} type - Pool's type
105
+ * */
106
+ export interface NativeYieldPositionInfo extends AbstractYieldPositionInfo {
107
+ type: YieldPoolType.NATIVE_STAKING;
108
+ }
109
+ /**
110
+ * Info of yield pool
111
+ * */
112
+ export declare type YieldPositionInfo = NativeYieldPositionInfo | NominationYieldPositionInfo | LiquidYieldPositionInfo | LendingYieldPositionInfo;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,41 @@
1
+ import { APIItemState } from '@subwallet/extension-base/background/KoniTypes';
2
+ import { YieldPoolType } from '../base';
3
+ /**
4
+ * @interface EarningRewardItem
5
+ * @prop {string} address - Account address
6
+ * @prop {string} chain - Chain's slug
7
+ * @prop {string} group - Pool's group
8
+ * @prop {string} slug - Pool's slug
9
+ * @prop {YieldPoolType} type - Pool's type
10
+ * @prop {APIItemState} state - State of item
11
+ * @prop {string} [latestReward] - Latest rewarded claimed
12
+ * @prop {string} [totalReward] - Total rewarded claimed
13
+ * @prop {string} [totalSlash] - Total token slashed
14
+ * @prop {string} [unclaimedReward] - Un-claim reward
15
+ * */
16
+ export interface EarningRewardItem {
17
+ /** Account address */
18
+ address: string;
19
+ /** Chain's slug */
20
+ chain: string;
21
+ /** Pool's group */
22
+ group: string;
23
+ /** Pool's slug */
24
+ slug: string;
25
+ /** Pool's type */
26
+ type: YieldPoolType;
27
+ /** State of item */
28
+ state: APIItemState;
29
+ /** Latest rewarded claimed */
30
+ latestReward?: string;
31
+ /** Total rewarded claimed */
32
+ totalReward?: string;
33
+ /** Total token slashed */
34
+ totalSlash?: string;
35
+ /** Un-claim reward */
36
+ unclaimedReward?: string;
37
+ }
38
+ export interface EarningRewardJson {
39
+ ready: boolean;
40
+ data: Record<string, EarningRewardItem>;
41
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @enum {string}
3
+ * @description The earning status of an account in a pool.
4
+ * */
5
+ export declare enum EarningStatus {
6
+ /** Earning reward */
7
+ EARNING_REWARD = "EARNING_REWARD",
8
+ /** Partially earning */
9
+ PARTIALLY_EARNING = "PARTIALLY_EARNING",
10
+ /** Not earning */
11
+ NOT_EARNING = "NOT_EARNING",
12
+ /** Waiting (Pool selected not in the reward list) */
13
+ WAITING = "WAITING",
14
+ /** Account not staking */
15
+ NOT_STAKING = "NOT_STAKING"
16
+ }
17
+ /**
18
+ * @interface NominationInfo
19
+ * @description Info of the validator account joined
20
+ * @prop {string} chain - Slug of chain
21
+ * @prop {string} validatorAddress - Validator's address or nomination pool's id
22
+ * @prop {string} [validatorIdentity] - Validator's identity
23
+ * @prop {string} activeStake - Active staked value
24
+ * @prop {boolean} [hasUnstaking] - Does the account have unstake request with validator?
25
+ * @prop {string} [validatorMinStake] - Min amount to join with validator
26
+ * @prop {EarningStatus} status - The staking status of the account
27
+ * */
28
+ export interface NominationInfo {
29
+ /** Slug of chain */
30
+ chain: string;
31
+ /** Validator's address or nomination pool's id */
32
+ validatorAddress: string;
33
+ /** Validator's identity */
34
+ validatorIdentity?: string;
35
+ /** Active staked value */
36
+ activeStake: string;
37
+ /** Does the account have unstake request with validator? */
38
+ hasUnstaking?: boolean;
39
+ /** Min amount to join with validator */
40
+ validatorMinStake?: string;
41
+ /** The staking status of the account */
42
+ status: EarningStatus;
43
+ }
@@ -0,0 +1,27 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * @enum {string}
6
+ * @description The earning status of an account in a pool.
7
+ * */
8
+ export let EarningStatus;
9
+
10
+ /**
11
+ * @interface NominationInfo
12
+ * @description Info of the validator account joined
13
+ * @prop {string} chain - Slug of chain
14
+ * @prop {string} validatorAddress - Validator's address or nomination pool's id
15
+ * @prop {string} [validatorIdentity] - Validator's identity
16
+ * @prop {string} activeStake - Active staked value
17
+ * @prop {boolean} [hasUnstaking] - Does the account have unstake request with validator?
18
+ * @prop {string} [validatorMinStake] - Min amount to join with validator
19
+ * @prop {EarningStatus} status - The staking status of the account
20
+ * */
21
+ (function (EarningStatus) {
22
+ EarningStatus["EARNING_REWARD"] = "EARNING_REWARD";
23
+ EarningStatus["PARTIALLY_EARNING"] = "PARTIALLY_EARNING";
24
+ EarningStatus["NOT_EARNING"] = "NOT_EARNING";
25
+ EarningStatus["WAITING"] = "WAITING";
26
+ EarningStatus["NOT_STAKING"] = "NOT_STAKING";
27
+ })(EarningStatus || (EarningStatus = {}));
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @enum {string}
3
+ * @description The status of un-staked request.
4
+ * */
5
+ export declare enum UnstakingStatus {
6
+ /** Can withdraw unstaked value */
7
+ CLAIMABLE = "CLAIMABLE",
8
+ /** Waiting to unlock unstake value */
9
+ UNLOCKING = "UNLOCKING"
10
+ }
11
+ /**
12
+ * @interface UnstakingInfo
13
+ * @description Info of un-stake request
14
+ * @prop {string} chain - Slug of chain
15
+ * @prop {UnstakingStatus} status - Status of request
16
+ * @prop {string} claimable - Amount to be withdrawn
17
+ * @prop {number} [waitingTime] - Time remains to wait (in hours)
18
+ * @prop {string} [validatorAddress] - Address of validator
19
+ * */
20
+ export interface UnstakingInfo {
21
+ /** Slug of chain */
22
+ chain: string;
23
+ /** Status of request */
24
+ status: UnstakingStatus;
25
+ /** Amount to be withdrawn */
26
+ claimable: string;
27
+ /** Time remains to wait (in hours) */
28
+ waitingTime?: number;
29
+ /** Address of validator */
30
+ validatorAddress?: string;
31
+ }