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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/background/KoniTypes.d.ts +92 -68
  2. package/background/KoniTypes.js +16 -13
  3. package/background/errors/TransactionError.js +9 -0
  4. package/cjs/background/KoniTypes.js +17 -16
  5. package/cjs/background/errors/TransactionError.js +9 -0
  6. package/cjs/constants/index.js +9 -3
  7. package/cjs/koni/api/dotsama/balance.js +464 -0
  8. package/cjs/koni/api/nft/config.js +33 -23
  9. package/cjs/koni/api/nft/index.js +14 -0
  10. package/cjs/koni/api/nft/nft.js +1 -22
  11. package/cjs/koni/api/nft/ordinal_nft/constants.js +21 -0
  12. package/cjs/koni/api/nft/ordinal_nft/index.js +121 -0
  13. package/cjs/koni/api/nft/ordinal_nft/utils.js +41 -0
  14. package/cjs/koni/api/staking/bonding/amplitude.js +17 -15
  15. package/cjs/koni/api/staking/bonding/astar.js +11 -10
  16. package/cjs/koni/api/staking/bonding/index.js +4 -1
  17. package/cjs/koni/api/staking/bonding/paraChain.js +25 -23
  18. package/cjs/koni/api/staking/bonding/relayChain.js +48 -45
  19. package/cjs/koni/api/staking/bonding/utils.js +104 -86
  20. package/cjs/koni/api/staking/index.js +6 -5
  21. package/cjs/koni/api/staking/paraChain.js +6 -5
  22. package/cjs/koni/api/staking/relayChain.js +3 -2
  23. package/cjs/koni/api/yield/helper/utils.js +46 -0
  24. package/cjs/koni/background/cron.js +2 -0
  25. package/cjs/koni/background/handlers/Extension.js +323 -69
  26. package/cjs/koni/background/handlers/State.js +57 -4
  27. package/cjs/koni/background/handlers/index.js +4 -2
  28. package/cjs/koni/background/subscription.js +89 -19
  29. package/cjs/services/campaign-service/index.js +9 -6
  30. package/cjs/services/chain-service/constants.js +2 -16
  31. package/cjs/services/chain-service/utils.js +7 -1
  32. package/cjs/services/earning-service/constants/chains.js +29 -0
  33. package/cjs/services/earning-service/constants/index.js +27 -0
  34. package/cjs/services/earning-service/constants/step.js +18 -0
  35. package/cjs/services/earning-service/handlers/base.js +202 -0
  36. package/cjs/services/earning-service/handlers/index.js +60 -0
  37. package/cjs/services/earning-service/handlers/lending/base.js +20 -0
  38. package/cjs/services/earning-service/handlers/lending/index.js +13 -0
  39. package/cjs/services/earning-service/handlers/lending/interlay.js +168 -0
  40. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +196 -0
  41. package/cjs/services/earning-service/handlers/liquid-staking/base.js +39 -0
  42. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +257 -0
  43. package/cjs/services/earning-service/handlers/liquid-staking/index.js +34 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +180 -0
  45. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +373 -0
  46. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +359 -0
  47. package/cjs/services/earning-service/handlers/native-staking/astar.js +426 -0
  48. package/cjs/services/earning-service/handlers/native-staking/base-para.js +137 -0
  49. package/cjs/services/earning-service/handlers/native-staking/base.js +109 -0
  50. package/cjs/services/earning-service/handlers/native-staking/index.js +34 -0
  51. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +361 -0
  52. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +512 -0
  53. package/cjs/services/earning-service/handlers/nomination-pool/index.js +501 -0
  54. package/cjs/services/earning-service/handlers/special.js +387 -0
  55. package/cjs/services/earning-service/service.js +327 -0
  56. package/cjs/services/earning-service/utils/index.js +111 -0
  57. package/cjs/services/event-service/index.js +4 -0
  58. package/cjs/services/keyring-service/index.js +14 -2
  59. package/cjs/services/migration-service/scripts/DeleteEarningData.js +21 -0
  60. package/cjs/services/migration-service/scripts/EnableEarningChains.js +21 -0
  61. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +17 -0
  62. package/cjs/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  63. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +17 -0
  64. package/cjs/services/migration-service/scripts/MigrateProvider.js +29 -0
  65. package/cjs/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  66. package/cjs/services/migration-service/scripts/index.js +4 -0
  67. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +149 -0
  68. package/cjs/services/mint-campaign-service/campaigns/index.js +13 -0
  69. package/cjs/services/mint-campaign-service/constants.js +11 -0
  70. package/cjs/services/mint-campaign-service/index.js +18 -0
  71. package/cjs/services/notification-service/NotificationService.js +1 -1
  72. package/cjs/services/storage-service/DatabaseService.js +47 -0
  73. package/cjs/services/storage-service/databases/index.js +4 -0
  74. package/cjs/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  75. package/cjs/services/storage-service/db-stores/YieldPoolStore.js +36 -0
  76. package/cjs/services/storage-service/db-stores/YieldPositionStore.js +65 -0
  77. package/cjs/services/storage-service/index.js +241 -0
  78. package/cjs/services/transaction-service/event-parser/index.js +58 -0
  79. package/cjs/services/transaction-service/helpers/index.js +3 -1
  80. package/cjs/services/transaction-service/index.js +180 -74
  81. package/cjs/services/transaction-service/utils.js +1 -0
  82. package/cjs/types/campaigns/index.js +16 -0
  83. package/cjs/types/campaigns/unlock-dot.js +1 -0
  84. package/cjs/types/index.js +44 -0
  85. package/cjs/types/ordinal.js +1 -0
  86. package/cjs/types/transaction.js +1 -0
  87. package/cjs/types/yield/actions/index.js +27 -0
  88. package/cjs/types/yield/actions/join/index.js +38 -0
  89. package/cjs/types/yield/actions/join/step.js +37 -0
  90. package/cjs/types/yield/actions/join/submit.js +1 -0
  91. package/cjs/types/yield/actions/join/validate.js +16 -0
  92. package/cjs/types/yield/actions/others.js +1 -0
  93. package/cjs/types/yield/index.js +27 -0
  94. package/cjs/types/yield/info/account/index.js +49 -0
  95. package/cjs/types/yield/info/account/info.js +1 -0
  96. package/cjs/types/yield/info/account/reward.js +1 -0
  97. package/cjs/types/yield/info/account/target.js +32 -0
  98. package/cjs/types/yield/info/account/unstake.js +27 -0
  99. package/cjs/types/yield/info/base.js +34 -0
  100. package/cjs/types/yield/info/chain/index.js +27 -0
  101. package/cjs/types/yield/info/chain/info.js +1 -0
  102. package/cjs/types/yield/info/chain/target.js +1 -0
  103. package/cjs/types/yield/info/index.js +49 -0
  104. package/cjs/types/yield/info/pallet.js +15 -0
  105. package/cjs/types.js +1 -0
  106. package/cjs/utils/address.js +34 -0
  107. package/cjs/utils/fetchStaticData.js +2 -1
  108. package/cjs/utils/index.js +89 -1
  109. package/cjs/utils/keyring.js +57 -0
  110. package/cjs/utils/object.js +12 -0
  111. package/constants/index.d.ts +2 -0
  112. package/constants/index.js +2 -0
  113. package/koni/api/nft/config.js +33 -23
  114. package/koni/api/nft/index.js +15 -1
  115. package/koni/api/nft/nft.js +2 -23
  116. package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
  117. package/koni/api/nft/ordinal_nft/constants.js +12 -0
  118. package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
  119. package/koni/api/nft/ordinal_nft/index.js +114 -0
  120. package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
  121. package/koni/api/nft/ordinal_nft/utils.js +33 -0
  122. package/koni/api/staking/bonding/amplitude.js +11 -9
  123. package/koni/api/staking/bonding/astar.js +9 -8
  124. package/koni/api/staking/bonding/index.d.ts +1 -1
  125. package/koni/api/staking/bonding/index.js +5 -1
  126. package/koni/api/staking/bonding/paraChain.js +12 -10
  127. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  128. package/koni/api/staking/bonding/relayChain.js +33 -30
  129. package/koni/api/staking/bonding/utils.d.ts +15 -38
  130. package/koni/api/staking/bonding/utils.js +85 -69
  131. package/koni/api/staking/index.js +2 -1
  132. package/koni/api/staking/paraChain.js +7 -6
  133. package/koni/api/staking/relayChain.js +4 -3
  134. package/koni/api/yield/helper/utils.d.ts +10 -0
  135. package/koni/api/yield/helper/utils.js +32 -0
  136. package/koni/background/cron.js +2 -0
  137. package/koni/background/handlers/Extension.d.ts +14 -1
  138. package/koni/background/handlers/Extension.js +282 -30
  139. package/koni/background/handlers/State.d.ts +18 -2
  140. package/koni/background/handlers/State.js +56 -4
  141. package/koni/background/handlers/index.js +4 -2
  142. package/koni/background/subscription.d.ts +5 -1
  143. package/koni/background/subscription.js +91 -21
  144. package/package.json +307 -4
  145. package/services/campaign-service/index.js +9 -6
  146. package/services/chain-service/constants.d.ts +0 -11
  147. package/services/chain-service/constants.js +1 -14
  148. package/services/chain-service/utils.d.ts +1 -0
  149. package/services/chain-service/utils.js +5 -1
  150. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
  151. package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
  152. package/services/earning-service/constants/chains.d.ts +14 -0
  153. package/services/earning-service/constants/chains.js +21 -0
  154. package/services/earning-service/constants/index.d.ts +2 -0
  155. package/services/earning-service/constants/index.js +5 -0
  156. package/services/earning-service/constants/step.d.ts +3 -0
  157. package/services/earning-service/constants/step.js +10 -0
  158. package/services/earning-service/handlers/base.d.ts +105 -0
  159. package/services/earning-service/handlers/base.js +195 -0
  160. package/services/earning-service/handlers/index.d.ts +5 -0
  161. package/services/earning-service/handlers/index.js +8 -0
  162. package/services/earning-service/handlers/lending/base.d.ts +6 -0
  163. package/services/earning-service/handlers/lending/base.js +12 -0
  164. package/services/earning-service/handlers/lending/index.d.ts +1 -0
  165. package/services/earning-service/handlers/lending/index.js +4 -0
  166. package/services/earning-service/handlers/lending/interlay.d.ts +22 -0
  167. package/services/earning-service/handlers/lending/interlay.js +160 -0
  168. package/services/earning-service/handlers/liquid-staking/acala.d.ts +27 -0
  169. package/services/earning-service/handlers/liquid-staking/acala.js +188 -0
  170. package/services/earning-service/handlers/liquid-staking/base.d.ts +8 -0
  171. package/services/earning-service/handlers/liquid-staking/base.js +31 -0
  172. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +44 -0
  173. package/services/earning-service/handlers/liquid-staking/bifrost.js +246 -0
  174. package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
  175. package/services/earning-service/handlers/liquid-staking/index.js +7 -0
  176. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +27 -0
  177. package/services/earning-service/handlers/liquid-staking/parallel.js +172 -0
  178. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +36 -0
  179. package/services/earning-service/handlers/liquid-staking/stella-swap.js +363 -0
  180. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  181. package/services/earning-service/handlers/native-staking/amplitude.js +350 -0
  182. package/services/earning-service/handlers/native-staking/astar.d.ts +18 -0
  183. package/services/earning-service/handlers/native-staking/astar.js +416 -0
  184. package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
  185. package/services/earning-service/handlers/native-staking/base-para.js +129 -0
  186. package/services/earning-service/handlers/native-staking/base.d.ts +19 -0
  187. package/services/earning-service/handlers/native-staking/base.js +101 -0
  188. package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
  189. package/services/earning-service/handlers/native-staking/index.js +7 -0
  190. package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
  191. package/services/earning-service/handlers/native-staking/para-chain.js +353 -0
  192. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
  193. package/services/earning-service/handlers/native-staking/relay-chain.js +503 -0
  194. package/services/earning-service/handlers/nomination-pool/index.d.ts +33 -0
  195. package/services/earning-service/handlers/nomination-pool/index.js +492 -0
  196. package/services/earning-service/handlers/special.d.ts +56 -0
  197. package/services/earning-service/handlers/special.js +379 -0
  198. package/services/earning-service/service.d.ts +36 -0
  199. package/services/earning-service/service.js +320 -0
  200. package/services/earning-service/utils/index.d.ts +14 -0
  201. package/services/earning-service/utils/index.js +100 -0
  202. package/services/event-service/index.d.ts +1 -0
  203. package/services/event-service/index.js +4 -0
  204. package/services/event-service/types.d.ts +8 -0
  205. package/services/keyring-service/index.d.ts +2 -1
  206. package/services/keyring-service/index.js +14 -2
  207. package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
  208. package/services/migration-service/scripts/DeleteEarningData.js +13 -0
  209. package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
  210. package/services/migration-service/scripts/EnableEarningChains.js +13 -0
  211. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  212. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  213. package/services/migration-service/scripts/index.js +4 -0
  214. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
  215. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
  216. package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
  217. package/services/mint-campaign-service/campaigns/index.js +4 -0
  218. package/services/mint-campaign-service/constants.d.ts +1 -0
  219. package/services/mint-campaign-service/constants.js +4 -0
  220. package/services/mint-campaign-service/index.d.ts +7 -0
  221. package/services/mint-campaign-service/index.js +11 -0
  222. package/services/notification-service/NotificationService.js +1 -1
  223. package/services/storage-service/DatabaseService.d.ts +17 -1
  224. package/services/storage-service/DatabaseService.js +47 -0
  225. package/services/storage-service/databases/index.d.ts +3 -1
  226. package/services/storage-service/databases/index.js +4 -0
  227. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  228. package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
  229. package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
  230. package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
  231. package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
  232. package/services/subscan-service/index.d.ts +2 -2
  233. package/services/transaction-service/event-parser/index.d.ts +3 -1
  234. package/services/transaction-service/event-parser/index.js +57 -1
  235. package/services/transaction-service/helpers/index.js +3 -1
  236. package/services/transaction-service/index.d.ts +4 -15
  237. package/services/transaction-service/index.js +178 -72
  238. package/services/transaction-service/types.d.ts +2 -0
  239. package/services/transaction-service/utils.js +1 -0
  240. package/types/campaigns/index.d.ts +1 -0
  241. package/types/campaigns/index.js +4 -0
  242. package/types/campaigns/unlock-dot.d.ts +71 -0
  243. package/types/campaigns/unlock-dot.js +1 -0
  244. package/types/index.d.ts +5 -0
  245. package/types/index.js +5 -1
  246. package/types/ordinal.d.ts +69 -0
  247. package/types/ordinal.js +1 -0
  248. package/types/transaction.d.ts +3 -0
  249. package/types/transaction.js +1 -0
  250. package/types/yield/actions/index.d.ts +2 -0
  251. package/types/yield/actions/index.js +5 -0
  252. package/types/yield/actions/join/index.d.ts +3 -0
  253. package/types/yield/actions/join/index.js +6 -0
  254. package/types/yield/actions/join/step.d.ts +75 -0
  255. package/types/yield/actions/join/step.js +34 -0
  256. package/types/yield/actions/join/submit.d.ts +53 -0
  257. package/types/yield/actions/join/submit.js +1 -0
  258. package/types/yield/actions/join/validate.d.ts +18 -0
  259. package/types/yield/actions/join/validate.js +10 -0
  260. package/types/yield/actions/others.d.ts +60 -0
  261. package/types/yield/actions/others.js +1 -0
  262. package/types/yield/index.d.ts +2 -0
  263. package/types/yield/index.js +5 -0
  264. package/types/yield/info/account/index.d.ts +4 -0
  265. package/types/yield/info/account/index.js +7 -0
  266. package/types/yield/info/account/info.d.ts +112 -0
  267. package/types/yield/info/account/info.js +1 -0
  268. package/types/yield/info/account/reward.d.ts +41 -0
  269. package/types/yield/info/account/reward.js +1 -0
  270. package/types/yield/info/account/target.d.ts +43 -0
  271. package/types/yield/info/account/target.js +27 -0
  272. package/types/yield/info/account/unstake.d.ts +31 -0
  273. package/types/yield/info/account/unstake.js +22 -0
  274. package/types/yield/info/base.d.ts +28 -0
  275. package/types/yield/info/base.js +28 -0
  276. package/types/yield/info/chain/index.d.ts +2 -0
  277. package/types/yield/info/chain/index.js +5 -0
  278. package/types/yield/info/chain/info.d.ts +190 -0
  279. package/types/yield/info/chain/info.js +1 -0
  280. package/types/yield/info/chain/target.d.ts +33 -0
  281. package/types/yield/info/chain/target.js +1 -0
  282. package/types/yield/info/index.d.ts +4 -0
  283. package/types/yield/info/index.js +7 -0
  284. package/types/yield/info/pallet.d.ts +143 -0
  285. package/types/yield/info/pallet.js +9 -0
  286. package/utils/fetchStaticData.js +2 -1
  287. package/utils/index.d.ts +5 -0
  288. package/utils/index.js +53 -1
  289. package/utils/object.d.ts +1 -0
  290. package/utils/object.js +6 -0
