@subwallet/extension-base 1.0.12-0 → 1.0.13-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 +52 -0
- package/background/KoniTypes.js +10 -18
- package/background/handlers/State.d.ts +0 -1
- package/background/handlers/State.js +4 -8
- package/cjs/background/KoniTypes.js +12 -10
- package/cjs/background/handlers/State.js +4 -8
- package/cjs/koni/api/nft/config.js +11 -6
- package/cjs/koni/api/xcm/polkadotXcm.js +1 -1
- package/cjs/koni/api/xcm/xTokens.js +2 -2
- package/cjs/koni/background/handlers/Extension.js +150 -1
- package/cjs/koni/background/handlers/State.js +14 -3
- package/cjs/koni/background/handlers/Tabs.js +61 -9
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/Metadata.js +3 -0
- package/cjs/services/chain-service/utils.js +28 -1
- package/cjs/services/request-service/handler/AuthRequestHandler.js +4 -9
- package/cjs/services/request-service/handler/SubstrateRequestHandler.js +2 -2
- package/cjs/services/request-service/handler/WalletConnectRequestHandler.js +71 -0
- package/cjs/services/request-service/index.js +24 -6
- package/cjs/services/transaction-service/helpers/index.js +3 -2
- package/cjs/services/transaction-service/index.js +2 -1
- package/cjs/services/wallet-connect-service/constants.js +38 -0
- package/cjs/services/wallet-connect-service/handler/Eip155RequestHandler.js +113 -0
- package/cjs/services/wallet-connect-service/handler/PolkadotRequestHandler.js +123 -0
- package/cjs/services/wallet-connect-service/helpers.js +81 -0
- package/cjs/services/wallet-connect-service/index.js +273 -0
- package/cjs/services/wallet-connect-service/types.js +27 -0
- package/cjs/utils/array.js +17 -0
- package/cjs/utils/environment.js +66 -0
- package/cjs/utils/index.js +66 -1
- package/koni/api/nft/config.js +11 -6
- package/koni/api/xcm/polkadotXcm.js +1 -1
- package/koni/api/xcm/xTokens.js +2 -2
- package/koni/background/handlers/Extension.d.ts +6 -0
- package/koni/background/handlers/Extension.js +144 -2
- package/koni/background/handlers/State.d.ts +2 -0
- package/koni/background/handlers/State.js +14 -3
- package/koni/background/handlers/Tabs.d.ts +2 -0
- package/koni/background/handlers/Tabs.js +58 -7
- package/package.json +55 -6
- package/packageInfo.js +1 -1
- package/page/Metadata.d.ts +2 -0
- package/page/Metadata.js +3 -0
- package/services/chain-service/utils.d.ts +2 -0
- package/services/chain-service/utils.js +25 -1
- package/services/request-service/handler/AuthRequestHandler.d.ts +0 -1
- package/services/request-service/handler/AuthRequestHandler.js +5 -10
- package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -1
- package/services/request-service/handler/SubstrateRequestHandler.js +2 -2
- package/services/request-service/handler/WalletConnectRequestHandler.d.ts +15 -0
- package/services/request-service/handler/WalletConnectRequestHandler.js +62 -0
- package/services/request-service/index.d.ts +7 -2
- package/services/request-service/index.js +24 -6
- package/services/transaction-service/helpers/index.d.ts +1 -1
- package/services/transaction-service/helpers/index.js +2 -2
- package/services/transaction-service/index.js +2 -1
- package/services/transaction-service/types.d.ts +2 -1
- package/services/wallet-connect-service/constants.d.ts +11 -0
- package/services/wallet-connect-service/constants.js +23 -0
- package/services/wallet-connect-service/handler/Eip155RequestHandler.d.ts +8 -0
- package/services/wallet-connect-service/handler/Eip155RequestHandler.js +106 -0
- package/services/wallet-connect-service/handler/PolkadotRequestHandler.d.ts +8 -0
- package/services/wallet-connect-service/handler/PolkadotRequestHandler.js +114 -0
- package/services/wallet-connect-service/helpers.d.ts +12 -0
- package/services/wallet-connect-service/helpers.js +67 -0
- package/services/wallet-connect-service/index.d.ts +20 -0
- package/services/wallet-connect-service/index.js +265 -0
- package/services/wallet-connect-service/types.d.ts +46 -0
- package/services/wallet-connect-service/types.js +20 -0
- package/utils/array.d.ts +1 -0
- package/utils/array.js +10 -0
- package/utils/environment.d.ts +2 -0
- package/utils/environment.js +59 -0
- package/utils/index.d.ts +3 -0
- package/utils/index.js +9 -2
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _classPrivateFieldLooseBase2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase"));
|
|
9
|
+
var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey"));
|
|
10
|
+
var _utils = require("@json-rpc-tools/utils");
|
|
11
|
+
var _RequestBytesSign = _interopRequireDefault(require("@subwallet/extension-base/background/RequestBytesSign"));
|
|
12
|
+
var _RequestExtrinsicSign = _interopRequireDefault(require("@subwallet/extension-base/background/RequestExtrinsicSign"));
|
|
13
|
+
var _helpers = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
|
|
14
|
+
var _types = require("@subwallet/extension-base/services/wallet-connect-service/types");
|
|
15
|
+
var _utils2 = require("@subwallet/extension-base/utils");
|
|
16
|
+
var _uiKeyring = _interopRequireDefault(require("@subwallet/ui-keyring"));
|
|
17
|
+
var _utils3 = require("@walletconnect/utils");
|
|
18
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
19
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
20
|
+
var _walletConnectService = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("walletConnectService");
|
|
21
|
+
var _requestService = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("requestService");
|
|
22
|
+
var _checkAccount = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("checkAccount");
|
|
23
|
+
var _handleError = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("handleError");
|
|
24
|
+
class PolkadotRequestHandler {
|
|
25
|
+
constructor(walletConnectService, requestService) {
|
|
26
|
+
Object.defineProperty(this, _handleError, {
|
|
27
|
+
value: _handleError2
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, _checkAccount, {
|
|
30
|
+
value: _checkAccount2
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(this, _walletConnectService, {
|
|
33
|
+
writable: true,
|
|
34
|
+
value: void 0
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(this, _requestService, {
|
|
37
|
+
writable: true,
|
|
38
|
+
value: void 0
|
|
39
|
+
});
|
|
40
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _walletConnectService)[_walletConnectService] = walletConnectService;
|
|
41
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService] = requestService;
|
|
42
|
+
}
|
|
43
|
+
handleRequest(requestEvent) {
|
|
44
|
+
const {
|
|
45
|
+
id,
|
|
46
|
+
params,
|
|
47
|
+
topic
|
|
48
|
+
} = requestEvent;
|
|
49
|
+
const {
|
|
50
|
+
request
|
|
51
|
+
} = params;
|
|
52
|
+
const method = request.method;
|
|
53
|
+
const requestSession = (0, _classPrivateFieldLooseBase2.default)(this, _walletConnectService)[_walletConnectService].getSession(topic);
|
|
54
|
+
const url = requestSession.peer.metadata.url;
|
|
55
|
+
const sessionAccounts = requestSession.namespaces.polkadot.accounts.map(account => account.split(':')[2]);
|
|
56
|
+
if (method === _types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_MESSAGE) {
|
|
57
|
+
const param = (0, _helpers.parseRequestParams)(request.params);
|
|
58
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkAccount)[_checkAccount](param.address, sessionAccounts);
|
|
59
|
+
const pair = _uiKeyring.default.getPair(param.address);
|
|
60
|
+
const address = pair.address;
|
|
61
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].sign(url, new _RequestBytesSign.default({
|
|
62
|
+
address: address,
|
|
63
|
+
data: param.message,
|
|
64
|
+
type: 'bytes'
|
|
65
|
+
}), {
|
|
66
|
+
address,
|
|
67
|
+
...pair.meta
|
|
68
|
+
}, (0, _helpers.getWCId)(id)).then(async _ref => {
|
|
69
|
+
let {
|
|
70
|
+
signature
|
|
71
|
+
} = _ref;
|
|
72
|
+
await (0, _classPrivateFieldLooseBase2.default)(this, _walletConnectService)[_walletConnectService].responseRequest({
|
|
73
|
+
topic: topic,
|
|
74
|
+
response: (0, _utils.formatJsonRpcResult)(id, {
|
|
75
|
+
signature
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
}).catch(e => {
|
|
79
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _handleError)[_handleError](topic, id, e);
|
|
80
|
+
});
|
|
81
|
+
} else if (method === _types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION) {
|
|
82
|
+
const param = (0, _helpers.parseRequestParams)(request.params);
|
|
83
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkAccount)[_checkAccount](param.address, sessionAccounts);
|
|
84
|
+
const pair = _uiKeyring.default.getPair(param.address);
|
|
85
|
+
const address = pair.address;
|
|
86
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].sign(url, new _RequestExtrinsicSign.default(param.transactionPayload), {
|
|
87
|
+
address,
|
|
88
|
+
...pair.meta
|
|
89
|
+
}, (0, _helpers.getWCId)(id)).then(async _ref2 => {
|
|
90
|
+
let {
|
|
91
|
+
signature
|
|
92
|
+
} = _ref2;
|
|
93
|
+
await (0, _classPrivateFieldLooseBase2.default)(this, _walletConnectService)[_walletConnectService].responseRequest({
|
|
94
|
+
topic: topic,
|
|
95
|
+
response: (0, _utils.formatJsonRpcResult)(id, {
|
|
96
|
+
signature
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
}).catch(e => {
|
|
100
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _handleError)[_handleError](topic, id, e);
|
|
101
|
+
});
|
|
102
|
+
} else {
|
|
103
|
+
throw Error(`${(0, _utils3.getSdkError)('INVALID_METHOD').message} ${method}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.default = PolkadotRequestHandler;
|
|
108
|
+
function _checkAccount2(address, accounts) {
|
|
109
|
+
if (!accounts.find(account => (0, _utils2.isSameAddress)(account, address))) {
|
|
110
|
+
throw new Error((0, _utils3.getSdkError)('UNSUPPORTED_ACCOUNTS').message + ' ' + address);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function _handleError2(topic, id, e) {
|
|
114
|
+
console.log(e);
|
|
115
|
+
let message = e.message;
|
|
116
|
+
if (message.includes('User Rejected Request')) {
|
|
117
|
+
message = (0, _utils3.getSdkError)('USER_REJECTED').message;
|
|
118
|
+
}
|
|
119
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _walletConnectService)[_walletConnectService].responseRequest({
|
|
120
|
+
topic: topic,
|
|
121
|
+
response: (0, _utils.formatJsonRpcError)(id, message)
|
|
122
|
+
}).catch(console.error);
|
|
123
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseRequestParams = exports.isWalletConnectRequest = exports.isSupportWalletConnectNamespace = exports.isSupportWalletConnectChain = exports.isProposalExpired = exports.getWCId = exports.getEip155MessageAddress = exports.convertConnectRequest = void 0;
|
|
7
|
+
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
8
|
+
var _utilCrypto = require("@polkadot/util-crypto");
|
|
9
|
+
var _constants = require("./constants");
|
|
10
|
+
var _types = require("./types");
|
|
11
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
12
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
13
|
+
|
|
14
|
+
const getWCId = id => {
|
|
15
|
+
return [_constants.WALLET_CONNECT_REQUEST_KEY, Date.now(), id].join('.');
|
|
16
|
+
};
|
|
17
|
+
exports.getWCId = getWCId;
|
|
18
|
+
const convertConnectRequest = request => {
|
|
19
|
+
return {
|
|
20
|
+
id: getWCId(request.id),
|
|
21
|
+
isInternal: false,
|
|
22
|
+
request: request,
|
|
23
|
+
url: request.params.proposer.metadata.url
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.convertConnectRequest = convertConnectRequest;
|
|
27
|
+
const parseRequestParams = params => {
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
return params;
|
|
30
|
+
};
|
|
31
|
+
exports.parseRequestParams = parseRequestParams;
|
|
32
|
+
const getEip155MessageAddress = (method, param) => {
|
|
33
|
+
switch (method) {
|
|
34
|
+
case _types.EIP155_SIGNING_METHODS.PERSONAL_SIGN:
|
|
35
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA:
|
|
36
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN:
|
|
37
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V3:
|
|
38
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V4:
|
|
39
|
+
// eslint-disable-next-line no-case-declarations
|
|
40
|
+
const [p1, p2] = parseRequestParams(param);
|
|
41
|
+
if (typeof p1 === 'string' && (0, _utilCrypto.isEthereumAddress)(p1)) {
|
|
42
|
+
return p1;
|
|
43
|
+
} else if (typeof p2 === 'string' && (0, _utilCrypto.isEthereumAddress)(p2)) {
|
|
44
|
+
return p2;
|
|
45
|
+
}
|
|
46
|
+
return '';
|
|
47
|
+
default:
|
|
48
|
+
return '';
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.getEip155MessageAddress = getEip155MessageAddress;
|
|
52
|
+
const isWalletConnectRequest = id => {
|
|
53
|
+
if (!id) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const [prefix] = id.split('.');
|
|
57
|
+
return prefix === _constants.WALLET_CONNECT_REQUEST_KEY;
|
|
58
|
+
};
|
|
59
|
+
exports.isWalletConnectRequest = isWalletConnectRequest;
|
|
60
|
+
const isProposalExpired = params => {
|
|
61
|
+
const timeNum = params.expiry;
|
|
62
|
+
const expireTime = new Date(timeNum > 10 ** 12 ? timeNum : timeNum * 1000);
|
|
63
|
+
const now = new Date();
|
|
64
|
+
return now.getTime() >= expireTime.getTime();
|
|
65
|
+
};
|
|
66
|
+
exports.isProposalExpired = isProposalExpired;
|
|
67
|
+
const isSupportWalletConnectNamespace = namespace => {
|
|
68
|
+
return _constants.WALLET_CONNECT_SUPPORT_NAMESPACES.includes(namespace);
|
|
69
|
+
};
|
|
70
|
+
exports.isSupportWalletConnectNamespace = isSupportWalletConnectNamespace;
|
|
71
|
+
const isSupportWalletConnectChain = (chain, chainInfoMap) => {
|
|
72
|
+
const [namespace, info] = chain.split(':');
|
|
73
|
+
if (namespace === _constants.WALLET_CONNECT_POLKADOT_NAMESPACE) {
|
|
74
|
+
return !!(0, _utils.findChainInfoByHalfGenesisHash)(chainInfoMap, info);
|
|
75
|
+
} else if (namespace === _constants.WALLET_CONNECT_EIP155_NAMESPACE) {
|
|
76
|
+
return !!(0, _utils.findChainInfoByChainId)(chainInfoMap, parseInt(info));
|
|
77
|
+
} else {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.isSupportWalletConnectChain = isSupportWalletConnectChain;
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _classPrivateFieldLooseBase2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase"));
|
|
9
|
+
var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey"));
|
|
10
|
+
var _utils = require("@json-rpc-tools/utils");
|
|
11
|
+
var _Eip155RequestHandler = _interopRequireDefault(require("@subwallet/extension-base/services/wallet-connect-service/handler/Eip155RequestHandler"));
|
|
12
|
+
var _signClient = _interopRequireDefault(require("@walletconnect/sign-client"));
|
|
13
|
+
var _utils2 = require("@walletconnect/utils");
|
|
14
|
+
var _rxjs = require("rxjs");
|
|
15
|
+
var _PolkadotRequestHandler = _interopRequireDefault(require("./handler/PolkadotRequestHandler"));
|
|
16
|
+
var _constants = require("./constants");
|
|
17
|
+
var _helpers = require("./helpers");
|
|
18
|
+
var _types = require("./types");
|
|
19
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
20
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
21
|
+
var _requestService = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("requestService");
|
|
22
|
+
var _polkadotRequestHandler = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("polkadotRequestHandler");
|
|
23
|
+
var _eip155RequestHandler = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("eip155RequestHandler");
|
|
24
|
+
var _koniState = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("koniState");
|
|
25
|
+
var _client = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("client");
|
|
26
|
+
var _option = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("option");
|
|
27
|
+
var _initClient = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("initClient");
|
|
28
|
+
var _updateSessions = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("updateSessions");
|
|
29
|
+
var _onSessionProposal = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("onSessionProposal");
|
|
30
|
+
var _onSessionRequest = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("onSessionRequest");
|
|
31
|
+
var _createListener = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("createListener");
|
|
32
|
+
var _removeListener = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("removeListener");
|
|
33
|
+
var _checkClient = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("checkClient");
|
|
34
|
+
class WalletConnectService {
|
|
35
|
+
constructor(koniState, requestService) {
|
|
36
|
+
let option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.DEFAULT_WALLET_CONNECT_OPTIONS;
|
|
37
|
+
Object.defineProperty(this, _checkClient, {
|
|
38
|
+
value: _checkClient2
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(this, _removeListener, {
|
|
41
|
+
value: _removeListener2
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, _createListener, {
|
|
44
|
+
value: _createListener2
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(this, _onSessionRequest, {
|
|
47
|
+
value: _onSessionRequest2
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(this, _onSessionProposal, {
|
|
50
|
+
value: _onSessionProposal2
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(this, _updateSessions, {
|
|
53
|
+
value: _updateSessions2
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(this, _initClient, {
|
|
56
|
+
value: _initClient2
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(this, _requestService, {
|
|
59
|
+
writable: true,
|
|
60
|
+
value: void 0
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(this, _polkadotRequestHandler, {
|
|
63
|
+
writable: true,
|
|
64
|
+
value: void 0
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(this, _eip155RequestHandler, {
|
|
67
|
+
writable: true,
|
|
68
|
+
value: void 0
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(this, _koniState, {
|
|
71
|
+
writable: true,
|
|
72
|
+
value: void 0
|
|
73
|
+
});
|
|
74
|
+
Object.defineProperty(this, _client, {
|
|
75
|
+
writable: true,
|
|
76
|
+
value: void 0
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(this, _option, {
|
|
79
|
+
writable: true,
|
|
80
|
+
value: void 0
|
|
81
|
+
});
|
|
82
|
+
this.sessionSubject = new _rxjs.BehaviorSubject([]);
|
|
83
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _koniState)[_koniState] = koniState;
|
|
84
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService] = requestService;
|
|
85
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _option)[_option] = option;
|
|
86
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _polkadotRequestHandler)[_polkadotRequestHandler] = new _PolkadotRequestHandler.default(this, requestService);
|
|
87
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _eip155RequestHandler)[_eip155RequestHandler] = new _Eip155RequestHandler.default((0, _classPrivateFieldLooseBase2.default)(this, _koniState)[_koniState], this);
|
|
88
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _initClient)[_initClient]().catch(console.error);
|
|
89
|
+
}
|
|
90
|
+
get sessions() {
|
|
91
|
+
var _classPrivateFieldLoo;
|
|
92
|
+
return ((_classPrivateFieldLoo = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.session.values) || [];
|
|
93
|
+
}
|
|
94
|
+
getSession(topic) {
|
|
95
|
+
var _classPrivateFieldLoo2;
|
|
96
|
+
const session = (_classPrivateFieldLoo2 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.session.get(topic);
|
|
97
|
+
if (!session) {
|
|
98
|
+
throw new Error((0, _utils2.getInternalError)('MISMATCHED_TOPIC').message);
|
|
99
|
+
} else {
|
|
100
|
+
return session;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async changeOption(newOption) {
|
|
104
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _option)[_option] = Object.assign({}, (0, _classPrivateFieldLooseBase2.default)(this, _option)[_option], newOption);
|
|
105
|
+
await (0, _classPrivateFieldLooseBase2.default)(this, _initClient)[_initClient]();
|
|
106
|
+
}
|
|
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
|
+
async connect(uri) {
|
|
113
|
+
var _classPrivateFieldLoo4;
|
|
114
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
115
|
+
await ((_classPrivateFieldLoo4 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.pair({
|
|
116
|
+
uri
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
async approveSession(result) {
|
|
120
|
+
var _classPrivateFieldLoo5;
|
|
121
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
122
|
+
await ((_classPrivateFieldLoo5 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.approve(result));
|
|
123
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
124
|
+
}
|
|
125
|
+
async rejectSession(id) {
|
|
126
|
+
var _classPrivateFieldLoo6;
|
|
127
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
128
|
+
await ((_classPrivateFieldLoo6 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo6 === void 0 ? void 0 : _classPrivateFieldLoo6.reject({
|
|
129
|
+
id: id,
|
|
130
|
+
reason: (0, _utils2.getSdkError)('USER_REJECTED')
|
|
131
|
+
}));
|
|
132
|
+
}
|
|
133
|
+
async responseRequest(response) {
|
|
134
|
+
var _classPrivateFieldLoo7;
|
|
135
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
136
|
+
await ((_classPrivateFieldLoo7 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo7 === void 0 ? void 0 : _classPrivateFieldLoo7.respond(response));
|
|
137
|
+
}
|
|
138
|
+
async resetWallet(resetAll) {
|
|
139
|
+
var _classPrivateFieldLoo8, _classPrivateFieldLoo10, _classPrivateFieldLoo12;
|
|
140
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _removeListener)[_removeListener]();
|
|
141
|
+
|
|
142
|
+
// Disconnect session
|
|
143
|
+
const sessions = ((_classPrivateFieldLoo8 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo8 === void 0 ? void 0 : _classPrivateFieldLoo8.session.values) || [];
|
|
144
|
+
for (const session of sessions) {
|
|
145
|
+
var _classPrivateFieldLoo9;
|
|
146
|
+
(_classPrivateFieldLoo9 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo9 === void 0 ? void 0 : _classPrivateFieldLoo9.disconnect({
|
|
147
|
+
topic: session.topic,
|
|
148
|
+
reason: (0, _utils2.getSdkError)('USER_DISCONNECTED')
|
|
149
|
+
}).catch(console.error);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Disconnect pair
|
|
153
|
+
const pairs = ((_classPrivateFieldLoo10 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo10 === void 0 ? void 0 : _classPrivateFieldLoo10.pairing.values) || [];
|
|
154
|
+
for (const pair of pairs) {
|
|
155
|
+
var _classPrivateFieldLoo11;
|
|
156
|
+
(_classPrivateFieldLoo11 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo11 === void 0 ? void 0 : _classPrivateFieldLoo11.disconnect({
|
|
157
|
+
topic: pair.topic,
|
|
158
|
+
reason: (0, _utils2.getSdkError)('USER_DISCONNECTED')
|
|
159
|
+
}).catch(console.error);
|
|
160
|
+
}
|
|
161
|
+
const keys = (await ((_classPrivateFieldLoo12 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo12 === void 0 ? void 0 : _classPrivateFieldLoo12.core.storage.getKeys())) || [];
|
|
162
|
+
const deleteKeys = resetAll ? keys : keys.filter(key => key.startsWith('wc@'));
|
|
163
|
+
for (const key of deleteKeys) {
|
|
164
|
+
try {
|
|
165
|
+
var _classPrivateFieldLoo13;
|
|
166
|
+
await ((_classPrivateFieldLoo13 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo13 === void 0 ? void 0 : _classPrivateFieldLoo13.core.storage.removeItem(key));
|
|
167
|
+
} catch (e) {
|
|
168
|
+
console.error(e);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
await (0, _classPrivateFieldLooseBase2.default)(this, _initClient)[_initClient]();
|
|
172
|
+
}
|
|
173
|
+
async disconnect(topic) {
|
|
174
|
+
var _classPrivateFieldLoo14;
|
|
175
|
+
await ((_classPrivateFieldLoo14 = (0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) === null || _classPrivateFieldLoo14 === void 0 ? void 0 : _classPrivateFieldLoo14.disconnect({
|
|
176
|
+
topic: topic,
|
|
177
|
+
reason: (0, _utils2.getSdkError)('USER_DISCONNECTED')
|
|
178
|
+
}));
|
|
179
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.default = WalletConnectService;
|
|
183
|
+
async function _initClient2() {
|
|
184
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _removeListener)[_removeListener]();
|
|
185
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _client)[_client] = await _signClient.default.init((0, _classPrivateFieldLooseBase2.default)(this, _option)[_option]);
|
|
186
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _updateSessions)[_updateSessions]();
|
|
187
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _createListener)[_createListener]();
|
|
188
|
+
}
|
|
189
|
+
function _updateSessions2() {
|
|
190
|
+
this.sessionSubject.next(this.sessions);
|
|
191
|
+
}
|
|
192
|
+
function _onSessionProposal2(proposal) {
|
|
193
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
194
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].addConnectWCRequest((0, _helpers.convertConnectRequest)(proposal));
|
|
195
|
+
}
|
|
196
|
+
function _onSessionRequest2(requestEvent) {
|
|
197
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _checkClient)[_checkClient]();
|
|
198
|
+
const {
|
|
199
|
+
id,
|
|
200
|
+
params,
|
|
201
|
+
topic
|
|
202
|
+
} = requestEvent;
|
|
203
|
+
const {
|
|
204
|
+
chainId,
|
|
205
|
+
request
|
|
206
|
+
} = params;
|
|
207
|
+
const method = request.method;
|
|
208
|
+
try {
|
|
209
|
+
const requestSession = this.getSession(topic);
|
|
210
|
+
const namespaces = Object.keys(requestSession.namespaces);
|
|
211
|
+
const chains = Object.values(requestSession.namespaces).map(namespace => namespace.chains).flat();
|
|
212
|
+
const methods = Object.values(requestSession.namespaces).map(namespace => namespace.methods).flat();
|
|
213
|
+
const chainInfoMap = (0, _classPrivateFieldLooseBase2.default)(this, _koniState)[_koniState].getChainInfoMap();
|
|
214
|
+
const [requestNamespace] = chainId.split(':');
|
|
215
|
+
if (!namespaces.includes(requestNamespace)) {
|
|
216
|
+
throw Error((0, _utils2.getSdkError)('UNSUPPORTED_NAMESPACE_KEY').message);
|
|
217
|
+
}
|
|
218
|
+
if (!chains.includes(chainId)) {
|
|
219
|
+
throw Error((0, _utils2.getSdkError)('UNSUPPORTED_CHAINS').message + ' ' + chainId);
|
|
220
|
+
}
|
|
221
|
+
if (!(0, _helpers.isSupportWalletConnectChain)(chainId, chainInfoMap)) {
|
|
222
|
+
throw Error((0, _utils2.getSdkError)('UNSUPPORTED_CHAINS').message + ' ' + chainId);
|
|
223
|
+
}
|
|
224
|
+
if (!methods.includes(method)) {
|
|
225
|
+
throw Error((0, _utils2.getSdkError)('UNAUTHORIZED_METHOD').message + ' ' + method);
|
|
226
|
+
}
|
|
227
|
+
if (!_constants.WALLET_CONNECT_SUPPORTED_METHODS.includes(method)) {
|
|
228
|
+
throw Error((0, _utils2.getSdkError)('UNSUPPORTED_METHODS').message + ' ' + method);
|
|
229
|
+
}
|
|
230
|
+
switch (method) {
|
|
231
|
+
case _types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_MESSAGE:
|
|
232
|
+
case _types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION:
|
|
233
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _polkadotRequestHandler)[_polkadotRequestHandler].handleRequest(requestEvent);
|
|
234
|
+
break;
|
|
235
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SEND_TRANSACTION:
|
|
236
|
+
case _types.EIP155_SIGNING_METHODS.PERSONAL_SIGN:
|
|
237
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA:
|
|
238
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V3:
|
|
239
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN_TYPED_DATA_V4:
|
|
240
|
+
case _types.EIP155_SIGNING_METHODS.ETH_SIGN:
|
|
241
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _eip155RequestHandler)[_eip155RequestHandler].handleRequest(requestEvent);
|
|
242
|
+
break;
|
|
243
|
+
default:
|
|
244
|
+
throw Error((0, _utils2.getSdkError)('INVALID_METHOD').message + ' ' + method);
|
|
245
|
+
}
|
|
246
|
+
} catch (e) {
|
|
247
|
+
console.log(e);
|
|
248
|
+
this.responseRequest({
|
|
249
|
+
topic: topic,
|
|
250
|
+
response: (0, _utils.formatJsonRpcError)(id, e.message)
|
|
251
|
+
}).catch(console.error);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
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));
|
|
262
|
+
}
|
|
263
|
+
function _removeListener2() {
|
|
264
|
+
_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);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
function _checkClient2() {
|
|
270
|
+
if (!(0, _classPrivateFieldLooseBase2.default)(this, _client)[_client]) {
|
|
271
|
+
throw new Error((0, _utils2.getInternalError)('NOT_INITIALIZED').message);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.POLKADOT_SIGNING_METHODS = exports.EIP155_SIGNING_METHODS = void 0;
|
|
7
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
8
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
let EIP155_SIGNING_METHODS;
|
|
10
|
+
exports.EIP155_SIGNING_METHODS = EIP155_SIGNING_METHODS;
|
|
11
|
+
(function (EIP155_SIGNING_METHODS) {
|
|
12
|
+
EIP155_SIGNING_METHODS["PERSONAL_SIGN"] = "personal_sign";
|
|
13
|
+
EIP155_SIGNING_METHODS["ETH_SIGN"] = "eth_sign";
|
|
14
|
+
EIP155_SIGNING_METHODS["ETH_SIGN_TRANSACTION"] = "eth_signTransaction";
|
|
15
|
+
EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA"] = "eth_signTypedData";
|
|
16
|
+
EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA_V1"] = "eth_signTypedData_v1";
|
|
17
|
+
EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA_V3"] = "eth_signTypedData_v3";
|
|
18
|
+
EIP155_SIGNING_METHODS["ETH_SIGN_TYPED_DATA_V4"] = "eth_signTypedData_v4";
|
|
19
|
+
EIP155_SIGNING_METHODS["ETH_SEND_RAW_TRANSACTION"] = "eth_sendRawTransaction";
|
|
20
|
+
EIP155_SIGNING_METHODS["ETH_SEND_TRANSACTION"] = "eth_sendTransaction";
|
|
21
|
+
})(EIP155_SIGNING_METHODS || (exports.EIP155_SIGNING_METHODS = EIP155_SIGNING_METHODS = {}));
|
|
22
|
+
let POLKADOT_SIGNING_METHODS;
|
|
23
|
+
exports.POLKADOT_SIGNING_METHODS = POLKADOT_SIGNING_METHODS;
|
|
24
|
+
(function (POLKADOT_SIGNING_METHODS) {
|
|
25
|
+
POLKADOT_SIGNING_METHODS["POLKADOT_SIGN_TRANSACTION"] = "polkadot_signTransaction";
|
|
26
|
+
POLKADOT_SIGNING_METHODS["POLKADOT_SIGN_MESSAGE"] = "polkadot_signMessage";
|
|
27
|
+
})(POLKADOT_SIGNING_METHODS || (exports.POLKADOT_SIGNING_METHODS = POLKADOT_SIGNING_METHODS = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.uniqueStringArray = void 0;
|
|
7
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
8
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
|
|
10
|
+
const uniqueStringArray = array => {
|
|
11
|
+
const map = {};
|
|
12
|
+
array.forEach(v => {
|
|
13
|
+
map[v] = v;
|
|
14
|
+
});
|
|
15
|
+
return Object.keys(map);
|
|
16
|
+
};
|
|
17
|
+
exports.uniqueStringArray = uniqueStringArray;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RuntimeInfo = void 0;
|
|
7
|
+
var _KoniTypes = require("../background/KoniTypes");
|
|
8
|
+
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
9
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
+
|
|
11
|
+
function detectRuntimeEnvironment() {
|
|
12
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
13
|
+
// Web environment
|
|
14
|
+
return {
|
|
15
|
+
environment: _KoniTypes.RuntimeEnvironment.Web,
|
|
16
|
+
version: navigator.userAgent,
|
|
17
|
+
host: window.location.host,
|
|
18
|
+
protocol: window.location.protocol
|
|
19
|
+
};
|
|
20
|
+
} else if (typeof self !== 'undefined' && typeof importScripts !== 'undefined') {
|
|
21
|
+
// Service Worker environment
|
|
22
|
+
return {
|
|
23
|
+
environment: _KoniTypes.RuntimeEnvironment.ServiceWorker,
|
|
24
|
+
version: navigator.userAgent,
|
|
25
|
+
host: self.location.host,
|
|
26
|
+
protocol: window.location.protocol
|
|
27
|
+
};
|
|
28
|
+
} else if (typeof process !== 'undefined' && process.versions && process.versions.node) {
|
|
29
|
+
// Node.js environment
|
|
30
|
+
return {
|
|
31
|
+
environment: _KoniTypes.RuntimeEnvironment.Node,
|
|
32
|
+
version: process.versions.node
|
|
33
|
+
};
|
|
34
|
+
} else if (typeof chrome !== 'undefined' && typeof chrome.runtime !== 'undefined') {
|
|
35
|
+
// Extension environment (Chrome)
|
|
36
|
+
return {
|
|
37
|
+
environment: _KoniTypes.RuntimeEnvironment.ExtensionChrome,
|
|
38
|
+
version: chrome.runtime.getManifest().version,
|
|
39
|
+
host: window.location.host,
|
|
40
|
+
protocol: window.location.protocol
|
|
41
|
+
};
|
|
42
|
+
} else if (typeof browser !== 'undefined' && typeof browser.runtime !== 'undefined') {
|
|
43
|
+
// Extension environment (Firefox)
|
|
44
|
+
return {
|
|
45
|
+
environment: _KoniTypes.RuntimeEnvironment.ExtensionFirefox,
|
|
46
|
+
version: browser.runtime.getManifest().version,
|
|
47
|
+
host: window.location.host,
|
|
48
|
+
protocol: window.location.protocol
|
|
49
|
+
};
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
} else if (typeof WorkerGlobalScope !== 'undefined') {
|
|
52
|
+
// Web Worker environment
|
|
53
|
+
return {
|
|
54
|
+
environment: _KoniTypes.RuntimeEnvironment.WebWorker,
|
|
55
|
+
version: ''
|
|
56
|
+
};
|
|
57
|
+
} else {
|
|
58
|
+
// Unknown environment
|
|
59
|
+
return {
|
|
60
|
+
environment: _KoniTypes.RuntimeEnvironment.Unknown,
|
|
61
|
+
version: ''
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const RuntimeInfo = detectRuntimeEnvironment();
|
|
66
|
+
exports.RuntimeInfo = RuntimeInfo;
|