@xyo-network/react-chain-network 1.6.1 → 1.6.3
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 +98 -98
- package/dist/browser/index.mjs.map +1 -1
- package/dist/types/components/status/NetworkStatus.d.ts +7 -0
- package/dist/types/components/status/NetworkStatus.d.ts.map +1 -0
- package/dist/types/components/status/index.d.ts +1 -0
- package/dist/types/components/status/index.d.ts.map +1 -1
- package/dist/types/context/network/context.d.ts +3 -3
- package/dist/types/context/network/state.d.ts +1 -1
- package/dist/types/context/network/state.d.ts.map +1 -1
- package/dist/types/context/network/use.d.ts +1 -1
- package/dist/types/context/network/use.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +3 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/provider/index.d.ts +6 -0
- package/dist/types/hooks/provider/index.d.ts.map +1 -0
- package/dist/types/hooks/provider/useActiveNetworkCurrentBlock.d.ts +2 -0
- package/dist/types/hooks/provider/useActiveNetworkCurrentBlock.d.ts.map +1 -0
- package/dist/types/hooks/provider/useActiveNetworkHostViewer.d.ts +2 -0
- package/dist/types/hooks/provider/useActiveNetworkHostViewer.d.ts.map +1 -0
- package/dist/types/hooks/provider/useActiveNetworkNetwork.d.ts +2 -0
- package/dist/types/hooks/provider/useActiveNetworkNetwork.d.ts.map +1 -0
- package/dist/types/hooks/provider/useActiveNetworkRunner.d.ts +2 -0
- package/dist/types/hooks/provider/useActiveNetworkRunner.d.ts.map +1 -0
- package/dist/types/hooks/provider/useActiveNetworkViewer.d.ts +2 -0
- package/dist/types/hooks/provider/useActiveNetworkViewer.d.ts.map +1 -0
- package/dist/types/hooks/status/index.d.ts +2 -0
- package/dist/types/hooks/status/index.d.ts.map +1 -0
- package/dist/types/hooks/status/usePollNetworkStatus.d.ts +3 -0
- package/dist/types/hooks/status/usePollNetworkStatus.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +11 -22
- package/src/components/status/NetworkStatus.tsx +21 -0
- package/src/components/status/index.ts +1 -0
- package/src/context/network/Provider.tsx +2 -2
- package/src/context/network/state.ts +1 -1
- package/src/context/network/use.ts +1 -1
- package/src/hooks/index.ts +2 -0
- package/src/hooks/provider/index.ts +5 -0
- package/src/hooks/provider/useActiveNetworkCurrentBlock.ts +10 -0
- package/src/hooks/provider/useActiveNetworkHostViewer.ts +9 -0
- package/src/hooks/provider/useActiveNetworkNetwork.ts +9 -0
- package/src/hooks/provider/useActiveNetworkRunner.ts +10 -0
- package/src/hooks/provider/useActiveNetworkViewer.ts +9 -0
- package/src/hooks/status/index.ts +1 -0
- package/src/hooks/status/usePollNetworkStatus.ts +41 -0
- package/src/index.ts +1 -2
- package/dist/types/helpers/Networks.d.ts +0 -10
- package/dist/types/helpers/Networks.d.ts.map +0 -1
- package/dist/types/helpers/getNetworkNode.d.ts +0 -3
- package/dist/types/helpers/getNetworkNode.d.ts.map +0 -1
- package/dist/types/helpers/getNetworkNodes.d.ts +0 -4
- package/dist/types/helpers/getNetworkNodes.d.ts.map +0 -1
- package/dist/types/helpers/index.d.ts +0 -4
- package/dist/types/helpers/index.d.ts.map +0 -1
- package/dist/types/helpers/initNetworkNode.d.ts +0 -5
- package/dist/types/helpers/initNetworkNode.d.ts.map +0 -1
- package/dist/types/helpers/manifest/index.d.ts +0 -2
- package/dist/types/helpers/manifest/index.d.ts.map +0 -1
- package/dist/types/helpers/manifest/networkManifest.d.ts +0 -6
- package/dist/types/helpers/manifest/networkManifest.d.ts.map +0 -1
- package/dist/types/images/icons/index.d.ts +0 -5
- package/dist/types/images/icons/index.d.ts.map +0 -1
- package/dist/types/images/icons/local/index.d.ts +0 -4
- package/dist/types/images/icons/local/index.d.ts.map +0 -1
- package/dist/types/images/icons/mainnet/index.d.ts +0 -4
- package/dist/types/images/icons/mainnet/index.d.ts.map +0 -1
- package/dist/types/images/icons/sequence/index.d.ts +0 -4
- package/dist/types/images/icons/sequence/index.d.ts.map +0 -1
- package/dist/types/images/icons/xyoColorLogo.d.ts +0 -5
- package/dist/types/images/icons/xyoColorLogo.d.ts.map +0 -1
- package/dist/types/images/index.d.ts +0 -2
- package/dist/types/images/index.d.ts.map +0 -1
- package/dist/types/models/Bootstrap.d.ts +0 -45
- package/dist/types/models/Bootstrap.d.ts.map +0 -1
- package/dist/types/models/index.d.ts +0 -2
- package/dist/types/models/index.d.ts.map +0 -1
- package/src/helpers/Networks.ts +0 -41
- package/src/helpers/getNetworkNode.ts +0 -12
- package/src/helpers/getNetworkNodes.ts +0 -8
- package/src/helpers/index.ts +0 -3
- package/src/helpers/initNetworkNode.ts +0 -16
- package/src/helpers/manifest/index.ts +0 -1
- package/src/helpers/manifest/network.json +0 -17
- package/src/helpers/manifest/networkManifest.ts +0 -8
- package/src/images/icons/index.ts +0 -4
- package/src/images/icons/local/index.tsx +0 -15
- package/src/images/icons/mainnet/index.tsx +0 -15
- package/src/images/icons/sequence/index.tsx +0 -15
- package/src/images/icons/xyoColorLogo.tsx +0 -54
- package/src/images/index.ts +0 -1
- package/src/models/Bootstrap.ts +0 -53
- package/src/models/index.ts +0 -1
package/dist/browser/index.mjs
CHANGED
|
@@ -54,7 +54,7 @@ var ChainNetworkProvider = /* @__PURE__ */ __name(({ children, getActiveNetwork,
|
|
|
54
54
|
networks,
|
|
55
55
|
provided: true,
|
|
56
56
|
updateActiveNetwork,
|
|
57
|
-
|
|
57
|
+
chainNetworkError: error ?? activeNetworkError
|
|
58
58
|
}), [
|
|
59
59
|
activeNetwork,
|
|
60
60
|
networks,
|
|
@@ -64,13 +64,13 @@ var ChainNetworkProvider = /* @__PURE__ */ __name(({ children, getActiveNetwork,
|
|
|
64
64
|
value
|
|
65
65
|
}, /* @__PURE__ */ React.createElement(ErrorRender, {
|
|
66
66
|
error: error ?? activeNetworkError,
|
|
67
|
-
scope: "
|
|
67
|
+
scope: "ChainNetworkProvider"
|
|
68
68
|
}), children);
|
|
69
69
|
}, "ChainNetworkProvider");
|
|
70
70
|
|
|
71
71
|
// src/context/network/use.ts
|
|
72
72
|
import { useContextEx } from "@xylabs/react-shared";
|
|
73
|
-
var useChainNetwork = /* @__PURE__ */ __name((required = true) => useContextEx(ChainNetworkContext, "
|
|
73
|
+
var useChainNetwork = /* @__PURE__ */ __name((required = true) => useContextEx(ChainNetworkContext, "ChainNetwork", required), "useChainNetwork");
|
|
74
74
|
|
|
75
75
|
// src/components/menu/Icon.tsx
|
|
76
76
|
import { Icon } from "@mui/material";
|
|
@@ -202,115 +202,115 @@ var NetworkStatusAlert = /* @__PURE__ */ __name(({ status, ...props }) => {
|
|
|
202
202
|
})));
|
|
203
203
|
}, "NetworkStatusAlert");
|
|
204
204
|
|
|
205
|
-
// src/
|
|
206
|
-
|
|
207
|
-
var getNetworkNodes = /* @__PURE__ */ __name(() => {
|
|
208
|
-
return networkNodeMap;
|
|
209
|
-
}, "getNetworkNodes");
|
|
205
|
+
// src/components/status/NetworkStatus.tsx
|
|
206
|
+
import React7 from "react";
|
|
210
207
|
|
|
211
|
-
// src/
|
|
212
|
-
import {
|
|
213
|
-
|
|
214
|
-
|
|
208
|
+
// src/hooks/provider/useActiveNetworkCurrentBlock.ts
|
|
209
|
+
import { useCurrentBlockBase } from "@xyo-network/react-chain-provider";
|
|
210
|
+
var useActiveNetworkCurrentBlock = /* @__PURE__ */ __name((refresh = 1) => {
|
|
211
|
+
const { activeNetwork } = useChainNetwork();
|
|
212
|
+
const currentBlock = useCurrentBlockBase(refresh, activeNetwork?.id, activeNetwork?.url);
|
|
213
|
+
return currentBlock;
|
|
214
|
+
}, "useActiveNetworkCurrentBlock");
|
|
215
215
|
|
|
216
|
-
// src/
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
name: "Network",
|
|
224
|
-
schema: "network.xyo.node.config"
|
|
225
|
-
},
|
|
226
|
-
modules: {
|
|
227
|
-
private: [],
|
|
228
|
-
public: []
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
],
|
|
232
|
-
schema: "network.xyo.manifest"
|
|
233
|
-
};
|
|
216
|
+
// src/hooks/provider/useActiveNetworkHostViewer.ts
|
|
217
|
+
import { useHostViewerBase } from "@xyo-network/react-chain-provider";
|
|
218
|
+
var useActiveNetworkHostViewer = /* @__PURE__ */ __name(() => {
|
|
219
|
+
const { activeNetwork } = useChainNetwork();
|
|
220
|
+
const hostViewer = useHostViewerBase(activeNetwork?.id);
|
|
221
|
+
return hostViewer;
|
|
222
|
+
}, "useActiveNetworkHostViewer");
|
|
234
223
|
|
|
235
|
-
// src/
|
|
236
|
-
|
|
224
|
+
// src/hooks/provider/useActiveNetworkNetwork.ts
|
|
225
|
+
import { useNetworkBase } from "@xyo-network/react-chain-provider";
|
|
226
|
+
var useActiveNetworkNetwork = /* @__PURE__ */ __name(() => {
|
|
227
|
+
const { activeNetwork } = useChainNetwork();
|
|
228
|
+
const network = useNetworkBase(activeNetwork?.id);
|
|
229
|
+
return network;
|
|
230
|
+
}, "useActiveNetworkNetwork");
|
|
237
231
|
|
|
238
|
-
// src/
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
232
|
+
// src/hooks/provider/useActiveNetworkRunner.ts
|
|
233
|
+
import { useRunnerBase } from "@xyo-network/react-chain-provider";
|
|
234
|
+
var useActiveNetworkRunner = /* @__PURE__ */ __name(() => {
|
|
235
|
+
const { activeNetwork } = useChainNetwork();
|
|
236
|
+
const runner = useRunnerBase(activeNetwork?.url);
|
|
237
|
+
return runner;
|
|
238
|
+
}, "useActiveNetworkRunner");
|
|
244
239
|
|
|
245
|
-
// src/
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}, "initNetworkNode");
|
|
240
|
+
// src/hooks/provider/useActiveNetworkViewer.ts
|
|
241
|
+
import { useViewerBase } from "@xyo-network/react-chain-provider";
|
|
242
|
+
var useActiveNetworkViewer = /* @__PURE__ */ __name(() => {
|
|
243
|
+
const { activeNetwork } = useChainNetwork();
|
|
244
|
+
const viewer = useViewerBase(activeNetwork?.id, activeNetwork?.url);
|
|
245
|
+
return viewer;
|
|
246
|
+
}, "useActiveNetworkViewer");
|
|
253
247
|
|
|
254
|
-
// src/
|
|
255
|
-
import {
|
|
256
|
-
import {
|
|
257
|
-
|
|
258
|
-
var
|
|
259
|
-
var
|
|
248
|
+
// src/hooks/status/usePollNetworkStatus.ts
|
|
249
|
+
import { delay } from "@xylabs/delay";
|
|
250
|
+
import { isUndefined } from "@xylabs/typeof";
|
|
251
|
+
import { useEffect, useState as useState3 } from "react";
|
|
252
|
+
var STATUS_CHECK_INTERVAL = 1e4;
|
|
253
|
+
var usePollNetworkStatus = /* @__PURE__ */ __name(() => {
|
|
254
|
+
const network = useActiveNetworkNetwork();
|
|
255
|
+
const [networkStatus, setNetworkStatus] = useState3();
|
|
256
|
+
const [networkStatusError, setNetworkStatusError] = useState3();
|
|
257
|
+
useEffect(() => {
|
|
258
|
+
let checkNetwork = true;
|
|
259
|
+
void (async () => {
|
|
260
|
+
if (isUndefined(network)) return;
|
|
261
|
+
while (checkNetwork) {
|
|
262
|
+
try {
|
|
263
|
+
const response = await network.status();
|
|
264
|
+
setNetworkStatus(response);
|
|
265
|
+
setNetworkStatusError(void 0);
|
|
266
|
+
} catch (error) {
|
|
267
|
+
console.error("Error fetching network status:", error);
|
|
268
|
+
setNetworkStatus(void 0);
|
|
269
|
+
setNetworkStatusError(error);
|
|
270
|
+
}
|
|
271
|
+
await delay(STATUS_CHECK_INTERVAL);
|
|
272
|
+
}
|
|
273
|
+
})();
|
|
274
|
+
return () => {
|
|
275
|
+
checkNetwork = false;
|
|
276
|
+
};
|
|
277
|
+
}, [
|
|
278
|
+
network
|
|
279
|
+
]);
|
|
280
|
+
return [
|
|
281
|
+
networkStatus,
|
|
282
|
+
networkStatusError
|
|
283
|
+
];
|
|
284
|
+
}, "usePollNetworkStatus");
|
|
260
285
|
|
|
261
|
-
// src/
|
|
262
|
-
var
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
// icon: SequenceNetworkIconString,
|
|
275
|
-
id: "sequence",
|
|
276
|
-
name: "Sequence",
|
|
277
|
-
schema: NetworkBootstrapSchema,
|
|
278
|
-
symbol: "XL1",
|
|
279
|
-
url: "https://beta.api.chain.xyo.network",
|
|
280
|
-
explorerUrl: "https://beta.explore.xyo.network"
|
|
281
|
-
};
|
|
282
|
-
var LocalNetwork = {
|
|
283
|
-
description: "Local Node",
|
|
284
|
-
// icon: LocalNetworkIconString,
|
|
285
|
-
id: "local",
|
|
286
|
-
name: "Local",
|
|
287
|
-
schema: NetworkBootstrapSchema,
|
|
288
|
-
symbol: "XL1",
|
|
289
|
-
url: "http://localhost:8080",
|
|
290
|
-
explorerUrl: "http://localhost:3000"
|
|
291
|
-
};
|
|
292
|
-
var DefaultNetworks = [
|
|
293
|
-
MainNetwork,
|
|
294
|
-
SequenceNetwork2,
|
|
295
|
-
LocalNetwork
|
|
296
|
-
];
|
|
286
|
+
// src/components/status/NetworkStatus.tsx
|
|
287
|
+
var validNetworkStates = /* @__PURE__ */ new Set([
|
|
288
|
+
"online",
|
|
289
|
+
"unknown"
|
|
290
|
+
]);
|
|
291
|
+
var NetworkStatus = /* @__PURE__ */ __name(({ children, ...props }) => {
|
|
292
|
+
const [networkStatus] = usePollNetworkStatus();
|
|
293
|
+
const showStatus = networkStatus && !validNetworkStates.has(networkStatus.state);
|
|
294
|
+
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, showStatus && /* @__PURE__ */ React7.createElement(NetworkStatusAlert, {
|
|
295
|
+
status: networkStatus,
|
|
296
|
+
...props
|
|
297
|
+
}), children);
|
|
298
|
+
}, "NetworkStatus");
|
|
297
299
|
export {
|
|
298
300
|
ActiveNetworkAvatar,
|
|
299
301
|
ChainNetworkContext,
|
|
300
302
|
ChainNetworkProvider,
|
|
301
|
-
DefaultNetworks,
|
|
302
|
-
LocalNetwork,
|
|
303
|
-
MainNetwork,
|
|
304
303
|
NetworkAvatar,
|
|
305
|
-
NetworkBootstrapSchema,
|
|
306
304
|
NetworkIcon,
|
|
307
305
|
NetworkMenuItem,
|
|
306
|
+
NetworkStatus,
|
|
308
307
|
NetworkStatusAlert,
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
useChainNetwork
|
|
308
|
+
useActiveNetworkCurrentBlock,
|
|
309
|
+
useActiveNetworkHostViewer,
|
|
310
|
+
useActiveNetworkNetwork,
|
|
311
|
+
useActiveNetworkRunner,
|
|
312
|
+
useActiveNetworkViewer,
|
|
313
|
+
useChainNetwork,
|
|
314
|
+
usePollNetworkStatus
|
|
315
315
|
};
|
|
316
316
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/menu/Avatar.tsx","../../src/context/network/context.ts","../../src/context/network/Provider.tsx","../../src/context/network/use.ts","../../src/components/menu/Icon.tsx","../../src/components/menu/MenuItem.tsx","../../src/components/status/Alert.tsx","../../src/components/status/Dialog.tsx","../../src/helpers/getNetworkNodes.ts","../../src/helpers/getNetworkNode.ts","../../src/helpers/manifest/network.json","../../src/helpers/manifest/networkManifest.ts","../../src/helpers/initNetworkNode.ts","../../src/models/Bootstrap.ts","../../src/helpers/Networks.ts"],"sourcesContent":["import type { AvatarProps } from '@mui/material'\nimport { Avatar } from '@mui/material'\nimport React from 'react'\n\nimport { useChainNetwork } from '../../context/index.ts'\nimport { NetworkIcon } from './Icon.tsx'\n\nexport const NetworkAvatar: React.FC<AvatarProps & { icon?: string; name?: string }> = ({\n icon, name, ...props\n}) => {\n return (\n <Avatar\n sx={{\n backgroundColor: 'white', height: 30, width: 30,\n }}\n alt={name}\n {...props}\n >\n <NetworkIcon icon={icon} />\n </Avatar>\n )\n}\n\nexport const ActiveNetworkAvatar: React.FC<AvatarProps> = (props) => {\n const { activeNetwork } = useChainNetwork()\n\n return (\n <NetworkAvatar\n icon={activeNetwork?.icon}\n name={activeNetwork?.name}\n {...props}\n />\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 { NetworkBootstrap } from '@xyo-network/chain-network-model'\nimport { SequenceNetwork } from '@xyo-network/chain-network-model'\nimport type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useMemo, useState,\n} from 'react'\n\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 === SequenceNetwork.id) ?? networks[1]\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 if (!network) {\n setError(new Error(`Network with id ${networkId} not found`))\n return\n }\n // set internally\n setActiveNetwork(network)\n // set externally\n void setActiveNetworkExternal?.(networkId)\n }, [networks])\n\n const value: ChainNetworkState = useMemo(() => ({\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 { useContextEx } from '@xylabs/react-shared'\n\nimport { ChainNetworkContext } from './context.ts'\n\nexport const useChainNetwork = (required = true) => useContextEx(ChainNetworkContext, 'WalletNetwork', required)\n","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 !== undefined) {\n ref.innerHTML = icon\n }\n }}\n {...props}\n />\n )\n}\n","import type { MenuItemProps } from '@mui/material'\nimport { ListItemText } from '@mui/material'\nimport type { NetworkBootstrap } from '@xyo-network/chain-network-model'\nimport { ActiveMenuItem } from '@xyo-network/react-chain-shared'\nimport type { NetworkId } from '@xyo-network/xl1-protocol'\nimport type { MouseEvent as ReactMouseEvent } from 'react'\nimport React from 'react'\n\nimport { NetworkAvatar } from './Avatar.tsx'\n\nexport interface NetworkMenuItemProps extends MenuItemProps {\n active?: boolean\n network?: NetworkBootstrap\n updateActiveNetwork?: (networkId: NetworkId) => 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 <NetworkAvatar icon={network?.icon} name={network?.name} />\n <ListItemText>{network?.name}</ListItemText>\n </ActiveMenuItem>\n )\n}\n","import type { AlertProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button,\n} from '@mui/material'\nimport type { NetworkStatus } from '@xyo-network/xl1-protocol'\nimport React, { useMemo, useState } from 'react'\n\nimport { NetworkStatusDialog } from './Dialog.tsx'\n\nexport interface NetworkStatusAlertProps extends AlertProps {\n status?: NetworkStatus\n}\n\nexport const NetworkStatusAlert: React.FC<NetworkStatusAlertProps> = ({ status, ...props }) => {\n const [open, setOpen] = useState(false)\n const handleClose = () => setOpen(false)\n\n const severity = useMemo(() => {\n if (!status) return\n switch (status.state) {\n case 'online': {\n return 'success'\n }\n case 'offline': {\n return 'error'\n }\n case 'degraded': {\n return 'warning'\n }\n case 'unknown': {\n return 'error'\n }\n }\n }, [status])\n\n return (\n <Alert severity={severity} {...props}>\n <AlertTitle>{status?.description}</AlertTitle>\n {status?.updates && status.updates.length > 0 && (\n <>\n <Button color={severity} variant=\"outlined\" size=\"small\" onClick={() => setOpen(true)}>\n Updates\n </Button>\n <NetworkStatusDialog open={open} onClose={handleClose} updates={status.updates} />\n </>\n )}\n </Alert>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle, List, ListItem, Typography,\n} from '@mui/material'\nimport type { NetworkStatusUpdate } from '@xyo-network/xl1-protocol'\nimport React from 'react'\n\nexport interface NetworkStatusDialogProps extends DialogProps {\n updates: NetworkStatusUpdate[]\n}\n\nexport const NetworkStatusDialog: React.FC<NetworkStatusDialogProps> = ({ updates, ...props }) => {\n return (\n <Dialog {...props}>\n <DialogTitle>Recent Status Updates</DialogTitle>\n <DialogContent>\n <List>\n {updates.map(({\n start, end, update,\n }) => (\n <ListItem\n key={start + update}\n sx={{\n flexDirection: 'column', alignItems: 'start', pl: 0,\n }}\n >\n <Typography>\n {update}\n </Typography>\n <Typography gutterBottom sx={{ opacity: 0.75, fontSize: '.8333rem' }}>\n Start:\n {' '}\n {new Date(start).toLocaleString()}\n {' '}\n <br />\n End:\n {' '}\n {new Date(end).toLocaleString()}\n </Typography>\n </ListItem>\n ))}\n </List>\n </DialogContent>\n <DialogActions>\n <Button onClick={e => props.onClose?.(e, 'backdropClick')} color=\"primary\" variant=\"outlined\">\n Close\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import type { AttachableNodeInstance } from '@xyo-network/node-model'\n\nconst networkNodeMap = new Map<string, AttachableNodeInstance>()\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const getNetworkNodes = () => {\n return networkNodeMap\n}\n","import { ManifestWrapper } from '@xyo-network/manifest-wrapper'\nimport { ModuleFactoryLocator } from '@xyo-network/module-factory-locator'\nimport { HDWallet } from '@xyo-network/wallet'\n\nimport { NetworkNodeManifest } from './manifest/index.ts'\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const getNetworkNode = async () => {\n const wrapper = new ManifestWrapper(NetworkNodeManifest, await HDWallet.random(), new ModuleFactoryLocator())\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","import type { AttachableNodeInstance } from '@xyo-network/node-model'\n\nimport type { NetworkBootstrap } from '../models/index.ts'\nimport { getNetworkNode } from './getNetworkNode.ts'\nimport { getNetworkNodes } from './getNetworkNodes.ts'\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const initNetworkNode = async (activeNetwork: NetworkBootstrap): Promise<AttachableNodeInstance> => {\n const networkNodeMap = getNetworkNodes()\n if (networkNodeMap.has(activeNetwork.url)) return networkNodeMap.get(activeNetwork.url)!\n\n const activeNetworkNode = await getNetworkNode()\n networkNodeMap.set(activeNetwork.url, activeNetworkNode)\n\n return activeNetworkNode\n}\n","import type { Address } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type { ChainConnection, NetworkId } from '@xyo-network/xl1-protocol'\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const NetworkBootstrapSchema = 'network.xyo.network.bootstrap' as const\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport type NetworkBootstrapSchema = typeof NetworkBootstrapSchema\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\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\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport interface NetworkFields {\n /** Description of the network */\n description: string\n /** Url for accessing the network explorer */\n explorerUrl?: string\n /** string representation of the icon (svg) */\n icon?: string\n /** Machine-readable identifier */\n id: NetworkId\n schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n}\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\n/** Note: Optional Properties can be found walking the chain to the genesis block */\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {}\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport interface Network extends NetworkBootstrap {\n custom: boolean\n}\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)\n","import type { NetworkBootstrap } from '../models/index.ts'\nimport { NetworkBootstrapSchema } from '../models/index.ts'\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const MainNetwork: NetworkBootstrap = {\n description: 'Main Network for XYO Layer 1',\n // icon: MainNetworkIconString,\n id: 'mainnet',\n name: 'Mainnet',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://api.chain.xyo.network',\n explorerUrl: 'https://explore.xyo.network',\n}\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const SequenceNetwork: NetworkBootstrap = {\n description: 'Test Network for XYO Layer 1',\n // icon: SequenceNetworkIconString,\n id: 'sequence',\n name: 'Sequence',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'https://beta.api.chain.xyo.network',\n explorerUrl: 'https://beta.explore.xyo.network',\n}\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const LocalNetwork: NetworkBootstrap = {\n description: 'Local Node',\n // icon: LocalNetworkIconString,\n id: 'local',\n name: 'Local',\n schema: NetworkBootstrapSchema,\n symbol: 'XL1',\n url: 'http://localhost:8080',\n explorerUrl: 'http://localhost:3000',\n}\n\n/** @deprecated - use @xyo-network/chain-network-model instead */\nexport const DefaultNetworks: NetworkBootstrap[] = [MainNetwork, SequenceNetwork, LocalNetwork]\n"],"mappings":"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","names":["Avatar","React","createContextEx","ChainNetworkContext","ErrorRender","usePromise","SequenceNetwork","React","useCallback","useMemo","useState","ChainNetworkProvider","children","getActiveNetwork","networks","setActiveNetwork","setActiveNetworkExternal","activeNetwork","useState","error","setError","resolvedActiveNetwork","activeNetworkError","usePromise","find","network","id","defaultNetwork","SequenceNetwork","useMemo","updateActiveNetwork","useCallback","networkId","undefined","Error","value","provided","walletNetworkError","ChainNetworkContext","ErrorRender","scope","useContextEx","useChainNetwork","required","useContextEx","ChainNetworkContext","Icon","React","NetworkIcon","icon","props","React","Icon","sx","display","alignItems","justifyContent","ref","undefined","innerHTML","NetworkAvatar","icon","name","props","React","Avatar","sx","backgroundColor","height","width","alt","NetworkIcon","ActiveNetworkAvatar","activeNetwork","useChainNetwork","ListItemText","ActiveMenuItem","React","NetworkMenuItem","active","network","onClick","updateActiveNetwork","props","handleClick","event","undefined","Error","id","React","ActiveMenuItem","title","name","disableRipple","NetworkAvatar","icon","ListItemText","Alert","AlertTitle","Button","React","useMemo","useState","Button","Dialog","DialogActions","DialogContent","DialogTitle","List","ListItem","Typography","React","NetworkStatusDialog","updates","props","React","Dialog","DialogTitle","DialogContent","List","map","start","end","update","ListItem","key","sx","flexDirection","alignItems","pl","Typography","gutterBottom","opacity","fontSize","Date","toLocaleString","br","DialogActions","Button","onClick","e","onClose","color","variant","NetworkStatusAlert","status","props","open","setOpen","useState","handleClose","severity","useMemo","state","React","Alert","AlertTitle","description","updates","length","Button","color","variant","size","onClick","NetworkStatusDialog","onClose","networkNodeMap","Map","getNetworkNodes","ManifestWrapper","ModuleFactoryLocator","HDWallet","NetworkNodeManifest","node","getNetworkNode","wrapper","ManifestWrapper","NetworkNodeManifest","HDWallet","random","ModuleFactoryLocator","node","loadNodes","initNetworkNode","activeNetwork","networkNodeMap","getNetworkNodes","has","url","get","activeNetworkNode","getNetworkNode","set","AsObjectFactory","isPayloadOfSchemaType","NetworkBootstrapSchema","isNetworkBootstrap","asOptionalNetwork","createOptional","MainNetwork","description","id","name","schema","NetworkBootstrapSchema","symbol","url","explorerUrl","SequenceNetwork","LocalNetwork","DefaultNetworks"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/menu/Avatar.tsx","../../src/context/network/context.ts","../../src/context/network/Provider.tsx","../../src/context/network/use.ts","../../src/components/menu/Icon.tsx","../../src/components/menu/MenuItem.tsx","../../src/components/status/Alert.tsx","../../src/components/status/Dialog.tsx","../../src/components/status/NetworkStatus.tsx","../../src/hooks/provider/useActiveNetworkCurrentBlock.ts","../../src/hooks/provider/useActiveNetworkHostViewer.ts","../../src/hooks/provider/useActiveNetworkNetwork.ts","../../src/hooks/provider/useActiveNetworkRunner.ts","../../src/hooks/provider/useActiveNetworkViewer.ts","../../src/hooks/status/usePollNetworkStatus.ts"],"sourcesContent":["import type { AvatarProps } from '@mui/material'\nimport { Avatar } from '@mui/material'\nimport React from 'react'\n\nimport { useChainNetwork } from '../../context/index.ts'\nimport { NetworkIcon } from './Icon.tsx'\n\nexport const NetworkAvatar: React.FC<AvatarProps & { icon?: string; name?: string }> = ({\n icon, name, ...props\n}) => {\n return (\n <Avatar\n sx={{\n backgroundColor: 'white', height: 30, width: 30,\n }}\n alt={name}\n {...props}\n >\n <NetworkIcon icon={icon} />\n </Avatar>\n )\n}\n\nexport const ActiveNetworkAvatar: React.FC<AvatarProps> = (props) => {\n const { activeNetwork } = useChainNetwork()\n\n return (\n <NetworkAvatar\n icon={activeNetwork?.icon}\n name={activeNetwork?.name}\n {...props}\n />\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 { NetworkBootstrap } from '@xyo-network/chain-network-model'\nimport { SequenceNetwork } from '@xyo-network/chain-network-model'\nimport type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useMemo, useState,\n} from 'react'\n\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 === SequenceNetwork.id) ?? networks[1]\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 if (!network) {\n setError(new Error(`Network with id ${networkId} not found`))\n return\n }\n // set internally\n setActiveNetwork(network)\n // set externally\n void setActiveNetworkExternal?.(networkId)\n }, [networks])\n\n const value: ChainNetworkState = useMemo(() => ({\n activeNetwork,\n networks,\n provided: true,\n updateActiveNetwork,\n chainNetworkError: error ?? activeNetworkError,\n }), [activeNetwork, networks, updateActiveNetwork])\n\n return (\n <ChainNetworkContext value={value}>\n <ErrorRender error={error ?? activeNetworkError} scope=\"ChainNetworkProvider\" />\n {children}\n </ChainNetworkContext>\n )\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { ChainNetworkContext } from './context.ts'\n\nexport const useChainNetwork = (required = true) => useContextEx(ChainNetworkContext, 'ChainNetwork', required)\n","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 !== undefined) {\n ref.innerHTML = icon\n }\n }}\n {...props}\n />\n )\n}\n","import type { MenuItemProps } from '@mui/material'\nimport { ListItemText } from '@mui/material'\nimport type { NetworkBootstrap } from '@xyo-network/chain-network-model'\nimport { ActiveMenuItem } from '@xyo-network/react-chain-shared'\nimport type { NetworkId } from '@xyo-network/xl1-protocol'\nimport type { MouseEvent as ReactMouseEvent } from 'react'\nimport React from 'react'\n\nimport { NetworkAvatar } from './Avatar.tsx'\n\nexport interface NetworkMenuItemProps extends MenuItemProps {\n active?: boolean\n network?: NetworkBootstrap\n updateActiveNetwork?: (networkId: NetworkId) => 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 <NetworkAvatar icon={network?.icon} name={network?.name} />\n <ListItemText>{network?.name}</ListItemText>\n </ActiveMenuItem>\n )\n}\n","import type { AlertProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button,\n} from '@mui/material'\nimport type { NetworkStatus } from '@xyo-network/xl1-protocol'\nimport React, { useMemo, useState } from 'react'\n\nimport { NetworkStatusDialog } from './Dialog.tsx'\n\nexport interface NetworkStatusAlertProps extends AlertProps {\n status?: NetworkStatus\n}\n\nexport const NetworkStatusAlert: React.FC<NetworkStatusAlertProps> = ({ status, ...props }) => {\n const [open, setOpen] = useState(false)\n const handleClose = () => setOpen(false)\n\n const severity = useMemo(() => {\n if (!status) return\n switch (status.state) {\n case 'online': {\n return 'success'\n }\n case 'offline': {\n return 'error'\n }\n case 'degraded': {\n return 'warning'\n }\n case 'unknown': {\n return 'error'\n }\n }\n }, [status])\n\n return (\n <Alert severity={severity} {...props}>\n <AlertTitle>{status?.description}</AlertTitle>\n {status?.updates && status.updates.length > 0 && (\n <>\n <Button color={severity} variant=\"outlined\" size=\"small\" onClick={() => setOpen(true)}>\n Updates\n </Button>\n <NetworkStatusDialog open={open} onClose={handleClose} updates={status.updates} />\n </>\n )}\n </Alert>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle, List, ListItem, Typography,\n} from '@mui/material'\nimport type { NetworkStatusUpdate } from '@xyo-network/xl1-protocol'\nimport React from 'react'\n\nexport interface NetworkStatusDialogProps extends DialogProps {\n updates: NetworkStatusUpdate[]\n}\n\nexport const NetworkStatusDialog: React.FC<NetworkStatusDialogProps> = ({ updates, ...props }) => {\n return (\n <Dialog {...props}>\n <DialogTitle>Recent Status Updates</DialogTitle>\n <DialogContent>\n <List>\n {updates.map(({\n start, end, update,\n }) => (\n <ListItem\n key={start + update}\n sx={{\n flexDirection: 'column', alignItems: 'start', pl: 0,\n }}\n >\n <Typography>\n {update}\n </Typography>\n <Typography gutterBottom sx={{ opacity: 0.75, fontSize: '.8333rem' }}>\n Start:\n {' '}\n {new Date(start).toLocaleString()}\n {' '}\n <br />\n End:\n {' '}\n {new Date(end).toLocaleString()}\n </Typography>\n </ListItem>\n ))}\n </List>\n </DialogContent>\n <DialogActions>\n <Button onClick={e => props.onClose?.(e, 'backdropClick')} color=\"primary\" variant=\"outlined\">\n Close\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import type { AlertProps } from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { usePollNetworkStatus } from '../../hooks/index.ts'\nimport { NetworkStatusAlert } from './Alert.tsx'\n\nconst validNetworkStates = new Set(['online', 'unknown'])\n\nexport interface NetworkStatusProps extends PropsWithChildren<AlertProps> {}\n\nexport const NetworkStatus: React.FC<NetworkStatusProps> = ({ children, ...props }) => {\n const [networkStatus] = usePollNetworkStatus()\n const showStatus = networkStatus && !validNetworkStates.has(networkStatus.state)\n return (\n <>\n {showStatus && <NetworkStatusAlert status={networkStatus} {...props} />}\n {children}\n </>\n )\n}\n","import { useCurrentBlockBase } from '@xyo-network/react-chain-provider'\n\nimport { useChainNetwork } from '../../context/index.ts'\n\nexport const useActiveNetworkCurrentBlock = (refresh = 1) => {\n const { activeNetwork } = useChainNetwork()\n const currentBlock = useCurrentBlockBase(refresh, activeNetwork?.id, activeNetwork?.url)\n\n return currentBlock\n}\n","import { useHostViewerBase } from '@xyo-network/react-chain-provider'\n\nimport { useChainNetwork } from '../../context/index.ts'\n\nexport const useActiveNetworkHostViewer = () => {\n const { activeNetwork } = useChainNetwork()\n const hostViewer = useHostViewerBase(activeNetwork?.id)\n return hostViewer\n}\n","import { useNetworkBase } from '@xyo-network/react-chain-provider'\n\nimport { useChainNetwork } from '../../context/index.ts'\n\nexport const useActiveNetworkNetwork = () => {\n const { activeNetwork } = useChainNetwork()\n const network = useNetworkBase(activeNetwork?.id)\n return network\n}\n","import { useRunnerBase } from '@xyo-network/react-chain-provider'\n\nimport { useChainNetwork } from '../../context/index.ts'\n\nexport const useActiveNetworkRunner = () => {\n const { activeNetwork } = useChainNetwork()\n const runner = useRunnerBase(activeNetwork?.url)\n\n return runner\n}\n","import { useViewerBase } from '@xyo-network/react-chain-provider'\n\nimport { useChainNetwork } from '../../context/index.ts'\n\nexport const useActiveNetworkViewer = () => {\n const { activeNetwork } = useChainNetwork()\n const viewer = useViewerBase(activeNetwork?.id, activeNetwork?.url)\n return viewer\n}\n","import { delay } from '@xylabs/delay'\nimport { isUndefined } from '@xylabs/typeof'\nimport type { NetworkStatus } from '@xyo-network/xl1-protocol'\nimport { useEffect, useState } from 'react'\n\nimport { useActiveNetworkNetwork } from '../index.ts'\n\nconst STATUS_CHECK_INTERVAL = 10_000\n\nexport const usePollNetworkStatus = () => {\n const network = useActiveNetworkNetwork()\n const [networkStatus, setNetworkStatus] = useState<NetworkStatus>()\n const [networkStatusError, setNetworkStatusError] = useState<Error>()\n\n // Check network status every 10 seconds\n useEffect(() => {\n let checkNetwork = true\n void (async () => {\n if (isUndefined(network)) return\n while (checkNetwork) {\n try {\n const response = await network.status()\n setNetworkStatus(response)\n setNetworkStatusError(undefined)\n } catch (error) {\n console.error('Error fetching network status:', error)\n setNetworkStatus(undefined)\n setNetworkStatusError(error as Error)\n }\n await delay(STATUS_CHECK_INTERVAL)\n }\n })()\n\n return () => {\n // Cleanup function to stop checking network status at the current statusUrl\n checkNetwork = false\n }\n }, [network])\n\n return [networkStatus, networkStatusError] as const\n}\n"],"mappings":"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","names":["Avatar","React","createContextEx","ChainNetworkContext","ErrorRender","usePromise","SequenceNetwork","React","useCallback","useMemo","useState","ChainNetworkProvider","children","getActiveNetwork","networks","setActiveNetwork","setActiveNetworkExternal","activeNetwork","useState","error","setError","resolvedActiveNetwork","activeNetworkError","usePromise","find","network","id","defaultNetwork","SequenceNetwork","useMemo","updateActiveNetwork","useCallback","networkId","undefined","Error","value","provided","chainNetworkError","ChainNetworkContext","ErrorRender","scope","useContextEx","useChainNetwork","required","useContextEx","ChainNetworkContext","Icon","React","NetworkIcon","icon","props","React","Icon","sx","display","alignItems","justifyContent","ref","undefined","innerHTML","NetworkAvatar","icon","name","props","React","Avatar","sx","backgroundColor","height","width","alt","NetworkIcon","ActiveNetworkAvatar","activeNetwork","useChainNetwork","ListItemText","ActiveMenuItem","React","NetworkMenuItem","active","network","onClick","updateActiveNetwork","props","handleClick","event","undefined","Error","id","React","ActiveMenuItem","title","name","disableRipple","NetworkAvatar","icon","ListItemText","Alert","AlertTitle","Button","React","useMemo","useState","Button","Dialog","DialogActions","DialogContent","DialogTitle","List","ListItem","Typography","React","NetworkStatusDialog","updates","props","React","Dialog","DialogTitle","DialogContent","List","map","start","end","update","ListItem","key","sx","flexDirection","alignItems","pl","Typography","gutterBottom","opacity","fontSize","Date","toLocaleString","br","DialogActions","Button","onClick","e","onClose","color","variant","NetworkStatusAlert","status","props","open","setOpen","useState","handleClose","severity","useMemo","state","React","Alert","AlertTitle","description","updates","length","Button","color","variant","size","onClick","NetworkStatusDialog","onClose","React","useCurrentBlockBase","useActiveNetworkCurrentBlock","refresh","activeNetwork","useChainNetwork","currentBlock","useCurrentBlockBase","id","url","useHostViewerBase","useActiveNetworkHostViewer","activeNetwork","useChainNetwork","hostViewer","useHostViewerBase","id","useNetworkBase","useActiveNetworkNetwork","activeNetwork","useChainNetwork","network","useNetworkBase","id","useRunnerBase","useActiveNetworkRunner","activeNetwork","useChainNetwork","runner","useRunnerBase","url","useViewerBase","useActiveNetworkViewer","activeNetwork","useChainNetwork","viewer","useViewerBase","id","url","delay","isUndefined","useEffect","useState","STATUS_CHECK_INTERVAL","usePollNetworkStatus","network","useActiveNetworkNetwork","networkStatus","setNetworkStatus","useState","networkStatusError","setNetworkStatusError","useEffect","checkNetwork","isUndefined","response","status","undefined","error","console","delay","validNetworkStates","Set","NetworkStatus","children","props","networkStatus","usePollNetworkStatus","showStatus","has","state","React","NetworkStatusAlert","status"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AlertProps } from '@mui/material';
|
|
2
|
+
import type { PropsWithChildren } from 'react';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
export interface NetworkStatusProps extends PropsWithChildren<AlertProps> {
|
|
5
|
+
}
|
|
6
|
+
export declare const NetworkStatus: React.FC<NetworkStatusProps>;
|
|
7
|
+
//# sourceMappingURL=NetworkStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkStatus.d.ts","sourceRoot":"","sources":["../../../../src/components/status/NetworkStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB,CAAC,UAAU,CAAC;CAAG;AAE5E,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAStD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/status/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/status/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
export declare const ChainNetworkContext: import("react").Context<({
|
|
2
2
|
activeNetwork?: import("@xyo-network/chain-network-model").NetworkBootstrap;
|
|
3
|
+
chainNetworkError?: Error;
|
|
3
4
|
networks?: import("@xyo-network/chain-network-model").NetworkBootstrap[];
|
|
4
5
|
updateActiveNetwork?: (networkId: import("@xyo-network/chain-network-model").NetworkBootstrap["id"]) => void;
|
|
5
|
-
walletNetworkError?: Error;
|
|
6
6
|
} & {
|
|
7
7
|
provided: true;
|
|
8
8
|
}) | (import("@xylabs/react-shared").FixedValues<import("@xylabs/react-shared").ProvidedContextExState<{
|
|
9
9
|
activeNetwork?: import("@xyo-network/chain-network-model").NetworkBootstrap;
|
|
10
|
+
chainNetworkError?: Error;
|
|
10
11
|
networks?: import("@xyo-network/chain-network-model").NetworkBootstrap[];
|
|
11
12
|
updateActiveNetwork?: (networkId: import("@xyo-network/chain-network-model").NetworkBootstrap["id"]) => void;
|
|
12
|
-
walletNetworkError?: Error;
|
|
13
13
|
}>, never> & {
|
|
14
14
|
provided: false;
|
|
15
15
|
}) | (import("@xylabs/react-shared").FixedValues<import("@xylabs/react-shared").NotProvidedContextExState<{
|
|
16
16
|
activeNetwork?: import("@xyo-network/chain-network-model").NetworkBootstrap;
|
|
17
|
+
chainNetworkError?: Error;
|
|
17
18
|
networks?: import("@xyo-network/chain-network-model").NetworkBootstrap[];
|
|
18
19
|
updateActiveNetwork?: (networkId: import("@xyo-network/chain-network-model").NetworkBootstrap["id"]) => void;
|
|
19
|
-
walletNetworkError?: Error;
|
|
20
20
|
}>, never> & {
|
|
21
21
|
provided: false;
|
|
22
22
|
})>;
|
|
@@ -2,8 +2,8 @@ import type { ContextExState } from '@xylabs/react-shared';
|
|
|
2
2
|
import type { NetworkBootstrap } from '@xyo-network/chain-network-model';
|
|
3
3
|
export type ChainNetworkState = ContextExState<{
|
|
4
4
|
activeNetwork?: NetworkBootstrap;
|
|
5
|
+
chainNetworkError?: Error;
|
|
5
6
|
networks?: NetworkBootstrap[];
|
|
6
7
|
updateActiveNetwork?: (networkId: NetworkBootstrap['id']) => void;
|
|
7
|
-
walletNetworkError?: Error;
|
|
8
8
|
}>;
|
|
9
9
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/context/network/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAExE,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;IAC7C,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/context/network/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAExE,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC;IAC7C,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,iBAAiB,CAAC,EAAE,KAAK,CAAA;IACzB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;CAClE,CAAC,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const useChainNetwork: (required?: boolean) => Omit<{
|
|
2
2
|
activeNetwork?: import("@xyo-network/chain-network-model").NetworkBootstrap;
|
|
3
|
+
chainNetworkError?: Error;
|
|
3
4
|
networks?: import("@xyo-network/chain-network-model").NetworkBootstrap[];
|
|
4
5
|
updateActiveNetwork?: (networkId: import("@xyo-network/chain-network-model").NetworkBootstrap["id"]) => void;
|
|
5
|
-
walletNetworkError?: Error;
|
|
6
6
|
} & {
|
|
7
7
|
provided: true;
|
|
8
8
|
}, "provided"> | Omit<import("@xylabs/react-shared").NotProvidedContextExState<import("./state.ts").ChainNetworkState>, "provided">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/context/network/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,GAAI,kBAAe;;;;;;;
|
|
1
|
+
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/context/network/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,GAAI,kBAAe;;;;;;;mIAAgE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './useActiveNetworkCurrentBlock.ts';
|
|
2
|
+
export * from './useActiveNetworkHostViewer.ts';
|
|
3
|
+
export * from './useActiveNetworkNetwork.ts';
|
|
4
|
+
export * from './useActiveNetworkRunner.ts';
|
|
5
|
+
export * from './useActiveNetworkViewer.ts';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const useActiveNetworkCurrentBlock: (refresh?: number) => [import("@xyo-network/xl1-protocol").HydratedBlock<import("@xyo-network/xl1-protocol").BlockBoundWitness, import("@xyo-network/payload-model").Payload> | undefined, Error | undefined, import("@xylabs/react-promise").UsePromiseState | undefined];
|
|
2
|
+
//# sourceMappingURL=useActiveNetworkCurrentBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveNetworkCurrentBlock.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkCurrentBlock.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,4BAA4B,GAAI,gBAAW,yPAKvD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveNetworkHostViewer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkHostViewer.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,mEAItC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveNetworkNetwork.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkNetwork.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,mEAInC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveNetworkRunner.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkRunner.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,mEAKlC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveNetworkViewer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/provider/useActiveNetworkViewer.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,mEAIlC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/status/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePollNetworkStatus.d.ts","sourceRoot":"","sources":["../../../../src/hooks/status/usePollNetworkStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAO9D,eAAO,MAAM,oBAAoB,+DA+BhC,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/react-chain-network",
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.3",
|
|
5
5
|
"description": "XYO Layer One React SDK",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -38,40 +38,29 @@
|
|
|
38
38
|
"start": "storybook dev -p 6006"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@xylabs/
|
|
42
|
-
"@xylabs/hex": "^4.12.
|
|
43
|
-
"@xylabs/object": "^4.12.40",
|
|
44
|
-
"@xylabs/promise": "^4.12.40",
|
|
41
|
+
"@xylabs/delay": "^4.12.44",
|
|
42
|
+
"@xylabs/hex": "^4.12.44",
|
|
45
43
|
"@xylabs/react-error": "^6.3.7",
|
|
46
44
|
"@xylabs/react-promise": "^6.3.7",
|
|
47
45
|
"@xylabs/react-shared": "^6.3.7",
|
|
48
|
-
"@
|
|
49
|
-
"@xyo-network/
|
|
50
|
-
"@xyo-network/bridge-model": "^4.0.2",
|
|
51
|
-
"@xyo-network/chain-network-model": "^1.6.1",
|
|
52
|
-
"@xyo-network/chain-orchestration": "^1.6.1",
|
|
53
|
-
"@xyo-network/chain-protocol": "^1.6.1",
|
|
54
|
-
"@xyo-network/chain-services": "^1.6.1",
|
|
46
|
+
"@xylabs/typeof": "^4.12.44",
|
|
47
|
+
"@xyo-network/chain-network-model": "^1.6.3",
|
|
55
48
|
"@xyo-network/manifest-model": "^4.0.2",
|
|
56
|
-
"@xyo-network/manifest-wrapper": "^4.0.2",
|
|
57
|
-
"@xyo-network/module-factory-locator": "^4.0.2",
|
|
58
49
|
"@xyo-network/node-model": "^4.0.2",
|
|
59
|
-
"@xyo-network/payload-builder": "^4.0.2",
|
|
60
50
|
"@xyo-network/payload-model": "^4.0.2",
|
|
61
|
-
"@xyo-network/react-chain-
|
|
62
|
-
"@xyo-network/
|
|
63
|
-
"@xyo-network/xl1-protocol": "^1.6.
|
|
64
|
-
"@xyo-network/xl1-protocol-sdk": "^1.6.1"
|
|
51
|
+
"@xyo-network/react-chain-provider": "^1.6.3",
|
|
52
|
+
"@xyo-network/react-chain-shared": "^1.6.3",
|
|
53
|
+
"@xyo-network/xl1-protocol": "^1.6.1"
|
|
65
54
|
},
|
|
66
55
|
"devDependencies": {
|
|
67
56
|
"@emotion/react": "^11.14.0",
|
|
68
57
|
"@emotion/styled": "^11.14.1",
|
|
69
58
|
"@mui/icons-material": "^7.2.0",
|
|
70
59
|
"@mui/material": "^7.2.0",
|
|
71
|
-
"@storybook/react-vite": "^9.0.
|
|
60
|
+
"@storybook/react-vite": "^9.0.16",
|
|
72
61
|
"@types/react": "^19.1.8",
|
|
73
|
-
"@xylabs/ts-scripts-yarn3": "^6.5.
|
|
74
|
-
"@xylabs/tsconfig-react": "^6.5.
|
|
62
|
+
"@xylabs/ts-scripts-yarn3": "^6.5.18",
|
|
63
|
+
"@xylabs/tsconfig-react": "^6.5.18",
|
|
75
64
|
"knip": "^5.61.3",
|
|
76
65
|
"react": "^19.1.0",
|
|
77
66
|
"react-dom": "^19.1.0",
|