@xyo-network/react-chain-network 1.6.0 → 1.6.2

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.
Files changed (110) hide show
  1. package/dist/browser/index.mjs +127 -267
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/types/components/menu/MenuItem.d.ts +1 -1
  4. package/dist/types/components/menu/MenuItem.d.ts.map +1 -1
  5. package/dist/types/components/status/NetworkStatus.d.ts +7 -0
  6. package/dist/types/components/status/NetworkStatus.d.ts.map +1 -0
  7. package/dist/types/components/status/index.d.ts +1 -0
  8. package/dist/types/components/status/index.d.ts.map +1 -1
  9. package/dist/types/context/network/Provider.d.ts +1 -1
  10. package/dist/types/context/network/Provider.d.ts.map +1 -1
  11. package/dist/types/context/network/context.d.ts +12 -12
  12. package/dist/types/context/network/state.d.ts +2 -2
  13. package/dist/types/context/network/state.d.ts.map +1 -1
  14. package/dist/types/context/network/use.d.ts +4 -4
  15. package/dist/types/context/network/use.d.ts.map +1 -1
  16. package/dist/types/hooks/index.d.ts +3 -0
  17. package/dist/types/hooks/index.d.ts.map +1 -0
  18. package/dist/types/hooks/provider/index.d.ts +6 -0
  19. package/dist/types/hooks/provider/index.d.ts.map +1 -0
  20. package/dist/types/hooks/provider/useActiveNetworkCurrentBlock.d.ts +2 -0
  21. package/dist/types/hooks/provider/useActiveNetworkCurrentBlock.d.ts.map +1 -0
  22. package/dist/types/hooks/provider/useActiveNetworkHostViewer.d.ts +2 -0
  23. package/dist/types/hooks/provider/useActiveNetworkHostViewer.d.ts.map +1 -0
  24. package/dist/types/hooks/provider/useActiveNetworkNetwork.d.ts +2 -0
  25. package/dist/types/hooks/provider/useActiveNetworkNetwork.d.ts.map +1 -0
  26. package/dist/types/hooks/provider/useActiveNetworkRunner.d.ts +2 -0
  27. package/dist/types/hooks/provider/useActiveNetworkRunner.d.ts.map +1 -0
  28. package/dist/types/hooks/provider/useActiveNetworkViewer.d.ts +2 -0
  29. package/dist/types/hooks/provider/useActiveNetworkViewer.d.ts.map +1 -0
  30. package/dist/types/hooks/status/index.d.ts +2 -0
  31. package/dist/types/hooks/status/index.d.ts.map +1 -0
  32. package/dist/types/hooks/status/usePollNetworkStatus.d.ts +3 -0
  33. package/dist/types/hooks/status/usePollNetworkStatus.d.ts.map +1 -0
  34. package/dist/types/index.d.ts +1 -3
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/package.json +14 -24
  37. package/src/components/menu/MenuItem.tsx +1 -1
  38. package/src/components/status/NetworkStatus.tsx +21 -0
  39. package/src/components/status/index.ts +1 -0
  40. package/src/context/network/Provider.tsx +4 -4
  41. package/src/context/network/state.ts +2 -3
  42. package/src/context/network/use.ts +1 -1
  43. package/src/hooks/index.ts +2 -0
  44. package/src/hooks/provider/index.ts +5 -0
  45. package/src/hooks/provider/useActiveNetworkCurrentBlock.ts +10 -0
  46. package/src/hooks/provider/useActiveNetworkHostViewer.ts +9 -0
  47. package/src/hooks/provider/useActiveNetworkNetwork.ts +9 -0
  48. package/src/hooks/provider/useActiveNetworkRunner.ts +10 -0
  49. package/src/hooks/provider/useActiveNetworkViewer.ts +9 -0
  50. package/src/hooks/status/index.ts +1 -0
  51. package/src/hooks/status/usePollNetworkStatus.ts +41 -0
  52. package/src/index.ts +1 -3
  53. package/dist/browser/XL1_Logo_Icon_Localhost-2ZA6P5DV.svg +0 -1
  54. package/dist/browser/XL1_Logo_Icon_Mainnet-OLUPYV7Q.svg +0 -1
  55. package/dist/browser/XL1_Logo_Icon_Testnet-HCQCTXVQ.svg +0 -1
  56. package/dist/types/helpers/Networks.d.ts +0 -6
  57. package/dist/types/helpers/Networks.d.ts.map +0 -1
  58. package/dist/types/helpers/getNetworkNode.d.ts +0 -2
  59. package/dist/types/helpers/getNetworkNode.d.ts.map +0 -1
  60. package/dist/types/helpers/getNetworkNodes.d.ts +0 -3
  61. package/dist/types/helpers/getNetworkNodes.d.ts.map +0 -1
  62. package/dist/types/helpers/index.d.ts +0 -4
  63. package/dist/types/helpers/index.d.ts.map +0 -1
  64. package/dist/types/helpers/initNetworkNode.d.ts +0 -4
  65. package/dist/types/helpers/initNetworkNode.d.ts.map +0 -1
  66. package/dist/types/helpers/manifest/index.d.ts +0 -2
  67. package/dist/types/helpers/manifest/index.d.ts.map +0 -1
  68. package/dist/types/helpers/manifest/networkManifest.d.ts +0 -6
  69. package/dist/types/helpers/manifest/networkManifest.d.ts.map +0 -1
  70. package/dist/types/images/icons/index.d.ts +0 -5
  71. package/dist/types/images/icons/index.d.ts.map +0 -1
  72. package/dist/types/images/icons/local/index.d.ts +0 -5
  73. package/dist/types/images/icons/local/index.d.ts.map +0 -1
  74. package/dist/types/images/icons/mainnet/index.d.ts +0 -5
  75. package/dist/types/images/icons/mainnet/index.d.ts.map +0 -1
  76. package/dist/types/images/icons/sequence/index.d.ts +0 -5
  77. package/dist/types/images/icons/sequence/index.d.ts.map +0 -1
  78. package/dist/types/images/icons/xyoColorLogo.d.ts +0 -5
  79. package/dist/types/images/icons/xyoColorLogo.d.ts.map +0 -1
  80. package/dist/types/images/index.d.ts +0 -2
  81. package/dist/types/images/index.d.ts.map +0 -1
  82. package/dist/types/models/Bootstrap.d.ts +0 -42
  83. package/dist/types/models/Bootstrap.d.ts.map +0 -1
  84. package/dist/types/models/index.d.ts +0 -2
  85. package/dist/types/models/index.d.ts.map +0 -1
  86. package/dist/types/provider/NetworkProvider.d.ts +0 -47
  87. package/dist/types/provider/NetworkProvider.d.ts.map +0 -1
  88. package/dist/types/provider/index.d.ts +0 -2
  89. package/dist/types/provider/index.d.ts.map +0 -1
  90. package/src/helpers/Networks.ts +0 -40
  91. package/src/helpers/getNetworkNode.ts +0 -11
  92. package/src/helpers/getNetworkNodes.ts +0 -7
  93. package/src/helpers/index.ts +0 -3
  94. package/src/helpers/initNetworkNode.ts +0 -15
  95. package/src/helpers/manifest/index.ts +0 -1
  96. package/src/helpers/manifest/network.json +0 -17
  97. package/src/helpers/manifest/networkManifest.ts +0 -8
  98. package/src/images/icons/index.ts +0 -4
  99. package/src/images/icons/local/XL1_Logo_Icon_Localhost.svg +0 -1
  100. package/src/images/icons/local/index.tsx +0 -15
  101. package/src/images/icons/mainnet/XL1_Logo_Icon_Mainnet.svg +0 -1
  102. package/src/images/icons/mainnet/index.tsx +0 -15
  103. package/src/images/icons/sequence/XL1_Logo_Icon_Testnet.svg +0 -1
  104. package/src/images/icons/sequence/index.tsx +0 -15
  105. package/src/images/icons/xyoColorLogo.tsx +0 -54
  106. package/src/images/index.ts +0 -1
  107. package/src/models/Bootstrap.ts +0 -51
  108. package/src/models/index.ts +0 -1
  109. package/src/provider/NetworkProvider.ts +0 -176
  110. package/src/provider/index.ts +0 -1
