@xyo-network/react-chain-provider 1.20.9 → 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.
Files changed (27) hide show
  1. package/dist/browser/contexts/gateway/Provider.d.ts.map +1 -1
  2. package/dist/browser/hooks/client/helpers/findCaveat.d.ts +2 -2
  3. package/dist/browser/hooks/client/helpers/findCaveat.d.ts.map +1 -1
  4. package/dist/browser/hooks/client/permissions/usePermissions.d.ts +2 -6
  5. package/dist/browser/hooks/client/permissions/usePermissions.d.ts.map +1 -1
  6. package/dist/browser/hooks/client/permissions/usePermissionsAccounts.d.ts +2 -1
  7. package/dist/browser/hooks/client/permissions/usePermissionsAccounts.d.ts.map +1 -1
  8. package/dist/browser/hooks/client/useClientFromWallet.d.ts +2 -11
  9. package/dist/browser/hooks/client/useClientFromWallet.d.ts.map +1 -1
  10. package/dist/browser/hooks/client/useGatewayFromWallet.d.ts +2 -5
  11. package/dist/browser/hooks/client/useGatewayFromWallet.d.ts.map +1 -1
  12. package/dist/browser/hooks/helpers/getXyoClient.d.ts +2 -5
  13. package/dist/browser/hooks/helpers/getXyoClient.d.ts.map +1 -1
  14. package/dist/browser/hooks/useConnectAccount.d.ts +1 -1
  15. package/dist/browser/index.mjs +167 -348
  16. package/dist/browser/index.mjs.map +1 -1
  17. package/dist/browser/types/GatewayFromWallet.d.ts +2 -7
  18. package/dist/browser/types/GatewayFromWallet.d.ts.map +1 -1
  19. package/package.json +6 -5
  20. package/src/contexts/gateway/Provider.tsx +1 -1
  21. package/src/hooks/client/helpers/findCaveat.ts +2 -20
  22. package/src/hooks/client/permissions/usePermissions.ts +2 -14
  23. package/src/hooks/client/permissions/usePermissionsAccounts.ts +2 -38
  24. package/src/hooks/client/useClientFromWallet.ts +2 -98
  25. package/src/hooks/client/useGatewayFromWallet.ts +2 -30
  26. package/src/hooks/helpers/getXyoClient.ts +2 -46
  27. package/src/types/GatewayFromWallet.ts +2 -8