@@ -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,28 @@
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
+ }
@@ -0,0 +1,28 @@
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
+ (function (YieldCompoundingPeriod) {
24
+ YieldCompoundingPeriod[YieldCompoundingPeriod["DAILY"] = 1] = "DAILY";
25
+ YieldCompoundingPeriod[YieldCompoundingPeriod["WEEKLY"] = 7] = "WEEKLY";
26
+ YieldCompoundingPeriod[YieldCompoundingPeriod["MONTHLY"] = 30] = "MONTHLY";
27
+ YieldCompoundingPeriod[YieldCompoundingPeriod["YEARLY"] = 365] = "YEARLY";
28
+ })(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,190 @@
1
+ import { 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 {boolean} isAvailable - Is the pool available?
25
+ * @prop {string} inputAsset - Input token (slug)
26
+ * @prop {number} maxCandidatePerFarmer - Max candidates per farmer
27
+ * @prop {number} maxWithdrawalRequestPerFarmer - Max withdrawal request per farmer
28
+ * @prop {string} minJoinPool - Min amount to join pool
29
+ * @prop {number} [farmerCount] - Total farmer
30
+ * @prop {string} [tvl] - Total value staked in pool
31
+ * @prop {number} [totalApy] - Total apy of earning assets
32
+ * @prop {number} [totalApr] - Total apr of earning assets
33
+ * @prop {boolean} allowCancelUnstaking - Allow canceling un-stake
34
+ * */
35
+ export interface BaseYieldPoolMetadata {
36
+ /** Input token (slug) */
37
+ inputAsset: string;
38
+ /** Is the pool available? */
39
+ isAvailable: boolean;
40
+ /** Max candidate per farmer */
41
+ maxCandidatePerFarmer: number;
42
+ /** Max withdrawal request per farmer */
43
+ maxWithdrawalRequestPerFarmer: number;
44
+ /** Min amount to join pool */
45
+ minJoinPool: string;
46
+ /** Total farmer */
47
+ farmerCount?: number;
48
+ /** Total value staked in pool */
49
+ tvl?: string;
50
+ /** Total apy of earning assets */
51
+ totalApy?: number;
52
+ /** Total apr of earning assets */
53
+ totalApr?: number;
54
+ /** Allow to cancel un-stake */
55
+ allowCancelUnstaking: boolean;
56
+ }
57
+ /**
58
+ * @interface NormalYieldPoolMetadata
59
+ * @extends BaseYieldPoolMetadata
60
+ * @prop {number} era - Current era of network
61
+ * @prop {number} unstakingPeriod - Time to wait withdraw un-stake, in hour
62
+ * @prop {number} [inflation] - Inflation rate
63
+ * */
64
+ export interface NormalYieldPoolMetadata extends BaseYieldPoolMetadata {
65
+ /** Current era of network */
66
+ era: number;
67
+ /** Time to wait withdraw un-stake, in hour */
68
+ unstakingPeriod: number;
69
+ /** Inflation rate */
70
+ inflation?: number;
71
+ }
72
+ /**
73
+ * @interface SpecialYieldPoolMetadata
74
+ * @extends BaseYieldPoolMetadata
75
+ * @prop {number} [era] - Current era of network
76
+ * @prop {number} [unstakingPeriod] - Time to wait withdraw un-stake, in hour
77
+ * @prop {number} [inflation] - Inflation rate
78
+ * @prop {string[]} derivativeAssets - Array of derivative tokens (slug)
79
+ * @prop {string[]} rewardAssets - Array of reward tokens (slug)
80
+ * @prop {string[]} feeAssets - Array of fee tokens (slug)
81
+ * @prop {string} [altInputAssets] - Alt input token (slug) - optional
82
+ * */
83
+ export interface SpecialYieldPoolMetadata extends BaseYieldPoolMetadata {
84
+ /** Info for asset earning */
85
+ assetEarning: YieldAssetEarningStats[];
86
+ /** Min amount for withdrawal request */
87
+ minWithdrawal: string;
88
+ /** Array of derivative tokens (slug) */
89
+ derivativeAssets?: string[];
90
+ /** Array of reward tokens (slug) */
91
+ rewardAssets: string[];
92
+ /** Alt input token (slug) - optional */
93
+ altInputAssets?: string;
94
+ /**
95
+ * Array of fee tokens (slug)
96
+ * <p>
97
+ * If the pool has more than one token, the mint step can use input token for fee instead native token
98
+ * </p>
99
+ * */
100
+ feeAssets: string[];
101
+ }
102
+ export declare type YieldPoolMetadata = NormalYieldPoolMetadata | SpecialYieldPoolMetadata;
103
+ /**
104
+ * @interface AbstractYieldPoolInfo
105
+ * @prop {string} slug - Pool's slug
106
+ * @prop {string} chain - Pool's chain
107
+ * @prop {string} type - Pool's type
108
+ * @prop {string} group - Pool's group (by token)
109
+ * @prop {string} description - Pool's description
110
+ * @prop {string} name - Pool's name
111
+ * @prop {string} [logo] - Pool's logo
112
+ * @prop {YieldPoolMetadata} metadata - Pool's metadata
113
+ * */
114
+ export interface AbstractYieldPoolInfo {
115
+ /** Pool's slug */
116
+ slug: string;
117
+ /** Pool's chain */
118
+ chain: string;
119
+ /** Pool's type */
120
+ type: YieldPoolType;
121
+ /** Pool's group (by token) */
122
+ group: string;
123
+ /** Pool's description */
124
+ description: string;
125
+ /** Pool's name */
126
+ name: string;
127
+ /** Pool's short name */
128
+ shortName: string;
129
+ /** Pool's logo - optional */
130
+ logo?: string;
131
+ /** Pool's metadata */
132
+ metadata: YieldPoolMetadata;
133
+ }
134
+ /**
135
+ * @interface SpecialYieldPoolInfo
136
+ * @extends AbstractYieldPoolInfo
137
+ * @prop {SpecialYieldPoolMetadata} metadata - Pool's metadata
138
+ * */
139
+ export interface SpecialYieldPoolInfo extends AbstractYieldPoolInfo {
140
+ type: YieldPoolType.LIQUID_STAKING | YieldPoolType.LENDING;
141
+ metadata: SpecialYieldPoolMetadata;
142
+ }
143
+ /**
144
+ * @interface LiquidYieldPoolInfo
145
+ * @extends SpecialYieldPoolInfo
146
+ * @prop {YieldPoolType.LIQUID_STAKING} type - Pool's type
147
+ * */
148
+ export interface LiquidYieldPoolInfo extends SpecialYieldPoolInfo {
149
+ type: YieldPoolType.LIQUID_STAKING;
150
+ }
151
+ /**
152
+ * @interface LendingYieldPoolInfo
153
+ * @extends SpecialYieldPoolInfo
154
+ * @prop {YieldPoolType.LENDING} type - Pool's type
155
+ * */
156
+ export interface LendingYieldPoolInfo extends SpecialYieldPoolInfo {
157
+ type: YieldPoolType.LENDING;
158
+ }
159
+ /**
160
+ * @interface NominationYieldPoolInfo
161
+ * @extends AbstractYieldPoolInfo
162
+ * @prop {YieldPoolType.NOMINATION_POOL} type - Pool's type
163
+ * @prop {NormalYieldPoolMetadata} metadata - Pool's metadata
164
+ * */
165
+ export interface NominationYieldPoolInfo extends AbstractYieldPoolInfo {
166
+ type: YieldPoolType.NOMINATION_POOL;
167
+ metadata: NormalYieldPoolMetadata;
168
+ }
169
+ /**
170
+ * @interface NativeYieldPoolInfo
171
+ * @extends AbstractYieldPoolInfo
172
+ * @prop {YieldPoolType.NATIVE_STAKING} type - Pool's type
173
+ * @prop {NormalYieldPoolMetadata} metadata - Pool's metadata
174
+ * */
175
+ export interface NativeYieldPoolInfo extends AbstractYieldPoolInfo {
176
+ type: YieldPoolType.NATIVE_STAKING;
177
+ metadata: NormalYieldPoolMetadata;
178
+ }
179
+ /**
180
+ * Info of yield pool
181
+ * */
182
+ export declare type YieldPoolInfo = NativeYieldPoolInfo | NominationYieldPoolInfo | LiquidYieldPoolInfo | LendingYieldPoolInfo;
183
+ /**
184
+ * @interface YieldAssetExpectedEarning
185
+ * Pool expected return
186
+ * */
187
+ export interface YieldAssetExpectedEarning {
188
+ apy?: number;
189
+ rewardInToken?: number;
190
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
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 CollatorExtraInfo {
30
+ active: boolean;
31
+ identity?: string;
32
+ isVerified: boolean;
33
+ }
@@ -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
+ }