@xyo-network/react-chain-provider 1.18.0 → 1.18.1

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 (61) hide show
  1. package/dist/browser/hooks/account/BalanceHistoryItemFormatted.d.ts +1 -1
  2. package/dist/browser/hooks/account/BalanceHistoryItemFormatted.d.ts.map +1 -1
  3. package/dist/browser/hooks/account/helpers/formatAccountBalanceHistory.d.ts +1 -1
  4. package/dist/browser/hooks/account/helpers/formatAccountBalanceHistory.d.ts.map +1 -1
  5. package/dist/browser/hooks/account/useAccountBalanceHistory.d.ts +2 -3
  6. package/dist/browser/hooks/account/useAccountBalanceHistory.d.ts.map +1 -1
  7. package/dist/browser/hooks/client/helpers/findCaveat.d.ts +1 -1
  8. package/dist/browser/hooks/client/helpers/findCaveat.d.ts.map +1 -1
  9. package/dist/browser/hooks/client/useClient.d.ts +1 -1
  10. package/dist/browser/hooks/client/useClient.d.ts.map +1 -1
  11. package/dist/browser/hooks/client/useGateway.d.ts +2 -2
  12. package/dist/browser/hooks/client/useGateway.d.ts.map +1 -1
  13. package/dist/browser/hooks/helpers/getXyoClient.d.ts +1 -1
  14. package/dist/browser/hooks/helpers/getXyoClient.d.ts.map +1 -1
  15. package/dist/browser/hooks/helpers/transaction/Confirmation.d.ts +1 -2
  16. package/dist/browser/hooks/helpers/transaction/Confirmation.d.ts.map +1 -1
  17. package/dist/browser/hooks/useAddressBalance.d.ts +6 -3
  18. package/dist/browser/hooks/useAddressBalance.d.ts.map +1 -1
  19. package/dist/browser/hooks/useConfirmTransactionBase.d.ts +1 -2
  20. package/dist/browser/hooks/useConfirmTransactionBase.d.ts.map +1 -1
  21. package/dist/browser/hooks/useConnectAccount.d.ts +12 -5
  22. package/dist/browser/hooks/useConnectAccount.d.ts.map +1 -1
  23. package/dist/browser/hooks/useCurrentBlock.d.ts +3 -23
  24. package/dist/browser/hooks/useCurrentBlock.d.ts.map +1 -1
  25. package/dist/browser/hooks/useHttpRpcRunner.d.ts +2 -2
  26. package/dist/browser/hooks/useHttpRpcRunner.d.ts.map +1 -1
  27. package/dist/browser/hooks/useNetwork.d.ts +2 -2
  28. package/dist/browser/hooks/useNetwork.d.ts.map +1 -1
  29. package/dist/browser/hooks/useSigner.d.ts +2 -2
  30. package/dist/browser/hooks/useSigner.d.ts.map +1 -1
  31. package/dist/browser/hooks/viewer/useHttpRpcViewer.d.ts +1 -1
  32. package/dist/browser/hooks/viewer/useHttpRpcViewer.d.ts.map +1 -1
  33. package/dist/browser/hooks/viewer/useViewerFromWallet.d.ts +2 -2
  34. package/dist/browser/hooks/viewer/useViewerFromWallet.d.ts.map +1 -1
  35. package/dist/browser/index.mjs +18 -22
  36. package/dist/browser/index.mjs.map +1 -1
  37. package/dist/browser/lib/balanceForRange.d.ts +1 -2
  38. package/dist/browser/lib/balanceForRange.d.ts.map +1 -1
  39. package/dist/browser/lib/findMinimumBlock.d.ts +1 -1
  40. package/dist/browser/lib/findMinimumBlock.d.ts.map +1 -1
  41. package/package.json +13 -15
  42. package/src/hooks/account/BalanceHistoryItemFormatted.ts +1 -1
  43. package/src/hooks/account/helpers/formatAccountBalanceHistory.ts +1 -1
  44. package/src/hooks/account/useAccountBalanceHistory.ts +3 -2
  45. package/src/hooks/client/helpers/findCaveat.ts +1 -1
  46. package/src/hooks/client/useClient.ts +1 -1
  47. package/src/hooks/client/useGateway.ts +1 -1
  48. package/src/hooks/helpers/getXyoClient.ts +1 -1
  49. package/src/hooks/helpers/transaction/Confirmation.ts +1 -2
  50. package/src/hooks/useAddressBalance.ts +2 -3
  51. package/src/hooks/useConfirmTransactionBase.ts +3 -2
  52. package/src/hooks/useConnectAccount.ts +2 -2
  53. package/src/hooks/useCurrentBlock.ts +4 -2
  54. package/src/hooks/useHttpRpcRunner.ts +4 -4
  55. package/src/hooks/useNetwork.ts +2 -2
  56. package/src/hooks/useSigner.ts +3 -3
  57. package/src/hooks/viewer/useCheckRpc.ts +6 -6
  58. package/src/hooks/viewer/useHttpRpcViewer.ts +7 -5
  59. package/src/hooks/viewer/useViewerFromWallet.ts +1 -1
  60. package/src/lib/balanceForRange.ts +1 -2
  61. package/src/lib/findMinimumBlock.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { Address, Hash } from '@xylabs/sdk-js';
2
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk';
3
3
  export type BalanceTransactionType = 'send' | 'receive';
