@subwallet/extension-base 1.1.3-0 → 1.1.5-0
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 +14 -4
- package/background/types.d.ts +4 -0
- package/cjs/koni/api/nft/config.js +19 -16
- package/cjs/koni/api/nft/nft.js +1 -1
- package/cjs/koni/api/nft/rmrk_nft/index.js +57 -48
- package/cjs/koni/background/handlers/Extension.js +49 -11
- package/cjs/koni/background/handlers/Tabs.js +65 -31
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/Accounts.js +7 -2
- package/cjs/page/Injected.js +5 -0
- package/cjs/services/chain-service/index.js +9 -0
- package/cjs/services/request-service/handler/AuthRequestHandler.js +4 -2
- package/cjs/services/request-service/handler/{WalletConnectRequestHandler.js → ConnectWCRequestHandler.js} +9 -9
- package/cjs/services/request-service/handler/NotSupportWCRequestHandler.js +71 -0
- package/cjs/services/request-service/handler/index.js +55 -0
- package/cjs/services/request-service/index.js +36 -22
- package/cjs/services/transaction-service/index.js +5 -1
- package/cjs/services/wallet-connect-service/helpers.js +10 -1
- package/cjs/services/wallet-connect-service/index.js +5 -0
- package/koni/api/nft/config.d.ts +3 -3
- package/koni/api/nft/config.js +15 -12
- package/koni/api/nft/nft.js +1 -1
- package/koni/api/nft/rmrk_nft/index.d.ts +0 -1
- package/koni/api/nft/rmrk_nft/index.js +58 -49
- package/koni/background/handlers/Extension.d.ts +4 -1
- package/koni/background/handlers/Extension.js +43 -7
- package/koni/background/handlers/Tabs.d.ts +3 -1
- package/koni/background/handlers/Tabs.js +44 -11
- package/package.json +21 -11
- package/packageInfo.js +1 -1
- package/page/Accounts.js +7 -2
- package/page/Injected.js +5 -0
- package/services/chain-service/index.js +9 -0
- package/services/request-service/handler/AuthRequestHandler.d.ts +3 -3
- package/services/request-service/handler/AuthRequestHandler.js +5 -3
- package/services/request-service/handler/{WalletConnectRequestHandler.d.ts → ConnectWCRequestHandler.d.ts} +1 -1
- package/services/request-service/handler/{WalletConnectRequestHandler.js → ConnectWCRequestHandler.js} +8 -8
- package/services/request-service/handler/NotSupportWCRequestHandler.d.ts +15 -0
- package/services/request-service/handler/NotSupportWCRequestHandler.js +62 -0
- package/services/request-service/handler/index.d.ts +7 -0
- package/services/request-service/handler/index.js +10 -0
- package/services/request-service/index.d.ts +11 -6
- package/services/request-service/index.js +31 -16
- package/services/transaction-service/index.js +5 -1
- package/services/wallet-connect-service/helpers.d.ts +2 -1
- package/services/wallet-connect-service/helpers.js +8 -0
- package/services/wallet-connect-service/index.js +6 -1
- package/services/wallet-connect-service/types.d.ts +5 -0
package/cjs/page/Accounts.js
CHANGED
|
@@ -20,11 +20,16 @@ class Accounts {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
subscribe(cb) {
|
|
23
|
+
let id = null;
|
|
23
24
|
sendRequest('pub(accounts.subscribeV2)', {
|
|
24
25
|
accountAuthType: 'substrate'
|
|
25
|
-
}, cb).
|
|
26
|
+
}, cb).then(subId => {
|
|
27
|
+
id = subId;
|
|
28
|
+
}).catch(console.error);
|
|
26
29
|
return () => {
|
|
27
|
-
|
|
30
|
+
id && sendRequest('pub(accounts.unsubscribe)', {
|
|
31
|
+
id
|
|
32
|
+
}).catch(console.error);
|
|
28
33
|
};
|
|
29
34
|
}
|
|
30
35
|
}
|
package/cjs/page/Injected.js
CHANGED
|
@@ -18,6 +18,11 @@ class _default {
|
|
|
18
18
|
this.metadata = new _Metadata.default(sendRequest);
|
|
19
19
|
this.provider = new _PostMessageProvider.default(sendRequest);
|
|
20
20
|
this.signer = new _Signer.default(sendRequest);
|
|
21
|
+
setInterval(() => {
|
|
22
|
+
sendRequest('pub(ping)', null).catch(() => {
|
|
23
|
+
console.error('Extension unavailable, ping failed');
|
|
24
|
+
});
|
|
25
|
+
}, 5000 + Math.floor(Math.random() * 5000));
|
|
21
26
|
}
|
|
22
27
|
}
|
|
23
28
|
exports.default = _default;
|
|
@@ -714,6 +714,15 @@ class ChainService {
|
|
|
714
714
|
async initAssetRegistry(deprecatedCustomChainMap) {
|
|
715
715
|
const storedAssetRegistry = await this.dbService.getAllAssetStore();
|
|
716
716
|
const latestAssetRegistry = await this.fetchLatestData(_constants._CHAIN_ASSET_SRC, _chainList.ChainAssetMap);
|
|
717
|
+
|
|
718
|
+
// Fill out zk assets from latestAssetRegistry if not supported
|
|
719
|
+
if (!_utils2.MODULE_SUPPORT.MANTA_ZK) {
|
|
720
|
+
Object.keys(latestAssetRegistry).forEach(slug => {
|
|
721
|
+
if ((0, _utils._isMantaZkAsset)(latestAssetRegistry[slug])) {
|
|
722
|
+
delete latestAssetRegistry[slug];
|
|
723
|
+
}
|
|
724
|
+
});
|
|
725
|
+
}
|
|
717
726
|
if (storedAssetRegistry.length === 0) {
|
|
718
727
|
this.dataMap.assetRegistry = latestAssetRegistry;
|
|
719
728
|
} else {
|
|
@@ -23,8 +23,8 @@ class AuthRequestHandler {
|
|
|
23
23
|
authorizeStore = new _Authorize.default();
|
|
24
24
|
#authRequestsV2 = {};
|
|
25
25
|
authorizeCached = undefined;
|
|
26
|
-
authorizeUrlSubject = new _rxjs.
|
|
27
|
-
evmChainSubject = new _rxjs.
|
|
26
|
+
authorizeUrlSubject = new _rxjs.BehaviorSubject({});
|
|
27
|
+
evmChainSubject = new _rxjs.BehaviorSubject({});
|
|
28
28
|
authSubjectV2 = new _rxjs.BehaviorSubject([]);
|
|
29
29
|
constructor(requestService, chainService, keyringService) {
|
|
30
30
|
this.keyringService = keyringService;
|
|
@@ -75,6 +75,8 @@ class AuthRequestHandler {
|
|
|
75
75
|
} else {
|
|
76
76
|
this.authorizeStore.get('authUrls', data => {
|
|
77
77
|
this.authorizeCached = data || {};
|
|
78
|
+
this.evmChainSubject.next(this.authorizeCached);
|
|
79
|
+
this.authorizeUrlSubject.next(this.authorizeCached);
|
|
78
80
|
update(this.authorizeCached);
|
|
79
81
|
});
|
|
80
82
|
}
|
|
@@ -9,15 +9,15 @@ var _rxjs = require("rxjs");
|
|
|
9
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
10
10
|
|
|
11
11
|
// WC = WalletConnect
|
|
12
|
-
class
|
|
12
|
+
class ConnectWCRequestHandler {
|
|
13
13
|
#requestService;
|
|
14
|
-
#
|
|
14
|
+
#connectWCRequests = {};
|
|
15
15
|
connectWCSubject = new _rxjs.BehaviorSubject([]);
|
|
16
16
|
constructor(requestService) {
|
|
17
17
|
this.#requestService = requestService;
|
|
18
18
|
}
|
|
19
19
|
get allConnectWCRequests() {
|
|
20
|
-
return Object.values(this.#
|
|
20
|
+
return Object.values(this.#connectWCRequests)
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
22
22
|
.map(_ref => {
|
|
23
23
|
let {
|
|
@@ -29,10 +29,10 @@ class WalletConnectRequestHandler {
|
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
get numConnectWCRequests() {
|
|
32
|
-
return Object.keys(this.#
|
|
32
|
+
return Object.keys(this.#connectWCRequests).length;
|
|
33
33
|
}
|
|
34
34
|
getConnectWCRequest(id) {
|
|
35
|
-
return this.#
|
|
35
|
+
return this.#connectWCRequests[id];
|
|
36
36
|
}
|
|
37
37
|
updateIconConnectWC(shouldClose) {
|
|
38
38
|
this.connectWCSubject.next(this.allConnectWCRequests);
|
|
@@ -40,7 +40,7 @@ class WalletConnectRequestHandler {
|
|
|
40
40
|
}
|
|
41
41
|
connectWCComplete = id => {
|
|
42
42
|
const complete = shouldClose => {
|
|
43
|
-
delete this.#
|
|
43
|
+
delete this.#connectWCRequests[id];
|
|
44
44
|
this.updateIconConnectWC(shouldClose);
|
|
45
45
|
};
|
|
46
46
|
return {
|
|
@@ -54,7 +54,7 @@ class WalletConnectRequestHandler {
|
|
|
54
54
|
};
|
|
55
55
|
addConnectWCRequest(request) {
|
|
56
56
|
const id = request.id;
|
|
57
|
-
this.#
|
|
57
|
+
this.#connectWCRequests[id] = {
|
|
58
58
|
...this.connectWCComplete(id),
|
|
59
59
|
...request
|
|
60
60
|
};
|
|
@@ -62,10 +62,10 @@ class WalletConnectRequestHandler {
|
|
|
62
62
|
this.#requestService.popupOpen();
|
|
63
63
|
}
|
|
64
64
|
resetWallet() {
|
|
65
|
-
for (const request of Object.values(this.#
|
|
65
|
+
for (const request of Object.values(this.#connectWCRequests)) {
|
|
66
66
|
request.reject(new Error('Reset wallet'));
|
|
67
67
|
}
|
|
68
68
|
this.connectWCSubject.next([]);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
exports.default =
|
|
71
|
+
exports.default = ConnectWCRequestHandler;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _rxjs = require("rxjs");
|
|
8
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
9
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
+
|
|
11
|
+
// WC = WalletConnect
|
|
12
|
+
class NotSupportWCRequestHandler {
|
|
13
|
+
#requestService;
|
|
14
|
+
#notSupportWCRequests = {};
|
|
15
|
+
notSupportWCSubject = new _rxjs.BehaviorSubject([]);
|
|
16
|
+
constructor(requestService) {
|
|
17
|
+
this.#requestService = requestService;
|
|
18
|
+
}
|
|
19
|
+
get allNotSupportWCRequests() {
|
|
20
|
+
return Object.values(this.#notSupportWCRequests)
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
22
|
+
.map(_ref => {
|
|
23
|
+
let {
|
|
24
|
+
reject,
|
|
25
|
+
resolve,
|
|
26
|
+
...data
|
|
27
|
+
} = _ref;
|
|
28
|
+
return data;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
get numNotSupportWCRequests() {
|
|
32
|
+
return Object.keys(this.#notSupportWCRequests).length;
|
|
33
|
+
}
|
|
34
|
+
getNotSupportWCRequest(id) {
|
|
35
|
+
return this.#notSupportWCRequests[id];
|
|
36
|
+
}
|
|
37
|
+
updateIconNotSupportWC(shouldClose) {
|
|
38
|
+
this.notSupportWCSubject.next(this.allNotSupportWCRequests);
|
|
39
|
+
this.#requestService.updateIconV2(shouldClose);
|
|
40
|
+
}
|
|
41
|
+
notSupportWCComplete = id => {
|
|
42
|
+
const complete = shouldClose => {
|
|
43
|
+
delete this.#notSupportWCRequests[id];
|
|
44
|
+
this.updateIconNotSupportWC(shouldClose);
|
|
45
|
+
};
|
|
46
|
+
return {
|
|
47
|
+
reject: () => {
|
|
48
|
+
complete(true);
|
|
49
|
+
},
|
|
50
|
+
resolve: () => {
|
|
51
|
+
complete(true);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
addNotSupportWCRequest(request) {
|
|
56
|
+
const id = request.id;
|
|
57
|
+
this.#notSupportWCRequests[id] = {
|
|
58
|
+
...this.notSupportWCComplete(id),
|
|
59
|
+
...request
|
|
60
|
+
};
|
|
61
|
+
this.updateIconNotSupportWC();
|
|
62
|
+
this.#requestService.popupOpen();
|
|
63
|
+
}
|
|
64
|
+
resetWallet() {
|
|
65
|
+
for (const request of Object.values(this.#notSupportWCRequests)) {
|
|
66
|
+
request.reject(new Error('Reset wallet'));
|
|
67
|
+
}
|
|
68
|
+
this.notSupportWCSubject.next([]);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.default = NotSupportWCRequestHandler;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "AuthRequestHandler", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _AuthRequestHandler.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "ConnectWCRequestHandler", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _ConnectWCRequestHandler.default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "EvmRequestHandler", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _EvmRequestHandler.default;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "MetadataRequestHandler", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _MetadataRequestHandler.default;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "NotSupportWCRequestHandler", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return _NotSupportWCRequestHandler.default;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "PopupHandler", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () {
|
|
40
|
+
return _PopupHandler.default;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "SubstrateRequestHandler", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _SubstrateRequestHandler.default;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
var _AuthRequestHandler = _interopRequireDefault(require("./AuthRequestHandler"));
|
|
50
|
+
var _ConnectWCRequestHandler = _interopRequireDefault(require("./ConnectWCRequestHandler"));
|
|
51
|
+
var _EvmRequestHandler = _interopRequireDefault(require("./EvmRequestHandler"));
|
|
52
|
+
var _MetadataRequestHandler = _interopRequireDefault(require("./MetadataRequestHandler"));
|
|
53
|
+
var _NotSupportWCRequestHandler = _interopRequireDefault(require("./NotSupportWCRequestHandler"));
|
|
54
|
+
var _PopupHandler = _interopRequireDefault(require("./PopupHandler"));
|
|
55
|
+
var _SubstrateRequestHandler = _interopRequireDefault(require("./SubstrateRequestHandler"));
|
|
@@ -1,16 +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.default = void 0;
|
|
8
|
-
var
|
|
9
|
-
var _EvmRequestHandler = _interopRequireDefault(require("@subwallet/extension-base/services/request-service/handler/EvmRequestHandler"));
|
|
10
|
-
var _MetadataRequestHandler = _interopRequireDefault(require("@subwallet/extension-base/services/request-service/handler/MetadataRequestHandler"));
|
|
11
|
-
var _PopupHandler = _interopRequireDefault(require("@subwallet/extension-base/services/request-service/handler/PopupHandler"));
|
|
12
|
-
var _SubstrateRequestHandler = _interopRequireDefault(require("@subwallet/extension-base/services/request-service/handler/SubstrateRequestHandler"));
|
|
13
|
-
var _WalletConnectRequestHandler = _interopRequireDefault(require("@subwallet/extension-base/services/request-service/handler/WalletConnectRequestHandler"));
|
|
7
|
+
var _handler = require("./handler");
|
|
14
8
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
15
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
16
10
|
|
|
@@ -22,19 +16,21 @@ class RequestService {
|
|
|
22
16
|
#authRequestHandler;
|
|
23
17
|
#substrateRequestHandler;
|
|
24
18
|
#evmRequestHandler;
|
|
25
|
-
#
|
|
19
|
+
#connectWCRequestHandler;
|
|
20
|
+
#notSupportWCRequestHandler;
|
|
26
21
|
|
|
27
22
|
// Common
|
|
28
23
|
constructor(chainService, settingService, keyringService) {
|
|
29
24
|
this.keyringService = keyringService;
|
|
30
25
|
this.#chainService = chainService;
|
|
31
26
|
this.settingService = settingService;
|
|
32
|
-
this.#popupHandler = new
|
|
33
|
-
this.#metadataRequestHandler = new
|
|
34
|
-
this.#authRequestHandler = new
|
|
35
|
-
this.#substrateRequestHandler = new
|
|
36
|
-
this.#evmRequestHandler = new
|
|
37
|
-
this.#
|
|
27
|
+
this.#popupHandler = new _handler.PopupHandler(this);
|
|
28
|
+
this.#metadataRequestHandler = new _handler.MetadataRequestHandler(this);
|
|
29
|
+
this.#authRequestHandler = new _handler.AuthRequestHandler(this, this.#chainService, this.keyringService);
|
|
30
|
+
this.#substrateRequestHandler = new _handler.SubstrateRequestHandler(this);
|
|
31
|
+
this.#evmRequestHandler = new _handler.EvmRequestHandler(this);
|
|
32
|
+
this.#connectWCRequestHandler = new _handler.ConnectWCRequestHandler(this);
|
|
33
|
+
this.#notSupportWCRequestHandler = new _handler.NotSupportWCRequestHandler(this);
|
|
38
34
|
|
|
39
35
|
// Reset icon on start service
|
|
40
36
|
this.updateIconV2();
|
|
@@ -170,33 +166,51 @@ class RequestService {
|
|
|
170
166
|
return this.#evmRequestHandler.updateConfirmation(id, type, payload, options, validator);
|
|
171
167
|
}
|
|
172
168
|
|
|
173
|
-
//
|
|
169
|
+
// WalletConnect Connect requests
|
|
174
170
|
getConnectWCRequest(id) {
|
|
175
|
-
return this.#
|
|
171
|
+
return this.#connectWCRequestHandler.getConnectWCRequest(id);
|
|
176
172
|
}
|
|
177
173
|
get connectWCSubject() {
|
|
178
|
-
return this.#
|
|
174
|
+
return this.#connectWCRequestHandler.connectWCSubject;
|
|
179
175
|
}
|
|
180
176
|
get allConnectWCRequests() {
|
|
181
|
-
return this.#
|
|
177
|
+
return this.#connectWCRequestHandler.allConnectWCRequests;
|
|
182
178
|
}
|
|
183
179
|
get numConnectWCRequests() {
|
|
184
|
-
return this.#
|
|
180
|
+
return this.#connectWCRequestHandler.numConnectWCRequests;
|
|
185
181
|
}
|
|
186
182
|
addConnectWCRequest(request) {
|
|
187
|
-
return this.#
|
|
183
|
+
return this.#connectWCRequestHandler.addConnectWCRequest(request);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// WalletConnect not support requests
|
|
187
|
+
getNotSupportWCRequest(id) {
|
|
188
|
+
return this.#notSupportWCRequestHandler.getNotSupportWCRequest(id);
|
|
189
|
+
}
|
|
190
|
+
get notSupportWCSubject() {
|
|
191
|
+
return this.#notSupportWCRequestHandler.notSupportWCSubject;
|
|
192
|
+
}
|
|
193
|
+
get allNotSupportWCRequests() {
|
|
194
|
+
return this.#notSupportWCRequestHandler.allNotSupportWCRequests;
|
|
195
|
+
}
|
|
196
|
+
get numNotSupportWCRequests() {
|
|
197
|
+
return this.#notSupportWCRequestHandler.numNotSupportWCRequests;
|
|
198
|
+
}
|
|
199
|
+
addNotSupportWCRequest(request) {
|
|
200
|
+
return this.#notSupportWCRequestHandler.addNotSupportWCRequest(request);
|
|
188
201
|
}
|
|
189
202
|
|
|
190
203
|
// General methods
|
|
191
204
|
get numRequests() {
|
|
192
|
-
return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests + this.numConnectWCRequests;
|
|
205
|
+
return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests + this.numConnectWCRequests + this.numNotSupportWCRequests;
|
|
193
206
|
}
|
|
194
207
|
resetWallet() {
|
|
195
208
|
this.#authRequestHandler.resetWallet();
|
|
196
209
|
this.#substrateRequestHandler.resetWallet();
|
|
197
210
|
this.#evmRequestHandler.resetWallet();
|
|
198
211
|
this.#metadataRequestHandler.resetWallet();
|
|
199
|
-
this.#
|
|
212
|
+
this.#connectWCRequestHandler.resetWallet();
|
|
213
|
+
this.#notSupportWCRequestHandler.resetWallet();
|
|
200
214
|
}
|
|
201
215
|
}
|
|
202
216
|
exports.default = RequestService;
|
|
@@ -22,6 +22,7 @@ var _eth = require("@subwallet/extension-base/utils/eth");
|
|
|
22
22
|
var _mergeTransactionAndSignature = require("@subwallet/extension-base/utils/eth/mergeTransactionAndSignature");
|
|
23
23
|
var _parseTransaction = require("@subwallet/extension-base/utils/eth/parseTransaction");
|
|
24
24
|
var _uiKeyring = _interopRequireDefault(require("@subwallet/ui-keyring"));
|
|
25
|
+
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
25
26
|
var _ethereumjsUtil = require("ethereumjs-util");
|
|
26
27
|
var _ethers = require("ethers");
|
|
27
28
|
var _eventemitter = _interopRequireDefault(require("eventemitter3"));
|
|
@@ -120,7 +121,7 @@ class TransactionService {
|
|
|
120
121
|
}
|
|
121
122
|
} catch (e) {
|
|
122
123
|
const error = e;
|
|
123
|
-
if (error.message.includes('gas required exceeds allowance')) {
|
|
124
|
+
if (error.message.includes('gas required exceeds allowance') && error.message.includes('insufficient funds')) {
|
|
124
125
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
125
126
|
}
|
|
126
127
|
estimateFee.value = '0';
|
|
@@ -149,6 +150,9 @@ class TransactionService {
|
|
|
149
150
|
const balanceNum = parseInt(balance.value);
|
|
150
151
|
const edNum = parseInt(existentialDeposit);
|
|
151
152
|
const transferNativeNum = parseInt(transferNative);
|
|
153
|
+
if (!new _bignumber.default(balance.value).gt(0)) {
|
|
154
|
+
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
155
|
+
}
|
|
152
156
|
if (transferNativeNum + feeNum > balanceNum) {
|
|
153
157
|
if (!isTransferAll) {
|
|
154
158
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.NOT_ENOUGH_BALANCE));
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.parseRequestParams = exports.isWalletConnectRequest = exports.isSupportWalletConnectNamespace = exports.isSupportWalletConnectChain = exports.isProposalExpired = exports.getWCId = exports.getEip155MessageAddress = exports.convertConnectRequest = void 0;
|
|
6
|
+
exports.parseRequestParams = exports.isWalletConnectRequest = exports.isSupportWalletConnectNamespace = exports.isSupportWalletConnectChain = exports.isProposalExpired = exports.getWCId = exports.getEip155MessageAddress = exports.convertNotSupportRequest = exports.convertConnectRequest = void 0;
|
|
7
7
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
8
8
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
9
9
|
var _constants = require("./constants");
|
|
@@ -24,6 +24,15 @@ const convertConnectRequest = request => {
|
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
26
|
exports.convertConnectRequest = convertConnectRequest;
|
|
27
|
+
const convertNotSupportRequest = (request, url) => {
|
|
28
|
+
return {
|
|
29
|
+
id: getWCId(request.id),
|
|
30
|
+
isInternal: false,
|
|
31
|
+
request: request,
|
|
32
|
+
url: url
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
exports.convertNotSupportRequest = convertNotSupportRequest;
|
|
27
36
|
const parseRequestParams = params => {
|
|
28
37
|
// @ts-ignore
|
|
29
38
|
return params;
|
|
@@ -259,6 +259,11 @@ function _onSessionRequest2(requestEvent) {
|
|
|
259
259
|
}
|
|
260
260
|
} catch (e) {
|
|
261
261
|
console.log(e);
|
|
262
|
+
try {
|
|
263
|
+
const requestSession = this.getSession(topic);
|
|
264
|
+
const notSupportRequest = (0, _helpers.convertNotSupportRequest)(requestEvent, requestSession.peer.metadata.url);
|
|
265
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].addNotSupportWCRequest(notSupportRequest);
|
|
266
|
+
} catch (e) {}
|
|
262
267
|
this.responseRequest({
|
|
263
268
|
topic: topic,
|
|
264
269
|
response: (0, _utils.formatJsonRpcError)(id, e.message)
|
package/koni/api/nft/config.d.ts
CHANGED
|
@@ -15,12 +15,12 @@ export declare const UNIQUE_SCAN_ENDPOINT = "https://explorer-api.unique.network
|
|
|
15
15
|
export declare const QUARTZ_SCAN_ENDPOINT = "https://hasura-quartz.unique.network/v1/graphql";
|
|
16
16
|
export declare const UNIQUE_IPFS_GATEWAY = "https://ipfs.unique.network/ipfs/";
|
|
17
17
|
export declare const NFT_STORAGE_GATEWAY = "https://nftstorage.link/ipfs/";
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const IPFS_W3S_LINK = "https://w3s.link/ipfs/";
|
|
19
19
|
export declare const GATEWAY_IPFS_IO = "https://gateway.ipfs.io/ipfs/";
|
|
20
20
|
export declare const DWEB_LINK = "https://dweb.link/ipfs/";
|
|
21
|
-
export declare const
|
|
21
|
+
export declare const IPFS_GATEWAY_4EVERLAND = "https://4everland.io/ipfs/";
|
|
22
22
|
export declare const IPFS_FLEEK = "https://ipfs.fleek.co/ipfs/";
|
|
23
|
-
export declare const
|
|
23
|
+
export declare const IPFS_HARDBIN = "https://hardbin.com/ipfs";
|
|
24
24
|
export declare enum SUPPORTED_NFT_NETWORKS {
|
|
25
25
|
karura = "karura",
|
|
26
26
|
acala = "acala",
|
package/koni/api/nft/config.js
CHANGED
|
@@ -19,12 +19,12 @@ export const UNIQUE_SCAN_ENDPOINT = 'https://explorer-api.unique.network/v1/grap
|
|
|
19
19
|
export const QUARTZ_SCAN_ENDPOINT = 'https://hasura-quartz.unique.network/v1/graphql';
|
|
20
20
|
export const UNIQUE_IPFS_GATEWAY = 'https://ipfs.unique.network/ipfs/';
|
|
21
21
|
export const NFT_STORAGE_GATEWAY = 'https://nftstorage.link/ipfs/';
|
|
22
|
-
export const
|
|
22
|
+
export const IPFS_W3S_LINK = 'https://w3s.link/ipfs/';
|
|
23
23
|
export const GATEWAY_IPFS_IO = 'https://gateway.ipfs.io/ipfs/';
|
|
24
24
|
export const DWEB_LINK = 'https://dweb.link/ipfs/';
|
|
25
|
-
export const
|
|
25
|
+
export const IPFS_GATEWAY_4EVERLAND = 'https://4everland.io/ipfs/';
|
|
26
26
|
export const IPFS_FLEEK = 'https://ipfs.fleek.co/ipfs/';
|
|
27
|
-
export const
|
|
27
|
+
export const IPFS_HARDBIN = 'https://hardbin.com/ipfs';
|
|
28
28
|
export let SUPPORTED_NFT_NETWORKS;
|
|
29
29
|
(function (SUPPORTED_NFT_NETWORKS) {
|
|
30
30
|
SUPPORTED_NFT_NETWORKS["karura"] = "karura";
|
|
@@ -68,9 +68,6 @@ export let SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME;
|
|
|
68
68
|
SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME["pioneer"] = "pioneer";
|
|
69
69
|
})(SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME || (SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME = {}));
|
|
70
70
|
const RANDOM_IPFS_GATEWAY_SETTING = [{
|
|
71
|
-
provider: IPFS_IO_GATEWAY,
|
|
72
|
-
weight: 0 // Not stable
|
|
73
|
-
}, {
|
|
74
71
|
provider: CF_IPFS_GATEWAY,
|
|
75
72
|
weight: 4
|
|
76
73
|
}, {
|
|
@@ -85,12 +82,6 @@ const RANDOM_IPFS_GATEWAY_SETTING = [{
|
|
|
85
82
|
}, {
|
|
86
83
|
provider: DWEB_LINK,
|
|
87
84
|
weight: 5
|
|
88
|
-
}, {
|
|
89
|
-
provider: IPFS_GATEWAY_CLOUD,
|
|
90
|
-
weight: 0 // Deceptive site warning
|
|
91
|
-
}, {
|
|
92
|
-
provider: IPFS_TELOS_MIAMI,
|
|
93
|
-
weight: 0
|
|
94
85
|
}];
|
|
95
86
|
if (!RuntimeInfo.protocol || RuntimeInfo.protocol && !RuntimeInfo.protocol.startsWith('http')) {
|
|
96
87
|
RANDOM_IPFS_GATEWAY_SETTING.push({
|
|
@@ -101,6 +92,18 @@ if (!RuntimeInfo.protocol || RuntimeInfo.protocol && !RuntimeInfo.protocol.start
|
|
|
101
92
|
provider: IPFS_FLEEK,
|
|
102
93
|
weight: 4
|
|
103
94
|
});
|
|
95
|
+
RANDOM_IPFS_GATEWAY_SETTING.push({
|
|
96
|
+
provider: IPFS_HARDBIN,
|
|
97
|
+
weight: 1
|
|
98
|
+
});
|
|
99
|
+
RANDOM_IPFS_GATEWAY_SETTING.push({
|
|
100
|
+
provider: IPFS_GATEWAY_4EVERLAND,
|
|
101
|
+
weight: 2
|
|
102
|
+
});
|
|
103
|
+
RANDOM_IPFS_GATEWAY_SETTING.push({
|
|
104
|
+
provider: IPFS_W3S_LINK,
|
|
105
|
+
weight: 1
|
|
106
|
+
});
|
|
104
107
|
}
|
|
105
108
|
const RANDOM_IPFS_GATEWAY_TOTAL_WEIGHT = RANDOM_IPFS_GATEWAY_SETTING.reduce((value, item) => value + item.weight, 0);
|
|
106
109
|
export function getRandomIpfsGateway() {
|
package/koni/api/nft/nft.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { BaseNftApi, HandleNftParams } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
2
2
|
export declare class RmrkNftApi extends BaseNftApi {
|
|
3
3
|
constructor(addresses: string[], chain: string);
|
|
4
|
-
parseUrl(input: string): string | undefined;
|
|
5
4
|
private getMetadata;
|
|
6
5
|
private getAllByAccount;
|
|
7
6
|
handleNft(address: string, params: HandleNftParams): Promise<void>;
|