@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.
Files changed (59) hide show
  1. package/background/KoniTypes.d.ts +18 -0
  2. package/background/KoniTypes.js +2 -1
  3. package/cjs/background/KoniTypes.js +4 -2
  4. package/cjs/koni/api/dotsama/transfer.js +0 -2
  5. package/cjs/koni/api/nft/config.js +13 -13
  6. package/cjs/koni/api/nft/nft.js +1 -1
  7. package/cjs/koni/api/nft/rmrk_nft/index.js +57 -48
  8. package/cjs/koni/background/handlers/Extension.js +179 -120
  9. package/cjs/koni/background/handlers/State.js +73 -48
  10. package/cjs/packageInfo.js +1 -1
  11. package/cjs/services/chain-service/constants.js +2 -1
  12. package/cjs/services/chain-service/handler/SubstrateApi.js +8 -0
  13. package/cjs/services/chain-service/handler/manta/MantaPrivateHandler.js +1 -1
  14. package/cjs/services/chain-service/handler/manta/manta-extension-sdk-empty.js +13 -0
  15. package/cjs/services/chain-service/index.js +20 -6
  16. package/cjs/services/request-service/handler/PopupHandler.js +2 -2
  17. package/cjs/services/request-service/helper/index.js +2 -26
  18. package/cjs/services/storage-service/db-stores/Metadata.js +1 -1
  19. package/cjs/services/wallet-connect-service/constants.js +8 -5
  20. package/cjs/services/wallet-connect-service/index.js +50 -36
  21. package/cjs/utils/environment.js +32 -2
  22. package/cjs/utils/index.js +21 -5
  23. package/cjs/utils/registry.js +25 -0
  24. package/koni/api/dotsama/transfer.js +0 -2
  25. package/koni/api/nft/config.d.ts +3 -3
  26. package/koni/api/nft/config.js +9 -9
  27. package/koni/api/nft/nft.js +1 -1
  28. package/koni/api/nft/rmrk_nft/index.d.ts +0 -1
  29. package/koni/api/nft/rmrk_nft/index.js +58 -49
  30. package/koni/background/handlers/Extension.d.ts +2 -0
  31. package/koni/background/handlers/Extension.js +72 -15
  32. package/koni/background/handlers/State.d.ts +7 -2
  33. package/koni/background/handlers/State.js +73 -48
  34. package/package.json +17 -6
  35. package/packageInfo.js +1 -1
  36. package/services/chain-service/constants.d.ts +1 -0
  37. package/services/chain-service/constants.js +2 -1
  38. package/services/chain-service/handler/SubstrateApi.js +8 -0
  39. package/services/chain-service/handler/manta/MantaPrivateHandler.d.ts +1 -1
  40. package/services/chain-service/handler/manta/MantaPrivateHandler.js +1 -1
  41. package/services/chain-service/handler/manta/manta-extension-sdk-empty.d.ts +4 -0
  42. package/services/chain-service/handler/manta/manta-extension-sdk-empty.js +5 -0
  43. package/services/chain-service/index.d.ts +2 -1
  44. package/services/chain-service/index.js +20 -6
  45. package/services/request-service/handler/PopupHandler.js +1 -1
  46. package/services/request-service/helper/index.d.ts +0 -2
  47. package/services/request-service/helper/index.js +0 -23
  48. package/services/request-service/types.d.ts +0 -1
  49. package/services/storage-service/db-stores/Metadata.js +1 -1
  50. package/services/wallet-connect-service/constants.d.ts +2 -1
  51. package/services/wallet-connect-service/constants.js +5 -3
  52. package/services/wallet-connect-service/index.d.ts +0 -1
  53. package/services/wallet-connect-service/index.js +50 -36
  54. package/utils/environment.d.ts +4 -1
  55. package/utils/environment.js +28 -1
  56. package/utils/index.d.ts +2 -0
  57. package/utils/index.js +4 -1
  58. package/utils/registry.d.ts +4 -0
  59. 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 _classPrivateFieldLoo4;
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 ((_classPrivateFieldLoo4 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.pair({
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 _classPrivateFieldLoo5;
123
+ var _classPrivateFieldLoo4;
121
124
  (0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
122
- await ((_classPrivateFieldLoo5 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.approve(result));
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 _classPrivateFieldLoo6;
129
+ var _classPrivateFieldLoo5;
127
130
  (0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
128
- await ((_classPrivateFieldLoo6 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo6 === void 0 ? void 0 : _classPrivateFieldLoo6.reject({
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 _classPrivateFieldLoo7;
137
+ var _classPrivateFieldLoo6;
135
138
  (0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
136
- await ((_classPrivateFieldLoo7 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo7 === void 0 ? void 0 : _classPrivateFieldLoo7.respond(response));
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 _classPrivateFieldLoo8, _classPrivateFieldLoo10, _classPrivateFieldLoo12;
142
+ var _classPrivateFieldLoo7, _classPrivateFieldLoo9, _classPrivateFieldLoo11;
140
143
  (0, _classPrivateFieldLooseBase2.default)(this, _removeListener)[_removeListener]();
141
144
 
142
145
  // Disconnect session
143
- const sessions = ((_classPrivateFieldLoo8 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo8 === void 0 ? void 0 : _classPrivateFieldLoo8.session.values) || [];
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 _classPrivateFieldLoo9;
146
- (_classPrivateFieldLoo9 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo9 === void 0 ? void 0 : _classPrivateFieldLoo9.disconnect({
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 = ((_classPrivateFieldLoo10 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo10 === void 0 ? void 0 : _classPrivateFieldLoo10.pairing.values) || [];
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 _classPrivateFieldLoo11;
156
- (_classPrivateFieldLoo11 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo11 === void 0 ? void 0 : _classPrivateFieldLoo11.disconnect({
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 ((_classPrivateFieldLoo12 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo12 === void 0 ? void 0 : _classPrivateFieldLoo12.core.storage.getKeys())) || [];
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 _classPrivateFieldLoo13;
166
- await ((_classPrivateFieldLoo13 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo13 === void 0 ? void 0 : _classPrivateFieldLoo13.core.storage.removeItem(key));
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 _classPrivateFieldLoo14;
175
- await ((_classPrivateFieldLoo14 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo14 === void 0 ? void 0 : _classPrivateFieldLoo14.disconnect({
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
- async function _initClient2() {
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
- (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client] = await _signClient.default.init((0, _classPrivateFieldLooseBase2.default)(this, _option)[_option]);
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, _classPrivateFieldLoo20;
256
- (_classPrivateFieldLoo15 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo15 === void 0 ? void 0 : _classPrivateFieldLoo15.on('session_proposal', (0, _classPrivateFieldLooseBase2.default)(this, _onSessionProposal)[_onSessionProposal].bind(this));
257
- (_classPrivateFieldLoo16 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo16 === void 0 ? void 0 : _classPrivateFieldLoo16.on('session_request', (0, _classPrivateFieldLooseBase2.default)(this, _onSessionRequest)[_onSessionRequest].bind(this));
258
- (_classPrivateFieldLoo17 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo17 === void 0 ? void 0 : _classPrivateFieldLoo17.on('session_ping', data => console.log('ping', data));
259
- (_classPrivateFieldLoo18 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo18 === void 0 ? void 0 : _classPrivateFieldLoo18.on('session_event', data => console.log('event', data));
260
- (_classPrivateFieldLoo19 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo19 === void 0 ? void 0 : _classPrivateFieldLoo19.on('session_update', data => console.log('update', data));
261
- (_classPrivateFieldLoo20 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo20 === void 0 ? void 0 : _classPrivateFieldLoo20.on('session_delete', (0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions].bind(this));
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 _classPrivateFieldLoo21;
266
- (_classPrivateFieldLoo21 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo21 === void 0 ? void 0 : _classPrivateFieldLoo21.removeAllListeners(event);
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() {
@@ -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;
@@ -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 _environment = require("./environment");
89
- Object.keys(_environment).forEach(function (key) {
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] === _environment[key]) return;
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 _environment[key];
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);
@@ -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 IPFS_IO_GATEWAY = "https://ipfs.io/ipfs/";
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 IPFS_GATEWAY_CLOUD = "https://ipfs-gateway.cloud/ipfs/";
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 IPFS_TELOS_MIAMI = "https://ipfs.telos.miami/ipfs";
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",
@@ -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 IPFS_IO_GATEWAY = 'https://ipfs.io/ipfs/';
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 IPFS_GATEWAY_CLOUD = 'https://ipfs-gateway.cloud/ipfs/';
25
+ export const IPFS_GATEWAY_4EVERLAND = 'https://4everland.io/ipfs/';
26
26
  export const IPFS_FLEEK = 'https://ipfs.fleek.co/ipfs/';
27
- export const IPFS_TELOS_MIAMI = 'https://ipfs.telos.miami/ipfs';
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: IPFS_IO_GATEWAY,
72
- weight: 0 // Not stable
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: IPFS_GATEWAY_CLOUD,
90
- weight: 0 // Deceptive site warning
89
+ provider: IPFS_GATEWAY_4EVERLAND,
90
+ weight: 2
91
91
  }, {
92
- provider: IPFS_TELOS_MIAMI,
93
- weight: 0
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({
@@ -68,7 +68,7 @@ export class BaseNftApi {
68
68
  if (!input || input.length === 0) {
69
69
  return undefined;
70
70
  }
71
- if (isUrl(input)) {
71
+ if (isUrl(input) || input.includes('https://') || input.includes('http')) {
72
72
  return input;
73
73
  }
74
74
  if (input.startsWith('/ipfs/')) {
@@ -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 { getRandomIpfsGateway, SINGULAR_V1_COLLECTION_ENDPOINT, SINGULAR_V2_COLLECTION_ENDPOINT, SINGULAR_V2_ENDPOINT } from "../config.js";
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
- parseUrl(input) {
22
- if (!input || input.length === 0) {
23
- return undefined;
24
- }
25
- if (isUrl(input) || input.includes('https://') || input.includes('http')) {
26
- return input;
27
- }
28
- if (!input.includes('ipfs://ipfs/')) {
29
- return getRandomIpfsGateway() + input;
30
- }
31
- return getRandomIpfsGateway() + input.split('ipfs://ipfs/')[1];
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
- const primaryResource = item.primaryResource ? item.primaryResource : null;
73
- const metadataUri = primaryResource && primaryResource.metadata ? primaryResource.metadata : item.metadata;
74
- const nftMetadata = await this.getMetadata(metadataUri);
75
- if (item.source === RMRK_SOURCE.BIRD_KANARIA) {
76
- nfts.push({
77
- ...item,
78
- metadata: nftMetadata,
79
- owner: account
80
- });
81
- } else if (item.source === RMRK_SOURCE.KANARIA) {
82
- nfts.push({
83
- ...item,
84
- metadata: {
85
- ...nftMetadata,
86
- image: this.parseUrl(nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.image)
87
- },
88
- owner: account
89
- });
90
- } else if (item.source === RMRK_SOURCE.SINGULAR_V1) {
91
- nfts.push({
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.mediaUri)
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
  }