@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
@@ -0,0 +1,47 @@
1
+ import { APIItemState } from '@subwallet/extension-base/background/KoniTypes';
2
+ import { BasePoolInfo } from '../base';
3
+ /**
4
+ * @interface EarningRewardItem
5
+ * @extends BasePoolInfo
6
+ * @prop {string} address - Account address
7
+ * @prop {APIItemState} state - State of item
8
+ * @prop {string} [latestReward] - Latest rewarded claimed
9
+ * @prop {string} [totalReward] - Total rewarded claimed
10
+ * @prop {string} [totalSlash] - Total token slashed
11
+ * @prop {string} [unclaimedReward] - Un-claim reward
12
+ * */
13
+ export interface EarningRewardItem extends BasePoolInfo {
14
+ /** Account address */
15
+ address: string;
16
+ /** State of item */
17
+ state: APIItemState;
18
+ /** Latest rewarded claimed */
19
+ latestReward?: string;
20
+ /** Total rewarded claimed */
21
+ totalReward?: string;
22
+ /** Total token slashed */
23
+ totalSlash?: string;
24
+ /** Un-claim reward */
25
+ unclaimedReward?: string;
26
+ }
27
+ export interface EarningRewardJson {
28
+ ready: boolean;
29
+ data: Record<string, EarningRewardItem>;
30
+ }
31
+ /**
32
+ * @interface EarningRewardHistoryItem
33
+ * @extends BasePoolInfo
34
+ * @prop {string} address - Account address
35
+ * @prop {number} blockTimestamp - Reward history's block timestamp
36
+ * @prop {string} amount - Reward history's amount
37
+ * */
38
+ export interface EarningRewardHistoryItem extends BasePoolInfo {
39
+ /** Account address */
40
+ address: string;
41
+ /** Reward history's block timestamp */
42
+ blockTimestamp: number;
43
+ /** Reward history's extrinsic index */
44
+ eventIndex: string;
45
+ /** Reward history's amount */
46
+ amount: string;
47
+ }
@@ -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
+ }
@@ -0,0 +1,22 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * @enum {string}
6
+ * @description The status of un-staked request.
7
+ * */
8
+ export let UnstakingStatus;
9
+
10
+ /**
11
+ * @interface UnstakingInfo
12
+ * @description Info of un-stake request
13
+ * @prop {string} chain - Slug of chain
14
+ * @prop {UnstakingStatus} status - Status of request
15
+ * @prop {string} claimable - Amount to be withdrawn
16
+ * @prop {number} [waitingTime] - Time remains to wait (in hours)
17
+ * @prop {string} [validatorAddress] - Address of validator
18
+ * */
19
+ (function (UnstakingStatus) {
20
+ UnstakingStatus["CLAIMABLE"] = "CLAIMABLE";
21
+ UnstakingStatus["UNLOCKING"] = "UNLOCKING";
22
+ })(UnstakingStatus || (UnstakingStatus = {}));
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @enum {string}
3
+ * @description The types of yield pool.
4
+ * */
5
+ export declare enum YieldPoolType {
6
+ /** Liquid staking */
7
+ LIQUID_STAKING = "LIQUID_STAKING",
8
+ /** Lending */
9
+ LENDING = "LENDING",
10
+ /** Single farming */
11
+ SINGLE_FARMING = "SINGLE_FARMING",
12
+ /** Pool staking */
13
+ NOMINATION_POOL = "NOMINATION_POOL",
14
+ /** Native staking */
15
+ NATIVE_STAKING = "NATIVE_STAKING",
16
+ /** Parachain staking */
17
+ PARACHAIN_STAKING = "PARACHAIN_STAKING"
18
+ }
19
+ /**
20
+ * @enum {number}
21
+ * @description Time to calculate profit
22
+ * */
23
+ export declare enum YieldCompoundingPeriod {
24
+ DAILY = 1,
25
+ WEEKLY = 7,
26
+ MONTHLY = 30,
27
+ YEARLY = 365
28
+ }
29
+ /**
30
+ * @interface BasePoolInfo
31
+ * @prop {string} slug - Pool's slug
32
+ * @prop {string} chain - Pool's chain
33
+ * @prop {string} type - Pool's type
34
+ * @prop {string} group - Pool's group (by token)
35
+ * */
36
+ export interface BasePoolInfo {
37
+ /** Pool's slug */
38
+ slug: string;
39
+ /** Pool's chain */
40
+ chain: string;
41
+ /** Pool's type */
42
+ type: YieldPoolType;
43
+ /** Pool's group (by token) */
44
+ group: string;
45
+ }
@@ -0,0 +1,36 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * @enum {string}
6
+ * @description The types of yield pool.
7
+ * */
8
+ export let YieldPoolType;
9
+
10
+ /**
11
+ * @enum {number}
12
+ * @description Time to calculate profit
13
+ * */
14
+ (function (YieldPoolType) {
15
+ YieldPoolType["LIQUID_STAKING"] = "LIQUID_STAKING";
16
+ YieldPoolType["LENDING"] = "LENDING";
17
+ YieldPoolType["SINGLE_FARMING"] = "SINGLE_FARMING";
18
+ YieldPoolType["NOMINATION_POOL"] = "NOMINATION_POOL";
19
+ YieldPoolType["NATIVE_STAKING"] = "NATIVE_STAKING";
20
+ YieldPoolType["PARACHAIN_STAKING"] = "PARACHAIN_STAKING";
21
+ })(YieldPoolType || (YieldPoolType = {}));
22
+ export let YieldCompoundingPeriod;
23
+
24
+ /**
25
+ * @interface BasePoolInfo
26
+ * @prop {string} slug - Pool's slug
27
+ * @prop {string} chain - Pool's chain
28
+ * @prop {string} type - Pool's type
29
+ * @prop {string} group - Pool's group (by token)
30
+ * */
31
+ (function (YieldCompoundingPeriod) {
32
+ YieldCompoundingPeriod[YieldCompoundingPeriod["DAILY"] = 1] = "DAILY";
33
+ YieldCompoundingPeriod[YieldCompoundingPeriod["WEEKLY"] = 7] = "WEEKLY";
34
+ YieldCompoundingPeriod[YieldCompoundingPeriod["MONTHLY"] = 30] = "MONTHLY";
35
+ YieldCompoundingPeriod[YieldCompoundingPeriod["YEARLY"] = 365] = "YEARLY";
36
+ })(YieldCompoundingPeriod || (YieldCompoundingPeriod = {}));
@@ -0,0 +1,2 @@
1
+ export * from './info';
2
+ export * from './target';
@@ -0,0 +1,5 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./info.js";
5
+ export * from "./target.js";
@@ -0,0 +1,252 @@
1
+ import { BasePoolInfo, YieldPoolType } from '../base';
2
+ /**
3
+ * @interface YieldAssetEarningStats
4
+ * @prop {string} slug - Token's slug
5
+ * @prop {number} [apr] - Token's apr
6
+ * @prop {number} [apy] - Token's apy
7
+ * @prop {number} [exchangeRate] - Token's exchangeRate
8
+ * */
9
+ export interface YieldAssetEarningStats {
10
+ /** Token's slug */
11
+ slug: string;
12
+ /** Token's apr */
13
+ apr?: number;
14
+ /** Token's apy */
15
+ apy?: number;
16
+ /**
17
+ * @description Token's exchangeRate
18
+ * @example input token amount = reward token amount * exchange rate
19
+ * */
20
+ exchangeRate?: number;
21
+ }
22
+ /**
23
+ * @interface YieldPoolMethodInfo
24
+ * @prop {boolean} join - Pool can join
25
+ * @prop {boolean} defaultUnstake - Pool can default unstake
26
+ * @prop {boolean} fastUnstake - Pool can fast unstake
27
+ * @prop {boolean} cancelUnstake - Pool can cancel unstake
28
+ * @prop {boolean} withdraw - Pool can withdraw
29
+ * @prop {boolean} claimReward - Pool can claim reward
30
+ * */
31
+ export interface YieldPoolMethodInfo {
32
+ /** Pool can join */
33
+ join: boolean;
34
+ /** Pool can default unstake */
35
+ defaultUnstake: boolean;
36
+ /** Pool can fast unstake */
37
+ fastUnstake: boolean;
38
+ /** Pool can cancel unstake */
39
+ cancelUnstake: boolean;
40
+ /** Pool can withdraw */
41
+ withdraw: boolean;
42
+ /** Pool can claim reward */
43
+ claimReward: boolean;
44
+ }
45
+ /**
46
+ * @interface YieldThresholdInfo
47
+ * @prop {string} join - Min amount to join pool
48
+ * @prop {string} defaultUnstake - Min amount to unstake from pool
49
+ * @prop {string} fastUnstake - Min amount to fast unstake
50
+ * */
51
+ export interface YieldThresholdInfo {
52
+ join: string;
53
+ defaultUnstake: string;
54
+ fastUnstake: string;
55
+ }
56
+ /**
57
+ * @interface BaseYieldPoolMetadata
58
+ * @prop {string} description - Pool's description
59
+ * @prop {string} name - Pool's name
60
+ * @prop {string} shortName - Pool's short name
61
+ * @prop {string} logo - Pool's logo
62
+ * @prop {boolean} isAvailable - Is the pool available?
63
+ * @prop {string} inputAsset - Input token (slug)
64
+ * @prop {string} maintainAsset - Asset to maintain account's pool
65
+ * @prop {string} maintainBalance - Balance to maintain account's pool
66
+ * @prop {YieldPoolMethodInfo} availableMethod - Pool's available method
67
+ * */
68
+ export interface BaseYieldPoolMetadata {
69
+ /** Pool's description */
70
+ description: string;
71
+ /** Pool's name */
72
+ name: string;
73
+ /** Pool's short name */
74
+ shortName: string;
75
+ /** Pool's logo */
76
+ logo: string;
77
+ /** Input token (slug) */
78
+ inputAsset: string;
79
+ /** Is the pool available? */
80
+ isAvailable: boolean;
81
+ /** Asset to maintain account's pool */
82
+ maintainAsset: string;
83
+ /** Balance to maintain account's pool */
84
+ maintainBalance: string;
85
+ /** Pool's available method */
86
+ availableMethod: YieldPoolMethodInfo;
87
+ }
88
+ /**
89
+ * @interface NormalYieldPoolMetadata
90
+ * @extends BaseYieldPoolMetadata
91
+ * */
92
+ export declare type NormalYieldPoolMetadata = BaseYieldPoolMetadata;
93
+ /**
94
+ * @interface SpecialYieldPoolMetadata
95
+ * @extends BaseYieldPoolMetadata
96
+ * @prop {string[]} derivativeAssets - Array of derivative tokens (slug)
97
+ * @prop {string[]} rewardAssets - Array of reward tokens (slug)
98
+ * @prop {string[]} feeAssets - Array of fee tokens (slug)
99
+ * @prop {string} [altInputAssets] - Alt input token (slug) - optional
100
+ * */
101
+ export interface SpecialYieldPoolMetadata extends BaseYieldPoolMetadata {
102
+ /** Array of derivative tokens (slug) */
103
+ derivativeAssets: string[];
104
+ /** Array of reward tokens (slug) */
105
+ rewardAssets: string[];
106
+ /** Alt input token (slug) - optional */
107
+ altInputAssets?: string;
108
+ /**
109
+ * Array of fee tokens (slug)
110
+ * <p>
111
+ * If the pool has more than one token, the mint step can use input token for fee instead native token
112
+ * </p>
113
+ * */
114
+ feeAssets: string[];
115
+ }
116
+ /**
117
+ * @description Required data
118
+ * */
119
+ export declare type YieldPoolMetadata = NormalYieldPoolMetadata | SpecialYieldPoolMetadata;
120
+ /**
121
+ * @interface BaseYieldPoolStatistic
122
+ * @description Statistic data of pool
123
+ * @prop {YieldAssetEarningStats[]} assetEarning - Info for asset earning
124
+ * @prop {number} maxCandidatePerFarmer - Max candidates per farmer
125
+ * @prop {number} maxWithdrawalRequestPerFarmer - Max withdrawal request per farmer
126
+ * @prop {string} earningThreshold - Min amount to join pool
127
+ * @prop {number} [farmerCount] - Total farmer
128
+ * @prop {string} [tvl] - Total value staked in pool
129
+ * @prop {number} [totalApy] - Total apy of earning assets
130
+ * @prop {number} [totalApr] - Total apr of earning assets
131
+ * */
132
+ export interface BaseYieldPoolStatistic {
133
+ /** Info for asset earning */
134
+ assetEarning: YieldAssetEarningStats[];
135
+ /** Max candidate per farmer */
136
+ maxCandidatePerFarmer: number;
137
+ /** Max withdrawal request per farmer */
138
+ maxWithdrawalRequestPerFarmer: number;
139
+ /** Min amount to join pool */
140
+ earningThreshold: YieldThresholdInfo;
141
+ /** Total farmer */
142
+ farmerCount?: number;
143
+ /** Total value staked in pool */
144
+ tvl?: string;
145
+ /** Total apy of earning assets */
146
+ totalApy?: number;
147
+ /** Total apr of earning assets */
148
+ totalApr?: number;
149
+ }
150
+ /**
151
+ * @interface NormalYieldPoolStatistic
152
+ * @extends BaseYieldPoolStatistic
153
+ * @prop {number} era - Current era of network
154
+ * @prop {number} eraTime - Time of an era - in hour
155
+ * @prop {number} unstakingPeriod - Time to wait withdraw un-stake, in hour
156
+ * @prop {number} [inflation] - Inflation rate
157
+ * */
158
+ export interface NormalYieldPoolStatistic extends BaseYieldPoolStatistic {
159
+ /** Current era of network */
160
+ era: number;
161
+ /** Time of an era - in hour */
162
+ eraTime: number;
163
+ /** Time to wait withdraw un-stake, in hour */
164
+ unstakingPeriod: number;
165
+ /** Inflation rate */
166
+ inflation?: number;
167
+ }
168
+ /**
169
+ * @interface SpecialYieldPoolStatistic
170
+ * @extends BaseYieldPoolStatistic
171
+ * @prop {number} [unstakingPeriod] - Time to wait withdraw un-stake, in hour
172
+ * */
173
+ export interface SpecialYieldPoolStatistic extends BaseYieldPoolStatistic {
174
+ /** Time to wait withdraw un-stake, in hour */
175
+ unstakingPeriod?: number;
176
+ }
177
+ export declare type YieldPoolStatistic = NormalYieldPoolStatistic | SpecialYieldPoolStatistic;
178
+ /**
179
+ * @interface AbstractYieldPoolInfo
180
+ * @extends BasePoolInfo
181
+ * @prop {string} description - Pool's description
182
+ * @prop {string} name - Pool's name
183
+ * @prop {string} shortName - Pool's short name
184
+ * @prop {string} logo - Pool's logo
185
+ * @prop {YieldPoolStatistic} [statistic] - Pool's metadata
186
+ * */
187
+ export interface AbstractYieldPoolInfo extends BasePoolInfo {
188
+ metadata: YieldPoolMetadata;
189
+ /** Pool's metadata */
190
+ statistic?: YieldPoolStatistic;
191
+ lastUpdated?: number;
192
+ }
193
+ /**
194
+ * @interface SpecialYieldPoolInfo
195
+ * @extends AbstractYieldPoolInfo
196
+ * @prop {SpecialYieldPoolStatistic} [statistic] - Pool's metadata
197
+ * */
198
+ export interface SpecialYieldPoolInfo extends AbstractYieldPoolInfo {
199
+ type: YieldPoolType.LIQUID_STAKING | YieldPoolType.LENDING;
200
+ metadata: SpecialYieldPoolMetadata;
201
+ statistic?: SpecialYieldPoolStatistic;
202
+ }
203
+ /**
204
+ * @interface LiquidYieldPoolInfo
205
+ * @extends SpecialYieldPoolInfo
206
+ * @prop {YieldPoolType.LIQUID_STAKING} type - Pool's type
207
+ * */
208
+ export interface LiquidYieldPoolInfo extends SpecialYieldPoolInfo {
209
+ type: YieldPoolType.LIQUID_STAKING;
210
+ }
211
+ /**
212
+ * @interface LendingYieldPoolInfo
213
+ * @extends SpecialYieldPoolInfo
214
+ * @prop {YieldPoolType.LENDING} type - Pool's type
215
+ * */
216
+ export interface LendingYieldPoolInfo extends SpecialYieldPoolInfo {
217
+ type: YieldPoolType.LENDING;
218
+ }
219
+ /**
220
+ * @interface NominationYieldPoolInfo
221
+ * @extends AbstractYieldPoolInfo
222
+ * @prop {YieldPoolType.NOMINATION_POOL} type - Pool's type
223
+ * @prop {NormalYieldPoolStatistic} [statistic] - Pool's metadata
224
+ * */
225
+ export interface NominationYieldPoolInfo extends AbstractYieldPoolInfo {
226
+ type: YieldPoolType.NOMINATION_POOL;
227
+ metadata: NormalYieldPoolMetadata;
228
+ statistic?: NormalYieldPoolStatistic;
229
+ }
230
+ /**
231
+ * @interface NativeYieldPoolInfo
232
+ * @extends AbstractYieldPoolInfo
233
+ * @prop {YieldPoolType.NATIVE_STAKING} type - Pool's type
234
+ * @prop {NormalYieldPoolStatistic} [statistic] - Pool's metadata
235
+ * */
236
+ export interface NativeYieldPoolInfo extends AbstractYieldPoolInfo {
237
+ type: YieldPoolType.NATIVE_STAKING;
238
+ metadata: NormalYieldPoolMetadata;
239
+ statistic?: NormalYieldPoolStatistic;
240
+ }
241
+ /**
242
+ * Info of yield pool
243
+ * */
244
+ export declare type YieldPoolInfo = NativeYieldPoolInfo | NominationYieldPoolInfo | LiquidYieldPoolInfo | LendingYieldPoolInfo;
245
+ /**
246
+ * @interface YieldAssetExpectedEarning
247
+ * Pool expected return
248
+ * */
249
+ export interface YieldAssetExpectedEarning {
250
+ apy?: number;
251
+ rewardInToken?: number;
252
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
1
+ import { PalletNominationPoolsBondedPoolInner } from '../pallet';
2
+ export interface NominationPoolInfo extends Pick<PalletNominationPoolsBondedPoolInner, 'roles' | 'memberCounter' | 'state'> {
3
+ id: number;
4
+ address: string;
5
+ name?: string;
6
+ bondedAmount: string;
7
+ isProfitable: boolean;
8
+ }
9
+ export interface ValidatorInfo {
10
+ address: string;
11
+ chain: string;
12
+ totalStake: string;
13
+ ownStake: string;
14
+ otherStake: string;
15
+ minBond: string;
16
+ nominatorCount: number;
17
+ commission: number;
18
+ expectedReturn?: number;
19
+ blocked: boolean;
20
+ identity?: string;
21
+ isVerified: boolean;
22
+ icon?: string;
23
+ isCrowded: boolean;
24
+ }
25
+ export declare type YieldPoolTarget = NominationPoolInfo | ValidatorInfo;
26
+ export interface RequestGetYieldPoolTargets {
27
+ slug: string;
28
+ }
29
+ export interface ResponseGetYieldPoolTargets {
30
+ slug: string;
31
+ targets: YieldPoolTarget[];
32
+ }
33
+ export interface CollatorExtraInfo {
34
+ active: boolean;
35
+ identity?: string;
36
+ isVerified: boolean;
37
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './account';
2
+ export * from './base';
3
+ export * from './chain';
4
+ export * from './pallet';
@@ -0,0 +1,7 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from "./account/index.js";
5
+ export * from "./base.js";
6
+ export * from "./chain/index.js";
7
+ export * from "./pallet.js";