@xyo-network/react-chain-provider 1.9.0 → 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?:
|
|
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":"
|
|
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"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -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 =
|
|
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
|
-
}
|
|
46
|
+
};
|
|
62
47
|
|
|
63
48
|
// src/hooks/useCurrentBlock.ts
|
|
64
49
|
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
65
|
-
var useCurrentBlock =
|
|
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
|
-
|
|
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 {
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
-
}
|
|
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 =
|
|
111
|
-
return useMemo4(() => account ? new MemoryXyoSigner(account) : void 0, [
|
|
112
|
-
|
|
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 {
|
|
121
|
-
|
|
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 =
|
|
113
|
+
var useCheckLocalRpc = () => {
|
|
126
114
|
const isLocalProducer = useCheckRpc(localRpcEndpoint);
|
|
127
115
|
return isLocalProducer;
|
|
128
|
-
}
|
|
129
|
-
var useCheckSequenceRpc =
|
|
116
|
+
};
|
|
117
|
+
var useCheckSequenceRpc = () => {
|
|
130
118
|
const isLocalProducer = useCheckRpc(sequenceRpcEndpoint);
|
|
131
119
|
return isLocalProducer;
|
|
132
|
-
}
|
|
133
|
-
var useCheckRpc =
|
|
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
|
-
|
|
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 {
|
|
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 =
|
|
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
|
-
}
|
|
166
|
+
};
|
|
184
167
|
|
|
185
168
|
// src/hooks/viewer/useViewerFromWallet.ts
|
|
186
169
|
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
187
|
-
import {
|
|
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 =
|
|
190
|
-
var useViewerFromWallet =
|
|
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
|
-
}
|
|
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.
|
|
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": "
|
|
45
|
-
"@xylabs/hex": "
|
|
46
|
-
"@xylabs/react-promise": "
|
|
47
|
-
"@xylabs/typeof": "
|
|
48
|
-
"@xyo-network/account-model": "
|
|
49
|
-
"@xyo-network/chain-network-model": "
|
|
50
|
-
"@xyo-network/chain-wrappers": "
|
|
51
|
-
"@xyo-network/xl1-protocol": "
|
|
52
|
-
"@xyo-network/xl1-rpc": "
|
|
53
|
-
"react": "
|
|
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": "
|
|
57
|
-
"@emotion/styled": "
|
|
58
|
-
"@mui/material": "
|
|
59
|
-
"@storybook/react-vite": "
|
|
60
|
-
"@types/react": "
|
|
61
|
-
"@xylabs/ts-scripts-yarn3": "
|
|
62
|
-
"@xylabs/tsconfig
|
|
63
|
-
"@
|
|
64
|
-
"@
|
|
65
|
-
"
|
|
66
|
-
"
|
|
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?:
|
|
16
|
+
export const useViewerFromWallet = (networkId?: GatewayName) => {
|
|
16
17
|
const networkGateway = useMemo(() => {
|
|
17
18
|
if (isDefined(networkId) && isDefined(gateways()?.[networkId])) {
|
|
18
19
|
return gateways()?.[networkId]
|