@xyo-network/boundwitness 2.38.0 → 2.38.2
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/Builder/Builder.d.ts +2 -1
- package/dist/cjs/Builder/Builder.d.ts.map +1 -1
- package/dist/cjs/Builder/Builder.js +15 -6
- package/dist/cjs/Builder/Builder.js.map +1 -1
- package/dist/docs.json +1064 -983
- package/dist/esm/Builder/Builder.d.ts +2 -1
- package/dist/esm/Builder/Builder.d.ts.map +1 -1
- package/dist/esm/Builder/Builder.js +14 -4
- package/dist/esm/Builder/Builder.js.map +1 -1
- package/package.json +5 -5
- package/src/Builder/Builder.ts +20 -4
|
@@ -14,12 +14,13 @@ export declare class BoundWitnessBuilder<TBoundWitness extends XyoBoundWitness<{
|
|
|
14
14
|
}> = XyoBoundWitness, TPayload extends XyoPayload = XyoPayload> {
|
|
15
15
|
readonly config: BoundWitnessBuilderConfig;
|
|
16
16
|
private _accounts;
|
|
17
|
-
private _payload_schemas;
|
|
18
17
|
private _payloads;
|
|
19
18
|
private _payloadHashes;
|
|
19
|
+
private _payloadSchemas;
|
|
20
20
|
private _timestamp;
|
|
21
21
|
constructor(config?: BoundWitnessBuilderConfig);
|
|
22
22
|
private get _payload_hashes();
|
|
23
|
+
private get _payload_schemas();
|
|
23
24
|
witness(account: XyoAccount): this;
|
|
24
25
|
payloads(payloads?: (TPayload | null)[]): this;
|
|
25
26
|
hashes(hashes: string[], schema: string[]): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../../src/Builder/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAyB,MAAM,WAAW,CAAA;AAGlE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,wDAAwD;AACxD,oBAAY,4BAA4B,GAAG,yBAAyB,CAAA;AAEpE,qBAAa,mBAAmB,CAC9B,aAAa,SAAS,eAAe,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,eAAe,EAC3E,QAAQ,SAAS,UAAU,GAAG,UAAU;aAQZ,MAAM,EAAE,yBAAyB;IAN7D,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../../src/Builder/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAyB,MAAM,WAAW,CAAA;AAGlE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,wDAAwD;AACxD,oBAAY,4BAA4B,GAAG,yBAAyB,CAAA;AAEpE,qBAAa,mBAAmB,CAC9B,aAAa,SAAS,eAAe,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,eAAe,EAC3E,QAAQ,SAAS,UAAU,GAAG,UAAU;aAQZ,MAAM,EAAE,yBAAyB;IAN7D,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,UAAU,CAAa;gBAEH,MAAM,GAAE,yBAAqD;IAEzF,OAAO,KAAK,eAAe,GAO1B;IAED,OAAO,KAAK,gBAAgB,GAO3B;IAEM,OAAO,CAAC,OAAO,EAAE,UAAU;IAK3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IASvC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAQ1B,cAAc,IAAI,aAAa;IAuBtC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAIlC,OAAO,CAAC,cAAc;IASf,KAAK,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;CAyB5C;AAED,kDAAkD;AAClD,qBAAa,sBAAuB,SAAQ,mBAAmB;CAAG"}
|
|
@@ -6,9 +6,9 @@ import { BoundWitnessWrapper } from '../Wrapper';
|
|
|
6
6
|
export class BoundWitnessBuilder {
|
|
7
7
|
config;
|
|
8
8
|
_accounts = [];
|
|
9
|
-
_payload_schemas = [];
|
|
10
9
|
_payloads = [];
|
|
11
10
|
_payloadHashes;
|
|
11
|
+
_payloadSchemas;
|
|
12
12
|
_timestamp = Date.now();
|
|
13
13
|
constructor(config = { inlinePayloads: false }) {
|
|
14
14
|
this.config = config;
|
|
@@ -16,7 +16,13 @@ export class BoundWitnessBuilder {
|
|
|
16
16
|
get _payload_hashes() {
|
|
17
17
|
return (this._payloadHashes ??
|
|
18
18
|
this._payloads.map((payload) => {
|
|
19
|
-
return new Hasher(payload).hash;
|
|
19
|
+
return assertEx(new Hasher(payload).hash);
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
get _payload_schemas() {
|
|
23
|
+
return (this._payloadSchemas ??
|
|
24
|
+
this._payloads.map((payload) => {
|
|
25
|
+
return assertEx(payload.schema);
|
|
20
26
|
}));
|
|
21
27
|
}
|
|
22
28
|
witness(account) {
|
|
@@ -32,13 +38,14 @@ export class BoundWitnessBuilder {
|
|
|
32
38
|
return this;
|
|
33
39
|
}
|
|
34
40
|
hashes(hashes, schema) {
|
|
41
|
+
assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set');
|
|
35
42
|
this._payloadHashes = hashes;
|
|
36
|
-
this.
|
|
43
|
+
this._payloadSchemas = schema;
|
|
37
44
|
return this;
|
|
38
45
|
}
|
|
39
46
|
payload(payload) {
|
|
47
|
+
assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set');
|
|
40
48
|
if (payload) {
|
|
41
|
-
this._payload_schemas.push(payload.schema);
|
|
42
49
|
this._payloads.push(assertEx(sortFields(payload)));
|
|
43
50
|
}
|
|
44
51
|
return this;
|
|
@@ -53,6 +60,9 @@ export class BoundWitnessBuilder {
|
|
|
53
60
|
previous_hashes,
|
|
54
61
|
schema: XyoBoundWitnessSchema,
|
|
55
62
|
};
|
|
63
|
+
assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch');
|
|
64
|
+
assertEx(!result.payload_hashes.reduce((inValid, hash) => inValid || !hash, false), 'nulls found in hashes');
|
|
65
|
+
assertEx(!result.payload_schemas.reduce((inValid, schema) => inValid || !schema, false), 'nulls found in schemas');
|
|
56
66
|
if (this.config.timestamp ?? true) {
|
|
57
67
|
result.timestamp = this._timestamp;
|
|
58
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../../src/Builder/Builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAmB,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAYhD,MAAM,OAAO,mBAAmB;IAUF;IANpB,SAAS,GAAiB,EAAE,CAAA;IAC5B,
|
|
1
|
+
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../../src/Builder/Builder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.9",
|
|
14
14
|
"@xylabs/buffer": "^2.6.9",
|
|
15
|
-
"@xyo-network/account": "^2.38.
|
|
16
|
-
"@xyo-network/core": "^2.38.
|
|
17
|
-
"@xyo-network/payload": "^2.38.
|
|
18
|
-
"@xyo-network/typeof": "^2.38.
|
|
15
|
+
"@xyo-network/account": "^2.38.2",
|
|
16
|
+
"@xyo-network/core": "^2.38.2",
|
|
17
|
+
"@xyo-network/payload": "^2.38.2",
|
|
18
|
+
"@xyo-network/typeof": "^2.38.2",
|
|
19
19
|
"lodash": "^4.17.21",
|
|
20
20
|
"tslib": "^2.4.0"
|
|
21
21
|
},
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
},
|
|
56
56
|
"sideEffects": false,
|
|
57
57
|
"types": "dist/esm/index.d.ts",
|
|
58
|
-
"version": "2.38.
|
|
58
|
+
"version": "2.38.2"
|
|
59
59
|
}
|
package/src/Builder/Builder.ts
CHANGED
|
@@ -22,9 +22,9 @@ export class BoundWitnessBuilder<
|
|
|
22
22
|
TPayload extends XyoPayload = XyoPayload,
|
|
23
23
|
> {
|
|
24
24
|
private _accounts: XyoAccount[] = []
|
|
25
|
-
private _payload_schemas: string[] = []
|
|
26
25
|
private _payloads: TPayload[] = []
|
|
27
26
|
private _payloadHashes: string[] | undefined
|
|
27
|
+
private _payloadSchemas: string[] | undefined
|
|
28
28
|
private _timestamp = Date.now()
|
|
29
29
|
|
|
30
30
|
constructor(public readonly config: BoundWitnessBuilderConfig = { inlinePayloads: false }) {}
|
|
@@ -33,7 +33,16 @@ export class BoundWitnessBuilder<
|
|
|
33
33
|
return (
|
|
34
34
|
this._payloadHashes ??
|
|
35
35
|
this._payloads.map((payload) => {
|
|
36
|
-
return new Hasher(payload).hash
|
|
36
|
+
return assertEx(new Hasher(payload).hash)
|
|
37
|
+
})
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
private get _payload_schemas(): string[] {
|
|
42
|
+
return (
|
|
43
|
+
this._payloadSchemas ??
|
|
44
|
+
this._payloads.map((payload) => {
|
|
45
|
+
return assertEx(payload.schema)
|
|
37
46
|
})
|
|
38
47
|
)
|
|
39
48
|
}
|
|
@@ -53,14 +62,15 @@ export class BoundWitnessBuilder<
|
|
|
53
62
|
}
|
|
54
63
|
|
|
55
64
|
public hashes(hashes: string[], schema: string[]) {
|
|
65
|
+
assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')
|
|
56
66
|
this._payloadHashes = hashes
|
|
57
|
-
this.
|
|
67
|
+
this._payloadSchemas = schema
|
|
58
68
|
return this
|
|
59
69
|
}
|
|
60
70
|
|
|
61
71
|
public payload(payload?: TPayload) {
|
|
72
|
+
assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')
|
|
62
73
|
if (payload) {
|
|
63
|
-
this._payload_schemas.push(payload.schema)
|
|
64
74
|
this._payloads.push(assertEx(sortFields<TPayload>(payload)))
|
|
65
75
|
}
|
|
66
76
|
return this
|
|
@@ -77,6 +87,12 @@ export class BoundWitnessBuilder<
|
|
|
77
87
|
schema: XyoBoundWitnessSchema,
|
|
78
88
|
} as TBoundWitness
|
|
79
89
|
|
|
90
|
+
assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')
|
|
91
|
+
|
|
92
|
+
assertEx(!result.payload_hashes.reduce((inValid, hash) => inValid || !hash, false), 'nulls found in hashes')
|
|
93
|
+
|
|
94
|
+
assertEx(!result.payload_schemas.reduce((inValid, schema) => inValid || !schema, false), 'nulls found in schemas')
|
|
95
|
+
|
|
80
96
|
if (this.config.timestamp ?? true) {
|
|
81
97
|
result.timestamp = this._timestamp
|
|
82
98
|
}
|