@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.
- package/dist/browser/index.mjs +113 -253
- package/dist/browser/index.mjs.map +1 -1
- package/dist/types/components/menu/MenuItem.d.ts +1 -1
- package/dist/types/components/menu/MenuItem.d.ts.map +1 -1
- package/dist/types/context/network/Provider.d.ts +1 -1
- package/dist/types/context/network/Provider.d.ts.map +1 -1
- package/dist/types/context/network/context.d.ts +9 -9
- package/dist/types/context/network/state.d.ts +1 -1
- package/dist/types/context/network/state.d.ts.map +1 -1
- package/dist/types/context/network/use.d.ts +3 -3
- package/dist/types/helpers/Networks.d.ts +4 -0
- package/dist/types/helpers/Networks.d.ts.map +1 -1
- package/dist/types/helpers/getNetworkNode.d.ts +2 -10
- package/dist/types/helpers/getNetworkNode.d.ts.map +1 -1
- package/dist/types/helpers/getNetworkNodes.d.ts +2 -10
- package/dist/types/helpers/getNetworkNodes.d.ts.map +1 -1
- package/dist/types/helpers/initNetworkNode.d.ts +1 -0
- package/dist/types/helpers/initNetworkNode.d.ts.map +1 -1
- package/dist/types/images/icons/local/index.d.ts +0 -1
- package/dist/types/images/icons/local/index.d.ts.map +1 -1
- package/dist/types/images/icons/mainnet/index.d.ts +0 -1
- package/dist/types/images/icons/mainnet/index.d.ts.map +1 -1
- package/dist/types/images/icons/sequence/index.d.ts +0 -1
- package/dist/types/images/icons/sequence/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/models/Bootstrap.d.ts +11 -8
- package/dist/types/models/Bootstrap.d.ts.map +1 -1
- package/package.json +22 -21
- package/src/components/menu/MenuItem.tsx +1 -1
- package/src/context/network/Provider.tsx +2 -2
- package/src/context/network/state.ts +1 -2
- package/src/helpers/Networks.ts +7 -6
- package/src/helpers/getNetworkNode.ts +1 -0
- package/src/helpers/getNetworkNodes.ts +1 -0
- package/src/helpers/initNetworkNode.ts +1 -0
- package/src/images/icons/local/index.tsx +4 -4
- package/src/images/icons/mainnet/index.tsx +4 -4
- package/src/images/icons/sequence/index.tsx +4 -4
- package/src/index.ts +0 -1
- package/src/models/Bootstrap.ts +11 -9
- package/dist/browser/XL1_Logo_Icon_Localhost-2ZA6P5DV.svg +0 -1
- package/dist/browser/XL1_Logo_Icon_Mainnet-OLUPYV7Q.svg +0 -1
- package/dist/browser/XL1_Logo_Icon_Testnet-HCQCTXVQ.svg +0 -1
- package/dist/types/provider/NetworkProvider.d.ts +0 -47
- package/dist/types/provider/NetworkProvider.d.ts.map +0 -1
- package/dist/types/provider/index.d.ts +0 -2
- package/dist/types/provider/index.d.ts.map +0 -1
- package/src/images/icons/local/XL1_Logo_Icon_Localhost.svg +0 -1
- package/src/images/icons/mainnet/XL1_Logo_Icon_Mainnet.svg +0 -1
- package/src/images/icons/sequence/XL1_Logo_Icon_Testnet.svg +0 -1
- package/src/provider/NetworkProvider.ts +0 -176
- package/src/provider/index.ts +0 -1
package/dist/browser/index.mjs
CHANGED
|
@@ -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
|
|
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
|
|
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__ */
|
|
63
|
+
return /* @__PURE__ */ React.createElement(ChainNetworkContext, {
|
|
176
64
|
value
|
|
177
|
-
}, /* @__PURE__ */
|
|
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
|
|
77
|
+
import React2 from "react";
|
|
190
78
|
var NetworkIcon = /* @__PURE__ */ __name(({ icon, ...props }) => {
|
|
191
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
133
|
+
}, /* @__PURE__ */ React4.createElement(NetworkAvatar, {
|
|
246
134
|
icon: network?.icon,
|
|
247
135
|
name: network?.name
|
|
248
|
-
}), /* @__PURE__ */
|
|
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
|
|
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
|
|
145
|
+
import React5 from "react";
|
|
258
146
|
var NetworkStatusDialog = /* @__PURE__ */ __name(({ updates, ...props }) => {
|
|
259
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
190
|
+
return /* @__PURE__ */ React6.createElement(Alert, {
|
|
303
191
|
severity,
|
|
304
192
|
...props
|
|
305
|
-
}, /* @__PURE__ */
|
|
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__ */
|
|
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/
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
import {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
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
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
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"]}
|