@subwallet/extension-base 1.1.68-1 → 1.2.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 (168) hide show
  1. package/background/KoniTypes.d.ts +3 -1
  2. package/background/handlers/State.d.ts +1 -78
  3. package/background/handlers/State.js +1 -428
  4. package/background/types.d.ts +1 -0
  5. package/cjs/background/handlers/State.js +1 -456
  6. package/cjs/constants/storage.js +3 -1
  7. package/cjs/koni/api/dotsama/crowdloan.js +1 -2
  8. package/cjs/koni/api/nft/acala_nft/index.js +1 -3
  9. package/cjs/koni/api/nft/assethub_nft/index.js +1 -3
  10. package/cjs/koni/api/nft/assethub_unique/index.js +1 -3
  11. package/cjs/koni/api/nft/bit.country/index.js +4 -6
  12. package/cjs/koni/api/nft/config.js +1 -8
  13. package/cjs/koni/api/nft/evm_nft/index.js +1 -3
  14. package/cjs/koni/api/nft/karura_nft/index.js +1 -3
  15. package/cjs/koni/api/nft/ordinal_nft/index.js +4 -3
  16. package/cjs/koni/api/nft/rmrk_nft/index.js +4 -6
  17. package/cjs/koni/api/nft/unique_network_nft/index.js +1 -3
  18. package/cjs/koni/api/nft/unique_nft/uniqueNftV2.js +1 -3
  19. package/cjs/koni/api/nft/vara_nft/index.js +1 -3
  20. package/cjs/koni/api/nft/wasm_nft/index.js +10 -17
  21. package/cjs/koni/api/staking/bonding/astar.js +2 -4
  22. package/cjs/koni/api/staking/subsquidStaking.js +9 -12
  23. package/cjs/koni/api/subquery/subquery.js +1 -3
  24. package/cjs/koni/background/handlers/Extension.js +39 -15
  25. package/cjs/koni/background/handlers/Mobile.js +7 -4
  26. package/cjs/koni/background/handlers/State.js +68 -12
  27. package/cjs/koni/background/handlers/Tabs.js +4 -1
  28. package/cjs/koni/background/handlers/index.js +71 -71
  29. package/cjs/koni/background/subscription.js +7 -6
  30. package/cjs/packageInfo.js +1 -1
  31. package/cjs/services/campaign-service/helpers.js +3 -1
  32. package/cjs/services/chain-service/index.js +37 -29
  33. package/cjs/services/chain-service/utils/patch.js +1 -3
  34. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +1 -2
  35. package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +2 -3
  36. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +2 -3
  37. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +1 -2
  38. package/cjs/services/earning-service/handlers/native-staking/astar.js +3 -4
  39. package/cjs/services/event-service/index.js +0 -1
  40. package/cjs/services/history-service/subsquid-multi-chain-history.js +1 -3
  41. package/cjs/services/keyring-service/index.js +22 -0
  42. package/cjs/services/migration-service/scripts/MigrateRemoveGenesisHash.js +28 -0
  43. package/cjs/services/migration-service/scripts/index.js +3 -1
  44. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +16 -21
  45. package/cjs/services/notification-service/NotificationService.js +3 -1
  46. package/cjs/services/price-service/coingecko.js +6 -7
  47. package/cjs/services/price-service/index.js +7 -3
  48. package/cjs/services/request-service/handler/PopupHandler.js +14 -15
  49. package/cjs/services/setting-service/SettingService.js +4 -1
  50. package/cjs/services/setting-service/constants.js +1 -1
  51. package/cjs/services/setting-service/i18n/i18n.js +2 -4
  52. package/cjs/services/storage-service/DatabaseService.js +1 -1
  53. package/cjs/services/storage-service/databases/index.js +14 -1
  54. package/cjs/services/storage-service/db-stores/KeyValue.js +13 -0
  55. package/cjs/services/subscan-service/index.js +11 -3
  56. package/cjs/services/transaction-service/index.js +3 -3
  57. package/cjs/services/wallet-connect-service/constants.js +2 -2
  58. package/cjs/services/wallet-connect-service/helpers.js +1 -4
  59. package/cjs/services/wallet-connect-service/index.js +50 -33
  60. package/cjs/storage/index.js +120 -23
  61. package/cjs/types/common/index.js +16 -0
  62. package/cjs/types/common/storage.js +1 -0
  63. package/cjs/types/index.js +11 -0
  64. package/cjs/utils/environment.js +1 -1
  65. package/cjs/utils/eth/parseTransaction/index.js +8 -10
  66. package/cjs/utils/fetch.js +55 -0
  67. package/cjs/utils/fetchStaticCache.js +2 -4
  68. package/cjs/utils/fetchStaticData.js +7 -4
  69. package/cjs/utils/index.js +24 -0
  70. package/cjs/utils/reportError.js +1 -3
  71. package/constants/storage.d.ts +1 -0
  72. package/constants/storage.js +1 -0
  73. package/koni/api/dotsama/crowdloan.js +2 -3
  74. package/koni/api/nft/acala_nft/index.js +0 -1
  75. package/koni/api/nft/assethub_nft/index.js +0 -1
  76. package/koni/api/nft/assethub_unique/index.js +0 -1
  77. package/koni/api/nft/bit.country/index.js +0 -1
  78. package/koni/api/nft/config.js +1 -7
  79. package/koni/api/nft/evm_nft/index.js +0 -1
  80. package/koni/api/nft/karura_nft/index.js +0 -1
  81. package/koni/api/nft/ordinal_nft/index.d.ts +2 -0
  82. package/koni/api/nft/ordinal_nft/index.js +4 -3
  83. package/koni/api/nft/rmrk_nft/index.js +0 -1
  84. package/koni/api/nft/unique_network_nft/index.js +0 -1
  85. package/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
  86. package/koni/api/nft/vara_nft/index.js +0 -1
  87. package/koni/api/nft/wasm_nft/index.js +4 -10
  88. package/koni/api/staking/bonding/astar.js +0 -1
  89. package/koni/api/staking/subsquidStaking.js +10 -12
  90. package/koni/api/subquery/subquery.js +0 -1
  91. package/koni/background/handlers/Extension.d.ts +4 -0
  92. package/koni/background/handlers/Extension.js +29 -8
  93. package/koni/background/handlers/Mobile.js +9 -6
  94. package/koni/background/handlers/State.d.ts +6 -1
  95. package/koni/background/handlers/State.js +68 -12
  96. package/koni/background/handlers/Tabs.js +4 -1
  97. package/koni/background/handlers/index.d.ts +13 -7
  98. package/koni/background/handlers/index.js +67 -62
  99. package/koni/background/subscription.js +2 -1
  100. package/package.json +36 -29
  101. package/packageInfo.js +1 -1
  102. package/services/campaign-service/helpers.js +3 -1
  103. package/services/chain-service/index.js +37 -30
  104. package/services/chain-service/utils/patch.js +0 -1
  105. package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  106. package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -1
  107. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -1
  108. package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -1
  109. package/services/earning-service/handlers/native-staking/astar.js +0 -1
  110. package/services/event-service/index.js +0 -1
  111. package/services/history-service/subsquid-multi-chain-history.js +0 -1
  112. package/services/keyring-service/index.d.ts +1 -0
  113. package/services/keyring-service/index.js +19 -0
  114. package/services/migration-service/scripts/MigrateRemoveGenesisHash.d.ts +4 -0
  115. package/services/migration-service/scripts/MigrateRemoveGenesisHash.js +20 -0
  116. package/services/migration-service/scripts/index.js +3 -1
  117. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +17 -21
  118. package/services/notification-service/NotificationService.js +3 -1
  119. package/services/price-service/coingecko.js +6 -6
  120. package/services/price-service/index.js +7 -3
  121. package/services/request-service/handler/PopupHandler.d.ts +1 -1
  122. package/services/request-service/handler/PopupHandler.js +14 -15
  123. package/services/setting-service/SettingService.d.ts +1 -0
  124. package/services/setting-service/SettingService.js +4 -1
  125. package/services/setting-service/constants.js +2 -2
  126. package/services/setting-service/i18n/i18n.js +2 -4
  127. package/services/storage-service/DatabaseService.js +1 -1
  128. package/services/storage-service/databases/index.d.ts +8 -0
  129. package/services/storage-service/databases/index.js +13 -1
  130. package/services/storage-service/db-stores/KeyValue.d.ts +4 -0
  131. package/services/storage-service/db-stores/KeyValue.js +5 -0
  132. package/services/subscan-service/index.d.ts +2 -0
  133. package/services/subscan-service/index.js +10 -1
  134. package/services/transaction-service/index.js +4 -4
  135. package/services/wallet-connect-service/constants.js +3 -3
  136. package/services/wallet-connect-service/helpers.js +1 -4
  137. package/services/wallet-connect-service/index.d.ts +2 -0
  138. package/services/wallet-connect-service/index.js +42 -31
  139. package/storage/index.d.ts +19 -9
  140. package/storage/index.js +115 -23
  141. package/types/common/index.d.ts +1 -0
  142. package/types/common/index.js +4 -0
  143. package/types/common/storage.d.ts +4 -0
  144. package/types/common/storage.js +1 -0
  145. package/types/index.d.ts +1 -0
  146. package/types/index.js +1 -0
  147. package/utils/environment.js +1 -1
  148. package/utils/eth/parseTransaction/index.js +8 -10
  149. package/utils/fetch.d.ts +8 -0
  150. package/utils/fetch.js +44 -0
  151. package/utils/fetchStaticCache.js +2 -3
  152. package/utils/fetchStaticData.d.ts +1 -1
  153. package/utils/fetchStaticData.js +7 -4
  154. package/utils/index.d.ts +2 -0
  155. package/utils/index.js +2 -0
  156. package/utils/reportError.js +0 -1
  157. package/background/handlers/Extension.d.ts +0 -55
  158. package/background/handlers/Extension.js +0 -601
  159. package/background/handlers/Tabs.d.ts +0 -24
  160. package/background/handlers/Tabs.js +0 -194
  161. package/background/handlers/index.d.ts +0 -3
  162. package/background/handlers/index.js +0 -45
  163. package/cjs/background/handlers/Extension.js +0 -642
  164. package/cjs/background/handlers/Tabs.js +0 -222
  165. package/cjs/background/handlers/index.js +0 -54
  166. package/cjs/koni/background/events.js +0 -14
  167. package/koni/background/events.d.ts +0 -1
  168. package/koni/background/events.js +0 -7
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _constants = require("@subwallet/extension-base/constants");
8
- var _handlers = require("@subwallet/extension-base/koni/background/handlers");
8
+ var _subscanService = require("@subwallet/extension-base/services/subscan-service");
9
9
  var _nft = require("../nft");
