@xyo-network/react-chain-provider 1.6.5 → 1.6.6

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 (36) hide show
  1. package/dist/browser/index.mjs +66 -88
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/types/hooks/index.d.ts +2 -3
  4. package/dist/types/hooks/index.d.ts.map +1 -1
  5. package/dist/types/hooks/useAddressBalance.d.ts +2 -2
  6. package/dist/types/hooks/useAddressBalance.d.ts.map +1 -1
  7. package/dist/types/hooks/useCurrentBlock.d.ts +2 -3
  8. package/dist/types/hooks/useCurrentBlock.d.ts.map +1 -1
  9. package/dist/types/hooks/useHttpRpcRunner.d.ts +3 -0
  10. package/dist/types/hooks/useHttpRpcRunner.d.ts.map +1 -0
  11. package/dist/types/hooks/useNetwork.d.ts +0 -4
  12. package/dist/types/hooks/useNetwork.d.ts.map +1 -1
  13. package/dist/types/hooks/viewer/index.d.ts +3 -0
  14. package/dist/types/hooks/viewer/index.d.ts.map +1 -0
  15. package/dist/types/hooks/viewer/useHttpRpcViewer.d.ts +3 -0
  16. package/dist/types/hooks/viewer/useHttpRpcViewer.d.ts.map +1 -0
  17. package/dist/types/hooks/viewer/useViewerFromWallet.d.ts +9 -0
  18. package/dist/types/hooks/viewer/useViewerFromWallet.d.ts.map +1 -0
  19. package/package.json +9 -9
  20. package/src/hooks/index.ts +2 -3
  21. package/src/hooks/useAddressBalance.ts +2 -6
  22. package/src/hooks/useCurrentBlock.ts +2 -7
  23. package/src/hooks/{useRunner.ts → useHttpRpcRunner.ts} +1 -4
  24. package/src/hooks/useNetwork.ts +1 -6
  25. package/src/hooks/viewer/index.ts +2 -0
  26. package/src/hooks/{useViewer.stories.tsx → viewer/useHttpRpcViewer.stories.tsx} +6 -6
  27. package/src/hooks/viewer/useHttpRpcViewer.ts +17 -0
  28. package/src/hooks/{useHostViewer.stories.tsx → viewer/useViewerFromWallet.stories.tsx} +6 -6
  29. package/src/hooks/{useHostViewer.ts → viewer/useViewerFromWallet.ts} +2 -6
  30. package/dist/types/hooks/useHostViewer.d.ts +0 -13
  31. package/dist/types/hooks/useHostViewer.d.ts.map +0 -1
  32. package/dist/types/hooks/useRunner.d.ts +0 -5
  33. package/dist/types/hooks/useRunner.d.ts.map +0 -1
  34. package/dist/types/hooks/useViewer.d.ts +0 -5
  35. package/dist/types/hooks/useViewer.d.ts.map +0 -1
  36. package/src/hooks/useViewer.ts +0 -28
@@ -6,7 +6,7 @@ import { usePromise } from "@xylabs/react-promise";
6
6
  import { isUndefined, isUndefinedOrNull } from "@xylabs/typeof";
7
7
  import { ShiftedBigInt } from "@xyo-network/chain-wrappers";
8
8
  import { useMemo, useState } from "react";
