@xyo-network/react-chain-network 1.5.37 → 1.6.1

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 (53) hide show
  1. package/dist/browser/index.mjs +113 -253
  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/context/network/Provider.d.ts +1 -1
  6. package/dist/types/context/network/Provider.d.ts.map +1 -1
  7. package/dist/types/context/network/context.d.ts +9 -9
  8. package/dist/types/context/network/state.d.ts +1 -1
  9. package/dist/types/context/network/state.d.ts.map +1 -1
  10. package/dist/types/context/network/use.d.ts +3 -3
  11. package/dist/types/helpers/Networks.d.ts +4 -0
  12. package/dist/types/helpers/Networks.d.ts.map +1 -1
  13. package/dist/types/helpers/getNetworkNode.d.ts +2 -10
  14. package/dist/types/helpers/getNetworkNode.d.ts.map +1 -1
  15. package/dist/types/helpers/getNetworkNodes.d.ts +2 -10
  16. package/dist/types/helpers/getNetworkNodes.d.ts.map +1 -1
  17. package/dist/types/helpers/initNetworkNode.d.ts +1 -0
  18. package/dist/types/helpers/initNetworkNode.d.ts.map +1 -1
  19. package/dist/types/images/icons/local/index.d.ts +0 -1
  20. package/dist/types/images/icons/local/index.d.ts.map +1 -1
  21. package/dist/types/images/icons/mainnet/index.d.ts +0 -1
  22. package/dist/types/images/icons/mainnet/index.d.ts.map +1 -1
  23. package/dist/types/images/icons/sequence/index.d.ts +0 -1
  24. package/dist/types/images/icons/sequence/index.d.ts.map +1 -1
  25. package/dist/types/index.d.ts +0 -1
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/types/models/Bootstrap.d.ts +11 -8
  28. package/dist/types/models/Bootstrap.d.ts.map +1 -1
  29. package/package.json +22 -21
  30. package/src/components/menu/MenuItem.tsx +1 -1
  31. package/src/context/network/Provider.tsx +2 -2
  32. package/src/context/network/state.ts +1 -2
  33. package/src/helpers/Networks.ts +7 -6
  34. package/src/helpers/getNetworkNode.ts +1 -0
  35. package/src/helpers/getNetworkNodes.ts +1 -0
  36. package/src/helpers/initNetworkNode.ts +1 -0
  37. package/src/images/icons/local/index.tsx +4 -4
  38. package/src/images/icons/mainnet/index.tsx +4 -4
  39. package/src/images/icons/sequence/index.tsx +4 -4
  40. package/src/index.ts +0 -1
  41. package/src/models/Bootstrap.ts +11 -9
  42. package/dist/browser/XL1_Logo_Icon_Localhost-2ZA6P5DV.svg +0 -1
  43. package/dist/browser/XL1_Logo_Icon_Mainnet-OLUPYV7Q.svg +0 -1
  44. package/dist/browser/XL1_Logo_Icon_Testnet-HCQCTXVQ.svg +0 -1
  45. package/dist/types/provider/NetworkProvider.d.ts +0 -47
  46. package/dist/types/provider/NetworkProvider.d.ts.map +0 -1
  47. package/dist/types/provider/index.d.ts +0 -2
  48. package/dist/types/provider/index.d.ts.map +0 -1
  49. package/src/images/icons/local/XL1_Logo_Icon_Localhost.svg +0 -1
  50. package/src/images/icons/mainnet/XL1_Logo_Icon_Mainnet.svg +0 -1
  51. package/src/images/icons/sequence/XL1_Logo_Icon_Testnet.svg +0 -1
  52. package/src/provider/NetworkProvider.ts +0 -176
  53. 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();
@@ -172,9 +60,9 @@ var ChainNetworkProvider = /* @__PURE__ */ __name(({ children, getActiveNetwork,
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
67
  scope: "WalletNetworkProvider"
180
68
  }), children);
