@subwallet/extension-base 1.1.29-0 → 1.1.29-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 (289) hide show
  1. package/background/KoniTypes.d.ts +94 -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/nft/config.js +33 -23
  8. package/cjs/koni/api/nft/index.js +14 -0
  9. package/cjs/koni/api/nft/nft.js +1 -22
  10. package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
  11. package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
  12. package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
  13. package/cjs/koni/api/staking/bonding/amplitude.js +17 -15
  14. package/cjs/koni/api/staking/bonding/astar.js +11 -10
  15. package/cjs/koni/api/staking/bonding/index.js +4 -1
  16. package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
  17. package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
  18. package/cjs/koni/api/staking/bonding/utils.js +104 -86
  19. package/cjs/koni/api/staking/index.js +6 -5
  20. package/cjs/koni/api/staking/paraChain.js +6 -5
  21. package/cjs/koni/api/staking/relayChain.js +3 -2
  22. package/cjs/koni/api/yield/helper/utils.js +46 -0
  23. package/cjs/koni/background/cron.js +2 -0
  24. package/cjs/koni/background/handlers/Extension.js +347 -69
  25. package/cjs/koni/background/handlers/State.js +51 -3
  26. package/cjs/koni/background/handlers/index.js +4 -2
  27. package/cjs/koni/background/subscription.js +88 -18
  28. package/cjs/services/campaign-service/index.js +9 -6
  29. package/cjs/services/chain-service/constants.js +2 -16
  30. package/cjs/services/chain-service/utils.js +7 -1
  31. package/cjs/services/earning-service/constants/chains.js +29 -0
  32. package/cjs/services/earning-service/constants/index.js +27 -0
  33. package/cjs/services/earning-service/constants/step.js +18 -0
  34. package/cjs/services/earning-service/handlers/base.js +230 -0
  35. package/cjs/services/earning-service/handlers/index.js +60 -0
  36. package/cjs/services/earning-service/handlers/lending/base.js +20 -0
  37. package/cjs/services/earning-service/handlers/lending/index.js +13 -0
  38. package/cjs/services/earning-service/handlers/lending/interlay.js +176 -0
  39. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +206 -0
  40. package/cjs/services/earning-service/handlers/liquid-staking/base.js +43 -0
  41. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +267 -0
  42. package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
  43. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +190 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +382 -0
  45. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +380 -0
  46. package/cjs/services/earning-service/handlers/native-staking/astar.js +454 -0
  47. package/cjs/services/earning-service/handlers/native-staking/base-para.js +137 -0
  48. package/cjs/services/earning-service/handlers/native-staking/base.js +119 -0
  49. package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
  50. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +381 -0
  51. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +540 -0
  52. package/cjs/services/earning-service/handlers/nomination-pool/index.js +528 -0
  53. package/cjs/services/earning-service/handlers/special.js +412 -0
  54. package/cjs/services/earning-service/service.js +351 -0
  55. package/cjs/services/earning-service/utils/index.js +128 -0
  56. package/cjs/services/event-service/index.js +4 -0
  57. package/cjs/services/keyring-service/index.js +14 -2
  58. package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
  59. package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
  60. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  61. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  62. package/cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js +21 -0
  63. package/cjs/services/migration-service/scripts/databases/MigrateEarningVersion.js +21 -0
  64. package/cjs/services/migration-service/scripts/index.js +7 -1
  65. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
  66. package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
  67. package/cjs/services/mint-campaign-service/constants.js +11 -0
  68. package/cjs/services/mint-campaign-service/index.js +18 -0
  69. package/cjs/services/notification-service/NotificationService.js +1 -1
  70. package/cjs/services/storage-service/DatabaseService.js +51 -0
  71. package/cjs/services/storage-service/databases/index.js +4 -0
  72. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  73. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
  74. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +65 -0
  75. package/cjs/services/transaction-service/event-parser/index.js +58 -0
  76. package/cjs/services/transaction-service/helpers/index.js +3 -1
  77. package/cjs/services/transaction-service/index.js +185 -74
  78. package/cjs/services/transaction-service/utils.js +1 -0
  79. package/cjs/types/campaigns/index.js +16 -0
  80. package/cjs/types/campaigns/unlock-dot.js +1 -0
  81. package/cjs/types/index.js +44 -0
  82. package/cjs/types/ordinal.js +1 -0
  83. package/cjs/types/transaction.js +1 -0
  84. package/cjs/types/yield/actions/index.js +27 -0
  85. package/cjs/types/yield/actions/join/index.js +38 -0
  86. package/cjs/types/yield/actions/join/step.js +47 -0
  87. package/cjs/types/yield/actions/join/submit.js +1 -0
  88. package/cjs/types/yield/actions/join/validate.js +16 -0
  89. package/cjs/types/yield/actions/others.js +1 -0
  90. package/cjs/types/yield/index.js +27 -0
  91. package/cjs/types/yield/info/account/index.js +49 -0
  92. package/cjs/types/yield/info/account/info.js +1 -0
  93. package/cjs/types/yield/info/account/reward.js +1 -0
  94. package/cjs/types/yield/info/account/target.js +32 -0
  95. package/cjs/types/yield/info/account/unstake.js +27 -0
  96. package/cjs/types/yield/info/base.js +41 -0
  97. package/cjs/types/yield/info/chain/index.js +27 -0
  98. package/cjs/types/yield/info/chain/info.js +1 -0
  99. package/cjs/types/yield/info/chain/target.js +1 -0
  100. package/cjs/types/yield/info/index.js +49 -0
  101. package/cjs/types/yield/info/pallet.js +15 -0
  102. package/cjs/utils/fetchStaticData.js +2 -1
  103. package/cjs/utils/index.js +89 -1
  104. package/cjs/utils/object.js +12 -0
  105. package/cjs/utils/yield/index.js +3 -0
  106. package/constants/index.d.ts +2 -0
  107. package/constants/index.js +2 -0
  108. package/koni/api/nft/config.js +33 -23
  109. package/koni/api/nft/index.js +15 -1
  110. package/koni/api/nft/nft.js +2 -23
  111. package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
  112. package/koni/api/nft/ordinal_nft/constants.js +12 -0
  113. package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
  114. package/koni/api/nft/ordinal_nft/index.js +114 -0
  115. package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
  116. package/koni/api/nft/ordinal_nft/utils.js +33 -0
  117. package/koni/api/staking/bonding/amplitude.js +11 -9
  118. package/koni/api/staking/bonding/astar.js +9 -8
  119. package/koni/api/staking/bonding/index.d.ts +1 -1
  120. package/koni/api/staking/bonding/index.js +5 -1
  121. package/koni/api/staking/bonding/paraChain.js +12 -10
  122. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  123. package/koni/api/staking/bonding/relayChain.js +33 -30
  124. package/koni/api/staking/bonding/utils.d.ts +15 -38
  125. package/koni/api/staking/bonding/utils.js +85 -69
  126. package/koni/api/staking/index.js +2 -1
  127. package/koni/api/staking/paraChain.js +7 -6
  128. package/koni/api/staking/relayChain.js +4 -3
  129. package/koni/api/yield/helper/utils.d.ts +10 -0
  130. package/koni/api/yield/helper/utils.js +32 -0
  131. package/koni/background/cron.js +2 -0
  132. package/koni/background/handlers/Extension.d.ts +16 -1
  133. package/koni/background/handlers/Extension.js +306 -30
  134. package/koni/background/handlers/State.d.ts +18 -2
  135. package/koni/background/handlers/State.js +50 -3
  136. package/koni/background/handlers/index.js +4 -2
  137. package/koni/background/subscription.d.ts +5 -1
  138. package/koni/background/subscription.js +90 -20
  139. package/package.json +316 -3
  140. package/services/campaign-service/index.js +9 -6
  141. package/services/chain-service/constants.d.ts +0 -11
  142. package/services/chain-service/constants.js +1 -14
  143. package/services/chain-service/utils.d.ts +1 -0
  144. package/services/chain-service/utils.js +5 -1
  145. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
  146. package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
  147. package/services/earning-service/constants/chains.d.ts +14 -0
  148. package/services/earning-service/constants/chains.js +21 -0
  149. package/services/earning-service/constants/index.d.ts +2 -0
  150. package/services/earning-service/constants/index.js +5 -0
  151. package/services/earning-service/constants/step.d.ts +3 -0
  152. package/services/earning-service/constants/step.js +10 -0
  153. package/services/earning-service/handlers/base.d.ts +108 -0
  154. package/services/earning-service/handlers/base.js +224 -0
  155. package/services/earning-service/handlers/index.d.ts +5 -0
  156. package/services/earning-service/handlers/index.js +8 -0
  157. package/services/earning-service/handlers/lending/base.d.ts +6 -0
  158. package/services/earning-service/handlers/lending/base.js +12 -0
  159. package/services/earning-service/handlers/lending/index.d.ts +1 -0
  160. package/services/earning-service/handlers/lending/index.js +4 -0
  161. package/services/earning-service/handlers/lending/interlay.d.ts +22 -0
  162. package/services/earning-service/handlers/lending/interlay.js +168 -0
  163. package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
  164. package/services/earning-service/handlers/liquid-staking/acala.js +198 -0
  165. package/services/earning-service/handlers/liquid-staking/base.d.ts +9 -0
  166. package/services/earning-service/handlers/liquid-staking/base.js +35 -0
  167. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +44 -0
  168. package/services/earning-service/handlers/liquid-staking/bifrost.js +256 -0
  169. package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
  170. package/services/earning-service/handlers/liquid-staking/index.js +7 -0
  171. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +27 -0
  172. package/services/earning-service/handlers/liquid-staking/parallel.js +182 -0
  173. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +36 -0
  174. package/services/earning-service/handlers/liquid-staking/stella-swap.js +372 -0
  175. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  176. package/services/earning-service/handlers/native-staking/amplitude.js +371 -0
  177. package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
  178. package/services/earning-service/handlers/native-staking/astar.js +444 -0
  179. package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
  180. package/services/earning-service/handlers/native-staking/base-para.js +129 -0
  181. package/services/earning-service/handlers/native-staking/base.d.ts +20 -0
  182. package/services/earning-service/handlers/native-staking/base.js +110 -0
  183. package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
  184. package/services/earning-service/handlers/native-staking/index.js +7 -0
  185. package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
  186. package/services/earning-service/handlers/native-staking/para-chain.js +373 -0
  187. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
  188. package/services/earning-service/handlers/native-staking/relay-chain.js +531 -0
  189. package/services/earning-service/handlers/nomination-pool/index.d.ts +33 -0
  190. package/services/earning-service/handlers/nomination-pool/index.js +518 -0
  191. package/services/earning-service/handlers/special.d.ts +59 -0
  192. package/services/earning-service/handlers/special.js +404 -0
  193. package/services/earning-service/service.d.ts +40 -0
  194. package/services/earning-service/service.js +343 -0
  195. package/services/earning-service/utils/index.d.ts +18 -0
  196. package/services/earning-service/utils/index.js +112 -0
  197. package/services/event-service/index.d.ts +1 -0
  198. package/services/event-service/index.js +4 -0
  199. package/services/event-service/types.d.ts +8 -0
  200. package/services/keyring-service/index.d.ts +2 -1
  201. package/services/keyring-service/index.js +14 -2
  202. package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
  203. package/services/migration-service/scripts/DeleteEarningData.js +13 -0
  204. package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
  205. package/services/migration-service/scripts/EnableEarningChains.js +13 -0
  206. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  207. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  208. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
  209. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
  210. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
  211. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
  212. package/services/migration-service/scripts/index.js +7 -1
  213. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
  214. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
  215. package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
  216. package/services/mint-campaign-service/campaigns/index.js +4 -0
  217. package/services/mint-campaign-service/constants.d.ts +1 -0
  218. package/services/mint-campaign-service/constants.js +4 -0
  219. package/services/mint-campaign-service/index.d.ts +7 -0
  220. package/services/mint-campaign-service/index.js +11 -0
  221. package/services/notification-service/NotificationService.js +1 -1
  222. package/services/storage-service/DatabaseService.d.ts +18 -1
  223. package/services/storage-service/DatabaseService.js +51 -0
  224. package/services/storage-service/databases/index.d.ts +3 -1
  225. package/services/storage-service/databases/index.js +4 -0
  226. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  227. package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
  228. package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
  229. package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
  230. package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
  231. package/services/subscan-service/index.d.ts +2 -2
  232. package/services/transaction-service/event-parser/index.d.ts +3 -1
  233. package/services/transaction-service/event-parser/index.js +57 -1
  234. package/services/transaction-service/helpers/index.js +3 -1
  235. package/services/transaction-service/index.d.ts +4 -15
  236. package/services/transaction-service/index.js +183 -72
  237. package/services/transaction-service/types.d.ts +2 -0
  238. package/services/transaction-service/utils.js +1 -0
  239. package/types/campaigns/index.d.ts +1 -0
  240. package/types/campaigns/index.js +4 -0
  241. package/types/campaigns/unlock-dot.d.ts +71 -0
  242. package/types/campaigns/unlock-dot.js +1 -0
  243. package/types/index.d.ts +5 -0
  244. package/types/index.js +5 -1
  245. package/types/ordinal.d.ts +69 -0
  246. package/types/ordinal.js +1 -0
  247. package/types/transaction.d.ts +3 -0
  248. package/types/transaction.js +1 -0
  249. package/types/yield/actions/index.d.ts +2 -0
  250. package/types/yield/actions/index.js +5 -0
  251. package/types/yield/actions/join/index.d.ts +3 -0
  252. package/types/yield/actions/join/index.js +6 -0
  253. package/types/yield/actions/join/step.d.ts +94 -0
  254. package/types/yield/actions/join/step.js +46 -0
  255. package/types/yield/actions/join/submit.d.ts +53 -0
  256. package/types/yield/actions/join/submit.js +1 -0
  257. package/types/yield/actions/join/validate.d.ts +18 -0
  258. package/types/yield/actions/join/validate.js +10 -0
  259. package/types/yield/actions/others.d.ts +63 -0
  260. package/types/yield/actions/others.js +1 -0
  261. package/types/yield/index.d.ts +2 -0
  262. package/types/yield/index.js +5 -0
  263. package/types/yield/info/account/index.d.ts +4 -0
  264. package/types/yield/info/account/index.js +7 -0
  265. package/types/yield/info/account/info.d.ts +101 -0
  266. package/types/yield/info/account/info.js +1 -0
  267. package/types/yield/info/account/reward.d.ts +30 -0
  268. package/types/yield/info/account/reward.js +1 -0
  269. package/types/yield/info/account/target.d.ts +43 -0
  270. package/types/yield/info/account/target.js +27 -0
  271. package/types/yield/info/account/unstake.d.ts +31 -0
  272. package/types/yield/info/account/unstake.js +22 -0
  273. package/types/yield/info/base.d.ts +45 -0
  274. package/types/yield/info/base.js +36 -0
  275. package/types/yield/info/chain/index.d.ts +2 -0
  276. package/types/yield/info/chain/index.js +5 -0
  277. package/types/yield/info/chain/info.d.ts +217 -0
  278. package/types/yield/info/chain/info.js +1 -0
  279. package/types/yield/info/chain/target.d.ts +37 -0
  280. package/types/yield/info/chain/target.js +1 -0
  281. package/types/yield/info/index.d.ts +4 -0
  282. package/types/yield/info/index.js +7 -0
  283. package/types/yield/info/pallet.d.ts +143 -0
  284. package/types/yield/info/pallet.js +9 -0
  285. package/utils/fetchStaticData.js +2 -1
  286. package/utils/index.d.ts +5 -0
  287. package/utils/index.js +53 -1
  288. package/utils/object.d.ts +1 -0
  289. package/utils/object.js +6 -0