@@ -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 isDefined8, isUndefined as isUndefined6 } from "@xylabs/sdk-js";
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 useEffect6 } from "react";
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
- var usePermissions = /* @__PURE__ */ __name(() => {
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");
391
-
392
- // src/hooks/client/permissions/usePermissionsAccounts.ts
393
- import { usePromise as usePromise2 } from "@xylabs/react-promise";
394
- import { isArray, isDefined as isDefined4, isDefinedNotNull, isString } from "@xylabs/sdk-js";
395
-
396
- // src/hooks/client/helpers/findCaveat.ts
397
- import { isDefined as isDefined3 } from "@xylabs/sdk-js";
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");
159
+ import { usePermissions } from "@xyo-network/react-chain-client";
408
160
 
409
161
  // 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.
162
+ import { useAccountPermissions } from "@xyo-network/react-chain-client";
416
163
 
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 { isDefined as isDefined5, isNull as isNull3 } from "@xylabs/sdk-js";
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 as isDefinedNotNull2, isUndefinedOrNull } from "@xylabs/sdk-js";
468
- import { startTransition, useEffect as useEffect2, useState } from "react";
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
- useEffect2(() => {
184
+ useEffect(() => {
474
185
  let isMounted = true;
475
186
  const fetchBlock = /* @__PURE__ */ __name(async () => {
476
- if (isDefinedNotNull2(viewer)) {
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 (isDefinedNotNull2(block) && existingBlock?.[0].block !== block[0].block) {
196
+ if (isDefinedNotNull(block) && existingBlock?.[0].block !== block[0].block) {
486
197
  return block;
487
198
  }
488
199
  return existingBlock;
@@ -552,7 +263,8 @@ 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 isDefinedNotNull3, isNull as isNull4 } from "@xylabs/sdk-js";
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
269
  import React4, { useMemo as useMemo3 } from "react";
558
270
 
@@ -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 as useCallback2, useEffect as useEffect3, useMemo as useMemo2, useState as useState2 } from "react";
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 = useCallback2(() => {
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
- useEffect3(() => {
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,12 +344,12 @@ 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 { gateway: gatewayFromWallet, error: gatewayFromWalletError } = useGatewayFromWallet(gatewayName);
347
+ const { gateway: gatewayFromWallet, error: gatewayFromWalletError } = useGatewayFromWallet2(gatewayName);
636
348
  const { gateways: allGateways, errors: allGatewayErrors, clearAll } = useProvidedInPageGateways(true);
637
349
  const gatewayFromConfig = gatewayName ? allGateways[gatewayName] : void 0;
638
350
  const gatewayFromConfigError = gatewayName ? allGatewayErrors[gatewayName] : void 0;
639
351
  const { defaultGateway, gateways } = useMemo3(() => {
640
- if (isNull4(gatewayFromWallet)) {
352
+ if (isNull(gatewayFromWallet)) {
641
353
  return {
642
354
  defaultGateway: gatewayFromConfig,
643
355
  gateways: {
@@ -645,7 +357,7 @@ var GatewayProvider = /* @__PURE__ */ __name(({ gatewayName, children }) => {
645
357
  walletGateway: null
646
358
  }
647
359
  };
648
- } else if (isDefinedNotNull3(gatewayFromWallet)) {
360
+ } else if (isDefinedNotNull2(gatewayFromWallet)) {
649
361
  return {
650
362
  defaultGateway: gatewayFromWallet,
651
363
  gateways: {
@@ -710,9 +422,116 @@ var useViewerFromGateway = /* @__PURE__ */ __name(() => {
710
422
  return defaultGateway?.connection?.viewer;
711
423
  }, "useViewerFromGateway");
712
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
+
713
532
  // src/hooks/useAddressBalance.ts
714
- import { usePromise as usePromise3 } from "@xylabs/react-promise";
715
- import { isUndefined as isUndefined3, isUndefinedOrNull as isUndefinedOrNull2 } from "@xylabs/sdk-js";
533
+ import { usePromise as usePromise2 } from "@xylabs/react-promise";
534
+ import { isUndefined as isUndefined2, isUndefinedOrNull as isUndefinedOrNull2 } from "@xylabs/sdk-js";
716
535
  import { ShiftedBigInt } from "@xyo-network/xl1-sdk";
717
536
  import { useMemo as useMemo4, useRef, useState as useState3 } from "react";
718
537
  var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset) => {
@@ -727,8 +546,8 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
727
546
  setLoading(false);
728
547
  }
729
548
  const balancePromiseRef = useRef(null);
730
- usePromise3(async () => {
731
- if (isUndefined3(viewer) || isUndefined3(address)) return;
549
+ usePromise2(async () => {
550
+ if (isUndefined2(viewer) || isUndefined2(address)) return;
732
551
  setLoading(true);
733
552
  setBalancesError(void 0);
734
553
  const currentPromise = viewer.account.balance.accountBalance(address);
@@ -786,22 +605,22 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
786
605
  }, "useAddressBalance");
787
606
 
788
607
  // src/hooks/useConfirmTransactionBase.ts
789
- import { usePromise as usePromise4 } from "@xylabs/react-promise";
790
- import { forget as forget2, isDefined as isDefined6, isHash } from "@xylabs/sdk-js";
608
+ import { usePromise as usePromise3 } from "@xylabs/react-promise";
609
+ import { forget as forget2, isDefined as isDefined3, isHash } from "@xylabs/sdk-js";
791
610
  import { PayloadBuilder } from "@xyo-network/sdk-js";
792
- import { useEffect as useEffect4, useState as useState4 } from "react";
611
+ import { useEffect as useEffect3, useState as useState4 } from "react";
793
612
  var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast, onStatusUpdate, runner, viewer) => {
794
613
  const [status, setStatus] = useState4();
795
614
  const onStatusUpdateLocal = /* @__PURE__ */ __name((newStatus) => {
796
615
  setStatus(newStatus);
797
616
  onStatusUpdate?.(newStatus);
798
617
  }, "onStatusUpdateLocal");
799
- const [transactionConfirmationStatus, transactionConfirmationError] = usePromise4(async () => {
800
- const hasRunner = isDefined6(runner);
618
+ const [transactionConfirmationStatus, transactionConfirmationError] = usePromise3(async () => {
619
+ const hasRunner = isDefined3(runner);
801
620
  if (transaction && viewer) {
802
621
  const hash = hasRunner ? await runner.broadcastTransaction(transaction) : await PayloadBuilder.hash(transaction[0]);
803
622
  if (isHash(hash)) {
804
- if (hasRunner && isDefined6(onBroadcast)) onBroadcast(hash);
623
+ if (hasRunner && isDefined3(onBroadcast)) onBroadcast(hash);
805
624
  const params = {
806
625
  onStatusUpdate: onStatusUpdateLocal,
807
626
  transaction,
@@ -820,7 +639,7 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
820
639
  runner,
821
640
  viewer
822
641
  ]);
823
- useEffect4(() => {
642
+ useEffect3(() => {
824
643
  return () => {
825
644
  if (transactionConfirmationStatus) {
826
645
  forget2(transactionConfirmationStatus.stop());
@@ -839,13 +658,13 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
839
658
  import { asAddress } from "@xylabs/sdk-js";
840
659
  import { assertEx as assertEx3 } from "@xylabs/sdk-js";
841
660
  import { MainNetwork } from "@xyo-network/xl1-sdk";
842
- import { useCallback as useCallback3, useState as useState5 } from "react";
661
+ import { useCallback as useCallback2, useState as useState5 } from "react";
843
662
  var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, timeout) => {
844
663
  const [connectError, setConnectError] = useState5();
845
664
  const { gateway, error, timedout } = useGatewayFromWallet(gatewayName, timeout);
846
665
  const [accountPermissions, accountPermissionsError] = useAccountPermissions();
847
666
  const [address, setAddress] = useState5();
848
- const connectSigner = useCallback3(async () => {
667
+ const connectSigner = useCallback2(async () => {
849
668
  try {
850
669
  setConnectError(void 0);
851
670
  const assertedGateway = assertEx3(gateway, () => `Gateway ${gatewayName} is not available`);
@@ -870,11 +689,11 @@ var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, ti
870
689
  }, "useConnectAccount");
871
690
 
872
691
  // src/hooks/useCurrentBlock.ts
873
- import { usePromise as usePromise5 } from "@xylabs/react-promise";
874
- import { isDefinedNotNull as isDefinedNotNull4 } from "@xylabs/sdk-js";
692
+ import { usePromise as usePromise4 } from "@xylabs/react-promise";
693
+ import { isDefinedNotNull as isDefinedNotNull3 } from "@xylabs/sdk-js";
875
694
  var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
876
- return usePromise5(async () => {
877
- if (isDefinedNotNull4(viewer) && refresh > 0) {
695
+ return usePromise4(async () => {
696
+ if (isDefinedNotNull3(viewer) && refresh > 0) {
878
697
  const block = await viewer.currentBlock();
879
698
  return block;
880
699
  }
@@ -885,8 +704,8 @@ var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
885
704
  }, "useCurrentBlock");
886
705
  var useCurrentBlockFromGateway = /* @__PURE__ */ __name((refresh = 1) => {
887
706
  const viewer = useViewerFromGateway();
888
- return usePromise5(async () => {
889
- if (isDefinedNotNull4(viewer) && refresh > 0) {
707
+ return usePromise4(async () => {
708
+ if (isDefinedNotNull3(viewer) && refresh > 0) {
890
709
  const block = await viewer.currentBlock();
891
710
  return block;
892
711
  }
@@ -897,12 +716,12 @@ var useCurrentBlockFromGateway = /* @__PURE__ */ __name((refresh = 1) => {
897
716
  }, "useCurrentBlockFromGateway");
898
717
 
899
718
  // src/hooks/useNetwork.ts
900
- import { isUndefined as isUndefined4 } from "@xylabs/sdk-js";
719
+ import { isUndefined as isUndefined3 } from "@xylabs/sdk-js";
901
720
  import { SimpleXyoNetwork } from "@xyo-network/xl1-sdk";
902
721
  import { useMemo as useMemo5 } from "react";
903
722
  var useNetwork = /* @__PURE__ */ __name((id) => {
904
723
  const network = useMemo5(() => {
905
- if (isUndefined4(id)) return;
724
+ if (isUndefined3(id)) return;
906
725
  return new SimpleXyoNetwork(id);
907
726
  }, [
908
727
  id
@@ -911,10 +730,10 @@ var useNetwork = /* @__PURE__ */ __name((id) => {
911
730
  }, "useNetwork");
912
731
 
913
732
  // src/hooks/useSigner.ts
914
- import { usePromise as usePromise6 } from "@xylabs/react-promise";
733
+ import { usePromise as usePromise5 } from "@xylabs/react-promise";
915
734
  import { SimpleXyoSigner } from "@xyo-network/xl1-sdk";
916
735
  var useSigner = /* @__PURE__ */ __name((_provider, account) => {
917
- return usePromise6(async () => account ? await SimpleXyoSigner.create({
736
+ return usePromise5(async () => account ? await SimpleXyoSigner.create({
918
737
  account
919
738
  }) : void 0, [
920
739
  account
@@ -922,11 +741,11 @@ var useSigner = /* @__PURE__ */ __name((_provider, account) => {
922
741
  }, "useSigner");
923
742
 
924
743
  // src/hooks/viewer/useCheckRpc.ts
925
- import { usePromise as usePromise7 } from "@xylabs/react-promise";
926
- import { delay as delay2, isDefined as isDefined7, isUndefined as isUndefined5 } from "@xylabs/sdk-js";
744
+ import { usePromise as usePromise6 } from "@xylabs/react-promise";
745
+ import { delay as delay2, isDefined as isDefined4, isUndefined as isUndefined4 } from "@xylabs/sdk-js";
927
746
  import { basicRemoteViewerLocator as basicRemoteViewerLocator2 } from "@xyo-network/chain-orchestration";
928
747
  import { LocalNetwork, SequenceNetwork, XyoViewerMoniker } from "@xyo-network/xl1-sdk";
929
- import { useEffect as useEffect5, useState as useState6 } from "react";
748
+ import { useEffect as useEffect4, useState as useState6 } from "react";
930
749
  var INTERVAL = 5e3;
931
750
  var localRpcEndpoint = `${LocalNetwork.url}/rpc`;
932
751
  var sequenceRpcEndpoint = `${SequenceNetwork.url}/rpc`;
@@ -941,8 +760,8 @@ var useCheckSequenceRpc = /* @__PURE__ */ __name(() => {
941
760
  var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
942
761
  const [isLocalProducer, setIsLocalProducer] = useState6(false);
943
762
  const [error, setError] = useState6();
944
- const [viewer] = usePromise7(async () => {
945
- if (isUndefined5(endpoint)) return;
763
+ const [viewer] = usePromise6(async () => {
764
+ if (isUndefined4(endpoint)) return;
946
765
  const locator = await basicRemoteViewerLocator2(endpoint, {
947
766
  rpc: {
948
767
  protocol: "http",
@@ -954,14 +773,14 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
954
773
  }, [
955
774
  endpoint
956
775
  ]);
957
- useEffect5(() => {
958
- if (isUndefined5(viewer)) return;
776
+ useEffect4(() => {
777
+ if (isUndefined4(viewer)) return;
959
778
  void (async () => {
960
779
  setError(void 0);
961
780
  while (!isLocalProducer) {
962
781
  try {
963
782
  const block = await viewer.currentBlock();
964
- setIsLocalProducer(isDefined7(block));
783
+ setIsLocalProducer(isDefined4(block));
965
784
  } catch (err) {
966
785
  setError(err);
967
786
  setIsLocalProducer(false);
@@ -980,7 +799,7 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
980
799
  }, "useCheckRpc");
981
800
 
982
801
  // src/hooks/viewer/ViewerWithDataLake.ts
983
- import { isNull as isNull5 } from "@xylabs/sdk-js";
802
+ import { isNull as isNull3 } from "@xylabs/sdk-js";
984
803
  import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/sdk-js";
985
804
  import { addDataLakePayloads, addDataLakePayloadsToPayloads, DataLakeViewerMoniker, JsonRpcXyoViewer } from "@xyo-network/xl1-sdk";
986
805
  var ViewerWithDataLake = class extends JsonRpcXyoViewer {
@@ -1010,7 +829,7 @@ var ViewerWithDataLake = class extends JsonRpcXyoViewer {
1010
829
  await PayloadBuilder2.addHashMeta(transaction[0]),
1011
830
  await PayloadBuilder2.addHashMeta(transaction[1])
1012
831
  ] : null;
1013
- return isNull5(transaction) ? transaction : (await addDataLakePayloads([
832
+ return isNull3(transaction) ? transaction : (await addDataLakePayloads([
1014
833
  await PayloadBuilder2.addHashMeta(transaction[0]),
1015
834
  await PayloadBuilder2.addHashMeta(transaction[1])
1016
835
  ], this.dataLakeViewer))[0];
@@ -1040,16 +859,16 @@ var DefaultNoWalletInstalledComponent = /* @__PURE__ */ __name(() => /* @__PURE_
1040
859
  }, "Get XL1 Wallet")), "DefaultNoWalletInstalledComponent");
1041
860
  var ConnectAccountsStack = /* @__PURE__ */ __name(({ AccountComponent = ConnectedAccount, ConnectComponent = DefaultConnectComponent, NoWalletInstalledComponent = DefaultNoWalletInstalledComponent, onAccountConnected, onCancel, timeout, ...props }) => {
1042
861
  const { address, connectSigner, error, timedout } = useConnectAccount(void 0, timeout);
1043
- useEffect6(() => {
1044
- if (isDefined8(error) && isDefined8(onCancel)) {
862
+ useEffect5(() => {
863
+ if (isDefined5(error) && isDefined5(onCancel)) {
1045
864
  onCancel();
1046
865
  }
1047
866
  }, [
1048
867
  error,
1049
868
  onCancel
1050
869
  ]);
1051
- useEffect6(() => {
1052
- if (isDefined8(address) && isDefined8(onAccountConnected)) {
870
+ useEffect5(() => {
871
+ if (isDefined5(address) && isDefined5(onAccountConnected)) {
1053
872
  onAccountConnected(address);
1054
873
  }
1055
874
  }, [
@@ -1061,11 +880,11 @@ var ConnectAccountsStack = /* @__PURE__ */ __name(({ AccountComponent = Connecte
1061
880
  alignItems: "start",
1062
881
  spacing: 2,
1063
882
  ...props
1064
- }, isDefined8(address) ? /* @__PURE__ */ React5.createElement(AccountComponent, {
883
+ }, isDefined5(address) ? /* @__PURE__ */ React5.createElement(AccountComponent, {
1065
884
  address
1066
- }) : null, isUndefined6(address) && !timedout ? /* @__PURE__ */ React5.createElement(ConnectComponent, {
885
+ }) : null, isUndefined5(address) && !timedout ? /* @__PURE__ */ React5.createElement(ConnectComponent, {
1067
886
  onClick: /* @__PURE__ */ __name(() => void connectSigner(), "onClick")
1068
- }, "Connect") : null, isUndefined6(address) && timedout ? /* @__PURE__ */ React5.createElement(NoWalletInstalledComponent, null) : null, /* @__PURE__ */ React5.createElement(ErrorRender2, {
887
+ }, "Connect") : null, isUndefined5(address) && timedout ? /* @__PURE__ */ React5.createElement(NoWalletInstalledComponent, null) : null, /* @__PURE__ */ React5.createElement(ErrorRender2, {
1069
888
  error,
1070
889
  scope: "ConnectSigner:error"
1071
890
  }));