@xyo-network/boundwitness 2.24.0 → 2.24.3
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/Validator/Validator.d.ts +2 -0
- package/dist/cjs/Validator/Validator.d.ts.map +1 -1
- package/dist/cjs/Validator/Validator.js +14 -16
- package/dist/cjs/Validator/Validator.js.map +1 -1
- package/dist/docs.json +503 -401
- package/dist/esm/Validator/Validator.d.ts +2 -0
- package/dist/esm/Validator/Validator.d.ts.map +1 -1
- package/dist/esm/Validator/Validator.js +15 -17
- package/dist/esm/Validator/Validator.js.map +1 -1
- package/package.json +5 -5
- package/src/Validator/Validator.ts +17 -18
|
@@ -6,8 +6,10 @@ declare class XyoBoundWitnessValidator<T extends XyoBoundWitnessWithPartialMeta
|
|
|
6
6
|
body: XyoBoundWitnessBodyValidator;
|
|
7
7
|
meta: XyoBoundWitnessMetaValidator;
|
|
8
8
|
constructor(bw: T);
|
|
9
|
+
get hash(): string;
|
|
9
10
|
signatures(): Error[];
|
|
10
11
|
validate(): Error[];
|
|
12
|
+
static validateSignature(hash: string, address: string, signature?: string): Error[];
|
|
11
13
|
}
|
|
12
14
|
export { XyoBoundWitnessValidator };
|
|
13
15
|
//# sourceMappingURL=Validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../../src/Validator/Validator.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -1,20 +1,10 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/sdk-js';
|
|
2
1
|
import { XyoAddressValue } from '@xyo-network/account';
|
|
3
|
-
import { XyoValidatorBase } from '@xyo-network/core';
|
|
2
|
+
import { XyoHasher, XyoValidatorBase } from '@xyo-network/core';
|
|
4
3
|
import { XyoBoundWitnessBodyValidator } from './BodyValidator';
|
|
5
4
|
import { XyoBoundWitnessMetaValidator } from './MetaValidator';
|
|
6
5
|
const validateArraysSameLength = (a, b, message = 'Array length mismatch') => {
|
|
7
6
|
return a.length != b.length ? [Error(`${message} []`)] : [];
|
|
8
7
|
};
|
|
9
|
-
const validateSignature = (hash, address, signature) => {
|
|
10
|
-
if (!signature) {
|
|
11
|
-
return [Error(`Missing signature [${address}]`)];
|
|
12
|
-
}
|
|
13
|
-
if (!new XyoAddressValue(address).verify(hash, signature)) {
|
|
14
|
-
return [Error(`Invalid signature [${address}] [${signature}]`)];
|
|
15
|
-
}
|
|
16
|
-
return [];
|
|
17
|
-
};
|
|
18
8
|
class XyoBoundWitnessValidator extends XyoValidatorBase {
|
|
19
9
|
body;
|
|
20
10
|
meta;
|
|
@@ -23,21 +13,29 @@ class XyoBoundWitnessValidator extends XyoValidatorBase {
|
|
|
23
13
|
this.body = new XyoBoundWitnessBodyValidator(bw, bw._payloads);
|
|
24
14
|
this.meta = new XyoBoundWitnessMetaValidator(bw);
|
|
25
15
|
}
|
|
16
|
+
get hash() {
|
|
17
|
+
return new XyoHasher(this.obj).hash;
|
|
18
|
+
}
|
|
26
19
|
signatures() {
|
|
27
|
-
const hash = assertEx(this.obj._hash, 'Missing _hash');
|
|
28
20
|
return [
|
|
29
21
|
...validateArraysSameLength(this.obj._signatures ?? [], this.obj.addresses, 'Length mismatch: address/_signature'),
|
|
30
22
|
...this.obj.addresses.reduce((errors, address, index) => {
|
|
31
|
-
errors.push(...validateSignature(hash, address, this.obj._signatures?.[index]));
|
|
23
|
+
errors.push(...XyoBoundWitnessValidator.validateSignature(this.hash, address, this.obj._signatures?.[index]));
|
|
32
24
|
return errors;
|
|
33
25
|
}, []),
|
|
34
26
|
];
|
|
35
27
|
}
|
|
36
28
|
validate() {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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 [];
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
41
|
export { XyoBoundWitnessValidator };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/Validator/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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"}
|
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.
|
|
16
|
-
"@xyo-network/core": "^2.24.
|
|
17
|
-
"@xyo-network/payload": "^2.24.
|
|
18
|
-
"@xyo-network/typeof": "^2.24.
|
|
15
|
+
"@xyo-network/account": "^2.24.3",
|
|
16
|
+
"@xyo-network/core": "^2.24.3",
|
|
17
|
+
"@xyo-network/payload": "^2.24.3",
|
|
18
|
+
"@xyo-network/typeof": "^2.24.3",
|
|
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.
|
|
61
|
+
"version": "2.24.3",
|
|
62
62
|
"packageManager": "yarn@3.1.1"
|
|
63
63
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/sdk-js'
|
|
2
1
|
import { XyoAddressValue } from '@xyo-network/account'
|
|
3
|
-
import { XyoValidatorBase } from '@xyo-network/core'
|
|
2
|
+
import { XyoHasher, XyoValidatorBase } from '@xyo-network/core'
|
|
4
3
|
|
|
5
4
|
import { XyoBoundWitnessWithPartialMeta } from '../models'
|
|
6
5
|
import { XyoBoundWitnessBodyValidator } from './BodyValidator'
|
|
@@ -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
|
|
@@ -29,22 +18,32 @@ class XyoBoundWitnessValidator<T extends XyoBoundWitnessWithPartialMeta = XyoBou
|
|
|
29
18
|
this.meta = new XyoBoundWitnessMetaValidator(bw)
|
|
30
19
|
}
|
|
31
20
|
|
|
21
|
+
public get hash() {
|
|
22
|
+
return new XyoHasher(this.obj).hash
|
|
23
|
+
}
|
|
24
|
+
|
|
32
25
|
public signatures() {
|
|
33
|
-
const hash = assertEx(this.obj._hash, 'Missing _hash')
|
|
34
26
|
return [
|
|
35
27
|
...validateArraysSameLength(this.obj._signatures ?? [], this.obj.addresses, 'Length mismatch: address/_signature'),
|
|
36
28
|
...this.obj.addresses.reduce<Error[]>((errors, address, index) => {
|
|
37
|
-
errors.push(...validateSignature(hash, address, this.obj._signatures?.[index]))
|
|
29
|
+
errors.push(...XyoBoundWitnessValidator.validateSignature(this.hash, address, this.obj._signatures?.[index]))
|
|
38
30
|
return errors
|
|
39
31
|
}, []),
|
|
40
32
|
]
|
|
41
33
|
}
|
|
42
34
|
|
|
43
35
|
public validate() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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 []
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
|