@@ -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,217 @@
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 BaseYieldPoolMetadata
24
+ * @prop {string} description - Pool's description
25
+ * @prop {string} name - Pool's name
26
+ * @prop {string} shortName - Pool's short name
27
+ * @prop {string} logo - Pool's logo
28
+ * @prop {boolean} isAvailable - Is the pool available?
29
+ * @prop {string} inputAsset - Input token (slug)
30
+ * @prop {boolean} allowCancelUnstaking - Allow canceling un-stake
31
+ * @prop {string} maintainAsset - Asset to maintain account's pool
32
+ * @prop {string} maintainBalance - Balance to maintain account's pool
33
+ * */
34
+ export interface BaseYieldPoolMetadata {
35
+ /** Pool's description */
36
+ description: string;
37
+ /** Pool's name */
38
+ name: string;
39
+ /** Pool's short name */
40
+ shortName: string;
41
+ /** Pool's logo */
42
+ logo: string;
43
+ /** Input token (slug) */
44
+ inputAsset: string;
45
+ /** Is the pool available? */
46
+ isAvailable: boolean;
47
+ /** Allow to cancel un-stake */
48
+ allowCancelUnstaking: boolean;
49
+ /** Asset to maintain account's pool */
50
+ maintainAsset: string;
51
+ /** Balance to maintain account's pool */
52
+ maintainBalance: string;
53
+ }
54
+ /**
55
+ * @interface NormalYieldPoolMetadata
56
+ * @extends BaseYieldPoolMetadata
57
+ * */
58
+ export declare type NormalYieldPoolMetadata = BaseYieldPoolMetadata;
59
+ /**
60
+ * @interface SpecialYieldPoolMetadata
61
+ * @extends BaseYieldPoolMetadata
62
+ * @prop {string[]} derivativeAssets - Array of derivative tokens (slug)
63
+ * @prop {string[]} rewardAssets - Array of reward tokens (slug)
64
+ * @prop {string[]} feeAssets - Array of fee tokens (slug)
65
+ * @prop {string} [altInputAssets] - Alt input token (slug) - optional
66
+ * */
67
+ export interface SpecialYieldPoolMetadata extends BaseYieldPoolMetadata {
68
+ /** Array of derivative tokens (slug) */
69
+ derivativeAssets: string[];
70
+ /** Array of reward tokens (slug) */
71
+ rewardAssets: string[];
72
+ /** Alt input token (slug) - optional */
73
+ altInputAssets?: string;
74
+ /**
75
+ * Array of fee tokens (slug)
76
+ * <p>
77
+ * If the pool has more than one token, the mint step can use input token for fee instead native token
78
+ * </p>
79
+ * */
80
+ feeAssets: string[];
81
+ }
82
+ /**
83
+ * @description Required data
84
+ * */
85
+ export declare type YieldPoolMetadata = NormalYieldPoolMetadata | SpecialYieldPoolMetadata;
86
+ /**
87
+ * @interface BaseYieldPoolStatistic
88
+ * @description Statistic data of pool
89
+ * @prop {YieldAssetEarningStats[]} assetEarning - Info for asset earning
90
+ * @prop {number} maxCandidatePerFarmer - Max candidates per farmer
91
+ * @prop {number} maxWithdrawalRequestPerFarmer - Max withdrawal request per farmer
92
+ * @prop {string} minJoinPool - Min amount to join pool
93
+ * @prop {number} [farmerCount] - Total farmer
94
+ * @prop {string} [tvl] - Total value staked in pool
95
+ * @prop {number} [totalApy] - Total apy of earning assets
96
+ * @prop {number} [totalApr] - Total apr of earning assets
97
+ * */
98
+ export interface BaseYieldPoolStatistic {
99
+ /** Info for asset earning */
100
+ assetEarning: YieldAssetEarningStats[];
101
+ /** Max candidate per farmer */
102
+ maxCandidatePerFarmer: number;
103
+ /** Max withdrawal request per farmer */
104
+ maxWithdrawalRequestPerFarmer: number;
105
+ /** Min amount to join pool */
106
+ minJoinPool: string;
107
+ /** Total farmer */
108
+ farmerCount?: number;
109
+ /** Total value staked in pool */
110
+ tvl?: string;
111
+ /** Total apy of earning assets */
112
+ totalApy?: number;
113
+ /** Total apr of earning assets */
114
+ totalApr?: number;
115
+ }
116
+ /**
117
+ * @interface NormalYieldPoolStatistic
118
+ * @extends BaseYieldPoolStatistic
119
+ * @prop {number} era - Current era of network
120
+ * @prop {number} unstakingPeriod - Time to wait withdraw un-stake, in hour
121
+ * @prop {number} [inflation] - Inflation rate
122
+ * */
123
+ export interface NormalYieldPoolStatistic extends BaseYieldPoolStatistic {
124
+ /** Current era of network */
125
+ era: number;
126
+ /** Time to wait withdraw un-stake, in hour */
127
+ unstakingPeriod: number;
128
+ /** Inflation rate */
129
+ inflation?: number;
130
+ }
131
+ /**
132
+ * @interface SpecialYieldPoolStatistic
133
+ * @extends BaseYieldPoolStatistic
134
+ * @prop {string} minWithdrawal - Min amount for withdrawal request
135
+ * @prop {number} [unstakingPeriod] - Time to wait withdraw un-stake, in hour
136
+ * */
137
+ export interface SpecialYieldPoolStatistic extends BaseYieldPoolStatistic {
138
+ /** Min amount for withdrawal request */
139
+ minWithdrawal: string;
140
+ /** Time to wait withdraw un-stake, in hour */
141
+ unstakingPeriod?: number;
142
+ }
143
+ export declare type YieldPoolStatistic = NormalYieldPoolStatistic | SpecialYieldPoolStatistic;
144
+ /**
145
+ * @interface AbstractYieldPoolInfo
146
+ * @extends BasePoolInfo
147
+ * @prop {string} description - Pool's description
148
+ * @prop {string} name - Pool's name
149
+ * @prop {string} shortName - Pool's short name
150
+ * @prop {string} logo - Pool's logo
151
+ * @prop {YieldPoolStatistic} [statistic] - Pool's metadata
152
+ * */
153
+ export interface AbstractYieldPoolInfo extends BasePoolInfo {
154
+ metadata: YieldPoolMetadata;
155
+ /** Pool's metadata */
156
+ statistic?: YieldPoolStatistic;
157
+ }
158
+ /**
159
+ * @interface SpecialYieldPoolInfo
160
+ * @extends AbstractYieldPoolInfo
161
+ * @prop {SpecialYieldPoolStatistic} [statistic] - Pool's metadata
162
+ * */
163
+ export interface SpecialYieldPoolInfo extends AbstractYieldPoolInfo {
164
+ type: YieldPoolType.LIQUID_STAKING | YieldPoolType.LENDING;
165
+ metadata: SpecialYieldPoolMetadata;
166
+ statistic?: SpecialYieldPoolStatistic;
167
+ }
168
+ /**
169
+ * @interface LiquidYieldPoolInfo
170
+ * @extends SpecialYieldPoolInfo
171
+ * @prop {YieldPoolType.LIQUID_STAKING} type - Pool's type
172
+ * */
173
+ export interface LiquidYieldPoolInfo extends SpecialYieldPoolInfo {
174
+ type: YieldPoolType.LIQUID_STAKING;
175
+ }
176
+ /**
177
+ * @interface LendingYieldPoolInfo
178
+ * @extends SpecialYieldPoolInfo
179
+ * @prop {YieldPoolType.LENDING} type - Pool's type
180
+ * */
181
+ export interface LendingYieldPoolInfo extends SpecialYieldPoolInfo {
182
+ type: YieldPoolType.LENDING;
183
+ }
184
+ /**
185
+ * @interface NominationYieldPoolInfo
186
+ * @extends AbstractYieldPoolInfo
187
+ * @prop {YieldPoolType.NOMINATION_POOL} type - Pool's type
188
+ * @prop {NormalYieldPoolStatistic} [statistic] - Pool's metadata
189
+ * */
190
+ export interface NominationYieldPoolInfo extends AbstractYieldPoolInfo {
191
+ type: YieldPoolType.NOMINATION_POOL;
192
+ metadata: NormalYieldPoolMetadata;
193
+ statistic?: NormalYieldPoolStatistic;
194
+ }
195
+ /**
196
+ * @interface NativeYieldPoolInfo
197
+ * @extends AbstractYieldPoolInfo
198
+ * @prop {YieldPoolType.NATIVE_STAKING} type - Pool's type
199
+ * @prop {NormalYieldPoolStatistic} [statistic] - Pool's metadata
200
+ * */
201
+ export interface NativeYieldPoolInfo extends AbstractYieldPoolInfo {
202
+ type: YieldPoolType.NATIVE_STAKING;
203
+ metadata: NormalYieldPoolMetadata;
204
+ statistic?: NormalYieldPoolStatistic;
205
+ }
206
+ /**
207
+ * Info of yield pool
208
+ * */
209
+ export declare type YieldPoolInfo = NativeYieldPoolInfo | NominationYieldPoolInfo | LiquidYieldPoolInfo | LendingYieldPoolInfo;
210
+ /**
211
+ * @interface YieldAssetExpectedEarning
212
+ * Pool expected return
213
+ * */
214
+ export interface YieldAssetExpectedEarning {
215
+ apy?: number;
216
+ rewardInToken?: number;
217
+ }
@@ -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";
@@ -0,0 +1,143 @@
1
+ /// <reference types="bn.js" />
2
+ import { BN } from '@polkadot/util';
3
+ export interface PalletNominationPoolsPoolMember {
4
+ poolId: number;
5
+ points: number;
6
+ lasRecordedRewardCounter: number;
7
+ unbondingEras: Record<string, number>;
8
+ }
9
+ export interface PalletStakingExposureItem {
10
+ who: string;
11
+ value: number;
12
+ }
13
+ export interface PalletStakingExposure {
14
+ total: number;
15
+ own: number;
16
+ others: PalletStakingExposureItem[];
17
+ }
18
+ export interface PalletDappsStakingDappInfo {
19
+ address: string;
20
+ name: string;
21
+ gitHubUrl: string;
22
+ tags: string[];
23
+ url: string;
24
+ imagesUrl: string[];
25
+ }
26
+ export interface PalletDappsStakingUnlockingChunk {
27
+ amount: number;
28
+ unlockEra: number;
29
+ }
30
+ export interface PalletDappsStakingAccountLedger {
31
+ locked: number;
32
+ unbondingInfo: {
33
+ unlockingChunks: PalletDappsStakingUnlockingChunk[];
34
+ };
35
+ }
36
+ export interface BlockHeader {
37
+ parentHash: string;
38
+ number: number;
39
+ stateRoot: string;
40
+ extrinsicsRoot: string;
41
+ }
42
+ export interface ParachainStakingStakeOption {
43
+ owner: string;
44
+ amount: number;
45
+ }
46
+ export interface ParachainStakingCandidateMetadata {
47
+ bond: string;
48
+ delegationCount: number;
49
+ totalCounted: string;
50
+ lowestTopDelegationAmount: string;
51
+ status: any | 'Active';
52
+ }
53
+ export declare enum PalletParachainStakingRequestType {
54
+ REVOKE = "revoke",
55
+ DECREASE = "decrease",
56
+ BOND_LESS = "bondLess"
57
+ }
58
+ export interface PalletParachainStakingDelegationRequestsScheduledRequest {
59
+ delegator: string;
60
+ whenExecutable: number;
61
+ action: Record<PalletParachainStakingRequestType, number>;
62
+ }
63
+ export interface PalletParachainStakingDelegationInfo {
64
+ owner: string;
65
+ amount: number;
66
+ }
67
+ export interface PalletParachainStakingDelegator {
68
+ id: string;
69
+ delegations: PalletParachainStakingDelegationInfo[];
70
+ total: number;
71
+ lessTotal: number;
72
+ status: number;
73
+ }
74
+ export interface PalletIdentityRegistration {
75
+ judgements: any[];
76
+ deposit: number;
77
+ info: {
78
+ display: {
79
+ Raw: string;
80
+ };
81
+ web: {
82
+ Raw: string;
83
+ };
84
+ twitter: {
85
+ Raw: string;
86
+ };
87
+ riot: {
88
+ Raw: string;
89
+ };
90
+ };
91
+ }
92
+ export declare type PalletIdentitySuper = [string, {
93
+ Raw: string;
94
+ }];
95
+ export interface Unlocking {
96
+ remainingEras: BN;
97
+ value: BN;
98
+ }
99
+ export interface TernoaStakingRewardsStakingRewardsData {
100
+ sessionEraPayout: string;
101
+ sessionExtraRewardPayout: string;
102
+ }
103
+ export interface ValidatorExtraInfo {
104
+ commission: string;
105
+ blocked: false;
106
+ identity?: string;
107
+ isVerified: boolean;
108
+ }
109
+ export interface PalletNominationPoolsBondedPoolInner {
110
+ points: number;
111
+ state: 'Open' | 'Destroying' | 'Locked';
112
+ memberCounter: number;
113
+ roles: {
114
+ depositor: string;
115
+ root: string;
116
+ nominator: string;
117
+ bouncer: string;
118
+ };
119
+ }
120
+ export interface PalletStakingNominations {
121
+ targets: string[];
122
+ submittedIn: number;
123
+ suppressed: boolean;
124
+ }
125
+ export interface UnlockingChunk {
126
+ value: number;
127
+ era: number;
128
+ }
129
+ export interface PalletStakingStakingLedger {
130
+ stash: string;
131
+ total: number;
132
+ active: number;
133
+ unlocking: UnlockingChunk[];
134
+ claimedRewards: number[];
135
+ }
136
+ export interface RuntimeDispatchInfo {
137
+ weight: {
138
+ refTime: number;
139
+ proofSize: number;
140
+ };
141
+ class: string;
142
+ partialFee: number;
143
+ }
@@ -0,0 +1,9 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export let PalletParachainStakingRequestType;
5
+ (function (PalletParachainStakingRequestType) {
6
+ PalletParachainStakingRequestType["REVOKE"] = "revoke";
7
+ PalletParachainStakingRequestType["DECREASE"] = "decrease";
8
+ PalletParachainStakingRequestType["BOND_LESS"] = "bondLess";
9
+ })(PalletParachainStakingRequestType || (PalletParachainStakingRequestType = {}));
@@ -2,8 +2,9 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import axios from 'axios';
5
+ const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
5
6
  const branchName = process.env.BRANCH_NAME || 'koni-dev';