4
4
  export interface AccountBalanceHistoryItemFormatted {
5
5
  amount: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceHistoryItemFormatted.d.ts","sourceRoot":"","sources":["../../../../src/hooks/account/BalanceHistoryItemFormatted.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,kCAAkC;IACjD,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,yBAAyB,CAAA;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,IAAI,GAAG,SAAS,CAAA;IACxB,IAAI,EAAE,sBAAsB,CAAA;CAC7B"}
1
+ {"version":3,"file":"BalanceHistoryItemFormatted.d.ts","sourceRoot":"","sources":["../../../../src/hooks/account/BalanceHistoryItemFormatted.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErE,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,kCAAkC;IACjD,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,yBAAyB,CAAA;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,IAAI,GAAG,SAAS,CAAA;IACxB,IAAI,EAAE,sBAAsB,CAAA;CAC7B"}
@@ -1,5 +1,5 @@
1
1
  import type { Address } from '@xylabs/sdk-js';
2
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk';
3
3
  import type { AccountBalanceHistoryItemFormatted } from '../BalanceHistoryItemFormatted.ts';
4
4
  export declare const formatAccountBalanceHistory: (address: Address, history: AccountBalanceHistoryItem[]) => AccountBalanceHistoryItemFormatted[];
5
5
  //# sourceMappingURL=formatAccountBalanceHistory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatAccountBalanceHistory.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/account/helpers/formatAccountBalanceHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,gBAAgB,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAE9E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAA;AAE3F,eAAO,MAAM,2BAA2B,GAAI,SAAS,OAAO,EAAE,SAAS,yBAAyB,EAAE,KAAG,kCAAkC,EAiCtI,CAAA"}
1
+ {"version":3,"file":"formatAccountBalanceHistory.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/account/helpers/formatAccountBalanceHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,gBAAgB,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAA;AAE3F,eAAO,MAAM,2BAA2B,GAAI,SAAS,OAAO,EAAE,SAAS,yBAAyB,EAAE,KAAG,kCAAkC,EAiCtI,CAAA"}
@@ -1,9 +1,8 @@
1
1
  import { type Address } from '@xylabs/sdk-js';
2
- import type { XL1BlockRange } from '@xyo-network/xl1-protocol';
3
- import type { XyoViewer } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { XL1BlockRange, XyoViewer } from '@xyo-network/xl1-sdk';
4
3
  export declare const useAccountBalanceHistory: (address?: Address, viewer?: XyoViewer, maxPage?: number, blockRange?: XL1BlockRange, refresh?: number) => [{
5
4
  history: import("./BalanceHistoryItemFormatted.ts").AccountBalanceHistoryItemFormatted[];
6
- balance: [import("@xyo-network/xl1-protocol").AttoXL1, import("@xyo-network/xl1-protocol").AttoXL1];
5
+ balance: [import("@xyo-network/xl1-sdk").AttoXL1, import("@xyo-network/xl1-sdk").AttoXL1];
7
6
  truncated: boolean;
8
7
  } | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
9
8
  //# sourceMappingURL=useAccountBalanceHistory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAccountBalanceHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/account/useAccountBalanceHistory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAEb,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAA6B,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAKzF,eAAO,MAAM,wBAAwB,GAAI,UAAU,OAAO,EAAE,SAAS,SAAS,EAAE,gBAAY,EAAE,aAAa,aAAa,EAAE,UAAU,MAAM;;;;8FAsCzI,CAAA"}
1
+ {"version":3,"file":"useAccountBalanceHistory.d.ts","sourceRoot":"","sources":["../../../../src/hooks/account/useAccountBalanceHistory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAEb,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACiB,aAAa,EAAE,SAAS,EACpD,MAAM,sBAAsB,CAAA;AAK7B,eAAO,MAAM,wBAAwB,GAAI,UAAU,OAAO,EAAE,SAAS,SAAS,EAAE,gBAAY,EAAE,aAAa,aAAa,EAAE,UAAU,MAAM;;;;8FAsCzI,CAAA"}
@@ -1,3 +1,3 @@
1
- import type { CaveatTypes, ParentCapability, XyoPermissions } from '@xyo-network/xl1-protocol-sdk';
1
+ import type { CaveatTypes, ParentCapability, XyoPermissions } from '@xyo-network/xl1-sdk';
2
2
  export declare const findCaveat: (permissions: XyoPermissions, targetCapability: ParentCapability, targetCaveatType: CaveatTypes) => Promise<{}>;
3
3
  //# sourceMappingURL=findCaveat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findCaveat.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/client/helpers/findCaveat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAC9C,MAAM,+BAA+B,CAAA;AAEtC,eAAO,MAAM,UAAU,GACrB,aAAa,cAAc,EAC3B,kBAAkB,gBAAgB,EAClC,kBAAkB,WAAW,gBAW9B,CAAA"}
1
+ {"version":3,"file":"findCaveat.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/client/helpers/findCaveat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAC9C,MAAM,sBAAsB,CAAA;AAE7B,eAAO,MAAM,UAAU,GACrB,aAAa,cAAc,EAC3B,kBAAkB,gBAAgB,EAClC,kBAAkB,WAAW,gBAW9B,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { XyoClient } from '@xyo-network/xl1-protocol-sdk';
1
+ import type { XyoClient } from '@xyo-network/xl1-sdk';
2
2
  interface ClientState {
3
3
  client?: XyoClient;
4
4
  error: Error | null;
@@ -1 +1 @@
1
- {"version":3,"file":"useClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/client/useClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAO9D,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAoDD,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,gBA2BzC,CAAA"}
1
+ {"version":3,"file":"useClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/client/useClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAOrD,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAoDD,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,gBA2BzC,CAAA"}
@@ -1,6 +1,6 @@
1
- import type { GatewayName } from '@xyo-network/xl1-protocol';
1
+ import type { GatewayName } from '@xyo-network/xl1-sdk';
2
2
  export declare const useGateway: (gatewayName?: GatewayName, timeout?: number) => {
3
- gateway: import("@xyo-network/xl1-protocol-sdk").XyoGatewayRunner | null | undefined;
3
+ gateway: import("@xyo-network/xl1-sdk").XyoGatewayRunner | null | undefined;
4
4
  isLoading: boolean;
5
5
  error: Error | null;
6
6
  timedout: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useGateway.d.ts","sourceRoot":"","sources":["../../../../src/hooks/client/useGateway.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAI5D,eAAO,MAAM,UAAU,GAAI,cAAc,WAAW,EAAE,UAAU,MAAM;;;;;CAoBrE,CAAA"}
1
+ {"version":3,"file":"useGateway.d.ts","sourceRoot":"","sources":["../../../../src/hooks/client/useGateway.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,eAAO,MAAM,UAAU,GAAI,cAAc,WAAW,EAAE,UAAU,MAAM;;;;;CAoBrE,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { XyoClient } from '@xyo-network/xl1-protocol-sdk';
1
+ import type { XyoClient } from '@xyo-network/xl1-sdk';
2
2
  export declare const listenForClientInjection: (onClientReady: () => void, timeout: number, onTimeout: () => void) => void;
3
3
  type ReturnType = XyoClient | undefined | null;
4
4
  export declare function getXyoClient(timeout?: number): Promise<ReturnType>;
@@ -1 +1 @@
1
- {"version":3,"file":"getXyoClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/helpers/getXyoClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAQ9D,eAAO,MAAM,wBAAwB,GAAI,eAAe,MAAM,IAAI,EAAE,SAAS,MAAM,EAAE,WAAW,MAAM,IAAI,SAazG,CAAA;AAED,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAA;AAE9C,wBAAsB,YAAY,CAAC,OAAO,SAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBzF"}
1
+ {"version":3,"file":"getXyoClient.d.ts","sourceRoot":"","sources":["../../../../src/hooks/helpers/getXyoClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAQrD,eAAO,MAAM,wBAAwB,GAAI,eAAe,MAAM,IAAI,EAAE,SAAS,MAAM,EAAE,WAAW,MAAM,IAAI,SAazG,CAAA;AAED,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAA;AAE9C,wBAAsB,YAAY,CAAC,OAAO,SAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBzF"}
@@ -1,6 +1,5 @@
1
1
  import type { Hash, Promisable } from '@xylabs/sdk-js';
2
- import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol';
3
- import type { XyoViewer } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-sdk';
4
3
  export type ConfirmationStatusUpdate = {
5
4
  blockNumber: number;
6
5
  confirmed: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Confirmation.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/helpers/transaction/Confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAItD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE9D,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAA;IAC3D,WAAW,EAAE,yBAAyB,CAAA;IACtC,MAAM,EAAE,IAAI,CAAA;IACZ,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,6BAA6B;IAIjD,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,cAAc,IAAI,6BAA6B,CAAC,gBAAgB,CAAC,CAEpE;IAED,IAAI,MAAM,IAAI,6BAA6B,CAE1C;IAED,IAAI,WAAW,IAAI,yBAAyB,CAE3C;IAED,IAAI,MAAM,IAAI,IAAI,CAEjB;IAED,IAAI,MAAM,IAAI,SAAS,CAEtB;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,GAAG,UAAU,CAAC,6BAA6B,CAAC;IAIzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;YAIV,UAAU;YAsBV,iBAAiB;CAgBhC"}
1
+ {"version":3,"file":"Confirmation.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/helpers/transaction/Confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAItD,OAAO,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAA;IAC3D,WAAW,EAAE,yBAAyB,CAAA;IACtC,MAAM,EAAE,IAAI,CAAA;IACZ,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,6BAA6B;IAIjD,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,cAAc,IAAI,6BAA6B,CAAC,gBAAgB,CAAC,CAEpE;IAED,IAAI,MAAM,IAAI,6BAA6B,CAE1C;IAED,IAAI,WAAW,IAAI,yBAAyB,CAE3C;IAED,IAAI,MAAM,IAAI,IAAI,CAEjB;IAED,IAAI,MAAM,IAAI,SAAS,CAEtB;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,GAAG,UAAU,CAAC,6BAA6B,CAAC;IAIzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;YAIV,UAAU;YAsBV,iBAAiB;CAgBhC"}
@@ -1,8 +1,11 @@
1
1
  import type { Address } from '@xylabs/sdk-js';
2
- import type { AttoXL1 } from '@xyo-network/xl1-protocol';
3
- import type { XyoViewer } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { AttoXL1, XyoViewer } from '@xyo-network/xl1-sdk';
4
3
  export declare const useAddressBalance: (address?: Address, viewer?: XyoViewer, refresh?: number) => {
5
- address: Address | undefined;
4
+ address: (Lowercase<string> & {
5
+ readonly __hex: true;
6
+ } & {
7
+ readonly __address: true;
8
+ }) | undefined;
6
9
  balanceForAddress: AttoXL1 | null | undefined;
7
10
  balanceIntlFriendly: string | undefined;
8
11
  shortBalanceIntlFriendly: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useAddressBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddressBalance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAK9D,eAAO,MAAM,iBAAiB,GAE5B,UAAU,OAAO,EAEjB,SAAS,SAAS,EAElB,UAAU,MAAM;;;;;;;CAkEjB,CAAA"}
1
+ {"version":3,"file":"useAddressBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddressBalance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAM9D,eAAO,MAAM,iBAAiB,GAE5B,UAAU,OAAO,EAEjB,SAAS,SAAS,EAElB,UAAU,MAAM;;;;;;;;;;;CAkEjB,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import type { Hash } from '@xylabs/sdk-js';
2
- import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol';
3
- import type { XyoRunner, XyoViewer } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { SignedHydratedTransaction, XyoRunner, XyoViewer } from '@xyo-network/xl1-sdk';
4
3
  import type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts';
5
4
  export declare const useConfirmTransactionBase: (transaction?: SignedHydratedTransaction, onBroadcast?: (hash: Hash) => void, onStatusUpdate?: TransactionConfirmationParams["onStatusUpdate"], runner?: XyoRunner, viewer?: XyoViewer) => {
6
5
  status: ConfirmationStatusUpdate | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useConfirmTransactionBase.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConfirmTransactionBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAK1C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAGzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAGjG,eAAO,MAAM,yBAAyB,GAEpC,cAAc,yBAAyB,EAEvC,cAAc,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAElC,iBAAiB,6BAA6B,CAAC,gBAAgB,CAAC,EAEhE,SAAS,SAAS,EAElB,SAAS,SAAS;;;CAuCnB,CAAA"}
1
+ {"version":3,"file":"useConfirmTransactionBase.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConfirmTransactionBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAK1C,OAAO,KAAK,EACV,yBAAyB,EAAE,SAAS,EAAE,SAAS,EAChD,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAGjG,eAAO,MAAM,yBAAyB,GAEpC,cAAc,yBAAyB,EAEvC,cAAc,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAElC,iBAAiB,6BAA6B,CAAC,gBAAgB,CAAC,EAEhE,SAAS,SAAS,EAElB,SAAS,SAAS;;;CAuCnB,CAAA"}
@@ -1,10 +1,17 @@
1
- import { type Address } from '@xylabs/sdk-js';
2
- import type { GatewayName } from '@xyo-network/xl1-protocol';
1
+ import type { GatewayName } from '@xyo-network/xl1-sdk';
3
2
  export declare const useConnectAccount: (gatewayName?: GatewayName, timeout?: number) => {
4
- address: Address | undefined;
5
- connectSigner: () => Promise<Address | undefined>;
3
+ address: (Lowercase<string> & {
4
+ readonly __hex: true;
5
+ } & {
6
+ readonly __address: true;
7
+ }) | undefined;
8
+ connectSigner: () => Promise<(Lowercase<string> & {
9
+ readonly __hex: true;
10
+ } & {
11
+ readonly __address: true;
12
+ }) | undefined>;
6
13
  error: Error | undefined;
7
- gateway: import("@xyo-network/xl1-protocol-sdk").XyoGatewayRunner | null | undefined;
14
+ gateway: import("@xyo-network/xl1-sdk").XyoGatewayRunner | null | undefined;
8
15
  timedout: boolean;
9
16
  };
10
17
  //# sourceMappingURL=useConnectAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useConnectAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConnectAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,gBAAgB,CAAA;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAK5D,eAAO,MAAM,iBAAiB,GAAI,cAAa,WAA4B,EAAE,UAAU,MAAM;;;;;;CA2B5F,CAAA"}
1
+ {"version":3,"file":"useConnectAccount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConnectAccount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAMvD,eAAO,MAAM,iBAAiB,GAAI,cAAa,WAA4B,EAAE,UAAU,MAAM;;;;;;;;;;;;;;CA2B5F,CAAA"}
@@ -1,24 +1,4 @@
1
- import type { XyoViewer } from '@xyo-network/xl1-protocol-sdk';
2
- export declare const useCurrentBlock: (refresh?: number, viewer?: XyoViewer | null) => [[{
3
- schema: "network.xyo.boundwitness";
4
- addresses: import("@xylabs/sdk-js").Address[];
5
- payload_hashes: import("@xylabs/sdk-js").Hash[];
6
- payload_schemas: string[];
7
- previous_hashes: (import("@xylabs/sdk-js").Hash | null)[];
8
- $signatures: import("@xylabs/sdk-js").Hex[];
9
- block: import("@xyo-network/xl1-protocol").XL1BlockNumber;
10
- chain: import("@xylabs/sdk-js").Hex;
11
- previous: import("@xylabs/sdk-js").Hash | null;
12
- $epoch: number;
13
- _hash: import("@xylabs/sdk-js").Hash;
14
- _dataHash: import("@xylabs/sdk-js").Hash;
15
- $destination?: import("@xylabs/sdk-js").Address | undefined;
16
- $sourceQuery?: import("@xylabs/sdk-js").Hash | undefined;
17
- protocol?: number | undefined;
18
- step_hashes?: import("@xylabs/sdk-js").Hash[] | undefined;
19
- }, {
20
- schema: string;
21
- _hash: import("@xylabs/sdk-js").Hash;
22
- _dataHash: import("@xylabs/sdk-js").Hash;
23
- }[]] | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
1
+ import type { UsePromiseState } from '@xylabs/react-promise';
2
+ import type { HydratedBlockWithHashMeta, XyoViewer } from '@xyo-network/xl1-sdk';
3
+ export declare const useCurrentBlock: (refresh?: number, viewer?: XyoViewer | null) => [HydratedBlockWithHashMeta | undefined, Error | undefined, UsePromiseState | undefined];
24
4
  //# sourceMappingURL=useCurrentBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCurrentBlock.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCurrentBlock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE9D,eAAO,MAAM,eAAe,GAAI,gBAAW,EAAE,SAAS,SAAS,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;iGAOrE,CAAA"}
1
+ {"version":3,"file":"useCurrentBlock.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCurrentBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAG5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhF,eAAO,MAAM,eAAe,GAAI,gBAAW,EAAE,SAAS,SAAS,GAAG,IAAI,KAAG,CAAC,yBAAyB,GAAG,SAAS,EAC7G,KAAK,GAAG,SAAS,EAAE,eAAe,GAAG,SAAS,CAO/C,CAAA"}
@@ -1,3 +1,3 @@
1
- import type { JsonRpcXyoRunner } from '@xyo-network/xl1-rpc';
2
- export declare const useHttpRpcRunner: (url?: string) => [import("@xyo-network/xl1-protocol-sdk").CreatableProviderInstance<JsonRpcXyoRunner> | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
1
+ import type { JsonRpcXyoRunner } from '@xyo-network/xl1-sdk';
2
+ export declare const useHttpRpcRunner: (url?: string) => [import("@xyo-network/xl1-sdk").CreatableProviderInstance<JsonRpcXyoRunner> | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
3
3
  //# sourceMappingURL=useHttpRpcRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHttpRpcRunner.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHttpRpcRunner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAG7B,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,sLAS5C,CAAA"}
1
+ {"version":3,"file":"useHttpRpcRunner.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHttpRpcRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAK7B,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,6KAS5C,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { DefaultNetworkIds } from '@xyo-network/xl1-protocol';
2
- import { SimpleXyoNetwork } from '@xyo-network/xl1-protocol-sdk';
1
+ import type { DefaultNetworkIds } from '@xyo-network/xl1-sdk';
2
+ import { SimpleXyoNetwork } from '@xyo-network/xl1-sdk';
3
3
  export declare const useNetwork: (id?: DefaultNetworkIds) => SimpleXyoNetwork | undefined;
4
4
  //# sourceMappingURL=useNetwork.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNetwork.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNetwork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAGhE,eAAO,MAAM,UAAU,GAAI,KAAK,iBAAiB,iCAOhD,CAAA"}
1
+ {"version":3,"file":"useNetwork.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNetwork.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,eAAO,MAAM,UAAU,GAAI,KAAK,iBAAiB,iCAOhD,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { AccountInstance } from '@xyo-network/account-model';
2
- import { type XyoConnection, type XyoSigner } from '@xyo-network/xl1-protocol-sdk';
3
- export declare const useSigner: (_provider?: XyoConnection, account?: AccountInstance) => XyoSigner | undefined;
2
+ import { type XyoConnection, type XyoSigner } from '@xyo-network/xl1-sdk';
3
+ export declare const useSigner: (_provider?: XyoConnection, account?: AccountInstance) => [XyoSigner | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
4
4
  //# sourceMappingURL=useSigner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSigner.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EACY,KAAK,aAAa,EAAE,KAAK,SAAS,EACpD,MAAM,+BAA+B,CAAA;AAGtC,eAAO,MAAM,SAAS,GAAI,YAAY,aAAa,EAAE,UAAU,eAAe,0BAE7E,CAAA"}
1
+ {"version":3,"file":"useSigner.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSigner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EACY,KAAK,aAAa,EAAE,KAAK,SAAS,EACpD,MAAM,sBAAsB,CAAA;AAE7B,eAAO,MAAM,SAAS,GAAI,YAAY,aAAa,EAAE,UAAU,eAAe,4GAE7E,CAAA"}
@@ -1,3 +1,3 @@
1
- import { type XyoViewer } from '@xyo-network/xl1-protocol-sdk';
1
+ import type { XyoViewer } from '@xyo-network/xl1-sdk';
2
2
  export declare const useHttpRpcViewer: (url?: string) => XyoViewer | undefined;
3
3
  //# sourceMappingURL=useHttpRpcViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHttpRpcViewer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/useHttpRpcViewer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,+BAA+B,CAAA;AAOhF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,SAW3D,CAAA"}
1
+ {"version":3,"file":"useHttpRpcViewer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/useHttpRpcViewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,SAAS,EACV,MAAM,sBAAsB,CAAA;AAM7B,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,SAW3D,CAAA"}
@@ -1,9 +1,9 @@
1
- import type { GatewayName } from '@xyo-network/xl1-protocol';
1
+ import type { GatewayName } from '@xyo-network/xl1-sdk';
2
2
  /**
3
3
  * Creates a JsonRpcXyoViewer instance based on the provided networkId.
4
4
  * @param networkId - a network id like 'sequence', 'local', etc.
5
5
  * @returns An instance of XyoViewer if the networkId is found in wallet gateways
6
6
  * otherwise undefined.
7
7
  */
8
- export declare const useViewerFromWallet: (networkId?: GatewayName, timeout?: number) => [import("@xyo-network/xl1-protocol-sdk").XyoViewer | null | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
8
+ export declare const useViewerFromWallet: (networkId?: GatewayName, timeout?: number) => [import("@xyo-network/xl1-sdk").XyoViewer | null | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
9
9
  //# sourceMappingURL=useViewerFromWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewerFromWallet.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/useViewerFromWallet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAI5D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,WAAW,EACvB,UAAU,MAAM,2JAiBjB,CAAA"}
1
+ {"version":3,"file":"useViewerFromWallet.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/useViewerFromWallet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,WAAW,EACvB,UAAU,MAAM,kJAiBjB,CAAA"}
@@ -438,7 +438,7 @@ var useGateway = /* @__PURE__ */ __name((gatewayName, timeout) => {
438
438
  // src/hooks/useAddressBalance.ts
439
439
  import { usePromise as usePromise3 } from "@xylabs/react-promise";
440
440
  import { isUndefined as isUndefined3, isUndefinedOrNull } from "@xylabs/sdk-js";
441
- import { ShiftedBigInt } from "@xyo-network/xl1-protocol";
441
+ import { ShiftedBigInt } from "@xyo-network/xl1-sdk";
442
442
  import { useMemo, useRef, useState } from "react";
443
443
  var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
444
444
  const [balancesResult, setBalancesResult] = useState();
@@ -562,7 +562,7 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
562
562
  // src/hooks/useConnectAccount.ts
563
563
  import { asAddress } from "@xylabs/sdk-js";
564
564
  import { assertEx as assertEx2 } from "@xylabs/sdk-js";
565
- import { MainNetwork } from "@xyo-network/xl1-network-model";
565
+ import { MainNetwork } from "@xyo-network/xl1-sdk";
566
566
  import { useCallback as useCallback2, useState as useState3 } from "react";
567
567
  var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, timeout) => {
568
568
  const [connectError, setConnectError] = useState3();
@@ -611,9 +611,7 @@ var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
611
611
  // src/hooks/useHttpRpcRunner.ts
612
612
  import { usePromise as usePromise6 } from "@xylabs/react-promise";
613
613
  import { isUndefined as isUndefined4 } from "@xylabs/sdk-js";
614
- import { XyoRunnerMoniker } from "@xyo-network/xl1-protocol-sdk";
615
- import { buildJsonRpcProviderLocator } from "@xyo-network/xl1-providers";
616
- import { HttpRpcTransport } from "@xyo-network/xl1-rpc";
614
+ import { buildJsonRpcProviderLocator, HttpRpcTransport, XyoRunnerMoniker } from "@xyo-network/xl1-sdk";
617
615
  var useHttpRpcRunner = /* @__PURE__ */ __name((url) => {
618
616
  return usePromise6(async () => {
619
617
  if (isUndefined4(url)) {
@@ -631,7 +629,7 @@ var useHttpRpcRunner = /* @__PURE__ */ __name((url) => {
631
629
 
632
630
  // src/hooks/useNetwork.ts
633
631
  import { isUndefined as isUndefined5 } from "@xylabs/sdk-js";
634
- import { SimpleXyoNetwork } from "@xyo-network/xl1-protocol-sdk";
632
+ import { SimpleXyoNetwork } from "@xyo-network/xl1-sdk";
635
633
  import { useMemo as useMemo2 } from "react";
636
634
  var useNetwork = /* @__PURE__ */ __name((id) => {
637
635
  const network = useMemo2(() => {
@@ -644,21 +642,20 @@ var useNetwork = /* @__PURE__ */ __name((id) => {
644
642
  }, "useNetwork");
645
643
 
646
644
  // src/hooks/useSigner.ts
647
- import { SimpleXyoSigner } from "@xyo-network/xl1-protocol-sdk";
648
- import { useMemo as useMemo3 } from "react";
645
+ import { usePromise as usePromise7 } from "@xylabs/react-promise";
646
+ import { SimpleXyoSigner } from "@xyo-network/xl1-sdk";
649
647
  var useSigner = /* @__PURE__ */ __name((_provider, account) => {
650
- return useMemo3(() => account ? new SimpleXyoSigner(account) : void 0, [
648
+ return usePromise7(async () => account ? await SimpleXyoSigner.create({
649
+ account
650
+ }) : void 0, [
651
651
  account
652
652
  ]);
653
653
  }, "useSigner");
654
654
 
655
655
  // src/hooks/viewer/useCheckRpc.ts
656
- import { usePromise as usePromise7 } from "@xylabs/react-promise";
656
+ import { usePromise as usePromise8 } from "@xylabs/react-promise";
657
657
  import { delay as delay2, isDefined as isDefined6, isUndefined as isUndefined6 } from "@xylabs/sdk-js";
658
- import { LocalNetwork, SequenceNetwork } from "@xyo-network/xl1-network-model";
659
- import { XyoViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
660
- import { buildJsonRpcProviderLocator as buildJsonRpcProviderLocator2 } from "@xyo-network/xl1-providers";
661
- import { HttpRpcTransport as HttpRpcTransport2 } from "@xyo-network/xl1-rpc";
658
+ import { buildJsonRpcProviderLocator as buildJsonRpcProviderLocator2, HttpRpcTransport as HttpRpcTransport2, LocalNetwork, SequenceNetwork, XyoViewerMoniker } from "@xyo-network/xl1-sdk";
662
659
  import { useEffect as useEffect3, useState as useState4 } from "react";
663
660
  var INTERVAL = 5e3;
664
661
  var localRpcEndpoint = `${LocalNetwork.url}/rpc`;
@@ -674,7 +671,7 @@ var useCheckSequenceRpc = /* @__PURE__ */ __name(() => {
674
671
  var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
675
672
  const [isLocalProducer, setIsLocalProducer] = useState4(false);
676
673
  const [error, setError] = useState4();
677
- const [viewer] = usePromise7(async () => {
674
+ const [viewer] = usePromise8(async () => {
678
675
  if (isUndefined6(endpoint)) return;
679
676
  const transportFactory = /* @__PURE__ */ __name((schemas) => new HttpRpcTransport2(endpoint, schemas), "transportFactory");
680
677
  const locator = await buildJsonRpcProviderLocator2({
@@ -701,6 +698,7 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
701
698
  }
702
699
  })();
703
700
  }, [
701
+ isLocalProducer,
704
702
  viewer
705
703
  ]);
706
704
  return {
@@ -710,13 +708,11 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
710
708
  }, "useCheckRpc");
711
709
 
712
710
  // src/hooks/viewer/useHttpRpcViewer.ts
713
- import { usePromise as usePromise8 } from "@xylabs/react-promise";
711
+ import { usePromise as usePromise9 } from "@xylabs/react-promise";
714
712
  import { isUndefined as isUndefined7 } from "@xylabs/sdk-js";
715
- import { XyoViewerMoniker as XyoViewerMoniker2 } from "@xyo-network/xl1-protocol-sdk";
716
- import { buildJsonRpcProviderLocator as buildJsonRpcProviderLocator3 } from "@xyo-network/xl1-providers";
717
- import { HttpRpcTransport as HttpRpcTransport3 } from "@xyo-network/xl1-rpc";
713
+ import { buildJsonRpcProviderLocator as buildJsonRpcProviderLocator3, HttpRpcTransport as HttpRpcTransport3, XyoViewerMoniker as XyoViewerMoniker2 } from "@xyo-network/xl1-sdk";
718
714
  var useHttpRpcViewer = /* @__PURE__ */ __name((url) => {
719
- const [resolvedViewer] = usePromise8(async () => {
715
+ const [resolvedViewer] = usePromise9(async () => {
720
716
  if (isUndefined7(url)) {
721
717
  return;
722
718
  }
@@ -732,11 +728,11 @@ var useHttpRpcViewer = /* @__PURE__ */ __name((url) => {
732
728
  }, "useHttpRpcViewer");
733
729
 
734
730
  // src/hooks/viewer/useViewerFromWallet.ts
735
- import { usePromise as usePromise9 } from "@xylabs/react-promise";
731
+ import { usePromise as usePromise10 } from "@xylabs/react-promise";
736
732
  import { isDefined as isDefined7, isDefinedNotNull as isDefinedNotNull3, isNull as isNull4 } from "@xylabs/sdk-js";
737
733
  var useViewerFromWallet = /* @__PURE__ */ __name((networkId, timeout) => {
738
734
  const { gateway, error, isLoading, timedout } = useGateway(networkId, timeout);
739
- const result = usePromise9(async () => {
735
+ const result = usePromise10(async () => {
740
736
  if (isDefinedNotNull3(error)) return null;
741
737
  if (isLoading) return;
742
738
  if (timedout && isNull4(gateway)) return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/connected/account/Connected.tsx","../../src/components/connected/ConnectAccountsStack.tsx","../../src/hooks/account/helpers/formatAccountBalanceHistory.ts","../../src/hooks/account/useAccountBalanceHistory.ts","../../src/lib/balanceForRange.ts","../../src/lib/findMinimumBlock.ts","../../src/hooks/client/useClient.ts","../../src/hooks/helpers/getXyoClient.ts","../../src/hooks/helpers/transaction/Confirmation.ts","../../src/hooks/client/permissions/usePermissions.ts","../../src/hooks/client/permissions/usePermissionsAccounts.ts","../../src/hooks/client/helpers/findCaveat.ts","../../src/hooks/client/useGateway.ts","../../src/hooks/useAddressBalance.ts","../../src/hooks/useConfirmTransactionBase.ts","../../src/hooks/useConnectAccount.ts","../../src/hooks/useCurrentBlock.ts","../../src/hooks/useHttpRpcRunner.ts","../../src/hooks/useNetwork.ts","../../src/hooks/useSigner.ts","../../src/hooks/viewer/useCheckRpc.ts","../../src/hooks/viewer/useHttpRpcViewer.ts","../../src/hooks/viewer/useViewerFromWallet.ts"],"sourcesContent":["import {\n Stack, Tooltip, Typography,\n} from '@mui/material'\nimport { EthAddressWrapper } from '@xylabs/sdk-js'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport React from 'react'\n\nexport const ConnectedAccount: React.FC<{ address: string }> = ({ address }) => {\n const shortenedAddress = `${EthAddressWrapper.fromString(address)?.toShortString(4)}`\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <BlockiesAvatarAddress address={address} size={21} />\n <Tooltip title={address}>\n <Typography color=\"textSecondary\" variant=\"caption\" fontFamily=\"monospace\">{shortenedAddress}</Typography>\n </Tooltip>\n </Stack>\n )\n}\n","import type { StackProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button, Stack,\n Typography,\n} from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isDefined, isUndefined } from '@xylabs/sdk-js'\nimport { ErrorRender } from '@xyo-network/react-error'\nimport type { ComponentType, MouseEventHandler } from 'react'\nimport React, { useEffect } from 'react'\n\nimport { useConnectAccount } from '../../hooks/index.ts'\nimport { ConnectedAccount } from './account/index.ts'\n\nconst DefaultConnectComponent: React.FC<ButtonExProps> = props => (\n <ButtonEx variant=\"contained\" size=\"small\" {...props} />\n)\n\nconst DefaultNoWalletInstalledComponent: React.FC = () => (\n <Alert severity=\"warning\">\n <AlertTitle>XL1 Wallet Not Found</AlertTitle>\n <Typography gutterBottom>\n Please ensure that your XL1 Wallet is installed to connect your account.\n </Typography>\n <Button\n sx={{ display: 'flex', justifySelf: 'end' }}\n size=\"small\"\n variant=\"outlined\"\n href=\"https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n Get XL1 Wallet\n </Button>\n </Alert>\n)\n\nexport interface ConnectClientAccountsStackProps extends StackProps {\n AccountComponent?: ComponentType<{ account?: string }>\n ConnectComponent?: ComponentType<{ onClick?: MouseEventHandler<HTMLElement> }>\n NoWalletInstalledComponent?: ComponentType\n onAccountConnected?: (account: Address) => void\n onCancel?: () => void\n timeout?: number\n}\n\nexport const ConnectAccountsStack: React.FC<ConnectClientAccountsStackProps> = ({\n AccountComponent = ConnectedAccount,\n ConnectComponent = DefaultConnectComponent,\n NoWalletInstalledComponent = DefaultNoWalletInstalledComponent,\n onAccountConnected,\n onCancel,\n timeout,\n ...props\n}) => {\n const {\n address, connectSigner, error, timedout,\n } = useConnectAccount(undefined, timeout)\n\n useEffect(() => {\n if (isDefined(error) && isDefined(onCancel)) {\n onCancel()\n }\n }, [error, onCancel])\n\n useEffect(() => {\n if (isDefined(address) && isDefined(onAccountConnected)) {\n onAccountConnected(address)\n }\n }, [address, onAccountConnected])\n\n return (\n <Stack direction=\"row\" alignItems=\"start\" spacing={2} {...props}>\n {isDefined(address)\n ? <AccountComponent address={address} />\n : null}\n {isUndefined(address) && !timedout\n ? (\n <ConnectComponent onClick={() => void connectSigner()}>Connect</ConnectComponent>\n )\n : null}\n {isUndefined(address) && timedout\n ? (\n <NoWalletInstalledComponent />\n )\n : null}\n <ErrorRender error={error} scope=\"ConnectSigner:error\" />\n </Stack>\n )\n}\n","import type { Address, Hex } from '@xylabs/sdk-js'\nimport { hexToBigInt } from '@xylabs/sdk-js'\nimport type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk'\n\nimport type { AccountBalanceHistoryItemFormatted } from '../BalanceHistoryItemFormatted.ts'\n\nexport const formatAccountBalanceHistory = (address: Address, history: AccountBalanceHistoryItem[]): AccountBalanceHistoryItemFormatted[] => {\n let results: AccountBalanceHistoryItemFormatted[] = []\n for (const item of history) {\n const [blockBw, txBw, transfer] = item\n if (address === transfer.from) {\n for (const [to, amount] of Object.entries(transfer.transfers)) {\n results.push({\n amount: hexToBigInt(amount as Hex),\n blockNumber: blockBw.block,\n from: transfer.from,\n timestamp: blockBw.$epoch,\n key: globalThis.crypto.randomUUID(),\n to: to as Address,\n txHash: txBw?._hash,\n debug: item,\n type: 'send',\n })\n }\n } else {\n results.push({\n amount: hexToBigInt(transfer.transfers[address] as Hex),\n blockNumber: blockBw.block,\n from: transfer.from,\n key: globalThis.crypto.randomUUID(),\n timestamp: blockBw.$epoch,\n to: address,\n txHash: txBw?._hash,\n debug: item,\n type: 'receive',\n })\n }\n }\n return results\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n type Address,\n isUndefined,\n} from '@xylabs/sdk-js'\nimport type { XL1BlockRange } from '@xyo-network/xl1-protocol'\nimport type { AccountBalanceHistoryItem, XyoViewer } from '@xyo-network/xl1-protocol-sdk'\n\nimport { balanceForRange, findMinimumBlock } from '../../lib/index.ts'\nimport { formatAccountBalanceHistory } from './helpers/index.ts'\n\nexport const useAccountBalanceHistory = (address?: Address, viewer?: XyoViewer, maxPage = 10, blockRange?: XL1BlockRange, refresh?: number) => {\n return usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n // Pagination Values\n let page = 1\n let lastBlock: number\n const pagedHistory: AccountBalanceHistoryItem[] = []\n const resolvedStartBlock = blockRange ? blockRange[0] : 0\n\n // Fetch first page to get starting lastBlock\n // If blockRange is provided, use that for the first fetch, otherwise the api will use [0, currentBlock]\n const history = await viewer.accountBalanceHistory(address, blockRange ? { range: blockRange } : {})\n if (history.length > 0) {\n pagedHistory.push(...history)\n // Set lastBlock to one less than the lowest block in the first page\n lastBlock = findMinimumBlock(history)\n while (page < maxPage) {\n // Fetch next page\n const nextHistory = await viewer.accountBalanceHistory(address, { range: [resolvedStartBlock, lastBlock] as XL1BlockRange })\n // Break if no more history\n if (nextHistory.length === 0) break\n // Update lastBlock and append to pagedHistory\n lastBlock = findMinimumBlock(nextHistory)\n pagedHistory.push(...nextHistory)\n // Increment page\n // Even if we are going to go over and break the loop, we still want to increment to show the answer was truncated\n page++\n }\n }\n const formattedHistory = formatAccountBalanceHistory(address, pagedHistory)\n\n return {\n history: formattedHistory,\n balance: balanceForRange(address, pagedHistory),\n truncated: page >= maxPage,\n }\n }, [address, viewer, refresh, blockRange, maxPage])\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport {\n hexToBigInt, isHex, toHex,\n} from '@xylabs/sdk-js'\nimport type { AttoXL1 } from '@xyo-network/xl1-protocol'\nimport type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk'\n\nexport const balanceForRange = (address: Address, results: AccountBalanceHistoryItem[]): [AttoXL1, AttoXL1] => {\n const totalReceivedBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return a + hexToBigInt(transfer.transfers[address] ?? toHex(0))\n }, 0n)\n // eslint-disable-next-line unicorn/no-array-reduce\n const totalSentBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return (transfer.from === address) ? a + Object.values(transfer.transfers).reduce((a, v) => a + (isHex(v) ? hexToBigInt(v) : 0n), 0n) : a\n }, 0n)\n return [totalReceivedBalance, totalSentBalance] as [AttoXL1, AttoXL1]\n}\n","import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk'\n\nexport const findMinimumBlock = (history: AccountBalanceHistoryItem[]): number => {\n // since taking Math.min of an empty array returns Infinity\n if (history.length === 0) return 0\n const blockNumbers = history.map(([blockBw]) => blockBw.block)\n const min = Math.min(...blockNumbers)\n return Math.max(min - 1, 0)\n}\n","import { isNull } from '@xylabs/sdk-js'\nimport type { XyoClient } from '@xyo-network/xl1-protocol-sdk'\nimport {\n useCallback, useEffect, useSyncExternalStore,\n} from 'react'\n\nimport { getXyoClient } from '../helpers/index.ts'\n\ninterface ClientState {\n client?: XyoClient\n error: Error | null\n isLoading: boolean\n timedout: boolean\n}\n\nlet currentState: ClientState = {\n client: undefined,\n error: null,\n isLoading: false,\n timedout: false,\n}\n\nconst listeners = new Set<() => void>()\n\nconst emitChange = () => {\n for (const listener of listeners) listener()\n}\n\nconst updateState = (newState: Partial<ClientState>) => {\n currentState = { ...currentState, ...newState }\n emitChange()\n}\n\nconst initializeClient = async (timeout?: number) => {\n if (currentState.isLoading || currentState.client) return\n\n updateState({ isLoading: true, error: null })\n\n try {\n const client = await getXyoClient(timeout)\n if (client === null) {\n updateState({ timedout: true, isLoading: false })\n return\n }\n updateState({\n client, isLoading: false, error: null,\n })\n } catch (error) {\n console.error('Error initializing XyoClient', error)\n updateState({ error: error as Error, isLoading: false })\n }\n}\n\nconst subscribe = (listener: () => void, timeout?: number) => {\n listeners.add(listener)\n\n void initializeClient(timeout)\n\n return () => {\n listeners.delete(listener)\n }\n}\n\nconst getSnapshot = (): ClientState => currentState\n\nexport const useClient = (timeout?: number) => {\n const subscribeWithTimeout = useCallback((listener: () => void) => subscribe(listener, timeout), [timeout])\n const clientState = useSyncExternalStore(subscribeWithTimeout, getSnapshot)\n\n useEffect(() => {\n // if client appears after timeout\n let listener = () => {\n // Update state when client becomes available\n updateState({\n client: globalThis.xyo?.client,\n isLoading: false,\n error: null,\n })\n // Notify listeners of the change\n emitChange()\n }\n // If we have timed out and still no client, listen for the plugin-ready event\n if (clientState.timedout && isNull(clientState.client) && !clientState.isLoading) {\n globalThis.addEventListener('xyo:plugin-ready', listener)\n }\n\n return () => {\n globalThis.removeEventListener('xyo:plugin-ready', listener)\n }\n })\n\n return clientState\n}\n","import { isUndefined } from '@xylabs/sdk-js'\nimport type { XyoClient } from '@xyo-network/xl1-protocol-sdk'\n\nconst CLIENT_LISTENER_TIMEOUT = 500\n\nconst hasXyoClient = () => {\n return 'client' in globalThis.xyo\n}\n\nexport const listenForClientInjection = (onClientReady: () => void, timeout: number, onTimeout: () => void) => {\n let resolved = false\n const listener: EventListener = () => {\n onClientReady()\n resolved = true\n }\n globalThis.addEventListener('xyo:plugin-ready', listener)\n setTimeout(() => {\n if (!resolved) {\n globalThis.removeEventListener('xyo:plugin-ready', listener)\n onTimeout()\n }\n }, timeout)\n}\n\ntype ReturnType = XyoClient | undefined | null\n\nexport async function getXyoClient(timeout = CLIENT_LISTENER_TIMEOUT): Promise<ReturnType> {\n // if no xyo object, we can bail early\n if (isUndefined(globalThis.xyo)) {\n return null\n }\n return hasXyoClient()\n ? globalThis.xyo.client\n // listen for the XyoWallet to be injected\n : await new Promise<ReturnType>((resolve) => {\n listenForClientInjection(\n () => {\n resolve(globalThis.xyo.client)\n },\n timeout,\n () => {\n resolve(null)\n },\n )\n })\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport {\n assertEx, delay, forget, isDefined, isNull,\n} from '@xylabs/sdk-js'\nimport type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol-sdk'\n\nexport type ConfirmationStatusUpdate = {\n blockNumber: number\n confirmed: boolean\n error?: Error\n progress?: number\n remainingBlocks?: number\n}\n\nexport type TransactionConfirmationParams = {\n onStatusUpdate?: (status: ConfirmationStatusUpdate) => void\n transaction: SignedHydratedTransaction\n txHash: Hash\n viewer: XyoViewer\n}\n\nexport class TransactionConfirmationStatus {\n private readonly _params: TransactionConfirmationParams\n private active = false\n\n constructor(params: TransactionConfirmationParams) {\n this._params = params\n }\n\n get exp(): number {\n return assertEx(this.transaction[0].exp, () => 'exp is not found, transaction is not set')\n }\n\n get nbf(): number {\n return assertEx(this.transaction[0].nbf, () => 'nbf is not found, transaction is not set')\n }\n\n get onStatusUpdate(): TransactionConfirmationParams['onStatusUpdate'] {\n return this._params.onStatusUpdate\n }\n\n get params(): TransactionConfirmationParams {\n return this._params\n }\n\n get transaction(): SignedHydratedTransaction {\n return this.params.transaction\n }\n\n get txHash(): Hash {\n return this.params.txHash\n }\n\n get viewer(): XyoViewer {\n return this.params.viewer\n }\n\n static create(params: TransactionConfirmationParams): Promisable<TransactionConfirmationStatus> {\n return new TransactionConfirmationStatus(params)\n }\n\n async start(): Promise<void> {\n this.active = true\n try {\n const currentBlockNumber = await this.viewer.currentBlockNumber()\n while (isDefined(currentBlockNumber) && this.active) {\n await this.checkBlock(currentBlockNumber)\n // check block every second to see if the transaction is confirmed\n await delay(1000)\n }\n } catch (error) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: error instanceof Error ? error : new Error('Unknown error occurred'),\n confirmed: false,\n blockNumber: 0,\n progress: 0,\n remainingBlocks: 0,\n }))\n }\n }\n\n stop(): Promisable<void> {\n this.active = false\n }\n\n private async checkBlock(blockNumber: number): Promise<void> {\n if (blockNumber < this.nbf) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),\n confirmed: false,\n blockNumber,\n progress: 0,\n remainingBlocks: this.exp - blockNumber,\n }))\n }\n if (blockNumber > this.exp) {\n forget(this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress: 100, remainingBlocks: 0,\n }))\n return\n }\n if (blockNumber < this.exp) {\n await this.checkConfirmation(blockNumber)\n }\n }\n\n private async checkConfirmation(blockNumber: number): Promise<void> {\n const remainingBlocks = this.exp - blockNumber\n const progress = Math.round(((blockNumber - this.nbf) / (this.exp - this.nbf)) * 100)\n\n const tx = await this.viewer.transactionByHash?.(this.txHash)\n if (isNull(tx)) {\n this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress, remainingBlocks,\n })\n } else {\n this.onStatusUpdate?.({\n confirmed: true, blockNumber, progress, remainingBlocks,\n })\n await this.stop()\n }\n }\n}\n","import { useClient } from '../useClient.ts'\n\nexport const usePermissions = () => {\n const {\n client, isLoading, error, timedout,\n } = useClient()\n const permissions = client?.permissions\n return {\n permissions,\n isLoading,\n error,\n timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { JsonValue } from '@xylabs/sdk-js'\nimport {\n isArray, isDefined, isDefinedNotNull, isString,\n} from '@xylabs/sdk-js'\n\nimport { findCaveat } from '../helpers/index.ts'\nimport { usePermissions } from './usePermissions.ts'\n\nconst validateRestrictedAccounts = (restrictedAccounts: JsonValue): readonly string [] => {\n if (isDefined(restrictedAccounts)) {\n if (isArray(restrictedAccounts) && restrictedAccounts.every(isString)) {\n return restrictedAccounts\n }\n throw new Error(\n `Unrecognized format for restrictReturnedAccounts caveat found on permissions. \\n\n Should be an array of strings: ${JSON.stringify(restrictedAccounts)}`,\n )\n }\n return []\n}\n\nexport const useAccountPermissions = () => {\n const { permissions, error } = usePermissions()\n\n return usePromise(async () => {\n if (isDefinedNotNull(error)) throw error\n if (isDefined(permissions)) {\n const restrictedAccounts = await findCaveat(\n permissions,\n // TODO - extract to constant in protocol package\n 'xyoWallet_getAccounts',\n 'restrictReturnedAccounts',\n )\n return validateRestrictedAccounts(restrictedAccounts)\n }\n }, [permissions])\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport type {\n CaveatTypes, ParentCapability, XyoPermissions,\n} from '@xyo-network/xl1-protocol-sdk'\n\nexport const findCaveat = async (\n permissions: XyoPermissions,\n targetCapability: ParentCapability,\n targetCaveatType: CaveatTypes,\n) => {\n const existingPermissions = await permissions.getPermissions()\n if (isDefined(existingPermissions) && existingPermissions.length > 0) {\n const foundPermissions = existingPermissions\n .find(p => p.parentCapability === targetCapability)\n if (isDefined(foundPermissions)) {\n return foundPermissions.caveats?.find(caveat => caveat.type === targetCaveatType)?.value ?? []\n }\n }\n return existingPermissions\n}\n","import { isDefined, isNull } from '@xylabs/sdk-js'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\n\nimport { useClient } from './useClient.ts'\n\nexport const useGateway = (gatewayName?: GatewayName, timeout?: number) => {\n const {\n client, isLoading, error, timedout,\n } = useClient(timeout)\n\n const resolveGateway = () => {\n // null client means we do not have to wait for timedout\n if (isNull(client)) return null\n if (timedout && !isLoading && isDefined(gatewayName)) {\n return null\n }\n return client?.gateways?.[gatewayName!]\n }\n\n return {\n gateway: gatewayName ? resolveGateway() : undefined,\n isLoading,\n error,\n timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { AttoXL1 } from '@xyo-network/xl1-protocol'\nimport { ShiftedBigInt } from '@xyo-network/xl1-protocol'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol-sdk'\nimport {\n useMemo, useRef, useState,\n} from 'react'\n\nexport const useAddressBalance = (\n // address to get balance for\n address?: Address,\n // viewer to use for fetching balance\n viewer?: XyoViewer,\n // refresh balance trigger\n refresh?: number,\n) => {\n const [balancesResult, setBalancesResult] = useState<AttoXL1 | null>()\n const [loading, setLoading] = useState(false)\n const [balancesError, setBalancesError] = useState<Error>()\n\n const balancePromiseRef = useRef<Promise<AttoXL1> | null>(null)\n usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n setLoading(true)\n setBalancesError(undefined)\n\n // Create and store the current promise\n const currentPromise = viewer.accountBalance(address) as Promise<AttoXL1>\n balancePromiseRef.current = currentPromise\n\n try {\n const result = await currentPromise\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n setBalancesResult(result as AttoXL1)\n setLoading(false)\n }\n } catch (err) {\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n console.error('Error in queued call:', err)\n setBalancesResult(undefined)\n setBalancesError(err as Error)\n setLoading(false)\n }\n }\n }, [address, viewer, refresh])\n\n useMemo(() => {\n if (balancesError) {\n setLoading(false)\n }\n }, [balancesError])\n\n const shiftedBigInt = useMemo(() => {\n if (typeof balancesResult !== 'bigint') return\n return new ShiftedBigInt(balancesResult, {\n places: 18, maxDecimal: 18, maxCharacters: 9, minDecimals: 1, locale: navigator.language,\n })\n }, [balancesResult])\n\n const balanceIntlFriendly = useMemo(() => {\n return shiftedBigInt?.toFullString()\n }, [shiftedBigInt])\n\n const shortBalanceIntlFriendly = useMemo(() => {\n return isUndefinedOrNull(balancesResult)\n ? undefined\n : (balancesResult < 1_000_000_000_000n && balancesResult > 0n) ? '<0.00001' : shiftedBigInt?.toShortString()\n }, [shiftedBigInt])\n\n return {\n address,\n balanceForAddress: balancesResult,\n balanceIntlFriendly,\n shortBalanceIntlFriendly,\n error: balancesError,\n loading,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Hash } from '@xylabs/sdk-js'\nimport {\n forget, isDefined, isHash,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'\nimport type { XyoRunner, XyoViewer } from '@xyo-network/xl1-protocol-sdk'\nimport { useEffect, useState } from 'react'\n\nimport type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts'\nimport { TransactionConfirmationStatus } from './helpers/index.ts'\n\nexport const useConfirmTransactionBase = (\n // The transaction to confirm\n transaction?: SignedHydratedTransaction,\n // Callback for when the transaction is broadcast to the network\n onBroadcast?: (hash: Hash) => void,\n // Optional callback for status updates during confirmation\n onStatusUpdate?: TransactionConfirmationParams['onStatusUpdate'],\n // Runner to use for broadcasting transactions\n runner?: XyoRunner,\n // Viewer to use for checking transaction status\n viewer?: XyoViewer,\n) => {\n const [status, setStatus] = useState<ConfirmationStatusUpdate>()\n const onStatusUpdateLocal = (newStatus: ConfirmationStatusUpdate) => {\n setStatus(newStatus)\n onStatusUpdate?.(newStatus)\n }\n\n const [transactionConfirmationStatus, transactionConfirmationError] = usePromise(async () => {\n const hasRunner = isDefined(runner)\n if (transaction && viewer) {\n const hash = hasRunner ? (await runner.broadcastTransaction(transaction)) : await PayloadBuilder.hash(transaction[0])\n if (isHash(hash)) {\n if (hasRunner && isDefined(onBroadcast)) onBroadcast(hash)\n const params: TransactionConfirmationParams = {\n onStatusUpdate: onStatusUpdateLocal,\n transaction,\n txHash: hash,\n viewer,\n }\n const instance = await TransactionConfirmationStatus.create(params)\n await instance.start()\n return instance\n } else {\n throw new Error('unexpected return type from broadcast transaction')\n }\n }\n }, [transaction, runner, viewer])\n\n useEffect(() => {\n return () => {\n if (transactionConfirmationStatus) {\n // Stop the transaction confirmation status instance when the component unmounts\n forget(transactionConfirmationStatus.stop())\n }\n }\n }, [transactionConfirmationStatus])\n\n return { status, transactionConfirmationError }\n}\n","import { type Address, asAddress } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport { MainNetwork } from '@xyo-network/xl1-network-model'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\nimport { useCallback, useState } from 'react'\n\nimport { useAccountPermissions, useGateway } from './client/index.ts'\n\nexport const useConnectAccount = (gatewayName: GatewayName = MainNetwork.id, timeout?: number) => {\n const [connectError, setConnectError] = useState<Error>()\n\n const {\n gateway, error, timedout,\n } = useGateway(gatewayName, timeout)\n\n const [accountPermissions, accountPermissionsError] = useAccountPermissions()\n\n const [address, setAddress] = useState<Address>()\n\n const connectSigner = useCallback(async () => {\n try {\n setConnectError(undefined)\n const assertedGateway = assertEx(gateway, () => `Gateway ${gatewayName} is not available`)\n const signer = assertedGateway.signerInstance\n const address = await signer.address()\n setAddress(address)\n return address\n } catch (e) {\n setConnectError(e as Error)\n }\n }, [gateway, gatewayName])\n\n return {\n address: asAddress(accountPermissions?.[0] ?? address), connectSigner, error: error ?? accountPermissionsError ?? connectError, gateway, timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isDefinedNotNull } from '@xylabs/sdk-js'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol-sdk'\n\nexport const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null) => {\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport { XyoRunnerMoniker } from '@xyo-network/xl1-protocol-sdk'\nimport { buildJsonRpcProviderLocator } from '@xyo-network/xl1-providers'\nimport type {\n JsonRpcXyoRunner, RpcSchemaMap, TransportFactory,\n} from '@xyo-network/xl1-rpc'\nimport { HttpRpcTransport } from '@xyo-network/xl1-rpc'\n\nexport const useHttpRpcRunner = (url?: string) => {\n return usePromise(async () => {\n if (isUndefined(url)) {\n return\n }\n const transportFactory: TransportFactory = (schemas: RpcSchemaMap) => new HttpRpcTransport(`${url}/rpc`, schemas)\n const locator = await buildJsonRpcProviderLocator({ transportFactory })\n return await locator.getInstance<JsonRpcXyoRunner>(XyoRunnerMoniker)\n }, [url])\n}\n","import { isUndefined } from '@xylabs/sdk-js'\nimport type { DefaultNetworkIds } from '@xyo-network/xl1-protocol'\nimport { SimpleXyoNetwork } from '@xyo-network/xl1-protocol-sdk'\nimport { useMemo } from 'react'\n\nexport const useNetwork = (id?: DefaultNetworkIds) => {\n const network = useMemo(() => {\n if (isUndefined(id)) return\n return new SimpleXyoNetwork(id)\n }, [id])\n\n return network\n}\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport {\n SimpleXyoSigner, type XyoConnection, type XyoSigner,\n} from '@xyo-network/xl1-protocol-sdk'\nimport { useMemo } from 'react'\n\nexport const useSigner = (_provider?: XyoConnection, account?: AccountInstance) => {\n return useMemo<XyoSigner | undefined>(() => account ? new SimpleXyoSigner(account) : undefined, [account])\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n delay, isDefined, isUndefined,\n} from '@xylabs/sdk-js'\nimport { LocalNetwork, SequenceNetwork } from '@xyo-network/xl1-network-model'\nimport { XyoViewerMoniker } from '@xyo-network/xl1-protocol-sdk'\nimport { buildJsonRpcProviderLocator } from '@xyo-network/xl1-providers'\nimport type {\n JsonRpcXyoViewer, RpcSchemaMap, TransportFactory,\n} from '@xyo-network/xl1-rpc'\nimport { HttpRpcTransport } from '@xyo-network/xl1-rpc'\nimport { useEffect, useState } from 'react'\n\nconst INTERVAL = 5000 // 5 seconds\n\nconst localRpcEndpoint: string = `${LocalNetwork.url}/rpc`\nconst sequenceRpcEndpoint: string = `${SequenceNetwork.url}/rpc`\n\nexport const useCheckLocalRpc = () => {\n const isLocalProducer = useCheckRpc(localRpcEndpoint)\n return isLocalProducer\n}\n\nexport const useCheckSequenceRpc = () => {\n const isLocalProducer = useCheckRpc(sequenceRpcEndpoint)\n return isLocalProducer\n}\n\nexport const useCheckRpc = (endpoint?: string) => {\n const [isLocalProducer, setIsLocalProducer] = useState(false)\n const [error, setError] = useState<Error>()\n\n const [viewer] = usePromise(async () => {\n if (isUndefined(endpoint)) return\n\n const transportFactory: TransportFactory = (schemas: RpcSchemaMap) => new HttpRpcTransport(endpoint, schemas)\n const locator = await buildJsonRpcProviderLocator({ transportFactory })\n const viewer = await locator.getInstance<JsonRpcXyoViewer>(XyoViewerMoniker)\n return viewer\n }, [endpoint])\n\n useEffect(() => {\n if (isUndefined(viewer)) return\n\n void (async () => {\n setError(undefined)\n while (!isLocalProducer) {\n try {\n const block = await viewer.currentBlock()\n setIsLocalProducer(isDefined(block))\n } catch (err) {\n setError(err as Error)\n setIsLocalProducer(false)\n }\n await delay(INTERVAL)\n }\n })()\n }, [viewer])\n\n return { isLocalProducer, error }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport { type XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol-sdk'\nimport { buildJsonRpcProviderLocator } from '@xyo-network/xl1-providers'\nimport type {\n JsonRpcXyoViewer, RpcSchemaMap, TransportFactory,\n} from '@xyo-network/xl1-rpc'\nimport { HttpRpcTransport } from '@xyo-network/xl1-rpc'\n\nexport const useHttpRpcViewer = (url?: string): XyoViewer | undefined => {\n const [resolvedViewer] = usePromise(async () => {\n if (isUndefined(url)) {\n return\n }\n const transportFactory: TransportFactory = (schemas: RpcSchemaMap) => new HttpRpcTransport(`${url}/rpc`, schemas)\n const locator = await buildJsonRpcProviderLocator({ transportFactory })\n return await locator.getInstance<JsonRpcXyoViewer>(XyoViewerMoniker)\n }, [url])\n\n return resolvedViewer\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n isDefined, isDefinedNotNull, isNull,\n} from '@xylabs/sdk-js'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\n\nimport { useGateway } from '../client/index.ts'\n\n/**\n * Creates a JsonRpcXyoViewer instance based on the provided networkId.\n * @param networkId - a network id like 'sequence', 'local', etc.\n * @returns An instance of XyoViewer if the networkId is found in wallet gateways\n * otherwise undefined.\n */\nexport const useViewerFromWallet = (\n networkId?: GatewayName,\n timeout?: number,\n) => {\n const {\n gateway, error, isLoading, timedout,\n } = useGateway(networkId, timeout)\n\n const result = usePromise(async () => {\n if (isDefinedNotNull(error)) return null\n if (isLoading) return\n if (timedout && isNull(gateway)) return null\n if (isDefined(gateway) && isDefined(networkId)) {\n const connection = await gateway?.connection()\n return connection?.viewer\n }\n }, [gateway, networkId, timeout])\n\n return result\n}\n"],"mappings":"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","names":["Stack","Tooltip","Typography","EthAddressWrapper","BlockiesAvatarAddress","React","ConnectedAccount","address","shortenedAddress","EthAddressWrapper","fromString","toShortString","Stack","direction","alignItems","spacing","BlockiesAvatarAddress","size","Tooltip","title","Typography","color","variant","fontFamily","Alert","AlertTitle","Button","Stack","Typography","ButtonEx","isDefined","isUndefined","ErrorRender","React","useEffect","hexToBigInt","formatAccountBalanceHistory","address","history","results","item","blockBw","txBw","transfer","from","to","amount","Object","entries","transfers","push","hexToBigInt","blockNumber","block","timestamp","$epoch","key","globalThis","crypto","randomUUID","txHash","_hash","debug","type","usePromise","isUndefined","hexToBigInt","isHex","toHex","balanceForRange","address","results","totalReceivedBalance","reduce","a","_block","_tx","transfer","hexToBigInt","transfers","toHex","totalSentBalance","from","Object","values","v","isHex","findMinimumBlock","history","length","blockNumbers","map","blockBw","block","min","Math","max","useAccountBalanceHistory","address","viewer","maxPage","blockRange","refresh","usePromise","isUndefined","page","lastBlock","pagedHistory","resolvedStartBlock","history","accountBalanceHistory","range","length","push","findMinimumBlock","nextHistory","formattedHistory","formatAccountBalanceHistory","balance","balanceForRange","truncated","isNull","useCallback","useEffect","useSyncExternalStore","isUndefined","CLIENT_LISTENER_TIMEOUT","hasXyoClient","globalThis","xyo","listenForClientInjection","onClientReady","timeout","onTimeout","resolved","listener","addEventListener","setTimeout","removeEventListener","getXyoClient","isUndefined","client","Promise","resolve","assertEx","delay","forget","isDefined","isNull","TransactionConfirmationStatus","_params","active","params","exp","assertEx","transaction","nbf","onStatusUpdate","txHash","viewer","create","start","currentBlockNumber","isDefined","checkBlock","delay","error","stop","forget","Error","confirmed","blockNumber","progress","remainingBlocks","checkConfirmation","Math","round","tx","transactionByHash","isNull","currentState","client","undefined","error","isLoading","timedout","listeners","Set","emitChange","listener","updateState","newState","initializeClient","timeout","getXyoClient","console","subscribe","add","delete","getSnapshot","useClient","subscribeWithTimeout","useCallback","clientState","useSyncExternalStore","useEffect","globalThis","xyo","isNull","addEventListener","removeEventListener","usePermissions","client","isLoading","error","timedout","useClient","permissions","usePromise","isArray","isDefined","isDefinedNotNull","isString","isDefined","findCaveat","permissions","targetCapability","targetCaveatType","existingPermissions","getPermissions","isDefined","length","foundPermissions","find","p","parentCapability","caveats","caveat","type","value","validateRestrictedAccounts","restrictedAccounts","isDefined","isArray","every","isString","Error","JSON","stringify","useAccountPermissions","permissions","error","usePermissions","usePromise","isDefinedNotNull","findCaveat","isDefined","isNull","useGateway","gatewayName","timeout","client","isLoading","error","timedout","useClient","resolveGateway","isNull","isDefined","gateways","gateway","undefined","usePromise","isUndefined","isUndefinedOrNull","ShiftedBigInt","useMemo","useRef","useState","useAddressBalance","address","viewer","refresh","balancesResult","setBalancesResult","useState","loading","setLoading","balancesError","setBalancesError","balancePromiseRef","useRef","usePromise","isUndefined","undefined","currentPromise","accountBalance","current","result","err","console","error","useMemo","shiftedBigInt","ShiftedBigInt","places","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","balanceIntlFriendly","toFullString","shortBalanceIntlFriendly","isUndefinedOrNull","toShortString","balanceForAddress","usePromise","forget","isDefined","isHash","PayloadBuilder","useEffect","useState","useConfirmTransactionBase","transaction","onBroadcast","onStatusUpdate","runner","viewer","status","setStatus","useState","onStatusUpdateLocal","newStatus","transactionConfirmationStatus","transactionConfirmationError","usePromise","hasRunner","isDefined","hash","broadcastTransaction","PayloadBuilder","isHash","params","txHash","instance","TransactionConfirmationStatus","create","start","Error","useEffect","forget","stop","asAddress","assertEx","MainNetwork","useCallback","useState","useConnectAccount","gatewayName","MainNetwork","id","timeout","connectError","setConnectError","useState","gateway","error","timedout","useGateway","accountPermissions","accountPermissionsError","useAccountPermissions","address","setAddress","connectSigner","useCallback","undefined","assertedGateway","assertEx","signer","signerInstance","e","asAddress","usePromise","isDefinedNotNull","useCurrentBlock","refresh","viewer","usePromise","isDefinedNotNull","block","currentBlock","usePromise","isUndefined","XyoRunnerMoniker","buildJsonRpcProviderLocator","HttpRpcTransport","useHttpRpcRunner","url","usePromise","isUndefined","transportFactory","schemas","HttpRpcTransport","locator","buildJsonRpcProviderLocator","getInstance","XyoRunnerMoniker","isUndefined","SimpleXyoNetwork","useMemo","useNetwork","id","network","useMemo","isUndefined","SimpleXyoNetwork","SimpleXyoSigner","useMemo","useSigner","_provider","account","useMemo","SimpleXyoSigner","undefined","usePromise","delay","isDefined","isUndefined","LocalNetwork","SequenceNetwork","XyoViewerMoniker","buildJsonRpcProviderLocator","HttpRpcTransport","useEffect","useState","INTERVAL","localRpcEndpoint","LocalNetwork","url","sequenceRpcEndpoint","SequenceNetwork","useCheckLocalRpc","isLocalProducer","useCheckRpc","useCheckSequenceRpc","endpoint","setIsLocalProducer","useState","error","setError","viewer","usePromise","isUndefined","transportFactory","schemas","HttpRpcTransport","locator","buildJsonRpcProviderLocator","getInstance","XyoViewerMoniker","useEffect","undefined","block","currentBlock","isDefined","err","delay","usePromise","isUndefined","XyoViewerMoniker","buildJsonRpcProviderLocator","HttpRpcTransport","useHttpRpcViewer","url","resolvedViewer","usePromise","isUndefined","transportFactory","schemas","HttpRpcTransport","locator","buildJsonRpcProviderLocator","getInstance","XyoViewerMoniker","usePromise","isDefined","isDefinedNotNull","isNull","useViewerFromWallet","networkId","timeout","gateway","error","isLoading","timedout","useGateway","result","usePromise","isDefinedNotNull","isNull","isDefined","connection","viewer","DefaultConnectComponent","props","React","ButtonEx","variant","size","DefaultNoWalletInstalledComponent","Alert","severity","AlertTitle","Typography","gutterBottom","Button","sx","display","justifySelf","href","target","rel","ConnectAccountsStack","AccountComponent","ConnectedAccount","ConnectComponent","NoWalletInstalledComponent","onAccountConnected","onCancel","timeout","address","connectSigner","error","timedout","useConnectAccount","undefined","useEffect","isDefined","Stack","direction","alignItems","spacing","isUndefined","onClick","ErrorRender","scope"]}
1
+ {"version":3,"sources":["../../src/components/connected/account/Connected.tsx","../../src/components/connected/ConnectAccountsStack.tsx","../../src/hooks/account/helpers/formatAccountBalanceHistory.ts","../../src/hooks/account/useAccountBalanceHistory.ts","../../src/lib/balanceForRange.ts","../../src/lib/findMinimumBlock.ts","../../src/hooks/client/useClient.ts","../../src/hooks/helpers/getXyoClient.ts","../../src/hooks/helpers/transaction/Confirmation.ts","../../src/hooks/client/permissions/usePermissions.ts","../../src/hooks/client/permissions/usePermissionsAccounts.ts","../../src/hooks/client/helpers/findCaveat.ts","../../src/hooks/client/useGateway.ts","../../src/hooks/useAddressBalance.ts","../../src/hooks/useConfirmTransactionBase.ts","../../src/hooks/useConnectAccount.ts","../../src/hooks/useCurrentBlock.ts","../../src/hooks/useHttpRpcRunner.ts","../../src/hooks/useNetwork.ts","../../src/hooks/useSigner.ts","../../src/hooks/viewer/useCheckRpc.ts","../../src/hooks/viewer/useHttpRpcViewer.ts","../../src/hooks/viewer/useViewerFromWallet.ts"],"sourcesContent":["import {\n Stack, Tooltip, Typography,\n} from '@mui/material'\nimport { EthAddressWrapper } from '@xylabs/sdk-js'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport React from 'react'\n\nexport const ConnectedAccount: React.FC<{ address: string }> = ({ address }) => {\n const shortenedAddress = `${EthAddressWrapper.fromString(address)?.toShortString(4)}`\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <BlockiesAvatarAddress address={address} size={21} />\n <Tooltip title={address}>\n <Typography color=\"textSecondary\" variant=\"caption\" fontFamily=\"monospace\">{shortenedAddress}</Typography>\n </Tooltip>\n </Stack>\n )\n}\n","import type { StackProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button, Stack,\n Typography,\n} from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isDefined, isUndefined } from '@xylabs/sdk-js'\nimport { ErrorRender } from '@xyo-network/react-error'\nimport type { ComponentType, MouseEventHandler } from 'react'\nimport React, { useEffect } from 'react'\n\nimport { useConnectAccount } from '../../hooks/index.ts'\nimport { ConnectedAccount } from './account/index.ts'\n\nconst DefaultConnectComponent: React.FC<ButtonExProps> = props => (\n <ButtonEx variant=\"contained\" size=\"small\" {...props} />\n)\n\nconst DefaultNoWalletInstalledComponent: React.FC = () => (\n <Alert severity=\"warning\">\n <AlertTitle>XL1 Wallet Not Found</AlertTitle>\n <Typography gutterBottom>\n Please ensure that your XL1 Wallet is installed to connect your account.\n </Typography>\n <Button\n sx={{ display: 'flex', justifySelf: 'end' }}\n size=\"small\"\n variant=\"outlined\"\n href=\"https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n Get XL1 Wallet\n </Button>\n </Alert>\n)\n\nexport interface ConnectClientAccountsStackProps extends StackProps {\n AccountComponent?: ComponentType<{ account?: string }>\n ConnectComponent?: ComponentType<{ onClick?: MouseEventHandler<HTMLElement> }>\n NoWalletInstalledComponent?: ComponentType\n onAccountConnected?: (account: Address) => void\n onCancel?: () => void\n timeout?: number\n}\n\nexport const ConnectAccountsStack: React.FC<ConnectClientAccountsStackProps> = ({\n AccountComponent = ConnectedAccount,\n ConnectComponent = DefaultConnectComponent,\n NoWalletInstalledComponent = DefaultNoWalletInstalledComponent,\n onAccountConnected,\n onCancel,\n timeout,\n ...props\n}) => {\n const {\n address, connectSigner, error, timedout,\n } = useConnectAccount(undefined, timeout)\n\n useEffect(() => {\n if (isDefined(error) && isDefined(onCancel)) {\n onCancel()\n }\n }, [error, onCancel])\n\n useEffect(() => {\n if (isDefined(address) && isDefined(onAccountConnected)) {\n onAccountConnected(address)\n }\n }, [address, onAccountConnected])\n\n return (\n <Stack direction=\"row\" alignItems=\"start\" spacing={2} {...props}>\n {isDefined(address)\n ? <AccountComponent address={address} />\n : null}\n {isUndefined(address) && !timedout\n ? (\n <ConnectComponent onClick={() => void connectSigner()}>Connect</ConnectComponent>\n )\n : null}\n {isUndefined(address) && timedout\n ? (\n <NoWalletInstalledComponent />\n )\n : null}\n <ErrorRender error={error} scope=\"ConnectSigner:error\" />\n </Stack>\n )\n}\n","import type { Address, Hex } from '@xylabs/sdk-js'\nimport { hexToBigInt } from '@xylabs/sdk-js'\nimport type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'\n\nimport type { AccountBalanceHistoryItemFormatted } from '../BalanceHistoryItemFormatted.ts'\n\nexport const formatAccountBalanceHistory = (address: Address, history: AccountBalanceHistoryItem[]): AccountBalanceHistoryItemFormatted[] => {\n let results: AccountBalanceHistoryItemFormatted[] = []\n for (const item of history) {\n const [blockBw, txBw, transfer] = item\n if (address === transfer.from) {\n for (const [to, amount] of Object.entries(transfer.transfers)) {\n results.push({\n amount: hexToBigInt(amount as Hex),\n blockNumber: blockBw.block,\n from: transfer.from,\n timestamp: blockBw.$epoch,\n key: globalThis.crypto.randomUUID(),\n to: to as Address,\n txHash: txBw?._hash,\n debug: item,\n type: 'send',\n })\n }\n } else {\n results.push({\n amount: hexToBigInt(transfer.transfers[address] as Hex),\n blockNumber: blockBw.block,\n from: transfer.from,\n key: globalThis.crypto.randomUUID(),\n timestamp: blockBw.$epoch,\n to: address,\n txHash: txBw?._hash,\n debug: item,\n type: 'receive',\n })\n }\n }\n return results\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n type Address,\n isUndefined,\n} from '@xylabs/sdk-js'\nimport type {\n AccountBalanceHistoryItem, XL1BlockRange, XyoViewer,\n} from '@xyo-network/xl1-sdk'\n\nimport { balanceForRange, findMinimumBlock } from '../../lib/index.ts'\nimport { formatAccountBalanceHistory } from './helpers/index.ts'\n\nexport const useAccountBalanceHistory = (address?: Address, viewer?: XyoViewer, maxPage = 10, blockRange?: XL1BlockRange, refresh?: number) => {\n return usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n // Pagination Values\n let page = 1\n let lastBlock: number\n const pagedHistory: AccountBalanceHistoryItem[] = []\n const resolvedStartBlock = blockRange ? blockRange[0] : 0\n\n // Fetch first page to get starting lastBlock\n // If blockRange is provided, use that for the first fetch, otherwise the api will use [0, currentBlock]\n const history = await viewer.accountBalanceHistory(address, blockRange ? { range: blockRange } : {})\n if (history.length > 0) {\n pagedHistory.push(...history)\n // Set lastBlock to one less than the lowest block in the first page\n lastBlock = findMinimumBlock(history)\n while (page < maxPage) {\n // Fetch next page\n const nextHistory = await viewer.accountBalanceHistory(address, { range: [resolvedStartBlock, lastBlock] as XL1BlockRange })\n // Break if no more history\n if (nextHistory.length === 0) break\n // Update lastBlock and append to pagedHistory\n lastBlock = findMinimumBlock(nextHistory)\n pagedHistory.push(...nextHistory)\n // Increment page\n // Even if we are going to go over and break the loop, we still want to increment to show the answer was truncated\n page++\n }\n }\n const formattedHistory = formatAccountBalanceHistory(address, pagedHistory)\n\n return {\n history: formattedHistory,\n balance: balanceForRange(address, pagedHistory),\n truncated: page >= maxPage,\n }\n }, [address, viewer, refresh, blockRange, maxPage])\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport {\n hexToBigInt, isHex, toHex,\n} from '@xylabs/sdk-js'\nimport type { AccountBalanceHistoryItem, AttoXL1 } from '@xyo-network/xl1-sdk'\n\nexport const balanceForRange = (address: Address, results: AccountBalanceHistoryItem[]): [AttoXL1, AttoXL1] => {\n const totalReceivedBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return a + hexToBigInt(transfer.transfers[address] ?? toHex(0))\n }, 0n)\n // eslint-disable-next-line unicorn/no-array-reduce\n const totalSentBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return (transfer.from === address) ? a + Object.values(transfer.transfers).reduce((a, v) => a + (isHex(v) ? hexToBigInt(v) : 0n), 0n) : a\n }, 0n)\n return [totalReceivedBalance, totalSentBalance] as [AttoXL1, AttoXL1]\n}\n","import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'\n\nexport const findMinimumBlock = (history: AccountBalanceHistoryItem[]): number => {\n // since taking Math.min of an empty array returns Infinity\n if (history.length === 0) return 0\n const blockNumbers = history.map(([blockBw]) => blockBw.block)\n const min = Math.min(...blockNumbers)\n return Math.max(min - 1, 0)\n}\n","import { isNull } from '@xylabs/sdk-js'\nimport type { XyoClient } from '@xyo-network/xl1-sdk'\nimport {\n useCallback, useEffect, useSyncExternalStore,\n} from 'react'\n\nimport { getXyoClient } from '../helpers/index.ts'\n\ninterface ClientState {\n client?: XyoClient\n error: Error | null\n isLoading: boolean\n timedout: boolean\n}\n\nlet currentState: ClientState = {\n client: undefined,\n error: null,\n isLoading: false,\n timedout: false,\n}\n\nconst listeners = new Set<() => void>()\n\nconst emitChange = () => {\n for (const listener of listeners) listener()\n}\n\nconst updateState = (newState: Partial<ClientState>) => {\n currentState = { ...currentState, ...newState }\n emitChange()\n}\n\nconst initializeClient = async (timeout?: number) => {\n if (currentState.isLoading || currentState.client) return\n\n updateState({ isLoading: true, error: null })\n\n try {\n const client = await getXyoClient(timeout)\n if (client === null) {\n updateState({ timedout: true, isLoading: false })\n return\n }\n updateState({\n client, isLoading: false, error: null,\n })\n } catch (error) {\n console.error('Error initializing XyoClient', error)\n updateState({ error: error as Error, isLoading: false })\n }\n}\n\nconst subscribe = (listener: () => void, timeout?: number) => {\n listeners.add(listener)\n\n void initializeClient(timeout)\n\n return () => {\n listeners.delete(listener)\n }\n}\n\nconst getSnapshot = (): ClientState => currentState\n\nexport const useClient = (timeout?: number) => {\n const subscribeWithTimeout = useCallback((listener: () => void) => subscribe(listener, timeout), [timeout])\n const clientState = useSyncExternalStore(subscribeWithTimeout, getSnapshot)\n\n useEffect(() => {\n // if client appears after timeout\n let listener = () => {\n // Update state when client becomes available\n updateState({\n client: globalThis.xyo?.client,\n isLoading: false,\n error: null,\n })\n // Notify listeners of the change\n emitChange()\n }\n // If we have timed out and still no client, listen for the plugin-ready event\n if (clientState.timedout && isNull(clientState.client) && !clientState.isLoading) {\n globalThis.addEventListener('xyo:plugin-ready', listener)\n }\n\n return () => {\n globalThis.removeEventListener('xyo:plugin-ready', listener)\n }\n })\n\n return clientState\n}\n","import { isUndefined } from '@xylabs/sdk-js'\nimport type { XyoClient } from '@xyo-network/xl1-sdk'\n\nconst CLIENT_LISTENER_TIMEOUT = 500\n\nconst hasXyoClient = () => {\n return 'client' in globalThis.xyo\n}\n\nexport const listenForClientInjection = (onClientReady: () => void, timeout: number, onTimeout: () => void) => {\n let resolved = false\n const listener: EventListener = () => {\n onClientReady()\n resolved = true\n }\n globalThis.addEventListener('xyo:plugin-ready', listener)\n setTimeout(() => {\n if (!resolved) {\n globalThis.removeEventListener('xyo:plugin-ready', listener)\n onTimeout()\n }\n }, timeout)\n}\n\ntype ReturnType = XyoClient | undefined | null\n\nexport async function getXyoClient(timeout = CLIENT_LISTENER_TIMEOUT): Promise<ReturnType> {\n // if no xyo object, we can bail early\n if (isUndefined(globalThis.xyo)) {\n return null\n }\n return hasXyoClient()\n ? globalThis.xyo.client\n // listen for the XyoWallet to be injected\n : await new Promise<ReturnType>((resolve) => {\n listenForClientInjection(\n () => {\n resolve(globalThis.xyo.client)\n },\n timeout,\n () => {\n resolve(null)\n },\n )\n })\n}\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport {\n assertEx, delay, forget, isDefined, isNull,\n} from '@xylabs/sdk-js'\nimport type { SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-sdk'\n\nexport type ConfirmationStatusUpdate = {\n blockNumber: number\n confirmed: boolean\n error?: Error\n progress?: number\n remainingBlocks?: number\n}\n\nexport type TransactionConfirmationParams = {\n onStatusUpdate?: (status: ConfirmationStatusUpdate) => void\n transaction: SignedHydratedTransaction\n txHash: Hash\n viewer: XyoViewer\n}\n\nexport class TransactionConfirmationStatus {\n private readonly _params: TransactionConfirmationParams\n private active = false\n\n constructor(params: TransactionConfirmationParams) {\n this._params = params\n }\n\n get exp(): number {\n return assertEx(this.transaction[0].exp, () => 'exp is not found, transaction is not set')\n }\n\n get nbf(): number {\n return assertEx(this.transaction[0].nbf, () => 'nbf is not found, transaction is not set')\n }\n\n get onStatusUpdate(): TransactionConfirmationParams['onStatusUpdate'] {\n return this._params.onStatusUpdate\n }\n\n get params(): TransactionConfirmationParams {\n return this._params\n }\n\n get transaction(): SignedHydratedTransaction {\n return this.params.transaction\n }\n\n get txHash(): Hash {\n return this.params.txHash\n }\n\n get viewer(): XyoViewer {\n return this.params.viewer\n }\n\n static create(params: TransactionConfirmationParams): Promisable<TransactionConfirmationStatus> {\n return new TransactionConfirmationStatus(params)\n }\n\n async start(): Promise<void> {\n this.active = true\n try {\n const currentBlockNumber = await this.viewer.currentBlockNumber()\n while (isDefined(currentBlockNumber) && this.active) {\n await this.checkBlock(currentBlockNumber)\n // check block every second to see if the transaction is confirmed\n await delay(1000)\n }\n } catch (error) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: error instanceof Error ? error : new Error('Unknown error occurred'),\n confirmed: false,\n blockNumber: 0,\n progress: 0,\n remainingBlocks: 0,\n }))\n }\n }\n\n stop(): Promisable<void> {\n this.active = false\n }\n\n private async checkBlock(blockNumber: number): Promise<void> {\n if (blockNumber < this.nbf) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),\n confirmed: false,\n blockNumber,\n progress: 0,\n remainingBlocks: this.exp - blockNumber,\n }))\n }\n if (blockNumber > this.exp) {\n forget(this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress: 100, remainingBlocks: 0,\n }))\n return\n }\n if (blockNumber < this.exp) {\n await this.checkConfirmation(blockNumber)\n }\n }\n\n private async checkConfirmation(blockNumber: number): Promise<void> {\n const remainingBlocks = this.exp - blockNumber\n const progress = Math.round(((blockNumber - this.nbf) / (this.exp - this.nbf)) * 100)\n\n const tx = await this.viewer.transactionByHash?.(this.txHash)\n if (isNull(tx)) {\n this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress, remainingBlocks,\n })\n } else {\n this.onStatusUpdate?.({\n confirmed: true, blockNumber, progress, remainingBlocks,\n })\n await this.stop()\n }\n }\n}\n","import { useClient } from '../useClient.ts'\n\nexport const usePermissions = () => {\n const {\n client, isLoading, error, timedout,\n } = useClient()\n const permissions = client?.permissions\n return {\n permissions,\n isLoading,\n error,\n timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { JsonValue } from '@xylabs/sdk-js'\nimport {\n isArray, isDefined, isDefinedNotNull, isString,\n} from '@xylabs/sdk-js'\n\nimport { findCaveat } from '../helpers/index.ts'\nimport { usePermissions } from './usePermissions.ts'\n\nconst validateRestrictedAccounts = (restrictedAccounts: JsonValue): readonly string [] => {\n if (isDefined(restrictedAccounts)) {\n if (isArray(restrictedAccounts) && restrictedAccounts.every(isString)) {\n return restrictedAccounts\n }\n throw new Error(\n `Unrecognized format for restrictReturnedAccounts caveat found on permissions. \\n\n Should be an array of strings: ${JSON.stringify(restrictedAccounts)}`,\n )\n }\n return []\n}\n\nexport const useAccountPermissions = () => {\n const { permissions, error } = usePermissions()\n\n return usePromise(async () => {\n if (isDefinedNotNull(error)) throw error\n if (isDefined(permissions)) {\n const restrictedAccounts = await findCaveat(\n permissions,\n // TODO - extract to constant in protocol package\n 'xyoWallet_getAccounts',\n 'restrictReturnedAccounts',\n )\n return validateRestrictedAccounts(restrictedAccounts)\n }\n }, [permissions])\n}\n","import { isDefined } from '@xylabs/sdk-js'\nimport type {\n CaveatTypes, ParentCapability, XyoPermissions,\n} from '@xyo-network/xl1-sdk'\n\nexport const findCaveat = async (\n permissions: XyoPermissions,\n targetCapability: ParentCapability,\n targetCaveatType: CaveatTypes,\n) => {\n const existingPermissions = await permissions.getPermissions()\n if (isDefined(existingPermissions) && existingPermissions.length > 0) {\n const foundPermissions = existingPermissions\n .find(p => p.parentCapability === targetCapability)\n if (isDefined(foundPermissions)) {\n return foundPermissions.caveats?.find(caveat => caveat.type === targetCaveatType)?.value ?? []\n }\n }\n return existingPermissions\n}\n","import { isDefined, isNull } from '@xylabs/sdk-js'\nimport type { GatewayName } from '@xyo-network/xl1-sdk'\n\nimport { useClient } from './useClient.ts'\n\nexport const useGateway = (gatewayName?: GatewayName, timeout?: number) => {\n const {\n client, isLoading, error, timedout,\n } = useClient(timeout)\n\n const resolveGateway = () => {\n // null client means we do not have to wait for timedout\n if (isNull(client)) return null\n if (timedout && !isLoading && isDefined(gatewayName)) {\n return null\n }\n return client?.gateways?.[gatewayName!]\n }\n\n return {\n gateway: gatewayName ? resolveGateway() : undefined,\n isLoading,\n error,\n timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { AttoXL1, XyoViewer } from '@xyo-network/xl1-sdk'\nimport { ShiftedBigInt } from '@xyo-network/xl1-sdk'\nimport {\n useMemo, useRef, useState,\n} from 'react'\n\nexport const useAddressBalance = (\n // address to get balance for\n address?: Address,\n // viewer to use for fetching balance\n viewer?: XyoViewer,\n // refresh balance trigger\n refresh?: number,\n) => {\n const [balancesResult, setBalancesResult] = useState<AttoXL1 | null>()\n const [loading, setLoading] = useState(false)\n const [balancesError, setBalancesError] = useState<Error>()\n\n const balancePromiseRef = useRef<Promise<AttoXL1> | null>(null)\n usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n setLoading(true)\n setBalancesError(undefined)\n\n // Create and store the current promise\n const currentPromise = viewer.accountBalance(address) as Promise<AttoXL1>\n balancePromiseRef.current = currentPromise\n\n try {\n const result = await currentPromise\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n setBalancesResult(result as AttoXL1)\n setLoading(false)\n }\n } catch (err) {\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n console.error('Error in queued call:', err)\n setBalancesResult(undefined)\n setBalancesError(err as Error)\n setLoading(false)\n }\n }\n }, [address, viewer, refresh])\n\n useMemo(() => {\n if (balancesError) {\n setLoading(false)\n }\n }, [balancesError])\n\n const shiftedBigInt = useMemo(() => {\n if (typeof balancesResult !== 'bigint') return\n return new ShiftedBigInt(balancesResult, {\n places: 18, maxDecimal: 18, maxCharacters: 9, minDecimals: 1, locale: navigator.language,\n })\n }, [balancesResult])\n\n const balanceIntlFriendly = useMemo(() => {\n return shiftedBigInt?.toFullString()\n }, [shiftedBigInt])\n\n const shortBalanceIntlFriendly = useMemo(() => {\n return isUndefinedOrNull(balancesResult)\n ? undefined\n : (balancesResult < 1_000_000_000_000n && balancesResult > 0n) ? '<0.00001' : shiftedBigInt?.toShortString()\n }, [shiftedBigInt])\n\n return {\n address,\n balanceForAddress: balancesResult,\n balanceIntlFriendly,\n shortBalanceIntlFriendly,\n error: balancesError,\n loading,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Hash } from '@xylabs/sdk-js'\nimport {\n forget, isDefined, isHash,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n SignedHydratedTransaction, XyoRunner, XyoViewer,\n} from '@xyo-network/xl1-sdk'\nimport { useEffect, useState } from 'react'\n\nimport type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts'\nimport { TransactionConfirmationStatus } from './helpers/index.ts'\n\nexport const useConfirmTransactionBase = (\n // The transaction to confirm\n transaction?: SignedHydratedTransaction,\n // Callback for when the transaction is broadcast to the network\n onBroadcast?: (hash: Hash) => void,\n // Optional callback for status updates during confirmation\n onStatusUpdate?: TransactionConfirmationParams['onStatusUpdate'],\n // Runner to use for broadcasting transactions\n runner?: XyoRunner,\n // Viewer to use for checking transaction status\n viewer?: XyoViewer,\n) => {\n const [status, setStatus] = useState<ConfirmationStatusUpdate>()\n const onStatusUpdateLocal = (newStatus: ConfirmationStatusUpdate) => {\n setStatus(newStatus)\n onStatusUpdate?.(newStatus)\n }\n\n const [transactionConfirmationStatus, transactionConfirmationError] = usePromise(async () => {\n const hasRunner = isDefined(runner)\n if (transaction && viewer) {\n const hash = hasRunner ? (await runner.broadcastTransaction(transaction)) : await PayloadBuilder.hash(transaction[0])\n if (isHash(hash)) {\n if (hasRunner && isDefined(onBroadcast)) onBroadcast(hash)\n const params: TransactionConfirmationParams = {\n onStatusUpdate: onStatusUpdateLocal,\n transaction,\n txHash: hash,\n viewer,\n }\n const instance = await TransactionConfirmationStatus.create(params)\n await instance.start()\n return instance\n } else {\n throw new Error('unexpected return type from broadcast transaction')\n }\n }\n }, [transaction, runner, viewer])\n\n useEffect(() => {\n return () => {\n if (transactionConfirmationStatus) {\n // Stop the transaction confirmation status instance when the component unmounts\n forget(transactionConfirmationStatus.stop())\n }\n }\n }, [transactionConfirmationStatus])\n\n return { status, transactionConfirmationError }\n}\n","import { type Address, asAddress } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type { GatewayName } from '@xyo-network/xl1-sdk'\nimport { MainNetwork } from '@xyo-network/xl1-sdk'\nimport { useCallback, useState } from 'react'\n\nimport { useAccountPermissions, useGateway } from './client/index.ts'\n\nexport const useConnectAccount = (gatewayName: GatewayName = MainNetwork.id, timeout?: number) => {\n const [connectError, setConnectError] = useState<Error>()\n\n const {\n gateway, error, timedout,\n } = useGateway(gatewayName, timeout)\n\n const [accountPermissions, accountPermissionsError] = useAccountPermissions()\n\n const [address, setAddress] = useState<Address>()\n\n const connectSigner = useCallback(async () => {\n try {\n setConnectError(undefined)\n const assertedGateway = assertEx(gateway, () => `Gateway ${gatewayName} is not available`)\n const signer = assertedGateway.signerInstance\n const address = await signer.address()\n setAddress(address)\n return address\n } catch (e) {\n setConnectError(e as Error)\n }\n }, [gateway, gatewayName])\n\n return {\n address: asAddress(accountPermissions?.[0] ?? address), connectSigner, error: error ?? accountPermissionsError ?? connectError, gateway, timedout,\n }\n}\n","import type { UsePromiseState } from '@xylabs/react-promise'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isDefinedNotNull } from '@xylabs/sdk-js'\nimport type { HydratedBlockWithHashMeta, XyoViewer } from '@xyo-network/xl1-sdk'\n\nexport const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null): [HydratedBlockWithHashMeta | undefined,\n Error | undefined, UsePromiseState | undefined] => {\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport type {\n JsonRpcXyoRunner, RpcSchemaMap, TransportFactory,\n} from '@xyo-network/xl1-sdk'\nimport {\n buildJsonRpcProviderLocator, HttpRpcTransport, XyoRunnerMoniker,\n} from '@xyo-network/xl1-sdk'\n\nexport const useHttpRpcRunner = (url?: string) => {\n return usePromise(async () => {\n if (isUndefined(url)) {\n return\n }\n const transportFactory: TransportFactory = (schemas: RpcSchemaMap) => new HttpRpcTransport(`${url}/rpc`, schemas)\n const locator = await buildJsonRpcProviderLocator({ transportFactory })\n return await locator.getInstance<JsonRpcXyoRunner>(XyoRunnerMoniker)\n }, [url])\n}\n","import { isUndefined } from '@xylabs/sdk-js'\nimport type { DefaultNetworkIds } from '@xyo-network/xl1-sdk'\nimport { SimpleXyoNetwork } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nexport const useNetwork = (id?: DefaultNetworkIds) => {\n const network = useMemo(() => {\n if (isUndefined(id)) return\n return new SimpleXyoNetwork(id)\n }, [id])\n\n return network\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport {\n SimpleXyoSigner, type XyoConnection, type XyoSigner,\n} from '@xyo-network/xl1-sdk'\n\nexport const useSigner = (_provider?: XyoConnection, account?: AccountInstance) => {\n return usePromise<XyoSigner | undefined>(async () => account ? await SimpleXyoSigner.create({ account }) : undefined, [account])\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n delay, isDefined, isUndefined,\n} from '@xylabs/sdk-js'\nimport type {\n JsonRpcXyoViewer, RpcSchemaMap, TransportFactory,\n} from '@xyo-network/xl1-sdk'\nimport {\n buildJsonRpcProviderLocator, HttpRpcTransport, LocalNetwork, SequenceNetwork,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-sdk'\nimport { useEffect, useState } from 'react'\n\nconst INTERVAL = 5000 // 5 seconds\n\nconst localRpcEndpoint: string = `${LocalNetwork.url}/rpc`\nconst sequenceRpcEndpoint: string = `${SequenceNetwork.url}/rpc`\n\nexport const useCheckLocalRpc = () => {\n const isLocalProducer = useCheckRpc(localRpcEndpoint)\n return isLocalProducer\n}\n\nexport const useCheckSequenceRpc = () => {\n const isLocalProducer = useCheckRpc(sequenceRpcEndpoint)\n return isLocalProducer\n}\n\nexport const useCheckRpc = (endpoint?: string) => {\n const [isLocalProducer, setIsLocalProducer] = useState(false)\n const [error, setError] = useState<Error>()\n\n const [viewer] = usePromise(async () => {\n if (isUndefined(endpoint)) return\n\n const transportFactory: TransportFactory = (schemas: RpcSchemaMap) => new HttpRpcTransport(endpoint, schemas)\n const locator = await buildJsonRpcProviderLocator({ transportFactory })\n const viewer = await locator.getInstance<JsonRpcXyoViewer>(XyoViewerMoniker)\n return viewer\n }, [endpoint])\n\n useEffect(() => {\n if (isUndefined(viewer)) return\n\n void (async () => {\n setError(undefined)\n while (!isLocalProducer) {\n try {\n const block = await viewer.currentBlock()\n setIsLocalProducer(isDefined(block))\n } catch (err) {\n setError(err as Error)\n setIsLocalProducer(false)\n }\n await delay(INTERVAL)\n }\n })()\n }, [isLocalProducer, viewer])\n\n return { isLocalProducer, error }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isUndefined } from '@xylabs/sdk-js'\nimport type {\n JsonRpcXyoViewer, RpcSchemaMap, TransportFactory,\n XyoViewer,\n} from '@xyo-network/xl1-sdk'\nimport {\n buildJsonRpcProviderLocator, HttpRpcTransport,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-sdk'\n\nexport const useHttpRpcViewer = (url?: string): XyoViewer | undefined => {\n const [resolvedViewer] = usePromise(async () => {\n if (isUndefined(url)) {\n return\n }\n const transportFactory: TransportFactory = (schemas: RpcSchemaMap) => new HttpRpcTransport(`${url}/rpc`, schemas)\n const locator = await buildJsonRpcProviderLocator({ transportFactory })\n return await locator.getInstance<JsonRpcXyoViewer>(XyoViewerMoniker)\n }, [url])\n\n return resolvedViewer as XyoViewer | undefined\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n isDefined, isDefinedNotNull, isNull,\n} from '@xylabs/sdk-js'\nimport type { GatewayName } from '@xyo-network/xl1-sdk'\n\nimport { useGateway } from '../client/index.ts'\n\n/**\n * Creates a JsonRpcXyoViewer instance based on the provided networkId.\n * @param networkId - a network id like 'sequence', 'local', etc.\n * @returns An instance of XyoViewer if the networkId is found in wallet gateways\n * otherwise undefined.\n */\nexport const useViewerFromWallet = (\n networkId?: GatewayName,\n timeout?: number,\n) => {\n const {\n gateway, error, isLoading, timedout,\n } = useGateway(networkId, timeout)\n\n const result = usePromise(async () => {\n if (isDefinedNotNull(error)) return null\n if (isLoading) return\n if (timedout && isNull(gateway)) return null\n if (isDefined(gateway) && isDefined(networkId)) {\n const connection = await gateway?.connection()\n return connection?.viewer\n }\n }, [gateway, networkId, timeout])\n\n return result\n}\n"],"mappings":";;;;AAAA,SACEA,OAAOC,SAASC,kBACX;AACP,SAASC,yBAAyB;AAClC,SAASC,6BAA6B;AACtC,OAAOC,WAAW;AAEX,IAAMC,mBAAkD,wBAAC,EAAEC,QAAO,MAAE;AACzE,QAAMC,mBAAmB,GAAGC,kBAAkBC,WAAWH,OAAAA,GAAUI,cAAc,CAAA,CAAA;AAEjF,SACE,sBAAA,cAACC,OAAAA;IAAMC,WAAU;IAAMC,YAAW;IAASC,SAAS;KAClD,sBAAA,cAACC,uBAAAA;IAAsBT;IAAkBU,MAAM;MAC/C,sBAAA,cAACC,SAAAA;IAAQC,OAAOZ;KACd,sBAAA,cAACa,YAAAA;IAAWC,OAAM;IAAgBC,SAAQ;IAAUC,YAAW;KAAaf,gBAAAA,CAAAA,CAAAA;AAIpF,GAX+D;;;ACN/D,SACEgB,OAAOC,YAAYC,QAAQC,SAAAA,QAC3BC,cAAAA,mBACK;AAEP,SAASC,gBAAgB;AAEzB,SAASC,aAAAA,YAAWC,eAAAA,oBAAmB;AACvC,SAASC,mBAAmB;AAE5B,OAAOC,UAASC,aAAAA,kBAAiB;;;ACVjC,SAASC,mBAAmB;AAKrB,IAAMC,8BAA8B,wBAACC,SAAkBC,YAAAA;AAC5D,MAAIC,UAAgD,CAAA;AACpD,aAAWC,QAAQF,SAAS;AAC1B,UAAM,CAACG,SAASC,MAAMC,QAAAA,IAAYH;AAClC,QAAIH,YAAYM,SAASC,MAAM;AAC7B,iBAAW,CAACC,IAAIC,MAAAA,KAAWC,OAAOC,QAAQL,SAASM,SAAS,GAAG;AAC7DV,gBAAQW,KAAK;UACXJ,QAAQK,YAAYL,MAAAA;UACpBM,aAAaX,QAAQY;UACrBT,MAAMD,SAASC;UACfU,WAAWb,QAAQc;UACnBC,KAAKC,WAAWC,OAAOC,WAAU;UACjCd;UACAe,QAAQlB,MAAMmB;UACdC,OAAOtB;UACPuB,MAAM;QACR,CAAA;MACF;IACF,OAAO;AACLxB,cAAQW,KAAK;QACXJ,QAAQK,YAAYR,SAASM,UAAUZ,OAAAA,CAAQ;QAC/Ce,aAAaX,QAAQY;QACrBT,MAAMD,SAASC;QACfY,KAAKC,WAAWC,OAAOC,WAAU;QACjCL,WAAWb,QAAQc;QACnBV,IAAIR;QACJuB,QAAQlB,MAAMmB;QACdC,OAAOtB;QACPuB,MAAM;MACR,CAAA;IACF;EACF;AACA,SAAOxB;AACT,GAjC2C;;;ACN3C,SAASyB,kBAAkB;AAC3B,SAEEC,mBACK;;;ACHP,SACEC,eAAAA,cAAaC,OAAOC,aACf;AAGA,IAAMC,kBAAkB,wBAACC,SAAkBC,YAAAA;AAChD,QAAMC,uBAAuBD,SAASE,OAAO,CAACC,GAAG,CAACC,QAAQC,KAAKC,QAAAA,MAAS;AACtE,WAAOH,IAAII,aAAYD,SAASE,UAAUT,OAAAA,KAAYU,MAAM,CAAA,CAAA;EAC9D,GAAG,EAAE;AAEL,QAAMC,mBAAmBV,SAASE,OAAO,CAACC,GAAG,CAACC,QAAQC,KAAKC,QAAAA,MAAS;AAClE,WAAQA,SAASK,SAASZ,UAAWI,IAAIS,OAAOC,OAAOP,SAASE,SAAS,EAAEN,OAAO,CAACC,IAAGW,MAAMX,MAAKY,MAAMD,CAAAA,IAAKP,aAAYO,CAAAA,IAAK,KAAK,EAAE,IAAIX;EAC1I,GAAG,EAAE;AACL,SAAO;IAACF;IAAsBS;;AAChC,GAT+B;;;ACJxB,IAAMM,mBAAmB,wBAACC,YAAAA;AAE/B,MAAIA,QAAQC,WAAW,EAAG,QAAO;AACjC,QAAMC,eAAeF,QAAQG,IAAI,CAAC,CAACC,OAAAA,MAAaA,QAAQC,KAAK;AAC7D,QAAMC,MAAMC,KAAKD,IAAG,GAAIJ,YAAAA;AACxB,SAAOK,KAAKC,IAAIF,MAAM,GAAG,CAAA;AAC3B,GANgC;;;AFUzB,IAAMG,2BAA2B,wBAACC,SAAmBC,QAAoBC,UAAU,IAAIC,YAA4BC,YAAAA;AACxH,SAAOC,WAAW,YAAA;AAChB,QAAIC,YAAYL,MAAAA,KAAWK,YAAYN,OAAAA,EAAU;AAGjD,QAAIO,OAAO;AACX,QAAIC;AACJ,UAAMC,eAA4C,CAAA;AAClD,UAAMC,qBAAqBP,aAAaA,WAAW,CAAA,IAAK;AAIxD,UAAMQ,UAAU,MAAMV,OAAOW,sBAAsBZ,SAASG,aAAa;MAAEU,OAAOV;IAAW,IAAI,CAAC,CAAA;AAClG,QAAIQ,QAAQG,SAAS,GAAG;AACtBL,mBAAaM,KAAI,GAAIJ,OAAAA;AAErBH,kBAAYQ,iBAAiBL,OAAAA;AAC7B,aAAOJ,OAAOL,SAAS;AAErB,cAAMe,cAAc,MAAMhB,OAAOW,sBAAsBZ,SAAS;UAAEa,OAAO;YAACH;YAAoBF;;QAA4B,CAAA;AAE1H,YAAIS,YAAYH,WAAW,EAAG;AAE9BN,oBAAYQ,iBAAiBC,WAAAA;AAC7BR,qBAAaM,KAAI,GAAIE,WAAAA;AAGrBV;MACF;IACF;AACA,UAAMW,mBAAmBC,4BAA4BnB,SAASS,YAAAA;AAE9D,WAAO;MACLE,SAASO;MACTE,SAASC,gBAAgBrB,SAASS,YAAAA;MAClCa,WAAWf,QAAQL;IACrB;EACF,GAAG;IAACF;IAASC;IAAQG;IAASD;IAAYD;GAAQ;AACpD,GAtCwC;;;AGZxC,SAASqB,UAAAA,eAAc;AAEvB,SACEC,aAAaC,WAAWC,4BACnB;;;ACJP,SAASC,eAAAA,oBAAmB;AAG5B,IAAMC,0BAA0B;AAEhC,IAAMC,eAAe,6BAAA;AACnB,SAAO,YAAYC,WAAWC;AAChC,GAFqB;AAId,IAAMC,2BAA2B,wBAACC,eAA2BC,SAAiBC,cAAAA;AACnF,MAAIC,WAAW;AACf,QAAMC,WAA0B,6BAAA;AAC9BJ,kBAAAA;AACAG,eAAW;EACb,GAHgC;AAIhCN,aAAWQ,iBAAiB,oBAAoBD,QAAAA;AAChDE,aAAW,MAAA;AACT,QAAI,CAACH,UAAU;AACbN,iBAAWU,oBAAoB,oBAAoBH,QAAAA;AACnDF,gBAAAA;IACF;EACF,GAAGD,OAAAA;AACL,GAbwC;AAiBxC,eAAsBO,aAAaP,UAAUN,yBAAuB;AAElE,MAAIc,aAAYZ,WAAWC,GAAG,GAAG;AAC/B,WAAO;EACT;AACA,SAAOF,aAAAA,IACHC,WAAWC,IAAIY,SAEf,MAAM,IAAIC,QAAoB,CAACC,YAAAA;AAC7Bb,6BACE,MAAA;AACEa,cAAQf,WAAWC,IAAIY,MAAM;IAC/B,GACAT,SACA,MAAA;AACEW,cAAQ,IAAA;IACV,CAAA;EAEJ,CAAA;AACN;AAnBsBJ;;;ACzBtB,SACEK,UAAUC,OAAOC,QAAQC,WAAWC,cAC/B;AAkBA,IAAMC,gCAAN,MAAMA,+BAAAA;EApBb,OAoBaA;;;EACMC;EACTC,SAAS;EAEjB,YAAYC,QAAuC;AACjD,SAAKF,UAAUE;EACjB;EAEA,IAAIC,MAAc;AAChB,WAAOC,SAAS,KAAKC,YAAY,CAAA,EAAGF,KAAK,MAAM,0CAAA;EACjD;EAEA,IAAIG,MAAc;AAChB,WAAOF,SAAS,KAAKC,YAAY,CAAA,EAAGC,KAAK,MAAM,0CAAA;EACjD;EAEA,IAAIC,iBAAkE;AACpE,WAAO,KAAKP,QAAQO;EACtB;EAEA,IAAIL,SAAwC;AAC1C,WAAO,KAAKF;EACd;EAEA,IAAIK,cAAyC;AAC3C,WAAO,KAAKH,OAAOG;EACrB;EAEA,IAAIG,SAAe;AACjB,WAAO,KAAKN,OAAOM;EACrB;EAEA,IAAIC,SAAoB;AACtB,WAAO,KAAKP,OAAOO;EACrB;EAEA,OAAOC,OAAOR,QAAkF;AAC9F,WAAO,IAAIH,+BAA8BG,MAAAA;EAC3C;EAEA,MAAMS,QAAuB;AAC3B,SAAKV,SAAS;AACd,QAAI;AACF,YAAMW,qBAAqB,MAAM,KAAKH,OAAOG,mBAAkB;AAC/D,aAAOC,UAAUD,kBAAAA,KAAuB,KAAKX,QAAQ;AACnD,cAAM,KAAKa,WAAWF,kBAAAA;AAEtB,cAAMG,MAAM,GAAA;MACd;IACF,SAASC,OAAO;AACd,YAAM,KAAKC,KAAI;AACfC,aAAO,KAAKX,iBAAiB;QAC3BS,OAAOA,iBAAiBG,QAAQH,QAAQ,IAAIG,MAAM,wBAAA;QAClDC,WAAW;QACXC,aAAa;QACbC,UAAU;QACVC,iBAAiB;MACnB,CAAA,CAAA;IACF;EACF;EAEAN,OAAyB;AACvB,SAAKhB,SAAS;EAChB;EAEA,MAAca,WAAWO,aAAoC;AAC3D,QAAIA,cAAc,KAAKf,KAAK;AAC1B,YAAM,KAAKW,KAAI;AACfC,aAAO,KAAKX,iBAAiB;QAC3BS,OAAO,IAAIG,MAAM,iBAAiBE,WAAAA,cAAyB,KAAKf,GAAG,EAAE;QACrEc,WAAW;QACXC;QACAC,UAAU;QACVC,iBAAiB,KAAKpB,MAAMkB;MAC9B,CAAA,CAAA;IACF;AACA,QAAIA,cAAc,KAAKlB,KAAK;AAC1Be,aAAO,KAAKX,iBAAiB;QAC3Ba,WAAW;QAAOC;QAAaC,UAAU;QAAKC,iBAAiB;MACjE,CAAA,CAAA;AACA;IACF;AACA,QAAIF,cAAc,KAAKlB,KAAK;AAC1B,YAAM,KAAKqB,kBAAkBH,WAAAA;IAC/B;EACF;EAEA,MAAcG,kBAAkBH,aAAoC;AAClE,UAAME,kBAAkB,KAAKpB,MAAMkB;AACnC,UAAMC,WAAWG,KAAKC,OAAQL,cAAc,KAAKf,QAAQ,KAAKH,MAAM,KAAKG,OAAQ,GAAA;AAEjF,UAAMqB,KAAK,MAAM,KAAKlB,OAAOmB,oBAAoB,KAAKpB,MAAM;AAC5D,QAAIqB,OAAOF,EAAAA,GAAK;AACd,WAAKpB,iBAAiB;QACpBa,WAAW;QAAOC;QAAaC;QAAUC;MAC3C,CAAA;IACF,OAAO;AACL,WAAKhB,iBAAiB;QACpBa,WAAW;QAAMC;QAAaC;QAAUC;MAC1C,CAAA;AACA,YAAM,KAAKN,KAAI;IACjB;EACF;AACF;;;AF7GA,IAAIa,eAA4B;EAC9BC,QAAQC;EACRC,OAAO;EACPC,WAAW;EACXC,UAAU;AACZ;AAEA,IAAMC,YAAY,oBAAIC,IAAAA;AAEtB,IAAMC,aAAa,6BAAA;AACjB,aAAWC,YAAYH,UAAWG,UAAAA;AACpC,GAFmB;AAInB,IAAMC,cAAc,wBAACC,aAAAA;AACnBX,iBAAe;IAAE,GAAGA;IAAc,GAAGW;EAAS;AAC9CH,aAAAA;AACF,GAHoB;AAKpB,IAAMI,mBAAmB,8BAAOC,YAAAA;AAC9B,MAAIb,aAAaI,aAAaJ,aAAaC,OAAQ;AAEnDS,cAAY;IAAEN,WAAW;IAAMD,OAAO;EAAK,CAAA;AAE3C,MAAI;AACF,UAAMF,SAAS,MAAMa,aAAaD,OAAAA;AAClC,QAAIZ,WAAW,MAAM;AACnBS,kBAAY;QAAEL,UAAU;QAAMD,WAAW;MAAM,CAAA;AAC/C;IACF;AACAM,gBAAY;MACVT;MAAQG,WAAW;MAAOD,OAAO;IACnC,CAAA;EACF,SAASA,OAAO;AACdY,YAAQZ,MAAM,gCAAgCA,KAAAA;AAC9CO,gBAAY;MAAEP;MAAuBC,WAAW;IAAM,CAAA;EACxD;AACF,GAlByB;AAoBzB,IAAMY,YAAY,wBAACP,UAAsBI,YAAAA;AACvCP,YAAUW,IAAIR,QAAAA;AAEd,OAAKG,iBAAiBC,OAAAA;AAEtB,SAAO,MAAA;AACLP,cAAUY,OAAOT,QAAAA;EACnB;AACF,GARkB;AAUlB,IAAMU,cAAc,6BAAmBnB,cAAnB;AAEb,IAAMoB,YAAY,wBAACP,YAAAA;AACxB,QAAMQ,uBAAuBC,YAAY,CAACb,aAAyBO,UAAUP,UAAUI,OAAAA,GAAU;IAACA;GAAQ;AAC1G,QAAMU,cAAcC,qBAAqBH,sBAAsBF,WAAAA;AAE/DM,YAAU,MAAA;AAER,QAAIhB,WAAW,6BAAA;AAEbC,kBAAY;QACVT,QAAQyB,WAAWC,KAAK1B;QACxBG,WAAW;QACXD,OAAO;MACT,CAAA;AAEAK,iBAAAA;IACF,GATe;AAWf,QAAIe,YAAYlB,YAAYuB,QAAOL,YAAYtB,MAAM,KAAK,CAACsB,YAAYnB,WAAW;AAChFsB,iBAAWG,iBAAiB,oBAAoBpB,QAAAA;IAClD;AAEA,WAAO,MAAA;AACLiB,iBAAWI,oBAAoB,oBAAoBrB,QAAAA;IACrD;EACF,CAAA;AAEA,SAAOc;AACT,GA3ByB;;;AG/DlB,IAAMQ,iBAAiB,6BAAA;AAC5B,QAAM,EACJC,QAAQC,WAAWC,OAAOC,SAAQ,IAChCC,UAAAA;AACJ,QAAMC,cAAcL,QAAQK;AAC5B,SAAO;IACLA;IACAJ;IACAC;IACAC;EACF;AACF,GAX8B;;;ACF9B,SAASG,cAAAA,mBAAkB;AAE3B,SACEC,SAASC,aAAAA,YAAWC,kBAAkBC,gBACjC;;;ACJP,SAASC,aAAAA,kBAAiB;AAKnB,IAAMC,aAAa,8BACxBC,aACAC,kBACAC,qBAAAA;AAEA,QAAMC,sBAAsB,MAAMH,YAAYI,eAAc;AAC5D,MAAIC,WAAUF,mBAAAA,KAAwBA,oBAAoBG,SAAS,GAAG;AACpE,UAAMC,mBAAmBJ,oBACtBK,KAAKC,CAAAA,MAAKA,EAAEC,qBAAqBT,gBAAAA;AACpC,QAAII,WAAUE,gBAAAA,GAAmB;AAC/B,aAAOA,iBAAiBI,SAASH,KAAKI,CAAAA,WAAUA,OAAOC,SAASX,gBAAAA,GAAmBY,SAAS,CAAA;IAC9F;EACF;AACA,SAAOX;AACT,GAd0B;;;ADI1B,IAAMY,6BAA6B,wBAACC,uBAAAA;AAClC,MAAIC,WAAUD,kBAAAA,GAAqB;AACjC,QAAIE,QAAQF,kBAAAA,KAAuBA,mBAAmBG,MAAMC,QAAAA,GAAW;AACrE,aAAOJ;IACT;AACA,UAAM,IAAIK,MACR;;uCACiCC,KAAKC,UAAUP,kBAAAA,CAAAA,EAAqB;EAEzE;AACA,SAAO,CAAA;AACT,GAXmC;AAa5B,IAAMQ,wBAAwB,6BAAA;AACnC,QAAM,EAAEC,aAAaC,MAAK,IAAKC,eAAAA;AAE/B,SAAOC,YAAW,YAAA;AAChB,QAAIC,iBAAiBH,KAAAA,EAAQ,OAAMA;AACnC,QAAIT,WAAUQ,WAAAA,GAAc;AAC1B,YAAMT,qBAAqB,MAAMc;QAC/BL;;QAEA;QACA;MAAA;AAEF,aAAOV,2BAA2BC,kBAAAA;IACpC;EACF,GAAG;IAACS;GAAY;AAClB,GAfqC;;;AEtBrC,SAASM,aAAAA,YAAWC,UAAAA,eAAc;AAK3B,IAAMC,aAAa,wBAACC,aAA2BC,YAAAA;AACpD,QAAM,EACJC,QAAQC,WAAWC,OAAOC,SAAQ,IAChCC,UAAUL,OAAAA;AAEd,QAAMM,iBAAiB,6BAAA;AAErB,QAAIC,QAAON,MAAAA,EAAS,QAAO;AAC3B,QAAIG,YAAY,CAACF,aAAaM,WAAUT,WAAAA,GAAc;AACpD,aAAO;IACT;AACA,WAAOE,QAAQQ,WAAWV,WAAAA;EAC5B,GAPuB;AASvB,SAAO;IACLW,SAASX,cAAcO,eAAAA,IAAmBK;IAC1CT;IACAC;IACAC;EACF;AACF,GApB0B;;;ACL1B,SAASQ,cAAAA,mBAAkB;AAE3B,SAASC,eAAAA,cAAaC,yBAAyB;AAE/C,SAASC,qBAAqB;AAC9B,SACEC,SAASC,QAAQC,gBACZ;AAEA,IAAMC,oBAAoB,wBAE/BC,SAEAC,QAEAC,YAAAA;AAEA,QAAM,CAACC,gBAAgBC,iBAAAA,IAAqBC,SAAAA;AAC5C,QAAM,CAACC,SAASC,UAAAA,IAAcF,SAAS,KAAA;AACvC,QAAM,CAACG,eAAeC,gBAAAA,IAAoBJ,SAAAA;AAE1C,QAAMK,oBAAoBC,OAAgC,IAAA;AAC1DC,EAAAA,YAAW,YAAA;AACT,QAAIC,aAAYZ,MAAAA,KAAWY,aAAYb,OAAAA,EAAU;AAEjDO,eAAW,IAAA;AACXE,qBAAiBK,MAAAA;AAGjB,UAAMC,iBAAiBd,OAAOe,eAAehB,OAAAA;AAC7CU,sBAAkBO,UAAUF;AAE5B,QAAI;AACF,YAAMG,SAAS,MAAMH;AAErB,UAAIL,kBAAkBO,YAAYF,gBAAgB;AAChDX,0BAAkBc,MAAAA;AAClBX,mBAAW,KAAA;MACb;IACF,SAASY,KAAK;AAEZ,UAAIT,kBAAkBO,YAAYF,gBAAgB;AAChDK,gBAAQC,MAAM,yBAAyBF,GAAAA;AACvCf,0BAAkBU,MAAAA;AAClBL,yBAAiBU,GAAAA;AACjBZ,mBAAW,KAAA;MACb;IACF;EACF,GAAG;IAACP;IAASC;IAAQC;GAAQ;AAE7BoB,UAAQ,MAAA;AACN,QAAId,eAAe;AACjBD,iBAAW,KAAA;IACb;EACF,GAAG;IAACC;GAAc;AAElB,QAAMe,gBAAgBD,QAAQ,MAAA;AAC5B,QAAI,OAAOnB,mBAAmB,SAAU;AACxC,WAAO,IAAIqB,cAAcrB,gBAAgB;MACvCsB,QAAQ;MAAIC,YAAY;MAAIC,eAAe;MAAGC,aAAa;MAAGC,QAAQC,UAAUC;IAClF,CAAA;EACF,GAAG;IAAC5B;GAAe;AAEnB,QAAM6B,sBAAsBV,QAAQ,MAAA;AAClC,WAAOC,eAAeU,aAAAA;EACxB,GAAG;IAACV;GAAc;AAElB,QAAMW,2BAA2BZ,QAAQ,MAAA;AACvC,WAAOa,kBAAkBhC,cAAAA,IACrBW,SACCX,iBAAiB,kBAAsBA,iBAAiB,KAAM,aAAaoB,eAAea,cAAAA;EACjG,GAAG;IAACb;GAAc;AAElB,SAAO;IACLvB;IACAqC,mBAAmBlC;IACnB6B;IACAE;IACAb,OAAOb;IACPF;EACF;AACF,GAxEiC;;;ACTjC,SAASgC,cAAAA,mBAAkB;AAE3B,SACEC,UAAAA,SAAQC,aAAAA,YAAWC,cACd;AACP,SAASC,sBAAsB;AAI/B,SAASC,aAAAA,YAAWC,YAAAA,iBAAgB;AAK7B,IAAMC,4BAA4B,wBAEvCC,aAEAC,aAEAC,gBAEAC,QAEAC,WAAAA;AAEA,QAAM,CAACC,QAAQC,SAAAA,IAAaC,UAAAA;AAC5B,QAAMC,sBAAsB,wBAACC,cAAAA;AAC3BH,cAAUG,SAAAA;AACVP,qBAAiBO,SAAAA;EACnB,GAH4B;AAK5B,QAAM,CAACC,+BAA+BC,4BAAAA,IAAgCC,YAAW,YAAA;AAC/E,UAAMC,YAAYC,WAAUX,MAAAA;AAC5B,QAAIH,eAAeI,QAAQ;AACzB,YAAMW,OAAOF,YAAa,MAAMV,OAAOa,qBAAqBhB,WAAAA,IAAgB,MAAMiB,eAAeF,KAAKf,YAAY,CAAA,CAAE;AACpH,UAAIkB,OAAOH,IAAAA,GAAO;AAChB,YAAIF,aAAaC,WAAUb,WAAAA,EAAcA,aAAYc,IAAAA;AACrD,cAAMI,SAAwC;UAC5CjB,gBAAgBM;UAChBR;UACAoB,QAAQL;UACRX;QACF;AACA,cAAMiB,WAAW,MAAMC,8BAA8BC,OAAOJ,MAAAA;AAC5D,cAAME,SAASG,MAAK;AACpB,eAAOH;MACT,OAAO;AACL,cAAM,IAAII,MAAM,mDAAA;MAClB;IACF;EACF,GAAG;IAACzB;IAAaG;IAAQC;GAAO;AAEhCsB,EAAAA,WAAU,MAAA;AACR,WAAO,MAAA;AACL,UAAIhB,+BAA+B;AAEjCiB,QAAAA,QAAOjB,8BAA8BkB,KAAI,CAAA;MAC3C;IACF;EACF,GAAG;IAAClB;GAA8B;AAElC,SAAO;IAAEL;IAAQM;EAA6B;AAChD,GAjDyC;;;ACdzC,SAAuBkB,iBAAiB;AACxC,SAASC,YAAAA,iBAAgB;AAEzB,SAASC,mBAAmB;AAC5B,SAASC,eAAAA,cAAaC,YAAAA,iBAAgB;AAI/B,IAAMC,oBAAoB,wBAACC,cAA2BC,YAAYC,IAAIC,YAAAA;AAC3E,QAAM,CAACC,cAAcC,eAAAA,IAAmBC,UAAAA;AAExC,QAAM,EACJC,SAASC,OAAOC,SAAQ,IACtBC,WAAWV,aAAaG,OAAAA;AAE5B,QAAM,CAACQ,oBAAoBC,uBAAAA,IAA2BC,sBAAAA;AAEtD,QAAM,CAACC,SAASC,UAAAA,IAAcT,UAAAA;AAE9B,QAAMU,gBAAgBC,aAAY,YAAA;AAChC,QAAI;AACFZ,sBAAgBa,MAAAA;AAChB,YAAMC,kBAAkBC,UAASb,SAAS,MAAM,WAAWP,WAAAA,mBAA8B;AACzF,YAAMqB,SAASF,gBAAgBG;AAC/B,YAAMR,WAAU,MAAMO,OAAOP,QAAO;AACpCC,iBAAWD,QAAAA;AACX,aAAOA;IACT,SAASS,GAAG;AACVlB,sBAAgBkB,CAAAA;IAClB;EACF,GAAG;IAAChB;IAASP;GAAY;AAEzB,SAAO;IACLc,SAASU,UAAUb,qBAAqB,CAAA,KAAMG,OAAAA;IAAUE;IAAeR,OAAOA,SAASI,2BAA2BR;IAAcG;IAASE;EAC3I;AACF,GA3BiC;;;ACPjC,SAASgB,cAAAA,mBAAkB;AAC3B,SAASC,oBAAAA,yBAAwB;AAG1B,IAAMC,kBAAkB,wBAACC,UAAU,GAAGC,WAAAA;AAE3C,SAAOC,YAAW,YAAA;AAChB,QAAIC,kBAAiBF,MAAAA,KAAWD,UAAU,GAAG;AAC3C,YAAMI,QAAQ,MAAMH,OAAOI,aAAY;AACvC,aAAOD;IACT;EACF,GAAG;IAACH;IAAQD;GAAQ;AACtB,GAR+B;;;ACL/B,SAASM,cAAAA,mBAAkB;AAC3B,SAASC,eAAAA,oBAAmB;AAI5B,SACEC,6BAA6BC,kBAAkBC,wBAC1C;AAEA,IAAMC,mBAAmB,wBAACC,QAAAA;AAC/B,SAAOC,YAAW,YAAA;AAChB,QAAIC,aAAYF,GAAAA,GAAM;AACpB;IACF;AACA,UAAMG,mBAAqC,wBAACC,YAA0B,IAAIC,iBAAiB,GAAGL,GAAAA,QAAWI,OAAAA,GAA9D;AAC3C,UAAME,UAAU,MAAMC,4BAA4B;MAAEJ;IAAiB,CAAA;AACrE,WAAO,MAAMG,QAAQE,YAA8BC,gBAAAA;EACrD,GAAG;IAACT;GAAI;AACV,GATgC;;;ACThC,SAASU,eAAAA,oBAAmB;AAE5B,SAASC,wBAAwB;AACjC,SAASC,WAAAA,gBAAe;AAEjB,IAAMC,aAAa,wBAACC,OAAAA;AACzB,QAAMC,UAAUC,SAAQ,MAAA;AACtB,QAAIC,aAAYH,EAAAA,EAAK;AACrB,WAAO,IAAII,iBAAiBJ,EAAAA;EAC9B,GAAG;IAACA;GAAG;AAEP,SAAOC;AACT,GAP0B;;;ACL1B,SAASI,cAAAA,mBAAkB;AAE3B,SACEC,uBACK;AAEA,IAAMC,YAAY,wBAACC,WAA2BC,YAAAA;AACnD,SAAOC,YAAkC,YAAYD,UAAU,MAAME,gBAAgBC,OAAO;IAAEH;EAAQ,CAAA,IAAKI,QAAW;IAACJ;GAAQ;AACjI,GAFyB;;;ACNzB,SAASK,cAAAA,mBAAkB;AAC3B,SACEC,SAAAA,QAAOC,aAAAA,YAAWC,eAAAA,oBACb;AAIP,SACEC,+BAAAA,8BAA6BC,oBAAAA,mBAAkBC,cAAcC,iBAC7DC,wBACK;AACP,SAASC,aAAAA,YAAWC,YAAAA,iBAAgB;AAEpC,IAAMC,WAAW;AAEjB,IAAMC,mBAA2B,GAAGC,aAAaC,GAAG;AACpD,IAAMC,sBAA8B,GAAGC,gBAAgBF,GAAG;AAEnD,IAAMG,mBAAmB,6BAAA;AAC9B,QAAMC,kBAAkBC,YAAYP,gBAAAA;AACpC,SAAOM;AACT,GAHgC;AAKzB,IAAME,sBAAsB,6BAAA;AACjC,QAAMF,kBAAkBC,YAAYJ,mBAAAA;AACpC,SAAOG;AACT,GAHmC;AAK5B,IAAMC,cAAc,wBAACE,aAAAA;AAC1B,QAAM,CAACH,iBAAiBI,kBAAAA,IAAsBC,UAAS,KAAA;AACvD,QAAM,CAACC,OAAOC,QAAAA,IAAYF,UAAAA;AAE1B,QAAM,CAACG,MAAAA,IAAUC,YAAW,YAAA;AAC1B,QAAIC,aAAYP,QAAAA,EAAW;AAE3B,UAAMQ,mBAAqC,wBAACC,YAA0B,IAAIC,kBAAiBV,UAAUS,OAAAA,GAA1D;AAC3C,UAAME,UAAU,MAAMC,6BAA4B;MAAEJ;IAAiB,CAAA;AACrE,UAAMH,UAAS,MAAMM,QAAQE,YAA8BC,gBAAAA;AAC3D,WAAOT;EACT,GAAG;IAACL;GAAS;AAEbe,EAAAA,WAAU,MAAA;AACR,QAAIR,aAAYF,MAAAA,EAAS;AAEzB,UAAM,YAAA;AACJD,eAASY,MAAAA;AACT,aAAO,CAACnB,iBAAiB;AACvB,YAAI;AACF,gBAAMoB,QAAQ,MAAMZ,OAAOa,aAAY;AACvCjB,6BAAmBkB,WAAUF,KAAAA,CAAAA;QAC/B,SAASG,KAAK;AACZhB,mBAASgB,GAAAA;AACTnB,6BAAmB,KAAA;QACrB;AACA,cAAMoB,OAAM/B,QAAAA;MACd;IACF,GAAA;EACF,GAAG;IAACO;IAAiBQ;GAAO;AAE5B,SAAO;IAAER;IAAiBM;EAAM;AAClC,GAhC2B;;;AC5B3B,SAASmB,cAAAA,mBAAkB;AAC3B,SAASC,eAAAA,oBAAmB;AAK5B,SACEC,+BAAAA,8BAA6BC,oBAAAA,mBAC7BC,oBAAAA,yBACK;AAEA,IAAMC,mBAAmB,wBAACC,QAAAA;AAC/B,QAAM,CAACC,cAAAA,IAAkBC,YAAW,YAAA;AAClC,QAAIC,aAAYH,GAAAA,GAAM;AACpB;IACF;AACA,UAAMI,mBAAqC,wBAACC,YAA0B,IAAIC,kBAAiB,GAAGN,GAAAA,QAAWK,OAAAA,GAA9D;AAC3C,UAAME,UAAU,MAAMC,6BAA4B;MAAEJ;IAAiB,CAAA;AACrE,WAAO,MAAMG,QAAQE,YAA8BC,iBAAAA;EACrD,GAAG;IAACV;GAAI;AAER,SAAOC;AACT,GAXgC;;;ACXhC,SAASU,cAAAA,oBAAkB;AAC3B,SACEC,aAAAA,YAAWC,oBAAAA,mBAAkBC,UAAAA,eACxB;AAWA,IAAMC,sBAAsB,wBACjCC,WACAC,YAAAA;AAEA,QAAM,EACJC,SAASC,OAAOC,WAAWC,SAAQ,IACjCC,WAAWN,WAAWC,OAAAA;AAE1B,QAAMM,SAASC,aAAW,YAAA;AACxB,QAAIC,kBAAiBN,KAAAA,EAAQ,QAAO;AACpC,QAAIC,UAAW;AACf,QAAIC,YAAYK,QAAOR,OAAAA,EAAU,QAAO;AACxC,QAAIS,WAAUT,OAAAA,KAAYS,WAAUX,SAAAA,GAAY;AAC9C,YAAMY,aAAa,MAAMV,SAASU,WAAAA;AAClC,aAAOA,YAAYC;IACrB;EACF,GAAG;IAACX;IAASF;IAAWC;GAAQ;AAEhC,SAAOM;AACT,GAnBmC;;;ArBEnC,IAAMO,0BAAmDC,wBAAAA,UACvD,gBAAAC,OAAA,cAACC,UAAAA;EAASC,SAAQ;EAAYC,MAAK;EAAS,GAAGJ;IADQA;AAIzD,IAAMK,oCAA8C,6BAClD,gBAAAJ,OAAA,cAACK,OAAAA;EAAMC,UAAS;GACd,gBAAAN,OAAA,cAACO,YAAAA,MAAW,sBAAA,GACZ,gBAAAP,OAAA,cAACQ,aAAAA;EAAWC,cAAAA;GAAa,0EAAA,GAGzB,gBAAAT,OAAA,cAACU,QAAAA;EACCC,IAAI;IAAEC,SAAS;IAAQC,aAAa;EAAM;EAC1CV,MAAK;EACLD,SAAQ;EACRY,MAAK;EACLC,QAAO;EACPC,KAAI;GACL,gBAAA,CAAA,GAb+C;AA4B7C,IAAMC,uBAAkE,wBAAC,EAC9EC,mBAAmBC,kBACnBC,mBAAmBtB,yBACnBuB,6BAA6BjB,mCAC7BkB,oBACAC,UACAC,SACA,GAAGzB,MAAAA,MACJ;AACC,QAAM,EACJ0B,SAASC,eAAeC,OAAOC,SAAQ,IACrCC,kBAAkBC,QAAWN,OAAAA;AAEjCO,EAAAA,WAAU,MAAA;AACR,QAAIC,WAAUL,KAAAA,KAAUK,WAAUT,QAAAA,GAAW;AAC3CA,eAAAA;IACF;EACF,GAAG;IAACI;IAAOJ;GAAS;AAEpBQ,EAAAA,WAAU,MAAA;AACR,QAAIC,WAAUP,OAAAA,KAAYO,WAAUV,kBAAAA,GAAqB;AACvDA,yBAAmBG,OAAAA;IACrB;EACF,GAAG;IAACA;IAASH;GAAmB;AAEhC,SACE,gBAAAtB,OAAA,cAACiC,QAAAA;IAAMC,WAAU;IAAMC,YAAW;IAAQC,SAAS;IAAI,GAAGrC;KACvDiC,WAAUP,OAAAA,IACP,gBAAAzB,OAAA,cAACkB,kBAAAA;IAAiBO;OAClB,MACHY,aAAYZ,OAAAA,KAAY,CAACG,WAEpB,gBAAA5B,OAAA,cAACoB,kBAAAA;IAAiBkB,SAAS,6BAAM,KAAKZ,cAAAA,GAAX;KAA4B,SAAA,IAEzD,MACHW,aAAYZ,OAAAA,KAAYG,WAEnB,gBAAA5B,OAAA,cAACqB,4BAAAA,IAAAA,IAEH,MACJ,gBAAArB,OAAA,cAACuC,aAAAA;IAAYZ;IAAca,OAAM;;AAGvC,GA3C+E;","names":["Stack","Tooltip","Typography","EthAddressWrapper","BlockiesAvatarAddress","React","ConnectedAccount","address","shortenedAddress","EthAddressWrapper","fromString","toShortString","Stack","direction","alignItems","spacing","BlockiesAvatarAddress","size","Tooltip","title","Typography","color","variant","fontFamily","Alert","AlertTitle","Button","Stack","Typography","ButtonEx","isDefined","isUndefined","ErrorRender","React","useEffect","hexToBigInt","formatAccountBalanceHistory","address","history","results","item","blockBw","txBw","transfer","from","to","amount","Object","entries","transfers","push","hexToBigInt","blockNumber","block","timestamp","$epoch","key","globalThis","crypto","randomUUID","txHash","_hash","debug","type","usePromise","isUndefined","hexToBigInt","isHex","toHex","balanceForRange","address","results","totalReceivedBalance","reduce","a","_block","_tx","transfer","hexToBigInt","transfers","toHex","totalSentBalance","from","Object","values","v","isHex","findMinimumBlock","history","length","blockNumbers","map","blockBw","block","min","Math","max","useAccountBalanceHistory","address","viewer","maxPage","blockRange","refresh","usePromise","isUndefined","page","lastBlock","pagedHistory","resolvedStartBlock","history","accountBalanceHistory","range","length","push","findMinimumBlock","nextHistory","formattedHistory","formatAccountBalanceHistory","balance","balanceForRange","truncated","isNull","useCallback","useEffect","useSyncExternalStore","isUndefined","CLIENT_LISTENER_TIMEOUT","hasXyoClient","globalThis","xyo","listenForClientInjection","onClientReady","timeout","onTimeout","resolved","listener","addEventListener","setTimeout","removeEventListener","getXyoClient","isUndefined","client","Promise","resolve","assertEx","delay","forget","isDefined","isNull","TransactionConfirmationStatus","_params","active","params","exp","assertEx","transaction","nbf","onStatusUpdate","txHash","viewer","create","start","currentBlockNumber","isDefined","checkBlock","delay","error","stop","forget","Error","confirmed","blockNumber","progress","remainingBlocks","checkConfirmation","Math","round","tx","transactionByHash","isNull","currentState","client","undefined","error","isLoading","timedout","listeners","Set","emitChange","listener","updateState","newState","initializeClient","timeout","getXyoClient","console","subscribe","add","delete","getSnapshot","useClient","subscribeWithTimeout","useCallback","clientState","useSyncExternalStore","useEffect","globalThis","xyo","isNull","addEventListener","removeEventListener","usePermissions","client","isLoading","error","timedout","useClient","permissions","usePromise","isArray","isDefined","isDefinedNotNull","isString","isDefined","findCaveat","permissions","targetCapability","targetCaveatType","existingPermissions","getPermissions","isDefined","length","foundPermissions","find","p","parentCapability","caveats","caveat","type","value","validateRestrictedAccounts","restrictedAccounts","isDefined","isArray","every","isString","Error","JSON","stringify","useAccountPermissions","permissions","error","usePermissions","usePromise","isDefinedNotNull","findCaveat","isDefined","isNull","useGateway","gatewayName","timeout","client","isLoading","error","timedout","useClient","resolveGateway","isNull","isDefined","gateways","gateway","undefined","usePromise","isUndefined","isUndefinedOrNull","ShiftedBigInt","useMemo","useRef","useState","useAddressBalance","address","viewer","refresh","balancesResult","setBalancesResult","useState","loading","setLoading","balancesError","setBalancesError","balancePromiseRef","useRef","usePromise","isUndefined","undefined","currentPromise","accountBalance","current","result","err","console","error","useMemo","shiftedBigInt","ShiftedBigInt","places","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","balanceIntlFriendly","toFullString","shortBalanceIntlFriendly","isUndefinedOrNull","toShortString","balanceForAddress","usePromise","forget","isDefined","isHash","PayloadBuilder","useEffect","useState","useConfirmTransactionBase","transaction","onBroadcast","onStatusUpdate","runner","viewer","status","setStatus","useState","onStatusUpdateLocal","newStatus","transactionConfirmationStatus","transactionConfirmationError","usePromise","hasRunner","isDefined","hash","broadcastTransaction","PayloadBuilder","isHash","params","txHash","instance","TransactionConfirmationStatus","create","start","Error","useEffect","forget","stop","asAddress","assertEx","MainNetwork","useCallback","useState","useConnectAccount","gatewayName","MainNetwork","id","timeout","connectError","setConnectError","useState","gateway","error","timedout","useGateway","accountPermissions","accountPermissionsError","useAccountPermissions","address","setAddress","connectSigner","useCallback","undefined","assertedGateway","assertEx","signer","signerInstance","e","asAddress","usePromise","isDefinedNotNull","useCurrentBlock","refresh","viewer","usePromise","isDefinedNotNull","block","currentBlock","usePromise","isUndefined","buildJsonRpcProviderLocator","HttpRpcTransport","XyoRunnerMoniker","useHttpRpcRunner","url","usePromise","isUndefined","transportFactory","schemas","HttpRpcTransport","locator","buildJsonRpcProviderLocator","getInstance","XyoRunnerMoniker","isUndefined","SimpleXyoNetwork","useMemo","useNetwork","id","network","useMemo","isUndefined","SimpleXyoNetwork","usePromise","SimpleXyoSigner","useSigner","_provider","account","usePromise","SimpleXyoSigner","create","undefined","usePromise","delay","isDefined","isUndefined","buildJsonRpcProviderLocator","HttpRpcTransport","LocalNetwork","SequenceNetwork","XyoViewerMoniker","useEffect","useState","INTERVAL","localRpcEndpoint","LocalNetwork","url","sequenceRpcEndpoint","SequenceNetwork","useCheckLocalRpc","isLocalProducer","useCheckRpc","useCheckSequenceRpc","endpoint","setIsLocalProducer","useState","error","setError","viewer","usePromise","isUndefined","transportFactory","schemas","HttpRpcTransport","locator","buildJsonRpcProviderLocator","getInstance","XyoViewerMoniker","useEffect","undefined","block","currentBlock","isDefined","err","delay","usePromise","isUndefined","buildJsonRpcProviderLocator","HttpRpcTransport","XyoViewerMoniker","useHttpRpcViewer","url","resolvedViewer","usePromise","isUndefined","transportFactory","schemas","HttpRpcTransport","locator","buildJsonRpcProviderLocator","getInstance","XyoViewerMoniker","usePromise","isDefined","isDefinedNotNull","isNull","useViewerFromWallet","networkId","timeout","gateway","error","isLoading","timedout","useGateway","result","usePromise","isDefinedNotNull","isNull","isDefined","connection","viewer","DefaultConnectComponent","props","React","ButtonEx","variant","size","DefaultNoWalletInstalledComponent","Alert","severity","AlertTitle","Typography","gutterBottom","Button","sx","display","justifySelf","href","target","rel","ConnectAccountsStack","AccountComponent","ConnectedAccount","ConnectComponent","NoWalletInstalledComponent","onAccountConnected","onCancel","timeout","address","connectSigner","error","timedout","useConnectAccount","undefined","useEffect","isDefined","Stack","direction","alignItems","spacing","isUndefined","onClick","ErrorRender","scope"]}
@@ -1,5 +1,4 @@
1
1
  import type { Address } from '@xylabs/sdk-js';
2
- import type { AttoXL1 } from '@xyo-network/xl1-protocol';
3
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { AccountBalanceHistoryItem, AttoXL1 } from '@xyo-network/xl1-sdk';
4
3
  export declare const balanceForRange: (address: Address, results: AccountBalanceHistoryItem[]) => [AttoXL1, AttoXL1];
5
4
  //# sourceMappingURL=balanceForRange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"balanceForRange.d.ts","sourceRoot":"","sources":["../../../src/lib/balanceForRange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAI7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAE9E,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,EAAE,SAAS,yBAAyB,EAAE,KAAG,CAAC,OAAO,EAAE,OAAO,CASzG,CAAA"}
1
+ {"version":3,"file":"balanceForRange.d.ts","sourceRoot":"","sources":["../../../src/lib/balanceForRange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAI7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9E,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,EAAE,SAAS,yBAAyB,EAAE,KAAG,CAAC,OAAO,EAAE,OAAO,CASzG,CAAA"}
@@ -1,3 +1,3 @@
1
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk';
1
+ import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk';
2
2
  export declare const findMinimumBlock: (history: AccountBalanceHistoryItem[]) => number;
3
3
  //# sourceMappingURL=findMinimumBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findMinimumBlock.d.ts","sourceRoot":"","sources":["../../../src/lib/findMinimumBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAE9E,eAAO,MAAM,gBAAgB,GAAI,SAAS,yBAAyB,EAAE,KAAG,MAMvE,CAAA"}
1
+ {"version":3,"file":"findMinimumBlock.d.ts","sourceRoot":"","sources":["../../../src/lib/findMinimumBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErE,eAAO,MAAM,gBAAgB,GAAI,SAAS,yBAAyB,EAAE,KAAG,MAMvE,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/react-chain-provider",
4
- "version": "1.18.0",
4
+ "version": "1.18.1",
5
5
  "description": "XYO Layer One API",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -46,30 +46,28 @@
46
46
  "dependencies": {
47
47
  "@xylabs/react-button": "~7.1.9",
48
48
  "@xylabs/react-promise": "~7.1.9",
49
- "@xylabs/sdk-js": "~5.0.51",
50
- "@xyo-network/account-model": "~5.2.17",
51
- "@xyo-network/payload-builder": "~5.2.17",
52
- "@xyo-network/react-chain-blockies": "~1.18.0",
49
+ "@xylabs/sdk-js": "~5.0.61",
50
+ "@xyo-network/account-model": "~5.2.22",
51
+ "@xyo-network/payload-builder": "~5.2.22",
52
+ "@xyo-network/react-chain-blockies": "~1.18.1",
53
53
  "@xyo-network/react-error": "~7.4.2",
54
- "@xyo-network/xl1-network-model": "~1.18.0",
55
- "@xyo-network/xl1-protocol": "~1.14.17",
56
- "@xyo-network/xl1-protocol-sdk": "~1.18.0",
57
- "@xyo-network/xl1-providers": "~1.18.0",
58
- "@xyo-network/xl1-rpc": "~1.18.0"
54
+ "@xyo-network/xl1-sdk": "~1.18.2"
59
55
  },
60
56
  "devDependencies": {
61
57
  "@emotion/react": "~11.14.0",
62
58
  "@emotion/styled": "~11.14.1",
63
- "@mui/material": "~7.3.6",
64
- "@storybook/react-vite": "~10.1.9",
65
- "@types/react": "~19.2.7",
59
+ "@mui/material": "~7.3.7",
60
+ "@storybook/react-vite": "~10.1.11",
61
+ "@types/react": "~19.2.8",
66
62
  "@xylabs/react-button": "~7.1.9",
67
63
  "@xylabs/ts-scripts-yarn3": "~7.2.32",
68
64
  "@xylabs/tsconfig": "~7.2.32",
69
65
  "@xylabs/tsconfig-dom": "~7.2.32",
70
66
  "@xylabs/tsconfig-react": "~7.2.32",
71
- "@xyo-network/react-chain-model": "~1.18.0",
67
+ "@xyo-network/react-chain-model": "~1.18.1",
72
68
  "@xyo-network/react-error": "~7.4.2",
69
+ "@xyo-network/xl1-network-model": "~1.18.14",
70
+ "@xyo-network/xl1-protocol": "~1.18.14",
73
71
  "eslint": "^9.39.2",
74
72
  "react": "~19.2.3",
75
73
  "typescript": "~5.9.3"
@@ -89,4 +87,4 @@
89
87
  "publishConfig": {
90
88
  "access": "public"
91
89
  }
92
- }
90
+ }
@@ -1,5 +1,5 @@
1
1
  import type { Address, Hash } from '@xylabs/sdk-js'
2
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk'
2
+ import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'
3
3
 
4
4
  export type BalanceTransactionType = 'send' | 'receive'
5
5
 
@@ -1,6 +1,6 @@
1
1
  import type { Address, Hex } from '@xylabs/sdk-js'
2
2
  import { hexToBigInt } from '@xylabs/sdk-js'
3
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk'
3
+ import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'
4
4
 
5
5
  import type { AccountBalanceHistoryItemFormatted } from '../BalanceHistoryItemFormatted.ts'
6
6
 
@@ -3,8 +3,9 @@ import {
3
3
  type Address,
4
4
  isUndefined,
5
5
  } from '@xylabs/sdk-js'
6
- import type { XL1BlockRange } from '@xyo-network/xl1-protocol'
7
- import type { AccountBalanceHistoryItem, XyoViewer } from '@xyo-network/xl1-protocol-sdk'
6
+ import type {
7
+ AccountBalanceHistoryItem, XL1BlockRange, XyoViewer,
8
+ } from '@xyo-network/xl1-sdk'
8
9
 
9
10
  import { balanceForRange, findMinimumBlock } from '../../lib/index.ts'
10
11
  import { formatAccountBalanceHistory } from './helpers/index.ts'
@@ -1,7 +1,7 @@
1
1
  import { isDefined } from '@xylabs/sdk-js'
2
2
  import type {
3
3
  CaveatTypes, ParentCapability, XyoPermissions,
4
- } from '@xyo-network/xl1-protocol-sdk'
4
+ } from '@xyo-network/xl1-sdk'
5
5
 
6
6
  export const findCaveat = async (
7
7
  permissions: XyoPermissions,
@@ -1,5 +1,5 @@
1
1
  import { isNull } from '@xylabs/sdk-js'
2
- import type { XyoClient } from '@xyo-network/xl1-protocol-sdk'
2
+ import type { XyoClient } from '@xyo-network/xl1-sdk'
3
3
  import {
4
4
  useCallback, useEffect, useSyncExternalStore,
5
5
  } from 'react'
@@ -1,5 +1,5 @@
1
1
  import { isDefined, isNull } from '@xylabs/sdk-js'
2
- import type { GatewayName } from '@xyo-network/xl1-protocol'
2
+ import type { GatewayName } from '@xyo-network/xl1-sdk'
3
3
 
4
4
  import { useClient } from './useClient.ts'
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { isUndefined } from '@xylabs/sdk-js'
2
- import type { XyoClient } from '@xyo-network/xl1-protocol-sdk'
2
+ import type { XyoClient } from '@xyo-network/xl1-sdk'
3
3
 
4
4
  const CLIENT_LISTENER_TIMEOUT = 500
5
5
 
@@ -2,8 +2,7 @@ import type { Hash, Promisable } from '@xylabs/sdk-js'
2
2
  import {
3
3
  assertEx, delay, forget, isDefined, isNull,
4
4
  } from '@xylabs/sdk-js'
5
- import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
6
- import type { XyoViewer } from '@xyo-network/xl1-protocol-sdk'
5
+ import type { SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-sdk'
7
6
 
8
7
  export type ConfirmationStatusUpdate = {
9
8
  blockNumber: number
@@ -1,9 +1,8 @@
1
1
  import { usePromise } from '@xylabs/react-promise'
2
2
  import type { Address } from '@xylabs/sdk-js'
3
3
  import { isUndefined, isUndefinedOrNull } from '@xylabs/sdk-js'
4
- import type { AttoXL1 } from '@xyo-network/xl1-protocol'
5
- import { ShiftedBigInt } from '@xyo-network/xl1-protocol'
6
- import type { XyoViewer } from '@xyo-network/xl1-protocol-sdk'
4
+ import type { AttoXL1, XyoViewer } from '@xyo-network/xl1-sdk'
5
+ import { ShiftedBigInt } from '@xyo-network/xl1-sdk'
7
6
  import {
8
7
  useMemo, useRef, useState,
9
8
  } from 'react'
@@ -4,8 +4,9 @@ import {
4
4
  forget, isDefined, isHash,
5
5
  } from '@xylabs/sdk-js'
6
6
  import { PayloadBuilder } from '@xyo-network/payload-builder'
7
- import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
8
- import type { XyoRunner, XyoViewer } from '@xyo-network/xl1-protocol-sdk'
7
+ import type {
8
+ SignedHydratedTransaction, XyoRunner, XyoViewer,
9
+ } from '@xyo-network/xl1-sdk'
9
10
  import { useEffect, useState } from 'react'
10
11
 
11
12
  import type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts'
@@ -1,7 +1,7 @@
1
1
  import { type Address, asAddress } from '@xylabs/sdk-js'
2
2
  import { assertEx } from '@xylabs/sdk-js'
3
- import { MainNetwork } from '@xyo-network/xl1-network-model'
4
- import type { GatewayName } from '@xyo-network/xl1-protocol'
3
+ import type { GatewayName } from '@xyo-network/xl1-sdk'
4
+ import { MainNetwork } from '@xyo-network/xl1-sdk'
5
5
  import { useCallback, useState } from 'react'
6
6
 
7
7
  import { useAccountPermissions, useGateway } from './client/index.ts'
@@ -1,8 +1,10 @@
1
+ import type { UsePromiseState } from '@xylabs/react-promise'
1
2
  import { usePromise } from '@xylabs/react-promise'
2
3
  import { isDefinedNotNull } from '@xylabs/sdk-js'
3
- import type { XyoViewer } from '@xyo-network/xl1-protocol-sdk'
4
+ import type { HydratedBlockWithHashMeta, XyoViewer } from '@xyo-network/xl1-sdk'
4
5
 
5
- export const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null) => {
6
+ export const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null): [HydratedBlockWithHashMeta | undefined,
7
+ Error | undefined, UsePromiseState | undefined] => {
6
8
  return usePromise(async () => {
7
9
  if (isDefinedNotNull(viewer) && refresh > 0) {
8
10
  const block = await viewer.currentBlock()
@@ -1,11 +1,11 @@
1
1
  import { usePromise } from '@xylabs/react-promise'
2
2
  import { isUndefined } from '@xylabs/sdk-js'
3
- import { XyoRunnerMoniker } from '@xyo-network/xl1-protocol-sdk'
4
- import { buildJsonRpcProviderLocator } from '@xyo-network/xl1-providers'
5
3
  import type {
6
4
  JsonRpcXyoRunner, RpcSchemaMap, TransportFactory,
7
- } from '@xyo-network/xl1-rpc'
8
- import { HttpRpcTransport } from '@xyo-network/xl1-rpc'
5
+ } from '@xyo-network/xl1-sdk'
6
+ import {
7
+ buildJsonRpcProviderLocator, HttpRpcTransport, XyoRunnerMoniker,
8
+ } from '@xyo-network/xl1-sdk'
9
9
 
10
10
  export const useHttpRpcRunner = (url?: string) => {
11
11
  return usePromise(async () => {
@@ -1,6 +1,6 @@
1
1
  import { isUndefined } from '@xylabs/sdk-js'
2
- import type { DefaultNetworkIds } from '@xyo-network/xl1-protocol'
3
- import { SimpleXyoNetwork } from '@xyo-network/xl1-protocol-sdk'
2
+ import type { DefaultNetworkIds } from '@xyo-network/xl1-sdk'
3
+ import { SimpleXyoNetwork } from '@xyo-network/xl1-sdk'
4
4
  import { useMemo } from 'react'
5
5
 
6
6
  export const useNetwork = (id?: DefaultNetworkIds) => {
@@ -1,9 +1,9 @@
1
+ import { usePromise } from '@xylabs/react-promise'
1
2
  import type { AccountInstance } from '@xyo-network/account-model'
2
3
  import {
3
4
  SimpleXyoSigner, type XyoConnection, type XyoSigner,
4
- } from '@xyo-network/xl1-protocol-sdk'
5
- import { useMemo } from 'react'
5
+ } from '@xyo-network/xl1-sdk'
6
6
 
7
7
  export const useSigner = (_provider?: XyoConnection, account?: AccountInstance) => {
8
- return useMemo<XyoSigner | undefined>(() => account ? new SimpleXyoSigner(account) : undefined, [account])
8
+ return usePromise<XyoSigner | undefined>(async () => account ? await SimpleXyoSigner.create({ account }) : undefined, [account])
9
9
  }
@@ -2,13 +2,13 @@ import { usePromise } from '@xylabs/react-promise'
2
2
  import {
3
3
  delay, isDefined, isUndefined,
4
4
  } from '@xylabs/sdk-js'
5
- import { LocalNetwork, SequenceNetwork } from '@xyo-network/xl1-network-model'
6
- import { XyoViewerMoniker } from '@xyo-network/xl1-protocol-sdk'
7
- import { buildJsonRpcProviderLocator } from '@xyo-network/xl1-providers'
8
5
  import type {
9
6
  JsonRpcXyoViewer, RpcSchemaMap, TransportFactory,
10
- } from '@xyo-network/xl1-rpc'
11
- import { HttpRpcTransport } from '@xyo-network/xl1-rpc'
7
+ } from '@xyo-network/xl1-sdk'
8
+ import {
9
+ buildJsonRpcProviderLocator, HttpRpcTransport, LocalNetwork, SequenceNetwork,
10
+ XyoViewerMoniker,
11
+ } from '@xyo-network/xl1-sdk'
12
12
  import { useEffect, useState } from 'react'
13
13
 
14
14
  const INTERVAL = 5000 // 5 seconds
@@ -55,7 +55,7 @@ export const useCheckRpc = (endpoint?: string) => {
55
55
  await delay(INTERVAL)
56
56
  }
57
57
  })()
58
- }, [viewer])
58
+ }, [isLocalProducer, viewer])
59
59
 
60
60
  return { isLocalProducer, error }
61
61
  }
@@ -1,11 +1,13 @@
1
1
  import { usePromise } from '@xylabs/react-promise'
2
2
  import { isUndefined } from '@xylabs/sdk-js'
3
- import { type XyoViewer, XyoViewerMoniker } from '@xyo-network/xl1-protocol-sdk'
4
- import { buildJsonRpcProviderLocator } from '@xyo-network/xl1-providers'
5
3
  import type {
6
4
  JsonRpcXyoViewer, RpcSchemaMap, TransportFactory,
7
- } from '@xyo-network/xl1-rpc'
8
- import { HttpRpcTransport } from '@xyo-network/xl1-rpc'
5
+ XyoViewer,
6
+ } from '@xyo-network/xl1-sdk'
7
+ import {
8
+ buildJsonRpcProviderLocator, HttpRpcTransport,
9
+ XyoViewerMoniker,
10
+ } from '@xyo-network/xl1-sdk'
9
11
 
10
12
  export const useHttpRpcViewer = (url?: string): XyoViewer | undefined => {
11
13
  const [resolvedViewer] = usePromise(async () => {
@@ -17,5 +19,5 @@ export const useHttpRpcViewer = (url?: string): XyoViewer | undefined => {
17
19
  return await locator.getInstance<JsonRpcXyoViewer>(XyoViewerMoniker)
18
20
  }, [url])
19
21
 
20
- return resolvedViewer
22
+ return resolvedViewer as XyoViewer | undefined
21
23
  }
@@ -2,7 +2,7 @@ import { usePromise } from '@xylabs/react-promise'
2
2
  import {
3
3
  isDefined, isDefinedNotNull, isNull,
4
4
  } from '@xylabs/sdk-js'
5
- import type { GatewayName } from '@xyo-network/xl1-protocol'
5
+ import type { GatewayName } from '@xyo-network/xl1-sdk'
6
6
 
7
7
  import { useGateway } from '../client/index.ts'
8
8
 
@@ -2,8 +2,7 @@ import type { Address } from '@xylabs/sdk-js'
2
2
  import {
3
3
  hexToBigInt, isHex, toHex,
4
4
  } from '@xylabs/sdk-js'
5
- import type { AttoXL1 } from '@xyo-network/xl1-protocol'
6
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk'
5
+ import type { AccountBalanceHistoryItem, AttoXL1 } from '@xyo-network/xl1-sdk'
7
6
 
8
7
  export const balanceForRange = (address: Address, results: AccountBalanceHistoryItem[]): [AttoXL1, AttoXL1] => {
9
8
  const totalReceivedBalance = results?.reduce((a, [_block, _tx, transfer]) => {
@@ -1,4 +1,4 @@
1
- import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-protocol-sdk'
1
+ import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'
2
2
 
3
3
  export const findMinimumBlock = (history: AccountBalanceHistoryItem[]): number => {
4
4
  // since taking Math.min of an empty array returns Infinity