@subwallet/extension-base 1.1.29-0 → 1.1.29-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 (293) hide show
  1. package/background/KoniTypes.d.ts +95 -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 +19 -4
  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 +11 -1
  24. package/cjs/koni/background/handlers/Extension.js +362 -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 +95 -37
  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 +232 -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 +184 -0
  39. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +217 -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 +283 -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 +196 -0
  44. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +409 -0
  45. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +382 -0
  46. package/cjs/services/earning-service/handlers/native-staking/astar.js +459 -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 +159 -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 +383 -0
  51. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +542 -0
  52. package/cjs/services/earning-service/handlers/nomination-pool/index.js +541 -0
  53. package/cjs/services/earning-service/handlers/special.js +411 -0
  54. package/cjs/services/earning-service/service.js +387 -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/subscan-service/index.js +16 -0
  76. package/cjs/services/transaction-service/event-parser/index.js +58 -0
  77. package/cjs/services/transaction-service/helpers/index.js +3 -1
  78. package/cjs/services/transaction-service/index.js +185 -74
  79. package/cjs/services/transaction-service/utils.js +1 -0
  80. package/cjs/types/campaigns/index.js +16 -0
  81. package/cjs/types/campaigns/unlock-dot.js +1 -0
  82. package/cjs/types/index.js +44 -0
  83. package/cjs/types/ordinal.js +1 -0
  84. package/cjs/types/transaction.js +1 -0
  85. package/cjs/types/yield/actions/index.js +27 -0
  86. package/cjs/types/yield/actions/join/index.js +38 -0
  87. package/cjs/types/yield/actions/join/step.js +47 -0
  88. package/cjs/types/yield/actions/join/submit.js +1 -0
  89. package/cjs/types/yield/actions/join/validate.js +16 -0
  90. package/cjs/types/yield/actions/others.js +1 -0
  91. package/cjs/types/yield/index.js +27 -0
  92. package/cjs/types/yield/info/account/index.js +49 -0
  93. package/cjs/types/yield/info/account/info.js +1 -0
  94. package/cjs/types/yield/info/account/reward.js +1 -0
  95. package/cjs/types/yield/info/account/target.js +32 -0
  96. package/cjs/types/yield/info/account/unstake.js +27 -0
  97. package/cjs/types/yield/info/base.js +41 -0
  98. package/cjs/types/yield/info/chain/index.js +27 -0
  99. package/cjs/types/yield/info/chain/info.js +1 -0
  100. package/cjs/types/yield/info/chain/target.js +1 -0
  101. package/cjs/types/yield/info/index.js +49 -0
  102. package/cjs/types/yield/info/pallet.js +15 -0
  103. package/cjs/utils/fetchStaticData.js +2 -1
  104. package/cjs/utils/index.js +89 -1
  105. package/cjs/utils/object.js +12 -0
  106. package/cjs/utils/yield/index.js +3 -0
  107. package/constants/index.d.ts +6 -1
  108. package/constants/index.js +6 -1
  109. package/koni/api/nft/config.js +33 -23
  110. package/koni/api/nft/index.js +15 -1
  111. package/koni/api/nft/nft.js +2 -23
  112. package/koni/api/nft/ordinal_nft/constants.d.ts +9 -0
  113. package/koni/api/nft/ordinal_nft/constants.js +12 -0
  114. package/koni/api/nft/ordinal_nft/index.d.ts +8 -0
  115. package/koni/api/nft/ordinal_nft/index.js +114 -0
  116. package/koni/api/nft/ordinal_nft/utils.d.ts +2 -0
  117. package/koni/api/nft/ordinal_nft/utils.js +33 -0
  118. package/koni/api/staking/bonding/amplitude.js +11 -9
  119. package/koni/api/staking/bonding/astar.js +9 -8
  120. package/koni/api/staking/bonding/index.d.ts +1 -1
  121. package/koni/api/staking/bonding/index.js +5 -1
  122. package/koni/api/staking/bonding/paraChain.js +12 -10
  123. package/koni/api/staking/bonding/relayChain.d.ts +2 -2
  124. package/koni/api/staking/bonding/relayChain.js +33 -30
  125. package/koni/api/staking/bonding/utils.d.ts +15 -38
  126. package/koni/api/staking/bonding/utils.js +85 -69
  127. package/koni/api/staking/index.js +2 -1
  128. package/koni/api/staking/paraChain.js +7 -6
  129. package/koni/api/staking/relayChain.js +4 -3
  130. package/koni/api/yield/helper/utils.d.ts +10 -0
  131. package/koni/api/yield/helper/utils.js +32 -0
  132. package/koni/background/cron.d.ts +1 -0
  133. package/koni/background/cron.js +12 -2
  134. package/koni/background/handlers/Extension.d.ts +17 -1
  135. package/koni/background/handlers/Extension.js +321 -30
  136. package/koni/background/handlers/State.d.ts +18 -2
  137. package/koni/background/handlers/State.js +50 -3
  138. package/koni/background/handlers/index.js +4 -2
  139. package/koni/background/subscription.d.ts +6 -1
  140. package/koni/background/subscription.js +97 -38
  141. package/package.json +316 -3
  142. package/services/campaign-service/index.js +9 -6
  143. package/services/chain-service/constants.d.ts +0 -11
  144. package/services/chain-service/constants.js +1 -14
  145. package/services/chain-service/utils.d.ts +1 -0
  146. package/services/chain-service/utils.js +5 -1
  147. package/services/earning-service/constants/abis/compound_finance_v2_abi.json +1235 -0
  148. package/services/earning-service/constants/abis/st_liquid_token_abi.json +1355 -0
  149. package/services/earning-service/constants/chains.d.ts +14 -0
  150. package/services/earning-service/constants/chains.js +21 -0
  151. package/services/earning-service/constants/index.d.ts +2 -0
  152. package/services/earning-service/constants/index.js +5 -0
  153. package/services/earning-service/constants/step.d.ts +3 -0
  154. package/services/earning-service/constants/step.js +10 -0
  155. package/services/earning-service/handlers/base.d.ts +112 -0
  156. package/services/earning-service/handlers/base.js +226 -0
  157. package/services/earning-service/handlers/index.d.ts +5 -0
  158. package/services/earning-service/handlers/index.js +8 -0
  159. package/services/earning-service/handlers/lending/base.d.ts +6 -0
  160. package/services/earning-service/handlers/lending/base.js +12 -0
  161. package/services/earning-service/handlers/lending/index.d.ts +1 -0
  162. package/services/earning-service/handlers/lending/index.js +4 -0
  163. package/services/earning-service/handlers/lending/interlay.d.ts +23 -0
  164. package/services/earning-service/handlers/lending/interlay.js +176 -0
  165. package/services/earning-service/handlers/liquid-staking/acala.d.ts +26 -0
  166. package/services/earning-service/handlers/liquid-staking/acala.js +209 -0
  167. package/services/earning-service/handlers/liquid-staking/base.d.ts +9 -0
  168. package/services/earning-service/handlers/liquid-staking/base.js +35 -0
  169. package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +45 -0
  170. package/services/earning-service/handlers/liquid-staking/bifrost.js +272 -0
  171. package/services/earning-service/handlers/liquid-staking/index.d.ts +4 -0
  172. package/services/earning-service/handlers/liquid-staking/index.js +7 -0
  173. package/services/earning-service/handlers/liquid-staking/parallel.d.ts +25 -0
  174. package/services/earning-service/handlers/liquid-staking/parallel.js +188 -0
  175. package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +34 -0
  176. package/services/earning-service/handlers/liquid-staking/stella-swap.js +399 -0
  177. package/services/earning-service/handlers/native-staking/amplitude.d.ts +22 -0
  178. package/services/earning-service/handlers/native-staking/amplitude.js +373 -0
  179. package/services/earning-service/handlers/native-staking/astar.d.ts +19 -0
  180. package/services/earning-service/handlers/native-staking/astar.js +449 -0
  181. package/services/earning-service/handlers/native-staking/base-para.d.ts +11 -0
  182. package/services/earning-service/handlers/native-staking/base-para.js +129 -0
  183. package/services/earning-service/handlers/native-staking/base.d.ts +21 -0
  184. package/services/earning-service/handlers/native-staking/base.js +150 -0
  185. package/services/earning-service/handlers/native-staking/index.d.ts +4 -0
  186. package/services/earning-service/handlers/native-staking/index.js +7 -0
  187. package/services/earning-service/handlers/native-staking/para-chain.d.ts +15 -0
  188. package/services/earning-service/handlers/native-staking/para-chain.js +375 -0
  189. package/services/earning-service/handlers/native-staking/relay-chain.d.ts +21 -0
  190. package/services/earning-service/handlers/native-staking/relay-chain.js +533 -0
  191. package/services/earning-service/handlers/nomination-pool/index.d.ts +35 -0
  192. package/services/earning-service/handlers/nomination-pool/index.js +531 -0
  193. package/services/earning-service/handlers/special.d.ts +56 -0
  194. package/services/earning-service/handlers/special.js +403 -0
  195. package/services/earning-service/service.d.ts +45 -0
  196. package/services/earning-service/service.js +379 -0
  197. package/services/earning-service/utils/index.d.ts +18 -0
  198. package/services/earning-service/utils/index.js +112 -0
  199. package/services/event-service/index.d.ts +1 -0
  200. package/services/event-service/index.js +4 -0
  201. package/services/event-service/types.d.ts +8 -0
  202. package/services/keyring-service/index.d.ts +2 -1
  203. package/services/keyring-service/index.js +14 -2
  204. package/services/migration-service/scripts/DeleteEarningData.d.ts +4 -0
  205. package/services/migration-service/scripts/DeleteEarningData.js +13 -0
  206. package/services/migration-service/scripts/EnableEarningChains.d.ts +4 -0
  207. package/services/migration-service/scripts/EnableEarningChains.js +13 -0
  208. package/services/migration-service/scripts/MigrateLedgerAccount.js +1 -1
  209. package/services/migration-service/scripts/MigrateTransactionHistory.js +1 -1
  210. package/services/migration-service/scripts/databases/MigrateEarningHistory.d.ts +4 -0
  211. package/services/migration-service/scripts/databases/MigrateEarningHistory.js +13 -0
  212. package/services/migration-service/scripts/databases/MigrateEarningVersion.d.ts +4 -0
  213. package/services/migration-service/scripts/databases/MigrateEarningVersion.js +13 -0
  214. package/services/migration-service/scripts/index.js +7 -1
  215. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.d.ts +13 -0
  216. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +139 -0
  217. package/services/mint-campaign-service/campaigns/index.d.ts +1 -0
  218. package/services/mint-campaign-service/campaigns/index.js +4 -0
  219. package/services/mint-campaign-service/constants.d.ts +1 -0
  220. package/services/mint-campaign-service/constants.js +4 -0
  221. package/services/mint-campaign-service/index.d.ts +7 -0
  222. package/services/mint-campaign-service/index.js +11 -0
  223. package/services/notification-service/NotificationService.js +1 -1
  224. package/services/storage-service/DatabaseService.d.ts +18 -1
  225. package/services/storage-service/DatabaseService.js +51 -0
  226. package/services/storage-service/databases/index.d.ts +3 -1
  227. package/services/storage-service/databases/index.js +4 -0
  228. package/services/storage-service/db-stores/NominatorMetadata.js +3 -3
  229. package/services/storage-service/db-stores/YieldPoolStore.d.ts +10 -0
  230. package/services/storage-service/db-stores/YieldPoolStore.js +28 -0
  231. package/services/storage-service/db-stores/YieldPositionStore.d.ts +9 -0
  232. package/services/storage-service/db-stores/YieldPositionStore.js +57 -0
  233. package/services/subscan-service/index.d.ts +3 -2
  234. package/services/subscan-service/index.js +15 -0
  235. package/services/subscan-service/types.d.ts +20 -0
  236. package/services/transaction-service/event-parser/index.d.ts +3 -1
  237. package/services/transaction-service/event-parser/index.js +57 -1
  238. package/services/transaction-service/helpers/index.js +3 -1
  239. package/services/transaction-service/index.d.ts +4 -15
  240. package/services/transaction-service/index.js +183 -72
  241. package/services/transaction-service/types.d.ts +2 -0
  242. package/services/transaction-service/utils.js +1 -0
  243. package/types/campaigns/index.d.ts +1 -0
  244. package/types/campaigns/index.js +4 -0
  245. package/types/campaigns/unlock-dot.d.ts +71 -0
  246. package/types/campaigns/unlock-dot.js +1 -0
  247. package/types/index.d.ts +5 -0
  248. package/types/index.js +5 -1
  249. package/types/ordinal.d.ts +69 -0
  250. package/types/ordinal.js +1 -0
  251. package/types/transaction.d.ts +3 -0
  252. package/types/transaction.js +1 -0
  253. package/types/yield/actions/index.d.ts +2 -0
  254. package/types/yield/actions/index.js +5 -0
  255. package/types/yield/actions/join/index.d.ts +3 -0
  256. package/types/yield/actions/join/index.js +6 -0
  257. package/types/yield/actions/join/step.d.ts +94 -0
  258. package/types/yield/actions/join/step.js +46 -0
  259. package/types/yield/actions/join/submit.d.ts +53 -0
  260. package/types/yield/actions/join/submit.js +1 -0
  261. package/types/yield/actions/join/validate.d.ts +18 -0
  262. package/types/yield/actions/join/validate.js +10 -0
  263. package/types/yield/actions/others.d.ts +63 -0
  264. package/types/yield/actions/others.js +1 -0
  265. package/types/yield/index.d.ts +2 -0
  266. package/types/yield/index.js +5 -0
  267. package/types/yield/info/account/index.d.ts +4 -0
  268. package/types/yield/info/account/index.js +7 -0
  269. package/types/yield/info/account/info.d.ts +92 -0
  270. package/types/yield/info/account/info.js +1 -0
  271. package/types/yield/info/account/reward.d.ts +45 -0
  272. package/types/yield/info/account/reward.js +1 -0
  273. package/types/yield/info/account/target.d.ts +43 -0
  274. package/types/yield/info/account/target.js +27 -0
  275. package/types/yield/info/account/unstake.d.ts +31 -0
  276. package/types/yield/info/account/unstake.js +22 -0
  277. package/types/yield/info/base.d.ts +45 -0
  278. package/types/yield/info/base.js +36 -0
  279. package/types/yield/info/chain/index.d.ts +2 -0
  280. package/types/yield/info/chain/index.js +5 -0
  281. package/types/yield/info/chain/info.d.ts +243 -0
  282. package/types/yield/info/chain/info.js +1 -0
  283. package/types/yield/info/chain/target.d.ts +37 -0
  284. package/types/yield/info/chain/target.js +1 -0
  285. package/types/yield/info/index.d.ts +4 -0
  286. package/types/yield/info/index.js +7 -0
  287. package/types/yield/info/pallet.d.ts +143 -0
  288. package/types/yield/info/pallet.js +9 -0
  289. package/utils/fetchStaticData.js +2 -1
  290. package/utils/index.d.ts +5 -0
  291. package/utils/index.js +53 -1
  292. package/utils/object.d.ts +1 -0
  293. package/utils/object.js +6 -0
