diff --git a/src/spec/010/010-Payload.spec.ts b/src/spec/010/010-Payload.spec.ts new file mode 100644 index 000000000..97aad7107 --- /dev/null +++ b/src/spec/010/010-Payload.spec.ts @@ -0,0 +1,10 @@ +describe('Payload', () => { + it('create simple ', () => { + const payload = { schema: 'network.xyo.payload' } + console.log(payload) + }) + it('create of schema', () => { + const payload = { salt: '1', schema: 'network.xyo.id' } + console.log(payload) + }) +}) diff --git a/src/spec/010/015-Hash.spec.ts b/src/spec/010/015-Hash.spec.ts new file mode 100644 index 000000000..11f1deb3b --- /dev/null +++ b/src/spec/010/015-Hash.spec.ts @@ -0,0 +1,14 @@ +import { PayloadHasher } from '@xyo-network/hash' + +describe('PayloadHasher', () => { + it('hash a payload', () => { + const payload = { salt: '1', schema: 'network.xyo.id' } + const hash = PayloadHasher.hashSync(payload) + console.log(hash) + }) + it('hash a async (async)', async () => { + const payload = { salt: '1', schema: 'network.xyo.id' } + const hash = await PayloadHasher.hashAsync(payload) + console.log(hash) + }) +}) diff --git a/src/spec/020/020-Account.spec.ts b/src/spec/020/020-Account.spec.ts new file mode 100644 index 000000000..da22e399a --- /dev/null +++ b/src/spec/020/020-Account.spec.ts @@ -0,0 +1,19 @@ +import { Account } from '@xyo-network/account' +import { Mnemonic } from 'ethers' + +describe('Account', () => { + it('create random', () => { + const account = Account.randomSync() + console.log(account.address) + }) + it('create random (async)', async () => { + const account = await Account.create() + console.log(account.address) + }) + it('create reusable', async () => { + const seedPhrase = 'inhale setup middle assault install bulb language acoustic argue allow kiss peanut march friend finish' + const mnemonic = Mnemonic.fromPhrase(seedPhrase) + const account = await Account.fromMnemonic(mnemonic) + console.log(account.address) + }) +}) diff --git a/src/spec/020/025-Wallet.spec.ts b/src/spec/020/025-Wallet.spec.ts new file mode 100644 index 000000000..5cbd15270 --- /dev/null +++ b/src/spec/020/025-Wallet.spec.ts @@ -0,0 +1,27 @@ +import { HDWallet } from '@xyo-network/account' + +describe('Wallet', () => { + describe('create', () => { + it('random', () => { + const wallet = HDWallet.randomSync() + console.log(wallet.address) + }) + it('random (async)', async () => { + const wallet = await HDWallet.random() + console.log(wallet.address) + }) + it('reusable', async () => { + const seedPhrase = 'inhale setup middle assault install bulb language acoustic argue allow kiss peanut march friend finish' + const wallet = await HDWallet.fromPhrase(seedPhrase) + console.log(wallet.address) + }) + }) + describe('create child', () => { + it('create child', async () => { + const wallet = await HDWallet.random() + console.log(wallet.address) + const childAccount = await wallet.derivePath("0'/0/0") + console.log(childAccount.address) + }) + }) +}) diff --git a/src/spec/030/030-Boundwitness.spec.ts b/src/spec/030/030-Boundwitness.spec.ts new file mode 100644 index 000000000..363dfcb15 --- /dev/null +++ b/src/spec/030/030-Boundwitness.spec.ts @@ -0,0 +1,23 @@ +import { Account } from '@xyo-network/account' +import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder' + +describe('BoundWitness', () => { + it('create boundwitness', async () => { + const payload = { salt: '1', schema: 'network.xyo.id' } + const [boundWitness] = await new BoundWitnessBuilder().payload(payload).build() + console.log(boundWitness) + }) + it('create boundwitness with signer', async () => { + const payload = { salt: '1', schema: 'network.xyo.id' } + const account = Account.randomSync() + const [boundWitness] = await new BoundWitnessBuilder().payload(payload).witness(account).build() + console.log(boundWitness) + }) + it('create boundwitness with multiple signers', async () => { + const payload = { salt: '1', schema: 'network.xyo.id' } + const accountA = Account.randomSync() + const accountB = Account.randomSync() + const [boundWitness] = await new BoundWitnessBuilder().payload(payload).witnesses([accountA, accountB]).build() + console.log(boundWitness) + }) +}) diff --git a/src/spec/040/040-Archivist.spec.ts b/src/spec/040/040-Archivist.spec.ts new file mode 100644 index 000000000..e7e213221 --- /dev/null +++ b/src/spec/040/040-Archivist.spec.ts @@ -0,0 +1,30 @@ +import { MemoryArchivist } from '@xyo-network/archivist-memory' +import { PayloadHasher } from '@xyo-network/hash' + +describe('Archivist', () => { + describe('insert', () => { + it('payload', async () => { + const archivist = await MemoryArchivist.create() + const payload = { salt: '1', schema: 'network.xyo.id' } + await archivist.insert([payload]) + }) + it('payloads', async () => { + const archivist = await MemoryArchivist.create() + const payloads = [ + { data: '1', schema: 'network.xyo.id' }, + { data: '2', schema: 'network.xyo.id' }, + ] + await archivist.insert(payloads) + }) + }) + describe('get', () => { + it('get payload', async () => { + const archivist = await MemoryArchivist.create() + const payload = { salt: '1', schema: 'network.xyo.id' } + const hash = await PayloadHasher.hashAsync(payload) + await archivist.insert([payload]) + const result = await archivist.get([hash]) + console.log(result) + }) + }) +}) diff --git a/src/spec/050/050-Node.spec.ts b/src/spec/050/050-Node.spec.ts new file mode 100644 index 000000000..c157d6821 --- /dev/null +++ b/src/spec/050/050-Node.spec.ts @@ -0,0 +1,82 @@ +import { readFile } from 'node:fs/promises' +import { join } from 'node:path' + +import { HDWallet } from '@xyo-network/account' +import { PackageManifestPayload } from '@xyo-network/manifest' +import { ManifestWrapper } from '@xyo-network/manifest-wrapper' +import { MemoryNode } from '@xyo-network/node-memory' + +describe('Node', () => { + it('create', async () => { + const node = await MemoryNode.create() + const describe = await node.describe() + console.log(describe) + }) + it('create from manifest', async () => { + const wallet = await HDWallet.random() + const manifest: PackageManifestPayload = { + nodes: [ + { + config: { + name: 'Node', + schema: 'network.xyo.node.config', + }, + modules: { + private: [], + public: [], + }, + }, + ], + schema: 'network.xyo.manifest.package', + } + const wrapper = new ManifestWrapper(manifest, wallet) + const [node] = await wrapper.loadNodes() + const describe = await node.describe() + console.log(describe) + }) + it('create from manifest with module', async () => { + const wallet = await HDWallet.random() + const manifest: PackageManifestPayload = { + nodes: [ + { + config: { + name: 'Node', + schema: 'network.xyo.node.config', + }, + modules: { + private: [ + { + config: { + name: 'PrivateArchivist', + schema: 'network.xyo.archivist.config', + }, + }, + ], + public: [ + { + config: { + name: 'PublicArchivist', + schema: 'network.xyo.archivist.config', + }, + }, + ], + }, + }, + ], + schema: 'network.xyo.manifest.package', + } + const wrapper = new ManifestWrapper(manifest, wallet) + const [node] = await wrapper.loadNodes() + const describe = await node.describe() + console.log(describe) + }) + it('create from manifest file', async () => { + const wallet = await HDWallet.random() + const manifestPath = join(__dirname, 'manifest.json') + const manifest: PackageManifestPayload = JSON.parse(await readFile(manifestPath, 'utf8')) + const wrapper = new ManifestWrapper(manifest, wallet) + const [node] = await wrapper.loadNodes() + const describe = await node.describe() + console.log(describe) + }) +}) diff --git a/src/spec/050/manifest.json b/src/spec/050/manifest.json new file mode 100644 index 000000000..587e9187c --- /dev/null +++ b/src/spec/050/manifest.json @@ -0,0 +1,29 @@ +{ + "nodes": [ + { + "config": { + "name": "Node", + "schema": "network.xyo.node.config" + }, + "modules": { + "private": [ + { + "config": { + "name": "PrivateArchivist", + "schema": "network.xyo.archivist.config" + } + } + ], + "public": [ + { + "config": { + "name": "PublicArchivist", + "schema": "network.xyo.archivist.config" + } + } + ] + } + } + ], + "schema": "network.xyo.manifest.package" +} diff --git a/src/spec/tsconfig.json b/src/spec/tsconfig.json new file mode 100644 index 000000000..16980bd0b --- /dev/null +++ b/src/spec/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@xylabs/tsconfig-jest" +} \ No newline at end of file