@xyo-network/react-node 2.45.0-rc.9 → 2.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/cjs/hooks/index.js +2 -9
  2. package/dist/cjs/hooks/index.js.map +1 -1
  3. package/dist/cjs/hooks/useMemoryNodeUpdates.js +1 -1
  4. package/dist/cjs/hooks/useMemoryNodeUpdates.js.map +1 -1
  5. package/dist/cjs/hooks/useModule.js +71 -3
  6. package/dist/cjs/hooks/useModule.js.map +1 -1
  7. package/dist/cjs/hooks/useModules.js +29 -6
  8. package/dist/cjs/hooks/useModules.js.map +1 -1
  9. package/dist/cjs/hooks/useNode.js +44 -52
  10. package/dist/cjs/hooks/useNode.js.map +1 -1
  11. package/dist/cjs/hooks/{useModuleAddresses.js → useNodeAttachedAddresses.js} +9 -9
  12. package/dist/cjs/hooks/useNodeAttachedAddresses.js.map +1 -0
  13. package/dist/cjs/hooks/useProvidedNode.js +29 -15
  14. package/dist/cjs/hooks/useProvidedNode.js.map +1 -1
  15. package/dist/cjs/hooks/useWrappedModule.js +49 -0
  16. package/dist/cjs/hooks/useWrappedModule.js.map +1 -0
  17. package/dist/docs.json +767 -2334
  18. package/dist/esm/hooks/index.js +2 -9
  19. package/dist/esm/hooks/index.js.map +1 -1
  20. package/dist/esm/hooks/useMemoryNodeUpdates.js +1 -1
  21. package/dist/esm/hooks/useMemoryNodeUpdates.js.map +1 -1
  22. package/dist/esm/hooks/useModule.js +69 -3
  23. package/dist/esm/hooks/useModule.js.map +1 -1
  24. package/dist/esm/hooks/useModules.js +30 -7
  25. package/dist/esm/hooks/useModules.js.map +1 -1
  26. package/dist/esm/hooks/useNode.js +43 -50
  27. package/dist/esm/hooks/useNode.js.map +1 -1
  28. package/dist/esm/hooks/useNodeAttachedAddresses.js +17 -0
  29. package/dist/esm/hooks/useNodeAttachedAddresses.js.map +1 -0
  30. package/dist/esm/hooks/useProvidedNode.js +27 -15
  31. package/dist/esm/hooks/useProvidedNode.js.map +1 -1
  32. package/dist/esm/hooks/useWrappedModule.js +45 -0
  33. package/dist/esm/hooks/useWrappedModule.js.map +1 -0
  34. package/dist/types/hooks/index.d.ts +2 -9
  35. package/dist/types/hooks/index.d.ts.map +1 -1
  36. package/dist/types/hooks/useModule.d.ts +23 -58
  37. package/dist/types/hooks/useModule.d.ts.map +1 -1
  38. package/dist/types/hooks/useModules.d.ts +5 -5
  39. package/dist/types/hooks/useModules.d.ts.map +1 -1
  40. package/dist/types/hooks/useNode.d.ts +3 -59
  41. package/dist/types/hooks/useNode.d.ts.map +1 -1
  42. package/dist/types/hooks/useNodeAttachedAddresses.d.ts +2 -0
  43. package/dist/types/hooks/useNodeAttachedAddresses.d.ts.map +1 -0
  44. package/dist/types/hooks/useProvidedNode.d.ts +3 -6
  45. package/dist/types/hooks/useProvidedNode.d.ts.map +1 -1
  46. package/dist/types/hooks/useWrappedModule.d.ts +39 -0
  47. package/dist/types/hooks/useWrappedModule.d.ts.map +1 -0
  48. package/package.json +16 -17
  49. package/src/components/Node.stories.tsx +36 -10
  50. package/src/hooks/index.ts +2 -9
  51. package/src/hooks/useMemoryNodeUpdates.tsx +1 -1
  52. package/src/hooks/useModule.tsx +77 -3
  53. package/src/hooks/useModules.ts +30 -10
  54. package/src/hooks/useNode.tsx +40 -72
  55. package/src/hooks/{useModuleAddresses.ts → useNodeAttachedAddresses.ts} +6 -6
  56. package/src/hooks/useProvidedNode.tsx +31 -18
  57. package/src/hooks/useWrappedModule.tsx +61 -0
  58. package/dist/cjs/hooks/useArchiveArchivists.js +0 -38
  59. package/dist/cjs/hooks/useArchiveArchivists.js.map +0 -1
  60. package/dist/cjs/hooks/useArchivistModule.js +0 -12
  61. package/dist/cjs/hooks/useArchivistModule.js.map +0 -1
  62. package/dist/cjs/hooks/useArchivistModules.js +0 -11
  63. package/dist/cjs/hooks/useArchivistModules.js.map +0 -1
  64. package/dist/cjs/hooks/useDivinerModule.js +0 -12
  65. package/dist/cjs/hooks/useDivinerModule.js.map +0 -1
  66. package/dist/cjs/hooks/useDivinerModules.js +0 -12
  67. package/dist/cjs/hooks/useDivinerModules.js.map +0 -1
  68. package/dist/cjs/hooks/useModuleAddresses.js.map +0 -1
  69. package/dist/cjs/hooks/useNodeQueryDiviner.js +0 -43
  70. package/dist/cjs/hooks/useNodeQueryDiviner.js.map +0 -1
  71. package/dist/cjs/hooks/useWitnessModule.js +0 -12
  72. package/dist/cjs/hooks/useWitnessModule.js.map +0 -1
  73. package/dist/cjs/hooks/useWitnessModules.js +0 -11
  74. package/dist/cjs/hooks/useWitnessModules.js.map +0 -1
  75. package/dist/esm/hooks/useArchiveArchivists.js +0 -33
  76. package/dist/esm/hooks/useArchiveArchivists.js.map +0 -1
  77. package/dist/esm/hooks/useArchivistModule.js +0 -8
  78. package/dist/esm/hooks/useArchivistModule.js.map +0 -1
  79. package/dist/esm/hooks/useArchivistModules.js +0 -7
  80. package/dist/esm/hooks/useArchivistModules.js.map +0 -1
  81. package/dist/esm/hooks/useDivinerModule.js +0 -8
  82. package/dist/esm/hooks/useDivinerModule.js.map +0 -1
  83. package/dist/esm/hooks/useDivinerModules.js +0 -8
  84. package/dist/esm/hooks/useDivinerModules.js.map +0 -1
  85. package/dist/esm/hooks/useModuleAddresses.js +0 -17
  86. package/dist/esm/hooks/useModuleAddresses.js.map +0 -1
  87. package/dist/esm/hooks/useNodeQueryDiviner.js +0 -37
  88. package/dist/esm/hooks/useNodeQueryDiviner.js.map +0 -1
  89. package/dist/esm/hooks/useWitnessModule.js +0 -8
  90. package/dist/esm/hooks/useWitnessModule.js.map +0 -1
  91. package/dist/esm/hooks/useWitnessModules.js +0 -7
  92. package/dist/esm/hooks/useWitnessModules.js.map +0 -1
  93. package/dist/types/hooks/useArchiveArchivists.d.ts +0 -9
  94. package/dist/types/hooks/useArchiveArchivists.d.ts.map +0 -1
  95. package/dist/types/hooks/useArchivistModule.d.ts +0 -4
  96. package/dist/types/hooks/useArchivistModule.d.ts.map +0 -1
  97. package/dist/types/hooks/useArchivistModules.d.ts +0 -3
  98. package/dist/types/hooks/useArchivistModules.d.ts.map +0 -1
  99. package/dist/types/hooks/useDivinerModule.d.ts +0 -4
  100. package/dist/types/hooks/useDivinerModule.d.ts.map +0 -1
  101. package/dist/types/hooks/useDivinerModules.d.ts +0 -3
  102. package/dist/types/hooks/useDivinerModules.d.ts.map +0 -1
  103. package/dist/types/hooks/useModuleAddresses.d.ts +0 -2
  104. package/dist/types/hooks/useModuleAddresses.d.ts.map +0 -1
  105. package/dist/types/hooks/useNodeQueryDiviner.d.ts +0 -6
  106. package/dist/types/hooks/useNodeQueryDiviner.d.ts.map +0 -1
  107. package/dist/types/hooks/useWitnessModule.d.ts +0 -4
  108. package/dist/types/hooks/useWitnessModule.d.ts.map +0 -1
  109. package/dist/types/hooks/useWitnessModules.d.ts +0 -3
  110. package/dist/types/hooks/useWitnessModules.d.ts.map +0 -1
  111. package/src/hooks/useArchiveArchivists.tsx +0 -49
  112. package/src/hooks/useArchivistModule.ts +0 -10
  113. package/src/hooks/useArchivistModules.ts +0 -8
  114. package/src/hooks/useDivinerModule.ts +0 -10
  115. package/src/hooks/useDivinerModules.ts +0 -9
  116. package/src/hooks/useNodeQueryDiviner.tsx +0 -54
  117. package/src/hooks/useWitnessModule.ts +0 -10
  118. package/src/hooks/useWitnessModules.ts +0 -8
