@xyo-network/boundwitness 2.24.1 → 2.24.4

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.
@@ -9,6 +9,7 @@ declare class XyoBoundWitnessValidator<T extends XyoBoundWitnessWithPartialMeta
9
9
  get hash(): string;
10
10
  signatures(): Error[];
11
11
  validate(): Error[];
12
+ static validateSignature(hash: string, address: string, signature?: string): Error[];
12
13
  }
13
14
  export { XyoBoundWitnessValidator };
14
15
  //# sourceMappingURL=Validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../../src/Validator/Validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAgB9D,cAAM,wBAAwB,CAAC,CAAC,SAAS,8BAA8B,GAAG,8BAA8B,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC5H,IAAI,EAAE,4BAA4B,CAAA;IAClC,IAAI,EAAE,4BAA4B,CAAA;gBAC7B,EAAE,EAAE,CAAC;IAMjB,IAAW,IAAI,WAEd;IAEM,UAAU;IAUV,QAAQ;CAMhB;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
1
+ {"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../../src/Validator/Validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAM9D,cAAM,wBAAwB,CAAC,CAAC,SAAS,8BAA8B,GAAG,8BAA8B,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC5H,IAAI,EAAE,4BAA4B,CAAA;IAClC,IAAI,EAAE,4BAA4B,CAAA;gBAC7B,EAAE,EAAE,CAAC;IAMjB,IAAW,IAAI,WAEd;IAEM,UAAU;IAUV,QAAQ;IAIf,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAS3E;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
@@ -5,15 +5,6 @@ import { XyoBoundWitnessMetaValidator } from './MetaValidator';
5
5
  const validateArraysSameLength = (a, b, message = 'Array length mismatch') => {
6
6
  return a.length != b.length ? [Error(`${message} []`)] : [];
7
7
  };
8
- const validateSignature = (hash, address, signature) => {
9
- if (!signature) {
10
- return [Error(`Missing signature [${address}]`)];
11
- }
12
- if (!new XyoAddressValue(address).verify(hash, signature)) {
13
- return [Error(`Invalid signature [${address}] [${signature}]`)];
14
- }
15
- return [];
16
- };
17
8
  class XyoBoundWitnessValidator extends XyoValidatorBase {
18
9
  body;
19
10
  meta;
@@ -29,16 +20,22 @@ class XyoBoundWitnessValidator extends XyoValidatorBase {
29
20
  return [
30
21
  ...validateArraysSameLength(this.obj._signatures ?? [], this.obj.addresses, 'Length mismatch: address/_signature'),
31
22
  ...this.obj.addresses.reduce((errors, address, index) => {
32
- errors.push(...validateSignature(this.hash, address, this.obj._signatures?.[index]));
23
+ errors.push(...XyoBoundWitnessValidator.validateSignature(this.hash, address, this.obj._signatures?.[index]));
33
24
  return errors;
34
25
  }, []),
35
26
  ];
36
27
  }
37
28
  validate() {
38
- const errors = [];
39
- errors.push(...this.meta.validate(), ...this.body.validate());
40
- errors.push(...this.signatures());
41
- return errors;
29
+ return [...this.body.validate(), ...this.signatures()];
30
+ }
31
+ static validateSignature(hash, address, signature) {
32
+ if (!signature) {
33
+ return [Error(`Missing signature [${address}]`)];
34
+ }
35
+ if (!new XyoAddressValue(address).verify(hash, signature)) {
36
+ return [Error(`Invalid signature [${address}] [${signature}]`)];
37
+ }
38
+ return [];
42
39
  }
43
40
  }
44
41
  export { XyoBoundWitnessValidator };
@@ -1 +1 @@
1
- {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/Validator/Validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAE9D,MAAM,wBAAwB,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,OAAO,GAAG,uBAAuB,EAAE,EAAE;IACjG,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,SAAkB,EAAE,EAAE;IAC9E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,GAAG,CAAC,CAAC,CAAA;KACjD;IACD,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;QACzD,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,MAAM,SAAS,GAAG,CAAC,CAAC,CAAA;KAChE;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,wBAAoG,SAAQ,gBAAmB;IAC5H,IAAI,CAA8B;IAClC,IAAI,CAA8B;IACzC,YAAY,EAAK;QACf,KAAK,CAAC,EAAE,CAAC,CAAA;QACT,IAAI,CAAC,IAAI,GAAG,IAAI,4BAA4B,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,4BAA4B,CAAC,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;IACrC,CAAC;IAEM,UAAU;QACf,OAAO;YACL,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,qCAAqC,CAAC;YAClH,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACpF,OAAO,MAAM,CAAA;YACf,CAAC,EAAE,EAAE,CAAC;SACP,CAAA;IACH,CAAC;IAEM,QAAQ;QACb,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACjC,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
1
+ {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/Validator/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAE9D,MAAM,wBAAwB,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,OAAO,GAAG,uBAAuB,EAAE,EAAE;IACjG,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,wBAAoG,SAAQ,gBAAmB;IAC5H,IAAI,CAA8B;IAClC,IAAI,CAA8B;IACzC,YAAY,EAAK;QACf,KAAK,CAAC,EAAE,CAAC,CAAA;QACT,IAAI,CAAC,IAAI,GAAG,IAAI,4BAA4B,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,4BAA4B,CAAC,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;IACrC,CAAC;IAEM,UAAU;QACf,OAAO;YACL,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,qCAAqC,CAAC;YAClH,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC7G,OAAO,MAAM,CAAA;YACf,CAAC,EAAE,EAAE,CAAC;SACP,CAAA;IACH,CAAC;IAEM,QAAQ;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,SAAkB;QACxE,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,GAAG,CAAC,CAAC,CAAA;SACjD;QACD,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;YACzD,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,MAAM,SAAS,GAAG,CAAC,CAAC,CAAA;SAChE;QACD,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
@@ -1,8 +1,5 @@
1
1
  import { XyoBoundWitness } from './models';
2
- export declare const isXyoBoundWitnessPayload: (x: {
2
+ export declare const isXyoBoundWitnessPayload: (x: import("@xyo-network/payload").XyoPayload<{
3
3
  schema: string;
4
- previousHash?: string | undefined;
5
- sources?: string[] | undefined;
6
- timestamp?: number | undefined;
7
- }) => x is XyoBoundWitness<import("@xyo-network/core").EmptyObject>;
4
+ }>) => x is XyoBoundWitness;
8
5
  //# sourceMappingURL=isXyoPayloadOfSchemaType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isXyoPayloadOfSchemaType.d.ts","sourceRoot":"","sources":["../../src/isXyoPayloadOfSchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,eAAO,MAAM,wBAAwB;;;;;mEAAwE,CAAA"}
1
+ {"version":3,"file":"isXyoPayloadOfSchemaType.d.ts","sourceRoot":"","sources":["../../src/isXyoPayloadOfSchemaType.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C,eAAO,MAAM,wBAAwB;;2BAAwE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { XyoPayload } from '@xyo-network/payload';
2
- export declare type XyoBoundWitnessBase = XyoPayload<{
2
+ export declare type XyoBoundWitness = XyoPayload<{
3
3
  addresses: string[];
4
4
  previous_hash?: string;
5
5
  payload_hashes: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"XyoBoundWitnessBase.d.ts","sourceRoot":"","sources":["../../../../src/models/Base/XyoBoundWitnessBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,oBAAY,mBAAmB,GAAG,UAAU,CAAC;IAC3C,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,CAAC,CAAA"}
1
+ {"version":3,"file":"XyoBoundWitnessBase.d.ts","sourceRoot":"","sources":["../../../../src/models/Base/XyoBoundWitnessBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,oBAAY,eAAe,GAAG,UAAU,CAAC;IACvC,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,CAAC,CAAA"}
@@ -1,10 +1,9 @@
1
1
  import { EmptyObject } from '@xyo-network/core';
2
2
  import { XyoPayloadWithPartialMeta } from '@xyo-network/payload';
3
- import { XyoBoundWitnessBase } from './Base';
3
+ import { XyoBoundWitness } from './Base';
4
4
  import { XyoBoundWitnessMetaBase } from './Meta';
5
- export declare type XyoBoundWitness<T extends EmptyObject = EmptyObject> = T & XyoBoundWitnessBase;
6
5
  export declare type XyoBoundWitnessMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T & XyoBoundWitnessMetaBase<P>;
7
6
  export declare type XyoPartialBoundWitnessMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T & Partial<XyoBoundWitnessMetaBase<P>>;
8
- export declare type XyoBoundWitnessWithMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T & XyoBoundWitnessMetaBase<P> & XyoBoundWitnessBase;
9
- export declare type XyoBoundWitnessWithPartialMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T & Partial<XyoBoundWitnessMetaBase<P>> & XyoBoundWitnessBase;
7
+ export declare type XyoBoundWitnessWithMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T & XyoBoundWitnessMetaBase<P> & XyoBoundWitness;
8
+ export declare type XyoBoundWitnessWithPartialMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T & Partial<XyoBoundWitnessMetaBase<P>> & XyoBoundWitness;
10
9
  //# sourceMappingURL=XyoBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/models/XyoBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAEhD,oBAAY,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,CAAC,GAAG,mBAAmB,CAAA;AAE1F,oBAAY,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GACvI,uBAAuB,CAAC,CAAC,CAAC,CAAA;AAC5B,oBAAY,0BAA0B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GAC9I,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAA;AACrC,oBAAY,uBAAuB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GAC3I,uBAAuB,CAAC,CAAC,CAAC,GAC1B,mBAAmB,CAAA;AACrB,oBAAY,8BAA8B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GAClJ,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GACnC,mBAAmB,CAAA"}
1
+ {"version":3,"file":"XyoBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/models/XyoBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAEhD,oBAAY,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GACvI,uBAAuB,CAAC,CAAC,CAAC,CAAA;AAC5B,oBAAY,0BAA0B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GAC9I,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAA;AACrC,oBAAY,uBAAuB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GAC3I,uBAAuB,CAAC,CAAC,CAAC,GAC1B,eAAe,CAAA;AACjB,oBAAY,8BAA8B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,IAAI,CAAC,GAClJ,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GACnC,eAAe,CAAA"}
package/package.json CHANGED
@@ -12,10 +12,10 @@
12
12
  "dependencies": {
13
13
  "@xylabs/buffer": "^2.6.3",
14
14
  "@xylabs/sdk-js": "^2.6.3",
15
- "@xyo-network/account": "^2.24.1",
16
- "@xyo-network/core": "^2.24.1",
17
- "@xyo-network/payload": "^2.24.1",
18
- "@xyo-network/typeof": "^2.24.1",
15
+ "@xyo-network/account": "^2.24.4",
16
+ "@xyo-network/core": "^2.24.4",
17
+ "@xyo-network/payload": "^2.24.4",
18
+ "@xyo-network/typeof": "^2.24.4",
19
19
  "lodash": "^4.17.21",
20
20
  "ua-parser-js": "^1.0.2"
21
21
  },
@@ -58,6 +58,6 @@
58
58
  },
59
59
  "sideEffects": false,
60
60
  "types": "dist/esm/index.d.ts",
61
- "version": "2.24.1",
61
+ "version": "2.24.4",
62
62
  "packageManager": "yarn@3.1.1"
63
63
  }
@@ -1,4 +1,3 @@
1
- import { assertEx } from '@xylabs/sdk-js'
2
1
  import { XyoAddressValue } from '@xyo-network/account'
3
2
  import { XyoHasher, XyoValidatorBase } from '@xyo-network/core'
4
3
 
@@ -10,16 +9,6 @@ const validateArraysSameLength = (a: unknown[], b: unknown[], message = 'Array l
10
9
  return a.length != b.length ? [Error(`${message} []`)] : []
11
10
  }
12
11
 
13
- const validateSignature = (hash: string, address: string, signature?: string) => {
14
- if (!signature) {
15
- return [Error(`Missing signature [${address}]`)]
16
- }
17
- if (!new XyoAddressValue(address).verify(hash, signature)) {
18
- return [Error(`Invalid signature [${address}] [${signature}]`)]
19
- }
20
- return []
21
- }
22
-
23
12
  class XyoBoundWitnessValidator<T extends XyoBoundWitnessWithPartialMeta = XyoBoundWitnessWithPartialMeta> extends XyoValidatorBase<T> {
24
13
  public body: XyoBoundWitnessBodyValidator
25
14
  public meta: XyoBoundWitnessMetaValidator
@@ -37,17 +26,24 @@ class XyoBoundWitnessValidator<T extends XyoBoundWitnessWithPartialMeta = XyoBou
37
26
  return [
38
27
  ...validateArraysSameLength(this.obj._signatures ?? [], this.obj.addresses, 'Length mismatch: address/_signature'),
39
28
  ...this.obj.addresses.reduce<Error[]>((errors, address, index) => {
40
- errors.push(...validateSignature(this.hash, address, this.obj._signatures?.[index]))
29
+ errors.push(...XyoBoundWitnessValidator.validateSignature(this.hash, address, this.obj._signatures?.[index]))
41
30
  return errors
42
31
  }, []),
43
32
  ]
44
33
  }
45
34
 
46
35
  public validate() {
47
- const errors: Error[] = []
48
- errors.push(...this.meta.validate(), ...this.body.validate())
49
- errors.push(...this.signatures())
50
- return errors
36
+ return [...this.body.validate(), ...this.signatures()]
37
+ }
38
+
39
+ static validateSignature(hash: string, address: string, signature?: string) {
40
+ if (!signature) {
41
+ return [Error(`Missing signature [${address}]`)]
42
+ }
43
+ if (!new XyoAddressValue(address).verify(hash, signature)) {
44
+ return [Error(`Invalid signature [${address}] [${signature}]`)]
45
+ }
46
+ return []
51
47
  }
52
48
  }
53
49
 
@@ -1,6 +1,6 @@
1
1
  import { XyoPayload } from '@xyo-network/payload'
2
2
 
3
- export type XyoBoundWitnessBase = XyoPayload<{
3
+ export type XyoBoundWitness = XyoPayload<{
4
4
  addresses: string[]
5
5
  previous_hash?: string
6
6
  payload_hashes: string[]
@@ -1,18 +1,16 @@
1
1
  import { EmptyObject } from '@xyo-network/core'
2
2
  import { XyoPayloadWithPartialMeta } from '@xyo-network/payload'
3
3
 
4
- import { XyoBoundWitnessBase } from './Base'
4
+ import { XyoBoundWitness } from './Base'
5
5
  import { XyoBoundWitnessMetaBase } from './Meta'
6
6
 
7
- export type XyoBoundWitness<T extends EmptyObject = EmptyObject> = T & XyoBoundWitnessBase
8
-
9
7
  export type XyoBoundWitnessMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T &
10
8
  XyoBoundWitnessMetaBase<P>
11
9
  export type XyoPartialBoundWitnessMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T &
12
10
  Partial<XyoBoundWitnessMetaBase<P>>
13
11
  export type XyoBoundWitnessWithMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T &
14
12
  XyoBoundWitnessMetaBase<P> &
15
- XyoBoundWitnessBase
13
+ XyoBoundWitness
16
14
  export type XyoBoundWitnessWithPartialMeta<T extends EmptyObject = EmptyObject, P extends XyoPayloadWithPartialMeta = XyoPayloadWithPartialMeta> = T &
17
15
  Partial<XyoBoundWitnessMetaBase<P>> &
18
- XyoBoundWitnessBase
16
+ XyoBoundWitness