@@ -9,6 +9,7 @@ var _acala_nft = require("@subwallet/extension-base/koni/api/nft/acala_nft");
9
9
  var _bit = require("@subwallet/extension-base/koni/api/nft/bit.country");
10
10
  var _evm_nft = require("@subwallet/extension-base/koni/api/nft/evm_nft");
11
11
  var _karura_nft = require("@subwallet/extension-base/koni/api/nft/karura_nft");
12
+ var _ordinal_nft = _interopRequireDefault(require("@subwallet/extension-base/koni/api/nft/ordinal_nft"));
12
13
  var _rmrk_nft = require("@subwallet/extension-base/koni/api/nft/rmrk_nft");
13
14
  var _statemine_nft = _interopRequireDefault(require("@subwallet/extension-base/koni/api/nft/statemine_nft"));
14
15
  var _unique_nft = _interopRequireDefault(require("@subwallet/extension-base/koni/api/nft/unique_nft"));
@@ -50,6 +51,9 @@ function createWeb3NftApi(chain, evmApi, addresses) {
50
51
  const [, evmAddresses] = (0, _utils2.categoryAddresses)(addresses);
51
52
  return new _evm_nft.EvmNftApi(evmApi, evmAddresses, chain);
52
53
  }
54
+ const createOrdinalApi = (chain, subscanChain, addresses) => {
55
+ return new _ordinal_nft.default(addresses, chain, subscanChain);
56
+ };
53
57
  class NftHandler {
54
58
  // General settings
55
59
  chainInfoMap = {};
@@ -130,6 +134,16 @@ class NftHandler {
130
134
  }
131
135
  }