@@ -3,7 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/components/menu/Avatar.tsx
5
5
  import { Avatar } from "@mui/material";
6
- import React6 from "react";
6
+ import React3 from "react";
7
7
 
8
8
  // src/context/network/context.ts
9
9
  import { createContextEx } from "@xylabs/react-shared";
@@ -12,120 +12,8 @@ var ChainNetworkContext = createContextEx();
12
12
  // src/context/network/Provider.tsx
13
13
  import { ErrorRender } from "@xylabs/react-error";
14
14
  import { usePromise } from "@xylabs/react-promise";
15
- import React4, { useCallback, useMemo, useState } from "react";
16
-
17
- // src/helpers/getNetworkNodes.ts
18
- var networkNodeMap = /* @__PURE__ */ new Map();
19
- var getNetworkNodes = /* @__PURE__ */ __name(() => {
20
- return networkNodeMap;
21
- }, "getNetworkNodes");
22
-
23
- // src/helpers/getNetworkNode.ts
24
- import { ManifestWrapper } from "@xyo-network/manifest-wrapper";
25
- import { ModuleFactoryLocator } from "@xyo-network/module-factory-locator";
26
- import { HDWallet } from "@xyo-network/wallet";
27
-
28
- // src/helpers/manifest/network.json
29
- var network_default = {
30
- $schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
31
- nodes: [
32
- {
33
- config: {
34
- accountPath: "44'/60'/1",
35
- name: "Network",
36
- schema: "network.xyo.node.config"
37
- },
38
- modules: {
39
- private: [],
40
- public: []
41
- }
42
- }
43
- ],
44
- schema: "network.xyo.manifest"
45
- };
46
-
47
- // src/helpers/manifest/networkManifest.ts
48
- var NetworkNodeManifest = network_default;
49
-
50
- // src/helpers/getNetworkNode.ts
51
- var getNetworkNode = /* @__PURE__ */ __name(async () => {
52
- const wrapper = new ManifestWrapper(NetworkNodeManifest, await HDWallet.random(), new ModuleFactoryLocator());
53
- const [node] = await wrapper.loadNodes();
54
- return node;
55
- }, "getNetworkNode");
56
-
57
- // src/helpers/initNetworkNode.ts
58
- var initNetworkNode = /* @__PURE__ */ __name(async (activeNetwork) => {
59
- const networkNodeMap2 = getNetworkNodes();
60
- if (networkNodeMap2.has(activeNetwork.url)) return networkNodeMap2.get(activeNetwork.url);
61
- const activeNetworkNode = await getNetworkNode();
62
- networkNodeMap2.set(activeNetwork.url, activeNetworkNode);
63
- return activeNetworkNode;
64
- }, "initNetworkNode");
65
-
66
- // src/images/icons/local/index.tsx
67
- import { SvgIcon } from "@mui/material";
68
- import React from "react";
69
- import LocalNetworkSvg from "./XL1_Logo_Icon_Localhost-2ZA6P5DV.svg?react";
70
- import { default as default2 } from "./XL1_Logo_Icon_Localhost-2ZA6P5DV.svg?raw";
71
-
72
- // src/images/icons/mainnet/index.tsx
73
- import { SvgIcon as SvgIcon2 } from "@mui/material";
74
- import React2 from "react";
75
- import MainNetworkSvg from "./XL1_Logo_Icon_Mainnet-OLUPYV7Q.svg?react";
76
- import { default as default3 } from "./XL1_Logo_Icon_Mainnet-OLUPYV7Q.svg?raw";
77
-
78
- // src/images/icons/sequence/index.tsx
79
- import { SvgIcon as SvgIcon3 } from "@mui/material";
80
- import React3 from "react";
81
- import SequenceNetworkSvg from "./XL1_Logo_Icon_Testnet-HCQCTXVQ.svg?react";
82
- import { default as default4 } from "./XL1_Logo_Icon_Testnet-HCQCTXVQ.svg?raw";
83
-
84
- // src/models/Bootstrap.ts
85
- import { AsObjectFactory } from "@xylabs/object";
86
- import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
87
- var NetworkBootstrapSchema = "network.xyo.network.bootstrap";
88
- var isNetworkBootstrap = isPayloadOfSchemaType(NetworkBootstrapSchema);
89
- var asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap);
90
-
91
- // src/helpers/Networks.ts
92
- var MainNetwork = {
93
- description: "Main Network for XYO Layer 1",
94
- icon: default3,
95
- id: "mainnet",
96
- name: "Mainnet",
97
- schema: NetworkBootstrapSchema,
98
- symbol: "XL1",
99
- url: "https://api.chain.xyo.network",
100
- explorerUrl: "https://explore.xyo.network"
101
- };
102
- var SequenceNetwork = {
103
- description: "Test Network for XYO Layer 1",
104
- icon: default4,
105
- id: "sequence",
106
- name: "Sequence",
107
- schema: NetworkBootstrapSchema,
108
- symbol: "XL1",
109
- url: "https://beta.api.chain.xyo.network",
110
- explorerUrl: "https://beta.explore.xyo.network"
111
- };
112
- var LocalNetwork = {
113
- description: "Local Node",
114
- icon: default2,
115
- id: "local",
116
- name: "Local",
117
- schema: NetworkBootstrapSchema,
118
- symbol: "XL1",
119
- url: "http://localhost:8080",
120
- explorerUrl: "http://localhost:3000"
121
- };
122
- var DefaultNetworks = [
123
- MainNetwork,
124
- SequenceNetwork,
125
- LocalNetwork
126
- ];
127
-
128
- // src/context/network/Provider.tsx
15
+ import { SequenceNetwork } from "@xyo-network/chain-network-model";
16
+ import React, { useCallback, useMemo, useState } from "react";
129
17
  var ChainNetworkProvider = /* @__PURE__ */ __name(({ children, getActiveNetwork, networks, setActiveNetwork: setActiveNetworkExternal }) => {
130
18
  const [activeNetwork, setActiveNetwork] = useState();
131
19
  const [error, setError] = useState();
@@ -166,29 +54,29 @@ var ChainNetworkProvider = /* @__PURE__ */ __name(({ children, getActiveNetwork,
166
54
  networks,
167
55
  provided: true,
168
56
  updateActiveNetwork,
169
- walletNetworkError: error ?? activeNetworkError
57
+ chainNetworkError: error ?? activeNetworkError
170
58
  }), [
171
59
  activeNetwork,
172
60
  networks,
173
61
  updateActiveNetwork
174
62
  ]);
175
- return /* @__PURE__ */ React4.createElement(ChainNetworkContext, {
63
+ return /* @__PURE__ */ React.createElement(ChainNetworkContext, {
176
64
  value
177
- }, /* @__PURE__ */ React4.createElement(ErrorRender, {
65
+ }, /* @__PURE__ */ React.createElement(ErrorRender, {
178
66
  error: error ?? activeNetworkError,
179
- scope: "WalletNetworkProvider"
67
+ scope: "ChainNetworkProvider"
180
68
  }), children);
181
69
  }, "ChainNetworkProvider");
182
70
 
183
71
  // src/context/network/use.ts
184
72
  import { useContextEx } from "@xylabs/react-shared";
185
- var useChainNetwork = /* @__PURE__ */ __name((required = true) => useContextEx(ChainNetworkContext, "WalletNetwork", required), "useChainNetwork");
73
+ var useChainNetwork = /* @__PURE__ */ __name((required = true) => useContextEx(ChainNetworkContext, "ChainNetwork", required), "useChainNetwork");
186
74
 
187
75
  // src/components/menu/Icon.tsx
188
76
  import { Icon } from "@mui/material";
189
- import React5 from "react";
77
+ import React2 from "react";
190
78
  var NetworkIcon = /* @__PURE__ */ __name(({ icon, ...props }) => {
191
- return /* @__PURE__ */ React5.createElement(Icon, {
79
+ return /* @__PURE__ */ React2.createElement(Icon, {
192
80
  sx: {
193
81
  display: "inline-flex",
194
82
  alignItems: "center",
@@ -205,7 +93,7 @@ var NetworkIcon = /* @__PURE__ */ __name(({ icon, ...props }) => {
205
93
 
206
94
  // src/components/menu/Avatar.tsx
207
95
  var NetworkAvatar = /* @__PURE__ */ __name(({ icon, name, ...props }) => {
208
- return /* @__PURE__ */ React6.createElement(Avatar, {
96
+ return /* @__PURE__ */ React3.createElement(Avatar, {
209
97
  sx: {
210
98
  backgroundColor: "white",
211
99
  height: 30,
@@ -213,13 +101,13 @@ var NetworkAvatar = /* @__PURE__ */ __name(({ icon, name, ...props }) => {
213
101
  },
214
102
  alt: name,
215
103
  ...props
216
- }, /* @__PURE__ */ React6.createElement(NetworkIcon, {
104
+ }, /* @__PURE__ */ React3.createElement(NetworkIcon, {
217
105
  icon
218
106
  }));
219
107
  }, "NetworkAvatar");
220
108
  var ActiveNetworkAvatar = /* @__PURE__ */ __name((props) => {
221
109
  const { activeNetwork } = useChainNetwork();
222
- return /* @__PURE__ */ React6.createElement(NetworkAvatar, {
110
+ return /* @__PURE__ */ React3.createElement(NetworkAvatar, {
223
111
  icon: activeNetwork?.icon,
224
112
  name: activeNetwork?.name,
225
113
  ...props
@@ -229,47 +117,47 @@ var ActiveNetworkAvatar = /* @__PURE__ */ __name((props) => {
229
117
  // src/components/menu/MenuItem.tsx
230
118
  import { ListItemText } from "@mui/material";
231
119
  import { ActiveMenuItem } from "@xyo-network/react-chain-shared";
232
- import React7 from "react";
120
+ import React4 from "react";
233
121
  var NetworkMenuItem = /* @__PURE__ */ __name(({ active, network, onClick, updateActiveNetwork, ...props }) => {
234
122
  const handleClick = /* @__PURE__ */ __name((event) => {
235
123
  if (network === void 0) throw new Error("Network is undefined");
236
124
  updateActiveNetwork?.(network.id);
237
125
  onClick?.(event);
238
126
  }, "handleClick");
239
- return /* @__PURE__ */ React7.createElement(ActiveMenuItem, {
127
+ return /* @__PURE__ */ React4.createElement(ActiveMenuItem, {
240
128
  title: network?.name,
241
129
  disableRipple: true,
242
130
  onClick: handleClick,
243
131
  active,
244
132
  ...props
245
- }, /* @__PURE__ */ React7.createElement(NetworkAvatar, {
133
+ }, /* @__PURE__ */ React4.createElement(NetworkAvatar, {
246
134
  icon: network?.icon,
247
135
  name: network?.name
248
- }), /* @__PURE__ */ React7.createElement(ListItemText, null, network?.name));
136
+ }), /* @__PURE__ */ React4.createElement(ListItemText, null, network?.name));
249
137
  }, "NetworkMenuItem");
250
138
 
251
139
  // src/components/status/Alert.tsx
252
140
  import { Alert, AlertTitle, Button as Button2 } from "@mui/material";
253
- import React9, { useMemo as useMemo2, useState as useState2 } from "react";
141
+ import React6, { useMemo as useMemo2, useState as useState2 } from "react";
254
142
 
255
143
  // src/components/status/Dialog.tsx
256
144
  import { Button, Dialog, DialogActions, DialogContent, DialogTitle, List, ListItem, Typography } from "@mui/material";
257
- import React8 from "react";
145
+ import React5 from "react";
258
146
  var NetworkStatusDialog = /* @__PURE__ */ __name(({ updates, ...props }) => {
259
- return /* @__PURE__ */ React8.createElement(Dialog, props, /* @__PURE__ */ React8.createElement(DialogTitle, null, "Recent Status Updates"), /* @__PURE__ */ React8.createElement(DialogContent, null, /* @__PURE__ */ React8.createElement(List, null, updates.map(({ start, end, update }) => /* @__PURE__ */ React8.createElement(ListItem, {
147
+ return /* @__PURE__ */ React5.createElement(Dialog, props, /* @__PURE__ */ React5.createElement(DialogTitle, null, "Recent Status Updates"), /* @__PURE__ */ React5.createElement(DialogContent, null, /* @__PURE__ */ React5.createElement(List, null, updates.map(({ start, end, update }) => /* @__PURE__ */ React5.createElement(ListItem, {
260
148
  key: start + update,
261
149
  sx: {
262
150
  flexDirection: "column",
263
151
  alignItems: "start",
264
152
  pl: 0
265
153
  }
266
- }, /* @__PURE__ */ React8.createElement(Typography, null, update), /* @__PURE__ */ React8.createElement(Typography, {
154
+ }, /* @__PURE__ */ React5.createElement(Typography, null, update), /* @__PURE__ */ React5.createElement(Typography, {
267
155
  gutterBottom: true,
268
156
  sx: {
269
157
  opacity: 0.75,
270
158
  fontSize: ".8333rem"
271
159
  }
272
- }, "Start:", " ", new Date(start).toLocaleString(), " ", /* @__PURE__ */ React8.createElement("br", null), "End:", " ", new Date(end).toLocaleString()))))), /* @__PURE__ */ React8.createElement(DialogActions, null, /* @__PURE__ */ React8.createElement(Button, {
160
+ }, "Start:", " ", new Date(start).toLocaleString(), " ", /* @__PURE__ */ React5.createElement("br", null), "End:", " ", new Date(end).toLocaleString()))))), /* @__PURE__ */ React5.createElement(DialogActions, null, /* @__PURE__ */ React5.createElement(Button, {
273
161
  onClick: /* @__PURE__ */ __name((e) => props.onClose?.(e, "backdropClick"), "onClick"),
274
162
  color: "primary",
275
163
  variant: "outlined"
@@ -299,158 +187,130 @@ var NetworkStatusAlert = /* @__PURE__ */ __name(({ status, ...props }) => {
299
187
  }, [
300
188
  status
301
189
  ]);
302
- return /* @__PURE__ */ React9.createElement(Alert, {
190
+ return /* @__PURE__ */ React6.createElement(Alert, {
303
191
  severity,
304
192
  ...props
305
- }, /* @__PURE__ */ React9.createElement(AlertTitle, null, status?.description), status?.updates && status.updates.length > 0 && /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(Button2, {
193
+ }, /* @__PURE__ */ React6.createElement(AlertTitle, null, status?.description), status?.updates && status.updates.length > 0 && /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(Button2, {
306
194
  color: severity,
307
195
  variant: "outlined",
308
196
  size: "small",
309
197
  onClick: /* @__PURE__ */ __name(() => setOpen(true), "onClick")
310
- }, "Updates"), /* @__PURE__ */ React9.createElement(NetworkStatusDialog, {
198
+ }, "Updates"), /* @__PURE__ */ React6.createElement(NetworkStatusDialog, {
311
199
  open,
312
200
  onClose: handleClose,
313
201
  updates: status.updates
314
202
  })));
315
203
  }, "NetworkStatusAlert");
316
204
 
317
- // src/provider/NetworkProvider.ts
318
- import { assertEx } from "@xylabs/assert";
319
- import { asArchivistInstance } from "@xyo-network/archivist-model";
320
- import { initBridge } from "@xyo-network/chain-orchestration";
321
- import { findMostRecentBlock } from "@xyo-network/chain-protocol";
322
- import { ChainBlockNumberIterationService } from "@xyo-network/chain-services";
323
- import { PayloadBuilder } from "@xyo-network/payload-builder";
324
- import { hydrateBlock } from "@xyo-network/xl1-protocol-sdk";
325
- var FINALIZED_ARCHIVIST = "XYOChain:Chain:Finalized";
326
- var NetworkProvider = class _NetworkProvider {
327
- static {
328
- __name(this, "NetworkProvider");
329
- }
330
- _bridge;
331
- constructor(bridge) {
332
- this._bridge = bridge;
333
- }
334
- get bridge() {
335
- return assertEx(this._bridge, () => "Bridge not set");
336
- }
337
- static async create({ network }) {
338
- const bridge = await initBridge(network);
339
- return new _NetworkProvider(bridge);
340
- }
341
- accountBalance(_address) {
342
- throw new Error("Method not implemented.");
343
- }
344
- accountHistory(_address) {
345
- throw new Error("Method not implemented.");
346
- }
347
- accounts() {
348
- throw new Error("Method not implemented.");
349
- }
350
- addChain(_chain, _name) {
351
- throw new Error("Method not implemented.");
352
- }
353
- address() {
354
- throw new Error("Method not implemented.");
355
- }
356
- blockByHash(_hash) {
357
- throw new Error("Method not implemented.");
358
- }
359
- blockByNumber(_blockNumber) {
360
- throw new Error("Method not implemented.");
361
- }
362
- blocksByHash(_hash, _limit) {
363
- throw new Error("Method not implemented.");
364
- }
365
- broadcastTransaction(_transaction) {
366
- throw new Error("Method not implemented.");
367
- }
368
- chain() {
369
- throw new Error("Method not implemented.");
370
- }
371
- chainId() {
372
- throw new Error("Method not implemented.");
373
- }
374
- chains() {
375
- throw new Error("Method not implemented.");
376
- }
377
- createSignedTransaction(_chain, _elevatedPayloads, _additionalPayloads, _nbf, _exp, _fees, _from) {
378
- throw new Error("Method not implemented.");
379
- }
380
- currentBlock() {
381
- throw new Error("Method not implemented.");
382
- }
383
- currentBlockHash() {
384
- throw new Error("Method not implemented.");
385
- }
386
- currentBlockNumber() {
387
- throw new Error("Method not implemented.");
388
- }
389
- permissions() {
390
- throw new Error("Method not implemented.");
391
- }
392
- async previousBlocks(startingBlock, count = 25) {
393
- const chainArchivist = await this.getFinalizedArchivist();
394
- const head = assertEx(await findMostRecentBlock(chainArchivist, {
395
- cursor: startingBlock
396
- }), () => "Unable to find most recent block");
397
- const iterator = await ChainBlockNumberIterationService.create({
398
- chainArchivist,
399
- head
400
- });
401
- const blocks = await iterator.previous(head.block, count);
402
- let hydratedBlocks = [];
403
- for (const block of blocks) {
404
- hydratedBlocks.push(await hydrateBlock(chainArchivist, await PayloadBuilder.hash(block)));
405
- }
406
- return hydratedBlocks;
407
- }
408
- requestPermissions(_permissions) {
409
- throw new Error("Method not implemented.");
410
- }
411
- revokePermissions(_permissions) {
412
- throw new Error("Method not implemented.");
413
- }
414
- signTransaction(_transaction) {
415
- throw new Error("Method not implemented.");
416
- }
417
- switchChain(_chain) {
418
- throw new Error("Method not implemented.");
419
- }
420
- transactionByBlockHashAndIndex(_blockHash, _transactionIndex) {
421
- throw new Error("Method not implemented.");
422
- }
423
- transactionByBlockNumberAndIndex(_blockNumber, _transactionIndex) {
424
- throw new Error("Method not implemented.");
425
- }
426
- transactionByHash(_transactionHash) {
427
- throw new Error("Method not implemented.");
428
- }
429
- async getFinalizedArchivist() {
430
- const bridge = this.bridge;
431
- const mod = assertEx(await bridge.resolve(FINALIZED_ARCHIVIST), () => `${FINALIZED_ARCHIVIST} not found`);
432
- return assertEx(asArchivistInstance(mod), () => `${FINALIZED_ARCHIVIST} is not an archivist`);
433
- }
434
- };
205
+ // src/components/status/NetworkStatus.tsx
206
+ import React7 from "react";
207
+
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
+
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");
223
+
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");
231
+
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");
239
+
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");
247
+
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");
285
+
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");
435
299
  export {
436
300
  ActiveNetworkAvatar,
437
301
  ChainNetworkContext,
438
302
  ChainNetworkProvider,
439
- DefaultNetworks,
440
- FINALIZED_ARCHIVIST,
441
- LocalNetwork,
442
- MainNetwork,
443
303
  NetworkAvatar,
444
- NetworkBootstrapSchema,
445
304
  NetworkIcon,
446
305
  NetworkMenuItem,
447
- NetworkProvider,
306
+ NetworkStatus,
448
307
  NetworkStatusAlert,
449
- SequenceNetwork,
450
- asOptionalNetwork,
451
- getNetworkNodes,
452
- initNetworkNode,
453
- isNetworkBootstrap,
454
- useChainNetwork
308
+ useActiveNetworkCurrentBlock,
309
+ useActiveNetworkHostViewer,
310
+ useActiveNetworkNetwork,
311
+ useActiveNetworkRunner,
312
+ useActiveNetworkViewer,
313
+ useChainNetwork,
314
+ usePollNetworkStatus
455
315
  };
456
316
  //# sourceMappingURL=index.mjs.map