@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.
@@ -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,gBAAgB,CAAe;IACvC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,UAAU,CAAa;gBAEH,MAAM,GAAE,yBAAqD;IAEzF,OAAO,KAAK,eAAe,GAO1B;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;IAMzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAQ1B,cAAc,IAAI,aAAa;IAiBtC,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"}
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._payload_schemas = schema;
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,gBAAgB,GAAa,EAAE,CAAA;IAC/B,SAAS,GAAe,EAAE,CAAA;IAC1B,cAAc,CAAsB;IACpC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE/B,YAA4B,SAAoC,EAAE,cAAc,EAAE,KAAK,EAAE;QAA7D,WAAM,GAAN,MAAM,CAAuD;IAAG,CAAC;IAE7F,IAAY,eAAe;QACzB,OAAO,CACL,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;YACjC,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAEM,OAAO,CAAC,OAAmB;QAChC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CAAC,QAA8B;QAC5C,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,OAAO,KAAK,IAAI,EAAE;gBACpB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;aACtB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,MAAM,CAAC,MAAgB,EAAE,MAAgB;QAC9C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAA;QAC5B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,OAAO,CAAC,OAAkB;QAC/B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAW,OAAO,CAAC,CAAC,CAAC,CAAA;SAC7D;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,cAAc;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,IAAI,CAAC,CAAA;QAC1F,MAAM,MAAM,GAAkB;YAC5B,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;YACnD,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC;YACxE,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;YAC3E,eAAe;YACf,MAAM,EAAE,qBAAqB;SACb,CAAA;QAElB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;YACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;SACnC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAES,UAAU,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9G,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACrD,OAAO;gBACL,GAAG,OAAO;gBACV,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;aACrC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QAC5C,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEtD,MAAM,GAAG,GAAkB;YACzB,GAAG,cAAc;YACjB,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SACpC,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE;YAC7B,8DAA8D;YAC9D,MAAM,UAAU,GAAG,GAAU,CAAA;YAC7B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;YACzB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAA;YACxB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;SACxC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9B,8DAA8D;YAC9D,MAAM,MAAM,GAAG,GAAU,CAAA;YACzB,yDAAyD;YACzD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;SACzC;QACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;CACF;AAED,kDAAkD;AAClD,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;CAAG"}
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.0",
16
- "@xyo-network/core": "^2.38.0",
17
- "@xyo-network/payload": "^2.38.0",
18
- "@xyo-network/typeof": "^2.38.0",
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.0"
58
+ "version": "2.38.2"
59
59
  }
@@ -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._payload_schemas = schema
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
  }