@ksangkuk10/wallet-controller 1.7.14
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/README.md +7 -0
- package/_commonjs/controller.js +704 -0
- package/_commonjs/env.js +9 -0
- package/_commonjs/exception/isError.js +15 -0
- package/_commonjs/exception/mapExtensionTxError.js +46 -0
- package/_commonjs/exception/mapWalletConnectError.js +69 -0
- package/_commonjs/getChainOptions.js +57 -0
- package/_commonjs/index.js +22 -0
- package/_commonjs/modules/connect-modal/index.js +80 -0
- package/_commonjs/modules/connect-modal/style.js +161 -0
- package/_commonjs/modules/extension-router/ExtensionRouter.js +241 -0
- package/_commonjs/modules/extension-router/index.js +19 -0
- package/_commonjs/modules/extension-router/modal.js +80 -0
- package/_commonjs/modules/extension-router/modal.style.js +161 -0
- package/_commonjs/modules/extension-router/multiChannel.js +18 -0
- package/_commonjs/modules/extension-router/session.js +37 -0
- package/_commonjs/modules/extension-router/types.js +16 -0
- package/_commonjs/modules/legacy-extension/LegacyExtensionConnector.js +143 -0
- package/_commonjs/modules/legacy-extension/createFixedExtension.js +236 -0
- package/_commonjs/modules/legacy-extension/index.js +19 -0
- package/_commonjs/modules/readonly-wallet/connect.js +24 -0
- package/_commonjs/modules/readonly-wallet/index.js +20 -0
- package/_commonjs/modules/readonly-wallet/modal.js +123 -0
- package/_commonjs/modules/readonly-wallet/modal.style.js +204 -0
- package/_commonjs/modules/readonly-wallet/storage.js +40 -0
- package/_commonjs/modules/readonly-wallet/types.js +3 -0
- package/_commonjs/modules/walletconnect/connect.js +421 -0
- package/_commonjs/modules/walletconnect/errors.js +51 -0
- package/_commonjs/modules/walletconnect/impl/socket-transport/index.js +204 -0
- package/_commonjs/modules/walletconnect/impl/socket-transport/network.js +30 -0
- package/_commonjs/modules/walletconnect/index.js +22 -0
- package/_commonjs/modules/walletconnect/modal.js +147 -0
- package/_commonjs/modules/walletconnect/modal.style.js +138 -0
- package/_commonjs/modules/walletconnect/types.js +13 -0
- package/_commonjs/operators/getExtensions.js +55 -0
- package/_commonjs/operators/toConnectedWallet.js +24 -0
- package/_commonjs/operators/toLcdClient.js +15 -0
- package/_commonjs/utils/browser-check.js +47 -0
- package/_commonjs/utils/checkExtensionReady.js +28 -0
- package/_commonjs/utils/sortConnections.js +13 -0
- package/_commonjs/verifyBytes.js +19 -0
- package/controller.d.ts +220 -0
- package/controller.js +697 -0
- package/env.d.ts +2 -0
- package/env.js +5 -0
- package/exception/isError.d.ts +3 -0
- package/exception/isError.js +11 -0
- package/exception/mapExtensionTxError.d.ts +5 -0
- package/exception/mapExtensionTxError.js +41 -0
- package/exception/mapWalletConnectError.d.ts +6 -0
- package/exception/mapWalletConnectError.js +63 -0
- package/getChainOptions.d.ts +3 -0
- package/getChainOptions.js +53 -0
- package/index.d.ts +6 -0
- package/index.js +6 -0
- package/modules/connect-modal/index.d.ts +2 -0
- package/modules/connect-modal/index.js +76 -0
- package/modules/connect-modal/style.d.ts +1 -0
- package/modules/connect-modal/style.js +158 -0
- package/modules/extension-router/ExtensionRouter.d.ts +43 -0
- package/modules/extension-router/ExtensionRouter.js +237 -0
- package/modules/extension-router/index.d.ts +2 -0
- package/modules/extension-router/index.js +3 -0
- package/modules/extension-router/modal.d.ts +2 -0
- package/modules/extension-router/modal.js +76 -0
- package/modules/extension-router/modal.style.d.ts +1 -0
- package/modules/extension-router/modal.style.js +158 -0
- package/modules/extension-router/multiChannel.d.ts +13 -0
- package/modules/extension-router/multiChannel.js +14 -0
- package/modules/extension-router/session.d.ts +8 -0
- package/modules/extension-router/session.js +31 -0
- package/modules/extension-router/types.d.ts +35 -0
- package/modules/extension-router/types.js +13 -0
- package/modules/legacy-extension/LegacyExtensionConnector.d.ts +30 -0
- package/modules/legacy-extension/LegacyExtensionConnector.js +139 -0
- package/modules/legacy-extension/createFixedExtension.d.ts +46 -0
- package/modules/legacy-extension/createFixedExtension.js +232 -0
- package/modules/legacy-extension/index.d.ts +2 -0
- package/modules/legacy-extension/index.js +3 -0
- package/modules/readonly-wallet/connect.d.ts +8 -0
- package/modules/readonly-wallet/connect.js +19 -0
- package/modules/readonly-wallet/index.d.ts +3 -0
- package/modules/readonly-wallet/index.js +4 -0
- package/modules/readonly-wallet/modal.d.ts +7 -0
- package/modules/readonly-wallet/modal.js +119 -0
- package/modules/readonly-wallet/modal.style.d.ts +1 -0
- package/modules/readonly-wallet/modal.style.js +201 -0
- package/modules/readonly-wallet/storage.d.ts +4 -0
- package/modules/readonly-wallet/storage.js +34 -0
- package/modules/readonly-wallet/types.d.ts +5 -0
- package/modules/readonly-wallet/types.js +2 -0
- package/modules/walletconnect/connect.d.ts +42 -0
- package/modules/walletconnect/connect.js +390 -0
- package/modules/walletconnect/errors.d.ts +22 -0
- package/modules/walletconnect/errors.js +41 -0
- package/modules/walletconnect/impl/socket-transport/index.d.ts +39 -0
- package/modules/walletconnect/impl/socket-transport/index.js +199 -0
- package/modules/walletconnect/impl/socket-transport/network.d.ts +8 -0
- package/modules/walletconnect/impl/socket-transport/network.js +28 -0
- package/modules/walletconnect/index.d.ts +5 -0
- package/modules/walletconnect/index.js +6 -0
- package/modules/walletconnect/modal.d.ts +12 -0
- package/modules/walletconnect/modal.js +143 -0
- package/modules/walletconnect/modal.style.d.ts +1 -0
- package/modules/walletconnect/modal.style.js +135 -0
- package/modules/walletconnect/types.d.ts +24 -0
- package/modules/walletconnect/types.js +10 -0
- package/operators/getExtensions.d.ts +9 -0
- package/operators/getExtensions.js +51 -0
- package/operators/toConnectedWallet.d.ts +4 -0
- package/operators/toConnectedWallet.js +20 -0
- package/operators/toLcdClient.d.ts +4 -0
- package/operators/toLcdClient.js +11 -0
- package/package.json +550 -0
- package/utils/browser-check.d.ts +3 -0
- package/utils/browser-check.js +38 -0
- package/utils/checkExtensionReady.d.ts +6 -0
- package/utils/checkExtensionReady.js +24 -0
- package/utils/sortConnections.d.ts +2 -0
- package/utils/sortConnections.js +9 -0
- package/verifyBytes.d.ts +4 -0
- package/verifyBytes.js +15 -0
- package/~/.npm/_cacache/content-v2/sha512/ad/b5/8c87dfae7c208906a88f1997b323933e7efb4e481bcfdc559cb13199d077e1b40abcb161561a293ca59cd98aae224cd0877555e6e7a2e11021bc55ebedf4 +0 -0
- package/~/.npm/_cacache/index-v5/6a/39/c03f62d7353a7cc1411e180ec37c393f9fedcfd081fa567f67bf32e6fb68 +2 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getExtensions = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const fetch_1 = require("rxjs/fetch");
|
|
6
|
+
const operators_1 = require("rxjs/operators");
|
|
7
|
+
const browser_check_1 = require("../utils/browser-check");
|
|
8
|
+
const FALLBACK = {
|
|
9
|
+
whitelist: [
|
|
10
|
+
{
|
|
11
|
+
name: 'XPLA Vault Wallet',
|
|
12
|
+
identifier: 'xplavault',
|
|
13
|
+
icon: 'https://assets.xpla.io/icon/extension/icon.png',
|
|
14
|
+
urls: [
|
|
15
|
+
{
|
|
16
|
+
browser: 'chrome',
|
|
17
|
+
url: 'https://chrome.google.com/webstore/detail/xpla-vault-wallet/ocjobpilfplciaddcbafabcegbilnbnb',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
browser: 'firefox',
|
|
21
|
+
url: 'https://addons.mozilla.org/ko/firefox/addon/xpla-vault-wallet',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
function getExtensions() {
|
|
28
|
+
const currentBrowser = (0, browser_check_1.getDesktopBrowserType)(navigator.userAgent);
|
|
29
|
+
if (!currentBrowser) {
|
|
30
|
+
return (0, rxjs_1.of)([]);
|
|
31
|
+
}
|
|
32
|
+
return (0, fetch_1.fromFetch)('https://assets.xpla.io/extensions.json').pipe((0, rxjs_1.switchMap)((res) => {
|
|
33
|
+
if (res.ok) {
|
|
34
|
+
return res.json();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return (0, rxjs_1.of)(FALLBACK);
|
|
38
|
+
}
|
|
39
|
+
}), (0, operators_1.catchError)(() => {
|
|
40
|
+
return (0, rxjs_1.of)(FALLBACK);
|
|
41
|
+
}), (0, operators_1.map)(({ whitelist }) => {
|
|
42
|
+
return whitelist
|
|
43
|
+
.filter(({ urls }) => urls.some(({ browser }) => currentBrowser === browser))
|
|
44
|
+
.map(({ name, identifier, icon, urls }) => {
|
|
45
|
+
return {
|
|
46
|
+
name,
|
|
47
|
+
identifier,
|
|
48
|
+
icon,
|
|
49
|
+
url: urls.find(({ browser }) => currentBrowser === browser).url,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
exports.getExtensions = getExtensions;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Aa3NhbmdrdWsxMC93YWxsZXQtY29udHJvbGxlci9vcGVyYXRvcnMvZ2V0RXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBaUQ7QUFDakQsc0NBQXVDO0FBQ3ZDLDhDQUFpRDtBQUNqRCwwREFBK0Q7QUFjL0QsTUFBTSxRQUFRLEdBQWU7SUFDM0IsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLElBQUksRUFBRSxnREFBZ0Q7WUFDdEQsSUFBSSxFQUFFO2dCQUNKO29CQUNFLE9BQU8sRUFBRSxRQUFRO29CQUNqQixHQUFHLEVBQUUsOEZBQThGO2lCQUNwRztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsU0FBUztvQkFDbEIsR0FBRyxFQUFFLCtEQUErRDtpQkFDckU7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBU0YsU0FBZ0IsYUFBYTtJQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFBLHFDQUFxQixFQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVsRSxJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ25CLE9BQU8sSUFBQSxTQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDZjtJQUVELE9BQU8sSUFBQSxpQkFBUyxFQUFDLHdDQUF3QyxDQUFDLENBQUMsSUFBSSxDQUs3RCxJQUFBLGdCQUFTLEVBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNoQixJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDVixPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuQjthQUFNO1lBQ0wsT0FBTyxJQUFBLFNBQUUsRUFBQyxRQUFRLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUMsQ0FBQyxFQUNGLElBQUEsc0JBQVUsRUFBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLElBQUEsU0FBRSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxFQUNGLElBQUEsZUFBRyxFQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1FBQ3BCLE9BQU8sU0FBUzthQUNiLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxLQUFLLE9BQU8sQ0FBQyxDQUN2RDthQUNBLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUN4QyxPQUFPO2dCQUNMLElBQUk7Z0JBQ0osVUFBVTtnQkFDVixJQUFJO2dCQUNKLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxLQUFLLE9BQU8sQ0FBRSxDQUFDLEdBQUc7YUFDakUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFyQ0Qsc0NBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZnJvbUZldGNoIH0gZnJvbSAncnhqcy9mZXRjaCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnZXREZXNrdG9wQnJvd3NlclR5cGUgfSBmcm9tICcuLi91dGlscy9icm93c2VyLWNoZWNrJztcblxuaW50ZXJmYWNlIEV4dGVuc2lvbnMge1xuICB3aGl0ZWxpc3Q6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIGljb246IHN0cmluZztcbiAgICB1cmxzOiBBcnJheTx7XG4gICAgICBicm93c2VyOiAnY2hyb21lJyB8ICdlZGdlJyB8ICdmaXJlZm94JyB8ICdzYWZhcmknO1xuICAgICAgdXJsOiBzdHJpbmc7XG4gICAgfT47XG4gIH0+O1xufVxuXG5jb25zdCBGQUxMQkFDSzogRXh0ZW5zaW9ucyA9IHtcbiAgd2hpdGVsaXN0OiBbXG4gICAge1xuICAgICAgbmFtZTogJ1hQTEEgVmF1bHQgV2FsbGV0JyxcbiAgICAgIGlkZW50aWZpZXI6ICd4cGxhdmF1bHQnLFxuICAgICAgaWNvbjogJ2h0dHBzOi8vYXNzZXRzLnhwbGEuaW8vaWNvbi9leHRlbnNpb24vaWNvbi5wbmcnLFxuICAgICAgdXJsczogW1xuICAgICAgICB7XG4gICAgICAgICAgYnJvd3NlcjogJ2Nocm9tZScsXG4gICAgICAgICAgdXJsOiAnaHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS93ZWJzdG9yZS9kZXRhaWwveHBsYS12YXVsdC13YWxsZXQvb2Nqb2JwaWxmcGxjaWFkZGNiYWZhYmNlZ2JpbG5ibmInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYnJvd3NlcjogJ2ZpcmVmb3gnLFxuICAgICAgICAgIHVybDogJ2h0dHBzOi8vYWRkb25zLm1vemlsbGEub3JnL2tvL2ZpcmVmb3gvYWRkb24veHBsYS12YXVsdC13YWxsZXQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuaW50ZXJmYWNlIEluc3RhbGxhYmxlRXh0ZW5zaW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25zKCk6IE9ic2VydmFibGU8SW5zdGFsbGFibGVFeHRlbnNpb25bXT4ge1xuICBjb25zdCBjdXJyZW50QnJvd3NlciA9IGdldERlc2t0b3BCcm93c2VyVHlwZShuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuICBpZiAoIWN1cnJlbnRCcm93c2VyKSB7XG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHJldHVybiBmcm9tRmV0Y2goJ2h0dHBzOi8vYXNzZXRzLnhwbGEuaW8vZXh0ZW5zaW9ucy5qc29uJykucGlwZTxcbiAgICBFeHRlbnNpb25zLFxuICAgIEV4dGVuc2lvbnMsXG4gICAgSW5zdGFsbGFibGVFeHRlbnNpb25bXVxuICA+KFxuICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzLm9rKSB7XG4gICAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9mKEZBTExCQUNLKTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgIHJldHVybiBvZihGQUxMQkFDSyk7XG4gICAgfSksXG4gICAgbWFwKCh7IHdoaXRlbGlzdCB9KSA9PiB7XG4gICAgICByZXR1cm4gd2hpdGVsaXN0XG4gICAgICAgIC5maWx0ZXIoKHsgdXJscyB9KSA9PlxuICAgICAgICAgIHVybHMuc29tZSgoeyBicm93c2VyIH0pID0+IGN1cnJlbnRCcm93c2VyID09PSBicm93c2VyKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKCh7IG5hbWUsIGlkZW50aWZpZXIsIGljb24sIHVybHMgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgICAgIGljb24sXG4gICAgICAgICAgICB1cmw6IHVybHMuZmluZCgoeyBicm93c2VyIH0pID0+IGN1cnJlbnRCcm93c2VyID09PSBicm93c2VyKSEudXJsLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH0pLFxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toConnectedWallet = void 0;
|
|
4
|
+
const wallet_types_1 = require("@ksangkuk10/wallet-types");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
function toConnectedWallet(controller) {
|
|
7
|
+
return (0, operators_1.map)((states) => {
|
|
8
|
+
if (states.status === wallet_types_1.WalletStatus.WALLET_CONNECTED) {
|
|
9
|
+
return (0, wallet_types_1.createConnectedWallet)({
|
|
10
|
+
connection: states.connection,
|
|
11
|
+
network: states.network,
|
|
12
|
+
wallets: states.wallets,
|
|
13
|
+
post: controller.post,
|
|
14
|
+
sign: controller.sign,
|
|
15
|
+
signBytes: controller.signBytes,
|
|
16
|
+
supportFeatures: states.supportFeatures,
|
|
17
|
+
status: states.status,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.toConnectedWallet = toConnectedWallet;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9Db25uZWN0ZWRXYWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvb3BlcmF0b3JzL3RvQ29ubmVjdGVkV2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUtrQztBQUVsQyw4Q0FBcUM7QUFHckMsU0FBZ0IsaUJBQWlCLENBQy9CLFVBQTRCO0lBRTVCLE9BQU8sSUFBQSxlQUFHLEVBQTRDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDL0QsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLDJCQUFZLENBQUMsZ0JBQWdCLEVBQUU7WUFDbkQsT0FBTyxJQUFBLG9DQUFxQixFQUFDO2dCQUMzQixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN2QixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO2dCQUMvQixlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7Z0JBQ3ZDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTthQUN0QixDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWxCRCw4Q0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25uZWN0ZWRXYWxsZXQsXG4gIGNyZWF0ZUNvbm5lY3RlZFdhbGxldCxcbiAgV2FsbGV0U3RhdGVzLFxuICBXYWxsZXRTdGF0dXMsXG59IGZyb20gJ0Brc2FuZ2t1azEwL3dhbGxldC10eXBlcyc7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBXYWxsZXRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Nvbm5lY3RlZFdhbGxldChcbiAgY29udHJvbGxlcjogV2FsbGV0Q29udHJvbGxlcixcbik6IE9wZXJhdG9yRnVuY3Rpb248V2FsbGV0U3RhdGVzLCBDb25uZWN0ZWRXYWxsZXQgfCB1bmRlZmluZWQ+IHtcbiAgcmV0dXJuIG1hcDxXYWxsZXRTdGF0ZXMsIENvbm5lY3RlZFdhbGxldCB8IHVuZGVmaW5lZD4oKHN0YXRlcykgPT4ge1xuICAgIGlmIChzdGF0ZXMuc3RhdHVzID09PSBXYWxsZXRTdGF0dXMuV0FMTEVUX0NPTk5FQ1RFRCkge1xuICAgICAgcmV0dXJuIGNyZWF0ZUNvbm5lY3RlZFdhbGxldCh7XG4gICAgICAgIGNvbm5lY3Rpb246IHN0YXRlcy5jb25uZWN0aW9uLFxuICAgICAgICBuZXR3b3JrOiBzdGF0ZXMubmV0d29yayxcbiAgICAgICAgd2FsbGV0czogc3RhdGVzLndhbGxldHMsXG4gICAgICAgIHBvc3Q6IGNvbnRyb2xsZXIucG9zdCxcbiAgICAgICAgc2lnbjogY29udHJvbGxlci5zaWduLFxuICAgICAgICBzaWduQnl0ZXM6IGNvbnRyb2xsZXIuc2lnbkJ5dGVzLFxuICAgICAgICBzdXBwb3J0RmVhdHVyZXM6IHN0YXRlcy5zdXBwb3J0RmVhdHVyZXMsXG4gICAgICAgIHN0YXR1czogc3RhdGVzLnN0YXR1cyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toLcdClient = void 0;
|
|
4
|
+
const wallet_types_1 = require("@ksangkuk10/wallet-types");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
function toLcdClient(lcdClientConfig) {
|
|
7
|
+
return (0, operators_1.map)((states) => {
|
|
8
|
+
return (0, wallet_types_1.createLCDClient)({
|
|
9
|
+
lcdClientConfig,
|
|
10
|
+
network: states.network,
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
exports.toLcdClient = toLcdClient;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9MY2RDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvb3BlcmF0b3JzL3RvTGNkQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUlrQztBQUdsQyw4Q0FBcUM7QUFFckMsU0FBZ0IsV0FBVyxDQUN6QixlQUF1QztJQUV2QyxPQUFPLElBQUEsZUFBRyxFQUEwQixDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQzdDLE9BQU8sSUFBQSw4QkFBZSxFQUFDO1lBQ3JCLGVBQWU7WUFDZixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBVEQsa0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVMQ0RDbGllbnQsXG4gIFdhbGxldExDRENsaWVudENvbmZpZyxcbiAgV2FsbGV0U3RhdGVzLFxufSBmcm9tICdAa3NhbmdrdWsxMC93YWxsZXQtdHlwZXMnO1xuaW1wb3J0IHsgTENEQ2xpZW50IH0gZnJvbSAnQHhwbGEveHBsYS5qcyc7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0xjZENsaWVudChcbiAgbGNkQ2xpZW50Q29uZmlnPzogV2FsbGV0TENEQ2xpZW50Q29uZmlnLFxuKTogT3BlcmF0b3JGdW5jdGlvbjxXYWxsZXRTdGF0ZXMsIExDRENsaWVudD4ge1xuICByZXR1cm4gbWFwPFdhbGxldFN0YXRlcywgTENEQ2xpZW50Pigoc3RhdGVzKSA9PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUxDRENsaWVudCh7XG4gICAgICBsY2RDbGllbnRDb25maWcsXG4gICAgICBuZXR3b3JrOiBzdGF0ZXMubmV0d29yayxcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getDesktopBrowserType = exports.isDesktopChrome = exports.isMobile = void 0;
|
|
7
|
+
const bowser_1 = __importDefault(require("bowser"));
|
|
8
|
+
const mobile_detect_1 = __importDefault(require("mobile-detect"));
|
|
9
|
+
const isMobile = () => {
|
|
10
|
+
const mobileDetect = new mobile_detect_1.default(navigator.userAgent);
|
|
11
|
+
return !!mobileDetect.os();
|
|
12
|
+
};
|
|
13
|
+
exports.isMobile = isMobile;
|
|
14
|
+
const isDesktopChrome = (isChromeExtensionCompatibleBrowser) => {
|
|
15
|
+
const userAgent = navigator.userAgent;
|
|
16
|
+
if (isChromeExtensionCompatibleBrowser) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
const browser = bowser_1.default.getParser(userAgent);
|
|
20
|
+
const mobileDetect = new mobile_detect_1.default(navigator.userAgent);
|
|
21
|
+
return !!(browser.satisfies({
|
|
22
|
+
chrome: '>60',
|
|
23
|
+
edge: '>80',
|
|
24
|
+
}) && !mobileDetect.os());
|
|
25
|
+
};
|
|
26
|
+
exports.isDesktopChrome = isDesktopChrome;
|
|
27
|
+
const getDesktopBrowserType = (userAgent) => {
|
|
28
|
+
const browser = bowser_1.default.getParser(userAgent);
|
|
29
|
+
const mobileDetect = new mobile_detect_1.default(navigator.userAgent);
|
|
30
|
+
if (!!mobileDetect.mobile()) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
if (browser.satisfies({ chrome: '>60', chromium: '>60' })) {
|
|
34
|
+
return 'chrome';
|
|
35
|
+
}
|
|
36
|
+
else if (browser.satisfies({ firefox: '>=60' })) {
|
|
37
|
+
return 'firefox';
|
|
38
|
+
}
|
|
39
|
+
else if (browser.satisfies({ edge: '>80' })) {
|
|
40
|
+
return 'edge';
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.getDesktopBrowserType = getDesktopBrowserType;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1jaGVjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Aa3NhbmdrdWsxMC93YWxsZXQtY29udHJvbGxlci91dGlscy9icm93c2VyLWNoZWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixrRUFBeUM7QUFFbEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksdUJBQVksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0QsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQzdCLENBQUMsQ0FBQztBQUpXLFFBQUEsUUFBUSxZQUluQjtBQUVLLE1BQU0sZUFBZSxHQUFHLENBQzdCLGtDQUEyQyxFQUNsQyxFQUFFO0lBQ1gsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUV0QyxJQUFJLGtDQUFrQyxFQUFFO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLE9BQU8sR0FBRyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLHVCQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTNELE9BQU8sQ0FBQyxDQUFDLENBQ1AsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNoQixNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxLQUFLO0tBQ1osQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUN6QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBbEJXLFFBQUEsZUFBZSxtQkFrQjFCO0FBRUssTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxTQUFpQixFQUNnQyxFQUFFO0lBQ25ELE1BQU0sT0FBTyxHQUFHLGdCQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUksdUJBQVksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0QsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pELE9BQU8sUUFBUSxDQUFDO0tBQ2pCO1NBQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7UUFDakQsT0FBTyxTQUFTLENBQUM7S0FDbEI7U0FBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM3QyxPQUFPLE1BQU0sQ0FBQztLQUNmO1NBQU07UUFDTCxPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQyxDQUFDO0FBbkJXLFFBQUEscUJBQXFCLHlCQW1CaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYm93c2VyIGZyb20gJ2Jvd3Nlcic7XG5pbXBvcnQgTW9iaWxlRGV0ZWN0IGZyb20gJ21vYmlsZS1kZXRlY3QnO1xuXG5leHBvcnQgY29uc3QgaXNNb2JpbGUgPSAoKSA9PiB7XG4gIGNvbnN0IG1vYmlsZURldGVjdCA9IG5ldyBNb2JpbGVEZXRlY3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbiAgcmV0dXJuICEhbW9iaWxlRGV0ZWN0Lm9zKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNEZXNrdG9wQ2hyb21lID0gKFxuICBpc0Nocm9tZUV4dGVuc2lvbkNvbXBhdGlibGVCcm93c2VyOiBib29sZWFuLFxuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cbiAgaWYgKGlzQ2hyb21lRXh0ZW5zaW9uQ29tcGF0aWJsZUJyb3dzZXIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGJyb3dzZXIgPSBib3dzZXIuZ2V0UGFyc2VyKHVzZXJBZ2VudCk7XG4gIGNvbnN0IG1vYmlsZURldGVjdCA9IG5ldyBNb2JpbGVEZXRlY3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbiAgcmV0dXJuICEhKFxuICAgIGJyb3dzZXIuc2F0aXNmaWVzKHtcbiAgICAgIGNocm9tZTogJz42MCcsXG4gICAgICBlZGdlOiAnPjgwJyxcbiAgICB9KSAmJiAhbW9iaWxlRGV0ZWN0Lm9zKClcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREZXNrdG9wQnJvd3NlclR5cGUgPSAoXG4gIHVzZXJBZ2VudDogc3RyaW5nLFxuKTogJ2Nocm9tZScgfCAnZWRnZScgfCAnZmlyZWZveCcgfCAnc2FmYXJpJyB8IG51bGwgPT4ge1xuICBjb25zdCBicm93c2VyID0gYm93c2VyLmdldFBhcnNlcih1c2VyQWdlbnQpO1xuICBjb25zdCBtb2JpbGVEZXRlY3QgPSBuZXcgTW9iaWxlRGV0ZWN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG4gIGlmICghIW1vYmlsZURldGVjdC5tb2JpbGUoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGJyb3dzZXIuc2F0aXNmaWVzKHsgY2hyb21lOiAnPjYwJywgY2hyb21pdW06ICc+NjAnIH0pKSB7XG4gICAgcmV0dXJuICdjaHJvbWUnO1xuICB9IGVsc2UgaWYgKGJyb3dzZXIuc2F0aXNmaWVzKHsgZmlyZWZveDogJz49NjAnIH0pKSB7XG4gICAgcmV0dXJuICdmaXJlZm94JztcbiAgfSBlbHNlIGlmIChicm93c2VyLnNhdGlzZmllcyh7IGVkZ2U6ICc+ODAnIH0pKSB7XG4gICAgcmV0dXJuICdlZGdlJztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkExtensionReady = void 0;
|
|
4
|
+
const interval = 500;
|
|
5
|
+
async function checkExtensionReady(timeout, isChromeExtensionCompatibleBrowser) {
|
|
6
|
+
return new Promise((resolve) => {
|
|
7
|
+
if (isChromeExtensionCompatibleBrowser) {
|
|
8
|
+
resolve(true);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const start = Date.now();
|
|
12
|
+
function check() {
|
|
13
|
+
if (window.isXplaExtensionAvailable === true ||
|
|
14
|
+
Array.isArray(window.xplaWallets)) {
|
|
15
|
+
resolve(true);
|
|
16
|
+
}
|
|
17
|
+
else if (Date.now() > start + timeout) {
|
|
18
|
+
resolve(false);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
setTimeout(check, interval);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
setTimeout(check, interval);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exports.checkExtensionReady = checkExtensionReady;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tFeHRlbnNpb25SZWFkeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Aa3NhbmdrdWsxMC93YWxsZXQtY29udHJvbGxlci91dGlscy9jaGVja0V4dGVuc2lvblJlYWR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztBQVFkLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsT0FBZSxFQUNmLGtDQUEyQztJQUUzQyxPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDdEMsSUFBSSxrQ0FBa0MsRUFBRTtZQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZCxPQUFPO1NBQ1I7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFekIsU0FBUyxLQUFLO1lBQ1osSUFDRSxNQUFNLENBQUMsd0JBQXdCLEtBQUssSUFBSTtnQkFDeEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQ2pDO2dCQUNBLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNmO2lCQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxPQUFPLEVBQUU7Z0JBQ3ZDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQjtpQkFBTTtnQkFDTCxVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQztRQUVELFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBM0JELGtEQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGludGVydmFsID0gNTAwO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIGlzWHBsYUV4dGVuc2lvbkF2YWlsYWJsZTogYm9vbGVhbjtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tFeHRlbnNpb25SZWFkeShcbiAgdGltZW91dDogbnVtYmVyLFxuICBpc0Nocm9tZUV4dGVuc2lvbkNvbXBhdGlibGVCcm93c2VyOiBib29sZWFuLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xuICAgIGlmIChpc0Nocm9tZUV4dGVuc2lvbkNvbXBhdGlibGVCcm93c2VyKSB7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICAgIGZ1bmN0aW9uIGNoZWNrKCkge1xuICAgICAgaWYgKFxuICAgICAgICB3aW5kb3cuaXNYcGxhRXh0ZW5zaW9uQXZhaWxhYmxlID09PSB0cnVlIHx8XG4gICAgICAgIEFycmF5LmlzQXJyYXkod2luZG93LnhwbGFXYWxsZXRzKVxuICAgICAgKSB7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKERhdGUubm93KCkgPiBzdGFydCArIHRpbWVvdXQpIHtcbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KGNoZWNrLCBpbnRlcnZhbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGltZW91dChjaGVjaywgaW50ZXJ2YWwpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortConnections = void 0;
|
|
4
|
+
function sortConnections(connections) {
|
|
5
|
+
const vaultIndex = connections.findIndex(({ identifier }) => identifier === 'xplavault');
|
|
6
|
+
if (vaultIndex > -1) {
|
|
7
|
+
const vault = connections.splice(vaultIndex, 1);
|
|
8
|
+
return [...vault, ...connections];
|
|
9
|
+
}
|
|
10
|
+
return connections;
|
|
11
|
+
}
|
|
12
|
+
exports.sortConnections = sortConnections;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydENvbm5lY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0Brc2FuZ2t1azEwL3dhbGxldC1jb250cm9sbGVyL3V0aWxzL3NvcnRDb25uZWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixlQUFlLENBQUMsV0FBeUI7SUFDdkQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FDdEMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUMvQyxDQUFDO0lBRUYsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDbkIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7S0FDbkM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBWEQsMENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uIH0gZnJvbSAnQGtzYW5na3VrMTAvd2FsbGV0LXR5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRDb25uZWN0aW9ucyhjb25uZWN0aW9uczogQ29ubmVjdGlvbltdKTogQ29ubmVjdGlvbltdIHtcbiAgY29uc3QgdmF1bHRJbmRleCA9IGNvbm5lY3Rpb25zLmZpbmRJbmRleChcbiAgICAoeyBpZGVudGlmaWVyIH0pID0+IGlkZW50aWZpZXIgPT09ICd4cGxhdmF1bHQnLFxuICApO1xuXG4gIGlmICh2YXVsdEluZGV4ID4gLTEpIHtcbiAgICBjb25zdCB2YXVsdCA9IGNvbm5lY3Rpb25zLnNwbGljZSh2YXVsdEluZGV4LCAxKTtcbiAgICByZXR1cm4gWy4uLnZhdWx0LCAuLi5jb25uZWN0aW9uc107XG4gIH1cblxuICByZXR1cm4gY29ubmVjdGlvbnM7XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyBytes = void 0;
|
|
4
|
+
// import { keccak256 } from '@ethersproject/keccak256';
|
|
5
|
+
const sha3_1 = require("@noble/hashes/sha3");
|
|
6
|
+
const secp256k1_1 = require("@noble/secp256k1");
|
|
7
|
+
function verifyBytes(bytes, signBytesResult) {
|
|
8
|
+
var _a;
|
|
9
|
+
const publicKey = (_a = signBytesResult.public_key) === null || _a === void 0 ? void 0 : _a.toProto();
|
|
10
|
+
if (publicKey && 'key' in publicKey) {
|
|
11
|
+
const sig = signBytesResult.signature;
|
|
12
|
+
const hash = (0, sha3_1.keccak_256)(bytes);
|
|
13
|
+
const pubKey = publicKey.key;
|
|
14
|
+
return (0, secp256k1_1.verify)(sig, hash, pubKey);
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
exports.verifyBytes = verifyBytes;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5Qnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvdmVyaWZ5Qnl0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esd0RBQXdEO0FBQ3hELDZDQUFnRDtBQUNoRCxnREFBMEM7QUFFMUMsU0FBZ0IsV0FBVyxDQUN6QixLQUFhLEVBQ2IsZUFBMEM7O0lBRTNDLE1BQU0sU0FBUyxHQUFHLE1BQUEsZUFBZSxDQUFDLFVBQVUsMENBQUUsT0FBTyxFQUFFLENBQUM7SUFFeEQsSUFBSSxTQUFTLElBQUksS0FBSyxJQUFJLFNBQVMsRUFBRTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUEsaUJBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBRTdCLE9BQU8sSUFBQSxrQkFBTSxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDbEM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNkLENBQUM7QUFmRCxrQ0FlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25CeXRlc1Jlc3VsdCB9IGZyb20gJ0Brc2FuZ2t1azEwL3dhbGxldC10eXBlcyc7XG4vLyBpbXBvcnQgeyBrZWNjYWsyNTYgfSBmcm9tICdAZXRoZXJzcHJvamVjdC9rZWNjYWsyNTYnO1xuaW1wb3J0IHsga2VjY2FrXzI1NiB9IGZyb20gJ0Bub2JsZS9oYXNoZXMvc2hhMyc7XG5pbXBvcnQgeyB2ZXJpZnkgfSBmcm9tICdAbm9ibGUvc2VjcDI1NmsxJztcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUJ5dGVzKFxuICBieXRlczogQnVmZmVyLFxuICBzaWduQnl0ZXNSZXN1bHQ6IFNpZ25CeXRlc1Jlc3VsdFsncmVzdWx0J10sXG4pOiBib29sZWFuIHtcblx0Y29uc3QgcHVibGljS2V5ID0gc2lnbkJ5dGVzUmVzdWx0LnB1YmxpY19rZXk/LnRvUHJvdG8oKTtcblxuXHRpZiAocHVibGljS2V5ICYmICdrZXknIGluIHB1YmxpY0tleSkge1xuICAgIGNvbnN0IHNpZyA9IHNpZ25CeXRlc1Jlc3VsdC5zaWduYXR1cmU7XG4gICAgY29uc3QgaGFzaCA9IGtlY2Nha18yNTYoYnl0ZXMpO1xuICAgIGNvbnN0IHB1YktleSA9IHB1YmxpY0tleS5rZXk7XG4gICAgXG4gICAgcmV0dXJuIHZlcmlmeShzaWcsIGhhc2gsIHB1YktleSk7XG4gIH1cblxuXHRyZXR1cm4gZmFsc2U7XG59XG4iXX0=
|
package/controller.d.ts
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { CreateTxOptions, LCDClient, SignMode } from '@xpla/xpla.js';
|
|
4
|
+
import { ConnectedWallet, Connection, ConnectType, Installation, NetworkInfo, SignBytesResult, SignResult, TxResult, WalletApp, WalletLCDClientConfig, WalletStates } from '@ksangkuk10/wallet-types';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
6
|
+
import { ExtensionInfo } from './modules/extension-router/multiChannel';
|
|
7
|
+
import { ReadonlyWalletSession } from './modules/readonly-wallet';
|
|
8
|
+
import { WalletConnectControllerOptions } from './modules/walletconnect';
|
|
9
|
+
export interface WalletControllerOptions extends WalletConnectControllerOptions {
|
|
10
|
+
/**
|
|
11
|
+
* ⚠️ Don't hardcoding this, use getChain Options()
|
|
12
|
+
*
|
|
13
|
+
* fallback network if controller is not connected
|
|
14
|
+
*/
|
|
15
|
+
defaultNetwork: NetworkInfo;
|
|
16
|
+
/**
|
|
17
|
+
* ⚠️ Don't hardcoding this, use getChain Options()
|
|
18
|
+
*
|
|
19
|
+
* for walletconnect
|
|
20
|
+
*
|
|
21
|
+
* The network rules passed by the Xpla Mobile are 0 is testnet, 1 is mainnet.
|
|
22
|
+
*
|
|
23
|
+
* Always set testnet for 0 and mainnet for 1.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```
|
|
27
|
+
* const mainnet: NetworkInfo = {
|
|
28
|
+
* name: 'mainnet',
|
|
29
|
+
* chainID: 'dimension-1',
|
|
30
|
+
* lcd: 'https://lcd.xpla.net',
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* const testnet: NetworkInfo = {
|
|
34
|
+
* name: 'testnet',
|
|
35
|
+
* chainID: 'cube-1',
|
|
36
|
+
* lcd: 'https://lcd.xpla.net',
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* const walletConnectChainIds: Record<number, NetworkInfo> = {
|
|
40
|
+
* 0: testnet,
|
|
41
|
+
* 1: mainnet,
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* <WalletProvider walletConnectChainIds={walletConnectChainIds}>
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
walletConnectChainIds: Record<number, NetworkInfo>;
|
|
48
|
+
/**
|
|
49
|
+
* run at executing the `connect(ConnectType.READONLY)`
|
|
50
|
+
*/
|
|
51
|
+
createReadonlyWalletSession?: (networks: NetworkInfo[]) => Promise<ReadonlyWalletSession | null>;
|
|
52
|
+
/**
|
|
53
|
+
* run at executing the `connect()` - only used when does not input ConnectType
|
|
54
|
+
*/
|
|
55
|
+
selectConnection?: (connections: Connection[]) => Promise<[type: ConnectType, identifier: string | undefined] | null>;
|
|
56
|
+
/**
|
|
57
|
+
* run at executing the `connect(ConnectType.EXTENSION)`
|
|
58
|
+
* if user installed multiple wallets
|
|
59
|
+
*/
|
|
60
|
+
selectExtension?: (extensionInfos: ExtensionInfo[]) => Promise<ExtensionInfo | null>;
|
|
61
|
+
/**
|
|
62
|
+
* milliseconds to wait checking chrome extension is installed
|
|
63
|
+
*
|
|
64
|
+
* @default 1000 * 3 miliseconds
|
|
65
|
+
*/
|
|
66
|
+
waitingChromeExtensionInstallCheck?: number;
|
|
67
|
+
/**
|
|
68
|
+
* ⚠️ This API is an option for wallet developers. Please don't use dApp developers.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```
|
|
72
|
+
* <WalletProvider dangerously__chromeExtensionCompatibleBrowserCheck={(userAgent: string) => {
|
|
73
|
+
* return /MyWallet\//.test(userAgent);
|
|
74
|
+
* }}>
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
dangerously__chromeExtensionCompatibleBrowserCheck?: (userAgent: string) => boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare class WalletController {
|
|
80
|
+
readonly options: WalletControllerOptions;
|
|
81
|
+
private extension;
|
|
82
|
+
private walletConnect;
|
|
83
|
+
private readonlyWallet;
|
|
84
|
+
private _availableConnectTypes;
|
|
85
|
+
private _availableInstallTypes;
|
|
86
|
+
private _states;
|
|
87
|
+
private disableReadonlyWallet;
|
|
88
|
+
private disableExtension;
|
|
89
|
+
private disableWalletConnect;
|
|
90
|
+
private readonly _notConnected;
|
|
91
|
+
private readonly _initializing;
|
|
92
|
+
constructor(options: WalletControllerOptions);
|
|
93
|
+
/**
|
|
94
|
+
* Some mobile wallet emulates the behavior of chrome extension.
|
|
95
|
+
* It confirms that the current connection environment is such a wallet.
|
|
96
|
+
* (If you are running connect() by checking availableConnectType, you do not need to use this API.)
|
|
97
|
+
*
|
|
98
|
+
* @see Wallet#isChromeExtensionCompatibleBrowser
|
|
99
|
+
*/
|
|
100
|
+
isChromeExtensionCompatibleBrowser: () => boolean;
|
|
101
|
+
/**
|
|
102
|
+
* available connect types on the browser
|
|
103
|
+
*
|
|
104
|
+
* @see Wallet#availableConnectTypes
|
|
105
|
+
*/
|
|
106
|
+
availableConnectTypes: () => Observable<ConnectType[]>;
|
|
107
|
+
/**
|
|
108
|
+
* available connections includes identifier, name, icon
|
|
109
|
+
*
|
|
110
|
+
* @see Wallet#availableConnections
|
|
111
|
+
*/
|
|
112
|
+
availableConnections: () => Observable<Connection[]>;
|
|
113
|
+
/**
|
|
114
|
+
* available install types on the browser
|
|
115
|
+
*
|
|
116
|
+
* in this time, this only contains [ConnectType.EXTENSION]
|
|
117
|
+
*
|
|
118
|
+
* @see Wallet#availableInstallTypes
|
|
119
|
+
*/
|
|
120
|
+
availableInstallTypes: () => Observable<ConnectType[]>;
|
|
121
|
+
/**
|
|
122
|
+
* available installations includes identifier, name, icon, url
|
|
123
|
+
*
|
|
124
|
+
* @see Wallet#availableInstallations
|
|
125
|
+
*/
|
|
126
|
+
availableInstallations: () => Observable<Installation[]>;
|
|
127
|
+
/**
|
|
128
|
+
* @see Wallet#status
|
|
129
|
+
* @see Wallet#network
|
|
130
|
+
* @see Wallet#wallets
|
|
131
|
+
*/
|
|
132
|
+
states: () => Observable<WalletStates>;
|
|
133
|
+
/** get connectedWallet */
|
|
134
|
+
connectedWallet: () => Observable<ConnectedWallet | undefined>;
|
|
135
|
+
/** get lcdClient */
|
|
136
|
+
lcdClient: (lcdClientConfig?: WalletLCDClientConfig) => Observable<LCDClient>;
|
|
137
|
+
/**
|
|
138
|
+
* reload the connected wallet states
|
|
139
|
+
*
|
|
140
|
+
* in this time, this only work on the ConnectType.EXTENSION
|
|
141
|
+
*
|
|
142
|
+
* @see Wallet#recheckStatus
|
|
143
|
+
*/
|
|
144
|
+
refetchStates: () => void;
|
|
145
|
+
/**
|
|
146
|
+
* @deprecated Please use availableInstallations
|
|
147
|
+
*
|
|
148
|
+
* install for the connect type
|
|
149
|
+
*
|
|
150
|
+
* @see Wallet#install
|
|
151
|
+
*/
|
|
152
|
+
install: (type: ConnectType) => void;
|
|
153
|
+
/**
|
|
154
|
+
* connect to wallet
|
|
155
|
+
*
|
|
156
|
+
* @see Wallet#connect
|
|
157
|
+
*/
|
|
158
|
+
connect: (_type?: ConnectType, _identifier?: string, _walletApp?: WalletApp | boolean) => Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* manual connect to read only session
|
|
161
|
+
*
|
|
162
|
+
* @see Wallet#connectReadonly
|
|
163
|
+
*/
|
|
164
|
+
connectReadonly: (xplaAddress: string, network: NetworkInfo) => void;
|
|
165
|
+
/** @see Wallet#disconnect */
|
|
166
|
+
disconnect: () => void;
|
|
167
|
+
/**
|
|
168
|
+
* @see Wallet#post
|
|
169
|
+
* @param tx
|
|
170
|
+
* @param xplaAddress only available new extension
|
|
171
|
+
*/
|
|
172
|
+
post: (tx: CreateTxOptions, xplaAddress?: string, walletApp?: WalletApp | boolean) => Promise<TxResult>;
|
|
173
|
+
/**
|
|
174
|
+
* @see Wallet#sign
|
|
175
|
+
* @param tx
|
|
176
|
+
* @param xplaAddress only available new extension
|
|
177
|
+
*/
|
|
178
|
+
sign: (tx: CreateTxOptions & {
|
|
179
|
+
sequence?: number;
|
|
180
|
+
accountNumber?: number;
|
|
181
|
+
signMode?: SignMode;
|
|
182
|
+
}, xplaAddress?: string, walletApp?: WalletApp | boolean) => Promise<SignResult>;
|
|
183
|
+
/**
|
|
184
|
+
* @see Wallet#signBytes
|
|
185
|
+
* @param bytes
|
|
186
|
+
* @param xplaAddress only available new extension
|
|
187
|
+
*/
|
|
188
|
+
signBytes: (bytes: Buffer, xplaAddress?: string, walletApp?: WalletApp | boolean) => Promise<SignBytesResult>;
|
|
189
|
+
/**
|
|
190
|
+
* @see Wallet#hasCW20Tokens
|
|
191
|
+
* @param chainID
|
|
192
|
+
* @param tokenAddrs Token addresses
|
|
193
|
+
*/
|
|
194
|
+
hasCW20Tokens: (chainID: string, ...tokenAddrs: string[]) => Promise<{
|
|
195
|
+
[tokenAddr: string]: boolean;
|
|
196
|
+
}>;
|
|
197
|
+
/**
|
|
198
|
+
* @see Wallet#addCW20Tokens
|
|
199
|
+
* @param chainID
|
|
200
|
+
* @param tokenAddrs Token addresses
|
|
201
|
+
*/
|
|
202
|
+
addCW20Tokens: (chainID: string, ...tokenAddrs: string[]) => Promise<{
|
|
203
|
+
[tokenAddr: string]: boolean;
|
|
204
|
+
}>;
|
|
205
|
+
/**
|
|
206
|
+
* @see Wallet#hasNetwork
|
|
207
|
+
* @param network
|
|
208
|
+
*/
|
|
209
|
+
hasNetwork: (network: Omit<NetworkInfo, 'name'>) => Promise<boolean>;
|
|
210
|
+
/**
|
|
211
|
+
* @see Wallet#hasNetwork
|
|
212
|
+
* @param network
|
|
213
|
+
*/
|
|
214
|
+
addNetwork: (network: NetworkInfo) => Promise<boolean>;
|
|
215
|
+
private availableExtensionFeature;
|
|
216
|
+
private updateStates;
|
|
217
|
+
private enableReadonlyWallet;
|
|
218
|
+
private enableExtension;
|
|
219
|
+
private enableWalletConnect;
|
|
220
|
+
}
|