@xyo-network/react-sentinel 2.46.0-rc.2 → 2.46.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,11 +4,13 @@ exports.SentinelProvider = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_shared_1 = require("@xylabs/react-shared");
7
+ const react_node_1 = require("@xyo-network/react-node");
7
8
  const sentinel_1 = require("@xyo-network/sentinel");
8
9
  const react_1 = require("react");
9
10
  const Context_1 = require("./Context");
10
11
  const State_1 = require("./State");
11
12
  const SentinelProvider = ({ account, archivist, children, name, witnesses = [], required = false, }) => {
13
+ const [node] = (0, react_node_1.useNode)();
12
14
  const [sentinel, setSentinel] = (0, react_1.useState)();
13
15
  const [history, setHistory] = (0, react_1.useState)();
14
16
  const [progress, setProgress] = (0, react_1.useState)({});
@@ -17,6 +19,7 @@ const SentinelProvider = ({ account, archivist, children, name, witnesses = [],
17
19
  (0, react_shared_1.useAsyncEffect)(
18
20
  // eslint-disable-next-line react-hooks/exhaustive-deps
19
21
  (mounted) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
22
+ const witnessModules = yield (node === null || node === void 0 ? void 0 : node.resolve({ address: witnesses }));
20
23
  const sentinel = yield sentinel_1.MemorySentinel.create({
21
24
  account,
22
25
  config: {
@@ -25,23 +28,26 @@ const SentinelProvider = ({ account, archivist, children, name, witnesses = [],
25
28
  schema: sentinel_1.SentinelConfigSchema,
26
29
  witnesses,
27
30
  },
28
- onReportEnd: (_, errors) => {
29
- if (mounted()) {
30
- setProgress({
31
- archivists: progress.archivists,
32
- witnesses: progress.witnesses,
33
- });
34
- setStatus(errors ? State_1.SentinelReportStatus.Failed : State_1.SentinelReportStatus.Succeeded);
35
- setReportingErrors(errors);
36
- }
37
- },
38
- onReportStart: () => {
39
- if (mounted()) {
40
- setProgress({ archivists: {}, witnesses: {} });
41
- setStatus(State_1.SentinelReportStatus.Started);
42
- }
43
- },
44
- onWitnessReportEnd: (witness, error) => {
31
+ });
32
+ const offCallbacks = [];
33
+ offCallbacks.push(sentinel.on('onReportEnd', ({ errors }) => {
34
+ if (mounted()) {
35
+ setProgress({
36
+ archivists: progress.archivists,
37
+ witnesses: progress.witnesses,
38
+ });
39
+ setStatus(errors ? State_1.SentinelReportStatus.Failed : State_1.SentinelReportStatus.Succeeded);
40
+ setReportingErrors(errors);
41
+ }
42
+ }));
43
+ offCallbacks.push(sentinel.on('onReportStarted', () => {
44
+ if (mounted()) {
45
+ setProgress({ archivists: {}, witnesses: {} });
46
+ setStatus(State_1.SentinelReportStatus.Started);
47
+ }
48
+ }));
49
+ witnessModules === null || witnessModules === void 0 ? void 0 : witnessModules.forEach((witness) => {
50
+ offCallbacks.push(witness.on('onReportEnd', ({ witness, error }) => {
45
51
  var _a;
46
52
  const witnesses = (_a = progress.witnesses) !== null && _a !== void 0 ? _a : {};
47
53
  witnesses[witness.address] = {
@@ -54,8 +60,8 @@ const SentinelProvider = ({ account, archivist, children, name, witnesses = [],
54
60
  witnesses,
55
61
  });
56
62
  }
57
- },
58
- onWitnessReportStart: (witness) => {
63
+ }));
64
+ offCallbacks.push(witness.on('onReportStarted', ({ witness }) => {
59
65
  var _a;
60
66
  const witnesses = (_a = progress.witnesses) !== null && _a !== void 0 ? _a : {};
61
67
  witnesses[witness.address] = {
@@ -68,12 +74,18 @@ const SentinelProvider = ({ account, archivist, children, name, witnesses = [],
68
74
  witnesses,
69
75
  });
70
76
  }
71
- },
77
+ }));
72
78
  });
73
79
  setSentinel(sentinel);
80
+ return () => {
81
+ //unsubscribe from events
82
+ offCallbacks.forEach((callback) => {
83
+ callback();
84
+ });
85
+ };
74
86
  }),
75
87
  // eslint-disable-next-line react-hooks/exhaustive-deps
76
- [account, archivist, witnesses]);
88
+ [account, archivist, witnesses, node]);
77
89
  (0, react_1.useEffect)(() => {
78
90
  setHistory(sentinel === null || sentinel === void 0 ? void 0 : sentinel.history);
79
91
  }, [sentinel]);
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":"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"}
package/dist/docs.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
25
25
  "line": 11,
26
26
  "character": 2,
27
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L11"
27
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L11"
28
28
  }
29
29
  ],
