@xyo-network/react-chain-provider 1.8.4 → 1.10.0

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.
@@ -1,8 +1,9 @@
1
+ import type { GatewayName } from '@xyo-network/xl1-protocol';
1
2
  /**
2
3
  * Creates a JsonRpcXyoViewer instance based on the provided networkId.
3
4
  * @param networkId - a network id like 'sequence', 'local', etc.
4
5
  * @returns An instance of XyoViewer if the networkId is found in wallet gateways
5
6
  * otherwise undefined.
6
7
  */
7
- export declare const useViewerFromWallet: (networkId?: string) => import("@xyo-network/xl1-protocol").XyoViewer | undefined;
8
+ export declare const useViewerFromWallet: (networkId?: GatewayName) => import("@xyo-network/xl1-protocol").XyoViewer | undefined;
8
9
  //# sourceMappingURL=useViewerFromWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewerFromWallet.d.ts","sourceRoot":"","sources":["../../../../src/hooks/viewer/useViewerFromWallet.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,8DAoBrD,CAAA"}
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;AAK5D;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,WAAW,8DAoB1D,CAAA"}
@@ -1,12 +1,9 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/hooks/useAddressBalance.ts
5
2
  import { usePromise } from "@xylabs/react-promise";
6
3
  import { isUndefined, isUndefinedOrNull } from "@xylabs/typeof";
7
4
  import { ShiftedBigInt } from "@xyo-network/chain-wrappers";
8
5
  import { useMemo, useState } from "react";
9
- var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
6
+ var useAddressBalance = (address, viewer, refresh) => {
10
7
  const [balancesResult, setBalancesResult] = useState();
11
8
  const [loading, setLoading] = useState(false);
12
9
  const [, balancesError] = usePromise(async () => {
@@ -16,18 +13,12 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
16
13
  const balance = await viewer.accountBalance(address);
17
14
  setBalancesResult(balance);
18
15
  setLoading(false);
19
- }, [
20
- address,
21
- viewer,
22
- refresh
23
- ]);
16
+ }, [address, viewer, refresh]);
24
17
  useMemo(() => {
25
18
  if (balancesError) {
26
19
  setLoading(false);
27
20
  }
28
- }, [
29
- balancesError
30
- ]);
21
+ }, [balancesError]);
31
22
  const shiftedBigInt = useMemo(() => {
32
23
  if (typeof balancesResult !== "bigint") return;
33
24
  return new ShiftedBigInt(balancesResult, {
@@ -37,19 +28,13 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
37
28
  minDecimals: 1,
38
29
  locale: navigator.language
39
30
  });
40
- }, [
41
- balancesResult
42
- ]);
31
+ }, [balancesResult]);
43
32
  const balanceIntlFriendly = useMemo(() => {
44
33
  return shiftedBigInt?.toFullString();
45
- }, [
46
- shiftedBigInt
47
- ]);
34
+ }, [shiftedBigInt]);
48
35
  const shortBalanceIntlFriendly = useMemo(() => {
49
36
  return isUndefinedOrNull(balancesResult) ? void 0 : balancesResult < 1000000000000n && balancesResult > 0n ? "<0.00001" : shiftedBigInt?.toShortString();
50
- }, [
51
- shiftedBigInt
52
- ]);
37
+ }, [shiftedBigInt]);
53
38
  return {
54
39
  address,
55
40
  balanceForAddress: balancesResult,
@@ -58,79 +43,82 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh) => {
58
43
  error: balancesError,
59
44
  loading
60
45
  };
61
- }, "useAddressBalance");
46
+ };
62
47
 
63
48
  // src/hooks/useCurrentBlock.ts
64
49
  import { usePromise as usePromise2 } from "@xylabs/react-promise";
65
- var useCurrentBlock = /* @__PURE__ */ __name((refresh = 1, viewer) => {
50
+ var useCurrentBlock = (refresh = 1, viewer) => {
66
51
  return usePromise2(async () => {
67
52
  if (viewer && refresh > 0) {
68
53
  const block = await viewer.currentBlock();
69
54
  return block;
70
55
  }
71
- }, [
72
- viewer,
73
- refresh
74
- ]);
75
- }, "useCurrentBlock");
56
+ }, [viewer, refresh]);
57
+ };
76
58
 
77
59
  // src/hooks/useHttpRpcRunner.ts
78
60
  import { isUndefined as isUndefined2 } from "@xylabs/typeof";
