@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,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtensionRouter = void 0;
|
|
4
|
+
const web_extension_interface_1 = require("@ksangkuk10/web-extension-interface");
|
|
5
|
+
const rxjs_1 = require("rxjs");
|
|
6
|
+
const legacy_extension_1 = require("../legacy-extension");
|
|
7
|
+
const modal_1 = require("./modal");
|
|
8
|
+
const multiChannel_1 = require("./multiChannel");
|
|
9
|
+
const session_1 = require("./session");
|
|
10
|
+
const types_1 = require("./types");
|
|
11
|
+
class ExtensionRouter {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.options = options;
|
|
14
|
+
this._connector = null;
|
|
15
|
+
// ---------------------------------------------
|
|
16
|
+
// states
|
|
17
|
+
// ---------------------------------------------
|
|
18
|
+
this.states = () => {
|
|
19
|
+
return this._states.asObservable();
|
|
20
|
+
};
|
|
21
|
+
this.getLastStates = () => {
|
|
22
|
+
return this._states.getValue();
|
|
23
|
+
};
|
|
24
|
+
// ---------------------------------------------
|
|
25
|
+
// behaviors
|
|
26
|
+
// ---------------------------------------------
|
|
27
|
+
this.connect = async (identifier) => {
|
|
28
|
+
var _a;
|
|
29
|
+
const extensionInfos = (0, multiChannel_1.getXplaExtensions)();
|
|
30
|
+
if (extensionInfos.length === 0) {
|
|
31
|
+
throw new Error(`[ExtensionRouter] Can't find connectors`);
|
|
32
|
+
}
|
|
33
|
+
let extensionInfo;
|
|
34
|
+
if (identifier) {
|
|
35
|
+
extensionInfo = extensionInfos.find((item) => item.identifier === identifier);
|
|
36
|
+
}
|
|
37
|
+
else if (extensionInfos.length === 1) {
|
|
38
|
+
extensionInfo = extensionInfos[0];
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const select = (_a = this.options.selectExtension) !== null && _a !== void 0 ? _a : modal_1.selectModal;
|
|
42
|
+
const selectedExtensionInfo = await select(extensionInfos);
|
|
43
|
+
if (selectedExtensionInfo) {
|
|
44
|
+
extensionInfo = selectedExtensionInfo;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (extensionInfo) {
|
|
48
|
+
this.createConnector(extensionInfo);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
this.disconnect = () => {
|
|
52
|
+
var _a;
|
|
53
|
+
(0, session_1.clearSession)();
|
|
54
|
+
this._states.next({
|
|
55
|
+
type: types_1.ExtensionRouterStatus.WALLET_NOT_CONNECTED,
|
|
56
|
+
network: this.options.defaultNetwork,
|
|
57
|
+
});
|
|
58
|
+
(_a = this._connector) === null || _a === void 0 ? void 0 : _a.close();
|
|
59
|
+
this._connector = null;
|
|
60
|
+
};
|
|
61
|
+
this.requestApproval = () => {
|
|
62
|
+
if (!this._connector) {
|
|
63
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
64
|
+
}
|
|
65
|
+
this._connector.requestApproval();
|
|
66
|
+
};
|
|
67
|
+
this.refetchStates = () => {
|
|
68
|
+
if (!this._connector) {
|
|
69
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
70
|
+
}
|
|
71
|
+
this._connector.refetchStates();
|
|
72
|
+
};
|
|
73
|
+
this.post = (tx, xplaAddress) => {
|
|
74
|
+
if (!this._connector) {
|
|
75
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
76
|
+
}
|
|
77
|
+
const latestStates = this.getLastStates();
|
|
78
|
+
if (latestStates.type !== types_1.ExtensionRouterStatus.WALLET_CONNECTED) {
|
|
79
|
+
throw new Error(`[ExtensionRouter] Wallet is not connected`);
|
|
80
|
+
}
|
|
81
|
+
return this._connector.post(xplaAddress !== null && xplaAddress !== void 0 ? xplaAddress : latestStates.wallet.xplaAddress, tx);
|
|
82
|
+
};
|
|
83
|
+
this.sign = (tx, xplaAddress) => {
|
|
84
|
+
if (!this._connector) {
|
|
85
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
86
|
+
}
|
|
87
|
+
const latestStates = this.getLastStates();
|
|
88
|
+
if (latestStates.type !== types_1.ExtensionRouterStatus.WALLET_CONNECTED) {
|
|
89
|
+
throw new Error(`[ExtensionRouter] Wallet is not connected`);
|
|
90
|
+
}
|
|
91
|
+
return this._connector.sign(xplaAddress !== null && xplaAddress !== void 0 ? xplaAddress : latestStates.wallet.xplaAddress, tx);
|
|
92
|
+
};
|
|
93
|
+
this.signBytes = (bytes, xplaAddress) => {
|
|
94
|
+
if (!this._connector) {
|
|
95
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
96
|
+
}
|
|
97
|
+
const latestStates = this.getLastStates();
|
|
98
|
+
if (latestStates.type !== types_1.ExtensionRouterStatus.WALLET_CONNECTED) {
|
|
99
|
+
throw new Error(`[ExtensionRouter] Wallet is not connected`);
|
|
100
|
+
}
|
|
101
|
+
return this._connector.signBytes(xplaAddress !== null && xplaAddress !== void 0 ? xplaAddress : latestStates.wallet.xplaAddress, bytes);
|
|
102
|
+
};
|
|
103
|
+
this.hasCW20Tokens = (chainID, ...tokenAddrs) => {
|
|
104
|
+
if (!this._connector) {
|
|
105
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
106
|
+
}
|
|
107
|
+
else if (this._connector instanceof legacy_extension_1.LegacyExtensionConnector) {
|
|
108
|
+
throw new Error('[ExtensionRouter] Legacy extension does not support hasCW20Tokens() ');
|
|
109
|
+
}
|
|
110
|
+
return this._connector.hasCW20Tokens(chainID, ...tokenAddrs);
|
|
111
|
+
};
|
|
112
|
+
this.addCW20Tokens = (chainID, ...tokenAddrs) => {
|
|
113
|
+
if (!this._connector) {
|
|
114
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
115
|
+
}
|
|
116
|
+
else if (this._connector instanceof legacy_extension_1.LegacyExtensionConnector) {
|
|
117
|
+
throw new Error('[ExtensionRouter] Legacy extension does not support addCW20Tokens() ');
|
|
118
|
+
}
|
|
119
|
+
return this._connector.addCW20Tokens(chainID, ...tokenAddrs);
|
|
120
|
+
};
|
|
121
|
+
this.hasNetwork = (network) => {
|
|
122
|
+
if (!this._connector) {
|
|
123
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
124
|
+
}
|
|
125
|
+
else if (this._connector instanceof legacy_extension_1.LegacyExtensionConnector) {
|
|
126
|
+
throw new Error('[ExtensionRouter] Legacy extension does not support hasNetwork() ');
|
|
127
|
+
}
|
|
128
|
+
return this._connector.hasNetwork(network);
|
|
129
|
+
};
|
|
130
|
+
this.addNetwork = (network) => {
|
|
131
|
+
if (!this._connector) {
|
|
132
|
+
throw new Error('[ExtensionRouter] No connector');
|
|
133
|
+
}
|
|
134
|
+
else if (this._connector instanceof legacy_extension_1.LegacyExtensionConnector) {
|
|
135
|
+
throw new Error('[ExtensionRouter] Legacy extension does not support addNetwork() ');
|
|
136
|
+
}
|
|
137
|
+
return this._connector.addNetwork(network);
|
|
138
|
+
};
|
|
139
|
+
// ---------------------------------------------
|
|
140
|
+
// internal
|
|
141
|
+
// ---------------------------------------------
|
|
142
|
+
this.createConnector = (extensionInfo) => {
|
|
143
|
+
var _a;
|
|
144
|
+
(_a = this._connector) === null || _a === void 0 ? void 0 : _a.close();
|
|
145
|
+
const connectorPromise = extensionInfo.connector
|
|
146
|
+
? Promise.resolve(extensionInfo.connector())
|
|
147
|
+
: Promise.resolve(new legacy_extension_1.LegacyExtensionConnector(extensionInfo.identifier));
|
|
148
|
+
connectorPromise.then((connector) => {
|
|
149
|
+
var _a;
|
|
150
|
+
connector.open((_a = this.options.hostWindow) !== null && _a !== void 0 ? _a : window, {
|
|
151
|
+
next: (nextStates) => {
|
|
152
|
+
var _a;
|
|
153
|
+
if (nextStates.type === web_extension_interface_1.WebExtensionStatus.INITIALIZING) {
|
|
154
|
+
this._states.next({
|
|
155
|
+
type: types_1.ExtensionRouterStatus.INITIALIZING,
|
|
156
|
+
network: this.options.defaultNetwork,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else if (nextStates.type === web_extension_interface_1.WebExtensionStatus.NO_AVAILABLE) {
|
|
160
|
+
this._states.next({
|
|
161
|
+
type: types_1.ExtensionRouterStatus.NO_AVAILABLE,
|
|
162
|
+
network: this.options.defaultNetwork,
|
|
163
|
+
isConnectorExists: true,
|
|
164
|
+
isApproved: nextStates.isApproved,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
else if (nextStates.wallets.length === 0) {
|
|
168
|
+
this._states.next({
|
|
169
|
+
type: types_1.ExtensionRouterStatus.WALLET_NOT_CONNECTED,
|
|
170
|
+
network: nextStates.network,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this._states.next({
|
|
175
|
+
type: types_1.ExtensionRouterStatus.WALLET_CONNECTED,
|
|
176
|
+
network: nextStates.network,
|
|
177
|
+
wallet: nextStates.focusedWalletAddress
|
|
178
|
+
? (_a = nextStates.wallets.find((itemWallet) => itemWallet.xplaAddress ===
|
|
179
|
+
nextStates.focusedWalletAddress)) !== null && _a !== void 0 ? _a : nextStates.wallets[0]
|
|
180
|
+
: nextStates.wallets[0],
|
|
181
|
+
connectorType: connector instanceof legacy_extension_1.LegacyExtensionConnector
|
|
182
|
+
? types_1.ExtensionRouterConnectorType.LEGACY
|
|
183
|
+
: types_1.ExtensionRouterConnectorType.WEB_EXTENSION,
|
|
184
|
+
supportFeatures: new Set(connector.supportFeatures()),
|
|
185
|
+
extensionInfo,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
error: (error) => {
|
|
190
|
+
console.error(error);
|
|
191
|
+
},
|
|
192
|
+
complete: () => { },
|
|
193
|
+
});
|
|
194
|
+
this._connector = connector;
|
|
195
|
+
(0, session_1.storeSession)({
|
|
196
|
+
identifier: extensionInfo.identifier,
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
this._states = new rxjs_1.BehaviorSubject({
|
|
201
|
+
type: types_1.ExtensionRouterStatus.INITIALIZING,
|
|
202
|
+
network: options.defaultNetwork,
|
|
203
|
+
});
|
|
204
|
+
this._extensionInfos = (0, multiChannel_1.getXplaExtensions)();
|
|
205
|
+
if (this._extensionInfos.length === 0) {
|
|
206
|
+
this._states.next({
|
|
207
|
+
type: types_1.ExtensionRouterStatus.NO_AVAILABLE,
|
|
208
|
+
network: options.defaultNetwork,
|
|
209
|
+
isConnectorExists: false,
|
|
210
|
+
});
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
// ---------------------------------------------
|
|
214
|
+
// initialize session
|
|
215
|
+
// ---------------------------------------------
|
|
216
|
+
const session = (0, session_1.getStoredSession)();
|
|
217
|
+
if (session) {
|
|
218
|
+
const extensionInfo = this._extensionInfos.find((item) => item.identifier === session.identifier);
|
|
219
|
+
if (extensionInfo) {
|
|
220
|
+
this.createConnector(extensionInfo);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
console.warn(`Can't find an extension for the session "${session.identifier}"`);
|
|
225
|
+
(0, session_1.clearSession)();
|
|
226
|
+
this._states.next({
|
|
227
|
+
type: types_1.ExtensionRouterStatus.WALLET_NOT_CONNECTED,
|
|
228
|
+
network: options.defaultNetwork,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
this._states.next({
|
|
234
|
+
type: types_1.ExtensionRouterStatus.WALLET_NOT_CONNECTED,
|
|
235
|
+
network: options.defaultNetwork,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
exports.ExtensionRouter = ExtensionRouter;
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0ZW5zaW9uUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0Brc2FuZ2t1azEwL3dhbGxldC1jb250cm9sbGVyL21vZHVsZXMvZXh0ZW5zaW9uLXJvdXRlci9FeHRlbnNpb25Sb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUZBUzZDO0FBRTdDLCtCQUFxRDtBQUNyRCwwREFBK0Q7QUFDL0QsbUNBQXNDO0FBQ3RDLGlEQUFrRTtBQUNsRSx1Q0FBeUU7QUFDekUsbUNBSWlCO0FBa0JqQixNQUFhLGVBQWU7SUFNMUIsWUFBNkIsT0FBK0I7UUFBL0IsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFGcEQsZUFBVSxHQUFxQyxJQUFJLENBQUM7UUFvRDVELGdEQUFnRDtRQUNoRCxTQUFTO1FBQ1QsZ0RBQWdEO1FBQ2hELFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDO1FBRUYsa0JBQWEsR0FBRyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQztRQUVGLGdEQUFnRDtRQUNoRCxZQUFZO1FBQ1osZ0RBQWdEO1FBQ2hELFlBQU8sR0FBRyxLQUFLLEVBQUUsVUFBbUIsRUFBRSxFQUFFOztZQUN0QyxNQUFNLGNBQWMsR0FBRyxJQUFBLGdDQUFpQixHQUFFLENBQUM7WUFFM0MsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2FBQzVEO1lBRUQsSUFBSSxhQUF3QyxDQUFDO1lBRTdDLElBQUksVUFBVSxFQUFFO2dCQUNkLGFBQWEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUNqQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMs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SjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSxFQUFFLDZCQUFxQixDQUFDLG9CQUFvQjtnQkFDaEQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxjQUFjO2FBQ2hDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQW1RRjtBQXpURCwwQ0F5VEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrSW5mbyB9IGZyb20gJ0Brc2FuZ2t1azEwL3dhbGxldC10eXBlcyc7XG5pbXBvcnQge1xuICBYcGxhV2ViRXh0ZW5zaW9uQ29ubmVjdG9yLFxuICBXZWJFeHRlbnNpb25OZXR3b3JrSW5mbyxcbiAgV2ViRXh0ZW5zaW9uUG9zdFBheWxvYWQsXG4gIFdlYkV4dGVuc2lvblNpZ25CeXRlc1BheWxvYWQsXG4gIFdlYkV4dGVuc2lvblNpZ25QYXlsb2FkLFxuICBXZWJFeHRlbnNpb25TdGF0ZXMsXG4gIFdlYkV4dGVuc2lvblN0YXR1cyxcbiAgV2ViRXh0ZW5zaW9uVHhSZXN1bHQsXG59IGZyb20gJ0Brc2FuZ2t1azEwL3dlYi1leHRlbnNpb24taW50ZXJmYWNlJztcbmltcG9ydCB7IENyZWF0ZVR4T3B0aW9ucywgU2lnbk1vZGUgfSBmcm9tICdAeHBsYS94cGxhLmpzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaWJhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMZWdhY3lFeHRlbnNpb25Db25uZWN0b3IgfSBmcm9tICcuLi9sZWdhY3ktZXh0ZW5zaW9uJztcbmltcG9ydCB7IHNlbGVjdE1vZGFsIH0gZnJvbSAnLi9tb2RhbCc7XG5pbXBvcnQgeyBFeHRlbnNpb25JbmZvLCBnZXRYcGxhRXh0ZW5zaW9ucyB9IGZyb20gJy4vbXVsdGlDaGFubmVsJztcbmltcG9ydCB7IGNsZWFyU2Vzc2lvbiwgZ2V0U3RvcmVkU2Vzc2lvbiwgc3RvcmVTZXNzaW9uIH0gZnJvbSAnLi9zZXNzaW9uJztcbmltcG9ydCB7XG4gIEV4dGVuc2lvblJvdXRlckNvbm5lY3RvclR5cGUsXG4gIEV4dGVuc2lvblJvdXRlclN0YXRlcyxcbiAgRXh0ZW5zaW9uUm91dGVyU3RhdHVzLFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Sb3V0ZXJPcHRpb25zIHtcbiAgZGVmYXVsdE5ldHdvcms6IE5ldHdvcmtJbmZvO1xuICBzZWxlY3RFeHRlbnNpb24/OiAoXG4gICAgZXh0ZW5zaW9uSW5mb3M6IEV4dGVuc2lvbkluZm9bXSxcbiAgKSA9PiBQcm9taXNlPEV4dGVuc2lvbkluZm8gfCBudWxsPjtcblxuICBob3N0V2luZG93PzogV2luZG93O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBkZXZlbG9wbWVudCBmZWF0dXJlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgZGFuZ2Vyb3VzbHlfX2Nocm9tZUV4dGVuc2lvbkNvbXBhdGlibGVCcm93c2VyQ2hlY2s6IChcbiAgICB1c2VyQWdlbnQ6IHN0cmluZyxcbiAgKSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uUm91dGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGVzOiBCZWhhdmlvclN1YmplY3Q8RXh0ZW5zaW9uUm91dGVyU3RhdGVzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXh0ZW5zaW9uSW5mb3M6IEV4dGVuc2lvbkluZm9bXTtcblxuICBwcml2YXRlIF9jb25uZWN0b3I6IFhwbGFXZWJFeHRlbnNpb25Db25uZWN0b3IgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEV4dGVuc2lvblJvdXRlck9wdGlvbnMpIHtcbiAgICB0aGlzLl9zdGF0ZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEV4dGVuc2lvblJvdXRlclN0YXRlcz4oe1xuICAgICAgdHlwZTogRXh0ZW5zaW9uUm91dGVyU3RhdHVzLklOSVRJQUxJWklORyxcbiAgICAgIG5ldHdvcms6IG9wdGlvbnMuZGVmYXVsdE5ldHdvcmssXG4gICAgfSk7XG5cbiAgICB0aGlzLl9leHRlbnNpb25JbmZvcyA9IGdldFhwbGFFeHRlbnNpb25zKCk7XG5cbiAgICBpZiAodGhpcy5fZXh0ZW5zaW9uSW5mb3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLl9zdGF0ZXMubmV4dCh7XG4gICAgICAgIHR5cGU6IEV4dGVuc2lvblJvdXRlclN0YXR1cy5OT19BVkFJTEFCTEUsXG4gICAgICAgIG5ldHdvcms6IG9wdGlvbnMuZGVmYXVsdE5ldHdvcmssXG4gICAgICAgIGlzQ29ubmVjdG9yRXhpc3RzOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gaW5pdGlhbGl6ZSBzZXNzaW9uXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3Qgc2Vzc2lvbiA9IGdldFN0b3JlZFNlc3Npb24oKTtcblxuICAgIGlmIChzZXNzaW9uKSB7XG4gICAgICBjb25zdCBleHRlbnNpb25JbmZvID0gdGhpcy5fZXh0ZW5zaW9uSW5mb3MuZmluZChcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0uaWRlbnRpZmllciA9PT0gc2Vzc2lvbi5pZGVudGlmaWVyLFxuICAgICAgKTtcblxuICAgICAgaWYgKGV4dGVuc2lvbkluZm8pIHtcbiAgICAgICAgdGhpcy5jcmVhdGVDb25uZWN0b3IoZXh0ZW5zaW9uSW5mbyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgQ2FuJ3QgZmluZCBhbiBleHRlbnNpb24gZm9yIHRoZSBzZXNzaW9uIFwiJHtzZXNzaW9uLmlkZW50aWZpZXJ9XCJgLFxuICAgICAgICApO1xuICAgICAgICBjbGVhclNlc3Npb24oKTtcblxuICAgICAgICB0aGlzLl9zdGF0ZXMubmV4dCh7XG4gICAgICAgICAgdHlwZTogRXh0ZW5zaW9uUm91dGVyU3RhdHVzLldBTExFVF9OT1RfQ09OTkVDVEVELFxuICAgICAgICAgIG5ldHdvcms6IG9wdGlvbnMuZGVmYXVsdE5ldHdvcmssXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zdGF0ZXMubmV4dCh7XG4gICAgICAgIHR5cGU6IEV4dGVuc2lvblJvdXRlclN0YXR1cy5XQUxMRVRfTk9UX0NPTk5FQ1RFRCxcbiAgICAgICAgbmV0d29yazogb3B0aW9ucy5kZWZhdWx0TmV0d29yayxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBzdGF0ZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHN0YXRlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVzLmFzT2JzZXJ2YWJsZSgpO1xuICB9O1xuXG4gIGdldExhc3RTdGF0ZXMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlcy5nZXRWYWx1ZSgpO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBiZWhhdmlvcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbm5lY3QgPSBhc3luYyAoaWRlbnRpZmllcj86IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkluZm9zID0gZ2V0WHBsYUV4dGVuc2lvbnMoKTtcblxuICAgIGlmIChleHRlbnNpb25JbmZvcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgW0V4dGVuc2lvblJvdXRlcl0gQ2FuJ3QgZmluZCBjb25uZWN0b3JzYCk7XG4gICAgfVxuXG4gICAgbGV0IGV4dGVuc2lvbkluZm86IEV4dGVuc2lvbkluZm8gfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoaWRlbnRpZmllcikge1xuICAgICAgZXh0ZW5zaW9uSW5mbyA9IGV4dGVuc2lvbkluZm9zLmZpbmQoXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoZXh0ZW5zaW9uSW5mb3MubGVuZ3RoID09PSAxKSB7XG4gICAgICBleHRlbnNpb25JbmZvID0gZXh0ZW5zaW9uSW5mb3NbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMub3B0aW9ucy5zZWxlY3RFeHRlbnNpb24gPz8gc2VsZWN0TW9kYWw7XG4gICAgICBjb25zdCBzZWxlY3RlZEV4dGVuc2lvbkluZm8gPSBhd2FpdCBzZWxlY3QoZXh0ZW5zaW9uSW5mb3MpO1xuXG4gICAgICBpZiAoc2VsZWN0ZWRFeHRlbnNpb25JbmZvKSB7XG4gICAgICAgIGV4dGVuc2lvbkluZm8gPSBzZWxlY3RlZEV4dGVuc2lvbkluZm87XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4dGVuc2lvbkluZm8pIHtcbiAgICAgIHRoaXMuY3JlYXRlQ29ubmVjdG9yKGV4dGVuc2lvbkluZm8pO1xuICAgIH1cbiAgfTtcblxuICBkaXNjb25uZWN0ID0gKCkgPT4ge1xuICAgIGNsZWFyU2Vzc2lvbigpO1xuXG4gICAgdGhpcy5fc3RhdGVzLm5leHQoe1xuICAgICAgdHlwZTogRXh0ZW5zaW9uUm91dGVyU3RhdHVzLldBTExFVF9OT1RfQ09OTkVDVEVELFxuICAgICAgbmV0d29yazogdGhpcy5vcHRpb25zLmRlZmF1bHROZXR3b3JrLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fY29ubmVjdG9yPy5jbG9zZSgpO1xuICAgIHRoaXMuX2Nvbm5lY3RvciA9IG51bGw7XG4gIH07XG5cbiAgcmVxdWVzdEFwcHJvdmFsID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5fY29ubmVjdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tFeHRlbnNpb25Sb3V0ZXJdIE5vIGNvbm5lY3RvcicpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nvbm5lY3Rvci5yZXF1ZXN0QXBwcm92YWwoKTtcbiAgfTtcblxuICByZWZldGNoU3RhdGVzID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5fY29ubmVjdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tFeHRlbnNpb25Sb3V0ZXJdIE5vIGNvbm5lY3RvcicpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nvbm5lY3Rvci5yZWZldGNoU3RhdGVzKCk7XG4gIH07XG5cbiAgcG9zdCA9IChcbiAgICB0eDogQ3JlYXRlVHhPcHRpb25zLFxuICAgIHhwbGFBZGRyZXNzPzogc3RyaW5nLFxuICApOiBTdWJzY3JpYmFibGU8V2ViRXh0ZW5zaW9uVHhSZXN1bHQ8V2ViRXh0ZW5zaW9uUG9zdFBheWxvYWQ+PiA9PiB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW0V4dGVuc2lvblJvdXRlcl0gTm8gY29ubmVjdG9yJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbGF0ZXN0U3RhdGVzID0gdGhpcy5nZXRMYXN0U3RhdGVzKCk7XG5cbiAgICBpZiAobGF0ZXN0U3RhdGVzLnR5cGUgIT09IEV4dGVuc2lvblJvdXRlclN0YXR1cy5XQUxMRVRfQ09OTkVDVEVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFeHRlbnNpb25Sb3V0ZXJdIFdhbGxldCBpcyBub3QgY29ubmVjdGVkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5wb3N0KFxuICAgICAgeHBsYUFkZHJlc3MgPz8gbGF0ZXN0U3RhdGVzLndhbGxldC54cGxhQWRkcmVzcyxcbiAgICAgIHR4LFxuICAgICk7XG4gIH07XG5cbiAgc2lnbiA9IChcbiAgICB0eDogQ3JlYXRlVHhPcHRpb25zICYge1xuICAgICAgc2VxdWVuY2U/OiBudW1iZXI7XG4gICAgICBhY2NvdW50TnVtYmVyPzogbnVtYmVyO1xuICAgICAgc2lnbk1vZGU/OiBTaWduTW9kZTtcbiAgICB9LFxuICAgIHhwbGFBZGRyZXNzPzogc3RyaW5nLFxuICApOiBTdWJzY3JpYmFibGU8V2ViRXh0ZW5zaW9uVHhSZXN1bHQ8V2ViRXh0ZW5zaW9uU2lnblBheWxvYWQ+PiA9PiB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW0V4dGVuc2lvblJvdXRlcl0gTm8gY29ubmVjdG9yJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbGF0ZXN0U3RhdGVzID0gdGhpcy5nZXRMYXN0U3RhdGVzKCk7XG5cbiAgICBpZiAobGF0ZXN0U3RhdGVzLnR5cGUgIT09IEV4dGVuc2lvblJvdXRlclN0YXR1cy5XQUxMRVRfQ09OTkVDVEVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFtFeHRlbnNpb25Sb3V0ZXJdIFdhbGxldCBpcyBub3QgY29ubmVjdGVkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5zaWduKFxuICAgICAgeHBsYUFkZHJlc3MgPz8gbGF0ZXN0U3RhdGVzLndhbGxldC54cGxhQWRkcmVzcyxcbiAgICAgIHR4LFxuICAgICk7XG4gIH07XG5cbiAgc2lnbkJ5dGVzID0gKFxuICAgIGJ5dGVzOiBCdWZmZXIsXG4gICAgeHBsYUFkZHJlc3M/OiBzdHJpbmcsXG4gICk6IFN1YnNjcmliYWJsZTxXZWJFeHRlbnNpb25UeFJlc3VsdDxXZWJFeHRlbnNpb25TaWduQnl0ZXNQYXlsb2FkPj4gPT4ge1xuICAgIGlmICghdGhpcy5fY29ubmVjdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tFeHRlbnNpb25Sb3V0ZXJdIE5vIGNvbm5lY3RvcicpO1xuICAgIH1cblxuICAgIGNvbnN0IGxhdGVzdFN0YXRlcyA9IHRoaXMuZ2V0TGFzdFN0YXRlcygpO1xuXG4gICAgaWYgKGxhdGVzdFN0YXRlcy50eXBlICE9PSBFeHRlbnNpb25Sb3V0ZXJTdGF0dXMuV0FMTEVUX0NPTk5FQ1RFRCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBbRXh0ZW5zaW9uUm91dGVyXSBXYWxsZXQgaXMgbm90IGNvbm5lY3RlZGApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3Iuc2lnbkJ5dGVzKFxuICAgICAgeHBsYUFkZHJlc3MgPz8gbGF0ZXN0U3RhdGVzLndhbGxldC54cGxhQWRkcmVzcyxcbiAgICAgIGJ5dGVzLFxuICAgICk7XG4gIH07XG5cbiAgaGFzQ1cyMFRva2VucyA9IChcbiAgICBjaGFpbklEOiBzdHJpbmcsXG4gICAgLi4udG9rZW5BZGRyczogc3RyaW5nW11cbiAgKTogUHJvbWlzZTx7IFt0b2tlbkFkZHI6IHN0cmluZ106IGJvb2xlYW4gfT4gPT4ge1xuICAgIGlmICghdGhpcy5fY29ubmVjdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tFeHRlbnNpb25Sb3V0ZXJdIE5vIGNvbm5lY3RvcicpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fY29ubmVjdG9yIGluc3RhbmNlb2YgTGVnYWN5RXh0ZW5zaW9uQ29ubmVjdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdbRXh0ZW5zaW9uUm91dGVyXSBMZWdhY3kgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgaGFzQ1cyMFRva2VucygpICcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3IuaGFzQ1cyMFRva2VucyhjaGFpbklELCAuLi50b2tlbkFkZHJzKTtcbiAgfTtcblxuICBhZGRDVzIwVG9rZW5zID0gKFxuICAgIGNoYWluSUQ6IHN0cmluZyxcbiAgICAuLi50b2tlbkFkZHJzOiBzdHJpbmdbXVxuICApOiBQcm9taXNlPHsgW3Rva2VuQWRkcjogc3RyaW5nXTogYm9vbGVhbiB9PiA9PiB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW0V4dGVuc2lvblJvdXRlcl0gTm8gY29ubmVjdG9yJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9jb25uZWN0b3IgaW5zdGFuY2VvZiBMZWdhY3lFeHRlbnNpb25Db25uZWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1tFeHRlbnNpb25Sb3V0ZXJdIExlZ2FjeSBleHRlbnNpb24gZG9lcyBub3Qgc3VwcG9ydCBhZGRDVzIwVG9rZW5zKCkgJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5hZGRDVzIwVG9rZW5zKGNoYWluSUQsIC4uLnRva2VuQWRkcnMpO1xuICB9O1xuXG4gIGhhc05ldHdvcmsgPSAoXG4gICAgbmV0d29yazogT21pdDxXZWJFeHRlbnNpb25OZXR3b3JrSW5mbywgJ25hbWUnPixcbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW0V4dGVuc2lvblJvdXRlcl0gTm8gY29ubmVjdG9yJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9jb25uZWN0b3IgaW5zdGFuY2VvZiBMZWdhY3lFeHRlbnNpb25Db25uZWN0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1tFeHRlbnNpb25Sb3V0ZXJdIExlZ2FjeSBleHRlbnNpb24gZG9lcyBub3Qgc3VwcG9ydCBoYXNOZXR3b3JrKCkgJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5oYXNOZXR3b3JrKG5ldHdvcmspO1xuICB9O1xuXG4gIGFkZE5ldHdvcmsgPSAobmV0d29yazogV2ViRXh0ZW5zaW9uTmV0d29ya0luZm8pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBpZiAoIXRoaXMuX2Nvbm5lY3Rvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbRXh0ZW5zaW9uUm91dGVyXSBObyBjb25uZWN0b3InKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2Nvbm5lY3RvciBpbnN0YW5jZW9mIExlZ2FjeUV4dGVuc2lvbkNvbm5lY3Rvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnW0V4dGVuc2lvblJvdXRlcl0gTGVnYWN5IGV4dGVuc2lvbiBkb2VzIG5vdCBzdXBwb3J0IGFkZE5ldHdvcmsoKSAnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdG9yLmFkZE5ldHdvcmsobmV0d29yayk7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIGludGVybmFsXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBwcml2YXRlIGNyZWF0ZUNvbm5lY3RvciA9IChleHRlbnNpb25JbmZvOiBFeHRlbnNpb25JbmZvKSA9PiB7XG4gICAgdGhpcy5fY29ubmVjdG9yPy5jbG9zZSgpO1xuXG4gICAgY29uc3QgY29ubmVjdG9yUHJvbWlzZTogUHJvbWlzZTxYcGxhV2ViRXh0ZW5zaW9uQ29ubmVjdG9yPiA9XG4gICAgICBleHRlbnNpb25JbmZvLmNvbm5lY3RvclxuICAgICAgICA/IFByb21pc2UucmVzb2x2ZShleHRlbnNpb25JbmZvLmNvbm5lY3RvcigpKVxuICAgICAgICA6IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgICAgIG5ldyBMZWdhY3lFeHRlbnNpb25Db25uZWN0b3IoZXh0ZW5zaW9uSW5mby5pZGVudGlmaWVyKSxcbiAgICAgICAgICApO1xuXG4gICAgY29ubmVjdG9yUHJvbWlzZS50aGVuKChjb25uZWN0b3IpID0+IHtcbiAgICAgIGNvbm5lY3Rvci5vcGVuKHRoaXMub3B0aW9ucy5ob3N0V2luZG93ID8/IHdpbmRvdywge1xuICAgICAgICBuZXh0OiAobmV4dFN0YXRlczogV2ViRXh0ZW5zaW9uU3RhdGVzKSA9PiB7XG4gICAgICAgICAgaWYgKG5leHRTdGF0ZXMudHlwZSA9PT0gV2ViRXh0ZW5zaW9uU3RhdHVzLklOSVRJQUxJWklORykge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVzLm5leHQoe1xuICAgICAgICAgICAgICB0eXBlOiBFeHRlbnNpb25Sb3V0ZXJTdGF0dXMuSU5JVElBTElaSU5HLFxuICAgICAgICAgICAgICBuZXR3b3JrOiB0aGlzLm9wdGlvbnMuZGVmYXVsdE5ldHdvcmssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG5leHRTdGF0ZXMudHlwZSA9PT0gV2ViRXh0ZW5zaW9uU3RhdHVzLk5PX0FWQUlMQUJMRSkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVzLm5leHQoe1xuICAgICAgICAgICAgICB0eXBlOiBFeHRlbnNpb25Sb3V0ZXJTdGF0dXMuTk9fQVZBSUxBQkxFLFxuICAgICAgICAgICAgICBuZXR3b3JrOiB0aGlzLm9wdGlvbnMuZGVmYXVsdE5ldHdvcmssXG4gICAgICAgICAgICAgIGlzQ29ubmVjdG9yRXhpc3RzOiB0cnVlLFxuICAgICAgICAgICAgICBpc0FwcHJvdmVkOiBuZXh0U3RhdGVzLmlzQXBwcm92ZWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG5leHRTdGF0ZXMud2FsbGV0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlcy5uZXh0KHtcbiAgICAgICAgICAgICAgdHlwZTogRXh0ZW5zaW9uUm91dGVyU3RhdHVzLldBTExFVF9OT1RfQ09OTkVDVEVELFxuICAgICAgICAgICAgICBuZXR3b3JrOiBuZXh0U3RhdGVzLm5ldHdvcmssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVzLm5leHQoe1xuICAgICAgICAgICAgICB0eXBlOiBFeHRlbnNpb25Sb3V0ZXJTdGF0dXMuV0FMTEVUX0NPTk5FQ1RFRCxcbiAgICAgICAgICAgICAgbmV0d29yazogbmV4dFN0YXRlcy5uZXR3b3JrLFxuICAgICAgICAgICAgICB3YWxsZXQ6IG5leHRTdGF0ZXMuZm9jdXNlZFdhbGxldEFkZHJlc3NcbiAgICAgICAgICAgICAgICA/IG5leHRTdGF0ZXMud2FsbGV0cy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbVdhbGxldCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBpdGVtV2FsbGV0LnhwbGFBZGRyZXNzID09PVxuICAgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZXMuZm9jdXNlZFdhbGxldEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICApID8/IG5leHRTdGF0ZXMud2FsbGV0c1swXVxuICAgICAgICAgICAgICAgIDogbmV4dFN0YXRlcy53YWxsZXRzWzBdLFxuICAgICAgICAgICAgICBjb25uZWN0b3JUeXBlOlxuICAgICAgICAgICAgICAgIGNvbm5lY3RvciBpbnN0YW5jZW9mIExlZ2FjeUV4dGVuc2lvbkNvbm5lY3RvclxuICAgICAgICAgICAgICAgICAgPyBFeHRlbnNpb25Sb3V0ZXJDb25uZWN0b3JUeXBlLkxFR0FDWVxuICAgICAgICAgICAgICAgICAgOiBFeHRlbnNpb25Sb3V0ZXJDb25uZWN0b3JUeXBlLldFQl9FWFRFTlNJT04sXG4gICAgICAgICAgICAgIHN1cHBvcnRGZWF0dXJlczogbmV3IFNldChjb25uZWN0b3Iuc3VwcG9ydEZlYXR1cmVzKCkpLFxuICAgICAgICAgICAgICBleHRlbnNpb25JbmZvLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7fSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9jb25uZWN0b3IgPSBjb25uZWN0b3I7XG5cbiAgICAgIHN0b3JlU2Vzc2lvbih7XG4gICAgICAgIGlkZW50aWZpZXI6IGV4dGVuc2lvbkluZm8uaWRlbnRpZmllcixcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ExtensionRouter"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvbW9kdWxlcy9leHRlbnNpb24tcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBa0M7QUFDbEMsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9FeHRlbnNpb25Sb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectModal = void 0;
|
|
4
|
+
const modal_style_1 = require("./modal.style");
|
|
5
|
+
function selectModal(extensionInfos) {
|
|
6
|
+
return new Promise((resolve) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const modalContainer = document.createElement('div');
|
|
9
|
+
const styleContainer = document.createElement('style');
|
|
10
|
+
function onComplete(extensionInfo) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
resolve(extensionInfo);
|
|
13
|
+
(_a = modalContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(modalContainer);
|
|
14
|
+
(_b = styleContainer.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(styleContainer);
|
|
15
|
+
}
|
|
16
|
+
const element = createModalElement({
|
|
17
|
+
extensionInfos,
|
|
18
|
+
onComplete,
|
|
19
|
+
});
|
|
20
|
+
styleContainer.textContent = modal_style_1.modalStyle;
|
|
21
|
+
modalContainer.appendChild(element);
|
|
22
|
+
(_a = document.querySelector('head')) === null || _a === void 0 ? void 0 : _a.appendChild(styleContainer);
|
|
23
|
+
(_b = document.querySelector('body')) === null || _b === void 0 ? void 0 : _b.appendChild(modalContainer);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
exports.selectModal = selectModal;
|
|
27
|
+
function createModalElement({ extensionInfos, onComplete, }) {
|
|
28
|
+
// ---------------------------------------------
|
|
29
|
+
// container
|
|
30
|
+
// ---------------------------------------------
|
|
31
|
+
const container = document.createElement('div');
|
|
32
|
+
container.setAttribute('class', 'wallet-select-modal');
|
|
33
|
+
// ---------------------------------------------
|
|
34
|
+
// container > div.wallet-select-modal--dim
|
|
35
|
+
// ---------------------------------------------
|
|
36
|
+
const dim = document.createElement('div');
|
|
37
|
+
dim.setAttribute('class', 'wallet-select-modal--dim');
|
|
38
|
+
container.appendChild(dim);
|
|
39
|
+
// ---------------------------------------------
|
|
40
|
+
// content > div.wallet-select-modal--content
|
|
41
|
+
// ---------------------------------------------
|
|
42
|
+
const content = document.createElement('section');
|
|
43
|
+
content.setAttribute('class', 'wallet-select-modal--content');
|
|
44
|
+
container.appendChild(content);
|
|
45
|
+
// h1
|
|
46
|
+
const title = document.createElement('h1');
|
|
47
|
+
title.textContent = 'Select a Wallet';
|
|
48
|
+
content.appendChild(title);
|
|
49
|
+
// ul
|
|
50
|
+
const list = document.createElement('ul');
|
|
51
|
+
content.appendChild(list);
|
|
52
|
+
for (const extensionInfo of extensionInfos) {
|
|
53
|
+
const item = document.createElement('li');
|
|
54
|
+
const button = document.createElement('button');
|
|
55
|
+
button.addEventListener('click', () => onComplete(extensionInfo));
|
|
56
|
+
item.appendChild(button);
|
|
57
|
+
const icon = document.createElement('span');
|
|
58
|
+
icon.setAttribute('class', 'wallet-select-modal--icon');
|
|
59
|
+
button.appendChild(icon);
|
|
60
|
+
const iconImg = document.createElement('img');
|
|
61
|
+
iconImg.setAttribute('src', extensionInfo.icon);
|
|
62
|
+
iconImg.setAttribute('alt', `${extensionInfo.name} [${extensionInfo.identifier}]`);
|
|
63
|
+
icon.appendChild(iconImg);
|
|
64
|
+
const description = document.createElement('span');
|
|
65
|
+
description.setAttribute('class', 'wallet-select-modal--description');
|
|
66
|
+
description.textContent = extensionInfo.name;
|
|
67
|
+
button.appendChild(description);
|
|
68
|
+
const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
69
|
+
arrow.setAttribute('viewBox', '0 0 24 24');
|
|
70
|
+
button.appendChild(arrow);
|
|
71
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
72
|
+
path.setAttribute('d', 'M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z');
|
|
73
|
+
arrow.appendChild(path);
|
|
74
|
+
list.appendChild(item);
|
|
75
|
+
}
|
|
76
|
+
// events
|
|
77
|
+
dim.addEventListener('click', () => onComplete(null));
|
|
78
|
+
return container;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvbW9kdWxlcy9leHRlbnNpb24tcm91dGVyL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtDQUEyQztBQUUzQyxTQUFnQixXQUFXLENBQ3pCLGNBQStCO0lBRS9CLE9BQU8sSUFBSSxPQUFPLENBQXVCLENBQUMsT0FBTyxFQUFFLEVBQUU7O1FBQ25ELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2RCxTQUFTLFVBQVUsQ0FBQyxhQUFtQzs7WUFDckQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZCLE1BQUEsY0FBYyxDQUFDLGFBQWEsMENBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFELE1BQUEsY0FBYyxDQUFDLGFBQWEsMENBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztZQUNqQyxjQUFjO1lBQ2QsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUVILGNBQWMsQ0FBQyxXQUFXLEdBQUcsd0JBQVUsQ0FBQztRQUN4QyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBDLE1BQUEsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsMENBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELE1BQUEsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsMENBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXhCRCxrQ0F3QkM7QUFFRCxTQUFT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UUFFM0MsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLGdEQUFnRCxDQUFDLENBQUM7UUFFekUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsU0FBUztJQUNULEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFdEQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4dGVuc2lvbkluZm8gfSBmcm9tICcuL211bHRpQ2hhbm5lbCc7XG5pbXBvcnQgeyBtb2RhbFN0eWxlIH0gZnJvbSAnLi9tb2RhbC5zdHlsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RNb2RhbChcbiAgZXh0ZW5zaW9uSW5mb3M6IEV4dGVuc2lvbkluZm9bXSxcbik6IFByb21pc2U8RXh0ZW5zaW9uSW5mbyB8IG51bGw+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPEV4dGVuc2lvbkluZm8gfCBudWxsPigocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgY29uc3Qgc3R5bGVDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgZnVuY3Rpb24gb25Db21wbGV0ZShleHRlbnNpb25JbmZvOiBFeHRlbnNpb25JbmZvIHwgbnVsbCkge1xuICAgICAgcmVzb2x2ZShleHRlbnNpb25JbmZvKTtcbiAgICAgIG1vZGFsQ29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LnJlbW92ZUNoaWxkKG1vZGFsQ29udGFpbmVyKTtcbiAgICAgIHN0eWxlQ29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LnJlbW92ZUNoaWxkKHN0eWxlQ29udGFpbmVyKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gY3JlYXRlTW9kYWxFbGVtZW50KHtcbiAgICAgIGV4dGVuc2lvbkluZm9zLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICB9KTtcblxuICAgIHN0eWxlQ29udGFpbmVyLnRleHRDb250ZW50ID0gbW9kYWxTdHlsZTtcbiAgICBtb2RhbENvbnRhaW5lci5hcHBlbmRDaGlsZChlbGVtZW50KTtcblxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKT8uYXBwZW5kQ2hpbGQoc3R5bGVDb250YWluZXIpO1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKT8uYXBwZW5kQ2hpbGQobW9kYWxDb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTW9kYWxFbGVtZW50KHtcbiAgZXh0ZW5zaW9uSW5mb3MsXG4gIG9uQ29tcGxldGUsXG59OiB7XG4gIGV4dGVuc2lvbkluZm9zOiBFeHRlbnNpb25JbmZvW107XG4gIG9uQ29tcGxldGU6IChleHRlbnNpb25JbmZvOiBFeHRlbnNpb25JbmZvIHwgbnVsbCkgPT4gdm9pZDtcbn0pOiBIVE1MRWxlbWVudCB7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBjb250YWluZXJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBjb250YWluZXIuc2V0QXR0cmlidXRlKCdjbGFzcycsICd3YWxsZXQtc2VsZWN0LW1vZGFsJyk7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIGNvbnRhaW5lciA+IGRpdi53YWxsZXQtc2VsZWN0LW1vZGFsLS1kaW1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbnN0IGRpbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaW0uc2V0QXR0cmlidXRlKCdjbGFzcycsICd3YWxsZXQtc2VsZWN0LW1vZGFsLS1kaW0nKTtcblxuICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGltKTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gY29udGVudCA+IGRpdi53YWxsZXQtc2VsZWN0LW1vZGFsLS1jb250ZW50XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBjb25zdCBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VjdGlvbicpO1xuICBjb250ZW50LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnd2FsbGV0LXNlbGVjdC1tb2RhbC0tY29udGVudCcpO1xuXG4gIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjb250ZW50KTtcblxuICAvLyBoMVxuICBjb25zdCB0aXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJyk7XG4gIHRpdGxlLnRleHRDb250ZW50ID0gJ1NlbGVjdCBhIFdhbGxldCc7XG4gIGNvbnRlbnQuYXBwZW5kQ2hpbGQodGl0bGUpO1xuXG4gIC8vIHVsXG4gIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcpO1xuICBjb250ZW50LmFwcGVuZENoaWxkKGxpc3QpO1xuXG4gIGZvciAoY29uc3QgZXh0ZW5zaW9uSW5mbyBvZiBleHRlbnNpb25JbmZvcykge1xuICAgIGNvbnN0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpO1xuXG4gICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gb25Db21wbGV0ZShleHRlbnNpb25JbmZvKSk7XG5cbiAgICBpdGVtLmFwcGVuZENoaWxkKGJ1dHRvbik7XG5cbiAgICBjb25zdCBpY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIGljb24uc2V0QXR0cmlidXRlKCdjbGFzcycsICd3YWxsZXQtc2VsZWN0LW1vZGFsLS1pY29uJyk7XG5cbiAgICBidXR0b24uYXBwZW5kQ2hpbGQoaWNvbik7XG5cbiAgICBjb25zdCBpY29uSW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgaWNvbkltZy5zZXRBdHRyaWJ1dGUoJ3NyYycsIGV4dGVuc2lvbkluZm8uaWNvbik7XG4gICAgaWNvbkltZy5zZXRBdHRyaWJ1dGUoXG4gICAgICAnYWx0JyxcbiAgICAgIGAke2V4dGVuc2lvbkluZm8ubmFtZX0gWyR7ZXh0ZW5zaW9uSW5mby5pZGVudGlmaWVyfV1gLFxuICAgICk7XG5cbiAgICBpY29uLmFwcGVuZENoaWxkKGljb25JbWcpO1xuXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgZGVzY3JpcHRpb24uc2V0QXR0cmlidXRlKCdjbGFzcycsICd3YWxsZXQtc2VsZWN0LW1vZGFsLS1kZXNjcmlwdGlvbicpO1xuICAgIGRlc2NyaXB0aW9uLnRleHRDb250ZW50ID0gZXh0ZW5zaW9uSW5mby5uYW1lO1xuXG4gICAgYnV0dG9uLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTtcblxuICAgIGNvbnN0IGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsICdzdmcnKTtcbiAgICBhcnJvdy5zZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDI0IDI0Jyk7XG5cbiAgICBidXR0b24uYXBwZW5kQ2hpbGQoYXJyb3cpO1xuXG4gICAgY29uc3QgcGF0aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAncGF0aCcpO1xuICAgIHBhdGguc2V0QXR0cmlidXRlKCdkJywgJ00xMCA2TDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnonKTtcblxuICAgIGFycm93LmFwcGVuZENoaWxkKHBhdGgpO1xuXG4gICAgbGlzdC5hcHBlbmRDaGlsZChpdGVtKTtcbiAgfVxuXG4gIC8vIGV2ZW50c1xuICBkaW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBvbkNvbXBsZXRlKG51bGwpKTtcblxuICByZXR1cm4gY29udGFpbmVyO1xufVxuIl19
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.modalStyle = void 0;
|
|
4
|
+
// language=css
|
|
5
|
+
exports.modalStyle = `
|
|
6
|
+
@keyframes wallet-select-modal--dim-enter {
|
|
7
|
+
0% {
|
|
8
|
+
opacity: 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
100% {
|
|
12
|
+
opacity: 1;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@keyframes wallet-select-modal--content-enter {
|
|
17
|
+
0% {
|
|
18
|
+
opacity: 0;
|
|
19
|
+
transform: scale(0.4);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
100% {
|
|
23
|
+
opacity: 1;
|
|
24
|
+
transform: scale(1);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.wallet-select-modal {
|
|
29
|
+
position: fixed;
|
|
30
|
+
z-index: 100000;
|
|
31
|
+
|
|
32
|
+
color: #212121;
|
|
33
|
+
|
|
34
|
+
left: 0;
|
|
35
|
+
top: 0;
|
|
36
|
+
width: 100vw;
|
|
37
|
+
height: 100vh;
|
|
38
|
+
|
|
39
|
+
font-family: sans-serif;
|
|
40
|
+
|
|
41
|
+
display: grid;
|
|
42
|
+
place-content: center;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.wallet-select-modal > .wallet-select-modal--dim {
|
|
46
|
+
position: fixed;
|
|
47
|
+
z-index: -1;
|
|
48
|
+
|
|
49
|
+
left: 0;
|
|
50
|
+
top: 0;
|
|
51
|
+
width: 100vw;
|
|
52
|
+
height: 100vh;
|
|
53
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
54
|
+
|
|
55
|
+
animation: wallet-select-modal--dim-enter 0.2s ease-in-out;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.wallet-select-modal > .wallet-select-modal--content {
|
|
59
|
+
box-sizing: border-box;
|
|
60
|
+
|
|
61
|
+
border-radius: 8px;
|
|
62
|
+
|
|
63
|
+
background-color: #ffffff;
|
|
64
|
+
box-shadow: 0 4px 18px 3px rgba(0, 0, 0, 0.43);
|
|
65
|
+
|
|
66
|
+
animation: wallet-select-modal--content-enter 0.2s ease-in-out;
|
|
67
|
+
|
|
68
|
+
width: 100vw;
|
|
69
|
+
max-width: 480px;
|
|
70
|
+
padding: 40px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.wallet-select-modal > .wallet-select-modal--content h1 {
|
|
74
|
+
font-size: 20px;
|
|
75
|
+
font-weight: bold;
|
|
76
|
+
|
|
77
|
+
margin: 0 0 32px 0;
|
|
78
|
+
|
|
79
|
+
text-align: center;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.wallet-select-modal > .wallet-select-modal--content ul {
|
|
83
|
+
padding: 0;
|
|
84
|
+
margin: 0;
|
|
85
|
+
list-style: none;
|
|
86
|
+
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-direction: column;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.wallet-select-modal > .wallet-select-modal--content ul li {
|
|
92
|
+
border-top: 1px solid #cfd8ea;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.wallet-select-modal > .wallet-select-modal--content ul li:last-child {
|
|
96
|
+
border-bottom: 1px solid #cfd8ea;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.wallet-select-modal > .wallet-select-modal--content ul button {
|
|
100
|
+
width: 100%;
|
|
101
|
+
height: 66px;
|
|
102
|
+
|
|
103
|
+
border: none;
|
|
104
|
+
background-color: transparent;
|
|
105
|
+
outline: none;
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
|
|
108
|
+
display: flex;
|
|
109
|
+
gap: 10px;
|
|
110
|
+
align-items: center;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.wallet-select-modal > .wallet-select-modal--content ul button:hover {
|
|
114
|
+
background-color: hsl(220, 39%, 86%, 0.25);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--icon {
|
|
118
|
+
display: inline-grid;
|
|
119
|
+
width: 50px;
|
|
120
|
+
height: 50px;
|
|
121
|
+
|
|
122
|
+
place-content: center;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--icon img {
|
|
126
|
+
width: 30px;
|
|
127
|
+
height: 30px;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.wallet-select-modal > .wallet-select-modal--content ul button .wallet-select-modal--description {
|
|
131
|
+
flex: 1;
|
|
132
|
+
text-align: left;
|
|
133
|
+
|
|
134
|
+
font-size: 16px;
|
|
135
|
+
font-weight: 600;
|
|
136
|
+
color: #212121;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.wallet-select-modal > .wallet-select-modal--content ul button svg {
|
|
140
|
+
width: 18px;
|
|
141
|
+
height: 18px;
|
|
142
|
+
|
|
143
|
+
fill: #cfd8ea;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.wallet-select-modal > .wallet-select-modal--content ul button:hover svg {
|
|
147
|
+
fill: #2043b5;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@media (max-width: 450px) {
|
|
151
|
+
.wallet-select-modal {
|
|
152
|
+
place-content: flex-end;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.wallet-select-modal > .wallet-select-modal--content {
|
|
156
|
+
border-bottom-left-radius: 0;
|
|
157
|
+
border-bottom-right-radius: 0;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
`;
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvQGtzYW5na3VrMTAvd2FsbGV0LWNvbnRyb2xsZXIvbW9kdWxlcy9leHRlbnNpb24tcm91dGVyL21vZGFsLnN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGVBQWU7QUFDRixRQUFBLFVBQVUsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EySnpCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBsYW5ndWFnZT1jc3NcbmV4cG9ydCBjb25zdCBtb2RhbFN0eWxlID0gYFxuQGtleWZyYW1lcyB3YWxsZXQtc2VsZWN0LW1vZGFsLS1kaW0tZW50ZXIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICBcbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHdhbGxldC1zZWxlY3QtbW9kYWwtLWNvbnRlbnQtZW50ZXIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7XG4gIH1cbiAgXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG4ud2FsbGV0LXNlbGVjdC1tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMDAwO1xuICBcbiAgY29sb3I6ICMyMTIxMjE7XG4gIFxuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xufVxuXG4ud2FsbGV0LXNlbGVjdC1tb2RhbCA+IC53YWxsZXQtc2VsZWN0LW1vZGFsLS1kaW0ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IC0xO1xuICBcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgXG4gIGFuaW1hdGlvbjogd2FsbGV0LXNlbGVjdC1tb2RhbC0tZGltLWVudGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbi53YWxsZXQtc2VsZWN0LW1vZGFsID4gLndhbGxldC1zZWxlY3QtbW9kYWwtLWNvbnRlbnQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggMThweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQzKTtcbiAgXG4gIGFuaW1hdGlvbjogd2FsbGV0LXNlbGVjdC1tb2RhbC0tY29udGVudC1lbnRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICBcbiAgd2lkdGg6IDEwMHZ3O1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICBwYWRkaW5nOiA0MHB4O1xufVxuXG4ud2FsbGV0LXNlbGVjdC1tb2RhbCA+IC53YWxsZXQtc2VsZWN0LW1vZGFsLS1jb250ZW50IGgxIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgXG4gIG1hcmdpbjogMCAwIDMycHggMDtcbiAgXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLndhbGxldC1zZWxlY3QtbW9kYWwgPiAud2FsbGV0LXNlbGVjdC1tb2RhbC0tY29udGVudCB1bCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi53YWxsZXQtc2VsZWN0LW1vZGFsID4gLndhbGxldC1zZWxlY3QtbW9kYWwtLWNvbnRlbnQgdWwgbGkge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NmZDhlYTtcbn1cblxuLndhbGxldC1zZWxlY3QtbW9kYWwgPiAud2FsbGV0LXNlbGVjdC1tb2RhbC0tY29udGVudCB1bCBsaTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjZmQ4ZWE7XG59XG5cbi53YWxsZXQtc2VsZWN0LW1vZGFsID4gLndhbGxldC1zZWxlY3QtbW9kYWwtLWNvbnRlbnQgdWwgYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNjZweDtcbiAgXG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLndhbGxldC1zZWxlY3QtbW9kYWwgPiAud2FsbGV0LXNlbGVjdC1tb2RhbC0tY29udGVudCB1bCBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjIwLCAzOSUsIDg2JSwgMC4yNSk7XG59XG5cbi53YWxsZXQtc2VsZWN0LW1vZGFsID4gLndhbGxldC1zZWxlY3QtbW9kYWwtLWNvbnRlbnQgdWwgYnV0dG9uIC53YWxsZXQtc2VsZWN0LW1vZGFsLS1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIFxuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi53YWxsZXQtc2VsZWN0LW1vZGFsID4gLndhbGxldC1zZWxlY3QtbW9kYWwtLWNvbnRlbnQgdWwgYnV0dG9uIC53YWxsZXQtc2VsZWN0LW1vZGFsLS1pY29uIGltZyB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG59XG5cbi53YWxsZXQtc2VsZWN0LW1vZGFsID4gLndhbGxldC1zZWxlY3QtbW9kYWwtLWNvbnRlbnQgdWwgYnV0dG9uIC53YWxsZXQtc2VsZWN0LW1vZGFsLS1kZXNjcmlwdGlvbiB7XG4gIGZsZXg6IDE7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIFxuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjMjEyMTIxO1xufVxuXG4ud2FsbGV0LXNlbGVjdC1tb2RhbCA+IC53YWxsZXQtc2VsZWN0LW1vZGFsLS1jb250ZW50IHVsIGJ1dHRvbiBzdmcge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBcbiAgZmlsbDogI2NmZDhlYTtcbn1cblxuLndhbGxldC1zZWxlY3QtbW9kYWwgPiAud2FsbGV0LXNlbGVjdC1tb2RhbC0tY29udGVudCB1bCBidXR0b246aG92ZXIgc3ZnIHtcbiAgZmlsbDogIzIwNDNiNTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ1MHB4KSB7XG4gIC53YWxsZXQtc2VsZWN0LW1vZGFsIHtcbiAgICBwbGFjZS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuICBcbiAgLndhbGxldC1zZWxlY3QtbW9kYWwgPiAud2FsbGV0LXNlbGVjdC1tb2RhbC0tY29udGVudCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxufVxuYDtcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getXplaExtensions = void 0;
|
|
4
|
+
function getXplaExtensions() {
|
|
5
|
+
return Array.isArray(window.xplaWallets)
|
|
6
|
+
? window.xplaWallets
|
|
7
|
+
: window.isXplaExtensionAvailable
|
|
8
|
+
? [
|
|
9
|
+
{
|
|
10
|
+
name: 'Xpla Valut Wallet',
|
|
11
|
+
identifier: 'xplavault',
|
|
12
|
+
icon: 'https://assets.xpla.io/icon/extension/icon.png',
|
|
13
|
+
},
|
|
14
|
+
]
|
|
15
|
+
: [];
|
|
16
|
+
}
|
|
17
|
+
exports.getXplaExtensions = getXplaExtensions;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlDaGFubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0Brc2FuZ2t1azEwL3dhbGxldC1jb250cm9sbGVyL21vZHVsZXMvZXh0ZW5zaW9uLXJvdXRlci9tdWx0aUNoYW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLFNBQWdCLGlCQUFpQjtJQUMvQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVc7UUFDcEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0I7WUFDakMsQ0FBQyxDQUFDO2dCQUNFO29CQUNFLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxXQUFXO29CQUN2QixJQUFJLEVBQUUsZ0RBQWdEO2lCQUN2RDthQUNGO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNULENBQUM7QUFaRCw4Q0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhwbGFXZWJFeHRlbnNpb25Db25uZWN0b3IgfSBmcm9tICdAa3NhbmdrdWsxMC93ZWItZXh0ZW5zaW9uLWludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uSW5mbyB7XG4gIG5hbWU6IHN0cmluZztcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGNvbm5lY3Rvcj86ICgpID0+XG4gICAgfCBYcGxhV2ViRXh0ZW5zaW9uQ29ubmVjdG9yXG4gICAgfCBQcm9taXNlPFhwbGFXZWJFeHRlbnNpb25Db25uZWN0b3I+O1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIHhwbGFXYWxsZXRzOiBFeHRlbnNpb25JbmZvW10gfCB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFhwbGFFeHRlbnNpb25zKCk6IEV4dGVuc2lvbkluZm9bXSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHdpbmRvdy54cGxhV2FsbGV0cylcbiAgICA/IHdpbmRvdy54cGxhV2FsbGV0c1xuICAgIDogd2luZG93LmlzWHBsYUV4dGVuc2lvbkF2YWlsYWJsZVxuICAgID8gW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1hwbGEgVmFsdXQgV2FsbGV0JyxcbiAgICAgICAgICBpZGVudGlmaWVyOiAneHBsYXZhdWx0JyxcbiAgICAgICAgICBpY29uOiAnaHR0cHM6Ly9hc3NldHMueHBsYS5pby9pY29uL2V4dGVuc2lvbi9pY29uLnBuZycsXG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgOiBbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clearSession = exports.storeSession = exports.getStoredSession = exports.storage = void 0;
|
|
4
|
+
exports.storage = typeof window === 'undefined' ? undefined : localStorage;
|
|
5
|
+
const SESSION_KEY = '__xpla_extension_router_session__';
|
|
6
|
+
function getStoredSession() {
|
|
7
|
+
const data = exports.storage === null || exports.storage === void 0 ? void 0 : exports.storage.getItem(SESSION_KEY);
|
|
8
|
+
if (!data) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
const object = JSON.parse(data);
|
|
13
|
+
if ('identifier' in object) {
|
|
14
|
+
return {
|
|
15
|
+
identifier: object['identifier'],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
exports.storage === null || exports.storage === void 0 ? void 0 : exports.storage.removeItem(SESSION_KEY);
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
exports.storage === null || exports.storage === void 0 ? void 0 : exports.storage.removeItem(SESSION_KEY);
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.getStoredSession = getStoredSession;
|
|
29
|
+
function storeSession(session) {
|
|
30
|
+
exports.storage === null || exports.storage === void 0 ? void 0 : exports.storage.setItem(SESSION_KEY, JSON.stringify(session));
|
|
31
|
+
}
|
|
32
|
+
exports.storeSession = storeSession;
|
|
33
|
+
function clearSession() {
|
|
34
|
+
exports.storage === null || exports.storage === void 0 ? void 0 : exports.storage.removeItem(SESSION_KEY);
|
|
35
|
+
}
|
|
36
|
+
exports.clearSession = clearSession;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9Aa3NhbmdrdWsxMC93YWxsZXQtY29udHJvbGxlci9tb2R1bGVzL2V4dGVuc2lvbi1yb3V0ZXIvc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLE9BQU8sR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0FBTWhGLE1BQU0sV0FBVyxHQUFHLG1DQUFtQyxDQUFDO0FBRXhELFNBQWdCLGdCQUFnQjtJQUM5QixNQUFNLElBQUksR0FBRyxlQUFPLGFBQVAsZUFBTyx1QkFBUCxlQUFPLENBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTNDLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLElBQUksWUFBWSxJQUFJLE1BQU0sRUFBRTtZQUMxQixPQUFPO2dCQUNMLFVBQVUsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ2pDLENBQUM7U0FDSDthQUFNO1lBQ0wsZUFBTyxhQUFQLGVBQU8sdUJBQVAsZUFBTyxDQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtLQUNGO0lBQUMsV0FBTTtRQUNOLGVBQU8sYUFBUCxlQUFPLHVCQUFQLGVBQU8sQ0FBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsT0FBTyxTQUFTLENBQUM7S0FDbEI7QUFDSCxDQUFDO0FBdEJELDRDQXNCQztBQUVELFNBQWdCLFlBQVksQ0FBQyxPQUFnQjtJQUMzQyxlQUFPLGFBQVAsZUFBTyx1QkFBUCxlQUFPLENBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUZELG9DQUVDO0FBRUQsU0FBZ0IsWUFBWTtJQUMxQixlQUFPLGFBQVAsZUFBTyx1QkFBUCxlQUFPLENBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFGRCxvQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzdG9yYWdlID0gdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBsb2NhbFN0b3JhZ2U7XG5cbmludGVyZmFjZSBTZXNzaW9uIHtcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG5jb25zdCBTRVNTSU9OX0tFWSA9ICdfX3hwbGFfZXh0ZW5zaW9uX3JvdXRlcl9zZXNzaW9uX18nO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmVkU2Vzc2lvbigpOiBTZXNzaW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGF0YSA9IHN0b3JhZ2U/LmdldEl0ZW0oU0VTU0lPTl9LRVkpO1xuXG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IG9iamVjdCA9IEpTT04ucGFyc2UoZGF0YSk7XG5cbiAgICBpZiAoJ2lkZW50aWZpZXInIGluIG9iamVjdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWRlbnRpZmllcjogb2JqZWN0WydpZGVudGlmaWVyJ10sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9yYWdlPy5yZW1vdmVJdGVtKFNFU1NJT05fS0VZKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICBzdG9yYWdlPy5yZW1vdmVJdGVtKFNFU1NJT05fS0VZKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9yZVNlc3Npb24oc2Vzc2lvbjogU2Vzc2lvbikge1xuICBzdG9yYWdlPy5zZXRJdGVtKFNFU1NJT05fS0VZLCBKU09OLnN0cmluZ2lmeShzZXNzaW9uKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclNlc3Npb24oKSB7XG4gIHN0b3JhZ2U/LnJlbW92ZUl0ZW0oU0VTU0lPTl9LRVkpO1xufVxuIl19
|