@xyo-network/react-chain-provider 1.5.9 → 1.5.10
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
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, networkId) => {
|
|
9
|
+
var useAddressBalance = /* @__PURE__ */ __name((address, viewer, networkId, refresh) => {
|
|
10
10
|
const [balancesResult, setBalancesResult] = useState();
|
|
11
11
|
const [loading, setLoading] = useState(false);
|
|
12
12
|
const [, balancesError] = usePromise(async () => {
|
|
@@ -19,7 +19,8 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, networkId) => {
|
|
|
19
19
|
}, [
|
|
20
20
|
address,
|
|
21
21
|
viewer,
|
|
22
|
-
networkId
|
|
22
|
+
networkId,
|
|
23
|
+
refresh
|
|
23
24
|
]);
|
|
24
25
|
useMemo(() => {
|
|
25
26
|
if (balancesError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useAddressBalance.ts","../../src/hooks/useCurrentBlock.ts","../../src/hooks/useViewer.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) => {\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])\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 { useViewer } from './useViewer.ts'\n\nexport const useCurrentBlock = (refresh = 1) => {\n const viewer = useViewer()\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 { useChainNetwork } from '@xyo-network/react-chain-network'\nimport type { XyoProvider } from '@xyo-network/xl1-protocol'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoViewer,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useViewer = (_provider?: XyoProvider) => {\n const { activeNetwork } = useChainNetwork()\n\n return useMemo(() => {\n if (!activeNetwork) {\n return\n }\n const transport = new HttpRpcTransport(`${activeNetwork.url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoViewer(transport)\n }, [activeNetwork])\n}\n","import { useChainNetwork } from '@xyo-network/react-chain-network'\nimport { MemoryXyoNetwork } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useNetwork = () => {\n const { activeNetwork } = useChainNetwork()\n\n return useMemo(() => {\n if (!activeNetwork) return\n return new MemoryXyoNetwork(activeNetwork.id)\n }, [activeNetwork])\n}\n","import { useChainNetwork } from '@xyo-network/react-chain-network'\nimport type { XyoProvider } from '@xyo-network/xl1-protocol'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoRunner,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useRunner = (_provider?: XyoProvider) => {\n const { activeNetwork } = useChainNetwork()\n\n return useMemo(() => {\n if (!activeNetwork) {\n return\n }\n const transport = new HttpRpcTransport(`${activeNetwork.url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoRunner(transport)\n }, [activeNetwork])\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"],"mappings":";;;;AACA,SAASA,kBAAkB;AAC3B,SAASC,aAAaC,yBAAyB;AAC/C,SAASC,qBAAqB;AAI9B,SAASC,SAASC,gBAAgB;AAE3B,IAAMC,oBAAoB,wBAE/BC,SAEAC,QAEAC,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useAddressBalance.ts","../../src/hooks/useCurrentBlock.ts","../../src/hooks/useViewer.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 { useViewer } from './useViewer.ts'\n\nexport const useCurrentBlock = (refresh = 1) => {\n const viewer = useViewer()\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 { useChainNetwork } from '@xyo-network/react-chain-network'\nimport type { XyoProvider } from '@xyo-network/xl1-protocol'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoViewer,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useViewer = (_provider?: XyoProvider) => {\n const { activeNetwork } = useChainNetwork()\n\n return useMemo(() => {\n if (!activeNetwork) {\n return\n }\n const transport = new HttpRpcTransport(`${activeNetwork.url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoViewer(transport)\n }, [activeNetwork])\n}\n","import { useChainNetwork } from '@xyo-network/react-chain-network'\nimport { MemoryXyoNetwork } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useNetwork = () => {\n const { activeNetwork } = useChainNetwork()\n\n return useMemo(() => {\n if (!activeNetwork) return\n return new MemoryXyoNetwork(activeNetwork.id)\n }, [activeNetwork])\n}\n","import { useChainNetwork } from '@xyo-network/react-chain-network'\nimport type { XyoProvider } from '@xyo-network/xl1-protocol'\nimport {\n AllRpcSchemas, HttpRpcTransport, JsonRpcXyoRunner,\n} from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useRunner = (_provider?: XyoProvider) => {\n const { activeNetwork } = useChainNetwork()\n\n return useMemo(() => {\n if (!activeNetwork) {\n return\n }\n const transport = new HttpRpcTransport(`${activeNetwork.url}/rpc`, AllRpcSchemas)\n return new JsonRpcXyoRunner(transport)\n }, [activeNetwork])\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"],"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","useChainNetwork","AllRpcSchemas","HttpRpcTransport","JsonRpcXyoViewer","useMemo","useViewer","_provider","activeNetwork","useChainNetwork","useMemo","transport","HttpRpcTransport","url","AllRpcSchemas","JsonRpcXyoViewer","useCurrentBlock","refresh","viewer","useViewer","usePromise","block","currentBlock","useChainNetwork","MemoryXyoNetwork","useMemo","useNetwork","activeNetwork","useChainNetwork","useMemo","MemoryXyoNetwork","id","useChainNetwork","AllRpcSchemas","HttpRpcTransport","JsonRpcXyoRunner","useMemo","useRunner","_provider","activeNetwork","useChainNetwork","useMemo","transport","HttpRpcTransport","url","AllRpcSchemas","JsonRpcXyoRunner","MemoryXyoSigner","useMemo","useSigner","_provider","account","useMemo","MemoryXyoSigner","undefined"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
2
|
import type { AttoXL1, NetworkId, XyoViewer } from '@xyo-network/xl1-protocol';
|
|
3
|
-
export declare const useAddressBalance: (address?: Address, viewer?: XyoViewer, networkId?: NetworkId) => {
|
|
3
|
+
export declare const useAddressBalance: (address?: Address, viewer?: XyoViewer, networkId?: NetworkId, refresh?: number) => {
|
|
4
4
|
address: Lowercase<string> | undefined;
|
|
5
5
|
balanceForAddress: AttoXL1 | null | undefined;
|
|
6
6
|
balanceIntlFriendly: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddressBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,OAAO,KAAK,EACV,OAAO,EAAE,SAAS,EAAE,SAAS,EAC9B,MAAM,2BAA2B,CAAA;AAGlC,eAAO,MAAM,iBAAiB,GAE5B,UAAU,OAAO,EAEjB,SAAS,SAAS,EAElB,YAAY,SAAS;;;;;;;
|
|
1
|
+
{"version":3,"file":"useAddressBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAddressBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C,OAAO,KAAK,EACV,OAAO,EAAE,SAAS,EAAE,SAAS,EAC9B,MAAM,2BAA2B,CAAA;AAGlC,eAAO,MAAM,iBAAiB,GAE5B,UAAU,OAAO,EAEjB,SAAS,SAAS,EAElB,YAAY,SAAS,EAErB,UAAU,MAAM;;;;;;;CA6CjB,CAAA"}
|
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.5.
|
|
4
|
+
"version": "1.5.10",
|
|
5
5
|
"description": "XYO Layer One API",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@xylabs/react-promise": "^6.3.4",
|
|
38
38
|
"@xyo-network/account-model": "^3.18.0",
|
|
39
|
-
"@xyo-network/react-chain-network": "^1.5.
|
|
40
|
-
"@xyo-network/xl1-protocol": "^1.4.
|
|
41
|
-
"@xyo-network/xl1-rpc": "^1.5.
|
|
39
|
+
"@xyo-network/react-chain-network": "^1.5.10",
|
|
40
|
+
"@xyo-network/xl1-protocol": "^1.4.16",
|
|
41
|
+
"@xyo-network/xl1-rpc": "^1.5.10",
|
|
42
42
|
"react": "^19.1.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
@@ -14,6 +14,8 @@ export const useAddressBalance = (
|
|
|
14
14
|
viewer?: XyoViewer,
|
|
15
15
|
// network ID to trigger a balance refresh
|
|
16
16
|
networkId?: NetworkId,
|
|
17
|
+
// refresh balance trigger
|
|
18
|
+
refresh?: number,
|
|
17
19
|
) => {
|
|
18
20
|
const [balancesResult, setBalancesResult] = useState<AttoXL1 | null>()
|
|
19
21
|
const [loading, setLoading] = useState(false)
|
|
@@ -25,7 +27,7 @@ export const useAddressBalance = (
|
|
|
25
27
|
const balance = await viewer.accountBalance(address)
|
|
26
28
|
setBalancesResult(balance as AttoXL1)
|
|
27
29
|
setLoading(false)
|
|
28
|
-
}, [address, viewer, networkId])
|
|
30
|
+
}, [address, viewer, networkId, refresh])
|
|
29
31
|
|
|
30
32
|
useMemo(() => {
|
|
31
33
|
if (balancesError) {
|