79
- import { AllRpcSchemas, HttpRpcTransport, JsonRpcXyoRunner } from "@xyo-network/xl1-rpc";
61
+ import {
62
+ AllRpcSchemas,
63
+ HttpRpcTransport,
64
+ JsonRpcXyoRunner
65
+ } from "@xyo-network/xl1-rpc";
80
66
  import { useMemo as useMemo2 } from "react";
81
- var useHttpRpcRunner = /* @__PURE__ */ __name((url) => {
67
+ var useHttpRpcRunner = (url) => {
82
68
  return useMemo2(() => {
83
69
  if (isUndefined2(url)) {
84
70
  return;
85
71
  }
86
72
  const transport = new HttpRpcTransport(`${url}/rpc`, AllRpcSchemas);
87
73
  return new JsonRpcXyoRunner(transport);
88
- }, [
89
- url
90
- ]);
91
- }, "useHttpRpcRunner");
74
+ }, [url]);
75
+ };
92
76
 
93
77
  // src/hooks/useNetwork.ts
94
78
  import { isUndefined as isUndefined3 } from "@xylabs/typeof";
95
79
  import { MemoryXyoNetwork } from "@xyo-network/xl1-rpc";
96
80
  import { useMemo as useMemo3 } from "react";
97
- var useNetwork = /* @__PURE__ */ __name((id) => {
81
+ var useNetwork = (id) => {
98
82
  const network = useMemo3(() => {
99
83
  if (isUndefined3(id)) return;
100
84
  return new MemoryXyoNetwork(id);
101
- }, [
102
- id
103
- ]);
85
+ }, [id]);
104
86
  return network;
105
- }, "useNetwork");
87
+ };
106
88
 
107
89
  // src/hooks/useSigner.ts
108
90
  import { MemoryXyoSigner } from "@xyo-network/xl1-rpc";
109
91
  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");
92
+ var useSigner = (_provider, account) => {
93
+ return useMemo4(() => account ? new MemoryXyoSigner(account) : void 0, [account]);
94
+ };
115
95
 
116
96
  // src/hooks/viewer/useCheckRpc.ts
117
97
  import { delay } from "@xylabs/delay";
118
98
  import { isDefined, isUndefined as isUndefined4 } from "@xylabs/typeof";
119
99
  import { LocalNetwork, SequenceNetwork } from "@xyo-network/chain-network-model";
120
- import { HttpRpcTransport as HttpRpcTransport2, JsonRpcXyoViewer, XyoViewerRpcSchemas } from "@xyo-network/xl1-rpc";
121
- import { useEffect, useMemo as useMemo5, useState as useState2 } from "react";
100
+ import {
101
+ HttpRpcTransport as HttpRpcTransport2,
102
+ JsonRpcXyoViewer,
103
+ XyoViewerRpcSchemas
104
+ } from "@xyo-network/xl1-rpc";
105
+ import {
106
+ useEffect,
107
+ useMemo as useMemo5,
108
+ useState as useState2
109
+ } from "react";
122
110
  var INTERVAL = 5e3;
123
111
  var localRpcEndpoint = `${LocalNetwork.url}/rpc`;
124
112
  var sequenceRpcEndpoint = `${SequenceNetwork.url}/rpc`;
125
- var useCheckLocalRpc = /* @__PURE__ */ __name(() => {
113
+ var useCheckLocalRpc = () => {
126
114
  const isLocalProducer = useCheckRpc(localRpcEndpoint);
127
115
  return isLocalProducer;
128
- }, "useCheckLocalRpc");
129
- var useCheckSequenceRpc = /* @__PURE__ */ __name(() => {
116
+ };
117
+ var useCheckSequenceRpc = () => {
130
118
  const isLocalProducer = useCheckRpc(sequenceRpcEndpoint);
131
119
  return isLocalProducer;
132
- }, "useCheckSequenceRpc");
133
- var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
120
+ };
121
+ var useCheckRpc = (endpoint) => {
134
122
  const [isLocalProducer, setIsLocalProducer] = useState2(false);
135
123
  const [error, setError] = useState2();
136
124
  const viewer = useMemo5(() => {
@@ -138,9 +126,7 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
138
126
  const transport = new HttpRpcTransport2(endpoint, XyoViewerRpcSchemas);
139
127
  const viewer2 = new JsonRpcXyoViewer(transport);
140
128
  return viewer2;
141
- }, [
142
- endpoint
143
- ]);
129
+ }, [endpoint]);
144
130
  useEffect(() => {
145
131
  if (isUndefined4(viewer)) return;
146
132
  void (async () => {
@@ -156,61 +142,56 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
156
142
  await delay(INTERVAL);
157
143
  }
158
144
  })();
159
- }, [
160
- viewer
161
- ]);
162
- return {
163
- isLocalProducer,
164
- error
165
- };
166
- }, "useCheckRpc");
145
+ }, [viewer]);
146
+ return { isLocalProducer, error };
147
+ };
167
148
 