30
30
  "type": {
@@ -43,7 +43,7 @@
43
43
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
44
44
  "line": 7,
45
45
  "character": 2,
46
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L7"
46
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L7"
47
47
  }
48
48
  ],
49
49
  "type": {
@@ -62,7 +62,7 @@
62
62
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
63
63
  "line": 8,
64
64
  "character": 2,
65
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L8"
65
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L8"
66
66
  }
67
67
  ],
68
68
  "type": {
@@ -81,7 +81,7 @@
81
81
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
82
82
  "line": 9,
83
83
  "character": 2,
84
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L9"
84
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L9"
85
85
  }
86
86
  ],
87
87
  "type": {
@@ -100,7 +100,7 @@
100
100
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
101
101
  "line": 10,
102
102
  "character": 2,
103
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L10"
103
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L10"
104
104
  }
105
105
  ],
106
106
  "type": {
@@ -126,7 +126,7 @@
126
126
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
127
127
  "line": 6,
128
128
  "character": 12,
129
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L6"
129
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L6"
130
130
  }
131
131
  ]
132
132
  },
@@ -148,7 +148,7 @@
148
148
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
149
149
  "line": 20,
150
150
  "character": 2,
151
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L20"
151
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L20"
152
152
  }
153
153
  ],
154
154
  "type": {
@@ -317,7 +317,7 @@
317
317
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
318
318
  "line": 21,
319
319
  "character": 2,
320
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L21"
320
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L21"
321
321
  }
322
322
  ],
323
323
  "type": {
@@ -341,7 +341,7 @@
341
341
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
342
342
  "line": 19,
343
343
  "character": 17,
344
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L19"
344
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L19"
345
345
  }
346
346
  ]
347
347
  },
@@ -365,7 +365,7 @@
365
365
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
366
366
  "line": 30,
367
367
  "character": 2,
368
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L30"
368
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L30"
369
369
  }
370
370
  ],
371
371
  "type": {
@@ -425,7 +425,7 @@
425
425
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
426
426
  "line": 31,
427
427
  "character": 2,
428
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L31"
428
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L31"
429
429
  }
430
430
  ],
431
431
  "type": {
@@ -447,7 +447,7 @@
447
447
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
448
448
  "line": 32,
449
449
  "character": 2,
450
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L32"
450
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L32"
451
451
  }
452
452
  ],
453
453
  "type": {
@@ -473,7 +473,7 @@
473
473
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
474
474
  "line": 33,
475
475
  "character": 2,
476
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L33"
476
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L33"
477
477
  }
478
478
  ],
479
479
  "type": {
@@ -739,7 +739,7 @@
739
739
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
740
740
  "line": 34,
741
741
  "character": 2,
742
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L34"
742
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L34"
743
743
  }
744
744
  ],
745
745
  "type": {
@@ -766,7 +766,7 @@
766
766
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
767
767
  "line": 29,
768
768
  "character": 17,
769
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L29"
769
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L29"
770
770
  }
771
771
  ]
772
772
  },
@@ -796,7 +796,7 @@
796
796
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
797
797
  "line": 13,
798
798
  "character": 2,
799
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L13"
799
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L13"
800
800
  }
801
801
  ],
802
802
  "type": {
@@ -833,7 +833,7 @@
833
833
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
834
834
  "line": 15,
835
835
  "character": 2,
836
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L15"
836
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L15"
837
837
  }
838
838
  ],
839
839
  "type": {
@@ -854,7 +854,7 @@
854
854
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
855
855
  "line": 16,
856
856
  "character": 2,
857
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L16"
857
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L16"
858
858
  }
859
859
  ],
860
860
  "type": {
@@ -875,7 +875,7 @@
875
875
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
876
876
  "line": 17,
877
877
  "character": 2,
878
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L17"
878
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L17"
879
879
  }
