@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.
Files changed (124) hide show
  1. package/README.md +7 -0
  2. package/_commonjs/controller.js +704 -0
  3. package/_commonjs/env.js +9 -0
  4. package/_commonjs/exception/isError.js +15 -0
  5. package/_commonjs/exception/mapExtensionTxError.js +46 -0
  6. package/_commonjs/exception/mapWalletConnectError.js +69 -0
  7. package/_commonjs/getChainOptions.js +57 -0
  8. package/_commonjs/index.js +22 -0
  9. package/_commonjs/modules/connect-modal/index.js +80 -0
  10. package/_commonjs/modules/connect-modal/style.js +161 -0
  11. package/_commonjs/modules/extension-router/ExtensionRouter.js +241 -0
  12. package/_commonjs/modules/extension-router/index.js +19 -0
  13. package/_commonjs/modules/extension-router/modal.js +80 -0
  14. package/_commonjs/modules/extension-router/modal.style.js +161 -0
  15. package/_commonjs/modules/extension-router/multiChannel.js +18 -0
  16. package/_commonjs/modules/extension-router/session.js +37 -0
  17. package/_commonjs/modules/extension-router/types.js +16 -0
  18. package/_commonjs/modules/legacy-extension/LegacyExtensionConnector.js +143 -0
  19. package/_commonjs/modules/legacy-extension/createFixedExtension.js +236 -0
  20. package/_commonjs/modules/legacy-extension/index.js +19 -0
  21. package/_commonjs/modules/readonly-wallet/connect.js +24 -0
  22. package/_commonjs/modules/readonly-wallet/index.js +20 -0
  23. package/_commonjs/modules/readonly-wallet/modal.js +123 -0
  24. package/_commonjs/modules/readonly-wallet/modal.style.js +204 -0
  25. package/_commonjs/modules/readonly-wallet/storage.js +40 -0
  26. package/_commonjs/modules/readonly-wallet/types.js +3 -0
  27. package/_commonjs/modules/walletconnect/connect.js +421 -0
  28. package/_commonjs/modules/walletconnect/errors.js +51 -0
  29. package/_commonjs/modules/walletconnect/impl/socket-transport/index.js +204 -0
  30. package/_commonjs/modules/walletconnect/impl/socket-transport/network.js +30 -0
  31. package/_commonjs/modules/walletconnect/index.js +22 -0
  32. package/_commonjs/modules/walletconnect/modal.js +147 -0
  33. package/_commonjs/modules/walletconnect/modal.style.js +138 -0
  34. package/_commonjs/modules/walletconnect/types.js +13 -0
  35. package/_commonjs/operators/getExtensions.js +55 -0
  36. package/_commonjs/operators/toConnectedWallet.js +24 -0
  37. package/_commonjs/operators/toLcdClient.js +15 -0
  38. package/_commonjs/utils/browser-check.js +47 -0
  39. package/_commonjs/utils/checkExtensionReady.js +28 -0
  40. package/_commonjs/utils/sortConnections.js +13 -0
  41. package/_commonjs/verifyBytes.js +19 -0
  42. package/controller.d.ts +220 -0
  43. package/controller.js +697 -0
  44. package/env.d.ts +2 -0
  45. package/env.js +5 -0
  46. package/exception/isError.d.ts +3 -0
  47. package/exception/isError.js +11 -0
  48. package/exception/mapExtensionTxError.d.ts +5 -0
  49. package/exception/mapExtensionTxError.js +41 -0
  50. package/exception/mapWalletConnectError.d.ts +6 -0
  51. package/exception/mapWalletConnectError.js +63 -0
  52. package/getChainOptions.d.ts +3 -0
  53. package/getChainOptions.js +53 -0
  54. package/index.d.ts +6 -0
  55. package/index.js +6 -0
  56. package/modules/connect-modal/index.d.ts +2 -0
  57. package/modules/connect-modal/index.js +76 -0
  58. package/modules/connect-modal/style.d.ts +1 -0
  59. package/modules/connect-modal/style.js +158 -0
  60. package/modules/extension-router/ExtensionRouter.d.ts +43 -0
  61. package/modules/extension-router/ExtensionRouter.js +237 -0
  62. package/modules/extension-router/index.d.ts +2 -0
  63. package/modules/extension-router/index.js +3 -0
  64. package/modules/extension-router/modal.d.ts +2 -0
  65. package/modules/extension-router/modal.js +76 -0
  66. package/modules/extension-router/modal.style.d.ts +1 -0
  67. package/modules/extension-router/modal.style.js +158 -0
  68. package/modules/extension-router/multiChannel.d.ts +13 -0
  69. package/modules/extension-router/multiChannel.js +14 -0
  70. package/modules/extension-router/session.d.ts +8 -0
  71. package/modules/extension-router/session.js +31 -0
  72. package/modules/extension-router/types.d.ts +35 -0
  73. package/modules/extension-router/types.js +13 -0
  74. package/modules/legacy-extension/LegacyExtensionConnector.d.ts +30 -0
  75. package/modules/legacy-extension/LegacyExtensionConnector.js +139 -0
  76. package/modules/legacy-extension/createFixedExtension.d.ts +46 -0
  77. package/modules/legacy-extension/createFixedExtension.js +232 -0
  78. package/modules/legacy-extension/index.d.ts +2 -0
  79. package/modules/legacy-extension/index.js +3 -0
  80. package/modules/readonly-wallet/connect.d.ts +8 -0
  81. package/modules/readonly-wallet/connect.js +19 -0
  82. package/modules/readonly-wallet/index.d.ts +3 -0
  83. package/modules/readonly-wallet/index.js +4 -0
  84. package/modules/readonly-wallet/modal.d.ts +7 -0
  85. package/modules/readonly-wallet/modal.js +119 -0
  86. package/modules/readonly-wallet/modal.style.d.ts +1 -0
  87. package/modules/readonly-wallet/modal.style.js +201 -0
  88. package/modules/readonly-wallet/storage.d.ts +4 -0
  89. package/modules/readonly-wallet/storage.js +34 -0
  90. package/modules/readonly-wallet/types.d.ts +5 -0
  91. package/modules/readonly-wallet/types.js +2 -0
  92. package/modules/walletconnect/connect.d.ts +42 -0
  93. package/modules/walletconnect/connect.js +390 -0
  94. package/modules/walletconnect/errors.d.ts +22 -0
  95. package/modules/walletconnect/errors.js +41 -0
  96. package/modules/walletconnect/impl/socket-transport/index.d.ts +39 -0
  97. package/modules/walletconnect/impl/socket-transport/index.js +199 -0
  98. package/modules/walletconnect/impl/socket-transport/network.d.ts +8 -0
  99. package/modules/walletconnect/impl/socket-transport/network.js +28 -0
  100. package/modules/walletconnect/index.d.ts +5 -0
  101. package/modules/walletconnect/index.js +6 -0
  102. package/modules/walletconnect/modal.d.ts +12 -0
  103. package/modules/walletconnect/modal.js +143 -0
  104. package/modules/walletconnect/modal.style.d.ts +1 -0
  105. package/modules/walletconnect/modal.style.js +135 -0
  106. package/modules/walletconnect/types.d.ts +24 -0
  107. package/modules/walletconnect/types.js +10 -0
  108. package/operators/getExtensions.d.ts +9 -0
  109. package/operators/getExtensions.js +51 -0
  110. package/operators/toConnectedWallet.d.ts +4 -0
  111. package/operators/toConnectedWallet.js +20 -0
  112. package/operators/toLcdClient.d.ts +4 -0
  113. package/operators/toLcdClient.js +11 -0
  114. package/package.json +550 -0
  115. package/utils/browser-check.d.ts +3 -0
  116. package/utils/browser-check.js +38 -0
  117. package/utils/checkExtensionReady.d.ts +6 -0
  118. package/utils/checkExtensionReady.js +24 -0
  119. package/utils/sortConnections.d.ts +2 -0
  120. package/utils/sortConnections.js +9 -0
  121. package/verifyBytes.d.ts +4 -0
  122. package/verifyBytes.js +15 -0
  123. package/~/.npm/_cacache/content-v2/sha512/ad/b5/8c87dfae7c208906a88f1997b323933e7efb4e481bcfdc559cb13199d077e1b40abcb161561a293ca59cd98aae224cd0877555e6e7a2e11021bc55ebedf4 +0 -0
  124. package/~/.npm/_cacache/index-v5/6a/39/c03f62d7353a7cc1411e180ec37c393f9fedcfd081fa567f67bf32e6fb68 +2 -0
