@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.
- package/background/KoniTypes.d.ts +3 -1
- package/background/handlers/State.d.ts +1 -78
- package/background/handlers/State.js +1 -428
- package/background/types.d.ts +1 -0
- package/cjs/background/handlers/State.js +1 -456
- package/cjs/constants/storage.js +3 -1
- package/cjs/koni/api/dotsama/crowdloan.js +1 -2
- package/cjs/koni/api/nft/acala_nft/index.js +1 -3
- package/cjs/koni/api/nft/assethub_nft/index.js +1 -3
- package/cjs/koni/api/nft/assethub_unique/index.js +1 -3
- package/cjs/koni/api/nft/bit.country/index.js +4 -6
- package/cjs/koni/api/nft/config.js +1 -8
- package/cjs/koni/api/nft/evm_nft/index.js +1 -3
- package/cjs/koni/api/nft/karura_nft/index.js +1 -3
- package/cjs/koni/api/nft/ordinal_nft/index.js +4 -3
- package/cjs/koni/api/nft/rmrk_nft/index.js +4 -6
- package/cjs/koni/api/nft/unique_network_nft/index.js +1 -3
- package/cjs/koni/api/nft/unique_nft/uniqueNftV2.js +1 -3
- package/cjs/koni/api/nft/vara_nft/index.js +1 -3
- package/cjs/koni/api/nft/wasm_nft/index.js +10 -17
- package/cjs/koni/api/staking/bonding/astar.js +2 -4
- package/cjs/koni/api/staking/subsquidStaking.js +9 -12
- package/cjs/koni/api/subquery/subquery.js +1 -3
- package/cjs/koni/background/handlers/Extension.js +39 -15
- package/cjs/koni/background/handlers/Mobile.js +7 -4
- package/cjs/koni/background/handlers/State.js +68 -12
- package/cjs/koni/background/handlers/Tabs.js +4 -1
- package/cjs/koni/background/handlers/index.js +71 -71
- package/cjs/koni/background/subscription.js +7 -6
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/campaign-service/helpers.js +3 -1
- package/cjs/services/chain-service/index.js +37 -29
- package/cjs/services/chain-service/utils/patch.js +1 -3
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +1 -2
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +2 -3
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +2 -3
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +1 -2
- package/cjs/services/earning-service/handlers/native-staking/astar.js +3 -4
- package/cjs/services/event-service/index.js +0 -1
- package/cjs/services/history-service/subsquid-multi-chain-history.js +1 -3
- package/cjs/services/keyring-service/index.js +22 -0
- package/cjs/services/migration-service/scripts/MigrateRemoveGenesisHash.js +28 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +16 -21
- package/cjs/services/notification-service/NotificationService.js +3 -1
- package/cjs/services/price-service/coingecko.js +6 -7
- package/cjs/services/price-service/index.js +7 -3
- package/cjs/services/request-service/handler/PopupHandler.js +14 -15
- package/cjs/services/setting-service/SettingService.js +4 -1
- package/cjs/services/setting-service/constants.js +1 -1
- package/cjs/services/setting-service/i18n/i18n.js +2 -4
- package/cjs/services/storage-service/DatabaseService.js +1 -1
- package/cjs/services/storage-service/databases/index.js +14 -1
- package/cjs/services/storage-service/db-stores/KeyValue.js +13 -0
- package/cjs/services/subscan-service/index.js +11 -3
- package/cjs/services/transaction-service/index.js +3 -3
- package/cjs/services/wallet-connect-service/constants.js +2 -2
- package/cjs/services/wallet-connect-service/helpers.js +1 -4
- package/cjs/services/wallet-connect-service/index.js +50 -33
- package/cjs/storage/index.js +120 -23
- package/cjs/types/common/index.js +16 -0
- package/cjs/types/common/storage.js +1 -0
- package/cjs/types/index.js +11 -0
- package/cjs/utils/environment.js +1 -1
- package/cjs/utils/eth/parseTransaction/index.js +8 -10
- package/cjs/utils/fetch.js +55 -0
- package/cjs/utils/fetchStaticCache.js +2 -4
- package/cjs/utils/fetchStaticData.js +7 -4
- package/cjs/utils/index.js +24 -0
- package/cjs/utils/reportError.js +1 -3
- package/constants/storage.d.ts +1 -0
- package/constants/storage.js +1 -0
- package/koni/api/dotsama/crowdloan.js +2 -3
- package/koni/api/nft/acala_nft/index.js +0 -1
- package/koni/api/nft/assethub_nft/index.js +0 -1
- package/koni/api/nft/assethub_unique/index.js +0 -1
- package/koni/api/nft/bit.country/index.js +0 -1
- package/koni/api/nft/config.js +1 -7
- package/koni/api/nft/evm_nft/index.js +0 -1
- package/koni/api/nft/karura_nft/index.js +0 -1
- package/koni/api/nft/ordinal_nft/index.d.ts +2 -0
- package/koni/api/nft/ordinal_nft/index.js +4 -3
- package/koni/api/nft/rmrk_nft/index.js +0 -1
- package/koni/api/nft/unique_network_nft/index.js +0 -1
- package/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
- package/koni/api/nft/vara_nft/index.js +0 -1
- package/koni/api/nft/wasm_nft/index.js +4 -10
- package/koni/api/staking/bonding/astar.js +0 -1
- package/koni/api/staking/subsquidStaking.js +10 -12
- package/koni/api/subquery/subquery.js +0 -1
- package/koni/background/handlers/Extension.d.ts +4 -0
- package/koni/background/handlers/Extension.js +29 -8
- package/koni/background/handlers/Mobile.js +9 -6
- package/koni/background/handlers/State.d.ts +6 -1
- package/koni/background/handlers/State.js +68 -12
- package/koni/background/handlers/Tabs.js +4 -1
- package/koni/background/handlers/index.d.ts +13 -7
- package/koni/background/handlers/index.js +67 -62
- package/koni/background/subscription.js +2 -1
- package/package.json +36 -29
- package/packageInfo.js +1 -1
- package/services/campaign-service/helpers.js +3 -1
- package/services/chain-service/index.js +37 -30
- package/services/chain-service/utils/patch.js +0 -1
- package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
- package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -1
- package/services/earning-service/handlers/native-staking/astar.js +0 -1
- package/services/event-service/index.js +0 -1
- package/services/history-service/subsquid-multi-chain-history.js +0 -1
- package/services/keyring-service/index.d.ts +1 -0
- package/services/keyring-service/index.js +19 -0
- package/services/migration-service/scripts/MigrateRemoveGenesisHash.d.ts +4 -0
- package/services/migration-service/scripts/MigrateRemoveGenesisHash.js +20 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +17 -21
- package/services/notification-service/NotificationService.js +3 -1
- package/services/price-service/coingecko.js +6 -6
- package/services/price-service/index.js +7 -3
- package/services/request-service/handler/PopupHandler.d.ts +1 -1
- package/services/request-service/handler/PopupHandler.js +14 -15
- package/services/setting-service/SettingService.d.ts +1 -0
- package/services/setting-service/SettingService.js +4 -1
- package/services/setting-service/constants.js +2 -2
- package/services/setting-service/i18n/i18n.js +2 -4
- package/services/storage-service/DatabaseService.js +1 -1
- package/services/storage-service/databases/index.d.ts +8 -0
- package/services/storage-service/databases/index.js +13 -1
- package/services/storage-service/db-stores/KeyValue.d.ts +4 -0
- package/services/storage-service/db-stores/KeyValue.js +5 -0
- package/services/subscan-service/index.d.ts +2 -0
- package/services/subscan-service/index.js +10 -1
- package/services/transaction-service/index.js +4 -4
- package/services/wallet-connect-service/constants.js +3 -3
- package/services/wallet-connect-service/helpers.js +1 -4
- package/services/wallet-connect-service/index.d.ts +2 -0
- package/services/wallet-connect-service/index.js +42 -31
- package/storage/index.d.ts +19 -9
- package/storage/index.js +115 -23
- package/types/common/index.d.ts +1 -0
- package/types/common/index.js +4 -0
- package/types/common/storage.d.ts +4 -0
- package/types/common/storage.js +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/utils/environment.js +1 -1
- package/utils/eth/parseTransaction/index.js +8 -10
- package/utils/fetch.d.ts +8 -0
- package/utils/fetch.js +44 -0
- package/utils/fetchStaticCache.js +2 -3
- package/utils/fetchStaticData.d.ts +1 -1
- package/utils/fetchStaticData.js +7 -4
- package/utils/index.d.ts +2 -0
- package/utils/index.js +2 -0
- package/utils/reportError.js +0 -1
- package/background/handlers/Extension.d.ts +0 -55
- package/background/handlers/Extension.js +0 -601
- package/background/handlers/Tabs.d.ts +0 -24
- package/background/handlers/Tabs.js +0 -194
- package/background/handlers/index.d.ts +0 -3
- package/background/handlers/index.js +0 -45
- package/cjs/background/handlers/Extension.js +0 -642
- package/cjs/background/handlers/Tabs.js +0 -222
- package/cjs/background/handlers/index.js +0 -54
- package/cjs/koni/background/events.js +0 -14
- package/koni/background/events.d.ts +0 -1
- package/koni/background/events.js +0 -7
|
@@ -23,14 +23,37 @@ var _types = require("./types");
|
|
|
23
23
|
const storage = _storage.SWStorage.instance;
|
|
24
24
|
const methodDOTRequire = [_types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_MESSAGE, _types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION];
|
|
25
25
|
const methodEVMRequire = [_types.EIP155_SIGNING_METHODS.PERSONAL_SIGN, _types.EIP155_SIGNING_METHODS.ETH_SIGN, _types.EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION];
|
|
26
|
+
class WCStorage {
|
|
27
|
+
async getEntries() {
|
|
28
|
+
const datas = await storage.getEntries();
|
|
29
|
+
return Promise.resolve(datas.filter(_ref => {
|
|
30
|
+
let [key] = _ref;
|
|
31
|
+
return key.startsWith('wc@');
|
|
32
|
+
}).map(_ref2 => {
|
|
33
|
+
let [key, value] = _ref2;
|
|
34
|
+
return [key, JSON.parse(value)];
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
async getItem(key) {
|
|
38
|
+
const data = await storage.getItem(key);
|
|
39
|
+
return data ? JSON.parse(data) : undefined;
|
|
40
|
+
}
|
|
41
|
+
async getKeys() {
|
|
42
|
+
return (await storage.keys()).filter(key => key.startsWith('wc@'));
|
|
43
|
+
}
|
|
44
|
+
async removeItem(key) {
|
|
45
|
+
return await storage.removeItem(key);
|
|
46
|
+
}
|
|
47
|
+
async setItem(key, value) {
|
|
48
|
+
return await storage.setItem(key, JSON.stringify(value));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
26
51
|
var _requestService = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("requestService");
|
|
27
52
|
var _polkadotRequestHandler = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("polkadotRequestHandler");
|
|
28
53
|
var _eip155RequestHandler = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("eip155RequestHandler");
|
|
29
54
|
var _koniState = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("koniState");
|
|
30
55
|
var _client = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("client");
|
|
31
56
|
var _option = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("option");
|
|
32
|
-
var _haveData = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("haveData");
|
|
33
|
-
var _initClient = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("initClient");
|
|
34
57
|
var _updateSessions = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("updateSessions");
|
|
35
58
|
var _onSessionProposal = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("onSessionProposal");
|
|
36
59
|
var _onSessionRequest = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("onSessionRequest");
|
|
@@ -58,13 +81,6 @@ class WalletConnectService {
|
|
|
58
81
|
Object.defineProperty(this, _updateSessions, {
|
|
59
82
|
value: _updateSessions2
|
|
60
83
|
});
|
|
61
|
-
Object.defineProperty(this, _initClient, {
|
|
62
|
-
value: _initClient2
|
|
63
|
-
});
|
|
64
|
-
Object.defineProperty(this, _haveData, {
|
|
65
|
-
get: _get_haveData,
|
|
66
|
-
set: void 0
|
|
67
|
-
});
|
|
68
84
|
Object.defineProperty(this, _requestService, {
|
|
69
85
|
writable: true,
|
|
70
86
|
value: void 0
|
|
@@ -92,10 +108,28 @@ class WalletConnectService {
|
|
|
92
108
|
this.sessionSubject = new _rxjs.BehaviorSubject([]);
|
|
93
109
|
(0, _classPrivateFieldLooseBase2.default)(this, _koniState)[_koniState] = koniState;
|
|
94
110
|
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService] = requestService;
|
|
111
|
+
option.storage = new WCStorage();
|
|
95
112
|
(0, _classPrivateFieldLooseBase2.default)(this, _option)[_option] = option;
|
|
96
113
|
(0, _classPrivateFieldLooseBase2.default)(this, _polkadotRequestHandler)[_polkadotRequestHandler] = new _PolkadotRequestHandler.default(this, requestService);
|
|
97
114
|
(0, _classPrivateFieldLooseBase2.default)(this, _eip155RequestHandler)[_eip155RequestHandler] = new _Eip155RequestHandler.default((0, _classPrivateFieldLooseBase2.default)(this, _koniState)[_koniState], this);
|
|
98
|
-
|
|
115
|
+
this.initClient().catch(console.error);
|
|
116
|
+
}
|
|
117
|
+
async haveData() {
|
|
118
|
+
const sessionStorage = await storage.getItem('wc@2:client:0.3//session');
|
|
119
|
+
const pairingStorage = await storage.getItem('wc@2:core:0.3//pairing');
|
|
120
|
+
const subscriptionStorage = await storage.getItem('wc@2:core:0.3//subscription');
|
|
121
|
+
const sessions = sessionStorage ? JSON.parse(sessionStorage) : [];
|
|
122
|
+
const pairings = pairingStorage ? JSON.parse(pairingStorage) : [];
|
|
123
|
+
const subscriptions = subscriptionStorage ? JSON.parse(subscriptionStorage) : [];
|
|
124
|
+
return !!sessions.length || !!pairings.length || !!subscriptions.length;
|
|
125
|
+
}
|
|
126
|
+
async initClient(force) {
|
|
127
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _removeListener)[_removeListener]();
|
|
128
|
+
if (force || (await this.haveData())) {
|
|
129
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _client)[_client] = await _signClient.default.init((0, _classPrivateFieldLooseBase2.default)(this, _option)[_option]);
|
|
130
|
+
}
|
|
131
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
132
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _createListener)[_createListener]();
|
|
99
133
|
}
|
|
100
134
|
get sessions() {
|
|
101
135
|
var _classPrivateFieldLoo;
|
|
@@ -112,12 +146,12 @@ class WalletConnectService {
|
|
|
112
146
|
}
|
|
113
147
|
async changeOption(newOption) {
|
|
114
148
|
(0, _classPrivateFieldLooseBase2.default)(this, _option)[_option] = Object.assign({}, (0, _classPrivateFieldLooseBase2.default)(this, _option)[_option], newOption);
|
|
115
|
-
await
|
|
149
|
+
await this.initClient();
|
|
116
150
|
}
|
|
117
151
|
async connect(uri) {
|
|
118
152
|
var _classPrivateFieldLoo3;
|
|
119
|
-
if (!(
|
|
120
|
-
await
|
|
153
|
+
if (!(await this.haveData())) {
|
|
154
|
+
await this.initClient(true);
|
|
121
155
|
}
|
|
122
156
|
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
123
157
|
await ((_classPrivateFieldLoo3 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.pair({
|
|
@@ -127,10 +161,10 @@ class WalletConnectService {
|
|
|
127
161
|
async approveSession(result) {
|
|
128
162
|
var _classPrivateFieldLoo4;
|
|
129
163
|
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
130
|
-
Object.entries(result.namespaces).forEach(
|
|
164
|
+
Object.entries(result.namespaces).forEach(_ref3 => {
|
|
131
165
|
let [namespace, {
|
|
132
166
|
methods
|
|
133
|
-
}] =
|
|
167
|
+
}] = _ref3;
|
|
134
168
|
methods = [...methods, ...this.findMethodsMissing(_constants.WALLET_CONNECT_EIP155_NAMESPACE === namespace ? methodEVMRequire : methodDOTRequire, methods)];
|
|
135
169
|
result.namespaces[namespace].methods = methods;
|
|
136
170
|
});
|
|
@@ -191,7 +225,7 @@ class WalletConnectService {
|
|
|
191
225
|
console.error(e);
|
|
192
226
|
}
|
|
193
227
|
}
|
|
194
|
-
await
|
|
228
|
+
await this.initClient();
|
|
195
229
|
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
196
230
|
}
|
|
197
231
|
async disconnect(topic) {
|
|
@@ -214,23 +248,6 @@ class WalletConnectService {
|
|
|
214
248
|
}
|
|
215
249
|
}
|
|
216
250
|
exports.default = WalletConnectService;
|
|
217
|
-
function _get_haveData() {
|
|
218
|
-
const sessionStorage = storage.getItem('wc@2:client:0.3//session');
|
|
219
|
-
const pairingStorage = storage.getItem('wc@2:core:0.3//pairing');
|
|
220
|
-
const subscriptionStorage = storage.getItem('wc@2:core:0.3//subscription');
|
|
221
|
-
const sessions = sessionStorage ? JSON.parse(sessionStorage) : [];
|
|
222
|
-
const pairings = pairingStorage ? JSON.parse(pairingStorage) : [];
|
|
223
|
-
const subscriptions = subscriptionStorage ? JSON.parse(subscriptionStorage) : [];
|
|
224
|
-
return !!sessions.length || !!pairings.length || !!subscriptions.length;
|
|
225
|
-
}
|
|
226
|
-
async function _initClient2(force) {
|
|
227
|
-
(0, _classPrivateFieldLooseBase2.default)(this, _removeListener)[_removeListener]();
|
|
228
|
-
if (force || (0, _classPrivateFieldLooseBase2.default)(this, _haveData)[_haveData]) {
|
|
229
|
-
(0, _classPrivateFieldLooseBase2.default)(this, _client)[_client] = await _signClient.default.init((0, _classPrivateFieldLooseBase2.default)(this, _option)[_option]);
|
|
230
|
-
}
|
|
231
|
-
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
232
|
-
(0, _classPrivateFieldLooseBase2.default)(this, _createListener)[_createListener]();
|
|
233
|
-
}
|
|
234
251
|
function _updateSessions2() {
|
|
235
252
|
this.sessionSubject.next(this.sessions);
|
|
236
253
|
}
|
package/cjs/storage/index.js
CHANGED
|
@@ -1,59 +1,156 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.SWStorage = void 0;
|
|
8
|
+
var _databases = _interopRequireDefault(require("@subwallet/extension-base/services/storage-service/databases"));
|
|
9
|
+
var _promise = require("@subwallet/extension-base/utils/promise");
|
|
10
|
+
var _xGlobal = require("@polkadot/x-global");
|
|
7
11
|
// Copyright 2019-2022 @polkadot/extension-base authors & contributors
|
|
8
12
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
13
|
|
|
14
|
+
const hasLocalStorage = typeof localStorage !== 'undefined';
|
|
15
|
+
|
|
16
|
+
// Create localStorage adaptor
|
|
10
17
|
class SWStorage {
|
|
11
18
|
_storage = {};
|
|
19
|
+
localStorage = hasLocalStorage ? localStorage : undefined;
|
|
20
|
+
kvDatabase = _databases.default.getInstance().keyValue;
|
|
21
|
+
isReady = false;
|
|
22
|
+
waitReadyHandler = (0, _promise.createPromiseHandler)();
|
|
23
|
+
get waitReady() {
|
|
24
|
+
return this.waitReadyHandler.promise;
|
|
25
|
+
}
|
|
12
26
|
constructor() {
|
|
13
|
-
this.sync()
|
|
27
|
+
this.sync().then(() => {
|
|
28
|
+
this.isReady = true;
|
|
29
|
+
this.waitReadyHandler.resolve(this);
|
|
30
|
+
}).catch(console.error);
|
|
14
31
|
}
|
|
15
|
-
setItem(key, value) {
|
|
32
|
+
async setItem(key, value) {
|
|
33
|
+
!this.isReady && (await this.waitReady);
|
|
16
34
|
this._storage[key] = value;
|
|
17
|
-
localStorage
|
|
35
|
+
if (this.localStorage) {
|
|
36
|
+
var _this$localStorage;
|
|
37
|
+
(_this$localStorage = this.localStorage) === null || _this$localStorage === void 0 ? void 0 : _this$localStorage.setItem(key, value);
|
|
38
|
+
} else {
|
|
39
|
+
this.kvDatabase.put({
|
|
40
|
+
key,
|
|
41
|
+
value
|
|
42
|
+
}).catch(console.error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async getEntries() {
|
|
46
|
+
!this.isReady && (await this.waitReady);
|
|
47
|
+
return Object.entries(this._storage);
|
|
48
|
+
}
|
|
49
|
+
async setMap(map) {
|
|
50
|
+
!this.isReady && (await this.waitReady);
|
|
51
|
+
this._storage = {
|
|
52
|
+
...this._storage,
|
|
53
|
+
...map
|
|
54
|
+
};
|
|
55
|
+
if (this.localStorage) {
|
|
56
|
+
Object.entries(map).forEach(_ref => {
|
|
57
|
+
var _this$localStorage2;
|
|
58
|
+
let [key, value] = _ref;
|
|
59
|
+
(_this$localStorage2 = this.localStorage) === null || _this$localStorage2 === void 0 ? void 0 : _this$localStorage2.setItem(key, value);
|
|
60
|
+
});
|
|
61
|
+
} else {
|
|
62
|
+
const putList = Object.entries(map).map(_ref2 => {
|
|
63
|
+
let [key, value] = _ref2;
|
|
64
|
+
return {
|
|
65
|
+
key,
|
|
66
|
+
value
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
this.kvDatabase.bulkPut(putList).catch(console.error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async getItem(key) {
|
|
73
|
+
!this.isReady && (await this.waitReady);
|
|
74
|
+
return this._storage[key] || null;
|
|
18
75
|
}
|
|
19
|
-
|
|
20
|
-
|
|
76
|
+
async getItems(keys) {
|
|
77
|
+
!this.isReady && (await this.waitReady);
|
|
78
|
+
return keys.map(key => this._storage[key] || null);
|
|
21
79
|
}
|
|
22
|
-
|
|
80
|
+
async getMap(keys) {
|
|
81
|
+
!this.isReady && (await this.waitReady);
|
|
82
|
+
return keys.reduce((result, key) => {
|
|
83
|
+
result[key] = this._storage[key] || null;
|
|
84
|
+
return result;
|
|
85
|
+
}, {});
|
|
86
|
+
}
|
|
87
|
+
async removeItem(key) {
|
|
88
|
+
!this.isReady && (await this.waitReady);
|
|
23
89
|
this._storage[key] && delete this._storage[key];
|
|
24
|
-
localStorage
|
|
90
|
+
if (this.localStorage) {
|
|
91
|
+
this.localStorage.removeItem(key);
|
|
92
|
+
} else {
|
|
93
|
+
this.kvDatabase.where({
|
|
94
|
+
key
|
|
95
|
+
}).delete().catch(console.error);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async removeItems(keys) {
|
|
99
|
+
!this.isReady && (await this.waitReady);
|
|
100
|
+
keys.forEach(key => {
|
|
101
|
+
this._storage[key] && delete this._storage[key];
|
|
102
|
+
});
|
|
103
|
+
if (this.localStorage) {
|
|
104
|
+
keys.forEach(key => {
|
|
105
|
+
this.localStorage && this.localStorage.removeItem(key);
|
|
106
|
+
});
|
|
107
|
+
} else {
|
|
108
|
+
this.kvDatabase.where('key').anyOf(keys).delete().catch(console.error);
|
|
109
|
+
}
|
|
25
110
|
}
|
|
26
|
-
clear() {
|
|
111
|
+
async clear() {
|
|
112
|
+
!this.isReady && (await this.waitReady);
|
|
27
113
|
this._storage = {};
|
|
28
|
-
localStorage
|
|
114
|
+
if (this.localStorage) {
|
|
115
|
+
this.localStorage.clear();
|
|
116
|
+
} else {
|
|
117
|
+
this.kvDatabase.clear().catch(console.error);
|
|
118
|
+
}
|
|
29
119
|
}
|
|
30
|
-
key(index) {
|
|
120
|
+
async key(index) {
|
|
121
|
+
!this.isReady && (await this.waitReady);
|
|
31
122
|
return Object.keys(this._storage)[index] || null;
|
|
32
123
|
}
|
|
33
|
-
length(index) {
|
|
124
|
+
async length(index) {
|
|
125
|
+
!this.isReady && (await this.waitReady);
|
|
34
126
|
return Object.keys(this._storage)[index] || null;
|
|
35
127
|
}
|
|
36
128
|
|
|
37
129
|
// Additional methods
|
|
38
|
-
keys() {
|
|
130
|
+
async keys() {
|
|
131
|
+
!this.isReady && (await this.waitReady);
|
|
39
132
|
return Object.keys(this._storage) || [];
|
|
40
133
|
}
|
|
41
|
-
copy() {
|
|
134
|
+
async copy() {
|
|
135
|
+
!this.isReady && (await this.waitReady);
|
|
42
136
|
return JSON.parse(JSON.stringify(this._storage));
|
|
43
137
|
}
|
|
44
|
-
sync() {
|
|
45
|
-
|
|
138
|
+
async sync() {
|
|
139
|
+
if (this.localStorage) {
|
|
140
|
+
this._storage = JSON.parse(JSON.stringify(this.localStorage));
|
|
141
|
+
} else {
|
|
142
|
+
const items = await this.kvDatabase.toArray();
|
|
143
|
+
this._storage = {};
|
|
144
|
+
items.forEach(item => {
|
|
145
|
+
this._storage[item.key] = item.value;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
46
148
|
}
|
|
47
149
|
static get instance() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
console.log('SWStorage init');
|
|
51
|
-
// @ts-ignore
|
|
52
|
-
window.SWStorage = new SWStorage();
|
|
150
|
+
if (!_xGlobal.xglobal.SWStorage) {
|
|
151
|
+
_xGlobal.xglobal.SWStorage = new SWStorage();
|
|
53
152
|
}
|
|
54
|
-
|
|
55
|
-
// @ts-ignore
|
|
56
|
-
return window.SWStorage;
|
|
153
|
+
return _xGlobal.xglobal.SWStorage;
|
|
57
154
|
}
|
|
58
155
|
}
|
|
59
156
|
exports.SWStorage = SWStorage;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _storage = require("./storage");
|
|
7
|
+
Object.keys(_storage).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _storage[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _storage[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/cjs/types/index.js
CHANGED
|
@@ -79,4 +79,15 @@ Object.keys(_yield).forEach(function (key) {
|
|
|
79
79
|
return _yield[key];
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
|
+
});
|
|
83
|
+
var _common = require("./common");
|
|
84
|
+
Object.keys(_common).forEach(function (key) {
|
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
|
86
|
+
if (key in exports && exports[key] === _common[key]) return;
|
|
87
|
+
Object.defineProperty(exports, key, {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return _common[key];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
82
93
|
});
|
package/cjs/utils/environment.js
CHANGED
|
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.parseEvmRlp = exports.parseContractInput = exports.isContractAddress = void 0;
|
|
8
8
|
var _helper = require("@subwallet/extension-base/services/chain-service/helper");
|
|
9
9
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
10
|
+
var _utils2 = require("@subwallet/extension-base/utils");
|
|
10
11
|
var _eth = require("@subwallet/extension-base/utils/eth");
|
|
11
12
|
var _base = require("@subwallet/extension-base/utils/eth/parseTransaction/base");
|
|
12
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
13
13
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
14
14
|
var _i18next = require("i18next");
|
|
15
15
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -137,17 +137,15 @@ const parseContractInput = async (input, contractAddress, network) => {
|
|
|
137
137
|
if (contractAddress && network) {
|
|
138
138
|
if ((0, _utils._getEvmAbiExplorer)(network)) {
|
|
139
139
|
try {
|
|
140
|
-
const
|
|
140
|
+
const data = await (0, _utils2.fetchJson)((0, _utils._getEvmAbiExplorer)(network), {
|
|
141
141
|
params: {
|
|
142
142
|
address: contractAddress
|
|
143
143
|
},
|
|
144
144
|
timeout: 3000
|
|
145
145
|
});
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
150
|
-
const abi = res.data.result;
|
|
146
|
+
if (data.status === '1') {
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
148
|
+
const abi = data.result;
|
|
151
149
|
const temp = parseInputWithAbi(input, abi);
|
|
152
150
|
if (temp) {
|
|
153
151
|
return {
|
|
@@ -213,7 +211,7 @@ const parseEvmRlp = async (data, networkMap, evmApiMap) => {
|
|
|
213
211
|
if (await isContractAddress(tx.to, evmApiMap[network.slug])) {
|
|
214
212
|
if ((0, _utils._getEvmAbiExplorer)(network) !== '') {
|
|
215
213
|
try {
|
|
216
|
-
const
|
|
214
|
+
const data = await (0, _utils2.fetchJson)((0, _utils._getEvmAbiExplorer)(network), {
|
|
217
215
|
params: {
|
|
218
216
|
address: tx.to
|
|
219
217
|
},
|
|
@@ -221,9 +219,9 @@ const parseEvmRlp = async (data, networkMap, evmApiMap) => {
|
|
|
221
219
|
});
|
|
222
220
|
|
|
223
221
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
224
|
-
if (
|
|
222
|
+
if (data.status === '1') {
|
|
225
223
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
226
|
-
const abi =
|
|
224
|
+
const abi = data.result;
|
|
227
225
|
const temp = parseInputWithAbi(tx.data, abi);
|
|
228
226
|
if (temp) {
|
|
229
227
|
result.data = temp;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fetchData = fetchData;
|
|
7
|
+
exports.fetchJson = fetchJson;
|
|
8
|
+
exports.fetchText = fetchText;
|
|
9
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
10
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
|
|
12
|
+
async function fetchData(url) {
|
|
13
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
14
|
+
const {
|
|
15
|
+
data,
|
|
16
|
+
params,
|
|
17
|
+
timeout,
|
|
18
|
+
...fetchOptions
|
|
19
|
+
} = options;
|
|
20
|
+
let timeoutId;
|
|
21
|
+
if (timeout) {
|
|
22
|
+
const controller = new AbortController();
|
|
23
|
+
timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
24
|
+
fetchOptions.signal = new AbortController().signal;
|
|
25
|
+
}
|
|
26
|
+
if (params) {
|
|
27
|
+
const urlParams = new URLSearchParams(params);
|
|
28
|
+
url = `${url}?${urlParams.toString()}`;
|
|
29
|
+
}
|
|
30
|
+
if (data) {
|
|
31
|
+
fetchOptions.headers = {
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
Accept: 'application/json',
|
|
34
|
+
...fetchOptions.headers
|
|
35
|
+
};
|
|
36
|
+
fetchOptions.body = JSON.stringify(data);
|
|
37
|
+
}
|
|
38
|
+
const response = await fetch(url, fetchOptions);
|
|
39
|
+
if (!response.ok) {
|
|
40
|
+
throw new Error(`HTTP error! Status: ${response.status}`);
|
|
41
|
+
} else {
|
|
42
|
+
clearTimeout(timeoutId);
|
|
43
|
+
}
|
|
44
|
+
return response;
|
|
45
|
+
}
|
|
46
|
+
async function fetchJson(url) {
|
|
47
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
48
|
+
const response = await fetchData(url, options);
|
|
49
|
+
return await response.json();
|
|
50
|
+
}
|
|
51
|
+
async function fetchText(url) {
|
|
52
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
53
|
+
const response = await fetchData(url, options);
|
|
54
|
+
return await response.text();
|
|
55
|
+
}
|
|
@@ -1,11 +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.fetchStaticCache = fetchStaticCache;
|
|
8
|
-
var
|
|
7
|
+
var _fetch = require("@subwallet/extension-base/utils/fetch");
|
|
9
8
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
10
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
11
10
|
|
|
@@ -15,10 +14,9 @@ const fetchTarget = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'https://stat
|
|
|
15
14
|
async function fetchStaticCache(slug, defaultData) {
|
|
16
15
|
let timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 9000;
|
|
17
16
|
try {
|
|
18
|
-
|
|
17
|
+
return await (0, _fetch.fetchJson)(`${fetchTarget}/${slug}`, {
|
|
19
18
|
timeout
|
|
20
19
|
});
|
|
21
|
-
return rs.data;
|
|
22
20
|
} catch (e) {
|
|
23
21
|
return defaultData;
|
|
24
22
|
}
|
|
@@ -1,12 +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.fetchStaticData = fetchStaticData;
|
|
7
|
+
var _fetch = require("@subwallet/extension-base/utils/fetch");
|
|
8
8
|
var _staticData = require("@subwallet/extension-base/utils/staticData");
|
|
9
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
10
9
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
11
10
|
// SPDX-License-Identifier: Apache-2.0
|
|
12
11
|
|
|
@@ -14,10 +13,14 @@ const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
|
|
|
14
13
|
const branchName = process.env.BRANCH_NAME || 'koni-dev';
|
|
15
14
|
const fetchTarget = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list.json' : 'preview.json';
|
|
16
15
|
async function fetchStaticData(slug, targetFile) {
|
|
16
|
+
let isJson = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
17
17
|
const fetchFile = targetFile || fetchTarget;
|
|
18
18
|
try {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
if (isJson) {
|
|
20
|
+
return await (0, _fetch.fetchJson)(`https://static-data.subwallet.app/${slug}/${fetchFile}`);
|
|
21
|
+
} else {
|
|
22
|
+
return await (0, _fetch.fetchText)(`https://static-data.subwallet.app/${slug}/${fetchFile}`);
|
|
23
|
+
}
|
|
21
24
|
} catch (e) {
|
|
22
25
|
return _staticData.staticData[slug];
|
|
23
26
|
}
|
package/cjs/utils/index.js
CHANGED
|
@@ -80,6 +80,30 @@ var _i18next = require("i18next");
|
|
|
80
80
|
var _util = require("@polkadot/util");
|
|
81
81
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
82
82
|
var _canDerive = require("./canDerive");
|
|
83
|
+
var _mv = require("./mv3");
|
|
84
|
+
Object.keys(_mv).forEach(function (key) {
|
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
|
86
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
87
|
+
if (key in exports && exports[key] === _mv[key]) return;
|
|
88
|
+
Object.defineProperty(exports, key, {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
get: function () {
|
|
91
|
+
return _mv[key];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
var _fetch = require("./fetch");
|
|
96
|
+
Object.keys(_fetch).forEach(function (key) {
|
|
97
|
+
if (key === "default" || key === "__esModule") return;
|
|
98
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
99
|
+
if (key in exports && exports[key] === _fetch[key]) return;
|
|
100
|
+
Object.defineProperty(exports, key, {
|
|
101
|
+
enumerable: true,
|
|
102
|
+
get: function () {
|
|
103
|
+
return _fetch[key];
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
});
|
|
83
107
|
var _account = require("./account");
|
|
84
108
|
Object.keys(_account).forEach(function (key) {
|
|
85
109
|
if (key === "default" || key === "__esModule") return;
|
package/cjs/utils/reportError.js
CHANGED
|
@@ -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.reportError = void 0;
|
|
8
7
|
var _environment = require("@subwallet/extension-base/utils/environment");
|
|
9
|
-
var _crossFetch = _interopRequireDefault(require("cross-fetch"));
|
|
10
8
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
11
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
12
10
|
|
|
@@ -23,7 +21,7 @@ const reportError = async (e, pathName) => {
|
|
|
23
21
|
app_version: JSON.stringify(process.env.PKG_VERSION),
|
|
24
22
|
current_routes: pathName
|
|
25
23
|
};
|
|
26
|
-
await (
|
|
24
|
+
await fetch(_environment.TARGET_ENV === 'extension' ? EXTENSION_REPORT_ERROR_URL : WEBAPP_REPORT_ERROR_URL, {
|
|
27
25
|
method: 'POST',
|
|
28
26
|
body: JSON.stringify(body)
|
|
29
27
|
});
|
package/constants/storage.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const LANGUAGE = "current-language";
|
|
2
|
+
export declare const DEFAULT_LANGUAGE = "en";
|
|
2
3
|
export declare const CURRENCY = "current-currency";
|
|
3
4
|
export declare const REMIND_EXPORT_ACCOUNT = "remind_export_account";
|
|
4
5
|
export declare const LATEST_SESSION = "general.latest-session";
|
package/constants/storage.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
export const LANGUAGE = 'current-language';
|
|
5
|
+
export const DEFAULT_LANGUAGE = 'en';
|
|
5
6
|
export const CURRENCY = 'current-currency';
|
|
6
7
|
export const REMIND_EXPORT_ACCOUNT = 'remind_export_account';
|
|
7
8
|
export const LATEST_SESSION = 'general.latest-session';
|
|
@@ -6,9 +6,8 @@ import { _FundStatus } from '@subwallet/chain-list/types';
|
|
|
6
6
|
import { APIItemState, CrowdloanParaState } from '@subwallet/extension-base/background/KoniTypes';
|
|
7
7
|
import { ACALA_REFRESH_CROWDLOAN_INTERVAL } from '@subwallet/extension-base/constants';
|
|
8
8
|
import registry from '@subwallet/extension-base/koni/api/dotsama/typeRegistry';
|
|
9
|
-
import { categoryAddresses, reformatAddress } from '@subwallet/extension-base/utils';
|
|
9
|
+
import { categoryAddresses, fetchJson, reformatAddress } from '@subwallet/extension-base/utils';
|
|
10
10
|
import { fetchStaticData } from '@subwallet/extension-base/utils/fetchStaticData';
|
|
11
|
-
import axios from 'axios';
|
|
12
11
|
import { BN } from '@polkadot/util';
|
|
13
12
|
const STATUS_MAP = {
|
|
14
13
|
[_FundStatus.IN_AUCTION]: CrowdloanParaState.ONGOING,
|
|
@@ -82,7 +81,7 @@ export const subscribeAcalaContributeInterval = (polkadotAddresses, fundInfo, ca
|
|
|
82
81
|
const acalaContributionApi = 'https://api.polkawallet.io/acala-distribution-v2/crowdloan?account=';
|
|
83
82
|
const getContributeInfo = () => {
|
|
84
83
|
Promise.all(polkadotAddresses.map(polkadotAddress => {
|
|
85
|
-
return
|
|
84
|
+
return fetchJson(`${acalaContributionApi}${polkadotAddress}`);
|
|
86
85
|
})).then(resList => {
|
|
87
86
|
let contribute = new BN(0);
|
|
88
87
|
resList.forEach(res => {
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { getRandomIpfsGateway } from '@subwallet/extension-base/koni/api/nft/config';
|
|
5
5
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
6
6
|
import { isUrl } from '@subwallet/extension-base/utils';
|
|
7
|
-
import fetch from 'cross-fetch';
|
|
8
7
|
const acalaExternalBaseUrl = 'https://apps.acala.network/portfolio/nft/';
|
|
9
8
|
export class AcalaNftApi extends BaseNftApi {
|
|
10
9
|
// eslint-disable-next-line no-useless-constructor
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { AssetHubNftType } from '@subwallet/extension-base/background/KoniTypes';
|
|
5
5
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
6
6
|
import { isUrl } from '@subwallet/extension-base/utils';
|
|
7
|
-
import fetch from 'cross-fetch';
|
|
8
7
|
export default class AssetHubNftsPalletApi extends BaseNftApi {
|
|
9
8
|
// eslint-disable-next-line no-useless-constructor
|
|
10
9
|
constructor(api, addresses, chain) {
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { AssetHubNftType } from '@subwallet/extension-base/background/KoniTypes';
|
|
5
5
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
6
6
|
import { isUrl } from '@subwallet/extension-base/utils';
|
|
7
|
-
import fetch from 'cross-fetch';
|
|
8
7
|
export default class AssetHubUniquesPalletApi extends BaseNftApi {
|
|
9
8
|
// eslint-disable-next-line no-useless-constructor
|
|
10
9
|
constructor(api, addresses, chain) {
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { BIT_AVATAR_API, BIT_COUNTRY_IPFS_SERVER, BIT_COUNTRY_LAND_ESTATE_METADATA_API } from '@subwallet/extension-base/koni/api/nft/config';
|
|
5
5
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
6
6
|
import { isUrl } from '@subwallet/extension-base/utils';
|
|
7
|
-
import fetch from 'cross-fetch';
|
|
8
7
|
import { BN_ZERO, hexToBn } from '@polkadot/util';
|
|
9
8
|
export class BitCountryNftApi extends BaseNftApi {
|
|
10
9
|
constructor(api, addresses, chain) {
|