168
149
  // src/hooks/viewer/useHttpRpcViewer.ts
169
150
  import { isUndefined as isUndefined5 } from "@xylabs/typeof";
170
- import { HttpRpcTransport as HttpRpcTransport3, JsonRpcXyoViewer as JsonRpcXyoViewer2, XyoViewerRpcSchemas as XyoViewerRpcSchemas2 } from "@xyo-network/xl1-rpc";
151
+ import {
152
+ HttpRpcTransport as HttpRpcTransport3,
153
+ JsonRpcXyoViewer as JsonRpcXyoViewer2,
154
+ XyoViewerRpcSchemas as XyoViewerRpcSchemas2
155
+ } from "@xyo-network/xl1-rpc";
171
156
  import { useMemo as useMemo6 } from "react";
172
- var useHttpRpcViewer = /* @__PURE__ */ __name((url) => {
157
+ var useHttpRpcViewer = (url) => {
173
158
  const resolvedViewer = useMemo6(() => {
174
159
  if (isUndefined5(url)) {
175
160
  return;
176
161
  }
177
162
  const transport = new HttpRpcTransport3(`${url}/rpc`, XyoViewerRpcSchemas2);
178
163
  return new JsonRpcXyoViewer2(transport);
179
- }, [
180
- url
181
- ]);
164
+ }, [url]);
182
165
  return resolvedViewer;
183
- }, "useHttpRpcViewer");
166
+ };
184
167
 
185
168
  // src/hooks/viewer/useViewerFromWallet.ts
186
169
  import { usePromise as usePromise3 } from "@xylabs/react-promise";
187
- import { isDefined as isDefined2, isTruthy, isUndefined as isUndefined6 } from "@xylabs/typeof";
170
+ import {
171
+ isDefined as isDefined2,
172
+ isTruthy,
173
+ isUndefined as isUndefined6
174
+ } from "@xylabs/typeof";
188
175
  import { useEffect as useEffect2, useMemo as useMemo7 } from "react";
189
- var gateways = /* @__PURE__ */ __name(() => globalThis.xyo?.client?.gateways, "gateways");
190
- var useViewerFromWallet = /* @__PURE__ */ __name((networkId) => {
176
+ var gateways = () => globalThis.xyo?.client?.gateways;
177
+ var useViewerFromWallet = (networkId) => {
191
178
  const networkGateway = useMemo7(() => {
192
179
  if (isDefined2(networkId) && isDefined2(gateways()?.[networkId])) {
193
180
  return gateways()?.[networkId];
194
181
  }
195
- }, [
196
- networkId
197
- ]);
182
+ }, [networkId]);
198
183
  const [gatewayViewer, rpcError] = usePromise3(async () => {
199
184
  if (isUndefined6(networkGateway)) return;
200
185
  const connection = await networkGateway.connection();
201
186
  return connection.viewer;
202
- }, [
203
- networkGateway
204
- ]);
187
+ }, [networkGateway]);
205
188
  useEffect2(() => {
206
189
  if (isTruthy(rpcError)) {
207
190
  console.error("Error creating viewer from wallet:", rpcError);
208
191
  }
209
- }, [
210
- rpcError
211
- ]);
192
+ }, [rpcError]);
212
193
  return gatewayViewer;