132
136
  }
137
+ if ((0, _utils._isSupportOrdinal)(chain)) {
138
+ var _chainInfo$extraInfo;
139
+ const subscanChain = (_chainInfo$extraInfo = chainInfo.extraInfo) === null || _chainInfo$extraInfo === void 0 ? void 0 : _chainInfo$extraInfo.subscanSlug;
140
+ if (subscanChain) {
141
+ const handler = createOrdinalApi(chain, subscanChain, substrateAddresses);
142
+ if (handler && !this.handlers.includes(handler)) {
143
+ this.handlers.push(handler);
144
+ }
145
+ }
146
+ }
133
147
  });
134
148
  this.needSetupApi = false;
135
149
  }
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BaseNftApi = void 0;
7
- var _config = require("@subwallet/extension-base/koni/api/nft/config");
8
7
  var _utils = require("@subwallet/extension-base/utils");
9
8
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
10
9
  // SPDX-License-Identifier: Apache-2.0
@@ -71,27 +70,7 @@ class BaseNftApi {
71
70
  return tokenId;
72
71
  }
73
72
  parseUrl(input) {
74
- if (!input || input.length === 0) {
75
- return undefined;
76
- }
77
- if ((0, _utils.isUrl)(input)) {
78
- return input;
79
- }
80
- if ((0, _utils.isUrl)(input) || input.includes('https://') || input.includes('http')) {
81
- return input;
82
- }
83
- if (input.startsWith('/ipfs/')) {
84
- return (0, _config.getRandomIpfsGateway)() + input.split('/ipfs/')[1];
85
- }
86
- if (!input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
87
- // just the IPFS hash
88
- return (0, _config.getRandomIpfsGateway)() + input;
89
- }
90
- if (input.includes('ipfs://') && !input.includes('ipfs://ipfs/')) {
91
- // starts with ipfs://
92
- return (0, _config.getRandomIpfsGateway)() + input.split('ipfs://')[1];
93
- }
94
- return (0, _config.getRandomIpfsGateway)() + input.split('ipfs://ipfs/')[1]; // starts with ipfs://ipfs/
73
+ return (0, _utils.baseParseIPFSUrl)(input);
95
74
  }
