@subwallet/extension-base 1.1.2-1 → 1.1.4-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 +18 -0
- package/background/KoniTypes.js +2 -1
- package/cjs/background/KoniTypes.js +4 -2
- package/cjs/koni/api/dotsama/transfer.js +0 -2
- package/cjs/koni/api/nft/config.js +13 -13
- 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 +179 -120
- package/cjs/koni/background/handlers/State.js +73 -48
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/chain-service/constants.js +2 -1
- package/cjs/services/chain-service/handler/SubstrateApi.js +8 -0
- package/cjs/services/chain-service/handler/manta/MantaPrivateHandler.js +1 -1
- package/cjs/services/chain-service/handler/manta/manta-extension-sdk-empty.js +13 -0
- package/cjs/services/chain-service/index.js +20 -6
- package/cjs/services/request-service/handler/PopupHandler.js +2 -2
- package/cjs/services/request-service/helper/index.js +2 -26
- package/cjs/services/storage-service/db-stores/Metadata.js +1 -1
- package/cjs/services/wallet-connect-service/constants.js +8 -5
- package/cjs/services/wallet-connect-service/index.js +50 -36
- package/cjs/utils/environment.js +32 -2
- package/cjs/utils/index.js +21 -5
- package/cjs/utils/registry.js +25 -0
- package/koni/api/dotsama/transfer.js +0 -2
- package/koni/api/nft/config.d.ts +3 -3
- package/koni/api/nft/config.js +9 -9
- 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 +2 -0
- package/koni/background/handlers/Extension.js +72 -15
- package/koni/background/handlers/State.d.ts +7 -2
- package/koni/background/handlers/State.js +73 -48
- package/package.json +17 -6
- package/packageInfo.js +1 -1
- package/services/chain-service/constants.d.ts +1 -0
- package/services/chain-service/constants.js +2 -1
- package/services/chain-service/handler/SubstrateApi.js +8 -0
- package/services/chain-service/handler/manta/MantaPrivateHandler.d.ts +1 -1
- package/services/chain-service/handler/manta/MantaPrivateHandler.js +1 -1
- package/services/chain-service/handler/manta/manta-extension-sdk-empty.d.ts +4 -0
- package/services/chain-service/handler/manta/manta-extension-sdk-empty.js +5 -0
- package/services/chain-service/index.d.ts +2 -1
- package/services/chain-service/index.js +20 -6
- package/services/request-service/handler/PopupHandler.js +1 -1
- package/services/request-service/helper/index.d.ts +0 -2
- package/services/request-service/helper/index.js +0 -23
- package/services/request-service/types.d.ts +0 -1
- package/services/storage-service/db-stores/Metadata.js +1 -1
- package/services/wallet-connect-service/constants.d.ts +2 -1
- package/services/wallet-connect-service/constants.js +5 -3
- package/services/wallet-connect-service/index.d.ts +0 -1
- package/services/wallet-connect-service/index.js +50 -36
- package/utils/environment.d.ts +4 -1
- package/utils/environment.js +28 -1
- package/utils/index.d.ts +2 -0
- package/utils/index.js +4 -1
- package/utils/registry.d.ts +4 -0
- package/utils/registry.js +18 -0
|
@@ -24,6 +24,7 @@ var _eip155RequestHandler = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default
|
|
|
24
24
|
var _koniState = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("koniState");
|
|
25
25
|
var _client = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("client");
|
|
26
26
|
var _option = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("option");
|
|
27
|
+
var _haveData = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("haveData");
|
|
27
28
|
var _initClient = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("initClient");
|
|
28
29
|
var _updateSessions = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("updateSessions");
|
|
29
30
|
var _onSessionProposal = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("onSessionProposal");
|
|
@@ -55,6 +56,10 @@ class WalletConnectService {
|
|
|
55
56
|
Object.defineProperty(this, _initClient, {
|
|
56
57
|
value: _initClient2
|
|
57
58
|
});
|
|
59
|
+
Object.defineProperty(this, _haveData, {
|
|
60
|
+
get: _get_haveData,
|
|
61
|
+
set: void 0
|
|
62
|
+
});
|
|
58
63
|
Object.defineProperty(this, _requestService, {
|
|
59
64
|
writable: true,
|
|
60
65
|
value: void 0
|
|
@@ -104,66 +109,64 @@ class WalletConnectService {
|
|
|
104
109
|
(0, _classPrivateFieldLooseBase2.default)(this, _option)[_option] = Object.assign({}, (0, _classPrivateFieldLooseBase2.default)(this, _option)[_option], newOption);
|
|
105
110
|
await (0, _classPrivateFieldLooseBase2.default)(this, _initClient)[_initClient]();
|
|
106
111
|
}
|
|
107
|
-
getSessions() {
|
|
108
|
-
var _classPrivateFieldLoo3;
|
|
109
|
-
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
110
|
-
console.log((_classPrivateFieldLoo3 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.session.values);
|
|
111
|
-
}
|
|
112
112
|
async connect(uri) {
|
|
113
|
-
var
|
|
113
|
+
var _classPrivateFieldLoo3;
|
|
114
|
+
if (!(0, _classPrivateFieldLooseBase2.default)(this, _haveData)[_haveData]) {
|
|
115
|
+
await (0, _classPrivateFieldLooseBase2.default)(this, _initClient)[_initClient](true);
|
|
116
|
+
}
|
|
114
117
|
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
115
|
-
await ((
|
|
118
|
+
await ((_classPrivateFieldLoo3 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.pair({
|
|
116
119
|
uri
|
|
117
120
|
}));
|
|
118
121
|
}
|
|
119
122
|
async approveSession(result) {
|
|
120
|
-
var
|
|
123
|
+
var _classPrivateFieldLoo4;
|
|
121
124
|
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
122
|
-
await ((
|
|
125
|
+
await ((_classPrivateFieldLoo4 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.approve(result));
|
|
123
126
|
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
124
127
|
}
|
|
125
128
|
async rejectSession(id) {
|
|
126
|
-
var
|
|
129
|
+
var _classPrivateFieldLoo5;
|
|
127
130
|
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
128
|
-
await ((
|
|
131
|
+
await ((_classPrivateFieldLoo5 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.reject({
|
|
129
132
|
id: id,
|
|
130
133
|
reason: (0, _utils2.getSdkError)('USER_REJECTED')
|
|
131
134
|
}));
|
|
132
135
|
}
|
|
133
136
|
async responseRequest(response) {
|
|
134
|
-
var
|
|
137
|
+
var _classPrivateFieldLoo6;
|
|
135
138
|
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
136
|
-
await ((
|
|
139
|
+
await ((_classPrivateFieldLoo6 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo6 === void 0 ? void 0 : _classPrivateFieldLoo6.respond(response));
|
|
137
140
|
}
|
|
138
141
|
async resetWallet(resetAll) {
|
|
139
|
-
var
|
|
142
|
+
var _classPrivateFieldLoo7, _classPrivateFieldLoo9, _classPrivateFieldLoo11;
|
|
140
143
|
(0, _classPrivateFieldLooseBase2.default)(this, _removeListener)[_removeListener]();
|
|
141
144
|
|
|
142
145
|
// Disconnect session
|
|
143
|
-
const sessions = ((
|
|
146
|
+
const sessions = ((_classPrivateFieldLoo7 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo7 === void 0 ? void 0 : _classPrivateFieldLoo7.session.values) || [];
|
|
144
147
|
for (const session of sessions) {
|
|
145
|
-
var
|
|
146
|
-
(
|
|
148
|
+
var _classPrivateFieldLoo8;
|
|
149
|
+
(_classPrivateFieldLoo8 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo8 === void 0 ? void 0 : _classPrivateFieldLoo8.disconnect({
|
|
147
150
|
topic: session.topic,
|
|
148
151
|
reason: (0, _utils2.getSdkError)('USER_DISCONNECTED')
|
|
149
152
|
}).catch(console.error);
|
|
150
153
|
}
|
|
151
154
|
|
|
152
155
|
// Disconnect pair
|
|
153
|
-
const pairs = ((
|
|
156
|
+
const pairs = ((_classPrivateFieldLoo9 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo9 === void 0 ? void 0 : _classPrivateFieldLoo9.pairing.values) || [];
|
|
154
157
|
for (const pair of pairs) {
|
|
155
|
-
var
|
|
156
|
-
(
|
|
158
|
+
var _classPrivateFieldLoo10;
|
|
159
|
+
(_classPrivateFieldLoo10 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo10 === void 0 ? void 0 : _classPrivateFieldLoo10.disconnect({
|
|
157
160
|
topic: pair.topic,
|
|
158
161
|
reason: (0, _utils2.getSdkError)('USER_DISCONNECTED')
|
|
159
162
|
}).catch(console.error);
|
|
160
163
|
}
|
|
161
|
-
const keys = (await ((
|
|
164
|
+
const keys = (await ((_classPrivateFieldLoo11 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo11 === void 0 ? void 0 : _classPrivateFieldLoo11.core.storage.getKeys())) || [];
|
|
162
165
|
const deleteKeys = resetAll ? keys : keys.filter(key => key.startsWith('wc@'));
|
|
163
166
|
for (const key of deleteKeys) {
|
|
164
167
|
try {
|
|
165
|
-
var
|
|
166
|
-
await ((
|
|
168
|
+
var _classPrivateFieldLoo12;
|
|
169
|
+
await ((_classPrivateFieldLoo12 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo12 === void 0 ? void 0 : _classPrivateFieldLoo12.core.storage.removeItem(key));
|
|
167
170
|
} catch (e) {
|
|
168
171
|
console.error(e);
|
|
169
172
|
}
|
|
@@ -171,8 +174,8 @@ class WalletConnectService {
|
|
|
171
174
|
await (0, _classPrivateFieldLooseBase2.default)(this, _initClient)[_initClient]();
|
|
172
175
|
}
|
|
173
176
|
async disconnect(topic) {
|
|
174
|
-
var
|
|
175
|
-
await ((
|
|
177
|
+
var _classPrivateFieldLoo13;
|
|
178
|
+
await ((_classPrivateFieldLoo13 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo13 === void 0 ? void 0 : _classPrivateFieldLoo13.disconnect({
|
|
176
179
|
topic: topic,
|
|
177
180
|
reason: (0, _utils2.getSdkError)('USER_DISCONNECTED')
|
|
178
181
|
}));
|
|
@@ -180,9 +183,20 @@ class WalletConnectService {
|
|
|
180
183
|
}
|
|
181
184
|
}
|
|
182
185
|
exports.default = WalletConnectService;
|
|
183
|
-
|
|
186
|
+
function _get_haveData() {
|
|
187
|
+
const sessionStorage = localStorage.getItem('wc@2:client:0.3//session');
|
|
188
|
+
const pairingStorage = localStorage.getItem('wc@2:core:0.3//pairing');
|
|
189
|
+
const subscriptionStorage = localStorage.getItem('wc@2:core:0.3//subscription');
|
|
190
|
+
const sessions = sessionStorage ? JSON.parse(sessionStorage) : [];
|
|
191
|
+
const pairings = pairingStorage ? JSON.parse(pairingStorage) : [];
|
|
192
|
+
const subscriptions = subscriptionStorage ? JSON.parse(subscriptionStorage) : [];
|
|
193
|
+
return !!sessions.length || !!pairings.length || !!subscriptions.length;
|
|
194
|
+
}
|
|
195
|
+
async function _initClient2(force) {
|
|
184
196
|
(0, _classPrivateFieldLooseBase2.default)(this, _removeListener)[_removeListener]();
|
|
185
|
-
|
|
197
|
+
if (force || (0, _classPrivateFieldLooseBase2.default)(this, _haveData)[_haveData]) {
|
|
198
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _client)[_client] = await _signClient.default.init((0, _classPrivateFieldLooseBase2.default)(this, _option)[_option]);
|
|
199
|
+
}
|
|
186
200
|
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
187
201
|
(0, _classPrivateFieldLooseBase2.default)(this, _createListener)[_createListener]();
|
|
188
202
|
}
|
|
@@ -252,18 +266,18 @@ function _onSessionRequest2(requestEvent) {
|
|
|
252
266
|
}
|
|
253
267
|
}
|
|
254
268
|
function _createListener2() {
|
|
255
|
-
var _classPrivateFieldLoo15, _classPrivateFieldLoo16, _classPrivateFieldLoo17, _classPrivateFieldLoo18, _classPrivateFieldLoo19
|
|
256
|
-
(
|
|
257
|
-
(
|
|
258
|
-
(
|
|
259
|
-
(
|
|
260
|
-
(
|
|
261
|
-
(
|
|
269
|
+
var _classPrivateFieldLoo14, _classPrivateFieldLoo15, _classPrivateFieldLoo16, _classPrivateFieldLoo17, _classPrivateFieldLoo18, _classPrivateFieldLoo19;
|
|
270
|
+
(_classPrivateFieldLoo14 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo14 === void 0 ? void 0 : _classPrivateFieldLoo14.on('session_proposal', (0, _classPrivateFieldLooseBase2.default)(this, _onSessionProposal)[_onSessionProposal].bind(this));
|
|
271
|
+
(_classPrivateFieldLoo15 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo15 === void 0 ? void 0 : _classPrivateFieldLoo15.on('session_request', (0, _classPrivateFieldLooseBase2.default)(this, _onSessionRequest)[_onSessionRequest].bind(this));
|
|
272
|
+
(_classPrivateFieldLoo16 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo16 === void 0 ? void 0 : _classPrivateFieldLoo16.on('session_ping', data => console.log('ping', data));
|
|
273
|
+
(_classPrivateFieldLoo17 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo17 === void 0 ? void 0 : _classPrivateFieldLoo17.on('session_event', data => console.log('event', data));
|
|
274
|
+
(_classPrivateFieldLoo18 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo18 === void 0 ? void 0 : _classPrivateFieldLoo18.on('session_update', data => console.log('update', data));
|
|
275
|
+
(_classPrivateFieldLoo19 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo19 === void 0 ? void 0 : _classPrivateFieldLoo19.on('session_delete', (0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions].bind(this));
|
|
262
276
|
}
|
|
263
277
|
function _removeListener2() {
|
|
264
278
|
_constants.ALL_WALLET_CONNECT_EVENT.forEach(event => {
|
|
265
|
-
var
|
|
266
|
-
(
|
|
279
|
+
var _classPrivateFieldLoo20;
|
|
280
|
+
(_classPrivateFieldLoo20 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo20 === void 0 ? void 0 : _classPrivateFieldLoo20.removeAllListeners(event);
|
|
267
281
|
});
|
|
268
282
|
}
|
|
269
283
|
function _checkClient2() {
|
package/cjs/utils/environment.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.RuntimeInfo = void 0;
|
|
6
|
+
exports.getOS = exports.TARGET_ENV = exports.RuntimeInfo = exports.MODULE_SUPPORT = void 0;
|
|
7
7
|
var _KoniTypes = require("../background/KoniTypes");
|
|
8
8
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
9
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -63,4 +63,34 @@ function detectRuntimeEnvironment() {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
const RuntimeInfo = detectRuntimeEnvironment();
|
|
66
|
-
exports.RuntimeInfo = RuntimeInfo;
|
|
66
|
+
exports.RuntimeInfo = RuntimeInfo;
|
|
67
|
+
const getOS = () => {
|
|
68
|
+
var _window$navigator, _window$navigator$use;
|
|
69
|
+
const userAgent = window.navigator.userAgent;
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
72
|
+
const platform = ((_window$navigator = window.navigator) === null || _window$navigator === void 0 ? void 0 : (_window$navigator$use = _window$navigator.userAgentData) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.platform) || window.navigator.platform;
|
|
73
|
+
const macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'];
|
|
74
|
+
const windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];
|
|
75
|
+
const iosPlatforms = ['iPhone', 'iPad', 'iPod'];
|
|
76
|
+
let os = 'Unknown';
|
|
77
|
+
if (macosPlatforms.indexOf(platform) !== -1) {
|
|
78
|
+
os = 'Mac OS';
|
|
79
|
+
} else if (iosPlatforms.indexOf(platform) !== -1) {
|
|
80
|
+
os = 'iOS';
|
|
81
|
+
} else if (windowsPlatforms.indexOf(platform) !== -1) {
|
|
82
|
+
os = 'Windows';
|
|
83
|
+
} else if (/Android/.test(userAgent)) {
|
|
84
|
+
os = 'Android';
|
|
85
|
+
} else if (/Linux/.test(platform)) {
|
|
86
|
+
os = 'Linux';
|
|
87
|
+
}
|
|
88
|
+
return os;
|
|
89
|
+
};
|
|
90
|
+
exports.getOS = getOS;
|
|
91
|
+
const TARGET_ENV = process.env.TARGET_ENV || 'extension';
|
|
92
|
+
exports.TARGET_ENV = TARGET_ENV;
|
|
93
|
+
const MODULE_SUPPORT = {
|
|
94
|
+
MANTA_ZK: TARGET_ENV === 'extension'
|
|
95
|
+
};
|
|
96
|
+
exports.MODULE_SUPPORT = MODULE_SUPPORT;
|
package/cjs/utils/index.js
CHANGED
|
@@ -9,6 +9,7 @@ var _exportNames = {
|
|
|
9
9
|
nonEmptyArr: true,
|
|
10
10
|
isEmptyArray: true,
|
|
11
11
|
isAccountAll: true,
|
|
12
|
+
isMobile: true,
|
|
12
13
|
reformatAddress: true,
|
|
13
14
|
filterAddressByNetworkKey: true,
|
|
14
15
|
categoryAddresses: true,
|
|
@@ -55,7 +56,7 @@ exports.hexToStr = hexToStr;
|
|
|
55
56
|
exports.hexToUTF16 = hexToUTF16;
|
|
56
57
|
exports.inJestTest = inJestTest;
|
|
57
58
|
exports.isAccountAll = isAccountAll;
|
|
58
|
-
exports.isEmptyArray = exports.isDef = exports.isAddressesEqual = void 0;
|
|
59
|
+
exports.isMobile = exports.isEmptyArray = exports.isDef = exports.isAddressesEqual = void 0;
|
|
59
60
|
exports.isSameAddress = isSameAddress;
|
|
60
61
|
exports.isUrl = isUrl;
|
|
61
62
|
exports.isValidSubstrateAddress = exports.isValidProvider = void 0;
|
|
@@ -70,6 +71,7 @@ exports.utf16ToString = utf16ToString;
|
|
|
70
71
|
exports.waitTimeout = waitTimeout;
|
|
71
72
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
72
73
|
var _constants = require("@subwallet/extension-base/constants");
|
|
74
|
+
var _environment = require("@subwallet/extension-base/utils/environment");
|
|
73
75
|
var _util = require("@polkadot/util");
|
|
74
76
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
75
77
|
var _canDerive = require("./canDerive");
|
|
@@ -85,15 +87,15 @@ Object.keys(_array).forEach(function (key) {
|
|
|
85
87
|
}
|
|
86
88
|
});
|
|
87
89
|
});
|
|
88
|
-
var
|
|
89
|
-
Object.keys(
|
|
90
|
+
var _environment2 = require("./environment");
|
|
91
|
+
Object.keys(_environment2).forEach(function (key) {
|
|
90
92
|
if (key === "default" || key === "__esModule") return;
|
|
91
93
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
92
|
-
if (key in exports && exports[key] ===
|
|
94
|
+
if (key in exports && exports[key] === _environment2[key]) return;
|
|
93
95
|
Object.defineProperty(exports, key, {
|
|
94
96
|
enumerable: true,
|
|
95
97
|
get: function () {
|
|
96
|
-
return
|
|
98
|
+
return _environment2[key];
|
|
97
99
|
}
|
|
98
100
|
});
|
|
99
101
|
});
|
|
@@ -109,6 +111,18 @@ Object.keys(_lazy).forEach(function (key) {
|
|
|
109
111
|
}
|
|
110
112
|
});
|
|
111
113
|
});
|
|
114
|
+
var _registry = require("./registry");
|
|
115
|
+
Object.keys(_registry).forEach(function (key) {
|
|
116
|
+
if (key === "default" || key === "__esModule") return;
|
|
117
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
118
|
+
if (key in exports && exports[key] === _registry[key]) return;
|
|
119
|
+
Object.defineProperty(exports, key, {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
get: function () {
|
|
122
|
+
return _registry[key];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
112
126
|
var _translate = require("./translate");
|
|
113
127
|
Object.keys(_translate).forEach(function (key) {
|
|
114
128
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -135,6 +149,8 @@ exports.isEmptyArray = isEmptyArray;
|
|
|
135
149
|
function isAccountAll(address) {
|
|
136
150
|
return address === _constants.ALL_ACCOUNT_KEY;
|
|
137
151
|
}
|
|
152
|
+
const isMobile = _KoniTypes.MobileOS.includes((0, _environment.getOS)());
|
|
153
|
+
exports.isMobile = isMobile;
|
|
138
154
|
function reformatAddress(address) {
|
|
139
155
|
let networkPrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 42;
|
|
140
156
|
let isEthereum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createRegistry = void 0;
|
|
7
|
+
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
8
|
+
var _types = require("@polkadot/types");
|
|
9
|
+
// Copyright 2019-2022 @subwallet/extension-base
|
|
10
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
|
|
12
|
+
const createRegistry = (chain, rawMetadata) => {
|
|
13
|
+
var _chain$substrateInfo;
|
|
14
|
+
const registry = new _types.TypeRegistry();
|
|
15
|
+
const metadata = new _types.Metadata(registry, rawMetadata);
|
|
16
|
+
registry.setMetadata(metadata);
|
|
17
|
+
const tokenInfo = (0, _utils._getChainNativeTokenBasicInfo)(chain);
|
|
18
|
+
registry.setChainProperties(registry.createType('ChainProperties', {
|
|
19
|
+
ss58Format: ((_chain$substrateInfo = chain.substrateInfo) === null || _chain$substrateInfo === void 0 ? void 0 : _chain$substrateInfo.addressPrefix) || 42,
|
|
20
|
+
tokenDecimals: tokenInfo.decimals,
|
|
21
|
+
tokenSymbol: tokenInfo.symbol
|
|
22
|
+
}));
|
|
23
|
+
return registry;
|
|
24
|
+
};
|
|
25
|
+
exports.createRegistry = createRegistry;
|
|
@@ -167,8 +167,6 @@ export const createTransferExtrinsic = async ({
|
|
|
167
167
|
// }
|
|
168
168
|
} else if (_TRANSFER_CHAIN_GROUP.sora_substrate.includes(networkKey) && isTxAssetsSupported) {
|
|
169
169
|
transfer = api.tx.assets.transfer(_getTokenOnChainAssetId(tokenInfo), to, value);
|
|
170
|
-
} else if (_TRANSFER_CHAIN_GROUP.avail.includes(networkKey)) {
|
|
171
|
-
/* empty */
|
|
172
170
|
} else if (isTxBalancesSupported && _isNativeToken(tokenInfo)) {
|
|
173
171
|
if (transferAll) {
|
|
174
172
|
transfer = api.tx.balances.transferAll(to, false);
|
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,8 +68,8 @@ 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:
|
|
72
|
-
weight:
|
|
71
|
+
provider: IPFS_W3S_LINK,
|
|
72
|
+
weight: 1
|
|
73
73
|
}, {
|
|
74
74
|
provider: CF_IPFS_GATEWAY,
|
|
75
75
|
weight: 4
|
|
@@ -86,11 +86,11 @@ const RANDOM_IPFS_GATEWAY_SETTING = [{
|
|
|
86
86
|
provider: DWEB_LINK,
|
|
87
87
|
weight: 5
|
|
88
88
|
}, {
|
|
89
|
-
provider:
|
|
90
|
-
weight:
|
|
89
|
+
provider: IPFS_GATEWAY_4EVERLAND,
|
|
90
|
+
weight: 2
|
|
91
91
|
}, {
|
|
92
|
-
provider:
|
|
93
|
-
weight:
|
|
92
|
+
provider: IPFS_HARDBIN,
|
|
93
|
+
weight: 1
|
|
94
94
|
}];
|
|
95
95
|
if (!RuntimeInfo.protocol || RuntimeInfo.protocol && !RuntimeInfo.protocol.startsWith('http')) {
|
|
96
96
|
RANDOM_IPFS_GATEWAY_SETTING.push({
|
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>;
|
|
@@ -5,7 +5,7 @@ import { RMRK_VER } from '@subwallet/extension-base/background/KoniTypes';
|
|
|
5
5
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
6
6
|
import { isUrl, reformatAddress } from '@subwallet/extension-base/utils';
|
|
7
7
|
import fetch from 'cross-fetch';
|
|
8
|
-
import {
|
|
8
|
+
import { SINGULAR_V1_COLLECTION_ENDPOINT, SINGULAR_V2_COLLECTION_ENDPOINT, SINGULAR_V2_ENDPOINT } from "../config.js";
|
|
9
9
|
var RMRK_SOURCE;
|
|
10
10
|
(function (RMRK_SOURCE) {
|
|
11
11
|
RMRK_SOURCE["BIRD_KANARIA"] = "bird_kanaria";
|
|
@@ -18,18 +18,23 @@ export class RmrkNftApi extends BaseNftApi {
|
|
|
18
18
|
constructor(addresses, chain) {
|
|
19
19
|
super(chain, null, addresses);
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
|
|
22
|
+
// override parseUrl (input: string): string | undefined {
|
|
23
|
+
// if (!input || input.length === 0) {
|
|
24
|
+
// return undefined;
|
|
25
|
+
// }
|
|
26
|
+
//
|
|
27
|
+
// if (isUrl(input) || input.includes('https://') || input.includes('http')) {
|
|
28
|
+
// return input;
|
|
29
|
+
// }
|
|
30
|
+
//
|
|
31
|
+
// if (!input.includes('ipfs://ipfs/')) {
|
|
32
|
+
// return getRandomIpfsGateway() + input;
|
|
33
|
+
// }
|
|
34
|
+
//
|
|
35
|
+
// return getRandomIpfsGateway() + input.split('ipfs://ipfs/')[1];
|
|
36
|
+
// }
|
|
37
|
+
|
|
33
38
|
async getMetadata(metadataUrl) {
|
|
34
39
|
let url = metadataUrl;
|
|
35
40
|
if (!isUrl(metadataUrl)) {
|
|
@@ -69,53 +74,57 @@ export class RmrkNftApi extends BaseNftApi {
|
|
|
69
74
|
}));
|
|
70
75
|
const nfts = [];
|
|
71
76
|
await Promise.all(data.map(async item => {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
...item,
|
|
93
|
-
metadata: {
|
|
94
|
-
description: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.description,
|
|
95
|
-
name: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.name,
|
|
96
|
-
attributes: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.attributes,
|
|
97
|
-
animation_url: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.animation_url),
|
|
98
|
-
image: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.image)
|
|
99
|
-
},
|
|
100
|
-
owner: account
|
|
101
|
-
});
|
|
102
|
-
} else if (item.source === RMRK_SOURCE.SINGULAR_V2) {
|
|
103
|
-
const id = item.id;
|
|
104
|
-
if (!id.toLowerCase().includes(KANBIRD_KEYWORD)) {
|
|
105
|
-
// excludes kanaria bird, already handled above
|
|
77
|
+
try {
|
|
78
|
+
const primaryResource = item.primaryResource ? item.primaryResource : null;
|
|
79
|
+
const metadataUri = primaryResource && primaryResource.metadata ? primaryResource.metadata : item.metadata;
|
|
80
|
+
const nftMetadata = await this.getMetadata(metadataUri);
|
|
81
|
+
if (item.source === RMRK_SOURCE.BIRD_KANARIA) {
|
|
82
|
+
nfts.push({
|
|
83
|
+
...item,
|
|
84
|
+
metadata: nftMetadata,
|
|
85
|
+
owner: account
|
|
86
|
+
});
|
|
87
|
+
} else if (item.source === RMRK_SOURCE.KANARIA) {
|
|
88
|
+
nfts.push({
|
|
89
|
+
...item,
|
|
90
|
+
metadata: {
|
|
91
|
+
...nftMetadata,
|
|
92
|
+
image: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.image)
|
|
93
|
+
},
|
|
94
|
+
owner: account
|
|
95
|
+
});
|
|
96
|
+
} else if (item.source === RMRK_SOURCE.SINGULAR_V1) {
|
|
106
97
|
nfts.push({
|
|
107
98
|
...item,
|
|
108
99
|
metadata: {
|
|
109
100
|
description: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.description,
|
|
110
101
|
name: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.name,
|
|
111
102
|
attributes: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.attributes,
|
|
112
|
-
properties: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.properties,
|
|
113
103
|
animation_url: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.animation_url),
|
|
114
|
-
image: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.
|
|
104
|
+
image: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.image)
|
|
115
105
|
},
|
|
116
106
|
owner: account
|
|
117
107
|
});
|
|
108
|
+
} else if (item.source === RMRK_SOURCE.SINGULAR_V2) {
|
|
109
|
+
const id = item.id;
|
|
110
|
+
if (!id.toLowerCase().includes(KANBIRD_KEYWORD)) {
|
|
111
|
+
// excludes kanaria bird, already handled above
|
|
112
|
+
nfts.push({
|
|
113
|
+
...item,
|
|
114
|
+
metadata: {
|
|
115
|
+
description: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.description,
|
|
116
|
+
name: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.name,
|
|
117
|
+
attributes: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.attributes,
|
|
118
|
+
properties: nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.properties,
|
|
119
|
+
animation_url: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.animation_url),
|
|
120
|
+
image: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.mediaUri)
|
|
121
|
+
},
|
|
122
|
+
owner: account
|
|
123
|
+
});
|
|
124
|
+
}
|
|
118
125
|
}
|
|
126
|
+
} catch (e) {
|
|
127
|
+
console.log('error fetching RMRK NFT', e);
|
|
119
128
|
}
|
|
120
129
|
}));
|
|
121
130
|
return nfts;
|
|
@@ -78,6 +78,7 @@ export default class KoniExtension {
|
|
|
78
78
|
private setEnableChainPatrol;
|
|
79
79
|
private setShowZeroBalance;
|
|
80
80
|
private setLanguage;
|
|
81
|
+
private setShowBalance;
|
|
81
82
|
private subscribeAuthUrls;
|
|
82
83
|
private _saveCurrentAccountAddress;
|
|
83
84
|
private updateCurrentAccountAddress;
|
|
@@ -201,5 +202,6 @@ export default class KoniExtension {
|
|
|
201
202
|
private disableMantaPay;
|
|
202
203
|
private subscribeMantaPayConfig;
|
|
203
204
|
private subscribeMantaPaySyncState;
|
|
205
|
+
private findRawMetadata;
|
|
204
206
|
handle<TMessageType extends MessageTypes>(id: string, type: TMessageType, request: RequestTypes[TMessageType], port: chrome.runtime.Port): Promise<ResponseType<TMessageType>>;
|
|
205
207
|
}
|