9
- var useAddressBalance = /* @__PURE__ */ __name((address, viewer, networkId, refresh) => {
9
+ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
10
10
  const [balancesResult, setBalancesResult] = useState();
11
11
  const [loading, setLoading] = useState(false);
12
12
  const [, balancesError] = usePromise(async () => {
@@ -19,7 +19,6 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, networkId, refr
19
19
  }, [
20
20
  address,
21
21
  viewer,
22
- networkId,
23
22
  refresh
24
23
  ]);
25
24
  useMemo(() => {
@@ -63,60 +62,7 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, networkId, refr
63
62
 
64
63
  // src/hooks/useCurrentBlock.ts
65
64
  import { usePromise as usePromise2 } from "@xylabs/react-promise";
66
-
67
- // src/hooks/useViewer.ts
68
- import { isDefined as isDefined2, isUndefined as isUndefined3 } from "@xylabs/typeof";
69
- import { AllRpcSchemas, HttpRpcTransport, JsonRpcXyoViewer as JsonRpcXyoViewer2 } from "@xyo-network/xl1-rpc";
70
- import { useMemo as useMemo3 } from "react";
71
-
72
- // src/hooks/useHostViewer.ts
73
- import { isDefined, isTruthy, isUndefined as isUndefined2 } from "@xylabs/typeof";
74
- import { JsonRpcXyoViewer, PostMessageRpcTransport } from "@xyo-network/xl1-rpc";
75
- import { useMemo as useMemo2 } from "react";
76
- var walletConnections = /* @__PURE__ */ __name(() => globalThis.xyo?.connections, "walletConnections");
77
- var useHostViewerBase = /* @__PURE__ */ __name((networkId) => {
78
- const networkConnection = useMemo2(() => {
79
- if (isTruthy(networkId) && isDefined(walletConnections()) && isDefined(walletConnections()?.[networkId])) {
80
- return networkId;
81
- }
82
- }, [
83
- networkId
84
- ]);
85
- const rpcProvider = useMemo2(() => {
86
- if (isUndefined2(networkConnection)) return;
87
- const transport = new PostMessageRpcTransport(networkConnection);
88
- return new JsonRpcXyoViewer(transport);
89
- }, [
90
- networkConnection
91
- ]);
92
- return rpcProvider;
93
- }, "useHostViewerBase");
94
- var useHostViewer = useHostViewerBase;
95
-
96
- // src/hooks/useViewer.ts
97
- var useViewerBase = /* @__PURE__ */ __name((id, url) => {
98
- const hostViewer = useHostViewerBase(id);
99
- const resolvedViewer = useMemo3(() => {
100
- if (isUndefined3(url)) {
101
- return;
102
- }
103
- if (isDefined2(hostViewer)) {
104
- console.debug("Using host viewer:", hostViewer);
105
- return hostViewer;
106
- }
107
- const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas);
108
- return new JsonRpcXyoViewer2(transport);
109
- }, [
110
- url,
111
- hostViewer
112
- ]);
113
- return resolvedViewer;
114
- }, "useViewerBase");
115
- var useViewer = useViewerBase;
116
-
117
- // src/hooks/useCurrentBlock.ts
118
- var useCurrentBlockBase = /* @__PURE__ */ __name((refresh = 1, id, url) => {
119
- const viewer = useViewerBase(id, url);
65
+ var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
120
66
  return usePromise2(async () => {
121
67
  if (viewer && refresh > 0) {
122
68
  const block = await viewer.currentBlock();
@@ -126,61 +72,93 @@ var useCurrentBlockBase = /* @__PURE__ */ __name((refresh = 1, id, url) => {
126
72
  viewer,
127
73
  refresh
128
74
  ]);
129
- }, "useCurrentBlockBase");
130
- var useCurrentBlock = useCurrentBlockBase;
75
+ }, "useCurrentBlock");
76
+
77
+ // src/hooks/useHttpRpcRunner.ts
78
+ import { isUndefined as isUndefined2 } from "@xylabs/typeof";
79
+ import { AllRpcSchemas, HttpRpcTransport, JsonRpcXyoRunner } from "@xyo-network/xl1-rpc";
80
+ import { useMemo as useMemo2 } from "react";
81
+ var useHttpRpcRunner = /* @__PURE__ */ __name((url) => {
82
+ return useMemo2(() => {
83
+ if (isUndefined2(url)) {
84
+ return;
85
+ }
86
+ const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas);
87
+ return new JsonRpcXyoRunner(transport);
88
+ }, [
89
+ url
90
+ ]);
91
+ }, "useHttpRpcRunner");
131
92
 
132
93
  // src/hooks/useNetwork.ts
133
- import { isUndefined as isUndefined4 } from "@xylabs/typeof";
94
+ import { isUndefined as isUndefined3 } from "@xylabs/typeof";
134
95
  import { MemoryXyoNetwork } from "@xyo-network/xl1-rpc";
135
- import { useMemo as useMemo4 } from "react";
136
- var useNetworkBase = /* @__PURE__ */ __name((id) => {
137
- const network = useMemo4(() => {
138
- if (isUndefined4(id)) return;
96
+ import { useMemo as useMemo3 } from "react";
97
+ var useNetwork = /* @__PURE__ */ __name((id) => {
98
+ const network = useMemo3(() => {
99
+ if (isUndefined3(id)) return;
139
100
  return new MemoryXyoNetwork(id);
140
101
  }, [
141
102
  id
142
103
  ]);
143
104
  return network;
144
- }, "useNetworkBase");
145
- var useNetwork = useNetworkBase;
105
+ }, "useNetwork");
146
106
 
147
- // src/hooks/useRunner.ts
148
- import { isUndefined as isUndefined5 } from "@xylabs/typeof";
149
- import { AllRpcSchemas as AllRpcSchemas2, HttpRpcTransport as HttpRpcTransport2, JsonRpcXyoRunner } from "@xyo-network/xl1-rpc";
107
+ // src/hooks/useSigner.ts
108
+ import { MemoryXyoSigner } from "@xyo-network/xl1-rpc";
109
+ import { useMemo as useMemo4 } from "react";
110
+ var useSigner = /* @__PURE__ */ __name((_provider, account) => {
111
+ return useMemo4(() => account ? new MemoryXyoSigner(account) : void 0, [
112
+ account
113
+ ]);
114
+ }, "useSigner");
115
+
116
+ // src/hooks/viewer/useHttpRpcViewer.ts
117
+ import { isUndefined as isUndefined4 } from "@xylabs/typeof";
118
+ import { AllRpcSchemas as AllRpcSchemas2, HttpRpcTransport as HttpRpcTransport2, JsonRpcXyoViewer } from "@xyo-network/xl1-rpc";
150
119
  import { useMemo as useMemo5 } from "react";
151
- var useRunnerBase = /* @__PURE__ */ __name((url) => {
152
- return useMemo5(() => {
153
- if (isUndefined5(url)) {
120
+ var useHttpRpcViewer = /* @__PURE__ */ __name((url) => {
121
+ const resolvedViewer = useMemo5(() => {
122
+ if (isUndefined4(url)) {
154
123
  return;
155
124
  }
156
125
  const transport = new HttpRpcTransport2(`${url}/rpc`, AllRpcSchemas2);
157
- return new JsonRpcXyoRunner(transport);
126
+ return new JsonRpcXyoViewer(transport);
158
127
  }, [
159
128
  url
160
129
  ]);
161
- }, "useRunnerBase");
162
- var useRunner = useRunnerBase;
130
+ return resolvedViewer;
131
+ }, "useHttpRpcViewer");
163
132
 
164
- // src/hooks/useSigner.ts
165
- import { MemoryXyoSigner } from "@xyo-network/xl1-rpc";
133
+ // src/hooks/viewer/useViewerFromWallet.ts
134
+ import { isDefined, isTruthy, isUndefined as isUndefined5 } from "@xylabs/typeof";
135
+ import { JsonRpcXyoViewer as JsonRpcXyoViewer2, PostMessageRpcTransport } from "@xyo-network/xl1-rpc";
166
136
  import { useMemo as useMemo6 } from "react";
167
- var useSigner = /* @__PURE__ */ __name((_provider, account) => {
168
- return useMemo6(() => account ? new MemoryXyoSigner(account) : void 0, [
169
- account
137
+ var walletConnections = /* @__PURE__ */ __name(() => globalThis.xyo?.connections, "walletConnections");
138
+ var useViewerFromWallet = /* @__PURE__ */ __name((networkId) => {
139
+ const networkConnection = useMemo6(() => {
140
+ if (isTruthy(networkId) && isDefined(walletConnections()) && isDefined(walletConnections()?.[networkId])) {
141
+ return networkId;
142
+ }
143
+ }, [
144
+ networkId
170
145
  ]);
171
- }, "useSigner");
146
+ const rpcProvider = useMemo6(() => {
147
+ if (isUndefined5(networkConnection)) return;
148
+ const transport = new PostMessageRpcTransport(networkConnection);
149
+ return new JsonRpcXyoViewer2(transport);
150
+ }, [
151
+ networkConnection
152
+ ]);
153
+ return rpcProvider;
154
+ }, "useViewerFromWallet");
172
155
  export {
173
156
  useAddressBalance,
174
157
  useCurrentBlock,
175
- useCurrentBlockBase,
176
- useHostViewer,
177
- useHostViewerBase,
158
+ useHttpRpcRunner,
159
+ useHttpRpcViewer,
178
160
  useNetwork,
179
- useNetworkBase,
180
- useRunner,
181
- useRunnerBase,
182
161
  useSigner,
183
- useViewer,
184
- useViewerBase
162
+ useViewerFromWallet
185
163
  };
186
164
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useAddressBalance.ts","../../src/hooks/useCurrentBlock.ts","../../src/hooks/useViewer.ts","../../src/hooks/useHostViewer.ts","../../src/hooks/useNetwork.ts","../../src/hooks/useRunner.ts","../../src/hooks/useSigner.ts"],"sourcesContent":["import type { Address } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/typeof'\nimport { ShiftedBigInt } from '@xyo-network/chain-wrappers'\nimport type {\n AttoXL1, NetworkId, XyoViewer,\n} from '@xyo-network/xl1-protocol'\nimport { useMemo, useState } 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 // network ID to trigger a balance refresh\n networkId?: NetworkId,\n // refresh balance trigger\n refresh?: number,\n) => {\n const [balancesResult, setBalancesResult] = useState<AttoXL1 | null>()\n const [loading, setLoading] = useState(false)\n\n const [, balancesError] = usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n setLoading(true)\n setBalancesResult(undefined)\n const balance = await viewer.accountBalance(address)\n setBalancesResult(balance as AttoXL1)\n setLoading(false)\n }, [address, viewer, networkId, 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'\n\nimport { useViewerBase } from './useViewer.ts'\n\nexport const useCurrentBlockBase = (refresh = 1, id?: string, url?: string) => {\n const viewer = useViewerBase(id, url)\n return usePromise(async () => {\n if (viewer && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n\n/** @deprecated - use useCurrentBlockBase instead but note this hook no longer relies on useChainNetwork */\nexport const useCurrentBlock = useCurrentBlockBase\n","import { isDefined, isUndefined } from '@xylabs/typeof'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoViewer,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nimport { useHostViewerBase } from './useHostViewer.ts'\n\nexport const useViewerBase = (id?: string, url?: string) => {\n const hostViewer = useHostViewerBase(id)\n\n const resolvedViewer = useMemo(() => {\n if (isUndefined(url)) {\n return\n }\n if (isDefined(hostViewer)) {\n console.debug('Using host viewer:', hostViewer)\n return hostViewer\n }\n const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoViewer(transport)\n }, [url, hostViewer])\n\n return resolvedViewer\n}\n\n/** @deprecated - use useViewerBase instead but note this hook no longer relies on useChainNetwork */\nexport const useViewer = useViewerBase\n","import {\n isDefined, isTruthy, isUndefined,\n} from '@xylabs/typeof'\nimport {\n JsonRpcXyoViewer,\n PostMessageRpcTransport,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\n// Get known wallet connections from the global Xyo object\nconst walletConnections = () => globalThis.xyo?.connections\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 JsonRpcXyoViewer if the networkId is found in walletConnections,\n * otherwise undefined.\n */\nexport const useHostViewerBase = (networkId?: string) => {\n const networkConnection = useMemo(() => {\n if (isTruthy(networkId) && isDefined(walletConnections()) && isDefined(walletConnections()?.[networkId])) {\n return networkId\n }\n }, [networkId])\n\n const rpcProvider = useMemo(() => {\n if (isUndefined(networkConnection)) return\n const transport = new PostMessageRpcTransport(networkConnection)\n return new JsonRpcXyoViewer(transport)\n }, [networkConnection])\n\n return rpcProvider\n}\n\n/**\n * @deprecated - use useHostViewerBase instead but note this hook no longer relies on useChainNetwork\n */\nexport const useHostViewer = useHostViewerBase\n","import { isUndefined } from '@xylabs/typeof'\nimport type { DefaultNetworkIds } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoNetwork } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useNetworkBase = (id?: DefaultNetworkIds) => {\n const network = useMemo(() => {\n if (isUndefined(id)) return\n return new MemoryXyoNetwork(id)\n }, [id])\n\n return network\n}\n\n/**\n * @deprecated - use useNetworkBase instead but note this hook no longer relies on useChainNetwork\n */\nexport const useNetwork = useNetworkBase\n","import { isUndefined } from '@xylabs/typeof'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoRunner,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useRunnerBase = (url?: string) => {\n return useMemo(() => {\n if (isUndefined(url)) {\n return\n }\n const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoRunner(transport)\n }, [url])\n}\n\n/** @deprecated - use useRunnerBase instead but note this hook no longer relies on useChainNetwork */\nexport const useRunner = useRunnerBase\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport type { XyoProvider, XyoSigner } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoSigner } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useSigner = (_provider?: XyoProvider, account?: AccountInstance) => {\n return useMemo<XyoSigner | undefined>(() => account ? new MemoryXyoSigner(account) : undefined, [account])\n}\n"],"mappings":"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","names":["usePromise","isUndefined","isUndefinedOrNull","ShiftedBigInt","useMemo","useState","useAddressBalance","address","viewer","networkId","refresh","balancesResult","setBalancesResult","useState","loading","setLoading","balancesError","usePromise","isUndefined","undefined","balance","accountBalance","useMemo","shiftedBigInt","ShiftedBigInt","places","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","balanceIntlFriendly","toFullString","shortBalanceIntlFriendly","isUndefinedOrNull","toShortString","balanceForAddress","error","usePromise","isDefined","isUndefined","AllRpcSchemas","HttpRpcTransport","JsonRpcXyoViewer","useMemo","isDefined","isTruthy","isUndefined","JsonRpcXyoViewer","PostMessageRpcTransport","useMemo","walletConnections","globalThis","xyo","connections","useHostViewerBase","networkId","networkConnection","useMemo","isTruthy","isDefined","rpcProvider","isUndefined","transport","PostMessageRpcTransport","JsonRpcXyoViewer","useHostViewer","useViewerBase","id","url","hostViewer","useHostViewerBase","resolvedViewer","useMemo","isUndefined","isDefined","console","debug","transport","HttpRpcTransport","AllRpcSchemas","JsonRpcXyoViewer","useViewer","useCurrentBlockBase","refresh","id","url","viewer","useViewerBase","usePromise","block","currentBlock","useCurrentBlock","isUndefined","MemoryXyoNetwork","useMemo","useNetworkBase","id","network","useMemo","isUndefined","MemoryXyoNetwork","useNetwork","isUndefined","AllRpcSchemas","HttpRpcTransport","JsonRpcXyoRunner","useMemo","useRunnerBase","url","useMemo","isUndefined","transport","HttpRpcTransport","AllRpcSchemas","JsonRpcXyoRunner","useRunner","MemoryXyoSigner","useMemo","useSigner","_provider","account","useMemo","MemoryXyoSigner","undefined"]}
1
+ {"version":3,"sources":["../../src/hooks/useAddressBalance.ts","../../src/hooks/useCurrentBlock.ts","../../src/hooks/useHttpRpcRunner.ts","../../src/hooks/useNetwork.ts","../../src/hooks/useSigner.ts","../../src/hooks/viewer/useHttpRpcViewer.ts","../../src/hooks/viewer/useViewerFromWallet.ts"],"sourcesContent":["import type { Address } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/typeof'\nimport { ShiftedBigInt } from '@xyo-network/chain-wrappers'\nimport type { AttoXL1, XyoViewer } from '@xyo-network/xl1-protocol'\nimport { useMemo, useState } 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\n const [, balancesError] = usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n setLoading(true)\n setBalancesResult(undefined)\n const balance = await viewer.accountBalance(address)\n setBalancesResult(balance as AttoXL1)\n setLoading(false)\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 { XyoViewer } from '@xyo-network/xl1-protocol'\n\nexport const useCurrentBlock = (refresh = 1, viewer?: XyoViewer) => {\n return usePromise(async () => {\n if (viewer && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoRunner,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useHttpRpcRunner = (url?: string) => {\n return useMemo(() => {\n if (isUndefined(url)) {\n return\n }\n const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoRunner(transport)\n }, [url])\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport type { DefaultNetworkIds } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoNetwork } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useNetwork = (id?: DefaultNetworkIds) => {\n const network = useMemo(() => {\n if (isUndefined(id)) return\n return new MemoryXyoNetwork(id)\n }, [id])\n\n return network\n}\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport type { XyoProvider, XyoSigner } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoSigner } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useSigner = (_provider?: XyoProvider, account?: AccountInstance) => {\n return useMemo<XyoSigner | undefined>(() => account ? new MemoryXyoSigner(account) : undefined, [account])\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoViewer,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useHttpRpcViewer = (url?: string) => {\n const resolvedViewer = useMemo(() => {\n if (isUndefined(url)) {\n return\n }\n const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoViewer(transport)\n }, [url])\n\n return resolvedViewer\n}\n","import {\n isDefined, isTruthy, isUndefined,\n} from '@xylabs/typeof'\nimport {\n JsonRpcXyoViewer,\n PostMessageRpcTransport,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\n// NOTE: Eventually this value will come from a context or similar, but for now we are using a global\n// Get known wallet connections from the global Xyo object\nconst walletConnections = () => globalThis.xyo?.connections\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 JsonRpcXyoViewer if the networkId is found in walletConnections,\n * otherwise undefined.\n */\nexport const useViewerFromWallet = (networkId?: string) => {\n const networkConnection = useMemo(() => {\n if (isTruthy(networkId) && isDefined(walletConnections()) && isDefined(walletConnections()?.[networkId])) {\n return networkId\n }\n }, [networkId])\n\n const rpcProvider = useMemo(() => {\n if (isUndefined(networkConnection)) return\n const transport = new PostMessageRpcTransport(networkConnection)\n return new JsonRpcXyoViewer(transport)\n }, [networkConnection])\n\n return rpcProvider\n}\n"],"mappings":"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","names":["usePromise","isUndefined","isUndefinedOrNull","ShiftedBigInt","useMemo","useState","useAddressBalance","address","viewer","refresh","balancesResult","setBalancesResult","useState","loading","setLoading","balancesError","usePromise","isUndefined","undefined","balance","accountBalance","useMemo","shiftedBigInt","ShiftedBigInt","places","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","balanceIntlFriendly","toFullString","shortBalanceIntlFriendly","isUndefinedOrNull","toShortString","balanceForAddress","error","usePromise","useCurrentBlock","refresh","viewer","usePromise","block","currentBlock","isUndefined","AllRpcSchemas","HttpRpcTransport","JsonRpcXyoRunner","useMemo","useHttpRpcRunner","url","useMemo","isUndefined","transport","HttpRpcTransport","AllRpcSchemas","JsonRpcXyoRunner","isUndefined","MemoryXyoNetwork","useMemo","useNetwork","id","network","useMemo","isUndefined","MemoryXyoNetwork","MemoryXyoSigner","useMemo","useSigner","_provider","account","useMemo","MemoryXyoSigner","undefined","isUndefined","AllRpcSchemas","HttpRpcTransport","JsonRpcXyoViewer","useMemo","useHttpRpcViewer","url","resolvedViewer","useMemo","isUndefined","transport","HttpRpcTransport","AllRpcSchemas","JsonRpcXyoViewer","isDefined","isTruthy","isUndefined","JsonRpcXyoViewer","PostMessageRpcTransport","useMemo","walletConnections","globalThis","xyo","connections","useViewerFromWallet","networkId","networkConnection","useMemo","isTruthy","isDefined","rpcProvider","isUndefined","transport","PostMessageRpcTransport","JsonRpcXyoViewer"]}
@@ -1,8 +1,7 @@
1
1
  export * from './useAddressBalance.ts';
2
2
  export * from './useCurrentBlock.ts';
3
- export * from './useHostViewer.ts';
3
+ export * from './useHttpRpcRunner.ts';
4
4
  export * from './useNetwork.ts';
5
- export * from './useRunner.ts';
6
5
  export * from './useSigner.ts';
7
- export * from './useViewer.ts';
6
+ export * from './viewer/index.ts';
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { Address } from '@xylabs/hex';
2
- import type { AttoXL1, NetworkId, XyoViewer } from '@xyo-network/xl1-protocol';
3
- export declare const useAddressBalance: (address?: Address, viewer?: XyoViewer, networkId?: NetworkId, refresh?: number) => {
2
+ import type { AttoXL1, XyoViewer } from '@xyo-network/xl1-protocol';
3
+ export declare const useAddressBalance: (address?: Address, viewer?: XyoViewer, refresh?: number) => {
4
4
  address: Lowercase<string> | undefined;
5
5
  balanceForAddress: AttoXL1 | null | undefined;
6
6
  balanceIntlFriendly: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useAddressBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,OAAO,KAAK,EACV,OAAO,EAAE,SAAS,EAAE,SAAS,EAC9B,MAAM,2BAA2B,CAAA;AAGlC,eAAO,MAAM,iBAAiB,GAE5B,UAAU,OAAO,EAEjB,SAAS,SAAS,EAElB,YAAY,SAAS,EAErB,UAAU,MAAM;;;;;;;CA6CjB,CAAA"}
1
+ {"version":3,"file":"useAddressBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAGnE,eAAO,MAAM,iBAAiB,GAE5B,UAAU,OAAO,EAEjB,SAAS,SAAS,EAElB,UAAU,MAAM;;;;;;;CA6CjB,CAAA"}
@@ -1,4 +1,3 @@
1
- export declare const useCurrentBlockBase: (refresh?: number, id?: string, url?: string) => [import("@xyo-network/xl1-protocol").HydratedBlock | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
2
- /** @deprecated - use useCurrentBlockBase instead but note this hook no longer relies on useChainNetwork */
3
- export declare const useCurrentBlock: (refresh?: number, id?: string, url?: string) => [import("@xyo-network/xl1-protocol").HydratedBlock | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
1
+ import type { XyoViewer } from '@xyo-network/xl1-protocol';
2
+ export declare const useCurrentBlock: (refresh?: number, viewer?: XyoViewer) => [import("@xyo-network/xl1-protocol").HydratedBlock | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
4
3
  //# sourceMappingURL=useCurrentBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCurrentBlock.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCurrentBlock.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,GAAI,gBAAW,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,oJAQzE,CAAA;AAED,2GAA2G;AAC3G,eAAO,MAAM,eAAe,0BAX0B,MAAM,QAAQ,MAAM,oJAWxB,CAAA"}
1
+ {"version":3,"file":"useCurrentBlock.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCurrentBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,eAAO,MAAM,eAAe,GAAI,gBAAW,EAAE,SAAS,SAAS,oJAO9D,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { JsonRpcXyoRunner } from '@xyo-network/xl1-rpc';
2
+ export declare const useHttpRpcRunner: (url?: string) => JsonRpcXyoRunner | undefined;
3
+ //# sourceMappingURL=useHttpRpcRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHttpRpcRunner.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHttpRpcRunner.ts"],"names":[],"mappings":"AACA,OAAO,EAC4B,gBAAgB,EAClD,MAAM,sBAAsB,CAAA;AAG7B,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,iCAQ5C,CAAA"}
@@ -1,8 +1,4 @@
1
1
  import type { DefaultNetworkIds } from '@xyo-network/xl1-protocol';
2
2
  import { MemoryXyoNetwork } from '@xyo-network/xl1-rpc';
3
- export declare const useNetworkBase: (id?: DefaultNetworkIds) => MemoryXyoNetwork | undefined;
4
- /**
5
- * @deprecated - use useNetworkBase instead but note this hook no longer relies on useChainNetwork
6
- */
7
3
  export declare const useNetwork: (id?: DefaultNetworkIds) => MemoryXyoNetwork | undefined;
8
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,sBAAsB,CAAA;AAGvD,eAAO,MAAM,cAAc,GAAI,KAAK,iBAAiB,iCAOpD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAZa,iBAAiB,iCAYb,CAAA"}
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,sBAAsB,CAAA;AAGvD,eAAO,MAAM,UAAU,GAAI,KAAK,iBAAiB,iCAOhD,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './useHttpRpcViewer.ts';
2
+ export * from './useViewerFromWallet.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { JsonRpcXyoViewer } from '@xyo-network/xl1-rpc';
2
+ export declare const useHttpRpcViewer: (url?: string) => JsonRpcXyoViewer | undefined;
3
+ //# sourceMappingURL=useHttpRpcViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHttpRpcViewer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/useHttpRpcViewer.ts"],"names":[],"mappings":"AACA,OAAO,EAC4B,gBAAgB,EAClD,MAAM,sBAAsB,CAAA;AAG7B,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,iCAU5C,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { JsonRpcXyoViewer } from '@xyo-network/xl1-rpc';
2
+ /**
3
+ * Creates a JsonRpcXyoViewer instance based on the provided networkId.
4
+ * @param networkId - a network id like 'sequence', 'local', etc.
5
+ * @returns An instance of JsonRpcXyoViewer if the networkId is found in walletConnections,
6
+ * otherwise undefined.
7
+ */
8
+ export declare const useViewerFromWallet: (networkId?: string) => JsonRpcXyoViewer | undefined;
9
+ //# sourceMappingURL=useViewerFromWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useViewerFromWallet.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/useViewerFromWallet.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAEjB,MAAM,sBAAsB,CAAA;AAO7B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,iCAcrD,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.6.5",
4
+ "version": "1.6.6",
5
5
  "description": "XYO Layer One API",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -34,13 +34,13 @@
34
34
  "module": "dist/browser/index.mjs",
35
35
  "types": "dist/types/index.d.ts",
36
36
  "dependencies": {
37
- "@xylabs/hex": "^4.12.44",
37
+ "@xylabs/hex": "^4.13.5",
38
38
  "@xylabs/react-promise": "^6.3.7",
39
- "@xylabs/typeof": "^4.12.44",
40
- "@xyo-network/account-model": "^4.0.2",
41
- "@xyo-network/chain-wrappers": "^1.6.5",
42
- "@xyo-network/xl1-protocol": "^1.6.1",
43
- "@xyo-network/xl1-rpc": "^1.6.5",
39
+ "@xylabs/typeof": "^4.13.5",
40
+ "@xyo-network/account-model": "^4.0.3",
41
+ "@xyo-network/chain-wrappers": "^1.6.6",
42
+ "@xyo-network/xl1-protocol": "^1.6.2",
43
+ "@xyo-network/xl1-rpc": "^1.6.6",
44
44
  "react": "^19.1.0"
45
45
  },
46
46
  "devDependencies": {
@@ -51,8 +51,8 @@
51
51
  "@types/react": "^19.1.8",
52
52
  "@xylabs/ts-scripts-yarn3": "^6.5.18",
53
53
  "@xylabs/tsconfig-react": "^6.5.18",
54
- "@xyo-network/chain-network-model": "^1.6.5",
55
- "@xyo-network/react-chain-model": "^1.6.5",
54
+ "@xyo-network/chain-network-model": "^1.6.6",
55
+ "@xyo-network/react-chain-model": "^1.6.6",
56
56
  "knip": "^5.61.3",
57
57
  "typescript": "^5.8.3"
58
58
  },
@@ -1,7 +1,6 @@
1
1
  export * from './useAddressBalance.ts'
2
2
  export * from './useCurrentBlock.ts'
3
- export * from './useHostViewer.ts'
3
+ export * from './useHttpRpcRunner.ts'
4
4
  export * from './useNetwork.ts'
5
- export * from './useRunner.ts'
6
5
  export * from './useSigner.ts'
7
- export * from './useViewer.ts'
6
+ export * from './viewer/index.ts'
@@ -2,9 +2,7 @@ import type { Address } from '@xylabs/hex'
2
2
  import { usePromise } from '@xylabs/react-promise'
3
3
  import { isUndefined, isUndefinedOrNull } from '@xylabs/typeof'
4
4
  import { ShiftedBigInt } from '@xyo-network/chain-wrappers'
5
- import type {
6
- AttoXL1, NetworkId, XyoViewer,
7
- } from '@xyo-network/xl1-protocol'
5
+ import type { AttoXL1, XyoViewer } from '@xyo-network/xl1-protocol'
8
6
  import { useMemo, useState } from 'react'
9
7
 
10
8
  export const useAddressBalance = (
@@ -12,8 +10,6 @@ export const useAddressBalance = (
12
10
  address?: Address,
13
11
  // viewer to use for fetching balance
14
12
  viewer?: XyoViewer,
15
- // network ID to trigger a balance refresh
16
- networkId?: NetworkId,
17
13
  // refresh balance trigger
18
14
  refresh?: number,
19
15
  ) => {
@@ -27,7 +23,7 @@ export const useAddressBalance = (
27
23
  const balance = await viewer.accountBalance(address)
28
24
  setBalancesResult(balance as AttoXL1)
29
25
  setLoading(false)
30
- }, [address, viewer, networkId, refresh])
26
+ }, [address, viewer, refresh])
31
27
 
32
28
  useMemo(() => {
33
29
  if (balancesError) {
@@ -1,9 +1,7 @@
1
1
  import { usePromise } from '@xylabs/react-promise'
2
+ import type { XyoViewer } from '@xyo-network/xl1-protocol'
2
3
 
3
- import { useViewerBase } from './useViewer.ts'
4
-
5
- export const useCurrentBlockBase = (refresh = 1, id?: string, url?: string) => {
6
- const viewer = useViewerBase(id, url)
4
+ export const useCurrentBlock = (refresh = 1, viewer?: XyoViewer) => {
7
5
  return usePromise(async () => {
8
6
  if (viewer && refresh > 0) {
9
7
  const block = await viewer.currentBlock()
@@ -11,6 +9,3 @@ export const useCurrentBlockBase = (refresh = 1, id?: string, url?: string) => {
11
9
  }
12
10
  }, [viewer, refresh])
13
11
  }
14
-
15
- /** @deprecated - use useCurrentBlockBase instead but note this hook no longer relies on useChainNetwork */
16
- export const useCurrentBlock = useCurrentBlockBase
@@ -4,7 +4,7 @@ import {
4
4
  } from '@xyo-network/xl1-rpc'
5
5
  import { useMemo } from 'react'
6
6
 
7
- export const useRunnerBase = (url?: string) => {
7
+ export const useHttpRpcRunner = (url?: string) => {
8
8
  return useMemo(() => {
9
9
  if (isUndefined(url)) {
10
10
  return
@@ -13,6 +13,3 @@ export const useRunnerBase = (url?: string) => {
13
13
  return new JsonRpcXyoRunner(transport)
14
14
  }, [url])
15
15
  }
16
-
17
- /** @deprecated - use useRunnerBase instead but note this hook no longer relies on useChainNetwork */
18
- export const useRunner = useRunnerBase
@@ -3,7 +3,7 @@ import type { DefaultNetworkIds } from '@xyo-network/xl1-protocol'
3
3
  import { MemoryXyoNetwork } from '@xyo-network/xl1-rpc'
4
4
  import { useMemo } from 'react'
5
5
 
6
- export const useNetworkBase = (id?: DefaultNetworkIds) => {
6
+ export const useNetwork = (id?: DefaultNetworkIds) => {
7
7
  const network = useMemo(() => {
8
8
  if (isUndefined(id)) return
9
9
  return new MemoryXyoNetwork(id)
@@ -11,8 +11,3 @@ export const useNetworkBase = (id?: DefaultNetworkIds) => {
11
11
 
12
12
  return network
13
13
  }
14
-
15
- /**
16
- * @deprecated - use useNetworkBase instead but note this hook no longer relies on useChainNetwork
17
- */
18
- export const useNetwork = useNetworkBase
@@ -0,0 +1,2 @@
1
+ export * from './useHttpRpcViewer.ts'
2
+ export * from './useViewerFromWallet.ts'
@@ -7,13 +7,13 @@ import { SequenceNetwork } from '@xyo-network/chain-network-model'
7
7
  import type { HydratedBlock } from '@xyo-network/xl1-protocol'
8
8
  import React, { useState } from 'react'
9
9
 
10
- import { useViewerBase } from './useViewer.ts'
10
+ import { useHttpRpcViewer } from './useHttpRpcViewer.ts'
11
11
 
12
12
  const wallet = globalThis.xyo?.walletExtensionId?.()
13
13
  const inIframe = globalThis.self !== window.top
14
14
 
15
- const UseViewerStoryTemplate: React.FC = () => {
16
- const viewer = useViewerBase(SequenceNetwork.id, SequenceNetwork.url)
15
+ const UseHttpRpcViewerStoryTemplate: React.FC = () => {
16
+ const viewer = useHttpRpcViewer(SequenceNetwork.url)
17
17
  const [error, setError] = useState<Error | null>(null)
18
18
  const [result, setResult] = useState<HydratedBlock | null | undefined>()
19
19
 
@@ -52,11 +52,11 @@ const UseViewerStoryTemplate: React.FC = () => {
52
52
  }
53
53
 
54
54
  export default {
55
- title: 'provider/useViewer',
56
- component: UseViewerStoryTemplate,
55
+ title: 'provider/useHttpRpcViewer',
56
+ component: UseHttpRpcViewerStoryTemplate,
57
57
  } as Meta
58
58
 
59
- export const Template: StoryFn<typeof UseViewerStoryTemplate> = args => <UseViewerStoryTemplate {...args} />
59
+ export const Template: StoryFn<typeof UseHttpRpcViewerStoryTemplate> = args => <UseHttpRpcViewerStoryTemplate {...args} />
60
60
 
61
61
  const Default = Template.bind({})
62
62
  Default.args = {}
@@ -0,0 +1,17 @@
1
+ import { isUndefined } from '@xylabs/typeof'
2
+ import {
3
+ AllRpcSchemas, HttpRpcTransport, JsonRpcXyoViewer,
4
+ } from '@xyo-network/xl1-rpc'
5
+ import { useMemo } from 'react'
6
+
7
+ export const useHttpRpcViewer = (url?: string) => {
8
+ const resolvedViewer = useMemo(() => {
9
+ if (isUndefined(url)) {
10
+ return
11
+ }
12
+ const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas)
13
+ return new JsonRpcXyoViewer(transport)
14
+ }, [url])
15
+
16
+ return resolvedViewer
17
+ }
@@ -7,14 +7,14 @@ import { SequenceNetwork } from '@xyo-network/chain-network-model'
7
7
  import type { HydratedBlock } from '@xyo-network/xl1-protocol'
8
8
  import React, { useState } from 'react'
9
9
 
10
- import { useHostViewerBase } from './useHostViewer.ts'
10
+ import { useViewerFromWallet } from './useViewerFromWallet.ts'
11
11
 
12
12
  const wallet = globalThis.xyo?.walletExtensionId?.()
13
13
  const inIframe = globalThis.self !== window.top
14
14
 
15
- const UseHostViewerStoryTemplate: React.FC = () => {
15
+ const UseViewerFromWalletStoryTemplate: React.FC = () => {
16
16
  const defaultDestination = SequenceNetwork.id
17
- const viewer = useHostViewerBase(defaultDestination)
17
+ const viewer = useViewerFromWallet(defaultDestination)
18
18
  const [error, setError] = useState<Error | null>(null)
19
19
  const [result, setResult] = useState<HydratedBlock | null | undefined>()
20
20
 
@@ -55,11 +55,11 @@ const UseHostViewerStoryTemplate: React.FC = () => {
55
55
  }
56
56
 
57
57
  export default {
58
- title: 'provider/useHostViewer',
59
- component: UseHostViewerStoryTemplate,
58
+ title: 'provider/useViewerFromWallet',
59
+ component: UseViewerFromWalletStoryTemplate,
60
60
  }
61
61
 
62
- export const Template: StoryFn<typeof UseHostViewerStoryTemplate> = args => <UseHostViewerStoryTemplate {...args} />
62
+ export const Template: StoryFn<typeof UseViewerFromWalletStoryTemplate> = args => <UseViewerFromWalletStoryTemplate {...args} />
63
63
 
64
64
  const Default = Template.bind({})
65
65
  Default.args = {}
@@ -7,6 +7,7 @@ import {
7
7
  } from '@xyo-network/xl1-rpc'
8
8
  import { useMemo } from 'react'
9
9
 
10
+ // NOTE: Eventually this value will come from a context or similar, but for now we are using a global
10
11
  // Get known wallet connections from the global Xyo object
11
12
  const walletConnections = () => globalThis.xyo?.connections
12
13
 
@@ -16,7 +17,7 @@ const walletConnections = () => globalThis.xyo?.connections
16
17
  * @returns An instance of JsonRpcXyoViewer if the networkId is found in walletConnections,
17
18
  * otherwise undefined.
18
19
  */
19
- export const useHostViewerBase = (networkId?: string) => {
20
+ export const useViewerFromWallet = (networkId?: string) => {
20
21
  const networkConnection = useMemo(() => {
21
22
  if (isTruthy(networkId) && isDefined(walletConnections()) && isDefined(walletConnections()?.[networkId])) {
22
23
  return networkId
@@ -31,8 +32,3 @@ export const useHostViewerBase = (networkId?: string) => {
31
32
 
32
33
  return rpcProvider
33
34
  }
34
-
35
- /**
36
- * @deprecated - use useHostViewerBase instead but note this hook no longer relies on useChainNetwork
37
- */
38
- export const useHostViewer = useHostViewerBase
@@ -1,13 +0,0 @@
1
- import { JsonRpcXyoViewer } from '@xyo-network/xl1-rpc';
2
- /**
3
- * Creates a JsonRpcXyoViewer instance based on the provided networkId.
4
- * @param networkId - a network id like 'sequence', 'local', etc.
5
- * @returns An instance of JsonRpcXyoViewer if the networkId is found in walletConnections,
6
- * otherwise undefined.
7
- */
8
- export declare const useHostViewerBase: (networkId?: string) => JsonRpcXyoViewer | undefined;
9
- /**
10
- * @deprecated - use useHostViewerBase instead but note this hook no longer relies on useChainNetwork
11
- */
12
- export declare const useHostViewer: (networkId?: string) => JsonRpcXyoViewer | undefined;
13
- //# sourceMappingURL=useHostViewer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHostViewer.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHostViewer.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAEjB,MAAM,sBAAsB,CAAA;AAM7B;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,iCAcnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAnBoB,MAAM,iCAmBN,CAAA"}
@@ -1,5 +0,0 @@
1
- import { JsonRpcXyoRunner } from '@xyo-network/xl1-rpc';
2
- export declare const useRunnerBase: (url?: string) => JsonRpcXyoRunner | undefined;
3
- /** @deprecated - use useRunnerBase instead but note this hook no longer relies on useChainNetwork */
4
- export declare const useRunner: (url?: string) => JsonRpcXyoRunner | undefined;
5
- //# sourceMappingURL=useRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRunner.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRunner.ts"],"names":[],"mappings":"AACA,OAAO,EAC4B,gBAAgB,EAClD,MAAM,sBAAsB,CAAA;AAG7B,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,iCAQzC,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,SAAS,SAXc,MAAM,iCAWJ,CAAA"}
@@ -1,5 +0,0 @@
1
- import { JsonRpcXyoViewer } from '@xyo-network/xl1-rpc';
2
- export declare const useViewerBase: (id?: string, url?: string) => JsonRpcXyoViewer | undefined;
3
- /** @deprecated - use useViewerBase instead but note this hook no longer relies on useChainNetwork */
4
- export declare const useViewer: (id?: string, url?: string) => JsonRpcXyoViewer | undefined;
5
- //# sourceMappingURL=useViewer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useViewer.d.ts","sourceRoot":"","sources":["../../../src/hooks/useViewer.ts"],"names":[],"mappings":"AACA,OAAO,EAC4B,gBAAgB,EAClD,MAAM,sBAAsB,CAAA;AAK7B,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,MAAM,MAAM,iCAgBtD,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,SAAS,QAnBa,MAAM,QAAQ,MAAM,iCAmBjB,CAAA"}
@@ -1,28 +0,0 @@
1
- import { isDefined, isUndefined } from '@xylabs/typeof'
2
- import {
3
- AllRpcSchemas, HttpRpcTransport, JsonRpcXyoViewer,
4
- } from '@xyo-network/xl1-rpc'
5
- import { useMemo } from 'react'
6
-
7
- import { useHostViewerBase } from './useHostViewer.ts'
8
-
9
- export const useViewerBase = (id?: string, url?: string) => {
10
- const hostViewer = useHostViewerBase(id)
11
-
12
- const resolvedViewer = useMemo(() => {
13
- if (isUndefined(url)) {
14
- return
15
- }
16
- if (isDefined(hostViewer)) {
17
- console.debug('Using host viewer:', hostViewer)
18
- return hostViewer
19
- }
20
- const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas)
21
- return new JsonRpcXyoViewer(transport)
22
- }, [url, hostViewer])
23
-
24
- return resolvedViewer
25
- }
26
-
27
- /** @deprecated - use useViewerBase instead but note this hook no longer relies on useChainNetwork */
28
- export const useViewer = useViewerBase