Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs Examples #20

Merged
merged 13 commits into from
Jan 18, 2024
10 changes: 10 additions & 0 deletions src/spec/010/010-Payload.spec.ts
Original file line number Diff line number Diff line change
@@ -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)
})
})
14 changes: 14 additions & 0 deletions src/spec/010/015-Hash.spec.ts
Original file line number Diff line number Diff line change
@@ -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)
})
})
19 changes: 19 additions & 0 deletions src/spec/020/020-Account.spec.ts
Original file line number Diff line number Diff line change
@@ -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)
})
})
27 changes: 27 additions & 0 deletions src/spec/020/025-Wallet.spec.ts
Original file line number Diff line number Diff line change
@@ -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)
})
})
})
23 changes: 23 additions & 0 deletions src/spec/030/030-Boundwitness.spec.ts
Original file line number Diff line number Diff line change
@@ -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)
})
})
30 changes: 30 additions & 0 deletions src/spec/040/040-Archivist.spec.ts
Original file line number Diff line number Diff line change
@@ -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)
})
})
})
82 changes: 82 additions & 0 deletions src/spec/050/050-Node.spec.ts
Original file line number Diff line number Diff line change
@@ -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)
})
})
29 changes: 29 additions & 0 deletions src/spec/050/manifest.json
Original file line number Diff line number Diff line change
@@ -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"
}
3 changes: 3 additions & 0 deletions src/spec/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "@xylabs/tsconfig-jest"
}