213
- }, "useViewerFromWallet");
194
+ };
214
195
  export {
215
196
  useAddressBalance,
216
197
  useCheckLocalRpc,
@@ -1 +1 @@
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/useCheckRpc.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 { XyoConnectionProvider, XyoSigner } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoSigner } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useSigner = (_provider?: XyoConnectionProvider, account?: AccountInstance) => {\n return useMemo<XyoSigner | undefined>(() => account ? new MemoryXyoSigner(account) : undefined, [account])\n}\n","import { delay } from '@xylabs/delay'\nimport { isDefined, isUndefined } from '@xylabs/typeof'\nimport { LocalNetwork, SequenceNetwork } from '@xyo-network/chain-network-model'\nimport {\n HttpRpcTransport, JsonRpcXyoViewer, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\nimport {\n useEffect, useMemo, useState,\n} 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 = useMemo(() => {\n if (isUndefined(endpoint)) return\n\n const transport = new HttpRpcTransport(endpoint, XyoViewerRpcSchemas)\n const viewer = new JsonRpcXyoViewer(transport)\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 { isUndefined } from '@xylabs/typeof'\nimport {\n HttpRpcTransport, JsonRpcXyoViewer, XyoViewerRpcSchemas,\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`, XyoViewerRpcSchemas)\n return new JsonRpcXyoViewer(transport)\n }, [url])\n\n return resolvedViewer\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n isDefined, isTruthy, isUndefined,\n} from '@xylabs/typeof'\nimport { useEffect, useMemo } from 'react'\n\nconst gateways = () => globalThis.xyo?.client?.gateways\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 = (networkId?: string) => {\n const networkGateway = useMemo(() => {\n if (isDefined(networkId) && isDefined(gateways()?.[networkId])) {\n return gateways()?.[networkId]\n }\n }, [networkId])\n\n const [gatewayViewer, rpcError] = usePromise(async () => {\n if (isUndefined(networkGateway)) return\n const connection = await networkGateway.connection()\n return connection.viewer\n }, [networkGateway])\n\n useEffect(() => {\n if (isTruthy(rpcError)) {\n console.error('Error creating viewer from wallet:', rpcError)\n }\n }, [rpcError])\n\n return gatewayViewer\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","delay","isDefined","isUndefined","LocalNetwork","SequenceNetwork","HttpRpcTransport","JsonRpcXyoViewer","XyoViewerRpcSchemas","useEffect","useMemo","useState","INTERVAL","localRpcEndpoint","LocalNetwork","url","sequenceRpcEndpoint","SequenceNetwork","useCheckLocalRpc","isLocalProducer","useCheckRpc","useCheckSequenceRpc","endpoint","setIsLocalProducer","useState","error","setError","viewer","useMemo","isUndefined","transport","HttpRpcTransport","XyoViewerRpcSchemas","JsonRpcXyoViewer","useEffect","undefined","block","currentBlock","isDefined","err","delay","isUndefined","HttpRpcTransport","JsonRpcXyoViewer","XyoViewerRpcSchemas","useMemo","useHttpRpcViewer","url","resolvedViewer","useMemo","isUndefined","transport","HttpRpcTransport","XyoViewerRpcSchemas","JsonRpcXyoViewer","usePromise","isDefined","isTruthy","isUndefined","useEffect","useMemo","gateways","globalThis","xyo","client","useViewerFromWallet","networkId","networkGateway","useMemo","isDefined","gatewayViewer","rpcError","usePromise","isUndefined","connection","viewer","useEffect","isTruthy","console","error"]}
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/useCheckRpc.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 { XyoConnectionProvider, XyoSigner } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoSigner } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useSigner = (_provider?: XyoConnectionProvider, account?: AccountInstance) => {\n return useMemo<XyoSigner | undefined>(() => account ? new MemoryXyoSigner(account) : undefined, [account])\n}\n","import { delay } from '@xylabs/delay'\nimport { isDefined, isUndefined } from '@xylabs/typeof'\nimport { LocalNetwork, SequenceNetwork } from '@xyo-network/chain-network-model'\nimport {\n HttpRpcTransport, JsonRpcXyoViewer, XyoViewerRpcSchemas,\n} from '@xyo-network/xl1-rpc'\nimport {\n useEffect, useMemo, useState,\n} 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 = useMemo(() => {\n if (isUndefined(endpoint)) return\n\n const transport = new HttpRpcTransport(endpoint, XyoViewerRpcSchemas)\n const viewer = new JsonRpcXyoViewer(transport)\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 { isUndefined } from '@xylabs/typeof'\nimport {\n HttpRpcTransport, JsonRpcXyoViewer, XyoViewerRpcSchemas,\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`, XyoViewerRpcSchemas)\n return new JsonRpcXyoViewer(transport)\n }, [url])\n\n return resolvedViewer\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n isDefined, isTruthy, isUndefined,\n} from '@xylabs/typeof'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\nimport { useEffect, useMemo } from 'react'\n\nconst gateways = () => globalThis.xyo?.client?.gateways\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 = (networkId?: GatewayName) => {\n const networkGateway = useMemo(() => {\n if (isDefined(networkId) && isDefined(gateways()?.[networkId])) {\n return gateways()?.[networkId]\n }\n }, [networkId])\n\n const [gatewayViewer, rpcError] = usePromise(async () => {\n if (isUndefined(networkGateway)) return\n const connection = await networkGateway.connection()\n return connection.viewer\n }, [networkGateway])\n\n useEffect(() => {\n if (isTruthy(rpcError)) {\n console.error('Error creating viewer from wallet:', rpcError)\n }\n }, [rpcError])\n\n return gatewayViewer\n}\n"],"mappings":"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","names":["usePromise","isUndefined","useMemo","isUndefined","useMemo","useMemo","isUndefined","HttpRpcTransport","useMemo","useState","viewer","isUndefined","HttpRpcTransport","JsonRpcXyoViewer","XyoViewerRpcSchemas","useMemo","usePromise","isDefined","isUndefined","useEffect","useMemo"]}
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.8.4",
4
+ "version": "1.10.0",
5
5
  "description": "XYO Layer One API",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -41,29 +41,30 @@