10
10
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
11
11
  // SPDX-License-Identifier: Apache-2.0
@@ -49,12 +49,13 @@ class OrdinalNftApi extends _nft.BaseNftApi {
49
49
  constructor(addresses, chain, subscanChain) {
50
50
  super(chain, undefined, addresses);
51
51
  this.subscanChain = subscanChain;
52
+ this.subscanService = _subscanService.SubscanService.getInstance();
52
53
  }
53
54
  async handleNft(address, handleNftParams) {
54
- const events = await _handlers.state.subscanService.getAccountRemarkEvents(this.subscanChain, address);
55
+ const events = await this.subscanService.getAccountRemarkEvents(this.subscanChain, address);
55
56
  if (events && events.length) {
56
57
  const extrinsicIds = events.map(data => data.extrinsic_index);
57
- const extrinsicParams = await _handlers.state.subscanService.getExtrinsicParams(this.subscanChain, extrinsicIds);
58
+ const extrinsicParams = await this.subscanService.getExtrinsicParams(this.subscanChain, extrinsicIds);
58
59
  const items = [];
59
60
  for (const data of extrinsicParams) {
60
61
  const {
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -8,7 +7,6 @@ exports.RmrkNftApi = void 0;
8
7
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
9
  var _utils = require("@subwallet/extension-base/utils");
11
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
12
10
  var _config = require("../config");
13
11
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
14
12
  // SPDX-License-Identifier: Apache-2.0
@@ -49,7 +47,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
49
47
  return undefined;
50
48
  }
51
49
  }
52
- return await (0, _crossFetch.default)(url, {
50
+ return await fetch(url, {
53
51
  method: 'GET'
54
52
  }).then(res => res.json());
55
53
  }
@@ -64,7 +62,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
64
62
  source,
65
63
  url
66
64
  } = _ref;
67
- let _data = await (0, _crossFetch.default)(url, {
65
+ let _data = await fetch(url, {
68
66
  method: 'GET'
69
67
  }).then(res => res.json());
70
68
  _data = _data.map(item => {
@@ -189,7 +187,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
189
187
  const allCollectionMetaUrl = [];
190
188
  await Promise.all(collectionInfoUrl.map(async url => {
191
189
  try {
192
- const data = await (0, _crossFetch.default)(url, {
190
+ const data = await fetch(url, {
193
191
  method: 'GET'
194
192
  }).then(resp => resp.json());
195
193
  const result = data[0];
@@ -213,7 +211,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
213
211
  let data = {};
214
212
  try {
215
213
  if (item.url) {
216
- data = await (0, _crossFetch.default)(item === null || item === void 0 ? void 0 : item.url, {
214
+ data = await fetch(item === null || item === void 0 ? void 0 : item.url, {
217
215
  method: 'GET'
218
216
  }).then(resp => resp.json());
219
217
  }
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -8,7 +7,6 @@ exports.UniqueNftApi = void 0;
8
7
  var _config = require("@subwallet/extension-base/koni/api/nft/config");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
9
  var _utils = require("@subwallet/extension-base/utils");
11
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
12
10
  var _utilCrypto = require("@polkadot/util-crypto");
13
11
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
14
12
  // SPDX-License-Identifier: Apache-2.0
@@ -88,7 +86,7 @@ class UniqueNftApi extends _nft.BaseNftApi {
88
86
  // Opal address: Normal address
89
87
  }
90
88
 
91
- const resp = await (0, _crossFetch.default)(endpoint, {
89
+ const resp = await fetch(endpoint, {
92
90
  method: 'post',
93
91
  headers: {
94
92
  'Content-Type': 'application/json'
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.UniqueNftApiV2 = void 0;
8
7
  var _config = require("@subwallet/extension-base/koni/api/nft/config");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
11
9
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
12
10
  // SPDX-License-Identifier: Apache-2.0
13
11
 
@@ -34,7 +32,7 @@ class UniqueNftApiV2 extends _nft.BaseNftApi {
34
32
 
35
33
  async getNftByAccount(address) {
36
34
  var _result$data;
37
- const resp = await (0, _crossFetch.default)(this.endpoint, {
35
+ const resp = await fetch(this.endpoint, {
38
36
  method: 'post',
39
37
  headers: {
40
38
  'Content-Type': 'application/json'
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.VaraNftApi = void 0;
8
7
  var _config = require("@subwallet/extension-base/koni/api/nft/config");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
11
9
  var _util = require("@polkadot/util");
12
10
  var _utilCrypto = require("@polkadot/util-crypto");
13
11
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -56,7 +54,7 @@ class VaraNftApi extends _nft.BaseNftApi {
56
54
  async getNftByAccount(address) {
57
55
  var _result$data, _result$data$accountB;
58
56
  const publicKey = (0, _util.hexAddPrefix)((0, _util.u8aToHex)((0, _utilCrypto.decodeAddress)(address)));
59
- const resp = await (0, _crossFetch.default)(this.endpoint, {
57
+ const resp = await fetch(this.endpoint, {
60
58
  method: 'post',
61
59
  headers: {
62
60
  'Content-Type': 'application/json'
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -13,8 +12,6 @@ var _wasm = require("@subwallet/extension-base/koni/api/tokens/wasm");
13
12
  var _utils2 = require("@subwallet/extension-base/koni/api/tokens/wasm/utils");
14
13
  var _utils3 = require("@subwallet/extension-base/services/chain-service/utils");
15
14
  var _utils4 = require("@subwallet/extension-base/utils");
16
- var _axios = _interopRequireDefault(require("axios"));
17
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
18
15
  var _utilCrypto = require("@polkadot/util-crypto");
19
16
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
20
17
  // SPDX-License-Identifier: Apache-2.0
@@ -34,7 +31,7 @@ async function isArtZeroFeaturedCollection(networkKey, contractAddress) {
34
31
  const urlencoded = new URLSearchParams();
35
32
  urlencoded.append('collection_address', contractAddress);
36
33
  const collectionInfoPromise = new Promise(function (resolve) {
37
- (0, _crossFetch.default)((0, _utils.collectionApiFromArtZero)(networkKey), {
34
+ fetch((0, _utils.collectionApiFromArtZero)(networkKey), {
38
35
  method: 'POST',
39
36
  headers: {
40
37
  'Content-Type': 'application/x-www-form-urlencoded'
@@ -101,15 +98,13 @@ class WasmNftApi extends _nft.BaseNftApi {
101
98
  return undefined;
102
99
  }
103
100
  const nftItemImageSrc = `${(0, _utils.itemImageApiFromArtZero)(this.chain)}?input=${parsedTokenUri}&size=500`;
104
- const collectionImageUrl = await (0, _axios.default)(nftItemImageSrc, {
105
- method: 'GET'
106
- });
107
- return collectionImageUrl.data;
101
+ const collectionImageUrl = await fetch(nftItemImageSrc);
102
+ return await collectionImageUrl.text();
108
103
  }
109
104
  async parseFeaturedCollectionImage(smartContract) {
110
105
  const urlencoded = new URLSearchParams();
111
106
  urlencoded.append('collection_address', smartContract);
112
- const resp = await (0, _crossFetch.default)((0, _utils.collectionDetailApiFromArtZero)(this.chain), {
107
+ const resp = await fetch((0, _utils.collectionDetailApiFromArtZero)(this.chain), {
113
108
  method: 'POST',
114
109
  headers: {
115
110
  'Content-Type': 'application/x-www-form-urlencoded'
@@ -129,10 +124,8 @@ class WasmNftApi extends _nft.BaseNftApi {
129
124
  return;
130
125
  }
131
126
  const collectionImageSrc = `${(0, _utils.itemImageApiFromArtZero)(this.chain)}?input=${parsedCollectionImage}&size=500`;
132
- const collectionImageUrl = await (0, _axios.default)(collectionImageSrc, {
133
- method: 'GET'
134
- });
135
- return collectionImageUrl.data;
127
+ const collectionImageUrl = await fetch(collectionImageSrc);
128
+ return await collectionImageUrl.text();
136
129
  }
137
130
 
138
131
  // private async getCollectionAttributes (contractPromise: ContractPromise): Promise<CollectionAttributes> {
@@ -223,14 +216,14 @@ class WasmNftApi extends _nft.BaseNftApi {
223
216
  if (isFeatured) {
224
217
  const parsedTokenUri = this.parseFeaturedTokenUri(tokenUri);
225
218
  if (parsedTokenUri) {
226
- const resp = await (0, _crossFetch.default)(`${(0, _utils.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
219
+ const resp = await fetch(`${(0, _utils.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
227
220
  itemDetail = resp && resp.ok && (await resp.json());
228
221
  }
229
222
  } else {
230
223
  const parsedTokenUri = this.parseFeaturedTokenUri(tokenUri);
231
224
  const detailUrl = this.parseUrl(parsedTokenUri);
232
225
  if (detailUrl) {
233
- const resp = await (0, _crossFetch.default)(detailUrl);
226
+ const resp = await fetch(detailUrl);
234
227
  itemDetail = resp && resp.ok && (await resp.json());
235
228
  }
236
229
  }
@@ -282,14 +275,14 @@ class WasmNftApi extends _nft.BaseNftApi {
282
275
  if (_isFeatured) {
283
276
  const parsedTokenUri = this.parseFeaturedTokenUri(tokenUri);
284
277
  if (parsedTokenUri) {
285
- const resp = await (0, _crossFetch.default)(`${(0, _utils.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
278
+ const resp = await fetch(`${(0, _utils.ipfsApiFromArtZero)(this.chain)}?input=${parsedTokenUri}`);
286
279
  itemDetail = resp && resp.ok && (await resp.json());
287
280
  }
288
281
  } else {
289
282
  const parsedTokenUri = this.parseFeaturedTokenUri(tokenUri);
290
283
  const detailUrl = this.parseUrl(parsedTokenUri);
291
284
  if (detailUrl) {
292
- const resp = await (0, _crossFetch.default)(detailUrl);
285
+ const resp = await fetch(detailUrl);
293
286
  itemDetail = resp && resp.ok && (await resp.json());
294
287
  if (_domain.AZERO_DOMAIN_CONTRACTS.includes(contractPromise.address.toString())) {
295
288
  var _itemDetail;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -19,7 +18,6 @@ var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils")
19
18
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
20
19
  var _types = require("@subwallet/extension-base/types");
21
20
  var _utils2 = require("@subwallet/extension-base/utils");
22
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
23
21
  var _util = require("@polkadot/util");
24
22
  var _utilCrypto = require("@polkadot/util-crypto");
25
23
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -30,7 +28,7 @@ const convertAddress = address => {
30
28
  };
31
29
  const fetchDApps = async network => {
32
30
  return new Promise(function (resolve) {
33
- (0, _crossFetch.default)(`https://api.astar.network/api/v1/${network}/dapps-staking/dappssimple`, {
31
+ fetch(`https://api.astar.network/api/v1/${network}/dapps-staking/dappssimple`, {
34
32
  method: 'GET'
35
33
  }).then(resp => {
36
34
  resolve(resp.json());
@@ -59,7 +57,7 @@ function subscribeAstarStakingMetadata(chain, substrateApi, callback) {
59
57
  }
60
58
  async function getAstarStakingMetadata(chain, substrateApi) {
61
59
  const aprPromise = new Promise(function (resolve) {
62
- (0, _crossFetch.default)(`https://api.astar.network/api/v1/${chain}/dapps-staking/apr`, {
60
+ fetch(`https://api.astar.network/api/v1/${chain}/dapps-staking/apr`, {
63
61
  method: 'GET'
64
62
  }).then(resp => {
65
63
  resolve(resp.json());
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -9,7 +8,6 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
8
  var _config = require("@subwallet/extension-base/koni/api/staking/config");
10
9
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
11
10
  var _utils2 = require("@subwallet/extension-base/utils");
12
- var _axios = _interopRequireDefault(require("axios"));
13
11
  var _utilCrypto = require("@polkadot/util-crypto");
14
12
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
15
13
  // SPDX-License-Identifier: Apache-2.0
@@ -51,16 +49,13 @@ const getSubsquidStaking = async (accounts, chain, chainInfoMap, callback) => {
51
49
  type: _KoniTypes.StakingType.NOMINATED,
52
50
  address: (0, _utils2.reformatAddress)(account, 42)
53
51
  };
54
- const resp = await (0, _axios.default)({
55
- url: _config.SUBSQUID_ENDPOINTS[chain],
56
- method: 'post',
57
- data: {
58
- query: getSubsquidQuery(parsedAccount, chain)
59
- }
60
- });
61
- if (resp.status === 200) {
62
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
63
- const respData = resp.data.data;
52
+ try {
53
+ const respData = await (0, _utils2.fetchJson)(_config.SUBSQUID_ENDPOINTS[chain], {
54
+ method: 'post',
55
+ data: {
56
+ query: getSubsquidQuery(parsedAccount, chain)
57
+ }
58
+ });
64
59
  const rewardItem = respData.stakerById;
65
60
  if (rewardItem) {
66
61
  const latestReward = rewardItem.rewards[0];
@@ -74,6 +69,8 @@ const getSubsquidStaking = async (accounts, chain, chainInfoMap, callback) => {
74
69
  stakingRewardItem.latestReward = latestReward.amount;
75
70
  }
76
71
  }
72
+ } catch (e) {
73
+ console.error(e);
77
74
  }
78
75
  if (stakingRewardItem.totalReward && parseFloat(stakingRewardItem.totalReward) > 0) {
79
76
  callback(stakingRewardItem);
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.newApolloClient = newApolloClient;
8
7
  var _client = require("@apollo/client");
9
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
10
8
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
11
9
  // SPDX-License-Identifier: Apache-2.0
12
10
 
@@ -15,7 +13,7 @@ function newApolloClient(uri) {
15
13
  cache: new _client.InMemoryCache(),
16
14
  link: (0, _client.createHttpLink)({
17
15
  uri: uri,
18
- fetch: _crossFetch.default
16
+ fetch: fetch
19
17
  })
20
18
  });
21
19
  }
@@ -4,12 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports.default = exports.SEED_LENGTHS = exports.SEED_DEFAULT_LENGTH = void 0;
8
+ exports.isJsonPayload = isJsonPayload;
8
9
  var _common = require("@ethereumjs/common");
9
10
  var _tx = require("@ethereumjs/tx");
10
11
  var _types = require("@subwallet/chain-list/types");
11
12
  var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
12
- var _Extension = require("@subwallet/extension-base/background/handlers/Extension");
13
13
  var _helpers = require("@subwallet/extension-base/background/handlers/helpers");
14
14
  var _subscriptions = require("@subwallet/extension-base/background/handlers/subscriptions");
15
15
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
@@ -76,13 +76,20 @@ const ACCOUNT_ALL_JSON = {
76
76
  address: _constants.ALL_ACCOUNT_KEY,
77
77
  name: 'All'
78
78
  };
79
+ const SEED_DEFAULT_LENGTH = 12;
80
+ exports.SEED_DEFAULT_LENGTH = SEED_DEFAULT_LENGTH;
81
+ const SEED_LENGTHS = [12, 15, 18, 21, 24];
82
+ exports.SEED_LENGTHS = SEED_LENGTHS;
83
+ function isJsonPayload(value) {
84
+ return value.genesisHash !== undefined;
85
+ }
79
86
  class KoniExtension {
80
87
  #lockTimeOut = undefined;
81
88
  #koniState;
82
89
  #timeAutoLock = _constants4.DEFAULT_AUTO_LOCK_TIME;
83
90
  #skipAutoLock = false;
84
- #alwaysLock = false;
85
91
  #firstTime = true;
92
+ #alwaysLock = false;
86
93
  constructor(state) {
87
94
  this.#koniState = state;
88
95
  const updateTimeAutoLock = rs => {
@@ -113,7 +120,7 @@ class KoniExtension {
113
120
  _storage.SWStorage.instance.setItem(_constants.LATEST_SESSION, JSON.stringify({
114
121
  remind: true,
115
122
  timeCalculate: time
116
- }));
123
+ })).catch(console.error);
117
124
  };
118
125
  this.#koniState.settingService.getSettings(updateTimeAutoLock);
119
126
  this.#koniState.settingService.getSubject().subscribe({
@@ -328,7 +335,7 @@ class KoniExtension {
328
335
  }
329
336
  seedCreate(_ref14) {
330
337
  let {
331
- length = _Extension.SEED_DEFAULT_LENGTH,
338
+ length = SEED_DEFAULT_LENGTH,
332
339
  seed: _seed,
333
340
  type
334
341
  } = _ref14;
@@ -350,9 +357,9 @@ class KoniExtension {
350
357
  (0, _util.assert)((0, _util.isHex)(phrase, 256), (0, _i18next.t)('Invalid seed phrase. Please try again.'));
351
358
  } else {
352
359
  // sadly isHex detects as string, so we need a cast here
353
- (0, _util.assert)(_Extension.SEED_LENGTHS.includes(phrase.split(' ').length), (0, _i18next.t)('Seed phrase needs to contain {{x}} words', {
360
+ (0, _util.assert)(SEED_LENGTHS.includes(phrase.split(' ').length), (0, _i18next.t)('Seed phrase needs to contain {{x}} words', {
354
361
  replace: {
355
- x: _Extension.SEED_LENGTHS.join(', ')
362
+ x: SEED_LENGTHS.join(', ')
356
363
  }
357
364
  }));
358
365
  (0, _util.assert)((0, _utilCrypto.mnemonicValidate)(phrase), (0, _i18next.t)('Invalid seed phrase. Please try again.'));
@@ -422,7 +429,7 @@ class KoniExtension {
422
429
  }
423
430
  }
424
431
  }
425
- const url = `${chrome.extension.getURL('index.html')}#${path}${subPath || ''}${paramString}`;
432
+ const url = `${chrome.runtime.getURL('index.html')}#${path}${subPath || ''}${paramString}`;
426
433
  if (!_defaults.ALLOWED_PATH.includes(path)) {
427
434
  console.error('Not allowed to open the url:', url);
428
435
  return false;
@@ -1287,7 +1294,7 @@ class KoniExtension {
1287
1294
  }
1288
1295
  seedCreateV2(_ref38) {
1289
1296
  let {
1290
- length = _Extension.SEED_DEFAULT_LENGTH,
1297
+ length = SEED_DEFAULT_LENGTH,
1291
1298
  seed: _seed,
1292
1299
  types
1293
1300
  } = _ref38;
@@ -1313,9 +1320,9 @@ class KoniExtension {
1313
1320
  (0, _util.assert)((0, _util.isHex)(phrase, 256), (0, _i18next.t)('Invalid seed phrase. Please try again.'));
1314
1321
  } else {
1315
1322
  // sadly isHex detects as string, so we need a cast here
1316
- (0, _util.assert)(_Extension.SEED_LENGTHS.includes(phrase.split(' ').length), (0, _i18next.t)('Seed phrase needs to contain {{x}} words', {
1323
+ (0, _util.assert)(SEED_LENGTHS.includes(phrase.split(' ').length), (0, _i18next.t)('Seed phrase needs to contain {{x}} words', {
1317
1324
  replace: {
1318
- x: _Extension.SEED_LENGTHS.join(', ')
1325
+ x: SEED_LENGTHS.join(', ')
1319
1326
  }
1320
1327
  }));
1321
1328
  (0, _util.assert)((0, _utilCrypto.mnemonicValidate)(phrase), (0, _i18next.t)('Invalid seed phrase. Please try again.'));
@@ -1422,7 +1429,16 @@ class KoniExtension {
1422
1429
  if (isPasswordValidated) {
1423
1430
  try {
1424
1431
  this._saveCurrentAccountAddress(address, () => {
1425
- _uiKeyring.keyring.restoreAccount(file, password, withMasterPassword);
1432
+ var _newAccount$meta, _newAccount$meta2;
1433
+ const newAccount = _uiKeyring.keyring.restoreAccount(file, password, withMasterPassword);
1434
+
1435
+ // genesisHash is not used in SubWallet => reset it to empty string
1436
+ if ((_newAccount$meta = newAccount.meta) !== null && _newAccount$meta !== void 0 && _newAccount$meta.genesisHash && ((_newAccount$meta2 = newAccount.meta) === null || _newAccount$meta2 === void 0 ? void 0 : _newAccount$meta2.genesisHash) !== '') {
1437
+ _uiKeyring.keyring.saveAccountMeta(newAccount, {
1438
+ ...newAccount.meta,
1439
+ genesisHash: ''
1440
+ });
1441
+ }
1426
1442
  this._addAddressToAuthList(address, isAllowed);
1427
1443
  });
1428
1444
  if (this.#alwaysLock) {
@@ -1448,6 +1464,7 @@ class KoniExtension {
1448
1464
  try {
1449
1465
  this._saveCurrentAccountAddress(_constants.ALL_ACCOUNT_KEY, () => {
1450
1466
  _uiKeyring.keyring.restoreAccounts(file, password);
1467
+ this.#koniState.keyringService.removeNoneHardwareGenesisHash();
1451
1468
  this._addAddressesToAuthList(addressList, isAllowed);
1452
1469
  });
1453
1470
 
@@ -2973,7 +2990,8 @@ class KoniExtension {
2973
2990
  } = _ref70;
2974
2991
  try {
2975
2992
  _uiKeyring.keyring.unlockKeyring(password);
2976
- this.#koniState.initMantaPay(password).catch(console.error);
2993
+ // this.#koniState.initMantaPay(password)
2994
+ // .catch(console.error);
2977
2995
  } catch (e) {
2978
2996
  return {
2979
2997
  errors: [e.message],
@@ -3060,7 +3078,7 @@ class KoniExtension {
3060
3078
  } = request;
3061
3079
  let registry = new _types4.TypeRegistry();
3062
3080
  let isEvm = false;
3063
- if ((0, _Extension.isJsonPayload)(payload)) {
3081
+ if (isJsonPayload(payload)) {
3064
3082
  /**
3065
3083
  * Get the metadata for the genesisHash
3066
3084
  * @todo: need to handle case metadata store in db
@@ -3682,7 +3700,7 @@ class KoniExtension {
3682
3700
  }
3683
3701
  async initSyncMantaPay(address) {
3684
3702
  var _this$koniState$chain3, _this$koniState$chain4, _this$koniState$chain5, _this$koniState$chain6;
3685
- if ((_this$koniState$chain3 = this.#koniState.chainService) !== null && _this$koniState$chain3 !== void 0 && (_this$koniState$chain4 = _this$koniState$chain3.mantaPay) !== null && _this$koniState$chain4 !== void 0 && _this$koniState$chain4.getSyncState().isSyncing) {
3703
+ if ((_this$koniState$chain3 = this.#koniState.chainService) !== null && _this$koniState$chain3 !== void 0 && (_this$koniState$chain4 = _this$koniState$chain3.mantaPay) !== null && _this$koniState$chain4 !== void 0 && _this$koniState$chain4.getSyncState().isSyncing || !_utils4.MODULE_SUPPORT.MANTA_ZK) {
3686
3704
  return;
3687
3705
  }
3688
3706
  this.#skipAutoLock = true;
@@ -4185,6 +4203,8 @@ class KoniExtension {
4185
4203
  }, this.#timeAutoLock * 60 * 1000);
4186
4204
  }
4187
4205
  switch (type) {
4206
+ case 'pri(ping)':
4207
+ return 'pong';
4188
4208
  /// Clone from PolkadotJs
4189
4209
  case 'pri(accounts.create.external)':
4190
4210
  return this.accountsCreateExternal(request);
@@ -4705,6 +4725,10 @@ class KoniExtension {
4705
4725
  return this.#koniState.dbService.importDB(request);
4706
4726
  case 'pri(database.exportJson)':
4707
4727
  return this.#koniState.dbService.getExportJson();
4728
+ case 'pri(database.migrateLocalStorage)':
4729
+ return this.#koniState.migrateMV3LocalStorage(request);
4730
+ case 'pri(database.setLocalStorage)':
4731
+ return this.#koniState.setStorageFromWS(request);
4708
4732
  /* Database */
4709
4733
 
4710
4734
  /* Swap service */
@@ -16,7 +16,7 @@ var _promise = require("@subwallet/extension-base/utils/promise");
16
16
 
17
17
  function isLocalStorageReset() {
18
18
  var _window;
19
- if ((_window = window) !== null && _window !== void 0 && _window.localStorage) {
19
+ if (_utils.isSupportWindow && (_window = window) !== null && _window !== void 0 && _window.localStorage) {
20
20
  return !window.localStorage.getItem('keyring:subwallet');
21
21
  } else {
22
22
  return false;
@@ -24,7 +24,7 @@ function isLocalStorageReset() {
24
24
  }
25
25
  async function isIndexedDBReset() {
26
26
  try {
27
- return (await _index.state.dbService.stores.migration.table.count()) < 1;
27
+ return (await _index.SWHandler.instance.state.dbService.stores.migration.table.count()) < 1;
28
28
  } catch (e) {
29
29
  return true;
30
30
  }
@@ -59,7 +59,9 @@ class Mobile {
59
59
  constructor(state) {
60
60
  this.state = state;
61
61
  if (!isLocalStorageReset()) {
62
- this.lastRestoreData.storage = swStorage.copy();
62
+ swStorage.copy().then(data => {
63
+ this.lastRestoreData.storage = data;
64
+ }).catch(console.error);
63
65
  }
64
66
  (async () => {
65
67
  if (!(await isIndexedDBReset())) {
@@ -141,6 +143,7 @@ class Mobile {
141
143
  console.log('restartSubscriptionServices');
142
144
  }
143
145
  async _getLocalStorageExportData() {
146
+ await swStorage.waitReady;
144
147
  return Promise.resolve(JSON.stringify(swStorage.copy()));
145
148
  }
146
149
  async _getDexieExportData() {
@@ -192,7 +195,7 @@ class Mobile {
192
195
  if (storage) {
193
196
  const storageData = JSON.parse(storage);
194
197
  for (const key in storageData) {
195
- swStorage.setItem(key, storageData[key]);
198
+ await swStorage.setItem(key, storageData[key]);
196
199
  }
197
200
  }
198
201
  if (indexedDB) {