@xyo-network/modules 2.44.0 → 2.45.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -10,18 +10,18 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xyo-network/archivist": "^2.44.0",
14
- "@xyo-network/bridge": "^2.44.0",
15
- "@xyo-network/diviner": "^2.44.0",
16
- "@xyo-network/module": "^2.44.0",
17
- "@xyo-network/node": "^2.44.0",
18
- "@xyo-network/panel": "^2.44.0",
19
- "@xyo-network/sentinel": "^2.44.0",
20
- "@xyo-network/witness": "^2.44.0"
13
+ "@xyo-network/archivist": "^2.45.0-rc.1",
14
+ "@xyo-network/bridge": "^2.45.0-rc.1",
15
+ "@xyo-network/diviner": "^2.45.0-rc.1",
16
+ "@xyo-network/module": "^2.45.0-rc.1",
17
+ "@xyo-network/node": "^2.45.0-rc.1",
18
+ "@xyo-network/panel": "^2.45.0-rc.1",
19
+ "@xyo-network/sentinel": "^2.45.0-rc.1",
20
+ "@xyo-network/witness": "^2.45.0-rc.1"
21
21
  },
22
22
  "devDependencies": {
23
- "@xylabs/ts-scripts-yarn3": "^2.14.14",
24
- "@xylabs/tsconfig": "^2.14.14",
23
+ "@xylabs/ts-scripts-yarn3": "^2.14.15",
24
+ "@xylabs/tsconfig": "^2.14.15",
25
25
  "typescript": "^4.9.5"
26
26
  },
27
27
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -57,5 +57,6 @@
57
57
  },
58
58
  "sideEffects": false,
59
59
  "types": "dist/types/index.d.ts",
60
- "version": "2.44.0"
60
+ "version": "2.45.0-rc.1",
61
+ "stableVersion": "2.44.1"
61
62
  }