880
880
  ],
881
881
  "type": {
@@ -896,7 +896,7 @@
896
896
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
897
897
  "line": 18,
898
898
  "character": 2,
899
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L18"
899
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L18"
900
900
  }
901
901
  ],
902
902
  "type": {
@@ -917,7 +917,7 @@
917
917
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
918
918
  "line": 19,
919
919
  "character": 2,
920
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L19"
920
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L19"
921
921
  }
922
922
  ],
923
923
  "type": {
@@ -947,7 +947,7 @@
947
947
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
948
948
  "line": 11,
949
949
  "character": 17,
950
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L11"
950
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L11"
951
951
  }
952
952
  ]
953
953
  },
@@ -971,7 +971,7 @@
971
971
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
972
972
  "line": 25,
973
973
  "character": 2,
974
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L25"
974
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L25"
975
975
  }
976
976
  ],
977
977
  "type": {
@@ -1005,7 +1005,7 @@
1005
1005
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
1006
1006
  "line": 26,
1007
1007
  "character": 2,
1008
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L26"
1008
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L26"
1009
1009
  }
1010
1010
  ],
1011
1011
  "type": {
@@ -1041,7 +1041,7 @@
1041
1041
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
1042
1042
  "line": 24,
1043
1043
  "character": 17,
1044
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L24"
1044
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L24"
1045
1045
  }
1046
1046
  ]
1047
1047
  },
@@ -1063,7 +1063,7 @@
1063
1063
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
1064
1064
  "line": 15,
1065
1065
  "character": 2,
1066
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L15"
1066
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L15"
1067
1067
  }
1068
1068
  ],
1069
1069
  "type": {
@@ -1083,7 +1083,7 @@
1083
1083
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
1084
1084
  "line": 16,
1085
1085
  "character": 2,
1086
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L16"
1086
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L16"
1087
1087
  }
1088
1088
  ],
1089
1089
  "type": {
@@ -1269,7 +1269,7 @@
1269
1269
  "fileName": "packages/modules/packages/sentinal/src/contexts/State.ts",
1270
1270
  "line": 14,
1271
1271
  "character": 17,
1272
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/State.ts#L14"
1272
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/State.ts#L14"
1273
1273
  }
1274
1274
  ]
1275
1275
  },
@@ -1286,7 +1286,7 @@
1286
1286
  "fileName": "packages/modules/packages/sentinal/src/contexts/Context.ts",
1287
1287
  "line": 5,
1288
1288
  "character": 13,
1289
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Context.ts#L5"
1289
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Context.ts#L5"
1290
1290
  }
1291
1291
  ],
1292
1292
  "type": {
@@ -1324,7 +1324,7 @@
1324
1324
  "fileName": "packages/modules/packages/sentinal/src/contexts/Provider.tsx",
1325
1325
  "line": 22,
1326
1326
  "character": 13,
1327
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L22"
1327
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/Provider.tsx#L22"
1328
1328
  }
1329
1329
  ],
1330
1330
  "signatures": [
@@ -1408,7 +1408,7 @@
1408
1408
  "fileName": "packages/modules/packages/sentinal/src/hooks/useSentinel.tsx",
1409
1409
  "line": 4,
1410
1410
  "character": 13,
1411
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/hooks/useSentinel.tsx#L4"
1411
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/hooks/useSentinel.tsx#L4"
1412
1412
  }
1413
1413
  ],
1414
1414
  "signatures": [
@@ -1510,7 +1510,7 @@
1510
1510
  "fileName": "packages/modules/packages/sentinal/src/contexts/use.ts",
1511
1511
  "line": 5,
1512
1512
  "character": 13,
1513
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/use.ts#L5"
1513
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/use.ts#L5"
1514
1514
  }
1515
1515
  ],
1516
1516
  "signatures": [
@@ -1540,7 +1540,7 @@
1540
1540
  "fileName": "packages/modules/packages/sentinal/src/contexts/use.ts",
1541
1541
  "line": 7,
1542
1542
  "character": 11,
1543
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1543
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1544
1544
  }
1545
1545
  ],
1546
1546
  "type": {
@@ -1607,7 +1607,7 @@
1607
1607
  "fileName": "packages/modules/packages/sentinal/src/contexts/use.ts",
1608
1608
  "line": 7,
1609
1609
  "character": 20,
1610
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1610
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1611
1611
  }
