@xyo-network/react-chain-provider 1.20.8 → 1.20.10
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/dist/browser/contexts/gateway/Provider.d.ts.map +1 -1
- package/dist/browser/hooks/client/helpers/findCaveat.d.ts +2 -2
- package/dist/browser/hooks/client/helpers/findCaveat.d.ts.map +1 -1
- package/dist/browser/hooks/client/permissions/usePermissions.d.ts +2 -6
- package/dist/browser/hooks/client/permissions/usePermissions.d.ts.map +1 -1
- package/dist/browser/hooks/client/permissions/usePermissionsAccounts.d.ts +2 -1
- package/dist/browser/hooks/client/permissions/usePermissionsAccounts.d.ts.map +1 -1
- package/dist/browser/hooks/client/useClientFromWallet.d.ts +2 -11
- package/dist/browser/hooks/client/useClientFromWallet.d.ts.map +1 -1
- package/dist/browser/hooks/client/useGatewayFromWallet.d.ts +2 -5
- package/dist/browser/hooks/client/useGatewayFromWallet.d.ts.map +1 -1
- package/dist/browser/hooks/gateway/useNetwork.d.ts +1 -1
- package/dist/browser/hooks/gateway/useNetwork.d.ts.map +1 -1
- package/dist/browser/hooks/gateway/useRunner.d.ts +1 -1
- package/dist/browser/hooks/gateway/useRunner.d.ts.map +1 -1
- package/dist/browser/hooks/gateway/useViewer.d.ts +1 -1
- package/dist/browser/hooks/gateway/useViewer.d.ts.map +1 -1
- package/dist/browser/hooks/helpers/getXyoClient.d.ts +2 -5
- package/dist/browser/hooks/helpers/getXyoClient.d.ts.map +1 -1
- package/dist/browser/hooks/useAddressBalance.d.ts.map +1 -1
- package/dist/browser/hooks/useConnectAccount.d.ts +1 -1
- package/dist/browser/index.mjs +200 -382
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/types/GatewayFromWallet.d.ts +2 -7
- package/dist/browser/types/GatewayFromWallet.d.ts.map +1 -1
- package/package.json +12 -11
- package/src/contexts/gateway/Provider.tsx +24 -25
- package/src/contexts/gateway/story/ProviderWithWallet.stories.tsx +20 -25
- package/src/hooks/client/helpers/findCaveat.ts +2 -20
- package/src/hooks/client/permissions/usePermissions.ts +2 -14
- package/src/hooks/client/permissions/usePermissionsAccounts.ts +2 -38
- package/src/hooks/client/useClientFromWallet.ts +2 -98
- package/src/hooks/client/useGatewayFromWallet.ts +2 -30
- package/src/hooks/helpers/getXyoClient.ts +2 -46
- package/src/hooks/useAddressBalance.ts +0 -6
- package/src/types/GatewayFromWallet.ts +2 -8
package/dist/browser/index.mjs
CHANGED
|
@@ -27,9 +27,9 @@ var ConnectedAccount = /* @__PURE__ */ __name(({ address }) => {
|
|
|
27
27
|
// src/components/connected/ConnectAccountsStack.tsx
|
|
28
28
|
import { Alert, AlertTitle, Button, Stack as Stack2, Typography as Typography2 } from "@mui/material";
|
|
29
29
|
import { ButtonEx } from "@xylabs/react-button";
|
|
30
|
-
import { isDefined as
|
|
30
|
+
import { isDefined as isDefined5, isUndefined as isUndefined5 } from "@xylabs/sdk-js";
|
|
31
31
|
import { ErrorRender as ErrorRender2 } from "@xyo-network/react-error";
|
|
32
|
-
import React5, { useEffect as
|
|
32
|
+
import React5, { useEffect as useEffect5 } from "react";
|
|
33
33
|
|
|
34
34
|
// src/hooks/account/helpers/formatAccountBalanceHistory.ts
|
|
35
35
|
import { hexToBigInt } from "@xylabs/sdk-js";
|
|
@@ -155,306 +155,17 @@ var useAccountBalanceHistory = /* @__PURE__ */ __name((address, viewer, maxPage
|
|
|
155
155
|
]);
|
|
156
156
|
}, "useAccountBalanceHistory");
|
|
157
157
|
|
|
158
|
-
// src/hooks/client/useClientFromWallet.ts
|
|
159
|
-
import { isNull as isNull2 } from "@xylabs/sdk-js";
|
|
160
|
-
import { useCallback, useEffect, useSyncExternalStore } from "react";
|
|
161
|
-
|
|
162
|
-
// src/hooks/helpers/getXyoClient.ts
|
|
163
|
-
import { isUndefined as isUndefined2 } from "@xylabs/sdk-js";
|
|
164
|
-
var CLIENT_LISTENER_TIMEOUT = 500;
|
|
165
|
-
var hasXyoClient = /* @__PURE__ */ __name(() => {
|
|
166
|
-
return "client" in globalThis.xyo;
|
|
167
|
-
}, "hasXyoClient");
|
|
168
|
-
var listenForClientInjection = /* @__PURE__ */ __name((onClientReady, timeout, onTimeout) => {
|
|
169
|
-
let resolved = false;
|
|
170
|
-
const listener = /* @__PURE__ */ __name(() => {
|
|
171
|
-
onClientReady();
|
|
172
|
-
resolved = true;
|
|
173
|
-
}, "listener");
|
|
174
|
-
globalThis.addEventListener("xyo:plugin-ready", listener);
|
|
175
|
-
setTimeout(() => {
|
|
176
|
-
if (!resolved) {
|
|
177
|
-
globalThis.removeEventListener("xyo:plugin-ready", listener);
|
|
178
|
-
onTimeout();
|
|
179
|
-
}
|
|
180
|
-
}, timeout);
|
|
181
|
-
}, "listenForClientInjection");
|
|
182
|
-
async function getXyoClient(timeout = CLIENT_LISTENER_TIMEOUT) {
|
|
183
|
-
if (isUndefined2(globalThis.xyo)) {
|
|
184
|
-
return null;
|
|
185
|
-
}
|
|
186
|
-
return hasXyoClient() ? globalThis.xyo.client : await new Promise((resolve) => {
|
|
187
|
-
listenForClientInjection(() => {
|
|
188
|
-
resolve(globalThis.xyo.client);
|
|
189
|
-
}, timeout, () => {
|
|
190
|
-
resolve(null);
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
__name(getXyoClient, "getXyoClient");
|
|
195
|
-
|
|
196
|
-
// src/hooks/helpers/transaction/Confirmation.ts
|
|
197
|
-
import { assertEx as assertEx2, delay, forget, isDefined as isDefined2, isNull } from "@xylabs/sdk-js";
|
|
198
|
-
var TransactionConfirmationStatus = class _TransactionConfirmationStatus {
|
|
199
|
-
static {
|
|
200
|
-
__name(this, "TransactionConfirmationStatus");
|
|
201
|
-
}
|
|
202
|
-
_params;
|
|
203
|
-
active = false;
|
|
204
|
-
constructor(params) {
|
|
205
|
-
this._params = params;
|
|
206
|
-
}
|
|
207
|
-
get exp() {
|
|
208
|
-
return assertEx2(this.transaction[0].exp, () => "exp is not found, transaction is not set");
|
|
209
|
-
}
|
|
210
|
-
get nbf() {
|
|
211
|
-
return assertEx2(this.transaction[0].nbf, () => "nbf is not found, transaction is not set");
|
|
212
|
-
}
|
|
213
|
-
get onStatusUpdate() {
|
|
214
|
-
return this._params.onStatusUpdate;
|
|
215
|
-
}
|
|
216
|
-
get params() {
|
|
217
|
-
return this._params;
|
|
218
|
-
}
|
|
219
|
-
get transaction() {
|
|
220
|
-
return this.params.transaction;
|
|
221
|
-
}
|
|
222
|
-
get txHash() {
|
|
223
|
-
return this.params.txHash;
|
|
224
|
-
}
|
|
225
|
-
get viewer() {
|
|
226
|
-
return this.params.viewer;
|
|
227
|
-
}
|
|
228
|
-
static create(params) {
|
|
229
|
-
return new _TransactionConfirmationStatus(params);
|
|
230
|
-
}
|
|
231
|
-
async start() {
|
|
232
|
-
this.active = true;
|
|
233
|
-
try {
|
|
234
|
-
const currentBlockNumber = await this.viewer.currentBlockNumber();
|
|
235
|
-
while (isDefined2(currentBlockNumber) && this.active) {
|
|
236
|
-
await this.checkBlock(currentBlockNumber);
|
|
237
|
-
await delay(1e3);
|
|
238
|
-
}
|
|
239
|
-
} catch (error) {
|
|
240
|
-
await this.stop();
|
|
241
|
-
forget(this.onStatusUpdate?.({
|
|
242
|
-
error: error instanceof Error ? error : new Error("Unknown error occurred"),
|
|
243
|
-
confirmed: false,
|
|
244
|
-
blockNumber: 0,
|
|
245
|
-
progress: 0,
|
|
246
|
-
remainingBlocks: 0
|
|
247
|
-
}));
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
stop() {
|
|
251
|
-
this.active = false;
|
|
252
|
-
}
|
|
253
|
-
async checkBlock(blockNumber) {
|
|
254
|
-
if (blockNumber < this.nbf) {
|
|
255
|
-
await this.stop();
|
|
256
|
-
forget(this.onStatusUpdate?.({
|
|
257
|
-
error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),
|
|
258
|
-
confirmed: false,
|
|
259
|
-
blockNumber,
|
|
260
|
-
progress: 0,
|
|
261
|
-
remainingBlocks: this.exp - blockNumber
|
|
262
|
-
}));
|
|
263
|
-
}
|
|
264
|
-
if (blockNumber > this.exp) {
|
|
265
|
-
forget(this.onStatusUpdate?.({
|
|
266
|
-
confirmed: false,
|
|
267
|
-
blockNumber,
|
|
268
|
-
progress: 100,
|
|
269
|
-
remainingBlocks: 0
|
|
270
|
-
}));
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
if (blockNumber < this.exp) {
|
|
274
|
-
await this.checkConfirmation(blockNumber);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
async checkConfirmation(blockNumber) {
|
|
278
|
-
const remainingBlocks = this.exp - blockNumber;
|
|
279
|
-
const progress = Math.round((blockNumber - this.nbf) / (this.exp - this.nbf) * 100);
|
|
280
|
-
const tx = await this.viewer.transaction.byHash?.(this.txHash);
|
|
281
|
-
if (isNull(tx)) {
|
|
282
|
-
this.onStatusUpdate?.({
|
|
283
|
-
confirmed: false,
|
|
284
|
-
blockNumber,
|
|
285
|
-
progress,
|
|
286
|
-
remainingBlocks
|
|
287
|
-
});
|
|
288
|
-
} else {
|
|
289
|
-
this.onStatusUpdate?.({
|
|
290
|
-
confirmed: true,
|
|
291
|
-
blockNumber,
|
|
292
|
-
progress,
|
|
293
|
-
remainingBlocks
|
|
294
|
-
});
|
|
295
|
-
await this.stop();
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
// src/hooks/client/useClientFromWallet.ts
|
|
301
|
-
var currentState = {
|
|
302
|
-
client: void 0,
|
|
303
|
-
error: null,
|
|
304
|
-
isLoading: false,
|
|
305
|
-
timedout: false
|
|
306
|
-
};
|
|
307
|
-
var listeners = /* @__PURE__ */ new Set();
|
|
308
|
-
var emitChange = /* @__PURE__ */ __name(() => {
|
|
309
|
-
for (const listener of listeners) listener();
|
|
310
|
-
}, "emitChange");
|
|
311
|
-
var updateState = /* @__PURE__ */ __name((newState) => {
|
|
312
|
-
currentState = {
|
|
313
|
-
...currentState,
|
|
314
|
-
...newState
|
|
315
|
-
};
|
|
316
|
-
emitChange();
|
|
317
|
-
}, "updateState");
|
|
318
|
-
var initializeClient = /* @__PURE__ */ __name(async (timeout) => {
|
|
319
|
-
if (currentState.isLoading || currentState.client) return;
|
|
320
|
-
updateState({
|
|
321
|
-
isLoading: true,
|
|
322
|
-
error: null
|
|
323
|
-
});
|
|
324
|
-
try {
|
|
325
|
-
const client = await getXyoClient(timeout);
|
|
326
|
-
if (client === null) {
|
|
327
|
-
updateState({
|
|
328
|
-
client: null,
|
|
329
|
-
timedout: true,
|
|
330
|
-
isLoading: false
|
|
331
|
-
});
|
|
332
|
-
return;
|
|
333
|
-
}
|
|
334
|
-
updateState({
|
|
335
|
-
client,
|
|
336
|
-
isLoading: false,
|
|
337
|
-
error: null
|
|
338
|
-
});
|
|
339
|
-
} catch (error) {
|
|
340
|
-
console.error("Error initializing XyoClient", error);
|
|
341
|
-
updateState({
|
|
342
|
-
error,
|
|
343
|
-
isLoading: false
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
}, "initializeClient");
|
|
347
|
-
var subscribe = /* @__PURE__ */ __name((listener, timeout) => {
|
|
348
|
-
listeners.add(listener);
|
|
349
|
-
void initializeClient(timeout);
|
|
350
|
-
return () => {
|
|
351
|
-
listeners.delete(listener);
|
|
352
|
-
};
|
|
353
|
-
}, "subscribe");
|
|
354
|
-
var getSnapshot = /* @__PURE__ */ __name(() => currentState, "getSnapshot");
|
|
355
|
-
var useClientFromWallet = /* @__PURE__ */ __name((timeout) => {
|
|
356
|
-
const subscribeWithTimeout = useCallback((listener) => subscribe(listener, timeout), [
|
|
357
|
-
timeout
|
|
358
|
-
]);
|
|
359
|
-
const clientState = useSyncExternalStore(subscribeWithTimeout, getSnapshot);
|
|
360
|
-
useEffect(() => {
|
|
361
|
-
let listener = /* @__PURE__ */ __name(() => {
|
|
362
|
-
updateState({
|
|
363
|
-
client: globalThis.xyo?.client,
|
|
364
|
-
isLoading: false,
|
|
365
|
-
error: null
|
|
366
|
-
});
|
|
367
|
-
emitChange();
|
|
368
|
-
}, "listener");
|
|
369
|
-
if (clientState.timedout && isNull2(clientState.client) && !clientState.isLoading) {
|
|
370
|
-
globalThis.addEventListener("xyo:plugin-ready", listener);
|
|
371
|
-
}
|
|
372
|
-
return () => {
|
|
373
|
-
globalThis.removeEventListener("xyo:plugin-ready", listener);
|
|
374
|
-
};
|
|
375
|
-
});
|
|
376
|
-
return clientState;
|
|
377
|
-
}, "useClientFromWallet");
|
|
378
|
-
var useClient = useClientFromWallet;
|
|
379
|
-
|
|
380
158
|
// src/hooks/client/permissions/usePermissions.ts
|
|
381
|
-
|
|
382
|
-
const { client, isLoading, error, timedout } = useClientFromWallet();
|
|
383
|
-
const permissions = client?.permissions;
|
|
384
|
-
return {
|
|
385
|
-
permissions,
|
|
386
|
-
isLoading,
|
|
387
|
-
error,
|
|
388
|
-
timedout
|
|
389
|
-
};
|
|
390
|
-
}, "usePermissions");
|
|
159
|
+
import { usePermissions } from "@xyo-network/react-chain-client";
|
|
391
160
|
|
|
392
161
|
// src/hooks/client/permissions/usePermissionsAccounts.ts
|
|
393
|
-
import {
|
|
394
|
-
import { isArray, isDefined as isDefined4, isDefinedNotNull, isString } from "@xylabs/sdk-js";
|
|
162
|
+
import { useAccountPermissions } from "@xyo-network/react-chain-client";
|
|
395
163
|
|
|
396
|
-
// src/hooks/client/
|
|
397
|
-
import {
|
|
398
|
-
var findCaveat = /* @__PURE__ */ __name(async (permissions, targetCapability, targetCaveatType) => {
|
|
399
|
-
const existingPermissions = await permissions.getPermissions();
|
|
400
|
-
if (isDefined3(existingPermissions) && existingPermissions.length > 0) {
|
|
401
|
-
const foundPermissions = existingPermissions.find((p) => p.parentCapability === targetCapability);
|
|
402
|
-
if (isDefined3(foundPermissions)) {
|
|
403
|
-
return foundPermissions.caveats?.find((caveat) => caveat.type === targetCaveatType)?.value ?? [];
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
return existingPermissions;
|
|
407
|
-
}, "findCaveat");
|
|
408
|
-
|
|
409
|
-
// src/hooks/client/permissions/usePermissionsAccounts.ts
|
|
410
|
-
var validateRestrictedAccounts = /* @__PURE__ */ __name((restrictedAccounts) => {
|
|
411
|
-
if (isDefined4(restrictedAccounts)) {
|
|
412
|
-
if (isArray(restrictedAccounts) && restrictedAccounts.every(isString)) {
|
|
413
|
-
return restrictedAccounts;
|
|
414
|
-
}
|
|
415
|
-
throw new Error(`Unrecognized format for restrictReturnedAccounts caveat found on permissions.
|
|
416
|
-
|
|
417
|
-
Should be an array of strings: ${JSON.stringify(restrictedAccounts)}`);
|
|
418
|
-
}
|
|
419
|
-
return [];
|
|
420
|
-
}, "validateRestrictedAccounts");
|
|
421
|
-
var useAccountPermissions = /* @__PURE__ */ __name(() => {
|
|
422
|
-
const { permissions, error } = usePermissions();
|
|
423
|
-
return usePromise2(async () => {
|
|
424
|
-
if (isDefinedNotNull(error)) throw error;
|
|
425
|
-
if (isDefined4(permissions)) {
|
|
426
|
-
const restrictedAccounts = await findCaveat(
|
|
427
|
-
permissions,
|
|
428
|
-
// TODO - extract to constant in protocol package
|
|
429
|
-
"xyoWallet_getAccounts",
|
|
430
|
-
"restrictReturnedAccounts"
|
|
431
|
-
);
|
|
432
|
-
return validateRestrictedAccounts(restrictedAccounts);
|
|
433
|
-
}
|
|
434
|
-
}, [
|
|
435
|
-
permissions
|
|
436
|
-
]);
|
|
437
|
-
}, "useAccountPermissions");
|
|
164
|
+
// src/hooks/client/useClientFromWallet.ts
|
|
165
|
+
import { useClient, useClientFromWallet } from "@xyo-network/react-chain-client";
|
|
438
166
|
|
|
439
167
|
// src/hooks/client/useGatewayFromWallet.ts
|
|
440
|
-
import {
|
|
441
|
-
var useGatewayFromWallet = /* @__PURE__ */ __name((gatewayName, timeout) => {
|
|
442
|
-
const { client, isLoading, error, timedout } = useClientFromWallet(timeout);
|
|
443
|
-
const resolveGateway = /* @__PURE__ */ __name(() => {
|
|
444
|
-
if (isNull3(client)) return null;
|
|
445
|
-
if (timedout && !isLoading && isDefined5(gatewayName)) {
|
|
446
|
-
return null;
|
|
447
|
-
}
|
|
448
|
-
return client?.gateways?.[gatewayName];
|
|
449
|
-
}, "resolveGateway");
|
|
450
|
-
return {
|
|
451
|
-
gateway: gatewayName ? resolveGateway() : void 0,
|
|
452
|
-
isLoading,
|
|
453
|
-
error,
|
|
454
|
-
timedout
|
|
455
|
-
};
|
|
456
|
-
}, "useGatewayFromWallet");
|
|
457
|
-
var useGateway = useGatewayFromWallet;
|
|
168
|
+
import { useGateway, useGatewayFromWallet } from "@xyo-network/react-chain-client";
|
|
458
169
|
|
|
459
170
|
// src/contexts/current-block/context.ts
|
|
460
171
|
import { createContextEx } from "@xylabs/react-shared";
|
|
@@ -464,16 +175,16 @@ var XL1CurrentBlockContext = createContextEx();
|
|
|
464
175
|
import React2, { useMemo } from "react";
|
|
465
176
|
|
|
466
177
|
// src/contexts/current-block/usePollCurrentBlock.ts
|
|
467
|
-
import { isDefinedNotNull
|
|
468
|
-
import { startTransition, useEffect
|
|
178
|
+
import { isDefinedNotNull, isUndefinedOrNull } from "@xylabs/sdk-js";
|
|
179
|
+
import { startTransition, useEffect, useState } from "react";
|
|
469
180
|
var DEFAULT_POLL_INTERVAL = 1e4;
|
|
470
181
|
var usePollCurrentBlock = /* @__PURE__ */ __name((viewer, interval = DEFAULT_POLL_INTERVAL, pause = false) => {
|
|
471
182
|
const [currentBlock, setCurrentBlock] = useState(null);
|
|
472
183
|
const [error, setError] = useState();
|
|
473
|
-
|
|
184
|
+
useEffect(() => {
|
|
474
185
|
let isMounted = true;
|
|
475
186
|
const fetchBlock = /* @__PURE__ */ __name(async () => {
|
|
476
|
-
if (
|
|
187
|
+
if (isDefinedNotNull(viewer)) {
|
|
477
188
|
try {
|
|
478
189
|
const block = await viewer.currentBlock();
|
|
479
190
|
if (isMounted) {
|
|
@@ -482,7 +193,7 @@ var usePollCurrentBlock = /* @__PURE__ */ __name((viewer, interval = DEFAULT_POL
|
|
|
482
193
|
if (isUndefinedOrNull(existingBlock)) {
|
|
483
194
|
return block;
|
|
484
195
|
}
|
|
485
|
-
if (
|
|
196
|
+
if (isDefinedNotNull(block) && existingBlock?.[0].block !== block[0].block) {
|
|
486
197
|
return block;
|
|
487
198
|
}
|
|
488
199
|
return existingBlock;
|
|
@@ -552,9 +263,10 @@ import { createContextEx as createContextEx2 } from "@xylabs/react-shared";
|
|
|
552
263
|
var GatewayContext = createContextEx2();
|
|
553
264
|
|
|
554
265
|
// src/contexts/gateway/Provider.tsx
|
|
555
|
-
import { isDefinedNotNull as
|
|
266
|
+
import { isDefinedNotNull as isDefinedNotNull2, isNull } from "@xylabs/sdk-js";
|
|
267
|
+
import { useGatewayFromWallet as useGatewayFromWallet2 } from "@xyo-network/react-chain-client";
|
|
556
268
|
import { ErrorRender } from "@xyo-network/react-error";
|
|
557
|
-
import React4, {
|
|
269
|
+
import React4, { useMemo as useMemo3 } from "react";
|
|
558
270
|
|
|
559
271
|
// src/contexts/in-page-gateways/context.ts
|
|
560
272
|
import { createContextEx as createContextEx3 } from "@xylabs/react-shared";
|
|
@@ -562,12 +274,12 @@ var InPageGatewaysContext = createContextEx3();
|
|
|
562
274
|
|
|
563
275
|
// src/contexts/in-page-gateways/Provider.tsx
|
|
564
276
|
import { DefaultNetworks as DefaultNetworks2 } from "@xyo-network/xl1-sdk";
|
|
565
|
-
import React3, { startTransition as startTransition2, useCallback
|
|
277
|
+
import React3, { startTransition as startTransition2, useCallback, useEffect as useEffect2, useMemo as useMemo2, useState as useState2 } from "react";
|
|
566
278
|
var InPageGatewaysProvider = /* @__PURE__ */ __name(({ account, children }) => {
|
|
567
279
|
const [gateways, setGateways] = useState2({});
|
|
568
280
|
const [errors, setErrors] = useState2({});
|
|
569
281
|
const [previousAccount, setPreviousAccount] = useState2(account);
|
|
570
|
-
const clearAll =
|
|
282
|
+
const clearAll = useCallback(() => {
|
|
571
283
|
setGateways({});
|
|
572
284
|
setErrors({});
|
|
573
285
|
}, []);
|
|
@@ -575,7 +287,7 @@ var InPageGatewaysProvider = /* @__PURE__ */ __name(({ account, children }) => {
|
|
|
575
287
|
clearAll();
|
|
576
288
|
setPreviousAccount(account);
|
|
577
289
|
}
|
|
578
|
-
|
|
290
|
+
useEffect2(() => {
|
|
579
291
|
let cancelled = false;
|
|
580
292
|
const buildAll = /* @__PURE__ */ __name(async () => {
|
|
581
293
|
const results = await Promise.allSettled(DefaultNetworks2.map(async (network) => {
|
|
@@ -632,29 +344,35 @@ var useProvidedInPageGateways = /* @__PURE__ */ __name((required = true) => useC
|
|
|
632
344
|
|
|
633
345
|
// src/contexts/gateway/Provider.tsx
|
|
634
346
|
var GatewayProvider = /* @__PURE__ */ __name(({ gatewayName, children }) => {
|
|
635
|
-
const
|
|
636
|
-
const [gateways, setGateways] = useState3({
|
|
637
|
-
inPageGateway: void 0,
|
|
638
|
-
walletGateway: void 0
|
|
639
|
-
});
|
|
640
|
-
const { gateway: gatewayFromWallet, error: gatewayFromWalletError } = useGatewayFromWallet(gatewayName);
|
|
347
|
+
const { gateway: gatewayFromWallet, error: gatewayFromWalletError } = useGatewayFromWallet2(gatewayName);
|
|
641
348
|
const { gateways: allGateways, errors: allGatewayErrors, clearAll } = useProvidedInPageGateways(true);
|
|
642
349
|
const gatewayFromConfig = gatewayName ? allGateways[gatewayName] : void 0;
|
|
643
350
|
const gatewayFromConfigError = gatewayName ? allGatewayErrors[gatewayName] : void 0;
|
|
644
|
-
|
|
645
|
-
if (
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
351
|
+
const { defaultGateway, gateways } = useMemo3(() => {
|
|
352
|
+
if (isNull(gatewayFromWallet)) {
|
|
353
|
+
return {
|
|
354
|
+
defaultGateway: gatewayFromConfig,
|
|
355
|
+
gateways: {
|
|
356
|
+
inPageGateway: gatewayFromConfig,
|
|
357
|
+
walletGateway: null
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
} else if (isDefinedNotNull2(gatewayFromWallet)) {
|
|
361
|
+
return {
|
|
362
|
+
defaultGateway: gatewayFromWallet,
|
|
363
|
+
gateways: {
|
|
364
|
+
inPageGateway: gatewayFromConfig,
|
|
365
|
+
walletGateway: gatewayFromWallet
|
|
366
|
+
}
|
|
367
|
+
};
|
|
657
368
|
}
|
|
369
|
+
return {
|
|
370
|
+
defaultGateway: void 0,
|
|
371
|
+
gateways: {
|
|
372
|
+
inPageGateway: void 0,
|
|
373
|
+
walletGateway: void 0
|
|
374
|
+
}
|
|
375
|
+
};
|
|
658
376
|
}, [
|
|
659
377
|
gatewayFromConfig,
|
|
660
378
|
gatewayFromWallet
|
|
@@ -704,16 +422,123 @@ var useViewerFromGateway = /* @__PURE__ */ __name(() => {
|
|
|
704
422
|
return defaultGateway?.connection?.viewer;
|
|
705
423
|
}, "useViewerFromGateway");
|
|
706
424
|
|
|
425
|
+
// src/hooks/helpers/getXyoClient.ts
|
|
426
|
+
import { getXyoClient, listenForClientInjection } from "@xyo-network/react-chain-client";
|
|
427
|
+
|
|
428
|
+
// src/hooks/helpers/transaction/Confirmation.ts
|
|
429
|
+
import { assertEx as assertEx2, delay, forget, isDefined as isDefined2, isNull as isNull2 } from "@xylabs/sdk-js";
|
|
430
|
+
var TransactionConfirmationStatus = class _TransactionConfirmationStatus {
|
|
431
|
+
static {
|
|
432
|
+
__name(this, "TransactionConfirmationStatus");
|
|
433
|
+
}
|
|
434
|
+
_params;
|
|
435
|
+
active = false;
|
|
436
|
+
constructor(params) {
|
|
437
|
+
this._params = params;
|
|
438
|
+
}
|
|
439
|
+
get exp() {
|
|
440
|
+
return assertEx2(this.transaction[0].exp, () => "exp is not found, transaction is not set");
|
|
441
|
+
}
|
|
442
|
+
get nbf() {
|
|
443
|
+
return assertEx2(this.transaction[0].nbf, () => "nbf is not found, transaction is not set");
|
|
444
|
+
}
|
|
445
|
+
get onStatusUpdate() {
|
|
446
|
+
return this._params.onStatusUpdate;
|
|
447
|
+
}
|
|
448
|
+
get params() {
|
|
449
|
+
return this._params;
|
|
450
|
+
}
|
|
451
|
+
get transaction() {
|
|
452
|
+
return this.params.transaction;
|
|
453
|
+
}
|
|
454
|
+
get txHash() {
|
|
455
|
+
return this.params.txHash;
|
|
456
|
+
}
|
|
457
|
+
get viewer() {
|
|
458
|
+
return this.params.viewer;
|
|
459
|
+
}
|
|
460
|
+
static create(params) {
|
|
461
|
+
return new _TransactionConfirmationStatus(params);
|
|
462
|
+
}
|
|
463
|
+
async start() {
|
|
464
|
+
this.active = true;
|
|
465
|
+
try {
|
|
466
|
+
const currentBlockNumber = await this.viewer.currentBlockNumber();
|
|
467
|
+
while (isDefined2(currentBlockNumber) && this.active) {
|
|
468
|
+
await this.checkBlock(currentBlockNumber);
|
|
469
|
+
await delay(1e3);
|
|
470
|
+
}
|
|
471
|
+
} catch (error) {
|
|
472
|
+
await this.stop();
|
|
473
|
+
forget(this.onStatusUpdate?.({
|
|
474
|
+
error: error instanceof Error ? error : new Error("Unknown error occurred"),
|
|
475
|
+
confirmed: false,
|
|
476
|
+
blockNumber: 0,
|
|
477
|
+
progress: 0,
|
|
478
|
+
remainingBlocks: 0
|
|
479
|
+
}));
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
stop() {
|
|
483
|
+
this.active = false;
|
|
484
|
+
}
|
|
485
|
+
async checkBlock(blockNumber) {
|
|
486
|
+
if (blockNumber < this.nbf) {
|
|
487
|
+
await this.stop();
|
|
488
|
+
forget(this.onStatusUpdate?.({
|
|
489
|
+
error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),
|
|
490
|
+
confirmed: false,
|
|
491
|
+
blockNumber,
|
|
492
|
+
progress: 0,
|
|
493
|
+
remainingBlocks: this.exp - blockNumber
|
|
494
|
+
}));
|
|
495
|
+
}
|
|
496
|
+
if (blockNumber > this.exp) {
|
|
497
|
+
forget(this.onStatusUpdate?.({
|
|
498
|
+
confirmed: false,
|
|
499
|
+
blockNumber,
|
|
500
|
+
progress: 100,
|
|
501
|
+
remainingBlocks: 0
|
|
502
|
+
}));
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
505
|
+
if (blockNumber < this.exp) {
|
|
506
|
+
await this.checkConfirmation(blockNumber);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
async checkConfirmation(blockNumber) {
|
|
510
|
+
const remainingBlocks = this.exp - blockNumber;
|
|
511
|
+
const progress = Math.round((blockNumber - this.nbf) / (this.exp - this.nbf) * 100);
|
|
512
|
+
const tx = await this.viewer.transaction.byHash?.(this.txHash);
|
|
513
|
+
if (isNull2(tx)) {
|
|
514
|
+
this.onStatusUpdate?.({
|
|
515
|
+
confirmed: false,
|
|
516
|
+
blockNumber,
|
|
517
|
+
progress,
|
|
518
|
+
remainingBlocks
|
|
519
|
+
});
|
|
520
|
+
} else {
|
|
521
|
+
this.onStatusUpdate?.({
|
|
522
|
+
confirmed: true,
|
|
523
|
+
blockNumber,
|
|
524
|
+
progress,
|
|
525
|
+
remainingBlocks
|
|
526
|
+
});
|
|
527
|
+
await this.stop();
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
|
|
707
532
|
// src/hooks/useAddressBalance.ts
|
|
708
|
-
import { usePromise as
|
|
709
|
-
import { isUndefined as
|
|
533
|
+
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
534
|
+
import { isUndefined as isUndefined2, isUndefinedOrNull as isUndefinedOrNull2 } from "@xylabs/sdk-js";
|
|
710
535
|
import { ShiftedBigInt } from "@xyo-network/xl1-sdk";
|
|
711
|
-
import { useMemo as useMemo4, useRef, useState as
|
|
536
|
+
import { useMemo as useMemo4, useRef, useState as useState3 } from "react";
|
|
712
537
|
var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset) => {
|
|
713
|
-
const [balancesResult, setBalancesResult] =
|
|
714
|
-
const [loading, setLoading] =
|
|
715
|
-
const [balancesError, setBalancesError] =
|
|
716
|
-
const [previousReset, setPreviousReset] =
|
|
538
|
+
const [balancesResult, setBalancesResult] = useState3();
|
|
539
|
+
const [loading, setLoading] = useState3(false);
|
|
540
|
+
const [balancesError, setBalancesError] = useState3();
|
|
541
|
+
const [previousReset, setPreviousReset] = useState3(reset);
|
|
717
542
|
if (reset !== previousReset) {
|
|
718
543
|
setPreviousReset(reset);
|
|
719
544
|
setBalancesResult(void 0);
|
|
@@ -721,8 +546,8 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
|
|
|
721
546
|
setLoading(false);
|
|
722
547
|
}
|
|
723
548
|
const balancePromiseRef = useRef(null);
|
|
724
|
-
|
|
725
|
-
if (
|
|
549
|
+
usePromise2(async () => {
|
|
550
|
+
if (isUndefined2(viewer) || isUndefined2(address)) return;
|
|
726
551
|
setLoading(true);
|
|
727
552
|
setBalancesError(void 0);
|
|
728
553
|
const currentPromise = viewer.account.balance.accountBalance(address);
|
|
@@ -746,13 +571,6 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
|
|
|
746
571
|
viewer,
|
|
747
572
|
refresh
|
|
748
573
|
]);
|
|
749
|
-
useMemo4(() => {
|
|
750
|
-
if (balancesError) {
|
|
751
|
-
setLoading(false);
|
|
752
|
-
}
|
|
753
|
-
}, [
|
|
754
|
-
balancesError
|
|
755
|
-
]);
|
|
756
574
|
const shiftedBigInt = useMemo4(() => {
|
|
757
575
|
if (typeof balancesResult !== "bigint") return;
|
|
758
576
|
return new ShiftedBigInt(balancesResult, {
|
|
@@ -787,22 +605,22 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
|
|
|
787
605
|
}, "useAddressBalance");
|
|
788
606
|
|
|
789
607
|
// src/hooks/useConfirmTransactionBase.ts
|
|
790
|
-
import { usePromise as
|
|
791
|
-
import { forget as forget2, isDefined as
|
|
608
|
+
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
609
|
+
import { forget as forget2, isDefined as isDefined3, isHash } from "@xylabs/sdk-js";
|
|
792
610
|
import { PayloadBuilder } from "@xyo-network/sdk-js";
|
|
793
|
-
import { useEffect as
|
|
611
|
+
import { useEffect as useEffect3, useState as useState4 } from "react";
|
|
794
612
|
var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast, onStatusUpdate, runner, viewer) => {
|
|
795
|
-
const [status, setStatus] =
|
|
613
|
+
const [status, setStatus] = useState4();
|
|
796
614
|
const onStatusUpdateLocal = /* @__PURE__ */ __name((newStatus) => {
|
|
797
615
|
setStatus(newStatus);
|
|
798
616
|
onStatusUpdate?.(newStatus);
|
|
799
617
|
}, "onStatusUpdateLocal");
|
|
800
|
-
const [transactionConfirmationStatus, transactionConfirmationError] =
|
|
801
|
-
const hasRunner =
|
|
618
|
+
const [transactionConfirmationStatus, transactionConfirmationError] = usePromise3(async () => {
|
|
619
|
+
const hasRunner = isDefined3(runner);
|
|
802
620
|
if (transaction && viewer) {
|
|
803
621
|
const hash = hasRunner ? await runner.broadcastTransaction(transaction) : await PayloadBuilder.hash(transaction[0]);
|
|
804
622
|
if (isHash(hash)) {
|
|
805
|
-
if (hasRunner &&
|
|
623
|
+
if (hasRunner && isDefined3(onBroadcast)) onBroadcast(hash);
|
|
806
624
|
const params = {
|
|
807
625
|
onStatusUpdate: onStatusUpdateLocal,
|
|
808
626
|
transaction,
|
|
@@ -821,7 +639,7 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
|
|
|
821
639
|
runner,
|
|
822
640
|
viewer
|
|
823
641
|
]);
|
|
824
|
-
|
|
642
|
+
useEffect3(() => {
|
|
825
643
|
return () => {
|
|
826
644
|
if (transactionConfirmationStatus) {
|
|
827
645
|
forget2(transactionConfirmationStatus.stop());
|
|
@@ -840,13 +658,13 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
|
|
|
840
658
|
import { asAddress } from "@xylabs/sdk-js";
|
|
841
659
|
import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
842
660
|
import { MainNetwork } from "@xyo-network/xl1-sdk";
|
|
843
|
-
import { useCallback as
|
|
661
|
+
import { useCallback as useCallback2, useState as useState5 } from "react";
|
|
844
662
|
var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, timeout) => {
|
|
845
|
-
const [connectError, setConnectError] =
|
|
663
|
+
const [connectError, setConnectError] = useState5();
|
|
846
664
|
const { gateway, error, timedout } = useGatewayFromWallet(gatewayName, timeout);
|
|
847
665
|
const [accountPermissions, accountPermissionsError] = useAccountPermissions();
|
|
848
|
-
const [address, setAddress] =
|
|
849
|
-
const connectSigner =
|
|
666
|
+
const [address, setAddress] = useState5();
|
|
667
|
+
const connectSigner = useCallback2(async () => {
|
|
850
668
|
try {
|
|
851
669
|
setConnectError(void 0);
|
|
852
670
|
const assertedGateway = assertEx3(gateway, () => `Gateway ${gatewayName} is not available`);
|
|
@@ -871,11 +689,11 @@ var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, ti
|
|
|
871
689
|
}, "useConnectAccount");
|
|
872
690
|
|
|
873
691
|
// src/hooks/useCurrentBlock.ts
|
|
874
|
-
import { usePromise as
|
|
875
|
-
import { isDefinedNotNull as
|
|
692
|
+
import { usePromise as usePromise4 } from "@xylabs/react-promise";
|
|
693
|
+
import { isDefinedNotNull as isDefinedNotNull3 } from "@xylabs/sdk-js";
|
|
876
694
|
var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
|
|
877
|
-
return
|
|
878
|
-
if (
|
|
695
|
+
return usePromise4(async () => {
|
|
696
|
+
if (isDefinedNotNull3(viewer) && refresh > 0) {
|
|
879
697
|
const block = await viewer.currentBlock();
|
|
880
698
|
return block;
|
|
881
699
|
}
|
|
@@ -886,8 +704,8 @@ var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
|
|
|
886
704
|
}, "useCurrentBlock");
|
|
887
705
|
var useCurrentBlockFromGateway = /* @__PURE__ */ __name((refresh = 1) => {
|
|
888
706
|
const viewer = useViewerFromGateway();
|
|
889
|
-
return
|
|
890
|
-
if (
|
|
707
|
+
return usePromise4(async () => {
|
|
708
|
+
if (isDefinedNotNull3(viewer) && refresh > 0) {
|
|
891
709
|
const block = await viewer.currentBlock();
|
|
892
710
|
return block;
|
|
893
711
|
}
|
|
@@ -898,12 +716,12 @@ var useCurrentBlockFromGateway = /* @__PURE__ */ __name((refresh = 1) => {
|
|
|
898
716
|
}, "useCurrentBlockFromGateway");
|
|
899
717
|
|
|
900
718
|
// src/hooks/useNetwork.ts
|
|
901
|
-
import { isUndefined as
|
|
719
|
+
import { isUndefined as isUndefined3 } from "@xylabs/sdk-js";
|
|
902
720
|
import { SimpleXyoNetwork } from "@xyo-network/xl1-sdk";
|
|
903
721
|
import { useMemo as useMemo5 } from "react";
|
|
904
722
|
var useNetwork = /* @__PURE__ */ __name((id) => {
|
|
905
723
|
const network = useMemo5(() => {
|
|
906
|
-
if (
|
|
724
|
+
if (isUndefined3(id)) return;
|
|
907
725
|
return new SimpleXyoNetwork(id);
|
|
908
726
|
}, [
|
|
909
727
|
id
|
|
@@ -912,10 +730,10 @@ var useNetwork = /* @__PURE__ */ __name((id) => {
|
|
|
912
730
|
}, "useNetwork");
|
|
913
731
|
|
|
914
732
|
// src/hooks/useSigner.ts
|
|
915
|
-
import { usePromise as
|
|
733
|
+
import { usePromise as usePromise5 } from "@xylabs/react-promise";
|
|
916
734
|
import { SimpleXyoSigner } from "@xyo-network/xl1-sdk";
|
|
917
735
|
var useSigner = /* @__PURE__ */ __name((_provider, account) => {
|
|
918
|
-
return
|
|
736
|
+
return usePromise5(async () => account ? await SimpleXyoSigner.create({
|
|
919
737
|
account
|
|
920
738
|
}) : void 0, [
|
|
921
739
|
account
|
|
@@ -923,11 +741,11 @@ var useSigner = /* @__PURE__ */ __name((_provider, account) => {
|
|
|
923
741
|
}, "useSigner");
|
|
924
742
|
|
|
925
743
|
// src/hooks/viewer/useCheckRpc.ts
|
|
926
|
-
import { usePromise as
|
|
927
|
-
import { delay as delay2, isDefined as
|
|
744
|
+
import { usePromise as usePromise6 } from "@xylabs/react-promise";
|
|
745
|
+
import { delay as delay2, isDefined as isDefined4, isUndefined as isUndefined4 } from "@xylabs/sdk-js";
|
|
928
746
|
import { basicRemoteViewerLocator as basicRemoteViewerLocator2 } from "@xyo-network/chain-orchestration";
|
|
929
747
|
import { LocalNetwork, SequenceNetwork, XyoViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
930
|
-
import { useEffect as
|
|
748
|
+
import { useEffect as useEffect4, useState as useState6 } from "react";
|
|
931
749
|
var INTERVAL = 5e3;
|
|
932
750
|
var localRpcEndpoint = `${LocalNetwork.url}/rpc`;
|
|
933
751
|
var sequenceRpcEndpoint = `${SequenceNetwork.url}/rpc`;
|
|
@@ -940,10 +758,10 @@ var useCheckSequenceRpc = /* @__PURE__ */ __name(() => {
|
|
|
940
758
|
return isSequenceRpc;
|
|
941
759
|
}, "useCheckSequenceRpc");
|
|
942
760
|
var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
|
|
943
|
-
const [isLocalProducer, setIsLocalProducer] =
|
|
944
|
-
const [error, setError] =
|
|
945
|
-
const [viewer] =
|
|
946
|
-
if (
|
|
761
|
+
const [isLocalProducer, setIsLocalProducer] = useState6(false);
|
|
762
|
+
const [error, setError] = useState6();
|
|
763
|
+
const [viewer] = usePromise6(async () => {
|
|
764
|
+
if (isUndefined4(endpoint)) return;
|
|
947
765
|
const locator = await basicRemoteViewerLocator2(endpoint, {
|
|
948
766
|
rpc: {
|
|
949
767
|
protocol: "http",
|
|
@@ -955,14 +773,14 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
|
|
|
955
773
|
}, [
|
|
956
774
|
endpoint
|
|
957
775
|
]);
|
|
958
|
-
|
|
959
|
-
if (
|
|
776
|
+
useEffect4(() => {
|
|
777
|
+
if (isUndefined4(viewer)) return;
|
|
960
778
|
void (async () => {
|
|
961
779
|
setError(void 0);
|
|
962
780
|
while (!isLocalProducer) {
|
|
963
781
|
try {
|
|
964
782
|
const block = await viewer.currentBlock();
|
|
965
|
-
setIsLocalProducer(
|
|
783
|
+
setIsLocalProducer(isDefined4(block));
|
|
966
784
|
} catch (err) {
|
|
967
785
|
setError(err);
|
|
968
786
|
setIsLocalProducer(false);
|
|
@@ -981,7 +799,7 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
|
|
|
981
799
|
}, "useCheckRpc");
|
|
982
800
|
|
|
983
801
|
// src/hooks/viewer/ViewerWithDataLake.ts
|
|
984
|
-
import { isNull as
|
|
802
|
+
import { isNull as isNull3 } from "@xylabs/sdk-js";
|
|
985
803
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/sdk-js";
|
|
986
804
|
import { addDataLakePayloads, addDataLakePayloadsToPayloads, DataLakeViewerMoniker, JsonRpcXyoViewer } from "@xyo-network/xl1-sdk";
|
|
987
805
|
var ViewerWithDataLake = class extends JsonRpcXyoViewer {
|
|
@@ -1011,7 +829,7 @@ var ViewerWithDataLake = class extends JsonRpcXyoViewer {
|
|
|
1011
829
|
await PayloadBuilder2.addHashMeta(transaction[0]),
|
|
1012
830
|
await PayloadBuilder2.addHashMeta(transaction[1])
|
|
1013
831
|
] : null;
|
|
1014
|
-
return
|
|
832
|
+
return isNull3(transaction) ? transaction : (await addDataLakePayloads([
|
|
1015
833
|
await PayloadBuilder2.addHashMeta(transaction[0]),
|
|
1016
834
|
await PayloadBuilder2.addHashMeta(transaction[1])
|
|
1017
835
|
], this.dataLakeViewer))[0];
|
|
@@ -1041,16 +859,16 @@ var DefaultNoWalletInstalledComponent = /* @__PURE__ */ __name(() => /* @__PURE_
|
|
|
1041
859
|
}, "Get XL1 Wallet")), "DefaultNoWalletInstalledComponent");
|
|
1042
860
|
var ConnectAccountsStack = /* @__PURE__ */ __name(({ AccountComponent = ConnectedAccount, ConnectComponent = DefaultConnectComponent, NoWalletInstalledComponent = DefaultNoWalletInstalledComponent, onAccountConnected, onCancel, timeout, ...props }) => {
|
|
1043
861
|
const { address, connectSigner, error, timedout } = useConnectAccount(void 0, timeout);
|
|
1044
|
-
|
|
1045
|
-
if (
|
|
862
|
+
useEffect5(() => {
|
|
863
|
+
if (isDefined5(error) && isDefined5(onCancel)) {
|
|
1046
864
|
onCancel();
|
|
1047
865
|
}
|
|
1048
866
|
}, [
|
|
1049
867
|
error,
|
|
1050
868
|
onCancel
|
|
1051
869
|
]);
|
|
1052
|
-
|
|
1053
|
-
if (
|
|
870
|
+
useEffect5(() => {
|
|
871
|
+
if (isDefined5(address) && isDefined5(onAccountConnected)) {
|
|
1054
872
|
onAccountConnected(address);
|
|
1055
873
|
}
|
|
1056
874
|
}, [
|
|
@@ -1062,11 +880,11 @@ var ConnectAccountsStack = /* @__PURE__ */ __name(({ AccountComponent = Connecte
|
|
|
1062
880
|
alignItems: "start",
|
|
1063
881
|
spacing: 2,
|
|
1064
882
|
...props
|
|
1065
|
-
},
|
|
883
|
+
}, isDefined5(address) ? /* @__PURE__ */ React5.createElement(AccountComponent, {
|
|
1066
884
|
address
|
|
1067
|
-
}) : null,
|
|
885
|
+
}) : null, isUndefined5(address) && !timedout ? /* @__PURE__ */ React5.createElement(ConnectComponent, {
|
|
1068
886
|
onClick: /* @__PURE__ */ __name(() => void connectSigner(), "onClick")
|
|
1069
|
-
}, "Connect") : null,
|
|
887
|
+
}, "Connect") : null, isUndefined5(address) && timedout ? /* @__PURE__ */ React5.createElement(NoWalletInstalledComponent, null) : null, /* @__PURE__ */ React5.createElement(ErrorRender2, {
|
|
1070
888
|
error,
|
|
1071
889
|
scope: "ConnectSigner:error"
|
|
1072
890
|
}));
|