@@ -0,0 +1,83 @@
1
+ import { MemoryArchivist, MemoryArchivistConfigSchema } from '@xyo-network/archivist'
2
+ import { MemoryAddressHistoryDiviner, MemoryAddressHistoryDivinerConfigSchema } from '@xyo-network/diviner'
3
+ import { IdWitness, IdWitnessConfigSchema } from '@xyo-network/id-plugin'
4
+ import { AbstractModule } from '@xyo-network/module'
5
+ import { MemoryNode, NodeConfigSchema, NodeWrapper } from '@xyo-network/node'
6
+
7
+ describe('MultiNodeConfiguration', () => {
8
+ let primaryArchivist: AbstractModule
9
+ let primaryNode: MemoryNode
10
+ let primaryNodeWrapper: NodeWrapper
11
+
12
+ let leftArchivist: AbstractModule
13
+ let leftDiviner: AbstractModule
14
+ let leftNode: MemoryNode
15
+ let leftNodeWrapper: NodeWrapper
16
+
17
+ let rightNode: MemoryNode
18
+ let rightNodeWrapper: NodeWrapper
19
+ let rightArchivist: AbstractModule
20
+ let rightWitness: AbstractModule
21
+
22
+ beforeAll(async () => {
23
+ primaryNode = await MemoryNode.create({ config: { name: 'primaryNode', schema: NodeConfigSchema } })
24
+ primaryNodeWrapper = new NodeWrapper(primaryNode)
25
+ primaryArchivist = await MemoryArchivist.create({ config: { name: 'primaryArchivist', schema: MemoryArchivistConfigSchema } })
26
+ primaryNode.register(primaryArchivist).attach(primaryArchivist.address, true)
27
+
28
+ rightNode = await MemoryNode.create({ config: { name: 'rightNode', schema: NodeConfigSchema } })
29
+ rightNodeWrapper = new NodeWrapper(rightNode)
30
+ rightArchivist = await MemoryArchivist.create()
31
+ rightWitness = await IdWitness.create({ config: { name: 'rightWitness', salt: 'test', schema: IdWitnessConfigSchema } })
32
+ rightNode.register(rightArchivist).attach(rightArchivist.address, true)
33
+ rightNode.register(rightWitness).attach(rightWitness.address, true)
34
+
35
+ leftNode = await MemoryNode.create({ config: { name: 'leftNode', schema: NodeConfigSchema } })
36
+ leftNodeWrapper = new NodeWrapper(leftNode)
37
+ leftArchivist = await MemoryArchivist.create({ config: { name: 'leftArchivist', schema: MemoryArchivistConfigSchema } })
38
+ leftDiviner = await MemoryAddressHistoryDiviner.create({
39
+ config: { address: leftNode.address, name: 'leftDiviner', schema: MemoryAddressHistoryDivinerConfigSchema },
40
+ })
41
+ leftNode.register(leftArchivist).attach(leftArchivist.address, true)
42
+ leftNode.register(leftDiviner).attach(leftDiviner.address, true)
43
+
44
+ primaryNode.register(leftNode)
45
+ primaryNode.register(rightNode)
46
+ })
47
+ test('leftNode', async () => {
48
+ primaryNode.attach(leftNode.address, true)
49
+ primaryNode.detach(rightNode.address)
50
+ expect((await primaryNode.resolve({ address: [primaryArchivist.address] })).length).toBe(1)
51
+ expect((await primaryNode.resolve({ name: ['primaryArchivist'] })).length).toBe(1)
52
+
53
+ expect((await leftNode.resolve({ address: [leftDiviner.address] })).length).toBe(1)
54
+ expect((await leftNode.resolve({ name: ['leftDiviner'] })).length).toBe(1)
55
+
56
+ expect((await rightNode.resolve({ address: [rightWitness.address] })).length).toBe(1)
57
+ expect((await rightNode.resolve({ name: ['rightWitness'] })).length).toBe(1)
58
+
59
+ expect((await primaryNode.resolve({ address: [leftNode.address] })).length).toBe(1)
60
+ expect((await primaryNode.resolve({ name: ['leftNode'] })).length).toBe(1)
61
+
62
+ expect((await primaryNode.resolve({ address: [rightNode.address] })).length).toBe(0)
63
+ expect((await primaryNode.resolve({ name: ['rightNode'] })).length).toBe(0)
64
+
65
+ expect((await primaryNode.resolve({ address: [leftDiviner.address] })).length).toBe(1)
66
+ expect((await primaryNode.resolve({ name: ['leftDiviner'] })).length).toBe(1)
67
+
68
+ expect((await primaryNode.resolve({ address: [rightWitness.address] })).length).toBe(0)
69
+ expect((await primaryNode.resolve({ name: ['rightWitness'] })).length).toBe(0)
70
+ })
71
+
72
+ test('rightNode', async () => {
73
+ primaryNode.attach(rightNode.address, true)
74
+ primaryNode.detach(leftNode.address)
75
+ expect((await primaryNode.resolve({ address: [primaryArchivist.address] })).length).toBe(1)
76
+ expect((await leftNode.resolve({ address: [leftDiviner.address] })).length).toBe(1)
77
+ expect((await rightNode.resolve({ address: [rightWitness.address] })).length).toBe(1)
78
+ expect((await primaryNode.resolve({ address: [rightNode.address] })).length).toBe(1)
79
+ expect((await primaryNode.resolve({ address: [leftNode.address] })).length).toBe(0)
80
+ expect((await primaryNode.resolve({ address: [rightWitness.address] })).length).toBe(1)
81
+ expect((await primaryNode.resolve({ address: [leftDiviner.address] })).length).toBe(0)
82
+ })
83
+ })
@@ -1,17 +1,17 @@
1
1
  /* eslint-disable import/no-internal-modules */
2
2
  import { ArchivistGetQuerySchema, MemoryArchivist } from '@xyo-network/archivist'
3
3
  import { IdWitness, IdWitnessConfigSchema } from '@xyo-network/id-plugin'
4
- import { Module, SimpleModuleResolver } from '@xyo-network/module'
4
+ import { AbstractModule, CompositeModuleResolver } from '@xyo-network/module'
5
5
  import { XyoWitnessObserveQuerySchema } from '@xyo-network/witness'
6
6
 
7
7
  describe('XyoModuleResolver', () => {
8
- let archivist: Module
9
- let witness: Module
10
- let resolver: SimpleModuleResolver
8
+ let archivist: AbstractModule
9
+ let witness: AbstractModule
10
+ let resolver: CompositeModuleResolver
11
11
  beforeAll(async () => {
12
12
  archivist = await MemoryArchivist.create()
13
13
  witness = await IdWitness.create({ config: { salt: 'test', schema: IdWitnessConfigSchema } })
14
- resolver = new SimpleModuleResolver()
14
+ resolver = new CompositeModuleResolver()
15
15
  resolver.add(archivist)
16
16
  resolver.add(witness)
17
17
  })