@xyo-network/core 2.20.38 → 2.20.41
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/dist/cjs/Query/QueryPayload.d.ts +5 -0
- package/dist/cjs/Witness/LegacyWitness.d.ts +14 -0
- package/dist/cjs/Witness/LegacyWitness.js +28 -0
- package/dist/cjs/Witness/LegacyWitness.js.map +1 -0
- package/dist/cjs/Witness/QueryWitness.d.ts +9 -0
- package/dist/cjs/Witness/QueryWitness.js +25 -0
- package/dist/cjs/Witness/QueryWitness.js.map +1 -0
- package/dist/cjs/Witness/Witness.d.ts +3 -12
- package/dist/cjs/Witness/Witness.js +0 -17
- package/dist/cjs/Witness/Witness.js.map +1 -1
- package/dist/cjs/Witness/index.d.ts +2 -0
- package/dist/cjs/Witness/index.js +2 -0
- package/dist/cjs/Witness/index.js.map +1 -1
- package/dist/docs.json +1809 -1115
- package/dist/esm/Query/QueryPayload.d.ts +5 -0
- package/dist/esm/Witness/LegacyWitness.d.ts +14 -0
- package/dist/esm/Witness/LegacyWitness.js +19 -0
- package/dist/esm/Witness/LegacyWitness.js.map +1 -0
- package/dist/esm/Witness/QueryWitness.d.ts +9 -0
- package/dist/esm/Witness/QueryWitness.js +17 -0
- package/dist/esm/Witness/QueryWitness.js.map +1 -0
- package/dist/esm/Witness/Witness.d.ts +3 -12
- package/dist/esm/Witness/Witness.js +0 -13
- package/dist/esm/Witness/Witness.js.map +1 -1
- package/dist/esm/Witness/index.d.ts +2 -0
- package/dist/esm/Witness/index.js +2 -0
- package/dist/esm/Witness/index.js.map +1 -1
- package/package.json +3 -3
- package/src/Query/QueryPayload.ts +8 -0
- package/src/Witness/LegacyWitness.ts +30 -0
- package/src/Witness/QueryWitness.ts +23 -0
- package/src/Witness/Witness.spec.ts +4 -4
- package/src/Witness/Witness.ts +4 -26
- package/src/Witness/index.ts +2 -0
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { XyoPayload } from '../Payload';
|
|
2
2
|
export interface XyoQueryPayload extends XyoPayload {
|
|
3
|
+
/** @field The preferred schema to use for the answer */
|
|
4
|
+
targetSchema?: string;
|
|
5
|
+
/** @field The maximum XYO that can be spent executing the query */
|
|
3
6
|
budget?: number;
|
|
7
|
+
/** @field The frequency on which this query can be rerun */
|
|
4
8
|
maxFrequency?: 'once' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';
|
|
9
|
+
/** @field The starting point for the bidding on the query */
|
|
5
10
|
minBid?: number;
|
|
6
11
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { XyoPayload } from '../Payload';
|
|
2
|
+
import { XyoWitness } from './Witness';
|
|
3
|
+
export interface XyoWitnessConfig<T extends XyoPayload = XyoPayload> {
|
|
4
|
+
schema: string;
|
|
5
|
+
template?: XyoPayload;
|
|
6
|
+
observer?: () => Promise<T> | T;
|
|
7
|
+
}
|
|
8
|
+
export declare class XyoLegacyWitness<T extends XyoPayload = XyoPayload, C extends XyoWitnessConfig<T> = XyoWitnessConfig<T>> extends XyoWitness<T> {
|
|
9
|
+
config?: C;
|
|
10
|
+
previousHash?: string;
|
|
11
|
+
constructor(config?: C);
|
|
12
|
+
get targetSchema(): string;
|
|
13
|
+
observe(fields?: Partial<T>): Promise<T>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { XyoPayloadBuilder } from '../Payload';
|
|
2
|
+
import { XyoWitness } from './Witness';
|
|
3
|
+
export class XyoLegacyWitness extends XyoWitness {
|
|
4
|
+
constructor(config) {
|
|
5
|
+
super();
|
|
6
|
+
this.config = config;
|
|
7
|
+
}
|
|
8
|
+
get targetSchema() {
|
|
9
|
+
return this.config?.schema ?? 'network.xyo.payload';
|
|
10
|
+
}
|
|
11
|
+
async observe(fields) {
|
|
12
|
+
return new XyoPayloadBuilder({ schema: this.targetSchema })
|
|
13
|
+
.previousHash(this.previousHash)
|
|
14
|
+
.fields(await this.config?.observer?.())
|
|
15
|
+
.fields(fields)
|
|
16
|
+
.build();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=LegacyWitness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegacyWitness.js","sourceRoot":"","sources":["../../../src/Witness/LegacyWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAQtC,MAAM,OAAO,gBAAyG,SAAQ,UAAa;IAIzI,YAAY,MAAU;QACpB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,IAAa,YAAY;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,qBAAqB,CAAA;IACrD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAmB;QACtC,OAAO,IAAI,iBAAiB,CAAI,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3D,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;aAC/B,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;aACvC,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { XyoPayload } from '../Payload';
|
|
2
|
+
import { XyoQueryPayload } from '../Query';
|
|
3
|
+
import { XyoWitness } from './Witness';
|
|
4
|
+
export declare class XyoQueryWitness<Q extends XyoQueryPayload, T extends XyoPayload> extends XyoWitness {
|
|
5
|
+
query: Q;
|
|
6
|
+
constructor(query: Q);
|
|
7
|
+
get targetSchema(): string;
|
|
8
|
+
observe(fields?: Partial<T>): Promise<T>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { delay } from '@xylabs/sdk-js';
|
|
2
|
+
import { XyoPayloadBuilder } from '../Payload';
|
|
3
|
+
import { XyoWitness } from './Witness';
|
|
4
|
+
export class XyoQueryWitness extends XyoWitness {
|
|
5
|
+
constructor(query) {
|
|
6
|
+
super();
|
|
7
|
+
this.query = query;
|
|
8
|
+
}
|
|
9
|
+
get targetSchema() {
|
|
10
|
+
return this.query.targetSchema ?? 'network.xyo.payload';
|
|
11
|
+
}
|
|
12
|
+
async observe(fields) {
|
|
13
|
+
await delay(0);
|
|
14
|
+
return new XyoPayloadBuilder({ schema: this.targetSchema }).fields(fields).build();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=QueryWitness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryWitness.js","sourceRoot":"","sources":["../../../src/Witness/QueryWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,OAAO,EAAc,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,MAAM,OAAO,eAAiE,SAAQ,UAAU;IAG9F,YAAY,KAAQ;QAClB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,IAAa,YAAY;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,qBAAqB,CAAA;IACzD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAmB;QACtC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAA;QACd,OAAO,IAAI,iBAAiB,CAAI,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACvF,CAAC;CACF"}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import { XyoPayload } from '../Payload';
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
observer?: () => Promise<T> | T;
|
|
6
|
-
}
|
|
7
|
-
export declare class XyoWitness<T extends XyoPayload = XyoPayload, C extends XyoWitnessConfig<T> = XyoWitnessConfig<T>> {
|
|
8
|
-
config: C;
|
|
9
|
-
previousHash?: string;
|
|
10
|
-
schema: string;
|
|
11
|
-
template?: XyoPayload;
|
|
12
|
-
constructor(config: C);
|
|
13
|
-
observe(fields?: Partial<T>): Promise<T>;
|
|
2
|
+
export declare abstract class XyoWitness<T extends XyoPayload = XyoPayload> {
|
|
3
|
+
abstract observe(fields?: Partial<T>): Promise<T>;
|
|
4
|
+
abstract get targetSchema(): string;
|
|
14
5
|
}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
import { XyoPayloadBuilder } from '../Payload';
|
|
2
1
|
export class XyoWitness {
|
|
3
|
-
constructor(config) {
|
|
4
|
-
this.config = config;
|
|
5
|
-
this.schema = config.schema;
|
|
6
|
-
this.template = config.template;
|
|
7
|
-
}
|
|
8
|
-
async observe(fields) {
|
|
9
|
-
return new XyoPayloadBuilder({ schema: this.config.schema })
|
|
10
|
-
.previousHash(this.previousHash)
|
|
11
|
-
.fields(await this.config.observer?.())
|
|
12
|
-
.fields(fields)
|
|
13
|
-
.build();
|
|
14
|
-
}
|
|
15
2
|
}
|
|
16
3
|
//# sourceMappingURL=Witness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,UAAU;CAG/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Witness/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Witness/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@xylabs/sdk-js": "^2.5.
|
|
12
|
+
"@xylabs/sdk-js": "^2.5.7",
|
|
13
13
|
"axios": "^0.27.2",
|
|
14
14
|
"elliptic": "^6.5.4",
|
|
15
15
|
"keccak256": "^1.0.6",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@babel/preset-env": "^7.18.2",
|
|
24
24
|
"@types/elliptic": "^6.4.14",
|
|
25
25
|
"@types/lodash": "^4.14.182",
|
|
26
|
-
"@types/node": "^17.0.
|
|
26
|
+
"@types/node": "^17.0.38",
|
|
27
27
|
"@types/sha.js": "^2.4.0",
|
|
28
28
|
"@types/ua-parser-js": "^0.7.36",
|
|
29
29
|
"@xylabs/eslint-config": "^2.3.22",
|
|
@@ -69,6 +69,6 @@
|
|
|
69
69
|
},
|
|
70
70
|
"sideEffects": true,
|
|
71
71
|
"types": "dist/esm/index.d.ts",
|
|
72
|
-
"version": "2.20.
|
|
72
|
+
"version": "2.20.41",
|
|
73
73
|
"packageManager": "yarn@3.1.1"
|
|
74
74
|
}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { XyoPayload } from '../Payload'
|
|
2
2
|
|
|
3
3
|
export interface XyoQueryPayload extends XyoPayload {
|
|
4
|
+
/** @field The preferred schema to use for the answer */
|
|
5
|
+
targetSchema?: string
|
|
6
|
+
|
|
7
|
+
/** @field The maximum XYO that can be spent executing the query */
|
|
4
8
|
budget?: number
|
|
9
|
+
|
|
10
|
+
/** @field The frequency on which this query can be rerun */
|
|
5
11
|
maxFrequency?: 'once' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year'
|
|
12
|
+
|
|
13
|
+
/** @field The starting point for the bidding on the query */
|
|
6
14
|
minBid?: number
|
|
7
15
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { XyoPayload, XyoPayloadBuilder } from '../Payload'
|
|
2
|
+
import { XyoWitness } from './Witness'
|
|
3
|
+
|
|
4
|
+
export interface XyoWitnessConfig<T extends XyoPayload = XyoPayload> {
|
|
5
|
+
schema: string
|
|
6
|
+
template?: XyoPayload
|
|
7
|
+
observer?: () => Promise<T> | T
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export class XyoLegacyWitness<T extends XyoPayload = XyoPayload, C extends XyoWitnessConfig<T> = XyoWitnessConfig<T>> extends XyoWitness<T> {
|
|
11
|
+
public config?: C
|
|
12
|
+
public previousHash?: string
|
|
13
|
+
|
|
14
|
+
constructor(config?: C) {
|
|
15
|
+
super()
|
|
16
|
+
this.config = config
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override get targetSchema() {
|
|
20
|
+
return this.config?.schema ?? 'network.xyo.payload'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public async observe(fields?: Partial<T>) {
|
|
24
|
+
return new XyoPayloadBuilder<T>({ schema: this.targetSchema })
|
|
25
|
+
.previousHash(this.previousHash)
|
|
26
|
+
.fields(await this.config?.observer?.())
|
|
27
|
+
.fields(fields)
|
|
28
|
+
.build()
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { delay } from '@xylabs/sdk-js'
|
|
2
|
+
|
|
3
|
+
import { XyoPayload, XyoPayloadBuilder } from '../Payload'
|
|
4
|
+
import { XyoQueryPayload } from '../Query'
|
|
5
|
+
import { XyoWitness } from './Witness'
|
|
6
|
+
|
|
7
|
+
export class XyoQueryWitness<Q extends XyoQueryPayload, T extends XyoPayload> extends XyoWitness {
|
|
8
|
+
public query: Q
|
|
9
|
+
|
|
10
|
+
constructor(query: Q) {
|
|
11
|
+
super()
|
|
12
|
+
this.query = query
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
override get targetSchema() {
|
|
16
|
+
return this.query.targetSchema ?? 'network.xyo.payload'
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public async observe(fields?: Partial<T>): Promise<T> {
|
|
20
|
+
await delay(0)
|
|
21
|
+
return new XyoPayloadBuilder<T>({ schema: this.targetSchema }).fields(fields).build()
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { XyoLegacyWitness } from './LegacyWitness'
|
|
2
2
|
|
|
3
3
|
describe('XyoWitness', () => {
|
|
4
4
|
test('valid-instantiation', () => {
|
|
5
5
|
const template = {
|
|
6
6
|
schema: 'network.xyo.foo',
|
|
7
7
|
}
|
|
8
|
-
const witness = new
|
|
8
|
+
const witness = new XyoLegacyWitness({ schema: 'network.xyo.payload', template })
|
|
9
9
|
expect(witness).toBeTruthy()
|
|
10
|
-
expect(witness.schema).toBe('network.xyo.payload')
|
|
11
|
-
expect(witness.template).toBe(template)
|
|
10
|
+
expect(witness.config?.schema).toBe('network.xyo.payload')
|
|
11
|
+
expect(witness.config?.template).toBe(template)
|
|
12
12
|
})
|
|
13
13
|
})
|
package/src/Witness/Witness.ts
CHANGED
|
@@ -1,28 +1,6 @@
|
|
|
1
|
-
import { XyoPayload
|
|
1
|
+
import { XyoPayload } from '../Payload'
|
|
2
2
|
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
observer?: () => Promise<T> | T
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export class XyoWitness<T extends XyoPayload = XyoPayload, C extends XyoWitnessConfig<T> = XyoWitnessConfig<T>> {
|
|
10
|
-
public config: C
|
|
11
|
-
public previousHash?: string
|
|
12
|
-
public schema: string
|
|
13
|
-
public template?: XyoPayload
|
|
14
|
-
|
|
15
|
-
constructor(config: C) {
|
|
16
|
-
this.config = config
|
|
17
|
-
this.schema = config.schema
|
|
18
|
-
this.template = config.template
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public async observe(fields?: Partial<T>) {
|
|
22
|
-
return new XyoPayloadBuilder<T>({ schema: this.config.schema })
|
|
23
|
-
.previousHash(this.previousHash)
|
|
24
|
-
.fields(await this.config.observer?.())
|
|
25
|
-
.fields(fields)
|
|
26
|
-
.build()
|
|
27
|
-
}
|
|
3
|
+
export abstract class XyoWitness<T extends XyoPayload = XyoPayload> {
|
|
4
|
+
abstract observe(fields?: Partial<T>): Promise<T>
|
|
5
|
+
abstract get targetSchema(): string
|
|
28
6
|
}
|
package/src/Witness/index.ts
CHANGED