@@ -186,9 +74,9 @@ var useChainNetwork = /* @__PURE__ */ __name((required = true) => useContextEx(C
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,154 +187,126 @@ 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)));
205
+ // src/helpers/getNetworkNodes.ts
206
+ var networkNodeMap = /* @__PURE__ */ new Map();
207
+ var getNetworkNodes = /* @__PURE__ */ __name(() => {
208
+ return networkNodeMap;
209
+ }, "getNetworkNodes");
210
+
211
+ // src/helpers/getNetworkNode.ts
212
+ import { ManifestWrapper } from "@xyo-network/manifest-wrapper";
213
+ import { ModuleFactoryLocator } from "@xyo-network/module-factory-locator";
214
+ import { HDWallet } from "@xyo-network/wallet";
215
+
216
+ // src/helpers/manifest/network.json
217
+ var network_default = {
218
+ $schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
219
+ nodes: [
220
+ {
221
+ config: {
222
+ accountPath: "44'/60'/1",
223
+ name: "Network",
224
+ schema: "network.xyo.node.config"
225
+ },
226
+ modules: {
227
+ private: [],
228
+ public: []
229
+ }
405
230
  }
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
- }
231
+ ],
232
+ schema: "network.xyo.manifest"
233
+ };
234
+
235
+ // src/helpers/manifest/networkManifest.ts
236
+ var NetworkNodeManifest = network_default;
237
+
238
+ // src/helpers/getNetworkNode.ts
239
+ var getNetworkNode = /* @__PURE__ */ __name(async () => {
240
+ const wrapper = new ManifestWrapper(NetworkNodeManifest, await HDWallet.random(), new ModuleFactoryLocator());
241
+ const [node] = await wrapper.loadNodes();
242
+ return node;
243
+ }, "getNetworkNode");
244
+
245
+ // src/helpers/initNetworkNode.ts
246
+ var initNetworkNode = /* @__PURE__ */ __name(async (activeNetwork) => {
247
+ const networkNodeMap2 = getNetworkNodes();
248
+ if (networkNodeMap2.has(activeNetwork.url)) return networkNodeMap2.get(activeNetwork.url);
249
+ const activeNetworkNode = await getNetworkNode();
250
+ networkNodeMap2.set(activeNetwork.url, activeNetworkNode);
251
+ return activeNetworkNode;
252
+ }, "initNetworkNode");
253
+
254
+ // src/models/Bootstrap.ts
255
+ import { AsObjectFactory } from "@xylabs/object";
256
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
257
+ var NetworkBootstrapSchema = "network.xyo.network.bootstrap";
258
+ var isNetworkBootstrap = isPayloadOfSchemaType(NetworkBootstrapSchema);
259
+ var asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap);
260
+
261
+ // src/helpers/Networks.ts
262
+ var MainNetwork = {
263
+ description: "Main Network for XYO Layer 1",
264
+ // icon: MainNetworkIconString,
265
+ id: "mainnet",
266
+ name: "Mainnet",
267
+ schema: NetworkBootstrapSchema,
268
+ symbol: "XL1",
269
+ url: "https://api.chain.xyo.network",
270
+ explorerUrl: "https://explore.xyo.network"
271
+ };
272
+ var SequenceNetwork2 = {
273
+ description: "Test Network for XYO Layer 1",
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"
434
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
+ ];
435
297
  export {
436
298
  ActiveNetworkAvatar,
437
299
  ChainNetworkContext,
438
300
  ChainNetworkProvider,
439
301
  DefaultNetworks,
440
- FINALIZED_ARCHIVIST,
441
302
  LocalNetwork,
442
303
  MainNetwork,
443
304
  NetworkAvatar,
444
305
  NetworkBootstrapSchema,
445
306
  NetworkIcon,
446
307
  NetworkMenuItem,
447
- NetworkProvider,
448
308
  NetworkStatusAlert,
449
- SequenceNetwork,
309
+ SequenceNetwork2 as SequenceNetwork,
450
310
  asOptionalNetwork,
451
311
  getNetworkNodes,
452
312
  initNetworkNode,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/menu/Avatar.tsx","../../src/context/network/context.ts","../../src/context/network/Provider.tsx","../../src/helpers/getNetworkNodes.ts","../../src/helpers/getNetworkNode.ts","../../src/helpers/manifest/network.json","../../src/helpers/manifest/networkManifest.ts","../../src/helpers/initNetworkNode.ts","../../src/images/icons/local/index.tsx","../../src/images/icons/mainnet/index.tsx","../../src/images/icons/sequence/index.tsx","../../src/models/Bootstrap.ts","../../src/helpers/Networks.ts","../../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/provider/NetworkProvider.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 { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useMemo, useState,\n} from 'react'\n\nimport { SequenceNetwork } 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 === 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 type { AttachableNodeInstance } from '@xyo-network/node-model'\n\nconst networkNodeMap = new Map<string, AttachableNodeInstance>()\n\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\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\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 { SvgIcon } from '@mui/material'\nimport React from 'react'\n\nimport LocalNetworkSvg from './XL1_Logo_Icon_Localhost.svg?react'\nexport const LocalNetworkIcon = (props: React.ComponentProps<typeof SvgIcon>) => {\n return (\n <SvgIcon\n viewBox=\"0 0 256 256\"\n component={LocalNetworkSvg}\n {...props}\n />\n )\n}\n\nexport { default as LocalNetworkIconString } from './XL1_Logo_Icon_Localhost.svg?raw'\n","import { SvgIcon } from '@mui/material'\nimport React from 'react'\n\nimport MainNetworkSvg from './XL1_Logo_Icon_Mainnet.svg?react'\nexport const MainNetworkIcon = (props: React.ComponentProps<typeof SvgIcon>) => {\n return (\n <SvgIcon\n viewBox=\"0 0 256 256\"\n component={MainNetworkSvg}\n {...props}\n />\n )\n}\n\nexport { default as MainNetworkIconString } from './XL1_Logo_Icon_Mainnet.svg?raw'\n","import { SvgIcon } from '@mui/material'\nimport React from 'react'\n\nimport SequenceNetworkSvg from './XL1_Logo_Icon_Testnet.svg?react'\nexport const SequenceNetworkIcon = (props: React.ComponentProps<typeof SvgIcon>) => {\n return (\n <SvgIcon\n viewBox=\"0 0 256 256\"\n component={SequenceNetworkSvg}\n {...props}\n />\n )\n}\n\nexport { default as SequenceNetworkIconString } from './XL1_Logo_Icon_Testnet.svg?raw'\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 { NetworkId } from '@xyo-network/xl1-protocol'\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 /** 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 /** 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 chainId?: Address\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 {\n LocalNetworkIconString, MainNetworkIconString, SequenceNetworkIconString,\n} 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 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\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\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\nexport const DefaultNetworks: NetworkBootstrap[] = [MainNetwork, SequenceNetwork, LocalNetwork]\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 { 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 type { NetworkBootstrap } from '../../models/index.ts'\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","/* eslint-disable sonarjs/deprecation */\nimport { 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 { initBridge } from '@xyo-network/chain-orchestration'\nimport { findMostRecentBlock } from '@xyo-network/chain-protocol'\nimport { ChainBlockNumberIterationService } from '@xyo-network/chain-services'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n BlockBoundWitness,\n HydratedBlock, HydratedTransaction, TransactionBoundWitness,\n TransactionFeesBigInt,\n Transfer,\n XyoRunner,\n XyoSigner,\n XyoViewer,\n XyoWallet,\n} from '@xyo-network/xl1-protocol'\nimport { hydrateBlock } from '@xyo-network/xl1-protocol-sdk'\n\nexport const FINALIZED_ARCHIVIST = 'XYOChain:Chain:Finalized' as const\n\nexport interface NetworkProviderParams {\n chainId?: Address\n network: string\n}\n\n// TODO: change back to implementing XyoProvider which requires sub objects\n/**\n * @deprecated Use MemoryXyoProvider instead\n */\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): Promisable<bigint> {\n throw new Error('Method not implemented.')\n }\n\n accountHistory(_address: Address): Promisable<[TransactionBoundWitness[], Transfer[]]> {\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<HydratedBlock | null> {\n throw new Error('Method not implemented.')\n }\n\n blockByNumber(_blockNumber: number): Promisable<HydratedBlock | null> {\n throw new Error('Method not implemented.')\n }\n\n blocksByHash(_hash: Hash, _limit?: number): Promisable<HydratedBlock[]> {\n throw new Error('Method not implemented.')\n }\n\n broadcastTransaction(_transaction: HydratedTransaction): Promisable<Hash> {\n throw new Error('Method not implemented.')\n }\n\n chain(): Promisable<Address> {\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 createSignedTransaction(\n _chain: Address,\n _elevatedPayloads: AllowedBlockPayload[],\n _additionalPayloads: Payload[],\n _nbf: number,\n _exp: number,\n _fees: TransactionFeesBigInt,\n _from?: Address,\n ): Promisable<Signed<TransactionBoundWitness>> {\n throw new Error('Method not implemented.')\n }\n\n currentBlock(): Promisable<HydratedBlock> {\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: BlockBoundWitness = assertEx(await findMostRecentBlock(chainArchivist, { cursor: startingBlock }), () => 'Unable to find most recent block')\n const iterator = await ChainBlockNumberIterationService.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 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<HydratedTransaction | null> {\n throw new Error('Method not implemented.')\n }\n\n transactionByBlockNumberAndIndex(_blockNumber: number, _transactionIndex: number): Promisable<HydratedTransaction | null> {\n throw new Error('Method not implemented.')\n }\n\n transactionByHash(_transactionHash: Hash): Promisable<HydratedTransaction | 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":["Avatar","React","createContextEx","ChainNetworkContext","ErrorRender","usePromise","React","useCallback","useMemo","useState","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","SvgIcon","React","LocalNetworkSvg","LocalNetworkIconString","default","SvgIcon","React","MainNetworkSvg","MainNetworkIconString","default","SvgIcon","React","SequenceNetworkSvg","SequenceNetworkIconString","default","AsObjectFactory","isPayloadOfSchemaType","NetworkBootstrapSchema","isNetworkBootstrap","asOptionalNetwork","createOptional","MainNetwork","description","icon","MainNetworkIconString","id","name","schema","NetworkBootstrapSchema","symbol","url","explorerUrl","SequenceNetwork","SequenceNetworkIconString","LocalNetwork","LocalNetworkIconString","DefaultNetworks","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","React","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","assertEx","asArchivistInstance","initBridge","findMostRecentBlock","ChainBlockNumberIterationService","PayloadBuilder","hydrateBlock","FINALIZED_ARCHIVIST","NetworkProvider","_bridge","bridge","assertEx","create","network","initBridge","accountBalance","_address","Error","accountHistory","accounts","addChain","_chain","_name","address","blockByHash","_hash","blockByNumber","_blockNumber","blocksByHash","_limit","broadcastTransaction","_transaction","chain","chainId","chains","createSignedTransaction","_elevatedPayloads","_additionalPayloads","_nbf","_exp","_fees","_from","currentBlock","currentBlockHash","currentBlockNumber","permissions","previousBlocks","startingBlock","count","chainArchivist","getFinalizedArchivist","head","findMostRecentBlock","cursor","iterator","ChainBlockNumberIterationService","blocks","previous","block","hydratedBlocks","push","hydrateBlock","PayloadBuilder","hash","requestPermissions","_permissions","revokePermissions","signTransaction","switchChain","transactionByBlockHashAndIndex","_blockHash","_transactionIndex","transactionByBlockNumberAndIndex","transactionByHash","_transactionHash","mod","resolve","asArchivistInstance"]}
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"]}