96
75
 
97
76
  // Subclass implements this function to parse data into prop result
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GET_EXTRINSIC_PARAMS_API = exports.GET_EVENT_LIST_API = exports.BASE_FETCH_ORDINAL_EVENT_DATA = void 0;
7
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
8
+ // SPDX-License-Identifier: Apache-2.0
9
+
10
+ const GET_EVENT_LIST_API = 'https://{{chain}}.api.subscan.io/api/v2/scan/events';
11
+ exports.GET_EVENT_LIST_API = GET_EVENT_LIST_API;
12
+ const GET_EXTRINSIC_PARAMS_API = 'https://{{chain}}.api.subscan.io/api/scan/extrinsic/params';
13
+ exports.GET_EXTRINSIC_PARAMS_API = GET_EXTRINSIC_PARAMS_API;
14
+ const BASE_FETCH_ORDINAL_EVENT_DATA = {
15
+ event_id: 'Remarked',
16
+ module: 'system',
17
+ order: 'desc',
18
+ success: true,
19
+ row: 100
20
+ };
21
+ exports.BASE_FETCH_ORDINAL_EVENT_DATA = BASE_FETCH_ORDINAL_EVENT_DATA;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _constants = require("@subwallet/extension-base/constants");
8
+ var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
9
+ var _utils = require("@subwallet/extension-base/koni/api/nft/ordinal_nft/utils");
10
+ var _handlers = require("@subwallet/extension-base/koni/background/handlers");
11
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
12
+ // SPDX-License-Identifier: Apache-2.0
13
+
14
+ const parseParamData = (param, event, chain, address) => {
15
+ const ordinalData = JSON.parse(param.value);
16
+ if ('p' in ordinalData) {
17
+ const properties = {};
18
+ for (const [key, value] of Object.entries(ordinalData)) {
19
+ const _name = key.charAt(0).toUpperCase() + key.slice(1);
20
+ properties[_name] = {
21
+ value: value
22
+ };
23
+ }
24
+ properties['Block number'] = {
25
+ value: event.extrinsic_index.split('-')[0]
26
+ };
27
+ properties.Timestamp = {
28
+ value: event.block_timestamp
29
+ };
30
+ const op = ordinalData.op.charAt(0).toUpperCase() + ordinalData.op.slice(1);
31
+ const nameParams = [op];
32
+ if (ordinalData.amt !== undefined) {
33
+ nameParams.push(ordinalData.amt);
34
+ }
35
+ nameParams.push(ordinalData.tick);
36
+ const name = nameParams.join(' ');
37
+ return {
38
+ chain: chain,
39
+ collectionId: _constants.ORDINAL_COLLECTION,
40
+ id: event.extrinsic_hash,
41
+ description: JSON.stringify(ordinalData),
42
+ name,
43
+ owner: address,
44
+ properties: properties
45
+ };
46
+ }
47
+ return undefined;
48
+ };
49
+ class OrdinalNftApi extends _nft.BaseNftApi {
50
+ constructor(addresses, chain, subscanChain) {
51
+ super(chain, undefined, addresses);
52
+ this.subscanChain = subscanChain;
53
+ }
54
+ async handleNft(address, handleNftParams) {
55
+ const events = await _handlers.state.subscanService.addRequest(async () => {
56
+ return await (0, _utils.fetchRemarkEvent)(this.subscanChain, address);
57
+ });
58
+ if (events && events.length) {
59
+ const extrinsicIds = events.map(data => data.extrinsic_index);
60
+ const extrinsicParams = await _handlers.state.subscanService.addRequest(async () => {
61
+ return await (0, _utils.fetchExtrinsicParams)(this.subscanChain, extrinsicIds);
62
+ });
63
+ const items = [];
64
+ for (const data of extrinsicParams) {
65
+ const {
66
+ extrinsic_index: extrinsicIndex,
67
+ params
68
+ } = data;
69
+ const event = events.find(item => item.extrinsic_index === extrinsicIndex);
70
+ if (params.length === 1 && event) {
71
+ const [param] = params;
72
+ if (param.name === 'remark') {
73
+ const childParam = {
74
+ name: param.name,
75
+ type: param.type,
76
+ value: param.value
77
+ };
78
+ const item = parseParamData(childParam, event, this.chain, address);
79
+ if (item) {
80
+ items.push(item);
81
+ }
82
+ } else if (param.name === 'calls') {
83
+ const children = param.value;
84
+ for (const child of children) {
85
+ if (child.call_module === 'System' && child.call_name === 'remark_with_event') {
86
+ for (const childParam of child.params) {
87
+ const item = parseParamData(childParam, event, this.chain, address);
88
+ if (item) {
89
+ items.push(item);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ if (items.length) {
98
+ // handleNftParams.updateCollection(this.chain, {
99
+ // chain: this.chain,
100
+ // collectionId: ORDINAL_COLLECTION
101
+ // });
102
+
103
+ for (const item of items) {
104
+ handleNftParams.updateItem(this.chain, item, address);
105
+ }
106
+ }
107
+ }
108
+ }
109
+ async handleNfts(params) {
110
+ await Promise.all(this.addresses.map(address => this.handleNft(address, params)));
111
+ }
112
+ async fetchNfts(params) {
113
+ try {
114
+ await this.handleNfts(params);
115
+ } catch (e) {
116
+ return 0;
117
+ }
118
+ return 1;
119
+ }
120
+ }
121
+ exports.default = OrdinalNftApi;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchRemarkEvent = exports.fetchExtrinsicParams = void 0;
7
+ var _constants = require("./constants");
8
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
9
+ // SPDX-License-Identifier: Apache-2.0
10
+
11
+ const fetchRemarkEvent = async (chain, address) => {
12
+ const params = {
13
+ ..._constants.BASE_FETCH_ORDINAL_EVENT_DATA,
14
+ address
15
+ };
16
+ const response = await fetch(_constants.GET_EVENT_LIST_API.replace('{{chain}}', chain), {
17
+ method: 'POST',
18
+ headers: {
19
+ 'Content-Type': 'application/json'
20
+ },
21
+ body: JSON.stringify(params)
22
+ });
23
+ const data = await response.json();
24
+ return data.data.events;
25
+ };
26
+ exports.fetchRemarkEvent = fetchRemarkEvent;
27
+ const fetchExtrinsicParams = async (chain, extrinsicIndexes) => {
28
+ const params = {
29
+ extrinsic_index: extrinsicIndexes
30
+ };
31
+ const response = await fetch(_constants.GET_EXTRINSIC_PARAMS_API.replace('{{chain}}', chain), {
32
+ method: 'POST',
33
+ headers: {
34
+ 'Content-Type': 'application/json'
35
+ },
36
+ body: JSON.stringify(params)
37
+ });
38
+ const data = await response.json();
39
+ return data.data;
40
+ };
41
+ exports.fetchExtrinsicParams = fetchExtrinsicParams;
@@ -15,7 +15,9 @@ exports.subscribeAmplitudeStakingMetadata = subscribeAmplitudeStakingMetadata;
15
15
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
16
16
  var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
17
17
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
18
- var _utils2 = require("@subwallet/extension-base/utils");
18
+ var _utils2 = require("@subwallet/extension-base/services/earning-service/utils");
19
+ var _types = require("@subwallet/extension-base/types");
20
+ var _utils3 = require("@subwallet/extension-base/utils");
19
21
  var _util = require("@polkadot/util");
20
22
  var _utilCrypto = require("@polkadot/util-crypto");
21
23
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -24,7 +26,7 @@ var _utilCrypto = require("@polkadot/util-crypto");
24
26
  function subscribeAmplitudeStakingMetadata(chain, substrateApi, callback) {
25
27
  return substrateApi.api.query.parachainStaking.round(_round => {
26
28
  const roundObj = _round.toHuman();
27
- const round = (0, _utils2.parseRawNumber)(roundObj.current);
29
+ const round = (0, _utils3.parseRawNumber)(roundObj.current);
28
30
  const maxDelegations = substrateApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
29
31
  const minDelegatorStake = substrateApi.api.consts.parachainStaking.minDelegatorStake.toString();
30
32
  const unstakingDelay = substrateApi.api.consts.parachainStaking.stakeDuration.toString();
@@ -48,7 +50,7 @@ function subscribeAmplitudeStakingMetadata(chain, substrateApi, callback) {
48
50
  async function getAmplitudeStakingMetadata(chain, substrateApi) {
49
51
  const chainApi = await substrateApi.isReady;
50
52
  const _round = (await chainApi.api.query.parachainStaking.round()).toHuman();
51
- const round = (0, _utils2.parseRawNumber)(_round.current);
53
+ const round = (0, _utils3.parseRawNumber)(_round.current);
52
54
  const maxDelegations = chainApi.api.consts.parachainStaking.maxDelegationsPerRound.toString();
53
55
  const minDelegatorStake = chainApi.api.consts.parachainStaking.minDelegatorStake.toString();
54
56
  const unstakingDelay = chainApi.api.consts.parachainStaking.stakeDuration.toString();
@@ -75,12 +77,12 @@ async function subscribeAmplitudeNominatorMetadata(chainInfo, address, substrate
75
77
  let activeStake = '0';
76
78
  if (delegatorState) {
77
79
  // delegatorState can be null while unstaking all
78
- const [identity] = await (0, _utils.parseIdentity)(substrateApi, delegatorState.owner);
80
+ const [identity] = await (0, _utils2.parseIdentity)(substrateApi, delegatorState.owner);
79
81
  activeStake = delegatorState.amount.toString();
80
82
  const bnActiveStake = new _util.BN(activeStake);
81
- let delegationStatus = _KoniTypes.StakingStatus.NOT_EARNING;
83
+ let delegationStatus = _types.EarningStatus.NOT_EARNING;
82
84
  if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegatorStake))) {
83
- delegationStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
85
+ delegationStatus = _types.EarningStatus.EARNING_REWARD;
84
86
  }
85
87
  nominationList.push({
86
88
  status: delegationStatus,
@@ -107,13 +109,13 @@ async function subscribeAmplitudeNominatorMetadata(chainInfo, address, substrate
107
109
  const waitingTime = remainingBlock * blockDuration;
108
110
  unstakingList.push({
109
111
  chain: chainInfo.slug,
110
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
112
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
111
113
  claimable: nearestUnstakingAmount.toString(),
112
114
  waitingTime,
113
115
  validatorAddress: (delegatorState === null || delegatorState === void 0 ? void 0 : delegatorState.owner) || undefined
114
116
  });
115
117
  }
116
- const stakingStatus = (0, _utils.getStakingStatusByNominations)(new _util.BN(activeStake), nominationList);
118
+ const stakingStatus = (0, _utils.getEarningStatusByNominations)(new _util.BN(activeStake), nominationList);
117
119
  return {
118
120
  chain: chainInfo.slug,
119
121
  type: _KoniTypes.StakingType.NOMINATED,
@@ -145,7 +147,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
145
147
  chain: chainInfo.slug,
146
148
  type: _KoniTypes.StakingType.NOMINATED,
147
149
  address,
148
- status: _KoniTypes.StakingStatus.NOT_STAKING,
150
+ status: _types.EarningStatus.NOT_STAKING,
149
151
  activeStake: '0',
150
152
  nominations: [],
151
153
  unstakings: []
@@ -154,12 +156,12 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
154
156
  let activeStake = '0';
155
157
  if (delegatorState) {
156
158
  // delegatorState can be null while unstaking all
157
- const [identity] = await (0, _utils.parseIdentity)(substrateApi, delegatorState.owner);
159
+ const [identity] = await (0, _utils2.parseIdentity)(substrateApi, delegatorState.owner);
158
160
  activeStake = delegatorState.amount.toString();
159
161
  const bnActiveStake = new _util.BN(activeStake);
160
- let delegationStatus = _KoniTypes.StakingStatus.NOT_EARNING;
162
+ let delegationStatus = _types.EarningStatus.NOT_EARNING;
161
163
  if (bnActiveStake.gt(_util.BN_ZERO) && bnActiveStake.gte(new _util.BN(minDelegatorStake))) {
162
- delegationStatus = _KoniTypes.StakingStatus.EARNING_REWARD;
164
+ delegationStatus = _types.EarningStatus.EARNING_REWARD;
163
165
  }
164
166
  nominationList.push({
165
167
  status: delegationStatus,
@@ -186,7 +188,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
186
188
  const waitingTime = remainingBlock * blockDuration;
187
189
  unstakingList.push({
188
190
  chain,
189
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
191
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
190
192
  claimable: nearestUnstakingAmount.toString(),
191
193
  waitingTime,
192
194
  validatorAddress: (delegatorState === null || delegatorState === void 0 ? void 0 : delegatorState.owner) || undefined
@@ -195,7 +197,7 @@ async function getAmplitudeNominatorMetadata(chainInfo, address, substrateApi) {
195
197
  if (nominationList.length === 0 && unstakingList.length === 0) {
196
198
  return;
197
199
  }
198
- const stakingStatus = (0, _utils.getStakingStatusByNominations)(new _util.BN(activeStake), nominationList);
200
+ const stakingStatus = (0, _utils.getEarningStatusByNominations)(new _util.BN(activeStake), nominationList);
199
201
  return {
200
202
  chain,
201
203
  type: _KoniTypes.StakingType.NOMINATED,
@@ -245,7 +247,7 @@ async function getAmplitudeBondingExtrinsic(substrateApi, amount, selectedValida
245
247
  const {
246
248
  bondedValidators
247
249
  } = (0, _utils.getBondedValidators)(nominatorMetadata.nominations);
248
- if (!bondedValidators.includes((0, _utils2.reformatAddress)(selectedValidatorInfo.address, 0))) {
250
+ if (!bondedValidators.includes((0, _utils3.reformatAddress)(selectedValidatorInfo.address, 0))) {
249
251
  return chainApi.api.tx.parachainStaking.joinDelegators(selectedValidatorInfo.address, binaryAmount);
250
252
  } else {
251
253
  const _params = chainApi.api.tx.parachainStaking.delegatorStakeMore.toJSON();
@@ -17,6 +17,7 @@ exports.subscribeAstarStakingMetadata = subscribeAstarStakingMetadata;
17
17
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
18
18
  var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
19
19
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
20
+ var _types = require("@subwallet/extension-base/types");
20
21
  var _utils2 = require("@subwallet/extension-base/utils");
21
22
  var _crossFetch = _interopRequireDefault(require("cross-fetch"));
22
23
  var _util = require("@polkadot/util");
@@ -115,7 +116,7 @@ async function subscribeAstarNominatorMetadata(chainInfo, address, substrateApi,
115
116
  const currentStake = stakeList.slice(-1)[0].staked.toString() || '0';
116
117
  const bnCurrentStake = new _util.BN(currentStake);
117
118
  if (bnCurrentStake.gt(_util.BN_ZERO)) {
118
- const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ? _KoniTypes.StakingStatus.EARNING_REWARD : _KoniTypes.StakingStatus.NOT_EARNING;
119
+ const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ? _types.EarningStatus.EARNING_REWARD : _types.EarningStatus.NOT_EARNING;
119
120
  bnTotalActiveStake = bnTotalActiveStake.add(bnCurrentStake);
120
121
  const dappInfo = dAppInfoMap[dappAddress];
121
122
  nominationList.push({
@@ -139,7 +140,7 @@ async function subscribeAstarNominatorMetadata(chainInfo, address, substrateApi,
139
140
  const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[chainInfo.slug];
140
141
  unstakingList.push({
141
142
  chain: chainInfo.slug,
142
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
143
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
143
144
  claimable: unlockingChunk.amount.toString(),
144
145
  waitingTime
145
146
  });
@@ -150,13 +151,13 @@ async function subscribeAstarNominatorMetadata(chainInfo, address, substrateApi,
150
151
  chain: chainInfo.slug,
151
152
  type: _KoniTypes.StakingType.NOMINATED,
152
153
  address,
153
- status: _KoniTypes.StakingStatus.NOT_STAKING,
154
+ status: _types.EarningStatus.NOT_STAKING,
154
155
  activeStake: '0',
155
156
  nominations: [],
156
157
  unstakings: []
157
158
  };
158
159
  }
159
- const stakingStatus = (0, _utils.getStakingStatusByNominations)(bnTotalActiveStake, nominationList);
160
+ const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
160
161
  return {
161
162
  chain: chainInfo.slug,
162
163
  type: _KoniTypes.StakingType.NOMINATED,
@@ -201,7 +202,7 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
201
202
  const currentStake = stakeList.slice(-1)[0].staked.toString() || '0';
202
203
  const bnCurrentStake = new _util.BN(currentStake);
203
204
  if (bnCurrentStake.gt(_util.BN_ZERO)) {
204
- const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ? _KoniTypes.StakingStatus.EARNING_REWARD : _KoniTypes.StakingStatus.NOT_EARNING;
205
+ const dappStakingStatus = bnCurrentStake.gt(_util.BN_ZERO) && bnCurrentStake.gte(new _util.BN(minDelegatorStake)) ? _types.EarningStatus.EARNING_REWARD : _types.EarningStatus.NOT_EARNING;
205
206
  bnTotalActiveStake = bnTotalActiveStake.add(bnCurrentStake);
206
207
  const dappInfo = dAppInfoMap[dappAddress];
207
208
  nominationList.push({
@@ -225,7 +226,7 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
225
226
  const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[chain];
226
227
  unstakingList.push({
227
228
  chain,
228
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
229
+ status: isClaimable ? _types.UnstakingStatus.CLAIMABLE : _types.UnstakingStatus.UNLOCKING,
229
230
  claimable: unlockingChunk.amount.toString(),
230
231
  waitingTime
231
232
  });
@@ -236,13 +237,13 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
236
237
  chain: chainInfo.slug,
237
238
  type: _KoniTypes.StakingType.NOMINATED,
238
239
  address,
239
- status: _KoniTypes.StakingStatus.NOT_STAKING,
240
+ status: _types.EarningStatus.NOT_STAKING,
240
241
  activeStake: '0',
241
242
  nominations: [],
242
243
  unstakings: []
243
244
  };
244
245
  }
245
- const stakingStatus = (0, _utils.getStakingStatusByNominations)(bnTotalActiveStake, nominationList);
246
+ const stakingStatus = (0, _utils.getEarningStatusByNominations)(bnTotalActiveStake, nominationList);
246
247
  return {
247
248
  chain,
248
249
  type: _KoniTypes.StakingType.NOMINATED,
@@ -369,13 +370,13 @@ async function getAstarClaimRewardExtrinsic(substrateApi, address) {
369
370
  function getAstarWithdrawable(nominatorMetadata) {
370
371
  const unstakingInfo = {
371
372
  chain: nominatorMetadata.chain,
372
- status: _KoniTypes.UnstakingStatus.CLAIMABLE,
373
+ status: _types.UnstakingStatus.CLAIMABLE,
373
374
  claimable: '0',
374
375
  waitingTime: 0
375
376
  };
376
377
  let bnWithdrawable = _util.BN_ZERO;
377
378
  for (const unstaking of nominatorMetadata.unstakings) {
378
- if (unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE) {
379
+ if (unstaking.status === _types.UnstakingStatus.CLAIMABLE) {
379
380
  bnWithdrawable = bnWithdrawable.add(new _util.BN(unstaking.claimable));
380
381
  }
381
382
  }
@@ -20,13 +20,16 @@ var _amplitude = require("@subwallet/extension-base/koni/api/staking/bonding/amp
20
20
  var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
21
21
  var _paraChain = require("@subwallet/extension-base/koni/api/staking/bonding/paraChain");
22
22
  var _relayChain = require("@subwallet/extension-base/koni/api/staking/bonding/relayChain");
23
- var _constants = require("@subwallet/extension-base/services/chain-service/constants");
23
+ var _constants = require("@subwallet/extension-base/services/earning-service/constants");
24
24
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
25
25
  // SPDX-License-Identifier: Apache-2.0
26
26
 
27
27
  // all addresses must be converted to its chain format
28
28
 
29
29
  function validateUnbondingCondition(nominatorMetadata, amount, chain, chainStakingMetadata, selectedValidator) {
30
+ if (nominatorMetadata.type === _KoniTypes.StakingType.LIQUID_STAKING) {
31
+ return [];
32
+ }
30
33
  if (_constants._STAKING_CHAIN_GROUP.relay.includes(chain)) {
31
34
  return (0, _relayChain.validateRelayUnbondingCondition)(amount, chainStakingMetadata, nominatorMetadata);
32
35
  }