@xyo-network/react-chain-provider 1.15.21 → 1.15.23
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConfirmTransactionBase.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConfirmTransactionBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAKvC,OAAO,KAAK,EACV,yBAAyB,EAAE,SAAS,EAAE,SAAS,EAChD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAGjG,eAAO,MAAM,yBAAyB,GAEpC,cAAc,yBAAyB,EAEvC,cAAc,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAElC,iBAAiB,6BAA6B,CAAC,gBAAgB,CAAC,EAEhE,SAAS,SAAS,EAElB,SAAS,SAAS;;;
|
|
1
|
+
{"version":3,"file":"useConfirmTransactionBase.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConfirmTransactionBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAKvC,OAAO,KAAK,EACV,yBAAyB,EAAE,SAAS,EAAE,SAAS,EAChD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAGjG,eAAO,MAAM,yBAAyB,GAEpC,cAAc,yBAAyB,EAEvC,cAAc,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAElC,iBAAiB,6BAA6B,CAAC,gBAAgB,CAAC,EAEhE,SAAS,SAAS,EAElB,SAAS,SAAS;;;CAuCnB,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -381,6 +381,7 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
|
|
|
381
381
|
const [status, setStatus] = useState2();
|
|
382
382
|
const onStatusUpdateLocal = /* @__PURE__ */ __name((newStatus) => {
|
|
383
383
|
setStatus(newStatus);
|
|
384
|
+
onStatusUpdate?.(newStatus);
|
|
384
385
|
}, "onStatusUpdateLocal");
|
|
385
386
|
const [transactionConfirmationStatus, transactionConfirmationError] = usePromise2(async () => {
|
|
386
387
|
const hasRunner = isDefined4(runner);
|
|
@@ -389,7 +390,7 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
|
|
|
389
390
|
if (isHash(hash)) {
|
|
390
391
|
if (hasRunner && isDefined4(onBroadcast)) onBroadcast(hash);
|
|
391
392
|
const params = {
|
|
392
|
-
onStatusUpdate:
|
|
393
|
+
onStatusUpdate: onStatusUpdateLocal,
|
|
393
394
|
transaction,
|
|
394
395
|
txHash: hash,
|
|
395
396
|
viewer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/connected/account/Connected.tsx","../../src/components/connected/ConnectAccountsStack.tsx","../../src/hooks/client/useClient.ts","../../src/hooks/helpers/getXyoClient.ts","../../src/hooks/helpers/transaction/Confirmation.ts","../../src/hooks/client/permissions/usePermissions.ts","../../src/hooks/client/permissions/usePermissionsAccounts.ts","../../src/hooks/client/helpers/findCaveat.ts","../../src/hooks/client/useGateway.ts","../../src/hooks/useAddressBalance.ts","../../src/hooks/useConfirmTransactionBase.ts","../../src/hooks/useConnectAccount.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 {\n Stack, Tooltip, Typography,\n} from '@mui/material'\nimport { EthAddressWrapper } from '@xylabs/eth-address'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport React from 'react'\n\nexport const ConnectedAccount: React.FC<{ address: string }> = ({ address }) => {\n const shortenedAddress = `${EthAddressWrapper.fromString(address)?.toShortString(4)}`\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <BlockiesAvatarAddress address={address} size={21} />\n <Tooltip title={address}>\n <Typography color=\"textSecondary\" variant=\"caption\" fontFamily=\"monospace\">{shortenedAddress}</Typography>\n </Tooltip>\n </Stack>\n )\n}\n","import type { StackProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button, Stack,\n Typography,\n} from '@mui/material'\nimport type { Address } from '@xylabs/hex'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { isDefined, isUndefined } from '@xylabs/typeof'\nimport { ErrorRender } from '@xyo-network/react-error'\nimport type { ComponentType, MouseEventHandler } from 'react'\nimport React, { useEffect } from 'react'\n\nimport { useConnectAccount } from '../../hooks/index.ts'\nimport { ConnectedAccount } from './account/index.ts'\n\nconst DefaultConnectComponent: React.FC<ButtonExProps> = props => (\n <ButtonEx variant=\"contained\" size=\"small\" {...props} />\n)\n\nconst DefaultNoWalletInstalledComponent: React.FC = () => (\n <Alert severity=\"warning\">\n <AlertTitle>XL1 Wallet Not Found</AlertTitle>\n <Typography gutterBottom>\n Please ensure that your XL1 Wallet is installed to connect your account.\n </Typography>\n <Button\n sx={{ display: 'flex', justifySelf: 'end' }}\n size=\"small\"\n variant=\"outlined\"\n href=\"https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n Get XL1 Wallet\n </Button>\n </Alert>\n)\n\nexport interface ConnectClientAccountsStackProps extends StackProps {\n AccountComponent?: ComponentType<{ account?: string }>\n ConnectComponent?: ComponentType<{ onClick?: MouseEventHandler<HTMLElement> }>\n NoWalletInstalledComponent?: ComponentType\n onAccountConnected?: (account: Address) => void\n onCancel?: () => void\n timeout?: number\n}\n\nexport const ConnectAccountsStack: React.FC<ConnectClientAccountsStackProps> = ({\n AccountComponent = ConnectedAccount,\n ConnectComponent = DefaultConnectComponent,\n NoWalletInstalledComponent = DefaultNoWalletInstalledComponent,\n onAccountConnected,\n onCancel,\n timeout,\n ...props\n}) => {\n const {\n address, connectSigner, error, timedout,\n } = useConnectAccount(undefined, timeout)\n\n useEffect(() => {\n if (isDefined(error) && isDefined(onCancel)) {\n onCancel()\n }\n }, [error, onCancel])\n\n useEffect(() => {\n if (isDefined(address) && isDefined(onAccountConnected)) {\n onAccountConnected(address)\n }\n }, [address, onAccountConnected])\n\n return (\n <Stack direction=\"row\" alignItems=\"start\" spacing={2} {...props}>\n {isDefined(address)\n ? <AccountComponent address={address} />\n : null}\n {isUndefined(address) && !timedout && (\n <ConnectComponent onClick={() => void connectSigner()}>Connect</ConnectComponent>\n )}\n {isUndefined(address) && timedout && (\n <NoWalletInstalledComponent />\n )}\n <ErrorRender error={error} scope=\"ConnectSigner:error\" />\n </Stack>\n )\n}\n","import type { XyoClient } from '@xyo-network/xl1-protocol'\nimport { useSyncExternalStore } from 'react'\n\nimport { getXyoClient } from '../helpers/index.ts'\n\ninterface ClientState {\n client?: XyoClient\n error: Error | null\n isLoading: boolean\n timedout: boolean\n}\n\nlet currentState: ClientState = {\n client: undefined,\n error: null,\n isLoading: false,\n timedout: false,\n}\n\nconst listeners = new Set<() => void>()\n\nconst emitChange = () => {\n for (const listener of listeners) listener()\n}\n\nconst updateState = (newState: Partial<ClientState>) => {\n currentState = { ...currentState, ...newState }\n emitChange()\n}\n\nconst initializeClient = async (timeout?: number) => {\n if (currentState.isLoading || currentState.client) return\n\n updateState({ isLoading: true, error: null })\n\n try {\n const client = await getXyoClient(timeout)\n if (client === null) {\n updateState({ timedout: true, isLoading: false })\n return\n }\n updateState({\n client, isLoading: false, error: null,\n })\n } catch (error) {\n console.error('Error initializing XyoClient', error)\n updateState({ error: error as Error, isLoading: false })\n }\n}\n\nconst subscribe = (listener: () => void, timeout?: number) => {\n listeners.add(listener)\n\n void initializeClient(timeout)\n\n return () => {\n listeners.delete(listener)\n }\n}\n\nconst getSnapshot = (): ClientState => currentState\n\nexport const useClient = (timeout?: number) => {\n const subscribeWithTimeout = (listener: () => void) => subscribe(listener, timeout)\n return useSyncExternalStore(subscribeWithTimeout, getSnapshot)\n}\n","import type { XyoClient } from '@xyo-network/xl1-protocol'\n\nconst CLIENT_LISTENER_TIMEOUT = 500\n\nconst hasXyoClient = () => {\n return 'client' in globalThis.xyo\n}\n\nexport const listenForClientInjection = (onClientReady: () => void, timeout: number, onTimeout: () => void) => {\n let resolved = false\n const listener: EventListener = () => {\n onClientReady()\n resolved = true\n }\n globalThis.addEventListener('xyo:plugin-ready', listener)\n setTimeout(() => {\n if (!resolved) {\n onTimeout()\n }\n }, timeout)\n}\n\ntype ReturnType = XyoClient | undefined | null\n\nexport async function getXyoClient(timeout = CLIENT_LISTENER_TIMEOUT): Promise<ReturnType> {\n return hasXyoClient()\n ? globalThis.xyo.client\n // listen for the XyoWallet to be injected\n : await new Promise<ReturnType>((resolve) => {\n listenForClientInjection(\n () => {\n resolve(globalThis.xyo.client)\n },\n timeout,\n () => {\n resolve(null)\n },\n )\n })\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { forget } from '@xylabs/forget'\nimport type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport { isDefined, isNull } from '@xylabs/typeof'\nimport type { SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-protocol'\n\nexport type ConfirmationStatusUpdate = {\n blockNumber: number\n confirmed: boolean\n error?: Error\n progress?: number\n remainingBlocks?: number\n}\n\nexport type TransactionConfirmationParams = {\n onStatusUpdate?: (status: ConfirmationStatusUpdate) => void\n transaction: SignedHydratedTransaction\n txHash: Hash\n viewer: XyoViewer\n}\n\nexport class TransactionConfirmationStatus {\n private readonly _params: TransactionConfirmationParams\n private active = false\n\n constructor(params: TransactionConfirmationParams) {\n this._params = params\n }\n\n get exp(): number {\n return assertEx(this.transaction[0].exp, () => 'exp is not found, transaction is not set')\n }\n\n get nbf(): number {\n return assertEx(this.transaction[0].nbf, () => 'nbf is not found, transaction is not set')\n }\n\n get onStatusUpdate(): TransactionConfirmationParams['onStatusUpdate'] {\n return this._params.onStatusUpdate\n }\n\n get params(): TransactionConfirmationParams {\n return this._params\n }\n\n get transaction(): SignedHydratedTransaction {\n return this.params.transaction\n }\n\n get txHash(): Hash {\n return this.params.txHash\n }\n\n get viewer(): XyoViewer {\n return this.params.viewer\n }\n\n static create(params: TransactionConfirmationParams): Promisable<TransactionConfirmationStatus> {\n return new TransactionConfirmationStatus(params)\n }\n\n async start(): Promise<void> {\n this.active = true\n try {\n const currentBlockNumber = await this.viewer.currentBlockNumber()\n while (isDefined(currentBlockNumber) && this.active) {\n await this.checkBlock(currentBlockNumber)\n // check block every second to see if the transaction is confirmed\n await delay(1000)\n }\n } catch (error) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: error instanceof Error ? error : new Error('Unknown error occurred'),\n confirmed: false,\n blockNumber: 0,\n progress: 0,\n remainingBlocks: 0,\n }))\n }\n }\n\n stop(): Promisable<void> {\n this.active = false\n }\n\n private async checkBlock(blockNumber: number): Promise<void> {\n if (blockNumber < this.nbf) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),\n confirmed: false,\n blockNumber,\n progress: 0,\n remainingBlocks: this.exp - blockNumber,\n }))\n }\n if (blockNumber > this.exp) {\n forget(this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress: 100, remainingBlocks: 0,\n }))\n return\n }\n if (blockNumber < this.exp) {\n await this.checkConfirmation(blockNumber)\n }\n }\n\n private async checkConfirmation(blockNumber: number): Promise<void> {\n const remainingBlocks = this.exp - blockNumber\n const progress = Math.round(((blockNumber - this.nbf) / (this.exp - this.nbf)) * 100)\n\n const tx = await this.viewer.transactionByHash?.(this.txHash)\n if (isNull(tx)) {\n this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress, remainingBlocks,\n })\n } else {\n this.onStatusUpdate?.({\n confirmed: true, blockNumber, progress, remainingBlocks,\n })\n await this.stop()\n }\n }\n}\n","import { useClient } from '../useClient.ts'\n\nexport const usePermissions = () => {\n const {\n client, isLoading, error, timedout,\n } = useClient()\n const permissions = client?.permissions\n return {\n permissions,\n isLoading,\n error,\n timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n isArray, isDefined, isDefinedNotNull, isString,\n} from '@xylabs/typeof'\nimport type { JsonValue } from '@xyo-network/xl1-rpc'\n\nimport { findCaveat } from '../helpers/index.ts'\nimport { usePermissions } from './usePermissions.ts'\n\nconst validateRestrictedAccounts = (restrictedAccounts: JsonValue): readonly string [] => {\n if (isDefined(restrictedAccounts)) {\n if (isArray(restrictedAccounts) && restrictedAccounts.every(isString)) {\n return restrictedAccounts\n }\n throw new Error(\n `Unrecognized format for restrictReturnedAccounts caveat found on permissions. \\n\n Should be an array of strings: ${JSON.stringify(restrictedAccounts)}`,\n )\n }\n return []\n}\n\nexport const useAccountPermissions = () => {\n const { permissions, error } = usePermissions()\n\n return usePromise(async () => {\n if (isDefinedNotNull(error)) throw error\n if (isDefined(permissions)) {\n const restrictedAccounts = await findCaveat(\n permissions,\n // TODO - extract to constant in protocol package\n 'xyoWallet_getAccounts',\n 'restrictReturnedAccounts',\n )\n return validateRestrictedAccounts(restrictedAccounts)\n }\n }, [permissions])\n}\n","import { isDefined } from '@xylabs/typeof'\nimport type { CaveatTypes, XyoPermissions } from '@xyo-network/xl1-protocol'\nimport type { ParentCapability } from '@xyo-network/xl1-rpc'\n\nexport const findCaveat = async (\n permissions: XyoPermissions,\n targetCapability: ParentCapability,\n targetCaveatType: CaveatTypes,\n) => {\n const existingPermissions = await permissions.getPermissions()\n if (isDefined(existingPermissions) && existingPermissions.length > 0) {\n const foundPermissions = existingPermissions\n .find(p => p.parentCapability === targetCapability)\n if (isDefined(foundPermissions)) {\n return foundPermissions.caveats?.find(caveat => caveat.type === targetCaveatType)?.value ?? []\n }\n }\n return existingPermissions\n}\n","import type { GatewayName } from '@xyo-network/xl1-protocol'\n\nimport { useClient } from './useClient.ts'\n\nexport const useGateway = (gatewayName?: GatewayName, timeout?: number) => {\n const {\n client, isLoading, error, timedout,\n } = useClient(timeout)\n return {\n gateway: gatewayName ? client?.gateways?.[gatewayName] : undefined,\n isLoading,\n error,\n timedout,\n }\n}\n","import type { Address } from '@xylabs/hex'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/typeof'\nimport type { AttoXL1, XyoViewer } from '@xyo-network/xl1-protocol'\nimport { ShiftedBigInt } from '@xyo-network/xl1-protocol'\nimport {\n useEffect, useMemo, useState,\n} 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 const [balancesError, setBalancesError] = useState<Error>()\n\n useEffect(() => {\n let isCurrent = true\n if (isUndefined(viewer) || isUndefined(address)) return\n // Ensure the render is the current one before setting the state.\n // This solves the issue of overlapping calls where a previous call takes\n // longer than a subsequent one and returns a state value. Now, the latest\n // result is always returned.\n (viewer.accountBalance(address) as Promise<AttoXL1>).then((result) => {\n if (isCurrent) {\n setBalancesResult(result as AttoXL1)\n setLoading(false)\n }\n })\n .catch((err) => {\n if (isCurrent) {\n console.error('Error in queued call:', err)\n setBalancesResult(undefined)\n setBalancesError(err)\n setLoading(false)\n }\n })\n\n return () => {\n isCurrent = false\n }\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 { forget } from '@xylabs/forget'\nimport type { Hash } from '@xylabs/hex'\nimport { isHash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/typeof'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n SignedHydratedTransaction, XyoRunner, XyoViewer,\n} from '@xyo-network/xl1-protocol'\nimport { useEffect, useState } from 'react'\n\nimport type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts'\nimport { TransactionConfirmationStatus } from './helpers/index.ts'\n\nexport const useConfirmTransactionBase = (\n // The transaction to confirm\n transaction?: SignedHydratedTransaction,\n // Callback for when the transaction is broadcast to the network\n onBroadcast?: (hash: Hash) => void,\n // Optional callback for status updates during confirmation\n onStatusUpdate?: TransactionConfirmationParams['onStatusUpdate'],\n // Runner to use for broadcasting transactions\n runner?: XyoRunner,\n // Viewer to use for checking transaction status\n viewer?: XyoViewer,\n) => {\n const [status, setStatus] = useState<ConfirmationStatusUpdate>()\n const onStatusUpdateLocal = (newStatus: ConfirmationStatusUpdate) => {\n setStatus(newStatus)\n }\n\n const [transactionConfirmationStatus, transactionConfirmationError] = usePromise(async () => {\n const hasRunner = isDefined(runner)\n if (transaction && viewer) {\n const hash = hasRunner ? (await runner.broadcastTransaction(transaction)) : await PayloadBuilder.hash(transaction[0])\n if (isHash(hash)) {\n if (hasRunner && isDefined(onBroadcast)) onBroadcast(hash)\n const params: TransactionConfirmationParams = {\n onStatusUpdate: onStatusUpdate ?? onStatusUpdateLocal,\n transaction,\n txHash: hash,\n viewer,\n }\n const instance = await TransactionConfirmationStatus.create(params)\n await instance.start()\n return instance\n } else {\n throw new Error('unexpected return type from broadcast transaction')\n }\n }\n }, [transaction, runner, viewer])\n\n useEffect(() => {\n return () => {\n if (transactionConfirmationStatus) {\n // Stop the transaction confirmation status instance when the component unmounts\n forget(transactionConfirmationStatus.stop())\n }\n }\n }, [transactionConfirmationStatus])\n\n return { status, transactionConfirmationError }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { type Address, asAddress } from '@xylabs/hex'\nimport { MainNetwork } from '@xyo-network/chain-network-model'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\nimport { useCallback, useState } from 'react'\n\nimport { useAccountPermissions, useGateway } from './client/index.ts'\n\nexport const useConnectAccount = (gatewayName: GatewayName = MainNetwork.id, timeout?: number) => {\n const [connectError, setConnectError] = useState<Error>()\n\n const {\n gateway, error, timedout,\n } = useGateway(gatewayName, timeout)\n\n const [accountPermissions, accountPermissionsError] = useAccountPermissions()\n\n const [address, setAddress] = useState<Address>()\n\n const connectSigner = useCallback(async () => {\n try {\n const assertedGateway = assertEx(gateway, () => `Gateway ${gatewayName} is not available`)\n const signer = await assertedGateway.signer()\n const address = await signer.address()\n setAddress(address)\n return address\n } catch (e) {\n setConnectError(e as Error)\n }\n }, [gateway, gatewayName])\n\n return {\n address: asAddress(accountPermissions?.[0] ?? address), connectSigner, error: error ?? accountPermissionsError ?? connectError, gateway, timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isDefinedNotNull } from '@xylabs/typeof'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\n\nexport const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null) => {\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport type { RpcTransport, XyoRunnerRpcSchemas } from '@xyo-network/xl1-rpc'\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 as RpcTransport<typeof XyoRunnerRpcSchemas>)\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 { XyoConnection, XyoSigner } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoSigner } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useSigner = (_provider?: XyoConnection, 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 { isDefined, isDefinedNotNull } from '@xylabs/typeof'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\n\nimport { useGateway } from '../client/index.ts'\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 {\n gateway, error, isLoading,\n } = useGateway(networkId)\n\n return usePromise(async () => {\n if (isDefinedNotNull(error)) return null\n if (isLoading) return\n if (isDefined(gateway) && isDefined(networkId)) {\n const connection = await gateway?.connection()\n return connection?.viewer\n }\n }, [gateway, networkId])\n}\n"],"mappings":"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","names":["Stack","Tooltip","Typography","EthAddressWrapper","BlockiesAvatarAddress","React","ConnectedAccount","address","shortenedAddress","EthAddressWrapper","fromString","toShortString","Stack","direction","alignItems","spacing","BlockiesAvatarAddress","size","Tooltip","title","Typography","color","variant","fontFamily","Alert","AlertTitle","Button","Stack","Typography","ButtonEx","isDefined","isUndefined","ErrorRender","React","useEffect","useSyncExternalStore","CLIENT_LISTENER_TIMEOUT","hasXyoClient","globalThis","xyo","listenForClientInjection","onClientReady","timeout","onTimeout","resolved","listener","addEventListener","setTimeout","getXyoClient","client","Promise","resolve","assertEx","delay","forget","isDefined","isNull","TransactionConfirmationStatus","_params","active","params","exp","assertEx","transaction","nbf","onStatusUpdate","txHash","viewer","create","start","currentBlockNumber","isDefined","checkBlock","delay","error","stop","forget","Error","confirmed","blockNumber","progress","remainingBlocks","checkConfirmation","Math","round","tx","transactionByHash","isNull","currentState","client","undefined","error","isLoading","timedout","listeners","Set","emitChange","listener","updateState","newState","initializeClient","timeout","getXyoClient","console","subscribe","add","delete","getSnapshot","useClient","subscribeWithTimeout","useSyncExternalStore","usePermissions","client","isLoading","error","timedout","useClient","permissions","usePromise","isArray","isDefined","isDefinedNotNull","isString","isDefined","findCaveat","permissions","targetCapability","targetCaveatType","existingPermissions","getPermissions","isDefined","length","foundPermissions","find","p","parentCapability","caveats","caveat","type","value","validateRestrictedAccounts","restrictedAccounts","isDefined","isArray","every","isString","Error","JSON","stringify","useAccountPermissions","permissions","error","usePermissions","usePromise","isDefinedNotNull","findCaveat","useGateway","gatewayName","timeout","client","isLoading","error","timedout","useClient","gateway","gateways","undefined","isUndefined","isUndefinedOrNull","ShiftedBigInt","useEffect","useMemo","useState","useAddressBalance","address","viewer","refresh","balancesResult","setBalancesResult","useState","loading","setLoading","balancesError","setBalancesError","useEffect","isCurrent","isUndefined","accountBalance","then","result","catch","err","console","error","undefined","useMemo","shiftedBigInt","ShiftedBigInt","places","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","balanceIntlFriendly","toFullString","shortBalanceIntlFriendly","isUndefinedOrNull","toShortString","balanceForAddress","forget","isHash","usePromise","isDefined","PayloadBuilder","useEffect","useState","useConfirmTransactionBase","transaction","onBroadcast","onStatusUpdate","runner","viewer","status","setStatus","useState","onStatusUpdateLocal","newStatus","transactionConfirmationStatus","transactionConfirmationError","usePromise","hasRunner","isDefined","hash","broadcastTransaction","PayloadBuilder","isHash","params","txHash","instance","TransactionConfirmationStatus","create","start","Error","useEffect","forget","stop","assertEx","asAddress","MainNetwork","useCallback","useState","useConnectAccount","gatewayName","MainNetwork","id","timeout","connectError","setConnectError","useState","gateway","error","timedout","useGateway","accountPermissions","accountPermissionsError","useAccountPermissions","address","setAddress","connectSigner","useCallback","assertedGateway","assertEx","signer","e","asAddress","usePromise","isDefinedNotNull","useCurrentBlock","refresh","viewer","usePromise","isDefinedNotNull","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","isDefinedNotNull","useViewerFromWallet","networkId","gateway","error","isLoading","useGateway","usePromise","isDefinedNotNull","isDefined","connection","viewer","DefaultConnectComponent","props","React","ButtonEx","variant","size","DefaultNoWalletInstalledComponent","Alert","severity","AlertTitle","Typography","gutterBottom","Button","sx","display","justifySelf","href","target","rel","ConnectAccountsStack","AccountComponent","ConnectedAccount","ConnectComponent","NoWalletInstalledComponent","onAccountConnected","onCancel","timeout","address","connectSigner","error","timedout","useConnectAccount","undefined","useEffect","isDefined","Stack","direction","alignItems","spacing","isUndefined","onClick","ErrorRender","scope"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/connected/account/Connected.tsx","../../src/components/connected/ConnectAccountsStack.tsx","../../src/hooks/client/useClient.ts","../../src/hooks/helpers/getXyoClient.ts","../../src/hooks/helpers/transaction/Confirmation.ts","../../src/hooks/client/permissions/usePermissions.ts","../../src/hooks/client/permissions/usePermissionsAccounts.ts","../../src/hooks/client/helpers/findCaveat.ts","../../src/hooks/client/useGateway.ts","../../src/hooks/useAddressBalance.ts","../../src/hooks/useConfirmTransactionBase.ts","../../src/hooks/useConnectAccount.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 {\n Stack, Tooltip, Typography,\n} from '@mui/material'\nimport { EthAddressWrapper } from '@xylabs/eth-address'\nimport { BlockiesAvatarAddress } from '@xyo-network/react-chain-blockies'\nimport React from 'react'\n\nexport const ConnectedAccount: React.FC<{ address: string }> = ({ address }) => {\n const shortenedAddress = `${EthAddressWrapper.fromString(address)?.toShortString(4)}`\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <BlockiesAvatarAddress address={address} size={21} />\n <Tooltip title={address}>\n <Typography color=\"textSecondary\" variant=\"caption\" fontFamily=\"monospace\">{shortenedAddress}</Typography>\n </Tooltip>\n </Stack>\n )\n}\n","import type { StackProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button, Stack,\n Typography,\n} from '@mui/material'\nimport type { Address } from '@xylabs/hex'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { isDefined, isUndefined } from '@xylabs/typeof'\nimport { ErrorRender } from '@xyo-network/react-error'\nimport type { ComponentType, MouseEventHandler } from 'react'\nimport React, { useEffect } from 'react'\n\nimport { useConnectAccount } from '../../hooks/index.ts'\nimport { ConnectedAccount } from './account/index.ts'\n\nconst DefaultConnectComponent: React.FC<ButtonExProps> = props => (\n <ButtonEx variant=\"contained\" size=\"small\" {...props} />\n)\n\nconst DefaultNoWalletInstalledComponent: React.FC = () => (\n <Alert severity=\"warning\">\n <AlertTitle>XL1 Wallet Not Found</AlertTitle>\n <Typography gutterBottom>\n Please ensure that your XL1 Wallet is installed to connect your account.\n </Typography>\n <Button\n sx={{ display: 'flex', justifySelf: 'end' }}\n size=\"small\"\n variant=\"outlined\"\n href=\"https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n Get XL1 Wallet\n </Button>\n </Alert>\n)\n\nexport interface ConnectClientAccountsStackProps extends StackProps {\n AccountComponent?: ComponentType<{ account?: string }>\n ConnectComponent?: ComponentType<{ onClick?: MouseEventHandler<HTMLElement> }>\n NoWalletInstalledComponent?: ComponentType\n onAccountConnected?: (account: Address) => void\n onCancel?: () => void\n timeout?: number\n}\n\nexport const ConnectAccountsStack: React.FC<ConnectClientAccountsStackProps> = ({\n AccountComponent = ConnectedAccount,\n ConnectComponent = DefaultConnectComponent,\n NoWalletInstalledComponent = DefaultNoWalletInstalledComponent,\n onAccountConnected,\n onCancel,\n timeout,\n ...props\n}) => {\n const {\n address, connectSigner, error, timedout,\n } = useConnectAccount(undefined, timeout)\n\n useEffect(() => {\n if (isDefined(error) && isDefined(onCancel)) {\n onCancel()\n }\n }, [error, onCancel])\n\n useEffect(() => {\n if (isDefined(address) && isDefined(onAccountConnected)) {\n onAccountConnected(address)\n }\n }, [address, onAccountConnected])\n\n return (\n <Stack direction=\"row\" alignItems=\"start\" spacing={2} {...props}>\n {isDefined(address)\n ? <AccountComponent address={address} />\n : null}\n {isUndefined(address) && !timedout && (\n <ConnectComponent onClick={() => void connectSigner()}>Connect</ConnectComponent>\n )}\n {isUndefined(address) && timedout && (\n <NoWalletInstalledComponent />\n )}\n <ErrorRender error={error} scope=\"ConnectSigner:error\" />\n </Stack>\n )\n}\n","import type { XyoClient } from '@xyo-network/xl1-protocol'\nimport { useSyncExternalStore } from 'react'\n\nimport { getXyoClient } from '../helpers/index.ts'\n\ninterface ClientState {\n client?: XyoClient\n error: Error | null\n isLoading: boolean\n timedout: boolean\n}\n\nlet currentState: ClientState = {\n client: undefined,\n error: null,\n isLoading: false,\n timedout: false,\n}\n\nconst listeners = new Set<() => void>()\n\nconst emitChange = () => {\n for (const listener of listeners) listener()\n}\n\nconst updateState = (newState: Partial<ClientState>) => {\n currentState = { ...currentState, ...newState }\n emitChange()\n}\n\nconst initializeClient = async (timeout?: number) => {\n if (currentState.isLoading || currentState.client) return\n\n updateState({ isLoading: true, error: null })\n\n try {\n const client = await getXyoClient(timeout)\n if (client === null) {\n updateState({ timedout: true, isLoading: false })\n return\n }\n updateState({\n client, isLoading: false, error: null,\n })\n } catch (error) {\n console.error('Error initializing XyoClient', error)\n updateState({ error: error as Error, isLoading: false })\n }\n}\n\nconst subscribe = (listener: () => void, timeout?: number) => {\n listeners.add(listener)\n\n void initializeClient(timeout)\n\n return () => {\n listeners.delete(listener)\n }\n}\n\nconst getSnapshot = (): ClientState => currentState\n\nexport const useClient = (timeout?: number) => {\n const subscribeWithTimeout = (listener: () => void) => subscribe(listener, timeout)\n return useSyncExternalStore(subscribeWithTimeout, getSnapshot)\n}\n","import type { XyoClient } from '@xyo-network/xl1-protocol'\n\nconst CLIENT_LISTENER_TIMEOUT = 500\n\nconst hasXyoClient = () => {\n return 'client' in globalThis.xyo\n}\n\nexport const listenForClientInjection = (onClientReady: () => void, timeout: number, onTimeout: () => void) => {\n let resolved = false\n const listener: EventListener = () => {\n onClientReady()\n resolved = true\n }\n globalThis.addEventListener('xyo:plugin-ready', listener)\n setTimeout(() => {\n if (!resolved) {\n onTimeout()\n }\n }, timeout)\n}\n\ntype ReturnType = XyoClient | undefined | null\n\nexport async function getXyoClient(timeout = CLIENT_LISTENER_TIMEOUT): Promise<ReturnType> {\n return hasXyoClient()\n ? globalThis.xyo.client\n // listen for the XyoWallet to be injected\n : await new Promise<ReturnType>((resolve) => {\n listenForClientInjection(\n () => {\n resolve(globalThis.xyo.client)\n },\n timeout,\n () => {\n resolve(null)\n },\n )\n })\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { forget } from '@xylabs/forget'\nimport type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport { isDefined, isNull } from '@xylabs/typeof'\nimport type { SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-protocol'\n\nexport type ConfirmationStatusUpdate = {\n blockNumber: number\n confirmed: boolean\n error?: Error\n progress?: number\n remainingBlocks?: number\n}\n\nexport type TransactionConfirmationParams = {\n onStatusUpdate?: (status: ConfirmationStatusUpdate) => void\n transaction: SignedHydratedTransaction\n txHash: Hash\n viewer: XyoViewer\n}\n\nexport class TransactionConfirmationStatus {\n private readonly _params: TransactionConfirmationParams\n private active = false\n\n constructor(params: TransactionConfirmationParams) {\n this._params = params\n }\n\n get exp(): number {\n return assertEx(this.transaction[0].exp, () => 'exp is not found, transaction is not set')\n }\n\n get nbf(): number {\n return assertEx(this.transaction[0].nbf, () => 'nbf is not found, transaction is not set')\n }\n\n get onStatusUpdate(): TransactionConfirmationParams['onStatusUpdate'] {\n return this._params.onStatusUpdate\n }\n\n get params(): TransactionConfirmationParams {\n return this._params\n }\n\n get transaction(): SignedHydratedTransaction {\n return this.params.transaction\n }\n\n get txHash(): Hash {\n return this.params.txHash\n }\n\n get viewer(): XyoViewer {\n return this.params.viewer\n }\n\n static create(params: TransactionConfirmationParams): Promisable<TransactionConfirmationStatus> {\n return new TransactionConfirmationStatus(params)\n }\n\n async start(): Promise<void> {\n this.active = true\n try {\n const currentBlockNumber = await this.viewer.currentBlockNumber()\n while (isDefined(currentBlockNumber) && this.active) {\n await this.checkBlock(currentBlockNumber)\n // check block every second to see if the transaction is confirmed\n await delay(1000)\n }\n } catch (error) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: error instanceof Error ? error : new Error('Unknown error occurred'),\n confirmed: false,\n blockNumber: 0,\n progress: 0,\n remainingBlocks: 0,\n }))\n }\n }\n\n stop(): Promisable<void> {\n this.active = false\n }\n\n private async checkBlock(blockNumber: number): Promise<void> {\n if (blockNumber < this.nbf) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),\n confirmed: false,\n blockNumber,\n progress: 0,\n remainingBlocks: this.exp - blockNumber,\n }))\n }\n if (blockNumber > this.exp) {\n forget(this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress: 100, remainingBlocks: 0,\n }))\n return\n }\n if (blockNumber < this.exp) {\n await this.checkConfirmation(blockNumber)\n }\n }\n\n private async checkConfirmation(blockNumber: number): Promise<void> {\n const remainingBlocks = this.exp - blockNumber\n const progress = Math.round(((blockNumber - this.nbf) / (this.exp - this.nbf)) * 100)\n\n const tx = await this.viewer.transactionByHash?.(this.txHash)\n if (isNull(tx)) {\n this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress, remainingBlocks,\n })\n } else {\n this.onStatusUpdate?.({\n confirmed: true, blockNumber, progress, remainingBlocks,\n })\n await this.stop()\n }\n }\n}\n","import { useClient } from '../useClient.ts'\n\nexport const usePermissions = () => {\n const {\n client, isLoading, error, timedout,\n } = useClient()\n const permissions = client?.permissions\n return {\n permissions,\n isLoading,\n error,\n timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n isArray, isDefined, isDefinedNotNull, isString,\n} from '@xylabs/typeof'\nimport type { JsonValue } from '@xyo-network/xl1-rpc'\n\nimport { findCaveat } from '../helpers/index.ts'\nimport { usePermissions } from './usePermissions.ts'\n\nconst validateRestrictedAccounts = (restrictedAccounts: JsonValue): readonly string [] => {\n if (isDefined(restrictedAccounts)) {\n if (isArray(restrictedAccounts) && restrictedAccounts.every(isString)) {\n return restrictedAccounts\n }\n throw new Error(\n `Unrecognized format for restrictReturnedAccounts caveat found on permissions. \\n\n Should be an array of strings: ${JSON.stringify(restrictedAccounts)}`,\n )\n }\n return []\n}\n\nexport const useAccountPermissions = () => {\n const { permissions, error } = usePermissions()\n\n return usePromise(async () => {\n if (isDefinedNotNull(error)) throw error\n if (isDefined(permissions)) {\n const restrictedAccounts = await findCaveat(\n permissions,\n // TODO - extract to constant in protocol package\n 'xyoWallet_getAccounts',\n 'restrictReturnedAccounts',\n )\n return validateRestrictedAccounts(restrictedAccounts)\n }\n }, [permissions])\n}\n","import { isDefined } from '@xylabs/typeof'\nimport type { CaveatTypes, XyoPermissions } from '@xyo-network/xl1-protocol'\nimport type { ParentCapability } from '@xyo-network/xl1-rpc'\n\nexport const findCaveat = async (\n permissions: XyoPermissions,\n targetCapability: ParentCapability,\n targetCaveatType: CaveatTypes,\n) => {\n const existingPermissions = await permissions.getPermissions()\n if (isDefined(existingPermissions) && existingPermissions.length > 0) {\n const foundPermissions = existingPermissions\n .find(p => p.parentCapability === targetCapability)\n if (isDefined(foundPermissions)) {\n return foundPermissions.caveats?.find(caveat => caveat.type === targetCaveatType)?.value ?? []\n }\n }\n return existingPermissions\n}\n","import type { GatewayName } from '@xyo-network/xl1-protocol'\n\nimport { useClient } from './useClient.ts'\n\nexport const useGateway = (gatewayName?: GatewayName, timeout?: number) => {\n const {\n client, isLoading, error, timedout,\n } = useClient(timeout)\n return {\n gateway: gatewayName ? client?.gateways?.[gatewayName] : undefined,\n isLoading,\n error,\n timedout,\n }\n}\n","import type { Address } from '@xylabs/hex'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/typeof'\nimport type { AttoXL1, XyoViewer } from '@xyo-network/xl1-protocol'\nimport { ShiftedBigInt } from '@xyo-network/xl1-protocol'\nimport {\n useEffect, useMemo, useState,\n} 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 const [balancesError, setBalancesError] = useState<Error>()\n\n useEffect(() => {\n let isCurrent = true\n if (isUndefined(viewer) || isUndefined(address)) return\n // Ensure the render is the current one before setting the state.\n // This solves the issue of overlapping calls where a previous call takes\n // longer than a subsequent one and returns a state value. Now, the latest\n // result is always returned.\n (viewer.accountBalance(address) as Promise<AttoXL1>).then((result) => {\n if (isCurrent) {\n setBalancesResult(result as AttoXL1)\n setLoading(false)\n }\n })\n .catch((err) => {\n if (isCurrent) {\n console.error('Error in queued call:', err)\n setBalancesResult(undefined)\n setBalancesError(err)\n setLoading(false)\n }\n })\n\n return () => {\n isCurrent = false\n }\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 { forget } from '@xylabs/forget'\nimport type { Hash } from '@xylabs/hex'\nimport { isHash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/typeof'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n SignedHydratedTransaction, XyoRunner, XyoViewer,\n} from '@xyo-network/xl1-protocol'\nimport { useEffect, useState } from 'react'\n\nimport type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts'\nimport { TransactionConfirmationStatus } from './helpers/index.ts'\n\nexport const useConfirmTransactionBase = (\n // The transaction to confirm\n transaction?: SignedHydratedTransaction,\n // Callback for when the transaction is broadcast to the network\n onBroadcast?: (hash: Hash) => void,\n // Optional callback for status updates during confirmation\n onStatusUpdate?: TransactionConfirmationParams['onStatusUpdate'],\n // Runner to use for broadcasting transactions\n runner?: XyoRunner,\n // Viewer to use for checking transaction status\n viewer?: XyoViewer,\n) => {\n const [status, setStatus] = useState<ConfirmationStatusUpdate>()\n const onStatusUpdateLocal = (newStatus: ConfirmationStatusUpdate) => {\n setStatus(newStatus)\n onStatusUpdate?.(newStatus)\n }\n\n const [transactionConfirmationStatus, transactionConfirmationError] = usePromise(async () => {\n const hasRunner = isDefined(runner)\n if (transaction && viewer) {\n const hash = hasRunner ? (await runner.broadcastTransaction(transaction)) : await PayloadBuilder.hash(transaction[0])\n if (isHash(hash)) {\n if (hasRunner && isDefined(onBroadcast)) onBroadcast(hash)\n const params: TransactionConfirmationParams = {\n onStatusUpdate: onStatusUpdateLocal,\n transaction,\n txHash: hash,\n viewer,\n }\n const instance = await TransactionConfirmationStatus.create(params)\n await instance.start()\n return instance\n } else {\n throw new Error('unexpected return type from broadcast transaction')\n }\n }\n }, [transaction, runner, viewer])\n\n useEffect(() => {\n return () => {\n if (transactionConfirmationStatus) {\n // Stop the transaction confirmation status instance when the component unmounts\n forget(transactionConfirmationStatus.stop())\n }\n }\n }, [transactionConfirmationStatus])\n\n return { status, transactionConfirmationError }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { type Address, asAddress } from '@xylabs/hex'\nimport { MainNetwork } from '@xyo-network/chain-network-model'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\nimport { useCallback, useState } from 'react'\n\nimport { useAccountPermissions, useGateway } from './client/index.ts'\n\nexport const useConnectAccount = (gatewayName: GatewayName = MainNetwork.id, timeout?: number) => {\n const [connectError, setConnectError] = useState<Error>()\n\n const {\n gateway, error, timedout,\n } = useGateway(gatewayName, timeout)\n\n const [accountPermissions, accountPermissionsError] = useAccountPermissions()\n\n const [address, setAddress] = useState<Address>()\n\n const connectSigner = useCallback(async () => {\n try {\n const assertedGateway = assertEx(gateway, () => `Gateway ${gatewayName} is not available`)\n const signer = await assertedGateway.signer()\n const address = await signer.address()\n setAddress(address)\n return address\n } catch (e) {\n setConnectError(e as Error)\n }\n }, [gateway, gatewayName])\n\n return {\n address: asAddress(accountPermissions?.[0] ?? address), connectSigner, error: error ?? accountPermissionsError ?? connectError, gateway, timedout,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isDefinedNotNull } from '@xylabs/typeof'\nimport type { XyoViewer } from '@xyo-network/xl1-protocol'\n\nexport const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null) => {\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport type { RpcTransport, XyoRunnerRpcSchemas } from '@xyo-network/xl1-rpc'\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 as RpcTransport<typeof XyoRunnerRpcSchemas>)\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 { XyoConnection, XyoSigner } from '@xyo-network/xl1-protocol'\nimport { MemoryXyoSigner } from '@xyo-network/xl1-rpc'\nimport { useMemo } from 'react'\n\nexport const useSigner = (_provider?: XyoConnection, 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 { isDefined, isDefinedNotNull } from '@xylabs/typeof'\nimport type { GatewayName } from '@xyo-network/xl1-protocol'\n\nimport { useGateway } from '../client/index.ts'\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 {\n gateway, error, isLoading,\n } = useGateway(networkId)\n\n return usePromise(async () => {\n if (isDefinedNotNull(error)) return null\n if (isLoading) return\n if (isDefined(gateway) && isDefined(networkId)) {\n const connection = await gateway?.connection()\n return connection?.viewer\n }\n }, [gateway, networkId])\n}\n"],"mappings":"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","names":["Stack","Tooltip","Typography","EthAddressWrapper","BlockiesAvatarAddress","React","ConnectedAccount","address","shortenedAddress","EthAddressWrapper","fromString","toShortString","Stack","direction","alignItems","spacing","BlockiesAvatarAddress","size","Tooltip","title","Typography","color","variant","fontFamily","Alert","AlertTitle","Button","Stack","Typography","ButtonEx","isDefined","isUndefined","ErrorRender","React","useEffect","useSyncExternalStore","CLIENT_LISTENER_TIMEOUT","hasXyoClient","globalThis","xyo","listenForClientInjection","onClientReady","timeout","onTimeout","resolved","listener","addEventListener","setTimeout","getXyoClient","client","Promise","resolve","assertEx","delay","forget","isDefined","isNull","TransactionConfirmationStatus","_params","active","params","exp","assertEx","transaction","nbf","onStatusUpdate","txHash","viewer","create","start","currentBlockNumber","isDefined","checkBlock","delay","error","stop","forget","Error","confirmed","blockNumber","progress","remainingBlocks","checkConfirmation","Math","round","tx","transactionByHash","isNull","currentState","client","undefined","error","isLoading","timedout","listeners","Set","emitChange","listener","updateState","newState","initializeClient","timeout","getXyoClient","console","subscribe","add","delete","getSnapshot","useClient","subscribeWithTimeout","useSyncExternalStore","usePermissions","client","isLoading","error","timedout","useClient","permissions","usePromise","isArray","isDefined","isDefinedNotNull","isString","isDefined","findCaveat","permissions","targetCapability","targetCaveatType","existingPermissions","getPermissions","isDefined","length","foundPermissions","find","p","parentCapability","caveats","caveat","type","value","validateRestrictedAccounts","restrictedAccounts","isDefined","isArray","every","isString","Error","JSON","stringify","useAccountPermissions","permissions","error","usePermissions","usePromise","isDefinedNotNull","findCaveat","useGateway","gatewayName","timeout","client","isLoading","error","timedout","useClient","gateway","gateways","undefined","isUndefined","isUndefinedOrNull","ShiftedBigInt","useEffect","useMemo","useState","useAddressBalance","address","viewer","refresh","balancesResult","setBalancesResult","useState","loading","setLoading","balancesError","setBalancesError","useEffect","isCurrent","isUndefined","accountBalance","then","result","catch","err","console","error","undefined","useMemo","shiftedBigInt","ShiftedBigInt","places","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","balanceIntlFriendly","toFullString","shortBalanceIntlFriendly","isUndefinedOrNull","toShortString","balanceForAddress","forget","isHash","usePromise","isDefined","PayloadBuilder","useEffect","useState","useConfirmTransactionBase","transaction","onBroadcast","onStatusUpdate","runner","viewer","status","setStatus","useState","onStatusUpdateLocal","newStatus","transactionConfirmationStatus","transactionConfirmationError","usePromise","hasRunner","isDefined","hash","broadcastTransaction","PayloadBuilder","isHash","params","txHash","instance","TransactionConfirmationStatus","create","start","Error","useEffect","forget","stop","assertEx","asAddress","MainNetwork","useCallback","useState","useConnectAccount","gatewayName","MainNetwork","id","timeout","connectError","setConnectError","useState","gateway","error","timedout","useGateway","accountPermissions","accountPermissionsError","useAccountPermissions","address","setAddress","connectSigner","useCallback","assertedGateway","assertEx","signer","e","asAddress","usePromise","isDefinedNotNull","useCurrentBlock","refresh","viewer","usePromise","isDefinedNotNull","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","isDefinedNotNull","useViewerFromWallet","networkId","gateway","error","isLoading","useGateway","usePromise","isDefinedNotNull","isDefined","connection","viewer","DefaultConnectComponent","props","React","ButtonEx","variant","size","DefaultNoWalletInstalledComponent","Alert","severity","AlertTitle","Typography","gutterBottom","Button","sx","display","justifySelf","href","target","rel","ConnectAccountsStack","AccountComponent","ConnectedAccount","ConnectComponent","NoWalletInstalledComponent","onAccountConnected","onCancel","timeout","address","connectSigner","error","timedout","useConnectAccount","undefined","useEffect","isDefined","Stack","direction","alignItems","spacing","isUndefined","onClick","ErrorRender","scope"]}
|
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.15.
|
|
4
|
+
"version": "1.15.23",
|
|
5
5
|
"description": "XYO Layer One API",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -41,22 +41,22 @@
|
|
|
41
41
|
"src"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@xylabs/assert": "~5.0.
|
|
45
|
-
"@xylabs/delay": "~5.0.
|
|
46
|
-
"@xylabs/eth-address": "~5.0.
|
|
47
|
-
"@xylabs/forget": "~5.0.
|
|
48
|
-
"@xylabs/hex": "~5.0.
|
|
49
|
-
"@xylabs/promise": "~5.0.
|
|
50
|
-
"@xylabs/react-button": "~7.1.
|
|
51
|
-
"@xylabs/react-promise": "~7.1.
|
|
52
|
-
"@xylabs/typeof": "~5.0.
|
|
53
|
-
"@xyo-network/account-model": "~5.1.
|
|
54
|
-
"@xyo-network/chain-network-model": "~1.15.
|
|
55
|
-
"@xyo-network/payload-builder": "~5.1.
|
|
56
|
-
"@xyo-network/react-chain-blockies": "~1.15.
|
|
57
|
-
"@xyo-network/react-error": "~7.3.
|
|
58
|
-
"@xyo-network/xl1-protocol": "~1.12.
|
|
59
|
-
"@xyo-network/xl1-rpc": "~1.15.
|
|
44
|
+
"@xylabs/assert": "~5.0.17",
|
|
45
|
+
"@xylabs/delay": "~5.0.17",
|
|
46
|
+
"@xylabs/eth-address": "~5.0.17",
|
|
47
|
+
"@xylabs/forget": "~5.0.17",
|
|
48
|
+
"@xylabs/hex": "~5.0.17",
|
|
49
|
+
"@xylabs/promise": "~5.0.17",
|
|
50
|
+
"@xylabs/react-button": "~7.1.8",
|
|
51
|
+
"@xylabs/react-promise": "~7.1.8",
|
|
52
|
+
"@xylabs/typeof": "~5.0.17",
|
|
53
|
+
"@xyo-network/account-model": "~5.1.15",
|
|
54
|
+
"@xyo-network/chain-network-model": "~1.15.23",
|
|
55
|
+
"@xyo-network/payload-builder": "~5.1.15",
|
|
56
|
+
"@xyo-network/react-chain-blockies": "~1.15.23",
|
|
57
|
+
"@xyo-network/react-error": "~7.3.8",
|
|
58
|
+
"@xyo-network/xl1-protocol": "~1.12.89",
|
|
59
|
+
"@xyo-network/xl1-rpc": "~1.15.23"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@emotion/react": "~11.14.0",
|
|
@@ -64,13 +64,13 @@
|
|
|
64
64
|
"@mui/material": "~7.3.4",
|
|
65
65
|
"@storybook/react-vite": "~9.1.16",
|
|
66
66
|
"@types/react": "~19.2.2",
|
|
67
|
-
"@xylabs/react-button": "~7.1.
|
|
67
|
+
"@xylabs/react-button": "~7.1.8",
|
|
68
68
|
"@xylabs/ts-scripts-yarn3": "~7.1.8",
|
|
69
69
|
"@xylabs/tsconfig": "~7.1.8",
|
|
70
70
|
"@xylabs/tsconfig-dom": "~7.1.8",
|
|
71
71
|
"@xylabs/tsconfig-react": "~7.1.8",
|
|
72
|
-
"@xyo-network/react-chain-model": "~1.15.
|
|
73
|
-
"@xyo-network/react-error": "~7.3.
|
|
72
|
+
"@xyo-network/react-chain-model": "~1.15.23",
|
|
73
|
+
"@xyo-network/react-error": "~7.3.8",
|
|
74
74
|
"eslint": "^9.38.0",
|
|
75
75
|
"react": "~19.2.0",
|
|
76
76
|
"typescript": "~5.9.3"
|
|
@@ -27,6 +27,7 @@ export const useConfirmTransactionBase = (
|
|
|
27
27
|
const [status, setStatus] = useState<ConfirmationStatusUpdate>()
|
|
28
28
|
const onStatusUpdateLocal = (newStatus: ConfirmationStatusUpdate) => {
|
|
29
29
|
setStatus(newStatus)
|
|
30
|
+
onStatusUpdate?.(newStatus)
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
const [transactionConfirmationStatus, transactionConfirmationError] = usePromise(async () => {
|
|
@@ -36,7 +37,7 @@ export const useConfirmTransactionBase = (
|
|
|
36
37
|
if (isHash(hash)) {
|
|
37
38
|
if (hasRunner && isDefined(onBroadcast)) onBroadcast(hash)
|
|
38
39
|
const params: TransactionConfirmationParams = {
|
|
39
|
-
onStatusUpdate:
|
|
40
|
+
onStatusUpdate: onStatusUpdateLocal,
|
|
40
41
|
transaction,
|
|
41
42
|
txHash: hash,
|
|
42
43
|
viewer,
|