41
41
  "src"
42
42
  ],
43
43
  "dependencies": {
44
- "@xylabs/delay": "^4.15.3",
45
- "@xylabs/hex": "^4.15.3",
46
- "@xylabs/react-promise": "^6.4.0",
47
- "@xylabs/typeof": "^4.15.3",
48
- "@xyo-network/account-model": "^4.3.0",
49
- "@xyo-network/chain-network-model": "^1.8.4",
50
- "@xyo-network/chain-wrappers": "^1.8.4",
51
- "@xyo-network/xl1-protocol": "^1.7.33",
52
- "@xyo-network/xl1-rpc": "^1.8.4",
53
- "react": "^19.1.1"
44
+ "@xylabs/delay": "~5.0.2",
45
+ "@xylabs/hex": "~5.0.2",
46
+ "@xylabs/react-promise": "~7.0.0",
47
+ "@xylabs/typeof": "~5.0.2",
48
+ "@xyo-network/account-model": "~5.0.0",
49
+ "@xyo-network/chain-network-model": "~1.10.0",
50
+ "@xyo-network/chain-wrappers": "~1.10.0",
51
+ "@xyo-network/xl1-protocol": "~1.9.3",
52
+ "@xyo-network/xl1-rpc": "~1.10.0",
53
+ "react": "~19.1.1"
54
54
  },
55
55
  "devDependencies": {
56
- "@emotion/react": "^11.14.0",
57
- "@emotion/styled": "^11.14.1",
58
- "@mui/material": "^7.2.0",
59
- "@storybook/react-vite": "^9.0.18",
60
- "@types/react": "^19.1.9",
61
- "@xylabs/ts-scripts-yarn3": "^7.0.2",
62
- "@xylabs/tsconfig-react": "^7.0.2",
63
- "@xyo-network/chain-network-model": "^1.8.4",
64
- "@xyo-network/react-chain-model": "^1.8.4",
65
- "knip": "^5.62.0",
66
- "typescript": "^5.8.3"
56
+ "@emotion/react": "~11.14.0",
57
+ "@emotion/styled": "~11.14.1",
58
+ "@mui/material": "~7.3.0",
59
+ "@storybook/react-vite": "~9.1.1",
60
+ "@types/react": "~19.1.9",
61
+ "@xylabs/ts-scripts-yarn3": "~7.0.3",
62
+ "@xylabs/tsconfig": "~7.0.3",
63
+ "@xylabs/tsconfig-dom": "~7.0.3",
64
+ "@xylabs/tsconfig-react": "~7.0.3",
65
+ "@xyo-network/chain-network-model": "~1.10.0",
66
+ "@xyo-network/react-chain-model": "~1.10.0",
67
+ "typescript": "~5.9.2"
67
68
  },
68
69
  "packageManager": "yarn@4.6.0",
69
70
  "engines": {
@@ -2,6 +2,7 @@ import { usePromise } from '@xylabs/react-promise'
2
2
  import {
3
3
  isDefined, isTruthy, isUndefined,
4
4
  } from '@xylabs/typeof'
5
+ import type { GatewayName } from '@xyo-network/xl1-protocol'
5
6
  import { useEffect, useMemo } from 'react'
6
7
 
7
8
  const gateways = () => globalThis.xyo?.client?.gateways
@@ -12,7 +13,7 @@ const gateways = () => globalThis.xyo?.client?.gateways
12
13
  * @returns An instance of XyoViewer if the networkId is found in wallet gateways
13
14
  * otherwise undefined.
14
15
  */
15
- export const useViewerFromWallet = (networkId?: string) => {
16
+ export const useViewerFromWallet = (networkId?: GatewayName) => {
16
17
  const networkGateway = useMemo(() => {
17
18
  if (isDefined(networkId) && isDefined(gateways()?.[networkId])) {
18
19
  return gateways()?.[networkId]