6
- const fetchTarget = branchName === 'master' || branchName === 'webapp' ? 'list.json' : 'preview.json';
7
+ const fetchTarget = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list.json' : 'preview.json';
7
8
  export async function fetchStaticData(slug, targetFile) {
8
9
  const fetchFile = targetFile || fetchTarget;
9
10
  const rs = await axios.get(`https://static-data.subwallet.app/${slug}/${fetchFile}`);
package/utils/index.d.ts CHANGED
@@ -39,10 +39,15 @@ export declare function isSameAddress(address1: string, address2: string): boole
39
39
  export declare function getDomainFromUrl(url: string): string;
40
40
  export declare function waitTimeout(ms: number): Promise<void>;
41
41
  export declare const stripUrl: (url: string) => string;
42
+ export declare const baseParseIPFSUrl: (input: string) => string | undefined;
43
+ export declare const swParseIPFSUrl: (input: string) => string | undefined;
42
44
  export declare function wait(milliseconds: number): Promise<void>;
43
45
  export * from './account';
44
46
  export * from './array';
45
47
  export * from './environment';
48
+ export * from './number';
46
49
  export * from './lazy';
50
+ export * from './promise';
47
51
  export * from './registry';
48
52
  export * from './translate';
53
+ export * from './object';
package/utils/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  import { CrowdloanParaState, MobileOS } from '@subwallet/extension-base/background/KoniTypes';
5
5
  import { ALL_ACCOUNT_KEY } from '@subwallet/extension-base/constants';
6
+ import { getRandomIpfsGateway, SUBWALLET_IPFS } from '@subwallet/extension-base/koni/api/nft/config';
6
7
  import { getOS } from '@subwallet/extension-base/utils/environment';
7
8
  import { t } from 'i18next';
8
9
  import { assert, BN, hexToU8a, isHex } from '@polkadot/util';
@@ -287,6 +288,54 @@ export const stripUrl = url => {
287
288
  const parts = url.split('/');
288
289
  return parts[2];
289
290
  };
291
+ export const baseParseIPFSUrl = input => {
292
+ if (!input || input.length === 0) {
293
+ return undefined;
294
+ }
295
+ if (isUrl(input)) {
296
+ return input;
297
+ }
298
+ if (isUrl(input) || input.includes('https://') || input.includes('http')) {
299
+ return input;
300
+ }
301
+ if (input.startsWith('/ipfs/')) {
302
+ return getRandomIpfsGateway() + input.split('/ipfs/')[1];
303
+ }
304
+ if (!input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
305
+ // just the IPFS hash
306
+ return getRandomIpfsGateway() + input;
307
+ }
308
+ if (input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
309
+ // starts with ipfs://
310
+ return getRandomIpfsGateway() + input.split('ipfs://')[1];
311
+ }
312
+ return getRandomIpfsGateway() + input.split('ipfs://ipfs/')[1]; // starts with ipfs://ipfs/
313
+ };
314
+
315
+ export const swParseIPFSUrl = input => {
316
+ if (!input || input.length === 0) {
317
+ return undefined;
318
+ }
319
+ if (isUrl(input)) {
320
+ return input;
321
+ }
322
+ if (isUrl(input) || input.includes('https://') || input.includes('http')) {
323
+ return input;
324
+ }
325
+ if (input.startsWith('/ipfs/')) {
326
+ return SUBWALLET_IPFS + input.split('/ipfs/')[1];
327
+ }
328
+ if (!input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
329
+ // just the IPFS hash
330
+ return SUBWALLET_IPFS + input;
331
+ }
332
+ if (input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
333
+ // starts with ipfs://
334
+ return SUBWALLET_IPFS + input.split('ipfs://')[1];
335
+ }
336
+ return SUBWALLET_IPFS + input.split('ipfs://ipfs/')[1]; // starts with ipfs://ipfs/
337
+ };
338
+
290
339
  export function wait(milliseconds) {
291
340
  return new Promise(resolve => {
292
341
  setTimeout(() => {
@@ -297,6 +346,9 @@ export function wait(milliseconds) {
297
346
  export * from "./account.js";
298
347
  export * from "./array.js";
299
348
  export * from "./environment.js";
349
+ export * from "./number.js";
300
350
  export * from "./lazy.js";
351
+ export * from "./promise.js";
301
352
  export * from "./registry.js";
302
- export * from "./translate.js";
353
+ export * from "./translate.js";
354
+ export * from "./object.js";
@@ -0,0 +1 @@
1
+ export declare function isEmptyObject(input: Record<any, any>): boolean;