@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.
Files changed (34) hide show
  1. package/dist/cjs/Query/QueryPayload.d.ts +5 -0
  2. package/dist/cjs/Witness/LegacyWitness.d.ts +14 -0
  3. package/dist/cjs/Witness/LegacyWitness.js +28 -0
  4. package/dist/cjs/Witness/LegacyWitness.js.map +1 -0
  5. package/dist/cjs/Witness/QueryWitness.d.ts +9 -0
  6. package/dist/cjs/Witness/QueryWitness.js +25 -0
  7. package/dist/cjs/Witness/QueryWitness.js.map +1 -0
  8. package/dist/cjs/Witness/Witness.d.ts +3 -12
  9. package/dist/cjs/Witness/Witness.js +0 -17
  10. package/dist/cjs/Witness/Witness.js.map +1 -1
  11. package/dist/cjs/Witness/index.d.ts +2 -0
  12. package/dist/cjs/Witness/index.js +2 -0
  13. package/dist/cjs/Witness/index.js.map +1 -1
  14. package/dist/docs.json +1809 -1115
  15. package/dist/esm/Query/QueryPayload.d.ts +5 -0
  16. package/dist/esm/Witness/LegacyWitness.d.ts +14 -0
  17. package/dist/esm/Witness/LegacyWitness.js +19 -0
  18. package/dist/esm/Witness/LegacyWitness.js.map +1 -0
  19. package/dist/esm/Witness/QueryWitness.d.ts +9 -0
  20. package/dist/esm/Witness/QueryWitness.js +17 -0
  21. package/dist/esm/Witness/QueryWitness.js.map +1 -0
  22. package/dist/esm/Witness/Witness.d.ts +3 -12
  23. package/dist/esm/Witness/Witness.js +0 -13
  24. package/dist/esm/Witness/Witness.js.map +1 -1
  25. package/dist/esm/Witness/index.d.ts +2 -0
  26. package/dist/esm/Witness/index.js +2 -0
  27. package/dist/esm/Witness/index.js.map +1 -1
  28. package/package.json +3 -3
  29. package/src/Query/QueryPayload.ts +8 -0
  30. package/src/Witness/LegacyWitness.ts +30 -0
  31. package/src/Witness/QueryWitness.ts +23 -0
  32. package/src/Witness/Witness.spec.ts +4 -4
  33. package/src/Witness/Witness.ts +4 -26
  34. 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 interface XyoWitnessConfig<T extends XyoPayload = XyoPayload> {
3
- schema: string;
4
- template?: XyoPayload;
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":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQ1D,MAAM,OAAO,UAAU;IAMrB,YAAY,MAAS;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAmB;QACtC,OAAO,IAAI,iBAAiB,CAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aAC5D,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;aAC/B,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;aACtC,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,EAAE,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,UAAU;CAG/B"}
@@ -1 +1,3 @@
1
+ export * from './LegacyWitness';
2
+ export * from './QueryWitness';
1
3
  export * from './Witness';
@@ -1,2 +1,4 @@
1
+ export * from './LegacyWitness';
2
+ export * from './QueryWitness';
1
3
  export * from './Witness';
2
4
  //# sourceMappingURL=index.js.map
@@ -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.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.36",
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.38",
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 { XyoWitness } from './Witness'
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 XyoWitness({ schema: 'network.xyo.payload', template })
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
  })
@@ -1,28 +1,6 @@
1
- import { XyoPayload, XyoPayloadBuilder } from '../Payload'
1
+ import { XyoPayload } from '../Payload'
2
2
 
3
- export interface XyoWitnessConfig<T extends XyoPayload = XyoPayload> {
4
- schema: string
5
- template?: XyoPayload
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
  }
@@ -1 +1,3 @@
1
+ export * from './LegacyWitness'
2
+ export * from './QueryWitness'
1
3
  export * from './Witness'