@xyo-network/react-chain-network 1.0.12 → 1.1.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.
package/dist/browser/index.mjs
CHANGED
|
@@ -285,15 +285,42 @@ var NetworkProvider = class _NetworkProvider {
|
|
|
285
285
|
accountBalance(_address, _blockNumber, _full) {
|
|
286
286
|
throw new Error("Method not implemented.");
|
|
287
287
|
}
|
|
288
|
+
accounts() {
|
|
289
|
+
throw new Error("Method not implemented.");
|
|
290
|
+
}
|
|
291
|
+
addChain(_chain, _name) {
|
|
292
|
+
throw new Error("Method not implemented.");
|
|
293
|
+
}
|
|
294
|
+
address() {
|
|
295
|
+
throw new Error("Method not implemented.");
|
|
296
|
+
}
|
|
288
297
|
blockByHash(_hash) {
|
|
289
298
|
throw new Error("Method not implemented.");
|
|
290
299
|
}
|
|
291
300
|
blockByNumber(_blockNumber) {
|
|
292
301
|
throw new Error("Method not implemented.");
|
|
293
302
|
}
|
|
303
|
+
blocksByHash(_hash, _limit) {
|
|
304
|
+
throw new Error("Method not implemented.");
|
|
305
|
+
}
|
|
306
|
+
chainId() {
|
|
307
|
+
throw new Error("Method not implemented.");
|
|
308
|
+
}
|
|
309
|
+
chains() {
|
|
310
|
+
throw new Error("Method not implemented.");
|
|
311
|
+
}
|
|
312
|
+
currentBlock() {
|
|
313
|
+
throw new Error("Method not implemented.");
|
|
314
|
+
}
|
|
315
|
+
currentBlockHash() {
|
|
316
|
+
throw new Error("Method not implemented.");
|
|
317
|
+
}
|
|
294
318
|
currentBlockNumber() {
|
|
295
319
|
throw new Error("Method not implemented.");
|
|
296
320
|
}
|
|
321
|
+
permissions() {
|
|
322
|
+
throw new Error("Method not implemented.");
|
|
323
|
+
}
|
|
297
324
|
async previousBlocks(startingBlock, count = 25) {
|
|
298
325
|
const chainArchivist = await this.getFinalizedArchivist();
|
|
299
326
|
const head = assertEx(await findMostRecentBlock(chainArchivist, {
|
|
@@ -310,12 +337,21 @@ var NetworkProvider = class _NetworkProvider {
|
|
|
310
337
|
}
|
|
311
338
|
return hydratedBlocks;
|
|
312
339
|
}
|
|
340
|
+
requestPermissions(_permissions) {
|
|
341
|
+
throw new Error("Method not implemented.");
|
|
342
|
+
}
|
|
343
|
+
revokePermissions(_permissions) {
|
|
344
|
+
throw new Error("Method not implemented.");
|
|
345
|
+
}
|
|
313
346
|
sendTransaction(_transaction) {
|
|
314
347
|
throw new Error("Method not implemented.");
|
|
315
348
|
}
|
|
316
349
|
signTransaction(_transaction) {
|
|
317
350
|
throw new Error("Method not implemented.");
|
|
318
351
|
}
|
|
352
|
+
switchChain(_chain) {
|
|
353
|
+
throw new Error("Method not implemented.");
|
|
354
|
+
}
|
|
319
355
|
transactionByBlockHashAndIndex(_blockHash, _transactionIndex) {
|
|
320
356
|
throw new Error("Method not implemented.");
|
|
321
357
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/menu/Icon.tsx","../../src/components/menu/MenuItem.tsx","../../src/context/network/context.ts","../../src/context/network/Provider.tsx","../../src/helpers/getBridgedNodes.ts","../../src/helpers/initNetworkNode.ts","../../src/helpers/getNetworkNode.ts","../../src/helpers/manifest/network.json","../../src/helpers/manifest/networkManifest.ts","../../src/images/icons/LocalNetwork.tsx","../../src/images/icons/xyoColorLogo.tsx","../../src/models/Bootstrap.ts","../../src/helpers/Networks.ts","../../src/context/network/use.ts","../../src/provider/NetworkProvider.ts"],"sourcesContent":["import type { IconProps } from '@mui/material'\nimport { Icon } from '@mui/material'\nimport React from 'react'\n\nexport const NetworkIcon: React.FC<IconProps & { icon?: string }> = ({ icon, ...props }) => {\n return (\n <Icon\n sx={{\n display: 'inline-flex', alignItems: 'center', justifyContent: 'center',\n }}\n ref={(ref) => {\n if (ref && icon) {\n ref.innerHTML = icon\n }\n }}\n {...props}\n />\n )\n}\n","import type { MenuItemProps } from '@mui/material'\nimport { ListItemText } from '@mui/material'\nimport { ActiveMenuItem } from '@xyo-network/react-chain-shared'\nimport type { MouseEvent as ReactMouseEvent } from 'react'\nimport React from 'react'\n\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { NetworkIcon } from './Icon.tsx'\n\nexport interface NetworkMenuItemProps extends MenuItemProps {\n active?: boolean\n network?: NetworkBootstrap\n updateActiveNetwork?: (networkId: string) => void\n}\n\nexport const NetworkMenuItem: React.FC<NetworkMenuItemProps> = ({\n active, network, onClick, updateActiveNetwork, ...props\n}) => {\n const handleClick = (event: ReactMouseEvent<HTMLLIElement, MouseEvent>) => {\n if (network === undefined) throw new Error('Network is undefined')\n updateActiveNetwork?.(network.id)\n onClick?.(event)\n }\n\n return (\n <ActiveMenuItem\n title={network?.name}\n disableRipple\n onClick={handleClick}\n active={active}\n {...props}\n >\n <NetworkIcon icon={network?.icon} />\n <ListItemText>{network?.name}</ListItemText>\n </ActiveMenuItem>\n )\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { ChainNetworkState } from './state.ts'\n\nexport const ChainNetworkContext = createContextEx<ChainNetworkState>()\n","import { ErrorRender } from '@xylabs/react-error'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useMemo, useState,\n} from 'react'\n\nimport { MainNetwork } from '../../helpers/index.ts'\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { ChainNetworkContext } from './context.ts'\nimport type { ChainNetworkState } from './state.ts'\n\nexport interface ChainNetworkProviderProps extends PropsWithChildren {\n getActiveNetwork?: () => Promise<NetworkBootstrap | undefined>\n networks?: NetworkBootstrap[]\n setActiveNetwork?: (networkId: NetworkBootstrap['id']) => Promise<NetworkBootstrap>\n}\n\nexport const ChainNetworkProvider: React.FC<ChainNetworkProviderProps> = ({\n children, getActiveNetwork, networks, setActiveNetwork: setActiveNetworkExternal,\n}) => {\n const [activeNetwork, setActiveNetwork] = useState<NetworkBootstrap>()\n const [error, setError] = useState<Error>()\n\n // Set the active network upon initialization\n const [resolvedActiveNetwork, activeNetworkError] = usePromise(async () => {\n // ensure networks are loaded\n if (!networks) return\n // get last saved active network\n const activeNetwork = await getActiveNetwork?.()\n // ensure the active network saved is found in the list of networks\n if (activeNetwork && networks?.find(network => network.id === activeNetwork.id)) {\n // Set the active network if it exists\n return activeNetwork\n } else {\n // Set the default network if no active network exists\n const defaultNetwork = networks.find(network => network.id === MainNetwork.id) ?? networks[0]\n await setActiveNetworkExternal?.(defaultNetwork.id)\n\n // Set the active network in the context\n return defaultNetwork\n }\n }, [networks])\n\n useMemo(() => {\n if (resolvedActiveNetwork) {\n setActiveNetwork(resolvedActiveNetwork)\n }\n }, [resolvedActiveNetwork])\n\n const updateActiveNetwork = useCallback((networkId: NetworkBootstrap['id']) => {\n setError(undefined)\n const network = networks?.find(network => network.id === networkId)\n // set internally\n setActiveNetwork(network)\n // set externally\n void setActiveNetworkExternal?.(networkId)\n }, [networks])\n\n const value = useMemo<ChainNetworkState>(() => ({\n activeNetwork,\n networks,\n provided: true,\n updateActiveNetwork,\n walletNetworkError: error ?? activeNetworkError,\n }), [activeNetwork, networks, updateActiveNetwork])\n\n return (\n <ChainNetworkContext value={value}>\n <ErrorRender error={error ?? activeNetworkError} scope=\"WalletNetworkProvider\" />\n {children}\n </ChainNetworkContext>\n )\n}\n","import type { AttachableNodeInstance } from '@xyo-network/node-model'\n\nconst bridgedNodeMap = new Map<string, AttachableNodeInstance>()\n\nexport const getBridgedNodes = () => {\n return bridgedNodeMap\n}\n","import { initBridge } from '@xyo-network/chain-sdk'\nimport type { AttachableNodeInstance } from '@xyo-network/node-model'\n\nimport type { NetworkBootstrap } from '../models/index.ts'\nimport { getBridgedNodes } from './getBridgedNodes.ts'\nimport { getNetworkNode } from './getNetworkNode.ts'\n\nexport const initNetworkNode = async (activeNetwork: NetworkBootstrap): Promise<AttachableNodeInstance> => {\n const bridgedNodeMap = getBridgedNodes()\n if (bridgedNodeMap.has(activeNetwork.url)) return bridgedNodeMap.get(activeNetwork.url)!\n\n const bridge = await initBridge(activeNetwork.url)\n const activeNetworkNode = await getNetworkNode()\n await activeNetworkNode.register?.(bridge)\n await activeNetworkNode.attach?.(bridge.address, true)\n bridgedNodeMap.set(activeNetwork.url, activeNetworkNode)\n\n return activeNetworkNode\n}\n","import { HDWallet } from '@xyo-network/account'\nimport { ManifestWrapper } from '@xyo-network/manifest-wrapper'\n\nimport { NetworkNodeManifest } from './manifest/index.ts'\n\nexport const getNetworkNode = async () => {\n const wrapper = new ManifestWrapper(NetworkNodeManifest, await HDWallet.random())\n const [node] = await wrapper.loadNodes()\n return node\n}\n","{\n \"$schema\": \"https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json\",\n \"nodes\": [\n {\n \"config\": {\n \"accountPath\": \"44'/60'/1\",\n \"name\": \"Network\",\n \"schema\": \"network.xyo.node.config\"\n },\n \"modules\": {\n \"private\": [],\n \"public\": []\n }\n }\n ],\n \"schema\": \"network.xyo.manifest\"\n}","import type { PackageManifestPayload } from '@xyo-network/manifest-model'\n\nimport node from './network.json' with { type: 'json' }\n\n/**\n * Root Node Manifest\n */\nexport const NetworkNodeManifest = node as PackageManifestPayload\n","/* eslint-disable @stylistic/max-len */\nimport { createSvgIcon } from '@mui/material'\nimport React from 'react'\n\nexport const LocalNetworkIcon = createSvgIcon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\">\n <path fill=\"currentColor\" d=\"M40-120v-80h880v80H40Zm120-120q-33 0-56.5-23.5T80-320v-440q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v440q0 33-23.5 56.5T800-240H160Zm0-80h640v-440H160v440Zm0 0v-440 440Z\" />\n </svg>,\n 'LocalNetworkIcon',\n)\n\nexport const LocalNetworkIconString = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"18\" width=\"18\" viewBox=\"0 -960 960 960\">\n <path fill=\"currentColor\" d=\"M40-120v-80h880v80H40Zm120-120q-33 0-56.5-23.5T80-320v-440q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v440q0 33-23.5 56.5T800-240H160Zm0-80h640v-440H160v440Zm0 0v-440 440Z\" />\n </svg>\n`\n","/* eslint-disable @stylistic/max-len */\nimport { createSvgIcon } from '@mui/material'\nimport React from 'react'\n\nexport const XyoColorLogo = createSvgIcon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\">\n <path\n className=\"cls-1\"\n d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"\n fill=\"#8d8fc6\"\n />\n <path\n className=\"cls-2\"\n d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"\n fill=\"#579fd6\"\n />\n <path\n className=\"cls-3\"\n d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"\n fill=\"#f27046\"\n />\n <path\n className=\"cls-4\"\n d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"\n fill=\"#eb407a\"\n />\n </svg>,\n 'XyoColorLogo',\n)\n\nexport const XyoColorLogoString = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\">\n <path\n className=\"cls-1\"\n d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"\n fill=\"#8d8fc6\"\n />\n <path\n className=\"cls-2\"\n d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"\n fill=\"#579fd6\"\n />\n <path\n className=\"cls-3\"\n d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"\n fill=\"#f27046\"\n />\n <path\n className=\"cls-4\"\n d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"\n fill=\"#eb407a\"\n />\n </svg>\n`\n","import type { Address } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { ChainInformation } from '@xyo-network/chain-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const NetworkBootstrapSchema = 'network.xyo.network.bootstrap' as const\nexport type NetworkBootstrapSchema = typeof NetworkBootstrapSchema\n\nexport interface ChainForkFields {\n /** Block Number at which the chain was forked from */\n forkedAtLastBlockNumber?: string\n /** Hash in the last block the chain was forked from */\n forkedAtLastHash?: string\n /** Address of the forked chain */\n forkedChainId?: Address\n}\n\nexport interface NetworkFields {\n /** Description of the network */\n description: string\n /** string representation of the icon (svg) */\n icon?: string\n /** Machine-readable identifier */\n id: string\n /** Human-readable identifier */\n name: string\n schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n /** Url for accessing the network */\n url: string\n}\n\n/** Note: Optional Properties can be found walking the chain to the genesis block */\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields {\n /** Address of the chain, i.e. smart contract address */\n chainInfo?: ChainInformation\n}\n\nexport interface Network extends NetworkBootstrap {\n custom: boolean\n}\n\nexport type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>\n\nexport const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)\n\nexport const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)\n","import { LocalNetworkIconString, XyoColorLogoString } from '../images/index.ts'\nimport type { NetworkBootstrap } from '../models/index.ts'\nimport { NetworkBootstrapSchema } from '../models/index.ts'\n\nexport const MainNetwork: NetworkBootstrap = {\n description: 'Main Node for the XYO Network',\n icon: XyoColorLogoString,\n id: 'mainnet',\n name: 'Mainnet',\n schema: NetworkBootstrapSchema,\n symbol: 'XYOG',\n url: 'https://api.chain.xyo.network',\n}\n\nexport const SequenceNetwork: NetworkBootstrap = {\n description: 'Test Node for the XYO Network',\n icon: XyoColorLogoString,\n id: 'sequence',\n name: 'Sequence',\n schema: NetworkBootstrapSchema,\n symbol: 'XYOG',\n url: 'https://beta.api.chain.xyo.network/',\n}\n\nexport const LocalNetwork: NetworkBootstrap = {\n description: 'Local Node',\n icon: LocalNetworkIconString,\n id: 'local',\n name: 'Local',\n schema: NetworkBootstrapSchema,\n symbol: 'XYOG',\n url: 'http://localhost:8080',\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { ChainNetworkContext } from './context.ts'\n\nexport const useChainNetwork = (required = true) => useContextEx(ChainNetworkContext, 'WalletNetwork', required)\n","import { assertEx } from '@xylabs/assert'\nimport type { Address, Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asArchivistInstance } from '@xyo-network/archivist-model'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport type { BridgeInstance } from '@xyo-network/bridge-model'\nimport type {\n ChainInformation,\n HydratedBlock, SignedHydratedBlock, SignedHydratedTransaction, TransactionBoundWitness, XyoProvider,\n} from '@xyo-network/chain-model'\nimport { findMostRecentBlock, hydrateBlock } from '@xyo-network/chain-protocol'\nimport { initBridge } from '@xyo-network/chain-sdk'\nimport { XyoChainBlockNumberIterator } from '@xyo-network/chain-services'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\n\nexport const FINALIZED_ARCHIVIST = 'XYOChain:Chain:Finalized' as const\n\nexport interface NetworkProviderParams {\n chainInformation?: ChainInformation\n network: string\n}\n\nexport class NetworkProvider implements XyoProvider {\n private _bridge: BridgeInstance\n\n constructor(bridge: BridgeInstance) {\n this._bridge = bridge\n }\n\n private get bridge() {\n return assertEx(this._bridge, () => 'Bridge not set')\n }\n\n static async create({ network }: NetworkProviderParams): Promise<NetworkProvider> {\n const bridge = await initBridge(network)\n return new NetworkProvider(bridge)\n }\n\n accountBalance(_address: Address, _blockNumber: bigint, _full: boolean): Promisable<bigint> {\n throw new Error('Method not implemented.')\n }\n\n blockByHash(_hash: Hash): Promisable<SignedHydratedBlock | null> {\n throw new Error('Method not implemented.')\n }\n\n blockByNumber(_blockNumber: bigint): Promisable<SignedHydratedBlock | null> {\n throw new Error('Method not implemented.')\n }\n\n currentBlockNumber(): Promisable<bigint> {\n throw new Error('Method not implemented.')\n }\n\n async previousBlocks(startingBlock?: Hash, count = 25): Promise<HydratedBlock[]> {\n const chainArchivist = await this.getFinalizedArchivist()\n const head = assertEx(await findMostRecentBlock(chainArchivist, { cursor: startingBlock }), () => 'Unable to find most recent block')\n const iterator = await XyoChainBlockNumberIterator.create({ chainArchivist, head })\n const blocks = await iterator.previous(head.block, count)\n\n let hydratedBlocks: HydratedBlock[] = []\n for (const block of blocks) {\n hydratedBlocks.push(await hydrateBlock(chainArchivist, await PayloadBuilder.hash(block)))\n }\n return hydratedBlocks\n }\n\n sendTransaction(_transaction: SignedHydratedTransaction): Promisable<Hash> {\n throw new Error('Method not implemented.')\n }\n\n signTransaction(_transaction: TransactionBoundWitness): Promisable<Signed<TransactionBoundWitness>> {\n throw new Error('Method not implemented.')\n }\n\n transactionByBlockHashAndIndex(_blockHash: Hash, _transactionIndex: bigint): Promisable<SignedHydratedTransaction | undefined> {\n throw new Error('Method not implemented.')\n }\n\n transactionByBlockNumberAndIndex(_blockNumber: bigint, _transactionIndex: bigint): Promisable<SignedHydratedTransaction | undefined> {\n throw new Error('Method not implemented.')\n }\n\n transactionByHash(_transactionHash: Hash): Promisable<SignedHydratedTransaction | undefined> {\n throw new Error('Method not implemented.')\n }\n\n private async getFinalizedArchivist(): Promise<ArchivistInstance> {\n const bridge = this.bridge\n const mod = assertEx(await bridge.resolve(FINALIZED_ARCHIVIST), () => `${FINALIZED_ARCHIVIST} not found`)\n return assertEx(asArchivistInstance(mod), () => `${FINALIZED_ARCHIVIST} is not an archivist`)\n }\n}\n"],"mappings":"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","names":["Icon","React","NetworkIcon","icon","props","Icon","sx","display","alignItems","justifyContent","ref","innerHTML","ListItemText","ActiveMenuItem","React","NetworkMenuItem","active","network","onClick","updateActiveNetwork","props","handleClick","event","undefined","Error","id","React","ActiveMenuItem","title","name","disableRipple","NetworkIcon","icon","ListItemText","createContextEx","ChainNetworkContext","ErrorRender","usePromise","React","useCallback","useMemo","useState","bridgedNodeMap","Map","getBridgedNodes","initBridge","HDWallet","ManifestWrapper","NetworkNodeManifest","node","getNetworkNode","wrapper","ManifestWrapper","NetworkNodeManifest","HDWallet","random","node","loadNodes","initNetworkNode","activeNetwork","bridgedNodeMap","getBridgedNodes","has","url","get","bridge","initBridge","activeNetworkNode","getNetworkNode","register","attach","address","set","createSvgIcon","React","LocalNetworkIcon","svg","xmlns","viewBox","path","fill","d","LocalNetworkIconString","createSvgIcon","React","XyoColorLogo","svg","xmlns","viewBox","path","className","d","fill","XyoColorLogoString","AsObjectFactory","isPayloadOfSchemaType","NetworkBootstrapSchema","isNetworkBootstrap","asOptionalNetwork","createOptional","MainNetwork","description","icon","XyoColorLogoString","id","name","schema","NetworkBootstrapSchema","symbol","url","SequenceNetwork","LocalNetwork","LocalNetworkIconString","ChainNetworkProvider","children","getActiveNetwork","networks","setActiveNetwork","setActiveNetworkExternal","activeNetwork","useState","error","setError","resolvedActiveNetwork","activeNetworkError","usePromise","find","network","id","defaultNetwork","MainNetwork","useMemo","updateActiveNetwork","useCallback","networkId","undefined","value","provided","walletNetworkError","React","ChainNetworkContext","ErrorRender","scope","useContextEx","useChainNetwork","required","useContextEx","ChainNetworkContext","assertEx","asArchivistInstance","findMostRecentBlock","hydrateBlock","initBridge","XyoChainBlockNumberIterator","PayloadBuilder","FINALIZED_ARCHIVIST","NetworkProvider","_bridge","constructor","bridge","assertEx","create","network","initBridge","accountBalance","_address","_blockNumber","_full","Error","blockByHash","_hash","blockByNumber","currentBlockNumber","previousBlocks","startingBlock","count","chainArchivist","getFinalizedArchivist","head","findMostRecentBlock","cursor","iterator","XyoChainBlockNumberIterator","blocks","previous","block","hydratedBlocks","push","hydrateBlock","PayloadBuilder","hash","sendTransaction","_transaction","signTransaction","transactionByBlockHashAndIndex","_blockHash","_transactionIndex","transactionByBlockNumberAndIndex","transactionByHash","_transactionHash","mod","resolve","asArchivistInstance"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/menu/Icon.tsx","../../src/components/menu/MenuItem.tsx","../../src/context/network/context.ts","../../src/context/network/Provider.tsx","../../src/helpers/getBridgedNodes.ts","../../src/helpers/initNetworkNode.ts","../../src/helpers/getNetworkNode.ts","../../src/helpers/manifest/network.json","../../src/helpers/manifest/networkManifest.ts","../../src/images/icons/LocalNetwork.tsx","../../src/images/icons/xyoColorLogo.tsx","../../src/models/Bootstrap.ts","../../src/helpers/Networks.ts","../../src/context/network/use.ts","../../src/provider/NetworkProvider.ts"],"sourcesContent":["import type { IconProps } from '@mui/material'\nimport { Icon } from '@mui/material'\nimport React from 'react'\n\nexport const NetworkIcon: React.FC<IconProps & { icon?: string }> = ({ icon, ...props }) => {\n return (\n <Icon\n sx={{\n display: 'inline-flex', alignItems: 'center', justifyContent: 'center',\n }}\n ref={(ref) => {\n if (ref && icon) {\n ref.innerHTML = icon\n }\n }}\n {...props}\n />\n )\n}\n","import type { MenuItemProps } from '@mui/material'\nimport { ListItemText } from '@mui/material'\nimport { ActiveMenuItem } from '@xyo-network/react-chain-shared'\nimport type { MouseEvent as ReactMouseEvent } from 'react'\nimport React from 'react'\n\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { NetworkIcon } from './Icon.tsx'\n\nexport interface NetworkMenuItemProps extends MenuItemProps {\n active?: boolean\n network?: NetworkBootstrap\n updateActiveNetwork?: (networkId: string) => void\n}\n\nexport const NetworkMenuItem: React.FC<NetworkMenuItemProps> = ({\n active, network, onClick, updateActiveNetwork, ...props\n}) => {\n const handleClick = (event: ReactMouseEvent<HTMLLIElement, MouseEvent>) => {\n if (network === undefined) throw new Error('Network is undefined')\n updateActiveNetwork?.(network.id)\n onClick?.(event)\n }\n\n return (\n <ActiveMenuItem\n title={network?.name}\n disableRipple\n onClick={handleClick}\n active={active}\n {...props}\n >\n <NetworkIcon icon={network?.icon} />\n <ListItemText>{network?.name}</ListItemText>\n </ActiveMenuItem>\n )\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { ChainNetworkState } from './state.ts'\n\nexport const ChainNetworkContext = createContextEx<ChainNetworkState>()\n","import { ErrorRender } from '@xylabs/react-error'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useMemo, useState,\n} from 'react'\n\nimport { MainNetwork } from '../../helpers/index.ts'\nimport type { NetworkBootstrap } from '../../models/index.ts'\nimport { ChainNetworkContext } from './context.ts'\nimport type { ChainNetworkState } from './state.ts'\n\nexport interface ChainNetworkProviderProps extends PropsWithChildren {\n getActiveNetwork?: () => Promise<NetworkBootstrap | undefined>\n networks?: NetworkBootstrap[]\n setActiveNetwork?: (networkId: NetworkBootstrap['id']) => Promise<NetworkBootstrap>\n}\n\nexport const ChainNetworkProvider: React.FC<ChainNetworkProviderProps> = ({\n children, getActiveNetwork, networks, setActiveNetwork: setActiveNetworkExternal,\n}) => {\n const [activeNetwork, setActiveNetwork] = useState<NetworkBootstrap>()\n const [error, setError] = useState<Error>()\n\n // Set the active network upon initialization\n const [resolvedActiveNetwork, activeNetworkError] = usePromise(async () => {\n // ensure networks are loaded\n if (!networks) return\n // get last saved active network\n const activeNetwork = await getActiveNetwork?.()\n // ensure the active network saved is found in the list of networks\n if (activeNetwork && networks?.find(network => network.id === activeNetwork.id)) {\n // Set the active network if it exists\n return activeNetwork\n } else {\n // Set the default network if no active network exists\n const defaultNetwork = networks.find(network => network.id === MainNetwork.id) ?? networks[0]\n await setActiveNetworkExternal?.(defaultNetwork.id)\n\n // Set the active network in the context\n return defaultNetwork\n }\n }, [networks])\n\n useMemo(() => {\n if (resolvedActiveNetwork) {\n setActiveNetwork(resolvedActiveNetwork)\n }\n }, [resolvedActiveNetwork])\n\n const updateActiveNetwork = useCallback((networkId: NetworkBootstrap['id']) => {\n setError(undefined)\n const network = networks?.find(network => network.id === networkId)\n // set internally\n setActiveNetwork(network)\n // set externally\n void setActiveNetworkExternal?.(networkId)\n }, [networks])\n\n const value = useMemo<ChainNetworkState>(() => ({\n activeNetwork,\n networks,\n provided: true,\n updateActiveNetwork,\n walletNetworkError: error ?? activeNetworkError,\n }), [activeNetwork, networks, updateActiveNetwork])\n\n return (\n <ChainNetworkContext value={value}>\n <ErrorRender error={error ?? activeNetworkError} scope=\"WalletNetworkProvider\" />\n {children}\n </ChainNetworkContext>\n )\n}\n","import type { AttachableNodeInstance } from '@xyo-network/node-model'\n\nconst bridgedNodeMap = new Map<string, AttachableNodeInstance>()\n\nexport const getBridgedNodes = () => {\n return bridgedNodeMap\n}\n","import { initBridge } from '@xyo-network/chain-sdk'\nimport type { AttachableNodeInstance } from '@xyo-network/node-model'\n\nimport type { NetworkBootstrap } from '../models/index.ts'\nimport { getBridgedNodes } from './getBridgedNodes.ts'\nimport { getNetworkNode } from './getNetworkNode.ts'\n\nexport const initNetworkNode = async (activeNetwork: NetworkBootstrap): Promise<AttachableNodeInstance> => {\n const bridgedNodeMap = getBridgedNodes()\n if (bridgedNodeMap.has(activeNetwork.url)) return bridgedNodeMap.get(activeNetwork.url)!\n\n const bridge = await initBridge(activeNetwork.url)\n const activeNetworkNode = await getNetworkNode()\n await activeNetworkNode.register?.(bridge)\n await activeNetworkNode.attach?.(bridge.address, true)\n bridgedNodeMap.set(activeNetwork.url, activeNetworkNode)\n\n return activeNetworkNode\n}\n","import { HDWallet } from '@xyo-network/account'\nimport { ManifestWrapper } from '@xyo-network/manifest-wrapper'\n\nimport { NetworkNodeManifest } from './manifest/index.ts'\n\nexport const getNetworkNode = async () => {\n const wrapper = new ManifestWrapper(NetworkNodeManifest, await HDWallet.random())\n const [node] = await wrapper.loadNodes()\n return node\n}\n","{\n \"$schema\": \"https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json\",\n \"nodes\": [\n {\n \"config\": {\n \"accountPath\": \"44'/60'/1\",\n \"name\": \"Network\",\n \"schema\": \"network.xyo.node.config\"\n },\n \"modules\": {\n \"private\": [],\n \"public\": []\n }\n }\n ],\n \"schema\": \"network.xyo.manifest\"\n}","import type { PackageManifestPayload } from '@xyo-network/manifest-model'\n\nimport node from './network.json' with { type: 'json' }\n\n/**\n * Root Node Manifest\n */\nexport const NetworkNodeManifest = node as PackageManifestPayload\n","/* eslint-disable @stylistic/max-len */\nimport { createSvgIcon } from '@mui/material'\nimport React from 'react'\n\nexport const LocalNetworkIcon = createSvgIcon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\">\n <path fill=\"currentColor\" d=\"M40-120v-80h880v80H40Zm120-120q-33 0-56.5-23.5T80-320v-440q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v440q0 33-23.5 56.5T800-240H160Zm0-80h640v-440H160v440Zm0 0v-440 440Z\" />\n </svg>,\n 'LocalNetworkIcon',\n)\n\nexport const LocalNetworkIconString = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"18\" width=\"18\" viewBox=\"0 -960 960 960\">\n <path fill=\"currentColor\" d=\"M40-120v-80h880v80H40Zm120-120q-33 0-56.5-23.5T80-320v-440q0-33 23.5-56.5T160-840h640q33 0 56.5 23.5T880-760v440q0 33-23.5 56.5T800-240H160Zm0-80h640v-440H160v440Zm0 0v-440 440Z\" />\n </svg>\n`\n","/* eslint-disable @stylistic/max-len */\nimport { createSvgIcon } from '@mui/material'\nimport React from 'react'\n\nexport const XyoColorLogo = createSvgIcon(\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\">\n <path\n className=\"cls-1\"\n d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"\n fill=\"#8d8fc6\"\n />\n <path\n className=\"cls-2\"\n d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"\n fill=\"#579fd6\"\n />\n <path\n className=\"cls-3\"\n d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"\n fill=\"#f27046\"\n />\n <path\n className=\"cls-4\"\n d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"\n fill=\"#eb407a\"\n />\n </svg>,\n 'XyoColorLogo',\n)\n\nexport const XyoColorLogoString = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\">\n <path\n className=\"cls-1\"\n d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"\n fill=\"#8d8fc6\"\n />\n <path\n className=\"cls-2\"\n d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"\n fill=\"#579fd6\"\n />\n <path\n className=\"cls-3\"\n d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"\n fill=\"#f27046\"\n />\n <path\n className=\"cls-4\"\n d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"\n fill=\"#eb407a\"\n />\n </svg>\n`\n","import type { Address } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { ChainInformation } from '@xyo-network/chain-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const NetworkBootstrapSchema = 'network.xyo.network.bootstrap' as const\nexport type NetworkBootstrapSchema = typeof NetworkBootstrapSchema\n\nexport interface ChainForkFields {\n /** Block Number at which the chain was forked from */\n forkedAtLastBlockNumber?: string\n /** Hash in the last block the chain was forked from */\n forkedAtLastHash?: string\n /** Address of the forked chain */\n forkedChainId?: Address\n}\n\nexport interface NetworkFields {\n /** Description of the network */\n description: string\n /** string representation of the icon (svg) */\n icon?: string\n /** Machine-readable identifier */\n id: string\n /** Human-readable identifier */\n name: string\n schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n /** Url for accessing the network */\n url: string\n}\n\n/** Note: Optional Properties can be found walking the chain to the genesis block */\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields {\n /** Address of the chain, i.e. smart contract address */\n chainInfo?: ChainInformation\n}\n\nexport interface Network extends NetworkBootstrap {\n custom: boolean\n}\n\nexport type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>\n\nexport const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)\n\nexport const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)\n","import { LocalNetworkIconString, XyoColorLogoString } from '../images/index.ts'\nimport type { NetworkBootstrap } from '../models/index.ts'\nimport { NetworkBootstrapSchema } from '../models/index.ts'\n\nexport const MainNetwork: NetworkBootstrap = {\n description: 'Main Node for the XYO Network',\n icon: XyoColorLogoString,\n id: 'mainnet',\n name: 'Mainnet',\n schema: NetworkBootstrapSchema,\n symbol: 'XYOG',\n url: 'https://api.chain.xyo.network',\n}\n\nexport const SequenceNetwork: NetworkBootstrap = {\n description: 'Test Node for the XYO Network',\n icon: XyoColorLogoString,\n id: 'sequence',\n name: 'Sequence',\n schema: NetworkBootstrapSchema,\n symbol: 'XYOG',\n url: 'https://beta.api.chain.xyo.network/',\n}\n\nexport const LocalNetwork: NetworkBootstrap = {\n description: 'Local Node',\n icon: LocalNetworkIconString,\n id: 'local',\n name: 'Local',\n schema: NetworkBootstrapSchema,\n symbol: 'XYOG',\n url: 'http://localhost:8080',\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { ChainNetworkContext } from './context.ts'\n\nexport const useChainNetwork = (required = true) => useContextEx(ChainNetworkContext, 'WalletNetwork', required)\n","import { assertEx } from '@xylabs/assert'\nimport type { Address, Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asArchivistInstance } from '@xyo-network/archivist-model'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport type { BridgeInstance } from '@xyo-network/bridge-model'\nimport type {\n ChainInformation,\n HydratedBlock, SignedHydratedBlock, SignedHydratedTransaction, TransactionBoundWitness,\n XyoRunner,\n XyoSigner,\n XyoViewer,\n XyoWallet,\n} from '@xyo-network/chain-model'\nimport { findMostRecentBlock, hydrateBlock } from '@xyo-network/chain-protocol'\nimport { initBridge } from '@xyo-network/chain-sdk'\nimport { XyoChainBlockNumberIterator } from '@xyo-network/chain-services'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\n\nexport const FINALIZED_ARCHIVIST = 'XYOChain:Chain:Finalized' as const\n\nexport interface NetworkProviderParams {\n chainInformation?: ChainInformation\n network: string\n}\n\n// TODO: change back to implementing XyoProvider which requires sub objects\nexport class NetworkProvider implements XyoSigner, XyoViewer, XyoWallet, XyoRunner {\n private _bridge: BridgeInstance\n\n constructor(bridge: BridgeInstance) {\n this._bridge = bridge\n }\n\n private get bridge() {\n return assertEx(this._bridge, () => 'Bridge not set')\n }\n\n static async create({ network }: NetworkProviderParams): Promise<NetworkProvider> {\n const bridge = await initBridge(network)\n return new NetworkProvider(bridge)\n }\n\n accountBalance(_address: Address, _blockNumber: number, _full: boolean): Promisable<bigint> {\n throw new Error('Method not implemented.')\n }\n\n accounts(): Promisable<Address[]> {\n throw new Error('Method not implemented.')\n }\n\n addChain(_chain: Address, _name?: string): Promisable<object> {\n throw new Error('Method not implemented.')\n }\n\n address(): Promisable<Address> {\n throw new Error('Method not implemented.')\n }\n\n blockByHash(_hash: Hash): Promisable<SignedHydratedBlock | null> {\n throw new Error('Method not implemented.')\n }\n\n blockByNumber(_blockNumber: number): Promisable<SignedHydratedBlock | null> {\n throw new Error('Method not implemented.')\n }\n\n blocksByHash(_hash: Hash, _limit?: number): Promisable<SignedHydratedBlock[]> {\n throw new Error('Method not implemented.')\n }\n\n chainId(): Promisable<Address> {\n throw new Error('Method not implemented.')\n }\n\n chains(): Promisable<object> {\n throw new Error('Method not implemented.')\n }\n\n currentBlock(): Promisable<SignedHydratedBlock> {\n throw new Error('Method not implemented.')\n }\n\n currentBlockHash(): Promisable<Hash> {\n throw new Error('Method not implemented.')\n }\n\n currentBlockNumber(): Promisable<number> {\n throw new Error('Method not implemented.')\n }\n\n permissions(): Promisable<Record<string, object>> {\n throw new Error('Method not implemented.')\n }\n\n async previousBlocks(startingBlock?: Hash, count = 25): Promise<HydratedBlock[]> {\n const chainArchivist = await this.getFinalizedArchivist()\n const head = assertEx(await findMostRecentBlock(chainArchivist, { cursor: startingBlock }), () => 'Unable to find most recent block')\n const iterator = await XyoChainBlockNumberIterator.create({ chainArchivist, head })\n const blocks = await iterator.previous(head.block, count)\n\n let hydratedBlocks: HydratedBlock[] = []\n for (const block of blocks) {\n hydratedBlocks.push(await hydrateBlock(chainArchivist, await PayloadBuilder.hash(block)))\n }\n return hydratedBlocks\n }\n\n requestPermissions(_permissions: object): Promisable<object> {\n throw new Error('Method not implemented.')\n }\n\n revokePermissions(_permissions: object): Promisable<object> {\n throw new Error('Method not implemented.')\n }\n\n sendTransaction(_transaction: SignedHydratedTransaction): Promisable<Hash> {\n throw new Error('Method not implemented.')\n }\n\n signTransaction(_transaction: TransactionBoundWitness): Promisable<Signed<TransactionBoundWitness>> {\n throw new Error('Method not implemented.')\n }\n\n switchChain(_chain: Address): Promisable<void> {\n throw new Error('Method not implemented.')\n }\n\n transactionByBlockHashAndIndex(_blockHash: Hash, _transactionIndex: number): Promisable<SignedHydratedTransaction | null> {\n throw new Error('Method not implemented.')\n }\n\n transactionByBlockNumberAndIndex(_blockNumber: number, _transactionIndex: number): Promisable<SignedHydratedTransaction | null> {\n throw new Error('Method not implemented.')\n }\n\n transactionByHash(_transactionHash: Hash): Promisable<SignedHydratedTransaction | null> {\n throw new Error('Method not implemented.')\n }\n\n private async getFinalizedArchivist(): Promise<ArchivistInstance> {\n const bridge = this.bridge\n const mod = assertEx(await bridge.resolve(FINALIZED_ARCHIVIST), () => `${FINALIZED_ARCHIVIST} not found`)\n return assertEx(asArchivistInstance(mod), () => `${FINALIZED_ARCHIVIST} is not an archivist`)\n }\n}\n"],"mappings":"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","names":["Icon","React","NetworkIcon","icon","props","Icon","sx","display","alignItems","justifyContent","ref","innerHTML","ListItemText","ActiveMenuItem","React","NetworkMenuItem","active","network","onClick","updateActiveNetwork","props","handleClick","event","undefined","Error","id","React","ActiveMenuItem","title","name","disableRipple","NetworkIcon","icon","ListItemText","createContextEx","ChainNetworkContext","ErrorRender","usePromise","React","useCallback","useMemo","useState","bridgedNodeMap","Map","getBridgedNodes","initBridge","HDWallet","ManifestWrapper","NetworkNodeManifest","node","getNetworkNode","wrapper","ManifestWrapper","NetworkNodeManifest","HDWallet","random","node","loadNodes","initNetworkNode","activeNetwork","bridgedNodeMap","getBridgedNodes","has","url","get","bridge","initBridge","activeNetworkNode","getNetworkNode","register","attach","address","set","createSvgIcon","React","LocalNetworkIcon","svg","xmlns","viewBox","path","fill","d","LocalNetworkIconString","createSvgIcon","React","XyoColorLogo","svg","xmlns","viewBox","path","className","d","fill","XyoColorLogoString","AsObjectFactory","isPayloadOfSchemaType","NetworkBootstrapSchema","isNetworkBootstrap","asOptionalNetwork","createOptional","MainNetwork","description","icon","XyoColorLogoString","id","name","schema","NetworkBootstrapSchema","symbol","url","SequenceNetwork","LocalNetwork","LocalNetworkIconString","ChainNetworkProvider","children","getActiveNetwork","networks","setActiveNetwork","setActiveNetworkExternal","activeNetwork","useState","error","setError","resolvedActiveNetwork","activeNetworkError","usePromise","find","network","id","defaultNetwork","MainNetwork","useMemo","updateActiveNetwork","useCallback","networkId","undefined","value","provided","walletNetworkError","React","ChainNetworkContext","ErrorRender","scope","useContextEx","useChainNetwork","required","useContextEx","ChainNetworkContext","assertEx","asArchivistInstance","findMostRecentBlock","hydrateBlock","initBridge","XyoChainBlockNumberIterator","PayloadBuilder","FINALIZED_ARCHIVIST","NetworkProvider","_bridge","constructor","bridge","assertEx","create","network","initBridge","accountBalance","_address","_blockNumber","_full","Error","accounts","addChain","_chain","_name","address","blockByHash","_hash","blockByNumber","blocksByHash","_limit","chainId","chains","currentBlock","currentBlockHash","currentBlockNumber","permissions","previousBlocks","startingBlock","count","chainArchivist","getFinalizedArchivist","head","findMostRecentBlock","cursor","iterator","XyoChainBlockNumberIterator","blocks","previous","block","hydratedBlocks","push","hydrateBlock","PayloadBuilder","hash","requestPermissions","_permissions","revokePermissions","sendTransaction","_transaction","signTransaction","switchChain","transactionByBlockHashAndIndex","_blockHash","_transactionIndex","transactionByBlockNumberAndIndex","transactionByHash","_transactionHash","mod","resolve","asArchivistInstance"]}
|
|
@@ -2,27 +2,39 @@ import type { Address, Hash } from '@xylabs/hex';
|
|
|
2
2
|
import type { Promisable } from '@xylabs/promise';
|
|
3
3
|
import type { Signed } from '@xyo-network/boundwitness-model';
|
|
4
4
|
import type { BridgeInstance } from '@xyo-network/bridge-model';
|
|
5
|
-
import type { ChainInformation, HydratedBlock, SignedHydratedBlock, SignedHydratedTransaction, TransactionBoundWitness,
|
|
5
|
+
import type { ChainInformation, HydratedBlock, SignedHydratedBlock, SignedHydratedTransaction, TransactionBoundWitness, XyoRunner, XyoSigner, XyoViewer, XyoWallet } from '@xyo-network/chain-model';
|
|
6
6
|
export declare const FINALIZED_ARCHIVIST: "XYOChain:Chain:Finalized";
|
|
7
7
|
export interface NetworkProviderParams {
|
|
8
8
|
chainInformation?: ChainInformation;
|
|
9
9
|
network: string;
|
|
10
10
|
}
|
|
11
|
-
export declare class NetworkProvider implements
|
|
11
|
+
export declare class NetworkProvider implements XyoSigner, XyoViewer, XyoWallet, XyoRunner {
|
|
12
12
|
private _bridge;
|
|
13
13
|
constructor(bridge: BridgeInstance);
|
|
14
14
|
private get bridge();
|
|
15
15
|
static create({ network }: NetworkProviderParams): Promise<NetworkProvider>;
|
|
16
|
-
accountBalance(_address: Address, _blockNumber:
|
|
16
|
+
accountBalance(_address: Address, _blockNumber: number, _full: boolean): Promisable<bigint>;
|
|
17
|
+
accounts(): Promisable<Address[]>;
|
|
18
|
+
addChain(_chain: Address, _name?: string): Promisable<object>;
|
|
19
|
+
address(): Promisable<Address>;
|
|
17
20
|
blockByHash(_hash: Hash): Promisable<SignedHydratedBlock | null>;
|
|
18
|
-
blockByNumber(_blockNumber:
|
|
19
|
-
|
|
21
|
+
blockByNumber(_blockNumber: number): Promisable<SignedHydratedBlock | null>;
|
|
22
|
+
blocksByHash(_hash: Hash, _limit?: number): Promisable<SignedHydratedBlock[]>;
|
|
23
|
+
chainId(): Promisable<Address>;
|
|
24
|
+
chains(): Promisable<object>;
|
|
25
|
+
currentBlock(): Promisable<SignedHydratedBlock>;
|
|
26
|
+
currentBlockHash(): Promisable<Hash>;
|
|
27
|
+
currentBlockNumber(): Promisable<number>;
|
|
28
|
+
permissions(): Promisable<Record<string, object>>;
|
|
20
29
|
previousBlocks(startingBlock?: Hash, count?: number): Promise<HydratedBlock[]>;
|
|
30
|
+
requestPermissions(_permissions: object): Promisable<object>;
|
|
31
|
+
revokePermissions(_permissions: object): Promisable<object>;
|
|
21
32
|
sendTransaction(_transaction: SignedHydratedTransaction): Promisable<Hash>;
|
|
22
33
|
signTransaction(_transaction: TransactionBoundWitness): Promisable<Signed<TransactionBoundWitness>>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
34
|
+
switchChain(_chain: Address): Promisable<void>;
|
|
35
|
+
transactionByBlockHashAndIndex(_blockHash: Hash, _transactionIndex: number): Promisable<SignedHydratedTransaction | null>;
|
|
36
|
+
transactionByBlockNumberAndIndex(_blockNumber: number, _transactionIndex: number): Promisable<SignedHydratedTransaction | null>;
|
|
37
|
+
transactionByHash(_transactionHash: Hash): Promisable<SignedHydratedTransaction | null>;
|
|
26
38
|
private getFinalizedArchivist;
|
|
27
39
|
}
|
|
28
40
|
//# sourceMappingURL=NetworkProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/NetworkProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"NetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/NetworkProvider.ts"],"names":[],"mappings":"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"}
|
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-network",
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"description": "XYO Layer One React SDK",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -38,61 +38,56 @@
|
|
|
38
38
|
"start": "storybook dev -p 6006"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@xylabs/assert": "^4.7.
|
|
42
|
-
"@xylabs/
|
|
43
|
-
"@xylabs/
|
|
44
|
-
"@xylabs/
|
|
45
|
-
"@xylabs/
|
|
46
|
-
"@xylabs/react-
|
|
47
|
-
"@xylabs/react-
|
|
48
|
-
"@
|
|
49
|
-
"@xyo-network/
|
|
50
|
-
"@xyo-network/
|
|
51
|
-
"@xyo-network/
|
|
52
|
-
"@xyo-network/
|
|
53
|
-
"@xyo-network/chain-
|
|
54
|
-
"@xyo-network/chain-
|
|
55
|
-
"@xyo-network/chain-
|
|
56
|
-
"@xyo-network/
|
|
57
|
-
"@xyo-network/manifest-
|
|
58
|
-
"@xyo-network/
|
|
59
|
-
"@xyo-network/
|
|
60
|
-
"@xyo-network/payload-
|
|
61
|
-
"@xyo-network/
|
|
62
|
-
"@xyo-network/react-
|
|
63
|
-
"@xyo-network/react-shared": "^5.0.7"
|
|
41
|
+
"@xylabs/assert": "^4.7.15",
|
|
42
|
+
"@xylabs/hex": "^4.7.15",
|
|
43
|
+
"@xylabs/object": "^4.7.15",
|
|
44
|
+
"@xylabs/promise": "^4.7.15",
|
|
45
|
+
"@xylabs/react-error": "^6.1.2",
|
|
46
|
+
"@xylabs/react-promise": "^6.1.2",
|
|
47
|
+
"@xylabs/react-shared": "^6.1.2",
|
|
48
|
+
"@xyo-network/account": "^3.10.6",
|
|
49
|
+
"@xyo-network/archivist-model": "^3.10.6",
|
|
50
|
+
"@xyo-network/boundwitness-model": "^3.10.6",
|
|
51
|
+
"@xyo-network/bridge-model": "^3.10.6",
|
|
52
|
+
"@xyo-network/chain-model": "^1.1.0",
|
|
53
|
+
"@xyo-network/chain-protocol": "^1.1.0",
|
|
54
|
+
"@xyo-network/chain-sdk": "^1.1.0",
|
|
55
|
+
"@xyo-network/chain-services": "^1.1.0",
|
|
56
|
+
"@xyo-network/manifest-model": "^3.10.6",
|
|
57
|
+
"@xyo-network/manifest-wrapper": "^3.10.6",
|
|
58
|
+
"@xyo-network/node-model": "^3.10.6",
|
|
59
|
+
"@xyo-network/payload-builder": "^3.10.6",
|
|
60
|
+
"@xyo-network/payload-model": "^3.10.6",
|
|
61
|
+
"@xyo-network/react-chain-shared": "^1.1.0",
|
|
62
|
+
"@xyo-network/react-shared": "^5.1.1"
|
|
64
63
|
},
|
|
65
64
|
"devDependencies": {
|
|
66
65
|
"@emotion/react": "^11.14.0",
|
|
67
66
|
"@emotion/styled": "^11.14.0",
|
|
68
|
-
"@mui/icons-material": "^
|
|
69
|
-
"@mui/material": "^
|
|
70
|
-
"@
|
|
71
|
-
"@
|
|
72
|
-
"@xylabs/
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"react": "^19.0.0",
|
|
77
|
-
"react-dom": "^19.0.0",
|
|
78
|
-
"react-router-dom": "^7.4.0",
|
|
67
|
+
"@mui/icons-material": "^7.0.1",
|
|
68
|
+
"@mui/material": "^7.0.1",
|
|
69
|
+
"@types/react": "^19.1.0",
|
|
70
|
+
"@xylabs/ts-scripts-yarn3": "^6.2.1",
|
|
71
|
+
"@xylabs/tsconfig-react": "^6.2.1",
|
|
72
|
+
"react": "^19.1.0",
|
|
73
|
+
"react-dom": "^19.1.0",
|
|
74
|
+
"react-router-dom": "^7.4.1",
|
|
79
75
|
"typescript": "^5.8.2"
|
|
80
76
|
},
|
|
81
77
|
"peerDependencies": {
|
|
82
78
|
"@emotion/react": "^11",
|
|
83
79
|
"@emotion/styled": "^11",
|
|
84
|
-
"@mui/icons-material": "^
|
|
85
|
-
"@mui/material": "^
|
|
86
|
-
"@mui/styles": "^6",
|
|
80
|
+
"@mui/icons-material": "^7",
|
|
81
|
+
"@mui/material": "^7",
|
|
87
82
|
"ethers": "^6",
|
|
88
83
|
"react": "^19",
|
|
89
84
|
"react-dom": "^19",
|
|
90
85
|
"react-router-dom": "^7"
|
|
91
86
|
},
|
|
92
|
-
"
|
|
93
|
-
"node": "22.3
|
|
94
|
-
"yarn": "4.6.0"
|
|
87
|
+
"engines": {
|
|
88
|
+
"node": ">=22.3 <23"
|
|
95
89
|
},
|
|
90
|
+
"engineStrict": true,
|
|
96
91
|
"publishConfig": {
|
|
97
92
|
"access": "restricted"
|
|
98
93
|
},
|
|
@@ -7,7 +7,11 @@ import type { Signed } from '@xyo-network/boundwitness-model'
|
|
|
7
7
|
import type { BridgeInstance } from '@xyo-network/bridge-model'
|
|
8
8
|
import type {
|
|
9
9
|
ChainInformation,
|
|
10
|
-
HydratedBlock, SignedHydratedBlock, SignedHydratedTransaction, TransactionBoundWitness,
|
|
10
|
+
HydratedBlock, SignedHydratedBlock, SignedHydratedTransaction, TransactionBoundWitness,
|
|
11
|
+
XyoRunner,
|
|
12
|
+
XyoSigner,
|
|
13
|
+
XyoViewer,
|
|
14
|
+
XyoWallet,
|
|
11
15
|
} from '@xyo-network/chain-model'
|
|
12
16
|
import { findMostRecentBlock, hydrateBlock } from '@xyo-network/chain-protocol'
|
|
13
17
|
import { initBridge } from '@xyo-network/chain-sdk'
|
|
@@ -21,7 +25,8 @@ export interface NetworkProviderParams {
|
|
|
21
25
|
network: string
|
|
22
26
|
}
|
|
23
27
|
|
|
24
|
-
|
|
28
|
+
// TODO: change back to implementing XyoProvider which requires sub objects
|
|
29
|
+
export class NetworkProvider implements XyoSigner, XyoViewer, XyoWallet, XyoRunner {
|
|
25
30
|
private _bridge: BridgeInstance
|
|
26
31
|
|
|
27
32
|
constructor(bridge: BridgeInstance) {
|
|
@@ -37,7 +42,19 @@ export class NetworkProvider implements XyoProvider {
|
|
|
37
42
|
return new NetworkProvider(bridge)
|
|
38
43
|
}
|
|
39
44
|
|
|
40
|
-
accountBalance(_address: Address, _blockNumber:
|
|
45
|
+
accountBalance(_address: Address, _blockNumber: number, _full: boolean): Promisable<bigint> {
|
|
46
|
+
throw new Error('Method not implemented.')
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
accounts(): Promisable<Address[]> {
|
|
50
|
+
throw new Error('Method not implemented.')
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
addChain(_chain: Address, _name?: string): Promisable<object> {
|
|
54
|
+
throw new Error('Method not implemented.')
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
address(): Promisable<Address> {
|
|
41
58
|
throw new Error('Method not implemented.')
|
|
42
59
|
}
|
|
43
60
|
|
|
@@ -45,11 +62,35 @@ export class NetworkProvider implements XyoProvider {
|
|
|
45
62
|
throw new Error('Method not implemented.')
|
|
46
63
|
}
|
|
47
64
|
|
|
48
|
-
blockByNumber(_blockNumber:
|
|
65
|
+
blockByNumber(_blockNumber: number): Promisable<SignedHydratedBlock | null> {
|
|
66
|
+
throw new Error('Method not implemented.')
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
blocksByHash(_hash: Hash, _limit?: number): Promisable<SignedHydratedBlock[]> {
|
|
70
|
+
throw new Error('Method not implemented.')
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
chainId(): Promisable<Address> {
|
|
74
|
+
throw new Error('Method not implemented.')
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
chains(): Promisable<object> {
|
|
49
78
|
throw new Error('Method not implemented.')
|
|
50
79
|
}
|
|
51
80
|
|
|
52
|
-
|
|
81
|
+
currentBlock(): Promisable<SignedHydratedBlock> {
|
|
82
|
+
throw new Error('Method not implemented.')
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
currentBlockHash(): Promisable<Hash> {
|
|
86
|
+
throw new Error('Method not implemented.')
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
currentBlockNumber(): Promisable<number> {
|
|
90
|
+
throw new Error('Method not implemented.')
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
permissions(): Promisable<Record<string, object>> {
|
|
53
94
|
throw new Error('Method not implemented.')
|
|
54
95
|
}
|
|
55
96
|
|
|
@@ -66,6 +107,14 @@ export class NetworkProvider implements XyoProvider {
|
|
|
66
107
|
return hydratedBlocks
|
|
67
108
|
}
|
|
68
109
|
|
|
110
|
+
requestPermissions(_permissions: object): Promisable<object> {
|
|
111
|
+
throw new Error('Method not implemented.')
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
revokePermissions(_permissions: object): Promisable<object> {
|
|
115
|
+
throw new Error('Method not implemented.')
|
|
116
|
+
}
|
|
117
|
+
|
|
69
118
|
sendTransaction(_transaction: SignedHydratedTransaction): Promisable<Hash> {
|
|
70
119
|
throw new Error('Method not implemented.')
|
|
71
120
|
}
|
|
@@ -74,15 +123,19 @@ export class NetworkProvider implements XyoProvider {
|
|
|
74
123
|
throw new Error('Method not implemented.')
|
|
75
124
|
}
|
|
76
125
|
|
|
77
|
-
|
|
126
|
+
switchChain(_chain: Address): Promisable<void> {
|
|
127
|
+
throw new Error('Method not implemented.')
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
transactionByBlockHashAndIndex(_blockHash: Hash, _transactionIndex: number): Promisable<SignedHydratedTransaction | null> {
|
|
78
131
|
throw new Error('Method not implemented.')
|
|
79
132
|
}
|
|
80
133
|
|
|
81
|
-
transactionByBlockNumberAndIndex(_blockNumber:
|
|
134
|
+
transactionByBlockNumberAndIndex(_blockNumber: number, _transactionIndex: number): Promisable<SignedHydratedTransaction | null> {
|
|
82
135
|
throw new Error('Method not implemented.')
|
|
83
136
|
}
|
|
84
137
|
|
|
85
|
-
transactionByHash(_transactionHash: Hash): Promisable<SignedHydratedTransaction |
|
|
138
|
+
transactionByHash(_transactionHash: Hash): Promisable<SignedHydratedTransaction | null> {
|
|
86
139
|
throw new Error('Method not implemented.')
|
|
87
140
|
}
|
|
88
141
|
|