@xyo-network/xl1-network-model 1.12.6

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 (58) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +791 -0
  3. package/dist/neutral/icons/index.d.ts +4 -0
  4. package/dist/neutral/icons/index.d.ts.map +1 -0
  5. package/dist/neutral/icons/local/index.d.ts +2 -0
  6. package/dist/neutral/icons/local/index.d.ts.map +1 -0
  7. package/dist/neutral/icons/mainnet/index.d.ts +2 -0
  8. package/dist/neutral/icons/mainnet/index.d.ts.map +1 -0
  9. package/dist/neutral/icons/sequence/index.d.ts +2 -0
  10. package/dist/neutral/icons/sequence/index.d.ts.map +1 -0
  11. package/dist/neutral/index.d.ts +5 -0
  12. package/dist/neutral/index.d.ts.map +1 -0
  13. package/dist/neutral/index.mjs +120 -0
  14. package/dist/neutral/index.mjs.map +1 -0
  15. package/dist/neutral/lib/Networks.d.ts +6 -0
  16. package/dist/neutral/lib/Networks.d.ts.map +1 -0
  17. package/dist/neutral/lib/index.d.ts +2 -0
  18. package/dist/neutral/lib/index.d.ts.map +1 -0
  19. package/dist/neutral/manifest/index.d.ts +2 -0
  20. package/dist/neutral/manifest/index.d.ts.map +1 -0
  21. package/dist/neutral/manifest/networkManifest.d.ts +6 -0
  22. package/dist/neutral/manifest/networkManifest.d.ts.map +1 -0
  23. package/dist/neutral/models/Bootstrap.d.ts +45 -0
  24. package/dist/neutral/models/Bootstrap.d.ts.map +1 -0
  25. package/dist/neutral/models/index.d.ts +2 -0
  26. package/dist/neutral/models/index.d.ts.map +1 -0
  27. package/dist/neutral/modules/index.d.ts +2 -0
  28. package/dist/neutral/modules/index.d.ts.map +1 -0
  29. package/dist/neutral/modules/node/getNetworkNode.d.ts +2 -0
  30. package/dist/neutral/modules/node/getNetworkNode.d.ts.map +1 -0
  31. package/dist/neutral/modules/node/getNetworkNodes.d.ts +3 -0
  32. package/dist/neutral/modules/node/getNetworkNodes.d.ts.map +1 -0
  33. package/dist/neutral/modules/node/index.d.ts +4 -0
  34. package/dist/neutral/modules/node/index.d.ts.map +1 -0
  35. package/dist/neutral/modules/node/initNetworkNode.d.ts +4 -0
  36. package/dist/neutral/modules/node/initNetworkNode.d.ts.map +1 -0
  37. package/package.json +81 -0
  38. package/src/icons/index.ts +3 -0
  39. package/src/icons/local/index.ts +1 -0
  40. package/src/icons/local/local.svg +1 -0
  41. package/src/icons/mainnet/index.ts +1 -0
  42. package/src/icons/mainnet/mainnet.svg +1 -0
  43. package/src/icons/sequence/index.ts +1 -0
  44. package/src/icons/sequence/testnet.svg +1 -0
  45. package/src/index.ts +4 -0
  46. package/src/lib/Networks.ts +42 -0
  47. package/src/lib/index.ts +1 -0
  48. package/src/manifest/index.ts +1 -0
  49. package/src/manifest/network.json +17 -0
  50. package/src/manifest/networkManifest.ts +8 -0
  51. package/src/models/Bootstrap.ts +55 -0
  52. package/src/models/index.ts +1 -0
  53. package/src/modules/index.ts +1 -0
  54. package/src/modules/node/getNetworkNode.ts +11 -0
  55. package/src/modules/node/getNetworkNodes.ts +7 -0
  56. package/src/modules/node/index.ts +3 -0
  57. package/src/modules/node/initNetworkNode.ts +15 -0
  58. package/src/types/images.d.ts +9 -0