1612
1612
  ],
1613
1613
  "type": {
@@ -1636,7 +1636,7 @@
1636
1636
  "fileName": "packages/modules/packages/sentinal/src/contexts/use.ts",
1637
1637
  "line": 7,
1638
1638
  "character": 30,
1639
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1639
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1640
1640
  }
1641
1641
  ],
1642
1642
  "type": {
@@ -1669,7 +1669,7 @@
1669
1669
  "fileName": "packages/modules/packages/sentinal/src/contexts/use.ts",
1670
1670
  "line": 7,
1671
1671
  "character": 47,
1672
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1672
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1673
1673
  }
1674
1674
  ],
1675
1675
  "type": {
@@ -1942,7 +1942,7 @@
1942
1942
  "fileName": "packages/modules/packages/sentinal/src/contexts/use.ts",
1943
1943
  "line": 7,
1944
1944
  "character": 57,
1945
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1945
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1946
1946
  }
1947
1947
  ],
1948
1948
  "type": {
@@ -1978,7 +1978,7 @@
1978
1978
  "fileName": "packages/modules/packages/sentinal/src/contexts/use.ts",
1979
1979
  "line": 7,
1980
1980
  "character": 9,
1981
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1981
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/contexts/use.ts#L7"
1982
1982
  }
1983
1983
  ]
1984
1984
  }
@@ -2024,7 +2024,7 @@
2024
2024
  "fileName": "packages/modules/packages/sentinal/src/index.ts",
2025
2025
  "line": 1,
2026
2026
  "character": 0,
2027
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/9215a4057/packages/modules/packages/sentinal/src/index.ts#L1"
2027
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/c66c3dbd117/packages/modules/packages/sentinal/src/index.ts#L1"
2028
2028
  }
2029
2029
  ]
2030
2030
  }
@@ -1,10 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useAsyncEffect } from '@xylabs/react-shared';
3
+ import { useNode } from '@xyo-network/react-node';
3
4
  import { MemorySentinel, SentinelConfigSchema } from '@xyo-network/sentinel';
4
5
  import { useEffect, useState } from 'react';
5
6
  import { SentinelContext } from './Context';
6
7
  import { SentinelReportStatus } from './State';
