@subwallet/extension-base 1.1.28-1 → 1.1.28-beta.2

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 +57 -4
  26. package/cjs/koni/background/handlers/index.js +4 -2
  27. package/cjs/koni/background/subscription.js +89 -19
  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 +220 -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 +170 -0
  39. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +198 -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 +259 -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 +182 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +375 -0
  45. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +373 -0
  46. package/cjs/services/earning-service/handlers/native-staking/astar.js +446 -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 +375 -0
  51. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +529 -0
  52. package/cjs/services/earning-service/handlers/nomination-pool/index.js +521 -0
  53. package/cjs/services/earning-service/handlers/special.js +411 -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 +180 -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 +56 -4
  136. package/koni/background/handlers/index.js +4 -2
  137. package/koni/background/subscription.d.ts +5 -1
  138. package/koni/background/subscription.js +91 -21
  139. package/package.json +317 -4
  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 +107 -0
  154. package/services/earning-service/handlers/base.js +213 -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 +162 -0
  163. package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
  164. package/services/earning-service/handlers/liquid-staking/acala.js +190 -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 +248 -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 +174 -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 +365 -0
  175. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  176. package/services/earning-service/handlers/native-staking/amplitude.js +364 -0
  177. package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
  178. package/services/earning-service/handlers/native-staking/astar.js +436 -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 +367 -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 +520 -0
  189. package/services/earning-service/handlers/nomination-pool/index.d.ts +33 -0
  190. package/services/earning-service/handlers/nomination-pool/index.js +511 -0
  191. package/services/earning-service/handlers/special.d.ts +58 -0
  192. package/services/earning-service/handlers/special.js +403 -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 +178 -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 +208 -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,208 @@
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
+ * */
32
+ export interface BaseYieldPoolMetadata {
33
+ /** Pool's description */
34
+ description: string;
35
+ /** Pool's name */
36
+ name: string;
37
+ /** Pool's short name */
38
+ shortName: string;
39
+ /** Pool's logo */
40
+ logo: string;
41
+ /** Input token (slug) */
42
+ inputAsset: string;
43
+ /** Is the pool available? */
44
+ isAvailable: boolean;
45
+ /** Allow to cancel un-stake */
46
+ allowCancelUnstaking: boolean;
47
+ }
48
+ /**
49
+ * @interface NormalYieldPoolMetadata
50
+ * @extends BaseYieldPoolMetadata
51
+ * */
52
+ export declare type NormalYieldPoolMetadata = BaseYieldPoolMetadata;
53
+ /**
54
+ * @interface SpecialYieldPoolMetadata
55
+ * @extends BaseYieldPoolMetadata
56
+ * @prop {string[]} derivativeAssets - Array of derivative tokens (slug)
57
+ * @prop {string[]} rewardAssets - Array of reward tokens (slug)
58
+ * @prop {string[]} feeAssets - Array of fee tokens (slug)
59
+ * @prop {string} [altInputAssets] - Alt input token (slug) - optional
60
+ * */
61
+ export interface SpecialYieldPoolMetadata extends BaseYieldPoolMetadata {
62
+ /** Array of derivative tokens (slug) */
63
+ derivativeAssets: string[];
64
+ /** Array of reward tokens (slug) */
65
+ rewardAssets: string[];
66
+ /** Alt input token (slug) - optional */
67
+ altInputAssets?: string;
68
+ /**
69
+ * Array of fee tokens (slug)
70
+ * <p>
71
+ * If the pool has more than one token, the mint step can use input token for fee instead native token
72
+ * </p>
73
+ * */
74
+ feeAssets: string[];
75
+ }
76
+ /**
77
+ * @description Required data
78
+ * */
79
+ export declare type YieldPoolMetadata = NormalYieldPoolMetadata | SpecialYieldPoolMetadata;
80
+ /**
81
+ * @interface BaseYieldPoolStatistic
82
+ * @description Statistic data of pool
83
+ * @prop {number} maxCandidatePerFarmer - Max candidates per farmer
84
+ * @prop {number} maxWithdrawalRequestPerFarmer - Max withdrawal request per farmer
85
+ * @prop {string} minJoinPool - Min amount to join pool
86
+ * @prop {number} [farmerCount] - Total farmer
87
+ * @prop {string} [tvl] - Total value staked in pool
88
+ * @prop {number} [totalApy] - Total apy of earning assets
89
+ * @prop {number} [totalApr] - Total apr of earning assets
90
+ * */
91
+ export interface BaseYieldPoolStatistic {
92
+ /** Max candidate per farmer */
93
+ maxCandidatePerFarmer: number;
94
+ /** Max withdrawal request per farmer */
95
+ maxWithdrawalRequestPerFarmer: number;
96
+ /** Min amount to join pool */
97
+ minJoinPool: string;
98
+ /** Total farmer */
99
+ farmerCount?: number;
100
+ /** Total value staked in pool */
101
+ tvl?: string;
102
+ /** Total apy of earning assets */
103
+ totalApy?: number;
104
+ /** Total apr of earning assets */
105
+ totalApr?: number;
106
+ }
107
+ /**
108
+ * @interface NormalYieldPoolStatistic
109
+ * @extends BaseYieldPoolStatistic
110
+ * @prop {number} era - Current era of network
111
+ * @prop {number} unstakingPeriod - Time to wait withdraw un-stake, in hour
112
+ * @prop {number} [inflation] - Inflation rate
113
+ * */
114
+ export interface NormalYieldPoolStatistic extends BaseYieldPoolStatistic {
115
+ /** Current era of network */
116
+ era: number;
117
+ /** Time to wait withdraw un-stake, in hour */
118
+ unstakingPeriod: number;
119
+ /** Inflation rate */
120
+ inflation?: number;
121
+ }
122
+ /**
123
+ * @interface SpecialYieldPoolStatistic
124
+ * @extends BaseYieldPoolStatistic
125
+ * @prop {YieldAssetEarningStats[]} assetEarning - Info for asset earning
126
+ * @prop {string} minWithdrawal - Min amount for withdrawal request
127
+ * */
128
+ export interface SpecialYieldPoolStatistic extends BaseYieldPoolStatistic {
129
+ /** Info for asset earning */
130
+ assetEarning: YieldAssetEarningStats[];
131
+ /** Min amount for withdrawal request */
132
+ minWithdrawal: string;
133
+ }
134
+ export declare type YieldPoolStatistic = NormalYieldPoolStatistic | SpecialYieldPoolStatistic;
135
+ /**
136
+ * @interface AbstractYieldPoolInfo
137
+ * @extends BasePoolInfo
138
+ * @prop {string} description - Pool's description
139
+ * @prop {string} name - Pool's name
140
+ * @prop {string} shortName - Pool's short name
141
+ * @prop {string} logo - Pool's logo
142
+ * @prop {YieldPoolStatistic} [statistic] - Pool's metadata
143
+ * */
144
+ export interface AbstractYieldPoolInfo extends BasePoolInfo {
145
+ metadata: YieldPoolMetadata;
146
+ /** Pool's metadata */
147
+ statistic?: YieldPoolStatistic;
148
+ }
149
+ /**
150
+ * @interface SpecialYieldPoolInfo
151
+ * @extends AbstractYieldPoolInfo
152
+ * @prop {SpecialYieldPoolStatistic} [statistic] - Pool's metadata
153
+ * */
154
+ export interface SpecialYieldPoolInfo extends AbstractYieldPoolInfo {
155
+ type: YieldPoolType.LIQUID_STAKING | YieldPoolType.LENDING;
156
+ metadata: SpecialYieldPoolMetadata;
157
+ statistic?: SpecialYieldPoolStatistic;
158
+ }
159
+ /**
160
+ * @interface LiquidYieldPoolInfo
161
+ * @extends SpecialYieldPoolInfo
162
+ * @prop {YieldPoolType.LIQUID_STAKING} type - Pool's type
163
+ * */
164
+ export interface LiquidYieldPoolInfo extends SpecialYieldPoolInfo {
165
+ type: YieldPoolType.LIQUID_STAKING;
166
+ }
167
+ /**
168
+ * @interface LendingYieldPoolInfo
169
+ * @extends SpecialYieldPoolInfo
170
+ * @prop {YieldPoolType.LENDING} type - Pool's type
171
+ * */
172
+ export interface LendingYieldPoolInfo extends SpecialYieldPoolInfo {
173
+ type: YieldPoolType.LENDING;
174
+ }
175
+ /**
176
+ * @interface NominationYieldPoolInfo
177
+ * @extends AbstractYieldPoolInfo
178
+ * @prop {YieldPoolType.NOMINATION_POOL} type - Pool's type
179
+ * @prop {NormalYieldPoolStatistic} [statistic] - Pool's metadata
180
+ * */
181
+ export interface NominationYieldPoolInfo extends AbstractYieldPoolInfo {
182
+ type: YieldPoolType.NOMINATION_POOL;
183
+ metadata: NormalYieldPoolMetadata;
184
+ statistic?: NormalYieldPoolStatistic;
185
+ }
186
+ /**
187
+ * @interface NativeYieldPoolInfo
188
+ * @extends AbstractYieldPoolInfo
189
+ * @prop {YieldPoolType.NATIVE_STAKING} type - Pool's type
190
+ * @prop {NormalYieldPoolStatistic} [statistic] - Pool's metadata
191
+ * */
192
+ export interface NativeYieldPoolInfo extends AbstractYieldPoolInfo {
193
+ type: YieldPoolType.NATIVE_STAKING;
194
+ metadata: NormalYieldPoolMetadata;
195
+ statistic?: NormalYieldPoolStatistic;
196
+ }
197
+ /**
198
+ * Info of yield pool
199
+ * */
200
+ export declare type YieldPoolInfo = NativeYieldPoolInfo | NominationYieldPoolInfo | LiquidYieldPoolInfo | LendingYieldPoolInfo;
201
+ /**
202
+ * @interface YieldAssetExpectedEarning
203
+ * Pool expected return
204
+ * */
205
+ export interface YieldAssetExpectedEarning {
206
+ apy?: number;
207
+ rewardInToken?: number;
208
+ }
@@ -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;
@@ -0,0 +1,6 @@
1
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export function isEmptyObject(input) {
5
+ return Object.keys(input).length === 0;
6
+ }