@@ -0,0 +1,421 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.connect = exports.connectIfSessionExists = void 0;
30
+ const wallet_types_1 = require("@ksangkuk10/wallet-types");
31
+ const core_1 = __importDefault(require("@walletconnect/core"));
32
+ const cryptoLib = __importStar(require("@walletconnect/iso-crypto"));
33
+ const utils_1 = require("@walletconnect/utils");
34
+ const rxjs_1 = require("rxjs");
35
+ const browser_check_1 = require("../../utils/browser-check");
36
+ const errors_1 = require("./errors");
37
+ const socket_transport_1 = __importDefault(require("./impl/socket-transport"));
38
+ const modal_1 = require("./modal");
39
+ const types_1 = require("./types");
40
+ const WALLETCONNECT_STORAGE_KEY = 'walletconnect';
41
+ function connectIfSessionExists(options = {}) {
42
+ const storedSession = localStorage.getItem(WALLETCONNECT_STORAGE_KEY);
43
+ if (typeof storedSession === 'string') {
44
+ return connect(options, true);
45
+ }
46
+ return null;
47
+ }
48
+ exports.connectIfSessionExists = connectIfSessionExists;
49
+ function connect(options = {}, useCachedSession = false, walletApp) {
50
+ var _a, _b;
51
+ let connector = null;
52
+ let sessionSubject = new rxjs_1.BehaviorSubject({
53
+ status: types_1.WalletConnectSessionStatus.DISCONNECTED,
54
+ });
55
+ const qrcodeModal = (_b = (_a = options.connectorOpts) === null || _a === void 0 ? void 0 : _a.qrcodeModal) !== null && _b !== void 0 ? _b : new modal_1.XplaWalletconnectQrcodeModal(walletApp);
56
+ const connectorOpts = {
57
+ bridge: 'https://walletconnect.xpla.io/',
58
+ qrcodeModal,
59
+ ...options.connectorOpts,
60
+ };
61
+ const pushServerOpts = options.pushServerOpts;
62
+ // ---------------------------------------------
63
+ // event listeners
64
+ // ---------------------------------------------
65
+ function initEvents() {
66
+ if (!connector) {
67
+ throw new Error(`WalletConnect is not defined!`);
68
+ }
69
+ connector.on('session_update', async (error, payload) => {
70
+ if (error)
71
+ throw error;
72
+ sessionSubject.next({
73
+ status: types_1.WalletConnectSessionStatus.CONNECTED,
74
+ peerMeta: payload.params[0].peerMeta,
75
+ xplaAddress: payload.params[0].accounts[0],
76
+ chainId: payload.params[0].chainId,
77
+ });
78
+ console.log('WALLETCONNECT SESSION UPDATED:', payload.params[0]);
79
+ });
80
+ connector.on('connect', (error, payload) => {
81
+ if (error)
82
+ throw error;
83
+ sessionSubject.next({
84
+ status: types_1.WalletConnectSessionStatus.CONNECTED,
85
+ peerMeta: payload.params[0].peerMeta,
86
+ xplaAddress: payload.params[0].accounts[0],
87
+ chainId: payload.params[0].chainId,
88
+ });
89
+ });
90
+ connector.on('disconnect', (error, payload) => {
91
+ if (error)
92
+ throw error;
93
+ sessionSubject.next({
94
+ status: types_1.WalletConnectSessionStatus.DISCONNECTED,
95
+ });
96
+ });
97
+ }
98
+ // ---------------------------------------------
99
+ // initialize
100
+ // ---------------------------------------------
101
+ const cachedSession = localStorage.getItem('walletconnect');
102
+ if (typeof cachedSession === 'string' && useCachedSession) {
103
+ const cachedSessionObject = JSON.parse(cachedSession);
104
+ const clientId = cachedSessionObject.clientId;
105
+ const draftConnector = new core_1.default({
106
+ connectorOpts: {
107
+ ...connectorOpts,
108
+ session: JSON.parse(cachedSession),
109
+ },
110
+ pushServerOpts,
111
+ cryptoLib,
112
+ transport: new socket_transport_1.default({
113
+ protocol: 'wc',
114
+ version: 1,
115
+ url: connectorOpts.bridge,
116
+ subscriptions: [clientId],
117
+ }),
118
+ });
119
+ draftConnector.clientId = clientId;
120
+ connector = draftConnector;
121
+ initEvents();
122
+ sessionSubject.next({
123
+ status: types_1.WalletConnectSessionStatus.CONNECTED,
124
+ peerMeta: draftConnector.peerMeta,
125
+ xplaAddress: draftConnector.accounts[0],
126
+ chainId: draftConnector.chainId,
127
+ });
128
+ }
129
+ else {
130
+ const clientId = (0, utils_1.uuid)();
131
+ const draftConnector = new core_1.default({
132
+ connectorOpts,
133
+ pushServerOpts,
134
+ cryptoLib,
135
+ transport: new socket_transport_1.default({
136
+ protocol: 'wc',
137
+ version: 1,
138
+ url: connectorOpts.bridge,
139
+ subscriptions: [clientId],
140
+ }),
141
+ });
142
+ draftConnector.clientId = clientId;
143
+ connector = draftConnector;
144
+ if (!draftConnector.connected) {
145
+ draftConnector.createSession().catch(console.error);
146
+ if (qrcodeModal instanceof modal_1.XplaWalletconnectQrcodeModal) {
147
+ qrcodeModal.setCloseCallback(() => {
148
+ sessionSubject.next({
149
+ status: types_1.WalletConnectSessionStatus.DISCONNECTED,
150
+ });
151
+ });
152
+ }
153
+ initEvents();
154
+ sessionSubject.next({
155
+ status: types_1.WalletConnectSessionStatus.REQUESTED,
156
+ });
157
+ }
158
+ }
159
+ // ---------------------------------------------
160
+ // methods
161
+ // ---------------------------------------------
162
+ function disconnect() {
163
+ if (connector && connector.connected) {
164
+ try {
165
+ connector.killSession();
166
+ }
167
+ catch (_a) { }
168
+ }
169
+ sessionSubject.next({
170
+ status: types_1.WalletConnectSessionStatus.DISCONNECTED,
171
+ });
172
+ }
173
+ function session() {
174
+ return sessionSubject.asObservable();
175
+ }
176
+ function getLatestSession() {
177
+ return sessionSubject.getValue();
178
+ }
179
+ /**
180
+ * post transaction
181
+ *
182
+ * @param tx transaction data
183
+ * @param walletApp wallet type, default is XPLA Vault
184
+ * @throws { WalletConnectUserDenied }
185
+ * @throws { WalletConnectCreateTxFailed }
186
+ * @throws { WalletConnectTxFailed }
187
+ * @throws { WalletConnectTimeout }
188
+ * @throws { WalletConnectTxUnspecifiedError }
189
+ */
190
+ function post(tx, _walletApp) {
191
+ var _a, _b, _c;
192
+ if (!connector || !connector.connected) {
193
+ throw new Error(`WalletConnect is not connected!`);
194
+ }
195
+ const id = Date.now();
196
+ const serializedTxOptions = {
197
+ msgs: tx.msgs.map((msg) => msg.toJSON()),
198
+ fee: (_a = tx.fee) === null || _a === void 0 ? void 0 : _a.toJSON(),
199
+ memo: tx.memo,
200
+ gas: tx.gas,
201
+ gasPrices: (_b = tx.gasPrices) === null || _b === void 0 ? void 0 : _b.toString(),
202
+ gasAdjustment: (_c = tx.gasAdjustment) === null || _c === void 0 ? void 0 : _c.toString(),
203
+ //account_number: tx.account_number,
204
+ //sequence: tx.sequence,
205
+ feeDenoms: tx.feeDenoms,
206
+ timeoutHeight: tx.timeoutHeight,
207
+ };
208
+ if ((0, browser_check_1.isMobile)()) {
209
+ const payload = btoa(JSON.stringify({
210
+ id,
211
+ handshakeTopic: connector.handshakeTopic,
212
+ method: 'post',
213
+ params: serializedTxOptions,
214
+ }));
215
+ confirm(payload, walletApp);
216
+ }
217
+ return connector
218
+ .sendCustomRequest({
219
+ id,
220
+ method: 'post',
221
+ params: [serializedTxOptions],
222
+ })
223
+ .catch((error) => {
224
+ let throwError = error;
225
+ try {
226
+ const { code, txhash, message, raw_message } = JSON.parse(error.message);
227
+ switch (code) {
228
+ case 1:
229
+ throwError = new errors_1.WalletConnectUserDenied();
230
+ break;
231
+ case 2:
232
+ throwError = new errors_1.WalletConnectCreateTxFailed(message);
233
+ break;
234
+ case 3:
235
+ throwError = new errors_1.WalletConnectTxFailed(txhash, message, raw_message);
236
+ break;
237
+ case 4:
238
+ throwError = new errors_1.WalletConnectTimeout(message);
239
+ break;
240
+ case 99:
241
+ throwError = new errors_1.WalletConnectTxUnspecifiedError(message);
242
+ break;
243
+ }
244
+ }
245
+ catch (_a) {
246
+ throwError = new errors_1.WalletConnectTxUnspecifiedError(error.message);
247
+ }
248
+ throw throwError;
249
+ });
250
+ }
251
+ /**
252
+ * sign transaction
253
+ *
254
+ * @param bytes: Buffer
255
+ * @param walletApp wallet type, default is XPLA Vault
256
+ * @throws { WalletConnectUserDenied }
257
+ * @throws { WalletConnectTimeout }
258
+ * @throws { WalletConnectSignBytesUnspecifiedError }
259
+ */
260
+ function sign(tx, _walletApp) {
261
+ var _a, _b, _c;
262
+ if (!connector || !connector.connected) {
263
+ throw new Error(`WalletConnect is not connected!`);
264
+ }
265
+ const id = Date.now();
266
+ const serializedTxOptions = {
267
+ msgs: tx.msgs.map((msg) => msg.toJSON()),
268
+ fee: (_a = tx.fee) === null || _a === void 0 ? void 0 : _a.toJSON(),
269
+ memo: tx.memo,
270
+ gas: tx.gas,
271
+ gasPrices: (_b = tx.gasPrices) === null || _b === void 0 ? void 0 : _b.toString(),
272
+ gasAdjustment: (_c = tx.gasAdjustment) === null || _c === void 0 ? void 0 : _c.toString(),
273
+ //account_number: tx.account_number,
274
+ //sequence: tx.sequence,
275
+ feeDenoms: tx.feeDenoms,
276
+ timeoutHeight: tx.timeoutHeight,
277
+ sequence: tx.sequence,
278
+ accountNumber: tx.accountNumber,
279
+ signMode: tx.signMode
280
+ };
281
+ if ((0, browser_check_1.isMobile)()) {
282
+ const payload = btoa(JSON.stringify({
283
+ id,
284
+ handshakeTopic: connector.handshakeTopic,
285
+ method: 'sign',
286
+ params: serializedTxOptions,
287
+ }));
288
+ confirm(payload, _walletApp);
289
+ }
290
+ return connector
291
+ .sendCustomRequest({
292
+ id,
293
+ method: 'sign',
294
+ params: [serializedTxOptions],
295
+ })
296
+ .catch((error) => {
297
+ let throwError = error;
298
+ try {
299
+ const { code, txhash, message, raw_message } = JSON.parse(error.message);
300
+ switch (code) {
301
+ case 1:
302
+ throwError = new errors_1.WalletConnectUserDenied();
303
+ break;
304
+ case 2:
305
+ throwError = new errors_1.WalletConnectCreateTxFailed(message);
306
+ break;
307
+ case 3:
308
+ throwError = new errors_1.WalletConnectTxFailed(txhash, message, raw_message);
309
+ break;
310
+ case 4:
311
+ throwError = new errors_1.WalletConnectTimeout(message);
312
+ break;
313
+ case 99:
314
+ throwError = new errors_1.WalletConnectSignUnspecifiedError(message);
315
+ break;
316
+ }
317
+ }
318
+ catch (_a) {
319
+ throwError = new errors_1.WalletConnectSignUnspecifiedError(error.message);
320
+ }
321
+ throw throwError;
322
+ });
323
+ }
324
+ /**
325
+ * signBytes transaction
326
+ *
327
+ * @param bytes: Buffer
328
+ * @param bytes: WalletApp | boolean
329
+ * @throws { WalletConnectUserDenied }
330
+ * @throws { WalletConnectTimeout }
331
+ * @throws { WalletConnectSignBytesUnspecifiedError }
332
+ */
333
+ function signBytes(bytes, _walletApp) {
334
+ if (!connector || !connector.connected) {
335
+ throw new Error(`WalletConnect is not connected!`);
336
+ }
337
+ const id = Date.now();
338
+ if ((0, browser_check_1.isMobile)()) {
339
+ const payload = btoa(JSON.stringify({
340
+ id,
341
+ handshakeTopic: connector.handshakeTopic,
342
+ method: 'signBytes',
343
+ params: bytes,
344
+ }));
345
+ confirm(payload, _walletApp);
346
+ }
347
+ return connector
348
+ .sendCustomRequest({
349
+ id,
350
+ method: 'signBytes',
351
+ params: [bytes],
352
+ })
353
+ .catch((error) => {
354
+ let throwError = error;
355
+ try {
356
+ const { code, message } = JSON.parse(error.message);
357
+ switch (code) {
358
+ case 1:
359
+ throwError = new errors_1.WalletConnectUserDenied();
360
+ break;
361
+ case 4:
362
+ throwError = new errors_1.WalletConnectTimeout(message);
363
+ break;
364
+ case 99:
365
+ throwError = new errors_1.WalletConnectSignBytesUnspecifiedError(message);
366
+ break;
367
+ }
368
+ }
369
+ catch (_a) {
370
+ throwError = new errors_1.WalletConnectSignBytesUnspecifiedError(error.message);
371
+ }
372
+ throw throwError;
373
+ });
374
+ }
375
+ /**
376
+ * mobile confirm
377
+ *
378
+ * @param payload paylaod
379
+ * @param _walletApp wallet type, default is XPLA Vault
380
+ */
381
+ function confirm(payload, _walletApp) {
382
+ if (!_walletApp || typeof _walletApp === 'boolean') {
383
+ if (_walletApp) {
384
+ window.location.href = `c2xvault://walletconnect_confirm/?payload=${payload}`;
385
+ }
386
+ else {
387
+ window.location.href = `xplavault://walletconnect_confirm/?payload=${payload}`;
388
+ }
389
+ }
390
+ else {
391
+ if (_walletApp === wallet_types_1.WalletApp.XPLA_VAULT) {
392
+ window.location.href = `xplavault://walletconnect_confirm/?payload=${payload}`;
393
+ }
394
+ else if (_walletApp === wallet_types_1.WalletApp.XPLA_GAMES) {
395
+ window.location.href = `c2xvault://walletconnect_confirm/?payload=${payload}`;
396
+ }
397
+ else if (_walletApp === wallet_types_1.WalletApp.XPLA_GAMES_NEW) {
398
+ window.location.href = `xgameswallet://walletconnect_confirm/?payload=${payload}`;
399
+ }
400
+ else if (_walletApp === wallet_types_1.WalletApp.XPLAYZ) {
401
+ window.location.href = `xplayz://walletconnect_confirm/?payload=${payload}`;
402
+ }
403
+ else {
404
+ window.location.href = `xplavault://walletconnect_confirm/?payload=${payload}`;
405
+ }
406
+ }
407
+ }
408
+ // ---------------------------------------------
409
+ // return
410
+ // ---------------------------------------------
411
+ return {
412
+ session,
413
+ getLatestSession,
414
+ post,
415
+ sign,
416
+ signBytes,
417
+ disconnect,
418
+ };
419
+ }
420
+ exports.connect = connect;
421
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9Aa3NhbmdrdWsxMC93YWxsZXQtY29udHJvbGxlci9tb2R1bGVzL3dhbGxldGNvbm5lY3QvY29ubmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJEQUFxRDtBQUNyRCwrREFBNEM7QUFDNUMscUVBQXVEO0FBS3ZELGdEQUE0QztBQUM1QywrQkFBbUQ7QUFDbkQsNkRBQXFEO0FBQ3JELHFDQVFrQjtBQUNsQiwrRUFBc0Q7QUFDdEQsbUNBQXVEO0FBQ3ZELG1DQUlpQjtBQTRDakIsTUFBTSx5QkFBeUIsR0FBRyxlQUFlLENBQUM7QUFFbEQsU0FBZ0Isc0JBQXNCLENBQ3BDLFVBQTBDLEVBQUU7SUFFNUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRXRFLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxFQUFFO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQVZELHdEQVVDO0FBRUQsU0FBZ0IsT0FBTyxDQUNyQixVQUEwQyxFQUFFLEVBQzVDLG1CQUE0QixLQUFLLEVBQ2pDLFNBQStCOztJQUUvQixJQUFJLFNBQVMsR0FBcUIsSUFBSSxDQUFDO0lBRXZDLElBQUksY0FBYyxHQUNoQixJQUFJLHNCQUFlLENBQXVCO1FBQ3hDLE1BQU0sRUFBRSxrQ0FBMEIsQ0FBQyxZQUFZO0tBQ2hELENBQUMsQ0FBQztJQUVMLE1BQU0sV0FBVyxHQUNmLE1BQUEsTUFBQSxPQUFPLENBQUMsYUFBYSwwQ0FBRSxXQUFXLG1DQUFJLElBQUksb0NBQTRCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFcEYsTUFBTSxhQUFhLEdBQTBCO1FBQzNDLE1BQU0sRUFB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QUFDLElBQUksR0FBRyw4Q0FBOEMsT0FBTyxFQUFFLENBQUM7YUFDaEY7aUJBQU0sSUFBSSxVQUFVLEtBQUssd0JBQVMsQ0FBQyxVQUFVLEVBQUU7Z0JBQzlDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLDZDQUE2QyxPQUFPLEVBQUUsQ0FBQzthQUMvRTtpQkFBTSxJQUFJLFVBQVUsS0FBSyx3QkFBUyxDQUFDLGNBQWMsRUFBRTtnQkFDbEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsaURBQWlELE9BQU8sRUFBRSxDQUFDO2FBQ25GO2lCQUFNLElBQUksVUFBVSxLQUFLLHdCQUFTLENBQUMsTUFBTSxFQUFFO2dCQUMxQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRywyQ0FBMkMsT0FBTyxFQUFFLENBQUM7YUFDN0U7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsOENBQThDLE9BQU8sRUFBRSxDQUFDO2FBQ2hGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELFNBQVM7SUFDVCxnREFBZ0Q7SUFDaEQsT0FBTztRQUNMLE9BQU87UUFDUCxnQkFBZ0I7UUFDaEIsSUFBSTtRQUNKLElBQUk7UUFDSixTQUFTO1FBQ1QsVUFBVTtLQUNYLENBQUM7QUFDSixDQUFDO0FBcmJELDBCQXFiQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyZWF0ZVR4T3B0aW9ucywgU2lnbk1vZGUgfSBmcm9tICdAeHBsYS94cGxhLmpzJztcbmltcG9ydCB7IFdhbGxldEFwcCB9IGZyb20gJ0Brc2FuZ2t1azEwL3dhbGxldC10eXBlcyc7XG5pbXBvcnQgQ29ubmVjdG9yIGZyb20gJ0B3YWxsZXRjb25uZWN0L2NvcmUnO1xuaW1wb3J0ICogYXMgY3J5cHRvTGliIGZyb20gJ0B3YWxsZXRjb25uZWN0L2lzby1jcnlwdG8nO1xuaW1wb3J0IHtcbiAgSVB1c2hTZXJ2ZXJPcHRpb25zLFxuICBJV2FsbGV0Q29ubmVjdE9wdGlvbnMsXG59IGZyb20gJ0B3YWxsZXRjb25uZWN0L3R5cGVzJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICdAd2FsbGV0Y29ubmVjdC91dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYnJvd3Nlci1jaGVjayc7XG5pbXBvcnQge1xuICBXYWxsZXRDb25uZWN0Q3JlYXRlVHhGYWlsZWQsXG4gIFdhbGxldENvbm5lY3RUaW1lb3V0LFxuICBXYWxsZXRDb25uZWN0VHhGYWlsZWQsXG4gIFdhbGxldENvbm5lY3RUeFVuc3BlY2lmaWVkRXJyb3IsXG4gIFdhbGxldENvbm5lY3RVc2VyRGVuaWVkLFxuICBXYWxsZXRDb25uZWN0U2lnblVuc3BlY2lmaWVkRXJyb3IsXG4gIFdhbGxldENvbm5lY3RTaWduQnl0ZXNVbnNwZWNpZmllZEVycm9yXG59IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCBTb2NrZXRUcmFuc3BvcnQgZnJvbSAnLi9pbXBsL3NvY2tldC10cmFuc3BvcnQnO1xuaW1wb3J0IHsgWHBsYVdhbGxldGNvbm5lY3RRcmNvZGVNb2RhbCB9IGZyb20gJy4vbW9kYWwnO1xuaW1wb3J0IHtcbiAgV2FsbGV0Q29ubmVjdFNlc3Npb24sXG4gIFdhbGxldENvbm5lY3RTZXNzaW9uU3RhdHVzLFxuICBXYWxsZXRDb25uZWN0VHhSZXN1bHQsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgV2ViRXh0ZW5zaW9uU2lnblBheWxvYWQsXG4gIFdlYkV4dGVuc2lvblNpZ25CeXRlc1BheWxvYWQsXG59IGZyb20gJ0Brc2FuZ2t1azEwL3dlYi1leHRlbnNpb24taW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRDb25uZWN0Q29udHJvbGxlck9wdGlvbnMge1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBgbmV3IFdhbGxldENvbm5lY3QoY29ubmVjdG9yT3B0cylgXG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqIGBgYGpzXG4gICAqIHtcbiAgICogICBicmlkZ2U6ICdodHRwczovL3dhbGxldGNvbm5lY3QueHBsYS5pby8nLFxuICAgKiAgIHFyY29kZU1vZGFsOiBuZXcgWHBsYVdhbGxldGNvbm5lY3RRcmNvZGVNb2RhbCgpLFxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY29ubmVjdG9yT3B0cz86IElXYWxsZXRDb25uZWN0T3B0aW9ucztcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBgbmV3IFdhbGxldENvbm5lY3QoXywgcHVzaFNlcnZlck9wdHMpYFxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHB1c2hTZXJ2ZXJPcHRzPzogSVB1c2hTZXJ2ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdhbGxldENvbm5lY3RDb250cm9sbGVyIHtcbiAgc2Vzc2lvbjogKCkgPT4gT2JzZXJ2YWJsZTxXYWxsZXRDb25uZWN0U2Vzc2lvbj47XG4gIGdldExhdGVzdFNlc3Npb246ICgpID0+IFdhbGxldENvbm5lY3RTZXNzaW9uO1xuICBwb3N0OiAodHg6IENyZWF0ZVR4T3B0aW9ucywgX3dhbGxldEFwcD86IFdhbGxldEFwcCB8IGJvb2xlYW4pID0+IFByb21pc2U8V2FsbGV0Q29ubmVjdFR4UmVzdWx0PjtcbiAgc2lnbjogKFxuICAgIHR4OiBDcmVhdGVUeE9wdGlvbnMgJiB7XG4gICAgICBzZXF1ZW5jZT86IG51bWJlcjtcbiAgICAgIGFjY291bnROdW1iZXI/OiBudW1iZXI7XG4gICAgICBzaWduTW9kZT86IFNpZ25Nb2RlO1xuICAgIH0sIFxuICAgIF93YWxsZXRBcHA/OiBXYWxsZXRBcHAgfCBib29sZWFuXG4gICkgPT4gUHJvbWlzZTxXZWJFeHRlbnNpb25TaWduUGF5bG9hZD47XG4gIHNpZ25CeXRlczogKGJ5dGVzOiBCdWZmZXIsIF93YWxsZXRBcHA/OiBXYWxsZXRBcHAgfCBib29sZWFuKSA9PiBQcm9taXNlPFdlYkV4dGVuc2lvblNpZ25CeXRlc1BheWxvYWQ+O1xuICBkaXNjb25uZWN0OiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBXQUxMRVRDT05ORUNUX1NUT1JBR0VfS0VZID0gJ3dhbGxldGNvbm5lY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdElmU2Vzc2lvbkV4aXN0cyhcbiAgb3B0aW9uczogV2FsbGV0Q29ubmVjdENvbnRyb2xsZXJPcHRpb25zID0ge30sXG4pOiBXYWxsZXRDb25uZWN0Q29udHJvbGxlciB8IG51bGwge1xuICBjb25zdCBzdG9yZWRTZXNzaW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oV0FMTEVUQ09OTkVDVF9TVE9SQUdFX0tFWSk7XG5cbiAgaWYgKHR5cGVvZiBzdG9yZWRTZXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBjb25uZWN0KG9wdGlvbnMsIHRydWUpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25uZWN0KFxuICBvcHRpb25zOiBXYWxsZXRDb25uZWN0Q29udHJvbGxlck9wdGlvbnMgPSB7fSxcbiAgdXNlQ2FjaGVkU2Vzc2lvbjogYm9vbGVhbiA9IGZhbHNlLFxuICB3YWxsZXRBcHA/OiBXYWxsZXRBcHAgfCBib29sZWFuXG4pOiBXYWxsZXRDb25uZWN0Q29udHJvbGxlciB7XG4gIGxldCBjb25uZWN0b3I6IENvbm5lY3RvciB8IG51bGwgPSBudWxsO1xuXG4gIGxldCBzZXNzaW9uU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFdhbGxldENvbm5lY3RTZXNzaW9uPiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxXYWxsZXRDb25uZWN0U2Vzc2lvbj4oe1xuICAgICAgc3RhdHVzOiBXYWxsZXRDb25uZWN0U2Vzc2lvblN0YXR1cy5ESVNDT05ORUNURUQsXG4gICAgfSk7XG5cbiAgY29uc3QgcXJjb2RlTW9kYWwgPVxuICAgIG9wdGlvbnMuY29ubmVjdG9yT3B0cz8ucXJjb2RlTW9kYWwgPz8gbmV3IFhwbGFXYWxsZXRjb25uZWN0UXJjb2RlTW9kYWwod2FsbGV0QXBwKTtcblxuICBjb25zdCBjb25uZWN0b3JPcHRzOiBJV2FsbGV0Q29ubmVjdE9wdGlvbnMgPSB7XG4gICAgYnJpZGdlOiAnaHR0cHM6Ly93YWxsZXRjb25uZWN0LnhwbGEuaW8vJyxcbiAgICBxcmNvZGVNb2RhbCxcbiAgICAuLi5vcHRpb25zLmNvbm5lY3Rvck9wdHMsXG4gIH07XG5cbiAgY29uc3QgcHVzaFNlcnZlck9wdHM6IElQdXNoU2VydmVyT3B0aW9ucyB8IHVuZGVmaW5lZCA9IG9wdGlvbnMucHVzaFNlcnZlck9wdHM7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIGV2ZW50IGxpc3RlbmVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgZnVuY3Rpb24gaW5pdEV2ZW50cygpIHtcbiAgICBpZiAoIWNvbm5lY3Rvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBXYWxsZXRDb25uZWN0IGlzIG5vdCBkZWZpbmVkIWApO1xuICAgIH1cblxuICAgIGNvbm5lY3Rvci5vbignc2Vzc2lvbl91cGRhdGUnLCBhc3luYyAoZXJyb3IsIHBheWxvYWQpID0+IHtcbiAgICAgIGlmIChlcnJvcikgdGhyb3cgZXJyb3I7XG5cbiAgICAgIHNlc3Npb25TdWJqZWN0Lm5leHQoe1xuICAgICAgICBzdGF0dXM6IFdhbGxldENvbm5lY3RTZXNzaW9uU3RhdHVzLkNPTk5FQ1RFRCxcbiAgICAgICAgcGVlck1ldGE6IHBheWxvYWQucGFyYW1zWzBdLnBlZXJNZXRhLFxuICAgICAgICB4cGxhQWRkcmVzczogcGF5bG9hZC5wYXJhbXNbMF0uYWNjb3VudHNbMF0sXG4gICAgICAgIGNoYWluSWQ6IHBheWxvYWQucGFyYW1zWzBdLmNoYWluSWQsXG4gICAgICB9KTtcblxuICAgICAgY29uc29sZS5sb2coJ1dBTExFVENPTk5FQ1QgU0VTU0lPTiBVUERBVEVEOicsIHBheWxvYWQucGFyYW1zWzBdKTtcbiAgICB9KTtcblxuICAgIGNvbm5lY3Rvci5vbignY29ubmVjdCcsIChlcnJvciwgcGF5bG9hZCkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB0aHJvdyBlcnJvcjtcblxuICAgICAgc2Vzc2lvblN1YmplY3QubmV4dCh7XG4gICAgICAgIHN0YXR1czogV2FsbGV0Q29ubmVjdFNlc3Npb25TdGF0dXMuQ09OTkVDVEVELFxuICAgICAgICBwZWVyTWV0YTogcGF5bG9hZC5wYXJhbXNbMF0ucGVlck1ldGEsXG4gICAgICAgIHhwbGFBZGRyZXNzOiBwYXlsb2FkLnBhcmFtc1swXS5hY2NvdW50c1swXSxcbiAgICAgICAgY2hhaW5JZDogcGF5bG9hZC5wYXJhbXNbMF0uY2hhaW5JZCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29ubmVjdG9yLm9uKCdkaXNjb25uZWN0JywgKGVycm9yLCBwYXlsb2FkKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHRocm93IGVycm9yO1xuXG4gICAgICBzZXNzaW9uU3ViamVjdC5uZXh0KHtcbiAgICAgICAgc3RhdHVzOiBXYWxsZXRDb25uZWN0U2Vzc2lvblN0YXR1cy5ESVNDT05ORUNURUQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBpbml0aWFsaXplXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBjb25zdCBjYWNoZWRTZXNzaW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dhbGxldGNvbm5lY3QnKTtcblxuICBpZiAodHlwZW9mIGNhY2hlZFNlc3Npb24gPT09ICdzdHJpbmcnICYmIHVzZUNhY2hlZFNlc3Npb24pIHtcbiAgICBjb25zdCBjYWNoZWRTZXNzaW9uT2JqZWN0ID0gSlNPTi5wYXJzZShjYWNoZWRTZXNzaW9uKTtcbiAgICBjb25zdCBjbGllbnRJZCA9IGNhY2hlZFNlc3Npb25PYmplY3QuY2xpZW50SWQ7XG4gICAgY29uc3QgZHJhZnRDb25uZWN0b3IgPSBuZXcgQ29ubmVjdG9yKHtcbiAgICAgIGNvbm5lY3Rvck9wdHM6IHtcbiAgICAgICAgLi4uY29ubmVjdG9yT3B0cyxcbiAgICAgICAgc2Vzc2lvbjogSlNPTi5wYXJzZShjYWNoZWRTZXNzaW9uKSxcbiAgICAgIH0sXG4gICAgICBwdXNoU2VydmVyT3B0cyxcbiAgICAgIGNyeXB0b0xpYixcbiAgICAgIHRyYW5zcG9ydDogbmV3IFNvY2tldFRyYW5zcG9ydCh7XG4gICAgICAgIHByb3RvY29sOiAnd2MnLFxuICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICB1cmw6IGNvbm5lY3Rvck9wdHMuYnJpZGdlISxcbiAgICAgICAgc3Vic2NyaXB0aW9uczogW2NsaWVudElkXSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGRyYWZ0Q29ubmVjdG9yLmNsaWVudElkID0gY2xpZW50SWQ7XG5cbiAgICBjb25uZWN0b3IgPSBkcmFmdENvbm5lY3RvcjtcblxuICAgIGluaXRFdmVudHMoKTtcblxuICAgIHNlc3Npb25TdWJqZWN0Lm5leHQoe1xuICAgICAgc3RhdHVzOiBXYWxsZXRDb25uZWN0U2Vzc2lvblN0YXR1cy5DT05ORUNURUQsXG4gICAgICBwZWVyTWV0YTogZHJhZnRDb25uZWN0b3IucGVlck1ldGEhLFxuICAgICAgeHBsYUFkZHJlc3M6IGRyYWZ0Q29ubmVjdG9yLmFjY291bnRzWzBdLFxuICAgICAgY2hhaW5JZDogZHJhZnRDb25uZWN0b3IuY2hhaW5JZCxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjbGllbnRJZCA9IHV1aWQoKTtcbiAgICBjb25zdCBkcmFmdENvbm5lY3RvciA9IG5ldyBDb25uZWN0b3Ioe1xuICAgICAgY29ubmVjdG9yT3B0cyxcbiAgICAgIHB1c2hTZXJ2ZXJPcHRzLFxuICAgICAgY3J5cHRvTGliLFxuICAgICAgdHJhbnNwb3J0OiBuZXcgU29ja2V0VHJhbnNwb3J0KHtcbiAgICAgICAgcHJvdG9jb2w6ICd3YycsXG4gICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgIHVybDogY29ubmVjdG9yT3B0cy5icmlkZ2UhLFxuICAgICAgICBzdWJzY3JpcHRpb25zOiBbY2xpZW50SWRdLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgZHJhZnRDb25uZWN0b3IuY2xpZW50SWQgPSBjbGllbnRJZDtcblxuICAgIGNvbm5lY3RvciA9IGRyYWZ0Q29ubmVjdG9yO1xuXG4gICAgaWYgKCFkcmFmdENvbm5lY3Rvci5jb25uZWN0ZWQpIHtcbiAgICAgIGRyYWZ0Q29ubmVjdG9yLmNyZWF0ZVNlc3Npb24oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcblxuICAgICAgaWYgKHFyY29kZU1vZGFsIGluc3RhbmNlb2YgWHBsYVdhbGxldGNvbm5lY3RRcmNvZGVNb2RhbCkge1xuICAgICAgICBxcmNvZGVNb2RhbC5zZXRDbG9zZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICBzZXNzaW9uU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAgIHN0YXR1czogV2FsbGV0Q29ubmVjdFNlc3Npb25TdGF0dXMuRElTQ09OTkVDVEVELFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaW5pdEV2ZW50cygpO1xuXG4gICAgICBzZXNzaW9uU3ViamVjdC5uZXh0KHtcbiAgICAgICAgc3RhdHVzOiBXYWxsZXRDb25uZWN0U2Vzc2lvblN0YXR1cy5SRVFVRVNURUQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gbWV0aG9kc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgZnVuY3Rpb24gZGlzY29ubmVjdCgpIHtcbiAgICBpZiAoY29ubmVjdG9yICYmIGNvbm5lY3Rvci5jb25uZWN0ZWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbm5lY3Rvci5raWxsU2Vzc2lvbigpO1xuICAgICAgfSBjYXRjaCB7fVxuICAgIH1cblxuICAgIHNlc3Npb25TdWJqZWN0Lm5leHQoe1xuICAgICAgc3RhdHVzOiBXYWxsZXRDb25uZWN0U2Vzc2lvblN0YXR1cy5ESVNDT05ORUNURUQsXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBzZXNzaW9uKCk6IE9ic2VydmFibGU8V2FsbGV0Q29ubmVjdFNlc3Npb24+IHtcbiAgICByZXR1cm4gc2Vzc2lvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRMYXRlc3RTZXNzaW9uKCk6IFdhbGxldENvbm5lY3RTZXNzaW9uIHtcbiAgICByZXR1cm4gc2Vzc2lvblN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwb3N0IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB0eCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqIEBwYXJhbSB3YWxsZXRBcHAgd2FsbGV0IHR5cGUsIGRlZmF1bHQgaXMgWFBMQSBWYXVsdFxuICAgKiBAdGhyb3dzIHsgV2FsbGV0Q29ubmVjdFVzZXJEZW5pZWQgfVxuICAgKiBAdGhyb3dzIHsgV2FsbGV0Q29ubmVjdENyZWF0ZVR4RmFpbGVkIH1cbiAgICogQHRocm93cyB7IFdhbGxldENvbm5lY3RUeEZhaWxlZCB9XG4gICAqIEB0aHJvd3MgeyBXYWxsZXRDb25uZWN0VGltZW91dCB9XG4gICAqIEB0aHJvd3MgeyBXYWxsZXRDb25uZWN0VHhVbnNwZWNpZmllZEVycm9yIH1cbiAgICovXG4gIGZ1bmN0aW9uIHBvc3QodHg6IENyZWF0ZVR4T3B0aW9ucywgX3dhbGxldEFwcD86IFdhbGxldEFwcCB8IGJvb2xlYW4pOiBQcm9taXNlPFdhbGxldENvbm5lY3RUeFJlc3VsdD4ge1xuICAgIGlmICghY29ubmVjdG9yIHx8ICFjb25uZWN0b3IuY29ubmVjdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdhbGxldENvbm5lY3QgaXMgbm90IGNvbm5lY3RlZCFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCBzZXJpYWxpemVkVHhPcHRpb25zID0ge1xuICAgICAgbXNnczogdHgubXNncy5tYXAoKG1zZykgPT4gbXNnLnRvSlNPTigpKSxcbiAgICAgIGZlZTogdHguZmVlPy50b0pTT04oKSxcbiAgICAgIG1lbW86IHR4Lm1lbW8sXG4gICAgICBnYXM6IHR4LmdhcyxcbiAgICAgIGdhc1ByaWNlczogdHguZ2FzUHJpY2VzPy50b1N0cmluZygpLFxuICAgICAgZ2FzQWRqdXN0bWVudDogdHguZ2FzQWRqdXN0bWVudD8udG9TdHJpbmcoKSxcbiAgICAgIC8vYWNjb3VudF9udW1iZXI6IHR4LmFjY291bnRfbnVtYmVyLFxuICAgICAgLy9zZXF1ZW5jZTogdHguc2VxdWVuY2UsXG4gICAgICBmZWVEZW5vbXM6IHR4LmZlZURlbm9tcyxcbiAgICAgIHRpbWVvdXRIZWlnaHQ6IHR4LnRpbWVvdXRIZWlnaHQsXG4gICAgfTtcblxuICAgIGlmIChpc01vYmlsZSgpKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYnRvYShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGhhbmRzaGFrZVRvcGljOiBjb25uZWN0b3IuaGFuZHNoYWtlVG9waWMsXG4gICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgcGFyYW1zOiBzZXJpYWxpemVkVHhPcHRpb25zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGNvbmZpcm0ocGF5bG9hZCwgd2FsbGV0QXBwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29ubmVjdG9yXG4gICAgICAuc2VuZEN1c3RvbVJlcXVlc3Qoe1xuICAgICAgICBpZCxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIHBhcmFtczogW3NlcmlhbGl6ZWRUeE9wdGlvbnNdLFxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgbGV0IHRocm93RXJyb3IgPSBlcnJvcjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHsgY29kZSwgdHhoYXNoLCBtZXNzYWdlLCByYXdfbWVzc2FnZSB9ID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzd2l0Y2ggKGNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgdGhyb3dFcnJvciA9IG5ldyBXYWxsZXRDb25uZWN0VXNlckRlbmllZCgpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgdGhyb3dFcnJvciA9IG5ldyBXYWxsZXRDb25uZWN0Q3JlYXRlVHhGYWlsZWQobWVzc2FnZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICB0aHJvd0Vycm9yID0gbmV3IFdhbGxldENvbm5lY3RUeEZhaWxlZChcbiAgICAgICAgICAgICAgICB0eGhhc2gsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICByYXdfbWVzc2FnZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgIHRocm93RXJyb3IgPSBuZXcgV2FsbGV0Q29ubmVjdFRpbWVvdXQobWVzc2FnZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA5OTpcbiAgICAgICAgICAgICAgdGhyb3dFcnJvciA9IG5ldyBXYWxsZXRDb25uZWN0VHhVbnNwZWNpZmllZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHRocm93RXJyb3IgPSBuZXcgV2FsbGV0Q29ubmVjdFR4VW5zcGVjaWZpZWRFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IHRocm93RXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzaWduIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBieXRlczogQnVmZmVyXG4gICAqIEBwYXJhbSB3YWxsZXRBcHAgd2FsbGV0IHR5cGUsIGRlZmF1bHQgaXMgWFBMQSBWYXVsdFxuICAgKiBAdGhyb3dzIHsgV2FsbGV0Q29ubmVjdFVzZXJEZW5pZWQgfVxuICAgKiBAdGhyb3dzIHsgV2FsbGV0Q29ubmVjdFRpbWVvdXQgfVxuICAgKiBAdGhyb3dzIHsgV2FsbGV0Q29ubmVjdFNpZ25CeXRlc1Vuc3BlY2lmaWVkRXJyb3IgfVxuICAgKi9cbiAgZnVuY3Rpb24gc2lnbihcbiAgICB0eDogQ3JlYXRlVHhPcHRpb25zICAmIHtcbiAgICAgIHNlcXVlbmNlPzogbnVtYmVyO1xuICAgICAgYWNjb3VudE51bWJlcj86IG51bWJlcjtcbiAgICAgIHNpZ25Nb2RlPzogU2lnbk1vZGU7XG4gICAgfSwgXG4gICAgX3dhbGxldEFwcD86IFdhbGxldEFwcCB8IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxXZWJFeHRlbnNpb25TaWduUGF5bG9hZD4ge1xuICAgIGlmICghY29ubmVjdG9yIHx8ICFjb25uZWN0b3IuY29ubmVjdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdhbGxldENvbm5lY3QgaXMgbm90IGNvbm5lY3RlZCFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCBzZXJpYWxpemVkVHhPcHRpb25zID0ge1xuICAgICAgbXNnczogdHgubXNncy5tYXAoKG1zZykgPT4gbXNnLnRvSlNPTigpKSxcbiAgICAgIGZlZTogdHguZmVlPy50b0pTT04oKSxcbiAgICAgIG1lbW86IHR4Lm1lbW8sXG4gICAgICBnYXM6IHR4LmdhcyxcbiAgICAgIGdhc1ByaWNlczogdHguZ2FzUHJpY2VzPy50b1N0cmluZygpLFxuICAgICAgZ2FzQWRqdXN0bWVudDogdHguZ2FzQWRqdXN0bWVudD8udG9TdHJpbmcoKSxcbiAgICAgIC8vYWNjb3VudF9udW1iZXI6IHR4LmFjY291bnRfbnVtYmVyLFxuICAgICAgLy9zZXF1ZW5jZTogdHguc2VxdWVuY2UsXG4gICAgICBmZWVEZW5vbXM6IHR4LmZlZURlbm9tcyxcbiAgICAgIHRpbWVvdXRIZWlnaHQ6IHR4LnRpbWVvdXRIZWlnaHQsXG4gICAgICBzZXF1ZW5jZTogdHguc2VxdWVuY2UsXG4gICAgICBhY2NvdW50TnVtYmVyOiB0eC5hY2NvdW50TnVtYmVyLFxuICAgICAgc2lnbk1vZGU6IHR4LnNpZ25Nb2RlXG4gICAgfTtcblxuICAgIGlmIChpc01vYmlsZSgpKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gYnRvYShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGhhbmRzaGFrZVRvcGljOiBjb25uZWN0b3IuaGFuZHNoYWtlVG9waWMsXG4gICAgICAgICAgbWV0aG9kOiAnc2lnbicsXG4gICAgICAgICAgcGFyYW1zOiBzZXJpYWxpemVkVHhPcHRpb25zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICBjb25maXJtKHBheWxvYWQsIF93YWxsZXRBcHApO1xuICAgIH1cblxuICAgIHJldHVybiBjb25uZWN0b3JcbiAgICAgIC5zZW5kQ3VzdG9tUmVxdWVzdCh7XG4gICAgICAgIGlkLFxuICAgICAgICBtZXRob2Q6ICdzaWduJyxcbiAgICAgICAgcGFyYW1zOiBbc2VyaWFsaXplZFR4T3B0aW9uc10sXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBsZXQgdGhyb3dFcnJvciA9IGVycm9yO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgeyBjb2RlLCB0eGhhc2gsIG1lc3NhZ2UsIHJhd19tZXNzYWdlIH0gPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICB0aHJvd0Vycm9yID0gbmV3IFdhbGxldENvbm5lY3RVc2VyRGVuaWVkKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICB0aHJvd0Vycm9yID0gbmV3IFdhbGxldENvbm5lY3RDcmVhdGVUeEZhaWxlZChtZXNzYWdlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgIHRocm93RXJyb3IgPSBuZXcgV2FsbGV0Q29ubmVjdFR4RmFpbGVkKFxuICAgICAgICAgICAgICAgIHR4aGFzaCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIHJhd19tZXNzYWdlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgdGhyb3dFcnJvciA9IG5ldyBXYWxsZXRDb25uZWN0VGltZW91dChtZXNzYWdlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDk5OlxuICAgICAgICAgICAgICB0aHJvd0Vycm9yID0gbmV3IFdhbGxldENvbm5lY3RTaWduVW5zcGVjaWZpZWRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICB0aHJvd0Vycm9yID0gbmV3IFdhbGxldENvbm5lY3RTaWduVW5zcGVjaWZpZWRFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IHRocm93RXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzaWduQnl0ZXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIGJ5dGVzOiBCdWZmZXJcbiAgICogQHBhcmFtIGJ5dGVzOiBXYWxsZXRBcHAgfCBib29sZWFuXG4gICAqIEB0aHJvd3MgeyBXYWxsZXRDb25uZWN0VXNlckRlbmllZCB9XG4gICAqIEB0aHJvd3MgeyBXYWxsZXRDb25uZWN0VGltZW91dCB9XG4gICAqIEB0aHJvd3MgeyBXYWxsZXRDb25uZWN0U2lnbkJ5dGVzVW5zcGVjaWZpZWRFcnJvciB9XG4gICAqL1xuICBmdW5jdGlvbiBzaWduQnl0ZXMoYnl0ZXM6IEJ1ZmZlciwgX3dhbGxldEFwcD86IFdhbGxldEFwcCB8IGJvb2xlYW4pOiBQcm9taXNlPFdlYkV4dGVuc2lvblNpZ25CeXRlc1BheWxvYWQ+IHtcbiAgICBpZiAoIWNvbm5lY3RvciB8fCAhY29ubmVjdG9yLmNvbm5lY3RlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBXYWxsZXRDb25uZWN0IGlzIG5vdCBjb25uZWN0ZWQhYCk7XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSBEYXRlLm5vdygpO1xuXG4gICAgaWYgKGlzTW9iaWxlKCkpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBidG9hKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgaGFuZHNoYWtlVG9waWM6IGNvbm5lY3Rvci5oYW5kc2hha2VUb3BpYyxcbiAgICAgICAgICBtZXRob2Q6ICdzaWduQnl0ZXMnLFxuICAgICAgICAgIHBhcmFtczogYnl0ZXMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgY29uZmlybShwYXlsb2FkLCBfd2FsbGV0QXBwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29ubmVjdG9yXG4gICAgICAuc2VuZEN1c3RvbVJlcXVlc3Qoe1xuICAgICAgICBpZCxcbiAgICAgICAgbWV0aG9kOiAnc2lnbkJ5dGVzJyxcbiAgICAgICAgcGFyYW1zOiBbYnl0ZXNdLFxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgbGV0IHRocm93RXJyb3IgPSBlcnJvcjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHsgY29kZSwgbWVzc2FnZSB9ID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICB0aHJvd0Vycm9yID0gbmV3IFdhbGxldENvbm5lY3RVc2VyRGVuaWVkKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICB0aHJvd0Vycm9yID0gbmV3IFdhbGxldENvbm5lY3RUaW1lb3V0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgOTk6XG4gICAgICAgICAgICAgIHRocm93RXJyb3IgPSBuZXcgV2FsbGV0Q29ubmVjdFNpZ25CeXRlc1Vuc3BlY2lmaWVkRXJyb3IobWVzc2FnZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgdGhyb3dFcnJvciA9IG5ldyBXYWxsZXRDb25uZWN0U2lnbkJ5dGVzVW5zcGVjaWZpZWRFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IHRocm93RXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBtb2JpbGUgY29uZmlybVxuICAgKiBcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bGFvZFxuICAgKiBAcGFyYW0gX3dhbGxldEFwcCB3YWxsZXQgdHlwZSwgZGVmYXVsdCBpcyBYUExBIFZhdWx0XG4gICAqL1xuICBmdW5jdGlvbiBjb25maXJtKHBheWxvYWQ6IHN0cmluZywgX3dhbGxldEFwcD86IFdhbGxldEFwcCB8IGJvb2xlYW4pIHtcbiAgICBpZiAoIV93YWxsZXRBcHAgfHwgdHlwZW9mIF93YWxsZXRBcHAgPT09ICdib29sZWFuJykge1xuICAgICAgaWYgKF93YWxsZXRBcHApIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgYzJ4dmF1bHQ6Ly93YWxsZXRjb25uZWN0X2NvbmZpcm0vP3BheWxvYWQ9JHtwYXlsb2FkfWA7ICBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYHhwbGF2YXVsdDovL3dhbGxldGNvbm5lY3RfY29uZmlybS8/cGF5bG9hZD0ke3BheWxvYWR9YDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKF93YWxsZXRBcHAgPT09IFdhbGxldEFwcC5YUExBX1ZBVUxUKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYHhwbGF2YXVsdDovL3dhbGxldGNvbm5lY3RfY29uZmlybS8/cGF5bG9hZD0ke3BheWxvYWR9YDtcbiAgICAgIH0gZWxzZSBpZiAoX3dhbGxldEFwcCA9PT0gV2FsbGV0QXBwLlhQTEFfR0FNRVMpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgYzJ4dmF1bHQ6Ly93YWxsZXRjb25uZWN0X2NvbmZpcm0vP3BheWxvYWQ9JHtwYXlsb2FkfWA7ICBcbiAgICAgIH0gZWxzZSBpZiAoX3dhbGxldEFwcCA9PT0gV2FsbGV0QXBwLlhQTEFfR0FNRVNfTkVXKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYHhnYW1lc3dhbGxldDovL3dhbGxldGNvbm5lY3RfY29uZmlybS8/cGF5bG9hZD0ke3BheWxvYWR9YDtcbiAgICAgIH0gZWxzZSBpZiAoX3dhbGxldEFwcCA9PT0gV2FsbGV0QXBwLlhQTEFZWikge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGB4cGxheXo6Ly93YWxsZXRjb25uZWN0X2NvbmZpcm0vP3BheWxvYWQ9JHtwYXlsb2FkfWA7ICBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYHhwbGF2YXVsdDovL3dhbGxldGNvbm5lY3RfY29uZmlybS8/cGF5bG9hZD0ke3BheWxvYWR9YDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gcmV0dXJuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICByZXR1cm4ge1xuICAgIHNlc3Npb24sXG4gICAgZ2V0TGF0ZXN0U2Vzc2lvbixcbiAgICBwb3N0LFxuICAgIHNpZ24sXG4gICAgc2lnbkJ5dGVzLFxuICAgIGRpc2Nvbm5lY3QsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletConnectSignBytesUnspecifiedError = exports.WalletConnectSignUnspecifiedError = exports.WalletConnectTxUnspecifiedError = exports.WalletConnectTimeout = exports.WalletConnectTxFailed = exports.WalletConnectCreateTxFailed = exports.WalletConnectUserDenied = void 0;
4
+ class WalletConnectUserDenied extends Error {
5
+ }
6
+ exports.WalletConnectUserDenied = WalletConnectUserDenied;
7
+ class WalletConnectCreateTxFailed extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'WalletConnectCreateTxFailed';
11
+ }
12
+ }
13
+ exports.WalletConnectCreateTxFailed = WalletConnectCreateTxFailed;
14
+ class WalletConnectTxFailed extends Error {
15
+ constructor(txhash, message, raw_message) {
16
+ super(message);
17
+ this.txhash = txhash;
18
+ this.raw_message = raw_message;
19
+ this.name = 'WalletConnectTxFailed';
20
+ }
21
+ }
22
+ exports.WalletConnectTxFailed = WalletConnectTxFailed;
23
+ class WalletConnectTimeout extends Error {
24
+ constructor(message) {
25
+ super(message);
26
+ this.name = 'WalletConnectTimeout';
27
+ }
28
+ }
29
+ exports.WalletConnectTimeout = WalletConnectTimeout;
30
+ class WalletConnectTxUnspecifiedError extends Error {
31
+ constructor(message) {
32
+ super(message);
33
+ this.name = 'WalletConnectTxUnspecifiedError';
34
+ }
35
+ }
36
+ exports.WalletConnectTxUnspecifiedError = WalletConnectTxUnspecifiedError;
37
+ class WalletConnectSignUnspecifiedError extends Error {
38
+ constructor(message) {
39
+ super(message);
40
+ this.name = 'WalletConnectSignUnspecifiedError';
41
+ }
42
+ }
43
+ exports.WalletConnectSignUnspecifiedError = WalletConnectSignUnspecifiedError;
44
+ class WalletConnectSignBytesUnspecifiedError extends Error {
45
+ constructor(message) {
46
+ super(message);
47
+ this.name = 'WalletConnectSignBytesUnspecifiedError';
48
+ }
49
+ }
50
+ exports.WalletConnectSignBytesUnspecifiedError = WalletConnectSignBytesUnspecifiedError;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0Brc2FuZ2t1azEwL3dhbGxldC1jb250cm9sbGVyL21vZHVsZXMvd2FsbGV0Y29ubmVjdC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSx1QkFBd0IsU0FBUSxLQUFLO0NBQUc7QUFBckQsMERBQXFEO0FBRXJELE1BQWEsMkJBQTRCLFNBQVEsS0FBSztJQUNwRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFMRCxrRUFLQztBQUVELE1BQWEscUJBQXNCLFNBQVEsS0FBSztJQUM5QyxZQUNrQixNQUFjLEVBQzlCLE9BQWUsRUFDQyxXQUFnQjtRQUVoQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFKQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRWQsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFHaEMsSUFBSSxDQUFDLElBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFURCxzREFTQztBQUVELE1BQWEsb0JBQXFCLFNBQVEsS0FBSztJQUM3QyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFMRCxvREFLQztBQUVELE1BQWEsK0JBQWdDLFNBQVEsS0FBSztJQUN4RCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFMRCwwRUFLQztBQUVELE1BQWEsaUNBQWtDLFNBQVEsS0FBSztJQUMxRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxtQ0FBbUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFMRCw4RUFLQztBQUVELE1BQWEsc0NBQXVDLFNBQVEsS0FBSztJQUMvRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyx3Q0FBd0MsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUFMRCx3RkFLQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBXYWxsZXRDb25uZWN0VXNlckRlbmllZCBleHRlbmRzIEVycm9yIHt9XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRDb25uZWN0Q3JlYXRlVHhGYWlsZWQgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdXYWxsZXRDb25uZWN0Q3JlYXRlVHhGYWlsZWQnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRDb25uZWN0VHhGYWlsZWQgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0eGhhc2g6IHN0cmluZyxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHJhd19tZXNzYWdlOiBhbnksXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdXYWxsZXRDb25uZWN0VHhGYWlsZWQnO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRDb25uZWN0VGltZW91dCBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1dhbGxldENvbm5lY3RUaW1lb3V0JztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgV2FsbGV0Q29ubmVjdFR4VW5zcGVjaWZpZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1dhbGxldENvbm5lY3RUeFVuc3BlY2lmaWVkRXJyb3InO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRDb25uZWN0U2lnblVuc3BlY2lmaWVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdXYWxsZXRDb25uZWN0U2lnblVuc3BlY2lmaWVkRXJyb3InO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRDb25uZWN0U2lnbkJ5dGVzVW5zcGVjaWZpZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1dhbGxldENvbm5lY3RTaWduQnl0ZXNVbnNwZWNpZmllZEVycm9yJztcbiAgfVxufSJdfQ==