@@ -1,15 +1,8 @@
1
- export * from './useArchiveArchivists';
2
- export * from './useArchivistModule';
3
- export * from './useArchivistModules';
4
- export * from './useDivinerModule';
5
- export * from './useDivinerModules';
6
1
  export * from './useMemoryNodeUpdates';
7
2
  export * from './useModule';
8
- export * from './useModuleAddresses';
9
3
  export * from './useModules';
10
4
  export * from './useNode';
11
- export * from './useNodeQueryDiviner';
5
+ export * from './useNodeAttachedAddresses';
12
6
  export * from './useProvidedNode';
13
- export * from './useWitnessModule';
14
- export * from './useWitnessModules';
7
+ export * from './useWrappedModule';
15
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -5,7 +5,7 @@ export const useMemoryNodeUpdates = (refreshAddresses) => {
5
5
  const [module, setModule] = useState();
6
6
  useEffect(() => {
7
7
  if (node) {
8
- const onFunc = node.on;
8
+ const onFunc = node.module.on;
9
9
  onFunc('moduleAttached', (args) => {
10
10
  if (refreshAddresses) {
11
11
  if (refreshAddresses.some((address) => address === args?.module.address))
@@ -1 +1 @@
1
- {"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAA2B,EAAwB,EAAE;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,EAAsC,CAAA;YAC1D,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,gBAAgB,EAAE;oBACpB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;wBAAE,SAAS,CAAC,IAAI,CAAC,CAAA;iBAC1F;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,CAAA;iBAChB;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE5B,OAAO;QACL,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAA2B,EAAwB,EAAE;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAsC,CAAA;YACjE,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,gBAAgB,EAAE;oBACpB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;wBAAE,SAAS,CAAC,IAAI,CAAC,CAAA;iBAC1F;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,CAAA;iBAChB;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE5B,OAAO;QACL,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,70 @@
1
- import { ModuleWrapper } from '@xyo-network/module';
2
- import { createUseModuleHook, useNode } from './useNode';
3
- export const useModule = createUseModuleHook((module) => ModuleWrapper.wrap(module), useNode);
1
+ import { useAsyncEffect } from '@xylabs/react-shared';
2
+ import { useMemo, useState } from 'react';
3
+ import { useProvidedWrappedNode } from './useProvidedNode';
4
+ export const useModule = (nameOrAddressOrFilter, account) => {
5
+ const nameOrAddress = useMemo(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
6
+ const filter = useMemo(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
7
+ const [node, nodeError] = useProvidedWrappedNode(account);
8
+ const [module, setModule] = useState();
9
+ const [error, setError] = useState();
10
+ const address = module?.address;
11
+ useAsyncEffect(
12
+ // eslint-disable-next-line react-hooks/exhaustive-deps
13
+ async (mounted) => {
14
+ try {
15
+ if (nodeError) {
16
+ setError(nodeError);
17
+ setModule(undefined);
18
+ }
19
+ else {
20
+ if (node) {
21
+ const attachEmitter = node.module;
22
+ const detachEmitter = node.module;
23
+ const attachHandler = (args) => {
24
+ const eventModule = args.module;
25
+ if (nameOrAddress && (eventModule.address === nameOrAddress || eventModule?.config.name === nameOrAddress) && mounted()) {
26
+ setModule(eventModule);
27
+ setError(undefined);
28
+ }
29
+ };
30
+ const detachHandler = (args) => {
31
+ const eventModule = args.module;
32
+ if (eventModule.address === address && mounted()) {
33
+ setModule(undefined);
34
+ setError(undefined);
35
+ }
36
+ };
37
+ const module = nameOrAddress
38
+ ? await node.resolve(nameOrAddress)
39
+ : (await node.resolve(filter)).pop();
40
+ if (mounted()) {
41
+ attachEmitter.on('moduleAttached', attachHandler, true);
42
+ detachEmitter.on('moduleDetached', detachHandler, true);
43
+ detachEmitter.on('moduleDetached', detachHandler);
44
+ attachEmitter.on('moduleAttached', attachHandler);
45
+ setModule(module);
46
+ setError(undefined);
47
+ }
48
+ return () => {
49
+ //remove the event handler on unmount
50
+ attachEmitter.on('moduleAttached', attachHandler, true);
51
+ detachEmitter.on('moduleDetached', detachHandler, true);
52
+ };
53
+ }
54
+ else {
55
+ setError(undefined);
56
+ setModule(undefined);
57
+ }
58
+ }
59
+ }
60
+ catch (ex) {
61
+ if (mounted()) {
62
+ const error = ex;
63
+ setError(error);
64
+ setModule(undefined);
65
+ }
66
+ }
67
+ }, [nameOrAddress, node, nodeError, address, filter]);
68
+ return [module, error];
69
+ };
4
70
  //# sourceMappingURL=useModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExD,MAAM,CAAC,MAAM,SAAS,GAAG,mBAAmB,CAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,40 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared';
2
2
  import { useState } from 'react';
3
- import { useProvidedNode } from './useProvidedNode';
3
+ import { useProvidedWrappedNode } from './useProvidedNode';
4
4
  export const useModules = (filter) => {
5
- const [node] = useProvidedNode(true);
5
+ const [node, nodeError] = useProvidedWrappedNode();
6
6
  const [modules, setModules] = useState();
7
+ const [error, setError] = useState();
7
8
  useAsyncEffect(
8
9
  // eslint-disable-next-line react-hooks/exhaustive-deps
9
10
  async (mounted) => {
10
- const modules = await node?.resolve(filter);
11
- if (mounted()) {
12
- setModules(modules);
11
+ try {
12
+ if (nodeError) {
13
+ setError(nodeError);
14
+ setModules(undefined);
15
+ }
16
+ else {
17
+ if (node) {
18
+ const modules = await node.resolve(filter);
19
+ if (mounted()) {
20
+ setModules(modules);
21
+ setError(undefined);
22
+ }
23
+ }
24
+ else {
25
+ setError(undefined);
26
+ setModules(undefined);
27
+ }
28
+ }
13
29
  }
14
- }, [filter, node]);
15
- return modules;
30
+ catch (ex) {
31
+ if (mounted()) {
32
+ const error = ex;
33
+ setError(error);
34
+ setModules(undefined);
35
+ }
36
+ }
37
+ }, [filter, node, nodeError]);
38
+ return [modules, error];
16
39
  };
17
40
  //# sourceMappingURL=useModules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4B,MAAqB,EAAE,EAAE;IAC7E,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAO,CAAA;IAE7C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,OAAO,CAAI,MAAM,CAAC,CAAA;QAC9C,IAAI,OAAO,EAAE,EAAE;YACb,UAAU,CAAC,OAAO,CAAC,CAAA;SACpB;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,CAAC,CACf,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,MAAqB,EAA8C,EAAE;IAC/H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,OAAO,GAA0B,MAAM,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;oBAC1E,IAAI,OAAO,EAAE,EAAE;wBACb,UAAU,CAAC,OAAO,CAAC,CAAA;wBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;iBACF;qBAAM;oBACL,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;iBACtB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;SACF;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAC1B,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
@@ -1,57 +1,50 @@
1
- /* eslint-disable react-hooks/rules-of-hooks */
2
- import { useAsyncEffect } from '@xylabs/react-shared';
3
1
  import { NodeWrapper } from '@xyo-network/node';
4
- import { useState } from 'react';
2
+ import { useEffect, useState } from 'react';
3
+ import { useModule } from './useModule';
5
4
  import { useProvidedNode } from './useProvidedNode';
6
- export const createUseModuleHook = (wrapFunc, nodeFunc) => {
7
- function use(nameOrAddressOrWrapOrAccount, wrap = false) {
8
- const [node, nodeError] = nodeFunc();
9
- const shouldWrap = typeof nameOrAddressOrWrapOrAccount === 'boolean' ? nameOrAddressOrWrapOrAccount : wrap;
10
- const account = typeof nameOrAddressOrWrapOrAccount === 'object' ? nameOrAddressOrWrapOrAccount : typeof wrap === 'boolean' ? undefined : wrap;
11
- const nameOrAddress = typeof nameOrAddressOrWrapOrAccount === 'string' ? nameOrAddressOrWrapOrAccount : undefined;
12
- const [module, setModule] = useState();
13
- const [error, setError] = useState();
14
- useAsyncEffect(
15
- // eslint-disable-next-line react-hooks/exhaustive-deps
16
- async (mounted) => {
17
- try {
18
- if (nodeError) {
19
- console.log(`Setting NodeError [${nodeError.message}]`);
20
- setError(nodeError);
21
- setModule(undefined);
22
- }
23
- else {
24
- const wrappedNode = NodeWrapper.wrap(node);
25
- if (wrappedNode) {
26
- const module = nameOrAddress
27
- ? await wrappedNode?.resolve(nameOrAddress)
28
- : (await wrappedNode.resolve()).pop();
29
- const finalModule = shouldWrap ? wrapFunc(module, account) : module;
30
- if (mounted()) {
31
- console.log(`Setting Module [${finalModule?.address}]`);
32
- setModule(finalModule);
33
- setError(undefined);
34
- }
35
- }
36
- else {
37
- console.log('Setting All to undefined');
38
- setError(undefined);
39
- setModule(undefined);
40
- }
41
- }
5
+ //AT: intentionally not exported
6
+ const useNodeModule = (nameOrAddress) => {
7
+ const [providedNode] = useProvidedNode();
8
+ const [node, nodeError] = useModule(nameOrAddress);
9
+ if (nameOrAddress) {
10
+ if (providedNode) {
11
+ return [node, nodeError];
12
+ }
13
+ else {
14
+ return [providedNode, undefined];
15
+ }
16
+ }
17
+ else {
18
+ return [providedNode, undefined];
19
+ }
20
+ };
21
+ export const useNode = (nameOrAddress, account) => {
22
+ const [node, nodeError] = useNodeModule(nameOrAddress);
23
+ const [wrapper, setWrapper] = useState();
24
+ const [error, setError] = useState();
25
+ useEffect(() => {
26
+ if (node) {
27
+ if (nodeError) {
28
+ setError(nodeError);
29
+ setWrapper(undefined);
42
30
  }
43
- catch (ex) {
44
- if (mounted()) {
45
- const error = ex;
46
- console.log(`Setting Error [${error.message}]`);
47
- setError(error);
48
- setModule(undefined);
31
+ else {
32
+ try {
33
+ const wrapper = NodeWrapper.wrap(node, account);
34
+ setWrapper(wrapper);
35
+ setError(undefined);
36
+ }
37
+ catch (ex) {
38
+ setWrapper(undefined);
39
+ setError(ex);
49
40
  }
50
41
  }
51
- }, [wrap, node, nameOrAddress, nodeError, shouldWrap, account]);
52
- return [module, error];
53
- }
54
- return use;
42
+ }
43
+ else {
44
+ setWrapper(undefined);
45
+ setError(undefined);
46
+ }
47
+ }, [node, account, nodeError]);
48
+ return [wrapper, error];
55
49
  };
56
- export const useNode = createUseModuleHook((module) => NodeWrapper.wrap(module), useProvidedNode);
57
50
  //# sourceMappingURL=useNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,gCAAgC;AAChC,MAAM,aAAa,GAAG,CAAC,aAAsB,EAA+C,EAAE;IAC5F,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;IAElD,IAAI,aAAa,EAAE;QACjB,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAkB,EAAE,SAAS,CAAC,CAAA;SACvC;aAAM;YACL,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;SACjC;KACF;SAAM;QACL,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;KACjC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,aAAsB,EAAE,OAAyB,EAAgD,EAAE;IACzH,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;IACtD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAe,CAAA;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI;oBACF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBAC/C,UAAU,CAAC,OAAO,CAAC,CAAA;oBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;SACF;aAAM;YACL,UAAU,CAAC,SAAS,CAAC,CAAA;YACrB,QAAQ,CAAC,SAAS,CAAC,CAAA;SACpB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAE9B,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { useAsyncEffect } from '@xylabs/react-shared';
2
+ import { useState } from 'react';
3
+ import { useNode } from './useNode';
4
+ export const useNodeAttachedAddresses = () => {
5
+ const [node] = useNode();
6
+ const [addresses, setAddresses] = useState();
7
+ useAsyncEffect(
8
+ // eslint-disable-next-line react-hooks/exhaustive-deps
9
+ async (mounted) => {
10
+ const attached = await node?.attached();
11
+ if (mounted()) {
12
+ setAddresses(attached);
13
+ }
14
+ }, [node]);
15
+ return [addresses, node?.registered()];
16
+ };
17
+ //# sourceMappingURL=useNodeAttachedAddresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeAttachedAddresses.js","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAY,CAAA;IAEtD,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,QAAQ,EAAE,CAAA;QACvC,IAAI,OAAO,EAAE,EAAE;YACb,YAAY,CAAC,QAAQ,CAAC,CAAA;SACvB;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -1,22 +1,34 @@
1
1
  import { NodeWrapper } from '@xyo-network/node';
2
- import { useContext, useState } from 'react';
2
+ import { useAccount } from '@xyo-network/react-wallet';
3
+ import { useContext, useEffect, useMemo, useState } from 'react';
3
4
  import { NodeContext } from '../contexts';
4
- function useProvidedNodeFunc(wrap) {
5
+ export const useProvidedNode = () => {
5
6
  const { node } = useContext(NodeContext);
7
+ return [node];
8
+ };
9
+ export const useProvidedWrappedNode = (account) => {
10
+ const [providedAccount] = useAccount();
11
+ const [node] = useProvidedNode();
6
12
  const [wrappedNode, setWrappedNode] = useState();
7
13
  const [error, setError] = useState();
8
- try {
9
- if (wrap) {
10
- const account = typeof wrap === 'boolean' ? undefined : wrap;
11
- const wrappedNode = wrap ? NodeWrapper.wrap(node, account) : undefined;
12
- setWrappedNode(wrappedNode);
13
- setError(undefined);
14
- }
15
- }
16
- catch (ex) {
17
- setError(ex);
14
+ const accountToUse = useMemo(() => account ?? providedAccount, [account, providedAccount]);
15
+ if (!accountToUse) {
16
+ const error = Error('useProvidedWrappedNode requires either an Account context or account parameter');
17
+ console.error(error.message);
18
+ setError(error);
18
19
  }
19
- return [wrap ? wrappedNode : node, error];
20
- }
21
- export const useProvidedNode = useProvidedNodeFunc;
20
+ useEffect(() => {
21
+ try {
22
+ if (node && accountToUse) {
23
+ setWrappedNode(NodeWrapper.wrap(node, account));
24
+ setError(undefined);
25
+ }
26
+ }
27
+ catch (ex) {
28
+ setWrappedNode(undefined);
29
+ setError(ex);
30
+ }
31
+ }, [node, account, accountToUse]);
32
+ return [wrappedNode, error];
33
+ };
22
34
  //# sourceMappingURL=useProvidedNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProvidedNode.js","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAKzC,SAAS,mBAAmB,CAAC,IAAmC;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAe,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,IAAI;QACF,IAAI,IAAI,EAAE;YACR,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACtE,cAAc,CAAC,WAAW,CAAC,CAAA;YAC3B,QAAQ,CAAC,SAAS,CAAC,CAAA;SACpB;KACF;IAAC,OAAO,EAAE,EAAE;QACX,QAAQ,CAAC,EAAW,CAAC,CAAA;KACtB;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAA"}
1
+ {"version":3,"file":"useProvidedNode.js","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,GAA6B,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IAExC,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAyB,EAAgD,EAAE;IAChH,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,EAAE,CAAA;IACtC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAe,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;IAE1F,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,gFAAgF,CAAC,CAAA;QACrG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,QAAQ,CAAC,KAAK,CAAC,CAAA;KAChB;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI;YACF,IAAI,IAAI,IAAI,YAAY,EAAE;gBACxB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;gBAC/C,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAEjC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { useRenderSpinCheck } from '@xylabs/react-render-spin-check';
2
+ import { ModuleWrapper } from '@xyo-network/module';
3
+ import { useAccount } from '@xyo-network/react-wallet';
4
+ import { useEffect, useMemo, useState } from 'react';
5
+ import { useModule } from './useModule';
6
+ export const WrappedModuleHookFactory = (wrapperObject, name) => {
7
+ const useHook = (nameOrAddress, account, spinCheck) => {
8
+ const spinCheckBounceNoCheck = useMemo(() => {
9
+ return { name: name ?? 'WrappedModuleHookFactory-NoCheck' };
10
+ }, []);
11
+ useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck);
12
+ const [providedAccount] = useAccount();
13
+ const [module, moduleError] = useModule(nameOrAddress ?? {
14
+ query: [wrapperObject.requiredQueries],
15
+ });
16
+ const [wrapper, setWrapper] = useState();
17
+ const [error, setError] = useState();
18
+ const accountToUse = useMemo(() => account ?? providedAccount, [account, providedAccount]);
19
+ if (!accountToUse) {
20
+ const error = Error('Module hooks require either an Account context or account parameter');
21
+ console.error(error.message);
22
+ setError(error);
23
+ }
24
+ useEffect(() => {
25
+ if (module && accountToUse) {
26
+ try {
27
+ const wrapper = wrapperObject.wrap(module, accountToUse);
28
+ setWrapper(wrapper);
29
+ }
30
+ catch (ex) {
31
+ setWrapper(undefined);
32
+ setError(ex);
33
+ }
34
+ }
35
+ else {
36
+ setWrapper(undefined);
37
+ setError(moduleError);
38
+ }
39
+ }, [module, account, moduleError, accountToUse]);
40
+ return [wrapper, error];
41
+ };
42
+ return useHook;
43
+ };
44
+ export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper);
45
+ //# sourceMappingURL=useWrappedModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAOvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,aAA4C,EAC5C,IAAa,EACb,EAAE;IACF,MAAM,OAAO,GAAG,CAAC,aAAsB,EAAE,OAAyB,EAAE,SAAmB,EAAmD,EAAE;QAC1I,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,EAAE;YAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,kCAAkC,EAAE,CAAA;QAC7D,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,0BAA0B,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAA;QACrG,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,EAAE,CAAA;QACtC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,CACrC,aAAa,IAAI;YACf,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;SACvC,CACF,CAAA;QAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAkB,CAAA;QACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;QAE3C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;QAE1F,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,qEAAqE,CAAC,CAAA;YAC1F,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5B,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;QAED,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,MAAM,IAAI,YAAY,EAAE;gBAC1B,IAAI;oBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAmB,CAAA;oBAC1E,UAAU,CAAC,OAAO,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;iBAAM;gBACL,UAAU,CAAC,SAAS,CAAC,CAAA;gBACrB,QAAQ,CAAC,WAAW,CAAC,CAAA;aACtB;QACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;QAEhD,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAA"}
@@ -1,15 +1,8 @@
1
- export * from './useArchiveArchivists';
2
- export * from './useArchivistModule';
3
- export * from './useArchivistModules';
4
- export * from './useDivinerModule';
5
- export * from './useDivinerModules';
6
1
  export * from './useMemoryNodeUpdates';
7
2
  export * from './useModule';
8
- export * from './useModuleAddresses';
9
3
  export * from './useModules';
10
4
  export * from './useNode';
11
- export * from './useNodeQueryDiviner';
5
+ export * from './useNodeAttachedAddresses';
12
6
  export * from './useProvidedNode';
13
- export * from './useWitnessModule';
14
- export * from './useWitnessModules';
7
+ export * from './useWrappedModule';
15
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -1,59 +1,24 @@
1
- import { Module, ModuleWrapper } from '@xyo-network/module';
2
- export declare const useModule: {
3
- (name?: string | undefined): [Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
- name?: string | undefined;
5
- security?: {
6
- allowAnonymous?: boolean | undefined;
7
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
8
- disallowed?: Record<string, string[]> | undefined;
9
- } | undefined;
10
- storeQueries?: boolean | undefined;
11
- } & {
12
- schema: string;
13
- }> | undefined, Error | undefined];
14
- (name: string | undefined, wrap: true | import("@xyo-network/account").Account): [ModuleWrapper<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
15
- name?: string | undefined;
16
- security?: {
17
- allowAnonymous?: boolean | undefined;
18
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
19
- disallowed?: Record<string, string[]> | undefined;
20
- } | undefined;
21
- storeQueries?: boolean | undefined;
22
- } & {
23
- schema: string;
24
- }>> | undefined, Error | undefined];
25
- (wrap: true | import("@xyo-network/account").Account): [ModuleWrapper<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
26
- name?: string | undefined;
27
- security?: {
28
- allowAnonymous?: boolean | undefined;
29
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
30
- disallowed?: Record<string, string[]> | undefined;
31
- } | undefined;
32
- storeQueries?: boolean | undefined;
33
- } & {
34
- schema: string;
35
- }>> | undefined, Error | undefined];
36
- (address: string): [Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
37
- name?: string | undefined;
38
- security?: {
39
- allowAnonymous?: boolean | undefined;
40
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
41
- disallowed?: Record<string, string[]> | undefined;
42
- } | undefined;
43
- storeQueries?: boolean | undefined;
44
- } & {
45
- schema: string;
46
- }> | undefined, Error | undefined];
47
- (address: string, wrap: true | import("@xyo-network/account").Account): [ModuleWrapper<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
48
- name?: string | undefined;
49
- security?: {
50
- allowAnonymous?: boolean | undefined;
51
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
52
- disallowed?: Record<string, string[]> | undefined;
53
- } | undefined;
54
- storeQueries?: boolean | undefined;
55
- } & {
56
- schema: string;
57
- }>> | undefined, Error | undefined];
58
- };
1
+ import { AccountInstance } from '@xyo-network/account-model';
2
+ import { Module, ModuleFilter } from '@xyo-network/module-model';
3
+ export declare const useModule: <TModule extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
+ name?: string | undefined;
5
+ security?: {
6
+ allowAnonymous?: boolean | undefined;
7
+ allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
8
+ disallowed?: Record<string, string[]> | undefined;
9
+ } | undefined;
10
+ storeQueries?: boolean | undefined;
11
+ } & {
12
+ schema: string;
13
+ }> = Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
14
+ name?: string | undefined;
15
+ security?: {
16
+ allowAnonymous?: boolean | undefined;
17
+ allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
18
+ disallowed?: Record<string, string[]> | undefined;
19
+ } | undefined;
20
+ storeQueries?: boolean | undefined;
21
+ } & {
22
+ schema: string;
23
+ }>>(nameOrAddressOrFilter?: string | ModuleFilter, account?: AccountInstance) => [TModule | undefined, Error | undefined];
59
24
  //# sourceMappingURL=useModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAI3D,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA8F,CAAA"}
1
+ {"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAMhE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;4BACI,MAAM,GAAG,YAAY,YACnC,eAAe,6CAoE1B,CAAA"}
@@ -1,9 +1,9 @@
1
- import { Module, ModuleFilter } from '@xyo-network/module';
2
- export declare const useModules: <T extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
1
+ import { Module, ModuleFilter } from '@xyo-network/module-model';
2
+ export declare const useModules: <TModule extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
3
3
  name?: string | undefined;
4
4
  security?: {
5
5
  allowAnonymous?: boolean | undefined;
6
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
6
+ allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
7
7
  disallowed?: Record<string, string[]> | undefined;
8
8
  } | undefined;
9
9
  storeQueries?: boolean | undefined;
@@ -13,11 +13,11 @@ export declare const useModules: <T extends Module<import("@xyo-network/payload-
13
13
  name?: string | undefined;
14
14
  security?: {
15
15
  allowAnonymous?: boolean | undefined;
16
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
16
+ allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
17
17
  disallowed?: Record<string, string[]> | undefined;
18
18
  } | undefined;
19
19
  storeQueries?: boolean | undefined;
20
20
  } & {
21
21
  schema: string;
22
- }>>(filter?: ModuleFilter) => T[] | undefined;
22
+ }>>(filter?: ModuleFilter) => [TModule[] | undefined, Error | undefined];
23
23
  //# sourceMappingURL=useModules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAK1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAAwC,YAAY,oBAgB1E,CAAA"}
1
+ {"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAA8C,YAAY,+CAoChF,CAAA"}