@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.
- package/dist/browser/index.mjs +66 -88
- package/dist/browser/index.mjs.map +1 -1
- package/dist/types/hooks/index.d.ts +2 -3
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/useAddressBalance.d.ts +2 -2
- package/dist/types/hooks/useAddressBalance.d.ts.map +1 -1
- package/dist/types/hooks/useCurrentBlock.d.ts +2 -3
- package/dist/types/hooks/useCurrentBlock.d.ts.map +1 -1
- package/dist/types/hooks/useHttpRpcRunner.d.ts +3 -0
- package/dist/types/hooks/useHttpRpcRunner.d.ts.map +1 -0
- package/dist/types/hooks/useNetwork.d.ts +0 -4
- package/dist/types/hooks/useNetwork.d.ts.map +1 -1
- package/dist/types/hooks/viewer/index.d.ts +3 -0
- package/dist/types/hooks/viewer/index.d.ts.map +1 -0
- package/dist/types/hooks/viewer/useHttpRpcViewer.d.ts +3 -0
- package/dist/types/hooks/viewer/useHttpRpcViewer.d.ts.map +1 -0
- package/dist/types/hooks/viewer/useViewerFromWallet.d.ts +9 -0
- package/dist/types/hooks/viewer/useViewerFromWallet.d.ts.map +1 -0
- package/package.json +9 -9
- package/src/hooks/index.ts +2 -3
- package/src/hooks/useAddressBalance.ts +2 -6
- package/src/hooks/useCurrentBlock.ts +2 -7
- package/src/hooks/{useRunner.ts → useHttpRpcRunner.ts} +1 -4
- package/src/hooks/useNetwork.ts +1 -6
- package/src/hooks/viewer/index.ts +2 -0
- package/src/hooks/{useViewer.stories.tsx → viewer/useHttpRpcViewer.stories.tsx} +6 -6
- package/src/hooks/viewer/useHttpRpcViewer.ts +17 -0
- package/src/hooks/{useHostViewer.stories.tsx → viewer/useViewerFromWallet.stories.tsx} +6 -6
- package/src/hooks/{useHostViewer.ts → viewer/useViewerFromWallet.ts} +2 -6
- package/dist/types/hooks/useHostViewer.d.ts +0 -13
- package/dist/types/hooks/useHostViewer.d.ts.map +0 -1
- package/dist/types/hooks/useRunner.d.ts +0 -5
- package/dist/types/hooks/useRunner.d.ts.map +0 -1
- package/dist/types/hooks/useViewer.d.ts +0 -5
- package/dist/types/hooks/useViewer.d.ts.map +0 -1
- package/src/hooks/useViewer.ts +0 -28
package/dist/browser/index.mjs
CHANGED
|
@@ -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,
|
|
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
|
-
}, "
|
|
130
|
-
|
|
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
|
|
94
|
+
import { isUndefined as isUndefined3 } from "@xylabs/typeof";
|
|
134
95
|
import { MemoryXyoNetwork } from "@xyo-network/xl1-rpc";
|
|
135
|
-
import { useMemo as
|
|
136
|
-
var
|
|
137
|
-
const network =
|
|
138
|
-
if (
|
|
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
|
-
}, "
|
|
145
|
-
var useNetwork = useNetworkBase;
|
|
105
|
+
}, "useNetwork");
|
|
146
106
|
|
|
147
|
-
// src/hooks/
|
|
148
|
-
import {
|
|
149
|
-
import {
|
|
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
|
|
152
|
-
|
|
153
|
-
if (
|
|
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
|
|
126
|
+
return new JsonRpcXyoViewer(transport);
|
|
158
127
|
}, [
|
|
159
128
|
url
|
|
160
129
|
]);
|
|
161
|
-
|
|
162
|
-
|
|
130
|
+
return resolvedViewer;
|
|
131
|
+
}, "useHttpRpcViewer");
|
|
163
132
|
|
|
164
|
-
// src/hooks/
|
|
165
|
-
import {
|
|
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
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
useHostViewerBase,
|
|
158
|
+
useHttpRpcRunner,
|
|
159
|
+
useHttpRpcViewer,
|
|
178
160
|
useNetwork,
|
|
179
|
-
useNetworkBase,
|
|
180
|
-
useRunner,
|
|
181
|
-
useRunnerBase,
|
|
182
161
|
useSigner,
|
|
183
|
-
|
|
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 './
|
|
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 './
|
|
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,
|
|
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,
|
|
3
|
-
export declare const useAddressBalance: (address?: Address, viewer?: XyoViewer,
|
|
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,
|
|
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
|
-
|
|
2
|
-
|
|
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":"
|
|
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 @@
|
|
|
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,
|
|
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 @@
|
|
|
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 @@
|
|
|
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.
|
|
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.
|
|
37
|
+
"@xylabs/hex": "^4.13.5",
|
|
38
38
|
"@xylabs/react-promise": "^6.3.7",
|
|
39
|
-
"@xylabs/typeof": "^4.
|
|
40
|
-
"@xyo-network/account-model": "^4.0.
|
|
41
|
-
"@xyo-network/chain-wrappers": "^1.6.
|
|
42
|
-
"@xyo-network/xl1-protocol": "^1.6.
|
|
43
|
-
"@xyo-network/xl1-rpc": "^1.6.
|
|
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.
|
|
55
|
-
"@xyo-network/react-chain-model": "^1.6.
|
|
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
|
},
|
package/src/hooks/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './useAddressBalance.ts'
|
|
2
2
|
export * from './useCurrentBlock.ts'
|
|
3
|
-
export * from './
|
|
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 './
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
package/src/hooks/useNetwork.ts
CHANGED
|
@@ -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
|
|
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
|
|
@@ -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 {
|
|
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
|
|
16
|
-
const viewer =
|
|
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/
|
|
56
|
-
component:
|
|
55
|
+
title: 'provider/useHttpRpcViewer',
|
|
56
|
+
component: UseHttpRpcViewerStoryTemplate,
|
|
57
57
|
} as Meta
|
|
58
58
|
|
|
59
|
-
export const Template: StoryFn<typeof
|
|
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 {
|
|
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
|
|
15
|
+
const UseViewerFromWalletStoryTemplate: React.FC = () => {
|
|
16
16
|
const defaultDestination = SequenceNetwork.id
|
|
17
|
-
const viewer =
|
|
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/
|
|
59
|
-
component:
|
|
58
|
+
title: 'provider/useViewerFromWallet',
|
|
59
|
+
component: UseViewerFromWalletStoryTemplate,
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
export const Template: StoryFn<typeof
|
|
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
|
|
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"}
|
package/src/hooks/useViewer.ts
DELETED
|
@@ -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
|