@@ -0,0 +1,4 @@
1
+ export * from './local/index.ts';
2
+ export * from './mainnet/index.ts';
3
+ export * from './sequence/index.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default as LocalNetworkIconString } from './local.svg';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default as MainNetworkIconString } from './mainnet.svg';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/mainnet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default as SequenceNetworkIconString } from './testnet.svg';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/icons/sequence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './icons/index.ts';
2
+ export * from './lib/index.ts';
3
+ export * from './models/index.ts';
4
+ export * from './modules/index.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,120 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/icons/local/local.svg
5
+ var local_default = '<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><g style="opacity:.5;"><path d="M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z" style="fill:#f47f00;"/><path d="M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z" style="fill:#f47f00;"/><path d="M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z" style="fill:#f47f00;"/><path d="M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z" style="fill:#f47f00;"/></g><path d="M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z" style="fill:#f47f00;"/></svg>';
6
+
7
+ // src/icons/mainnet/mainnet.svg
8
+ var mainnet_default = '<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path d="M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z" style="fill:#8d8fc6;"/><path d="M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z" style="fill:#eb407a;"/><path d="M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z" style="fill:#579fd6;"/><path d="M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z" style="fill:#f27046;"/><path d="M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z" style="fill:#572aff;"/></svg>';
9
+
10
+ // src/icons/sequence/testnet.svg
11
+ var testnet_default = '<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><g style="opacity:.5;"><path d="M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z" style="fill:#579fd6;"/><path d="M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z" style="fill:#579fd6;"/><path d="M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z" style="fill:#579fd6;"/><path d="M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z" style="fill:#579fd6;"/></g><path d="M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z" style="fill:#579fd6;"/></svg>';
12
+
13
+ // src/models/Bootstrap.ts
14
+ import { AsObjectFactory } from "@xylabs/object";
15
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
16
+ var NetworkBootstrapSchema = "network.xyo.network.bootstrap";
17
+ var isNetworkBootstrap = isPayloadOfSchemaType(NetworkBootstrapSchema);
18
+ var asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap);
19
+
20
+ // src/lib/Networks.ts
21
+ var MainNetwork = {
22
+ description: "Main Network for XYO Layer 1",
23
+ icon: mainnet_default,
24
+ id: "mainnet",
25
+ name: "Mainnet",
26
+ schema: NetworkBootstrapSchema,
27
+ symbol: "XL1",
28
+ url: "https://api.chain.xyo.network",
29
+ explorerUrl: "https://explore.xyo.network"
30
+ };
31
+ var SequenceNetwork = {
32
+ description: "Test Network for XYO Layer 1",
33
+ icon: testnet_default,
34
+ id: "sequence",
35
+ name: "Sequence",
36
+ schema: NetworkBootstrapSchema,
37
+ symbol: "XL1",
38
+ url: "https://beta.api.chain.xyo.network",
39
+ explorerUrl: "https://beta.explore.xyo.network"
40
+ };
41
+ var LocalNetwork = {
42
+ description: "Local Node",
43
+ icon: local_default,
44
+ id: "local",
45
+ name: "Local",
46
+ schema: NetworkBootstrapSchema,
47
+ symbol: "XL1",
48
+ url: "http://localhost:8080",
49
+ explorerUrl: "http://localhost:3000"
50
+ };
51
+ var DefaultNetworks = [
52
+ MainNetwork,
53
+ SequenceNetwork,
54
+ LocalNetwork
55
+ ];
56
+
57
+ // src/modules/node/getNetworkNode.ts
58
+ import { ManifestWrapper } from "@xyo-network/manifest-wrapper";
59
+ import { ModuleFactoryLocator } from "@xyo-network/module-factory-locator";
60
+ import { HDWallet } from "@xyo-network/wallet";
61
+
62
+ // src/manifest/network.json
63
+ var network_default = {
64
+ $schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
65
+ nodes: [
66
+ {
67
+ config: {
68
+ accountPath: "44'/60'/1",
69
+ name: "Network",
70
+ schema: "network.xyo.node.config"
71
+ },
72
+ modules: {
73
+ private: [],
74
+ public: []
75
+ }
76
+ }
77
+ ],
78
+ schema: "network.xyo.manifest"
79
+ };
80
+
81
+ // src/manifest/networkManifest.ts
82
+ var NetworkNodeManifest = network_default;
83
+
84
+ // src/modules/node/getNetworkNode.ts
85
+ var getNetworkNode = /* @__PURE__ */ __name(async () => {
86
+ const wrapper = new ManifestWrapper(NetworkNodeManifest, await HDWallet.random(), new ModuleFactoryLocator());
87
+ const [node] = await wrapper.loadNodes();
88
+ return node;
89
+ }, "getNetworkNode");
90
+
91
+ // src/modules/node/getNetworkNodes.ts
92
+ var networkNodeMap = /* @__PURE__ */ new Map();
93
+ var getNetworkNodes = /* @__PURE__ */ __name(() => {
94
+ return networkNodeMap;
95
+ }, "getNetworkNodes");
96
+
97
+ // src/modules/node/initNetworkNode.ts
98
+ var initNetworkNode = /* @__PURE__ */ __name(async (activeNetwork) => {
99
+ const networkNodeMap2 = getNetworkNodes();
100
+ if (networkNodeMap2.has(activeNetwork.url)) return networkNodeMap2.get(activeNetwork.url);
101
+ const activeNetworkNode = await getNetworkNode();
102
+ networkNodeMap2.set(activeNetwork.url, activeNetworkNode);
103
+ return activeNetworkNode;
104
+ }, "initNetworkNode");
105
+ export {
106
+ DefaultNetworks,
107
+ LocalNetwork,
108
+ local_default as LocalNetworkIconString,
109
+ MainNetwork,
110
+ mainnet_default as MainNetworkIconString,
111
+ NetworkBootstrapSchema,
112
+ SequenceNetwork,
113
+ testnet_default as SequenceNetworkIconString,
114
+ asOptionalNetwork,
115
+ getNetworkNode,
116
+ getNetworkNodes,
117
+ initNetworkNode,
118
+ isNetworkBootstrap
119
+ };
120
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/icons/local/local.svg","../../src/icons/mainnet/mainnet.svg","../../src/icons/sequence/testnet.svg","../../src/models/Bootstrap.ts","../../src/lib/Networks.ts","../../src/modules/node/getNetworkNode.ts","../../src/manifest/network.json","../../src/manifest/networkManifest.ts","../../src/modules/node/getNetworkNodes.ts","../../src/modules/node/initNetworkNode.ts"],"sourcesContent":["<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#f47f00;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#f47f00;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f47f00;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#f47f00;\"/></svg>","<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#8d8fc6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#eb407a;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#f27046;\"/><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#572aff;\"/></svg>","<?xml version=\"1.0\" encoding=\"UTF-8\"?><svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><g style=\"opacity:.5;\"><path d=\"M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z\" style=\"fill:#579fd6;\"/><path d=\"M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z\" style=\"fill:#579fd6;\"/><path d=\"M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z\" style=\"fill:#579fd6;\"/></g><path d=\"M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z\" style=\"fill:#579fd6;\"/></svg>","import type { Address, Hex } 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\n/** @deprecated only for backward compatibility */\nexport interface ChainConnection {\n /** Chain Identifier - can be a hex (eth contract address) or a string */\n chain?: Hex\n /** Name of the chain */\n name: string\n /** Url for accessing the network */\n url: string\n}\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 schema: NetworkBootstrapSchema\n /** Symbol of the network */\n symbol?: string\n}\n\n/** Note: Optional Properties can be found walking the chain to the genesis block */\n// eslint-disable-next-line sonarjs/deprecation\nexport interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {}\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 type { NetworkId } from '@xyo-network/xl1-protocol'\n\nimport {\n LocalNetworkIconString, MainNetworkIconString, SequenceNetworkIconString,\n} from '../icons/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' as NetworkId,\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' as NetworkId,\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' as NetworkId,\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 { 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\nconst networkNodeMap = new Map<string, AttachableNodeInstance>()\n\nexport const getNetworkNodes = () => {\n return networkNodeMap\n}\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"],"mappings":";;;;AAAA;;;ACAA;;;ACAA;;;ACCA,SAASA,uBAAuB;AAEhC,SAASC,6BAA6B;AAa/B,IAAMC,yBAAyB;AAoC/B,IAAMC,qBAAqBF,sBAAwCC,sBAAAA;AAEnE,IAAME,oBAAoBJ,gBAAgBK,eAAeF,kBAAAA;;;AC9CzD,IAAMG,cAAgC;EAC3CC,aAAa;EACbC,MAAMC;EACNC,IAAI;EACJC,MAAM;EACNC,QAAQC;EACRC,QAAQ;EACRC,KAAK;EACLC,aAAa;AACf;AAEO,IAAMC,kBAAoC;EAC/CV,aAAa;EACbC,MAAMU;EACNR,IAAI;EACJC,MAAM;EACNC,QAAQC;EACRC,QAAQ;EACRC,KAAK;EACLC,aAAa;AACf;AAEO,IAAMG,eAAiC;EAC5CZ,aAAa;EACbC,MAAMY;EACNV,IAAI;EACJC,MAAM;EACNC,QAAQC;EACRC,QAAQ;EACRC,KAAK;EACLC,aAAa;AACf;AAEO,IAAMK,kBAAsC;EAACf;EAAaW;EAAiBE;;;;ACzClF,SAASG,uBAAuB;AAChC,SAASC,4BAA4B;AACrC,SAASC,gBAAgB;;;ACFzB;AAAA,EACE,SAAW;AAAA,EACX,OAAS;AAAA,IACP;AAAA,MACE,QAAU;AAAA,QACR,aAAe;AAAA,QACf,MAAQ;AAAA,QACR,QAAU;AAAA,MACZ;AAAA,MACA,SAAW;AAAA,QACT,SAAW,CAAC;AAAA,QACZ,QAAU,CAAC;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAU;AACZ;;;ACTO,IAAMC,sBAAsBC;;;AFD5B,IAAMC,iBAAiB,mCAAA;AAC5B,QAAMC,UAAU,IAAIC,gBAAgBC,qBAAqB,MAAMC,SAASC,OAAM,GAAI,IAAIC,qBAAAA,CAAAA;AACtF,QAAM,CAACC,IAAAA,IAAQ,MAAMN,QAAQO,UAAS;AACtC,SAAOD;AACT,GAJ8B;;;AGJ9B,IAAME,iBAAiB,oBAAIC,IAAAA;AAEpB,IAAMC,kBAAkB,6BAAA;AAC7B,SAAOF;AACT,GAF+B;;;ACExB,IAAMG,kBAAkB,8BAAOC,kBAAAA;AACpC,QAAMC,kBAAiBC,gBAAAA;AACvB,MAAID,gBAAeE,IAAIH,cAAcI,GAAG,EAAG,QAAOH,gBAAeI,IAAIL,cAAcI,GAAG;AAEtF,QAAME,oBAAoB,MAAMC,eAAAA;AAChCN,EAAAA,gBAAeO,IAAIR,cAAcI,KAAKE,iBAAAA;AAEtC,SAAOA;AACT,GAR+B;","names":["AsObjectFactory","isPayloadOfSchemaType","NetworkBootstrapSchema","isNetworkBootstrap","asOptionalNetwork","createOptional","MainNetwork","description","icon","MainNetworkIconString","id","name","schema","NetworkBootstrapSchema","symbol","url","explorerUrl","SequenceNetwork","SequenceNetworkIconString","LocalNetwork","LocalNetworkIconString","DefaultNetworks","ManifestWrapper","ModuleFactoryLocator","HDWallet","NetworkNodeManifest","node","getNetworkNode","wrapper","ManifestWrapper","NetworkNodeManifest","HDWallet","random","ModuleFactoryLocator","node","loadNodes","networkNodeMap","Map","getNetworkNodes","initNetworkNode","activeNetwork","networkNodeMap","getNetworkNodes","has","url","get","activeNetworkNode","getNetworkNode","set"]}
@@ -0,0 +1,6 @@
1
+ import type { NetworkBootstrap } from '../models/index.ts';
2
+ export declare const MainNetwork: NetworkBootstrap;
3
+ export declare const SequenceNetwork: NetworkBootstrap;
4
+ export declare const LocalNetwork: NetworkBootstrap;
5
+ export declare const DefaultNetworks: NetworkBootstrap[];
6
+ //# sourceMappingURL=Networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Networks.d.ts","sourceRoot":"","sources":["../../../src/lib/Networks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,eAAO,MAAM,WAAW,EAAE,gBASzB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,gBAS7B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,gBAS1B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAAiD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './Networks.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './networkManifest.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/manifest/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { PackageManifestPayload } from '@xyo-network/manifest-model';
2
+ /**
3
+ * Root Node Manifest
4
+ */
5
+ export declare const NetworkNodeManifest: PackageManifestPayload;
6
+ //# sourceMappingURL=networkManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkManifest.d.ts","sourceRoot":"","sources":["../../../src/manifest/networkManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAIzE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAW,sBAAsB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import type { Address, Hex } from '@xylabs/hex';
2
+ import type { Payload } from '@xyo-network/payload-model';
3
+ import type { NetworkId } from '@xyo-network/xl1-protocol';
4
+ /** @deprecated only for backward compatibility */
5
+ export interface ChainConnection {
6
+ /** Chain Identifier - can be a hex (eth contract address) or a string */
7
+ chain?: Hex;
8
+ /** Name of the chain */
9
+ name: string;
10
+ /** Url for accessing the network */
11
+ url: string;
12
+ }
13
+ export declare const NetworkBootstrapSchema: "network.xyo.network.bootstrap";
14
+ export type NetworkBootstrapSchema = typeof NetworkBootstrapSchema;
15
+ export interface ChainForkFields {
16
+ /** Block Number at which the chain was forked from */
17
+ forkedAtLastBlockNumber?: string;
18
+ /** Hash in the last block the chain was forked from */
19
+ forkedAtLastHash?: string;
20
+ /** Address of the forked chain */
21
+ forkedChainId?: Address;
22
+ }
23
+ export interface NetworkFields {
24
+ /** Description of the network */
25
+ description: string;
26
+ /** Url for accessing the network explorer */
27
+ explorerUrl?: string;
28
+ /** string representation of the icon (svg) */
29
+ icon?: string;
30
+ /** Machine-readable identifier */
31
+ id: NetworkId;
32
+ schema: NetworkBootstrapSchema;
33
+ /** Symbol of the network */
34
+ symbol?: string;
35
+ }
36
+ /** Note: Optional Properties can be found walking the chain to the genesis block */
37
+ export interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {
38
+ }
39
+ export interface Network extends NetworkBootstrap {
40
+ custom: boolean;
41
+ }
42
+ export type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>;
43
+ export declare const isNetworkBootstrap: (x?: unknown | null) => x is NetworkBootstrap;
44
+ export declare const asOptionalNetwork: (value: import("@xylabs/promise").AnyNonPromise) => NetworkBootstrap | undefined;
45
+ //# sourceMappingURL=Bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bootstrap.d.ts","sourceRoot":"","sources":["../../../src/models/Bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,sBAAsB,EAAG,+BAAwC,CAAA;AAC9E,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kCAAkC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,EAAE,EAAE,SAAS,CAAA;IACb,MAAM,EAAE,sBAAsB,CAAA;IAC9B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,oFAAoF;AAEpF,MAAM,WAAW,sBAAuB,SAAQ,aAAa,EAAE,eAAe,EAAE,eAAe;CAAG;AAElG,MAAM,WAAW,OAAQ,SAAQ,gBAAgB;IAC/C,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAA;AAEtF,eAAO,MAAM,kBAAkB,+CAAkE,CAAA;AAEjG,eAAO,MAAM,iBAAiB,kFAAqD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './Bootstrap.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './node/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const getNetworkNode: () => Promise<import("@xyo-network/node-memory").MemoryNode<import("@xyo-network/node-memory").MemoryNodeParams, import("@xyo-network/node-model").NodeModuleEventData>>;
2
+ //# sourceMappingURL=getNetworkNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNetworkNode.d.ts","sourceRoot":"","sources":["../../../../src/modules/node/getNetworkNode.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,0KAI1B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { AttachableNodeInstance } from '@xyo-network/node-model';
2
+ export declare const getNetworkNodes: () => Map<string, AttachableNodeInstance<import("@xyo-network/node-model").NodeParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/node-model").NodeConfig>>, import("@xyo-network/node-model").NodeModuleEventData>>;
3
+ //# sourceMappingURL=getNetworkNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNetworkNodes.d.ts","sourceRoot":"","sources":["../../../../src/modules/node/getNetworkNodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAIrE,eAAO,MAAM,eAAe,mPAE3B,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './getNetworkNode.ts';
2
+ export * from './getNetworkNodes.ts';
3
+ export * from './initNetworkNode.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/node/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { AttachableNodeInstance } from '@xyo-network/node-model';
2
+ import type { NetworkBootstrap } from '../../models/index.ts';
3
+ export declare const initNetworkNode: (activeNetwork: NetworkBootstrap) => Promise<AttachableNodeInstance>;
4
+ //# sourceMappingURL=initNetworkNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initNetworkNode.d.ts","sourceRoot":"","sources":["../../../../src/modules/node/initNetworkNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAI7D,eAAO,MAAM,eAAe,GAAU,eAAe,gBAAgB,KAAG,OAAO,CAAC,sBAAsB,CAQrG,CAAA"}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "$schema": "http://json.schemastore.org/package.json",
3
+ "name": "@xyo-network/xl1-network-model",
4
+ "version": "1.12.6",
5
+ "description": "XYO Layer One API",
6
+ "homepage": "https://xylabs.com",
7
+ "bugs": {
8
+ "url": "git+https://github.com/xylabs/xyo-chain/issues",
9
+ "email": "support@xylabs.com"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/xylabs/xyo-chain.git"
14
+ },
15
+ "license": "LGPL-3.0-only",
16
+ "author": {
17
+ "name": "XY Labs Development Team",
18
+ "email": "support@xylabs.com",
19
+ "url": "https://xylabs.com"
20
+ },
21
+ "sideEffects": false,
22
+ "type": "module",
23
+ "exports": {
24
+ ".": {
25
+ "browser": {
26
+ "types": "./dist/neutral/index.d.ts",
27
+ "src": "./src/index.ts",
28
+ "default": "./dist/neutral/index.mjs"
29
+ },
30
+ "node": {
31
+ "types": "./dist/neutral/index.d.ts",
32
+ "src": "./src/index.ts",
33
+ "default": "./dist/neutral/index.mjs"
34
+ },
35
+ "neutral": {
36
+ "types": "./dist/neutral/index.d.ts",
37
+ "src": "./src/index.ts",
38
+ "default": "./dist/neutral/index.mjs"
39
+ }
40
+ }
41
+ },
42
+ "module": "./dist/neutral/index.mjs",
43
+ "types": "./dist/neutral/index.d.ts",
44
+ "files": [
45
+ "dist",
46
+ "src"
47
+ ],
48
+ "dependencies": {
49
+ "@xylabs/hex": "~5.0.10",
50
+ "@xylabs/object": "~5.0.10",
51
+ "@xyo-network/manifest-model": "~5.0.7",
52
+ "@xyo-network/manifest-wrapper": "~5.0.7",
53
+ "@xyo-network/module-factory-locator": "~5.0.7",
54
+ "@xyo-network/node-model": "~5.0.7",
55
+ "@xyo-network/payload-model": "~5.0.7",
56
+ "@xyo-network/wallet": "~5.0.7",
57
+ "@xyo-network/xl1-protocol": "~1.10.15"
58
+ },
59
+ "devDependencies": {
60
+ "@types/node": "~24.3.0",
61
+ "@xylabs/ts-scripts-yarn3": "~7.1.3",
62
+ "@xylabs/tsconfig": "~7.1.3",
63
+ "@xylabs/vitest-extended": "~5.0.10",
64
+ "copyfiles": "~2.4.1",
65
+ "dotenv": "~17.2.1",
66
+ "typescript": "~5.9.2",
67
+ "vitest": "~3.2.4"
68
+ },
69
+ "packageManager": "yarn@4.6.0",
70
+ "engines": {
71
+ "node": ">=22"
72
+ },
73
+ "volta": {
74
+ "node": "22.5.1",
75
+ "yarn": "4.6.0"
76
+ },
77
+ "publishConfig": {
78
+ "access": "public"
79
+ },
80
+ "src": "./src/index.ts"
81
+ }
@@ -0,0 +1,3 @@
1
+ export * from './local/index.ts'
2
+ export * from './mainnet/index.ts'
3
+ export * from './sequence/index.ts'
@@ -0,0 +1 @@
1
+ export { default as LocalNetworkIconString } from './local.svg'
@@ -0,0 +1 @@
1
+ <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><g style="opacity:.5;"><path d="M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z" style="fill:#f47f00;"/><path d="M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z" style="fill:#f47f00;"/><path d="M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z" style="fill:#f47f00;"/><path d="M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z" style="fill:#f47f00;"/></g><path d="M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z" style="fill:#f47f00;"/></svg>
@@ -0,0 +1 @@
1
+ export { default as MainNetworkIconString } from './mainnet.svg'
@@ -0,0 +1 @@
1
+ <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path d="M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z" style="fill:#8d8fc6;"/><path d="M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z" style="fill:#eb407a;"/><path d="M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z" style="fill:#579fd6;"/><path d="M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z" style="fill:#f27046;"/><path d="M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z" style="fill:#572aff;"/></svg>
@@ -0,0 +1 @@
1
+ export { default as SequenceNetworkIconString } from './testnet.svg'
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><g style="opacity:.5;"><path d="M154.71,97c.46,2.59,2.5,4.62,5.1,5.05l14.05,2.34,31.71-46.17c4.57-6.65-3.62-14.62-10.14-9.87l-43.68,31.83,2.97,16.82Z" style="fill:#579fd6;"/><path d="M173.86,151.62l-14.05,2.34c-2.6.43-4.64,2.45-5.1,5.05l-2.97,16.82,43.68,31.83c6.52,4.75,14.71-3.21,10.14-9.87l-31.71-46.17Z" style="fill:#579fd6;"/><path d="M82.14,104.38l14.05-2.34c2.6-.43,4.64-2.45,5.1-5.05l2.97-16.82-43.68-31.83c-6.52-4.75-14.71,3.21-10.14,9.87l31.71,46.17Z" style="fill:#579fd6;"/><path d="M101.29,159c-.46-2.59-2.5-4.62-5.1-5.05l-14.05-2.34-31.71,46.17c-4.57,6.65,3.62,14.62,10.14,9.87l43.68-31.83-2.97-16.82Z" style="fill:#579fd6;"/></g><path d="M107.33,104l15.94-90.32c.93-5.3,8.53-5.3,9.47,0l15.94,90.32c.35,2.01,1.94,3.57,3.95,3.91l92.24,15.35c5.36.89,5.36,8.59,0,9.49l-92.24,15.35c-2.01.33-3.59,1.9-3.95,3.91l-15.94,90.32c-.93,5.3-8.53,5.3-9.47,0l-15.94-90.32c-.35-2.01-1.94-3.57-3.95-3.91l-92.24-15.35c-5.36-.89-5.36-8.59,0-9.49l92.24-15.35c2.01-.33,3.59-1.9,3.95-3.91Z" style="fill:#579fd6;"/></svg>
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './icons/index.ts'
2
+ export * from './lib/index.ts'
3
+ export * from './models/index.ts'
4
+ export * from './modules/index.ts'
@@ -0,0 +1,42 @@
1
+ import type { NetworkId } from '@xyo-network/xl1-protocol'
2
+
3
+ import {
4
+ LocalNetworkIconString, MainNetworkIconString, SequenceNetworkIconString,
5
+ } from '../icons/index.ts'
6
+ import type { NetworkBootstrap } from '../models/index.ts'
7
+ import { NetworkBootstrapSchema } from '../models/index.ts'
8
+
9
+ export const MainNetwork: NetworkBootstrap = {
10
+ description: 'Main Network for XYO Layer 1',
11
+ icon: MainNetworkIconString,
12
+ id: 'mainnet' as NetworkId,
13
+ name: 'Mainnet',
14
+ schema: NetworkBootstrapSchema,
15
+ symbol: 'XL1',
16
+ url: 'https://api.chain.xyo.network',
17
+ explorerUrl: 'https://explore.xyo.network',
18
+ }
19
+
20
+ export const SequenceNetwork: NetworkBootstrap = {
21
+ description: 'Test Network for XYO Layer 1',
22
+ icon: SequenceNetworkIconString,
23
+ id: 'sequence' as NetworkId,
24
+ name: 'Sequence',
25
+ schema: NetworkBootstrapSchema,
26
+ symbol: 'XL1',
27
+ url: 'https://beta.api.chain.xyo.network',
28
+ explorerUrl: 'https://beta.explore.xyo.network',
29
+ }
30
+
31
+ export const LocalNetwork: NetworkBootstrap = {
32
+ description: 'Local Node',
33
+ icon: LocalNetworkIconString,
34
+ id: 'local' as NetworkId,
35
+ name: 'Local',
36
+ schema: NetworkBootstrapSchema,
37
+ symbol: 'XL1',
38
+ url: 'http://localhost:8080',
39
+ explorerUrl: 'http://localhost:3000',
40
+ }
41
+
42
+ export const DefaultNetworks: NetworkBootstrap[] = [MainNetwork, SequenceNetwork, LocalNetwork]
@@ -0,0 +1 @@
1
+ export * from './Networks.ts'
@@ -0,0 +1 @@
1
+ export * from './networkManifest.ts'
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
3
+ "nodes": [
4
+ {
5
+ "config": {
6
+ "accountPath": "44'/60'/1",
7
+ "name": "Network",
8
+ "schema": "network.xyo.node.config"
9
+ },
10
+ "modules": {
11
+ "private": [],
12
+ "public": []
13
+ }
14
+ }
15
+ ],
16
+ "schema": "network.xyo.manifest"
17
+ }
@@ -0,0 +1,8 @@
1
+ import type { PackageManifestPayload } from '@xyo-network/manifest-model'
2
+
3
+ import node from './network.json' with { type: 'json' }
4
+
5
+ /**
6
+ * Root Node Manifest
7
+ */
8
+ export const NetworkNodeManifest = node as PackageManifestPayload
@@ -0,0 +1,55 @@
1
+ import type { Address, Hex } from '@xylabs/hex'
2
+ import { AsObjectFactory } from '@xylabs/object'
3
+ import type { Payload } from '@xyo-network/payload-model'
4
+ import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
5
+ import type { NetworkId } from '@xyo-network/xl1-protocol'
6
+
7
+ /** @deprecated only for backward compatibility */
8
+ export interface ChainConnection {
9
+ /** Chain Identifier - can be a hex (eth contract address) or a string */
10
+ chain?: Hex
11
+ /** Name of the chain */
12
+ name: string
13
+ /** Url for accessing the network */
14
+ url: string
15
+ }
16
+
17
+ export const NetworkBootstrapSchema = 'network.xyo.network.bootstrap' as const
18
+ export type NetworkBootstrapSchema = typeof NetworkBootstrapSchema
19
+
20
+ export interface ChainForkFields {
21
+ /** Block Number at which the chain was forked from */
22
+ forkedAtLastBlockNumber?: string
23
+ /** Hash in the last block the chain was forked from */
24
+ forkedAtLastHash?: string
25
+ /** Address of the forked chain */
26
+ forkedChainId?: Address
27
+ }
28
+
29
+ export interface NetworkFields {
30
+ /** Description of the network */
31
+ description: string
32
+ /** Url for accessing the network explorer */
33
+ explorerUrl?: string
34
+ /** string representation of the icon (svg) */
35
+ icon?: string
36
+ /** Machine-readable identifier */
37
+ id: NetworkId
38
+ schema: NetworkBootstrapSchema
39
+ /** Symbol of the network */
40
+ symbol?: string
41
+ }
42
+
43
+ /** Note: Optional Properties can be found walking the chain to the genesis block */
44
+ // eslint-disable-next-line sonarjs/deprecation
45
+ export interface NetworkBootstrapFields extends NetworkFields, ChainForkFields, ChainConnection {}
46
+
47
+ export interface Network extends NetworkBootstrap {
48
+ custom: boolean
49
+ }
50
+
51
+ export type NetworkBootstrap = Payload<NetworkBootstrapFields, NetworkBootstrapSchema>
52
+
53
+ export const isNetworkBootstrap = isPayloadOfSchemaType<NetworkBootstrap>(NetworkBootstrapSchema)
54
+
55
+ export const asOptionalNetwork = AsObjectFactory.createOptional(isNetworkBootstrap)
@@ -0,0 +1 @@
1
+ export * from './Bootstrap.ts'
@@ -0,0 +1 @@
1
+ export * from './node/index.ts'
@@ -0,0 +1,11 @@
1
+ import { ManifestWrapper } from '@xyo-network/manifest-wrapper'
2
+ import { ModuleFactoryLocator } from '@xyo-network/module-factory-locator'
3
+ import { HDWallet } from '@xyo-network/wallet'
4
+
5
+ import { NetworkNodeManifest } from '../../manifest/index.ts'
6
+
7
+ export const getNetworkNode = async () => {
8
+ const wrapper = new ManifestWrapper(NetworkNodeManifest, await HDWallet.random(), new ModuleFactoryLocator())
9
+ const [node] = await wrapper.loadNodes()
10
+ return node
11
+ }
@@ -0,0 +1,7 @@
1
+ import type { AttachableNodeInstance } from '@xyo-network/node-model'
2
+
3
+ const networkNodeMap = new Map<string, AttachableNodeInstance>()
4
+
5
+ export const getNetworkNodes = () => {
6
+ return networkNodeMap
7
+ }