7
8
  export const SentinelProvider = ({ account, archivist, children, name, witnesses = [], required = false, }) => {
9
+ const [node] = useNode();
8
10
  const [sentinel, setSentinel] = useState();
9
11
  const [history, setHistory] = useState();
10
12
  const [progress, setProgress] = useState({});
@@ -13,6 +15,7 @@ export const SentinelProvider = ({ account, archivist, children, name, witnesses
13
15
  useAsyncEffect(
14
16
  // eslint-disable-next-line react-hooks/exhaustive-deps
15
17
  async (mounted) => {
18
+ const witnessModules = await node?.resolve({ address: witnesses });
16
19
  const sentinel = await MemorySentinel.create({
17
20
  account,
18
21
  config: {
@@ -21,23 +24,26 @@ export const SentinelProvider = ({ account, archivist, children, name, witnesses
21
24
  schema: SentinelConfigSchema,
22
25
  witnesses,
23
26
  },
24
- onReportEnd: (_, errors) => {
25
- if (mounted()) {
26
- setProgress({
27
- archivists: progress.archivists,
28
- witnesses: progress.witnesses,
29
- });
30
- setStatus(errors ? SentinelReportStatus.Failed : SentinelReportStatus.Succeeded);
31
- setReportingErrors(errors);
32
- }
33
- },
34
- onReportStart: () => {
35
- if (mounted()) {
36
- setProgress({ archivists: {}, witnesses: {} });
37
- setStatus(SentinelReportStatus.Started);
38
- }
39
- },
40
- onWitnessReportEnd: (witness, error) => {
27
+ });
28
+ const offCallbacks = [];
29
+ offCallbacks.push(sentinel.on('onReportEnd', ({ errors }) => {
30
+ if (mounted()) {
31
+ setProgress({
32
+ archivists: progress.archivists,
33
+ witnesses: progress.witnesses,
34
+ });
35
+ setStatus(errors ? SentinelReportStatus.Failed : SentinelReportStatus.Succeeded);
36
+ setReportingErrors(errors);
37
+ }
38
+ }));
39
+ offCallbacks.push(sentinel.on('onReportStarted', () => {
40
+ if (mounted()) {
41
+ setProgress({ archivists: {}, witnesses: {} });
42
+ setStatus(SentinelReportStatus.Started);
43
+ }
44
+ }));
45
+ witnessModules?.forEach((witness) => {
46
+ offCallbacks.push(witness.on('onReportEnd', ({ witness, error }) => {
41
47
  const witnesses = progress.witnesses ?? {};
42
48
  witnesses[witness.address] = {
43
49
  status: error ? SentinelReportStatus.Failed : SentinelReportStatus.Succeeded,
@@ -49,8 +55,8 @@ export const SentinelProvider = ({ account, archivist, children, name, witnesses
49
55
  witnesses,
50
56
  });
51
57
  }
52
- },
53
- onWitnessReportStart: (witness) => {
58
+ }));
59
+ offCallbacks.push(witness.on('onReportStarted', ({ witness }) => {
54
60
  const witnesses = progress.witnesses ?? {};
55
61
  witnesses[witness.address] = {
56
62
  status: SentinelReportStatus.Started,
@@ -62,12 +68,18 @@ export const SentinelProvider = ({ account, archivist, children, name, witnesses
62
68
  witnesses,
63
69
  });
64
70
  }
65
- },
71
+ }));
66
72
  });
67
73
  setSentinel(sentinel);
74
+ return () => {
75
+ //unsubscribe from events
76
+ offCallbacks.forEach((callback) => {
77
+ callback();
78
+ });
79
+ };
68
80
  },
69
81
  // eslint-disable-next-line react-hooks/exhaustive-deps
70
- [account, archivist, witnesses]);
82
+ [account, archivist, witnesses, node]);
71
83
  useEffect(() => {
72
84
  setHistory(sentinel?.history);
73
85
  }, [sentinel]);
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAS5D,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,OAAO,EAAE,eAAe,CAAA;IACxB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAkF1E,CAAA"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/contexts/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAU5D,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,OAAO,EAAE,eAAe,CAAA;IACxB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAqG1E,CAAA"}
package/package.json CHANGED
@@ -11,13 +11,13 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/react-shared": "^2.16.11",
14
- "@xyo-network/account": "^2.52.0-rc.2",
15
- "@xyo-network/archivist": "^2.52.0-rc.2",
16
- "@xyo-network/boundwitness-model": "^2.52.0-rc.2",
17
- "@xyo-network/react-node": "^2.46.0-rc.2",
18
- "@xyo-network/react-shared": "^2.46.0-rc.2",
19
- "@xyo-network/sentinel": "^2.52.0-rc.2",
20
- "@xyo-network/witness": "^2.52.0-rc.2"
14
+ "@xyo-network/account": "^2.52.0-rc.5",
15
+ "@xyo-network/archivist": "^2.52.0-rc.5",
16
+ "@xyo-network/boundwitness-model": "^2.52.0-rc.5",
17
+ "@xyo-network/react-node": "^2.46.0-rc.3",
18
+ "@xyo-network/react-shared": "^2.46.0-rc.3",
19
+ "@xyo-network/sentinel": "^2.52.0-rc.5",
20
+ "@xyo-network/witness": "^2.52.0-rc.5"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@xylabs/ts-scripts-yarn3": "^2.16.1",
@@ -76,6 +76,6 @@
76
76
  },
77
77
  "sideEffects": false,
78
78
  "types": "dist/types/index.d.ts",
79
- "version": "2.46.0-rc.2",
79
+ "version": "2.46.0-rc.3",
80
80
  "stableVersion": "2.45.9"
81
81
  }
@@ -1,8 +1,8 @@
1
1
  import { useAsyncEffect, WithChildren } from '@xylabs/react-shared'
2
2
  import { AccountInstance } from '@xyo-network/account-model'
3
3
  import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
4
+ import { useNode } from '@xyo-network/react-node'
4
5
  import { MemorySentinel, SentinelConfig, SentinelConfigSchema } from '@xyo-network/sentinel'
5
- import { WitnessModule, WitnessWrapper } from '@xyo-network/witness'
6
6
  import { useEffect, useState } from 'react'
7
7
 
8
8
  import { SentinelContext } from './Context'
@@ -27,6 +27,7 @@ export const SentinelProvider: React.FC<WithChildren<SentinelProviderProps>> = (
27
27
  witnesses = [],
28
28
  required = false,
29
29
  }) => {
30
+ const [node] = useNode()
30
31
  const [sentinel, setSentinel] = useState<MemorySentinel>()
31
32
  const [history, setHistory] = useState<XyoBoundWitness[]>()
32
33
  const [progress, setProgress] = useState<SentinelReportProgress>({})
@@ -36,6 +37,7 @@ export const SentinelProvider: React.FC<WithChildren<SentinelProviderProps>> = (
36
37
  useAsyncEffect(
37
38
  // eslint-disable-next-line react-hooks/exhaustive-deps
38
39
  async (mounted) => {
40
+ const witnessModules = await node?.resolve({ address: witnesses })
39
41
  const sentinel = await MemorySentinel.create({
40
42
  account,
41
43
  config: {
@@ -45,7 +47,10 @@ export const SentinelProvider: React.FC<WithChildren<SentinelProviderProps>> = (
45
47
  schema: SentinelConfigSchema,
46
48
  witnesses,
47
49
  } as SentinelConfig,
48
- onReportEnd: (_, errors?: Error[]) => {
50
+ })
51
+ const offCallbacks: (() => void)[] = []
52
+ offCallbacks.push(
53
+ sentinel.on('onReportEnd', ({ errors }) => {
49
54
  if (mounted()) {
50
55
  setProgress({
51
56
  archivists: progress.archivists,
@@ -54,44 +59,58 @@ export const SentinelProvider: React.FC<WithChildren<SentinelProviderProps>> = (
54
59
  setStatus(errors ? SentinelReportStatus.Failed : SentinelReportStatus.Succeeded)
55
60
  setReportingErrors(errors)
56
61
  }
57
- },
58
- onReportStart: () => {
62
+ }),
63
+ )
64
+ offCallbacks.push(
65
+ sentinel.on('onReportStarted', () => {
59
66
  if (mounted()) {
60
67
  setProgress({ archivists: {}, witnesses: {} })
61
68
  setStatus(SentinelReportStatus.Started)
62
69
  }
63
- },
64
- onWitnessReportEnd: (witness: WitnessModule, error?: Error) => {
65
- const witnesses = progress.witnesses ?? {}
66
- witnesses[witness.address] = {
67
- status: error ? SentinelReportStatus.Failed : SentinelReportStatus.Succeeded,
68
- witness,
69
- }
70
- if (mounted()) {
71
- setProgress({
72
- archivists: progress.archivists,
73
- witnesses,
74
- })
75
- }
76
- },
77
- onWitnessReportStart: (witness: WitnessModule) => {
78
- const witnesses = progress.witnesses ?? {}
79
- witnesses[witness.address] = {
80
- status: SentinelReportStatus.Started,
81
- witness,
82
- }
83
- if (mounted()) {
84
- setProgress({
85
- archivists: progress.archivists,
86
- witnesses,
87
- })
88
- }
89
- },
70
+ }),
71
+ )
72
+ witnessModules?.forEach((witness) => {
73
+ offCallbacks.push(
74
+ witness.on('onReportEnd', ({ witness, error }) => {
75
+ const witnesses = progress.witnesses ?? {}
76
+ witnesses[witness.address] = {
77
+ status: error ? SentinelReportStatus.Failed : SentinelReportStatus.Succeeded,
78
+ witness,
79
+ }
80
+ if (mounted()) {
81
+ setProgress({
82
+ archivists: progress.archivists,
83
+ witnesses,
84
+ })
85
+ }
86
+ }),
87
+ )
88
+ offCallbacks.push(
89
+ witness.on('onReportStarted', ({ witness }) => {
90
+ const witnesses = progress.witnesses ?? {}
91
+ witnesses[witness.address] = {
92
+ status: SentinelReportStatus.Started,
93
+ witness,
94
+ }
95
+ if (mounted()) {
96
+ setProgress({
97
+ archivists: progress.archivists,
98
+ witnesses,
99
+ })
100
+ }
101
+ }),
102
+ )
90
103
  })
91
104
  setSentinel(sentinel as MemorySentinel)
105
+ return () => {
106
+ //unsubscribe from events
107
+ offCallbacks.forEach((callback) => {
108
+ callback()
109
+ })
110
+ }
92
111
  },
93
112
  // eslint-disable-next-line react-hooks/exhaustive-deps
94
- [account, archivist, witnesses],
113
+ [account, archivist, witnesses, node],
95
114
  )
96
115
 
97
116
  useEffect(() => {