@xyo-network/boundwitness-builder 2.90.16 → 2.90.18

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.
@@ -2,7 +2,7 @@ import { Address, Hash } from '@xylabs/hex';
2
2
  import { AnyObject, JsonObject } from '@xylabs/object';
3
3
  import { AccountInstance } from '@xyo-network/account-model';
4
4
  import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model';
5
- import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload';
5
+ import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload-builder';
6
6
  import { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model';
7
7
  export type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes';
8
8
  export interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {
@@ -36,7 +36,7 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
36
36
  static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
37
37
  static build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>): Promise<[WithMeta<TBoundWitness>, WithMeta<{
38
38
  schema: string;
39
- } & object>[], WithMeta<import("@xyo-network/payload").SchemaFields & object & {
39
+ } & object>[], WithMeta<import("@xyo-network/payload-model").SchemaFields & object & {
40
40
  message?: string | undefined;
41
41
  name?: string | undefined;
42
42
  query?: string | undefined;
@@ -53,11 +53,11 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
53
53
  private static validateLinkingFields;
54
54
  build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]>;
55
55
  dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>>;
56
- error(payload?: ModuleError): Promise<this>;
57
- errors(errors?: (ModuleError | null)[]): Promise<this>;
56
+ error(payload?: ModuleError): this;
57
+ errors(errors?: (ModuleError | null)[]): this;
58
58
  hashes(hashes: Hash[], schema: Schema[]): this;
59
- payload(payload?: TPayload): Promise<this>;
60
- payloads(payloads?: (TPayload | null)[]): Promise<this>;
59
+ payload(payload?: TPayload): this;
60
+ payloads(payloads?: (TPayload | null)[]): this;
61
61
  sourceQuery(query?: Hash): this;
62
62
  witness(account: AccountInstance): this;
63
63
  witnesses(accounts: AccountInstance[]): this;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAkB,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACxG,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAEhH,MAAM,WAAW,0BAA0B,CAAC,aAAa,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAC/H,SAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC;IAC/F,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAChJ,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,EAChD,0BAA0B,CAAC,aAAa,CAAC,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAC3E;IACC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,eAAe,CAAC,CAAU;IAClC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAM;IAC3B,OAAO,CAAC,UAAU,CAAkB;gBAExB,OAAO,CAAC,EAAE,0BAA0B,CAAC,aAAa,EAAE,QAAQ,CAAC;IAYzE,SAAS,KAAK,SAAS,IAAI,OAAO,EAAE,CAEnC;IAED,SAAS,KAAK,cAAc,IAAI,MAAM,EAAE,CAOvC;IAED,SAAS,KAAK,mBAAmB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAE1D;IAED,SAAS,KAAK,cAAc,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAE9C;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;WAQ3D,KAAK,CAAC,aAAa,SAAS,YAAY,EAAE,OAAO,EAAE,0BAA0B,CAAC,aAAa,CAAC;;;;;;;;;WAInF,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EAC7E,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;WAIhB,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EACzE,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,EAC9C,KAAK,CAAC,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,IAAI,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIvB,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;qBAItD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EACxE,QAAQ,EAAE,eAAe,EAAE,EAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,SAAS,SAAa;qBASQ,UAAU,CACxC,QAAQ,EAAE,IAAI,EACd,SAAS,CAAC,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,eAAe,EAAE,EAC5B,cAAc,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAChC,WAAW,CAAC,EAAE,OAAO,EAAE,EACvB,WAAW,CAAC,EAAE,IAAI,GACjB,OAAO,CAAC,UAAU,CAAC;IAmBtB,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;qBAIxD,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM5I,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAM9B,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAmBjF,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IASpF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAQ3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAWtC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOvC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAQ1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI;IAKxB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKZ,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;cAIxD,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAM3F,aAAa;IAI3B,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -2,7 +2,7 @@ import { Address, Hash } from '@xylabs/hex';
2
2
  import { AnyObject, JsonObject } from '@xylabs/object';
3
3
  import { AccountInstance } from '@xyo-network/account-model';
4
4
  import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model';
5
- import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload';
5
+ import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload-builder';
6
6
  import { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model';
7
7
  export type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes';
8
8
  export interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {
@@ -36,7 +36,7 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
36
36
  static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
37
37
  static build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>): Promise<[WithMeta<TBoundWitness>, WithMeta<{
38
38
  schema: string;
39
- } & object>[], WithMeta<import("@xyo-network/payload").SchemaFields & object & {
39
+ } & object>[], WithMeta<import("@xyo-network/payload-model").SchemaFields & object & {
40
40
  message?: string | undefined;
41
41
  name?: string | undefined;
42
42
  query?: string | undefined;
@@ -53,11 +53,11 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
53
53
  private static validateLinkingFields;
54
54
  build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]>;
55
55
  dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>>;
56
- error(payload?: ModuleError): Promise<this>;
57
- errors(errors?: (ModuleError | null)[]): Promise<this>;
56
+ error(payload?: ModuleError): this;
57
+ errors(errors?: (ModuleError | null)[]): this;
58
58
  hashes(hashes: Hash[], schema: Schema[]): this;
59
- payload(payload?: TPayload): Promise<this>;
60
- payloads(payloads?: (TPayload | null)[]): Promise<this>;
59
+ payload(payload?: TPayload): this;
60
+ payloads(payloads?: (TPayload | null)[]): this;
61
61
  sourceQuery(query?: Hash): this;
62
62
  witness(account: AccountInstance): this;
63
63
  witnesses(accounts: AccountInstance[]): this;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAkB,kBAAkB,EAAE,qBAAqB,EAAkB,MAAM,sBAAsB,CAAA;AAChH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAEhH,MAAM,WAAW,0BAA0B,CAAC,aAAa,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAC/H,SAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC;IAC/F,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAChJ,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,EAChD,0BAA0B,CAAC,aAAa,CAAC,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAC3E;IACC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,eAAe,CAAC,CAAU;IAClC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAM;IAC3B,OAAO,CAAC,UAAU,CAAkB;gBAExB,OAAO,CAAC,EAAE,0BAA0B,CAAC,aAAa,EAAE,QAAQ,CAAC;IAYzE,SAAS,KAAK,SAAS,IAAI,OAAO,EAAE,CAEnC;IAED,SAAS,KAAK,cAAc,IAAI,MAAM,EAAE,CAOvC;IAED,SAAS,KAAK,mBAAmB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAE1D;IAED,SAAS,KAAK,cAAc,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAE9C;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;WAQ3D,KAAK,CAAC,aAAa,SAAS,YAAY,EAAE,OAAO,EAAE,0BAA0B,CAAC,aAAa,CAAC;;;;;;;;;WAInF,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EAC7E,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;WAIhB,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EACzE,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,EAC9C,KAAK,CAAC,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,IAAI,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAIvB,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;qBAItD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EACxE,QAAQ,EAAE,eAAe,EAAE,EAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,SAAS,SAAa;qBASQ,UAAU,CACxC,QAAQ,EAAE,IAAI,EACd,SAAS,CAAC,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,eAAe,EAAE,EAC5B,cAAc,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAChC,WAAW,CAAC,EAAE,OAAO,EAAE,EACvB,WAAW,CAAC,EAAE,IAAI,GACjB,OAAO,CAAC,UAAU,CAAC;IAmBtB,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;qBAIxD,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM5I,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAM9B,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAmBjF,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAS9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAa5C,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOjC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAY7C,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI;IAKxB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKZ,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;cAIxD,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAM3F,aAAa;IAI3B,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Address, Hash } from '@xylabs/hex';
2
2
  import { AnyObject, JsonObject } from '@xylabs/object';
3
3
  import { AccountInstance } from '@xyo-network/account-model';
4
4
  import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model';
5
- import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload';
5
+ import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload-builder';
6
6
  import { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model';
7
7
  export type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes';
8
8
  export interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {
@@ -36,7 +36,7 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
36
36
  static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
37
37
  static build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>): Promise<[WithMeta<TBoundWitness>, WithMeta<{
38
38
  schema: string;
39
- } & object>[], WithMeta<import("@xyo-network/payload").SchemaFields & object & {
39
+ } & object>[], WithMeta<import("@xyo-network/payload-model").SchemaFields & object & {
40
40
  message?: string | undefined;
41
41
  name?: string | undefined;
42
42
  query?: string | undefined;
@@ -53,11 +53,11 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
53
53
  private static validateLinkingFields;
54
54
  build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]>;
55
55
  dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>>;
56
- error(payload?: ModuleError): Promise<this>;
57
- errors(errors?: (ModuleError | null)[]): Promise<this>;
56
+ error(payload?: ModuleError): this;
57
+ errors(errors?: (ModuleError | null)[]): this;
58
58
  hashes(hashes: Hash[], schema: Schema[]): this;
59
- payload(payload?: TPayload): Promise<this>;
60
- payloads(payloads?: (TPayload | null)[]): Promise<this>;
59
+ payload(payload?: TPayload): this;
60
+ payloads(payloads?: (TPayload | null)[]): this;
61
61
  sourceQuery(query?: Hash): this;
62
62
  witness(account: AccountInstance): this;
63
63
  witnesses(accounts: AccountInstance[]): this;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,9 @@ var import_assert = require("@xylabs/assert");
32
32
  var import_hex = require("@xylabs/hex");
33
33
  var import_boundwitness_model = require("@xyo-network/boundwitness-model");
34
34
  var import_hash = require("@xyo-network/hash");
35
- var import_payload = require("@xyo-network/payload");
35
+ var import_payload_builder = require("@xyo-network/payload-builder");
36
36
  var import_async_mutex = require("async-mutex");
37
- var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.PayloadBuilderBase {
37
+ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload_builder.PayloadBuilderBase {
38
38
  static {
39
39
  __name(this, "BoundWitnessBuilder");
40
40
  }
@@ -90,10 +90,10 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
90
90
  return await new _BoundWitnessBuilder(options).build();
91
91
  }
92
92
  static async dataHashableFields(schema, fields) {
93
- return await import_payload.PayloadBuilderBase.dataHashableFields(schema, fields ? (0, import_hash.removeEmptyFields)(fields) : void 0);
93
+ return await import_payload_builder.PayloadBuilderBase.dataHashableFields(schema, fields ? (0, import_hash.removeEmptyFields)(fields) : void 0);
94
94
  }
95
95
  static async hashableFields(schema, fields, $meta, $hash, timestamp) {
96
- return await import_payload.PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp);
96
+ return await import_payload_builder.PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp);
97
97
  }
98
98
  static previousHash(boundWitness, address) {
99
99
  return boundWitness.previous_hashes[this.addressIndex(boundWitness, address)]?.toLowerCase();
@@ -103,7 +103,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
103
103
  prefix: false
104
104
  }));
105
105
  const previous_hashes = accounts.map((account) => account.previousHash ?? null);
106
- const payload_hashes = payloads ? await import_payload.PayloadBuilder.dataHashes(payloads) : [];
106
+ const payload_hashes = payloads ? await import_payload_builder.PayloadBuilder.dataHashes(payloads) : [];
107
107
  const payload_schemas = payloads?.map(({ schema }) => schema);
108
108
  return {
109
109
  addresses,
@@ -115,7 +115,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
115
115
  }
116
116
  static async metaFields(dataHash, otherMeta, accounts, previousHashes, destination, sourceQuery) {
117
117
  const meta = {
118
- ...await import_payload.PayloadBuilderBase.metaFields(dataHash, otherMeta)
118
+ ...await import_payload_builder.PayloadBuilderBase.metaFields(dataHash, otherMeta)
119
119
  };
120
120
  if (accounts?.length && previousHashes?.length) {
121
121
  (0, import_assert.assertEx)(accounts.length === previousHashes.length, "accounts and previousHashes must have same length");
@@ -145,7 +145,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
145
145
  async build() {
146
146
  return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
147
147
  const dataHashableFields = await this.dataHashableFields();
148
- const $hash = (await import_payload.PayloadBuilder.build(dataHashableFields)).$hash;
148
+ const $hash = (await import_payload_builder.PayloadBuilder.build(dataHashableFields)).$hash;
149
149
  const $meta = await this.metaFields($hash);
150
150
  const ret = {
151
151
  ...dataHashableFields,
@@ -154,8 +154,8 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
154
154
  };
155
155
  return [
156
156
  ret,
157
- await Promise.all(this._payloads?.map((payload) => import_payload.PayloadBuilder.build(payload))),
158
- await Promise.all(this._errors?.map((error) => import_payload.PayloadBuilder.build(error)))
157
+ await Promise.all(this._payloads?.map((payload) => import_payload_builder.PayloadBuilder.build(payload))),
158
+ await Promise.all(this._errors?.map((error) => import_payload_builder.PayloadBuilder.build(error)))
159
159
  ];
160
160
  });
161
161
  }
@@ -165,21 +165,20 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
165
165
  _BoundWitnessBuilder.validateLinkingFields(result);
166
166
  return result;
167
167
  }
168
- async error(payload) {
169
- const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
168
+ error(payload) {
170
169
  (0, import_assert.assertEx)(this._errorHashes === void 0, "Can not set errors when hashes already set");
171
- if (unwrappedPayload) {
172
- this._errors.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
170
+ if (payload) {
171
+ this._errors.push((0, import_assert.assertEx)((0, import_hash.sortFields)(payload)));
173
172
  }
174
173
  return this;
175
174
  }
176
- async errors(errors) {
175
+ errors(errors) {
177
176
  if (errors) {
178
- await Promise.all(errors.map(async (error) => {
177
+ errors.map((error) => {
179
178
  if (error !== null) {
180
- await this.error(error);
179
+ this.error(error);
181
180
  }
182
- }));
181
+ });
183
182
  }
184
183
  return this;
185
184
  }
@@ -189,21 +188,20 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
189
188
  this._payloadSchemas = schema;
190
189
  return this;
191
190
  }
192
- async payload(payload) {
193
- const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
191
+ payload(payload) {
194
192
  (0, import_assert.assertEx)(this._payloadHashes === void 0, "Can not set payloads when hashes already set");
195
- if (unwrappedPayload) {
196
- this._payloads.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
193
+ if (payload) {
194
+ this._payloads.push((0, import_assert.assertEx)((0, import_hash.sortFields)(payload)));
197
195
  }
198
196
  return this;
199
197
  }
200
- async payloads(payloads) {
198
+ payloads(payloads) {
201
199
  if (payloads)
202
- await Promise.all(payloads.map(async (payload) => {
200
+ payloads.map((payload) => {
203
201
  if (payload !== null) {
204
- await this.payload(payload);
202
+ this.payload(payload);
205
203
  }
206
- }));
204
+ });
207
205
  return this;
208
206
  }
209
207
  sourceQuery(query) {
@@ -238,7 +236,7 @@ ${JSON.stringify(payload, null, 2)}`;
238
236
  // src/Query/QueryBoundWitnessBuilder.ts
239
237
  var import_assert2 = require("@xylabs/assert");
240
238
  var import_boundwitness_model2 = require("@xyo-network/boundwitness-model");
241
- var import_payload2 = require("@xyo-network/payload");
239
+ var import_payload = require("@xyo-network/payload");
242
240
  var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
243
241
  static {
244
242
  __name(this, "QueryBoundWitnessBuilder");
@@ -259,7 +257,7 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
259
257
  };
260
258
  }
261
259
  async query(query) {
262
- this._query = await import_payload2.PayloadBuilder.build(query);
260
+ this._query = await import_payload.PayloadBuilder.build(query);
263
261
  await this.payload(this._query);
264
262
  return this;
265
263
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts"],"sourcesContent":["export * from './Builder'\nexport * from './Query'\n","import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { AnyObject, JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { removeEmptyFields, sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: TBoundWitness['payload_hashes']\n readonly payloadSchemas?: TBoundWitness['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: number\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<TBoundWitness, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<TBoundWitness> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<TBoundWitness, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n protected get addresses(): Address[] {\n return this._accounts.map((account) => account.address.toLowerCase())\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBuffers(): (ArrayBuffer | null)[] {\n return this._accounts.map((account) => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map((account) => account.previousHash ?? null)\n }\n\n protected get timestamp(): number {\n return (this._timestamp = typeof this._timestamp === 'number' ? this._timestamp : Date.now())\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static async build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>) {\n return await new BoundWitnessBuilder(options).build()\n }\n\n static override async dataHashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n ): Promise<Omit<T, '$hash' | '$meta'>> {\n return await PayloadBuilderBase.dataHashableFields(schema, fields ? removeEmptyFields(fields) : undefined)\n }\n\n static override async hashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n $meta?: JsonObject,\n $hash?: Hash,\n timestamp?: number,\n ): Promise<WithMeta<T>> {\n return await PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp)\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: Address) {\n return boundWitness.previous_hashes[this.addressIndex(boundWitness, address)]?.toLowerCase()\n }\n\n protected static async linkingFields<T extends BoundWitness = BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n timestamp = Date.now(),\n ) {\n const addresses = accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = payloads ? await PayloadBuilder.dataHashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema)\n return { addresses, payload_hashes, payload_schemas, previous_hashes, timestamp } as Omit<T, '$meta' | '$hash' | 'schema'>\n }\n\n protected static override async metaFields(\n dataHash: Hash,\n otherMeta?: JsonObject,\n accounts?: AccountInstance[],\n previousHashes?: (Hash | null)[],\n destination?: Address[],\n sourceQuery?: Hash,\n ): Promise<JsonObject> {\n const meta: JsonObject = { ...(await PayloadBuilderBase.metaFields(dataHash, otherMeta)) }\n\n if (accounts?.length && previousHashes?.length) {\n assertEx(accounts.length === previousHashes.length, 'accounts and previousHashes must have same length')\n meta.signatures = await this.signatures(accounts, dataHash, previousHashes)\n }\n\n if (sourceQuery) {\n meta.sourceQuery = sourceQuery\n }\n\n if (destination) {\n meta.destination = destination\n }\n\n return meta\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hashBytes = toArrayBuffer(hash)\n const previousHashesBytes = previousHashes?.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hashBytes, previousHashesBytes[index]))))\n }\n\n private static validateLinkingFields(bw: Pick<BoundWitness, 'payload_hashes' | 'payload_schemas'>) {\n assertEx(bw.payload_hashes?.length === bw.payload_schemas?.length, 'Payload hash/schema mismatch')\n assertEx(!bw.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n assertEx(!bw.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n }\n\n async build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = (await this.dataHashableFields()) as TBoundWitness\n const $hash = (await PayloadBuilder.build(dataHashableFields)).$hash\n const $meta = await this.metaFields($hash)\n\n const ret = {\n ...dataHashableFields,\n $hash,\n $meta,\n } as WithMeta<TBoundWitness>\n return [\n ret,\n await Promise.all(this._payloads?.map((payload) => PayloadBuilder.build(payload))),\n await Promise.all(this._errors?.map((error) => PayloadBuilder.build(error))),\n ]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>> {\n const fields = await this.linkingFields()\n const result = await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n\n BoundWitnessBuilder.validateLinkingFields(result)\n\n return result as Omit<TBoundWitness, '$meta' | '$hash'>\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query?.toLowerCase()\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected override async metaFields(dataHash: Hash): Promise<JsonObject> {\n return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async linkingFields() {\n return await BoundWitnessBuilder.linkingFields<TBoundWitness>(this._accounts, this._payloads, this.timestamp)\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n"],"mappings":"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","names":["BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","addresses","map","account","address","toLowerCase","payload","assertEx","missingSchemaMessage","previousHashBuffers","previousHashBytes","previousHashes","previousHash","Date","now","addressIndex","index","indexOf","Error","build","dataHashableFields","fields","removeEmptyFields","undefined","hashableFields","$meta","$hash","boundWitness","previous_hashes","linkingFields","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","PayloadBuilder","dataHashes","payload_schemas","metaFields","dataHash","otherMeta","meta","length","signatures","signature","hash","hashBytes","toArrayBuffer","previousHashesBytes","ph","toUint8Array","Promise","all","sign","validateLinkingFields","bw","some","runExclusive","ret","error","result","_schema","unwrappedPayload","PayloadWrapper","unwrap","push","sortFields","errors","hashes","query","witness","witnesses","_$meta","_hash","JSON","stringify","import_assert","import_boundwitness_model","import_payload","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts"],"sourcesContent":["export * from './Builder'\nexport * from './Query'\n","import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { AnyObject, JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { removeEmptyFields, sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload-builder'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: TBoundWitness['payload_hashes']\n readonly payloadSchemas?: TBoundWitness['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: number\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<TBoundWitness, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<TBoundWitness> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<TBoundWitness, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n protected get addresses(): Address[] {\n return this._accounts.map((account) => account.address.toLowerCase())\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBuffers(): (ArrayBuffer | null)[] {\n return this._accounts.map((account) => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map((account) => account.previousHash ?? null)\n }\n\n protected get timestamp(): number {\n return (this._timestamp = typeof this._timestamp === 'number' ? this._timestamp : Date.now())\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static async build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>) {\n return await new BoundWitnessBuilder(options).build()\n }\n\n static override async dataHashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n ): Promise<Omit<T, '$hash' | '$meta'>> {\n return await PayloadBuilderBase.dataHashableFields(schema, fields ? removeEmptyFields(fields) : undefined)\n }\n\n static override async hashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n $meta?: JsonObject,\n $hash?: Hash,\n timestamp?: number,\n ): Promise<WithMeta<T>> {\n return await PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp)\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: Address) {\n return boundWitness.previous_hashes[this.addressIndex(boundWitness, address)]?.toLowerCase()\n }\n\n protected static async linkingFields<T extends BoundWitness = BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n timestamp = Date.now(),\n ) {\n const addresses = accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = payloads ? await PayloadBuilder.dataHashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema)\n return { addresses, payload_hashes, payload_schemas, previous_hashes, timestamp } as Omit<T, '$meta' | '$hash' | 'schema'>\n }\n\n protected static override async metaFields(\n dataHash: Hash,\n otherMeta?: JsonObject,\n accounts?: AccountInstance[],\n previousHashes?: (Hash | null)[],\n destination?: Address[],\n sourceQuery?: Hash,\n ): Promise<JsonObject> {\n const meta: JsonObject = { ...(await PayloadBuilderBase.metaFields(dataHash, otherMeta)) }\n\n if (accounts?.length && previousHashes?.length) {\n assertEx(accounts.length === previousHashes.length, 'accounts and previousHashes must have same length')\n meta.signatures = await this.signatures(accounts, dataHash, previousHashes)\n }\n\n if (sourceQuery) {\n meta.sourceQuery = sourceQuery\n }\n\n if (destination) {\n meta.destination = destination\n }\n\n return meta\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hashBytes = toArrayBuffer(hash)\n const previousHashesBytes = previousHashes?.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hashBytes, previousHashesBytes[index]))))\n }\n\n private static validateLinkingFields(bw: Pick<BoundWitness, 'payload_hashes' | 'payload_schemas'>) {\n assertEx(bw.payload_hashes?.length === bw.payload_schemas?.length, 'Payload hash/schema mismatch')\n assertEx(!bw.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n assertEx(!bw.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n }\n\n async build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = (await this.dataHashableFields()) as TBoundWitness\n const $hash = (await PayloadBuilder.build(dataHashableFields)).$hash\n const $meta = await this.metaFields($hash)\n\n const ret = {\n ...dataHashableFields,\n $hash,\n $meta,\n } as WithMeta<TBoundWitness>\n return [\n ret,\n await Promise.all(this._payloads?.map((payload) => PayloadBuilder.build(payload))),\n await Promise.all(this._errors?.map((error) => PayloadBuilder.build(error))),\n ]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>> {\n const fields = await this.linkingFields()\n const result = await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n\n BoundWitnessBuilder.validateLinkingFields(result)\n\n return result as Omit<TBoundWitness, '$meta' | '$hash'>\n }\n\n error(payload?: ModuleError) {\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (payload) {\n this._errors.push(assertEx(sortFields(payload)))\n }\n return this\n }\n\n errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n errors.map((error) => {\n if (error !== null) {\n this.error(error)\n }\n })\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n payload(payload?: TPayload) {\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (payload) {\n this._payloads.push(assertEx(sortFields<TPayload>(payload)))\n }\n return this\n }\n\n payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n payloads.map((payload) => {\n if (payload !== null) {\n this.payload(payload)\n }\n })\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query?.toLowerCase()\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected override async metaFields(dataHash: Hash): Promise<JsonObject> {\n return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async linkingFields() {\n return await BoundWitnessBuilder.linkingFields<TBoundWitness>(this._accounts, this._payloads, this.timestamp)\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n"],"mappings":"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","names":["BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","addresses","map","account","address","toLowerCase","payload","assertEx","missingSchemaMessage","previousHashBuffers","previousHashBytes","previousHashes","previousHash","Date","now","addressIndex","index","indexOf","Error","build","dataHashableFields","fields","removeEmptyFields","undefined","hashableFields","$meta","$hash","boundWitness","previous_hashes","linkingFields","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","PayloadBuilder","dataHashes","payload_schemas","metaFields","dataHash","otherMeta","meta","length","signatures","signature","hash","hashBytes","toArrayBuffer","previousHashesBytes","ph","toUint8Array","Promise","all","sign","validateLinkingFields","bw","some","runExclusive","ret","error","result","_schema","push","sortFields","errors","hashes","query","witness","witnesses","_$meta","_hash","JSON","stringify","import_assert","import_boundwitness_model","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload"]}
@@ -7,7 +7,7 @@ import { assertEx } from "@xylabs/assert";
7
7
  import { hexFromArrayBuffer } from "@xylabs/hex";
8
8
  import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
9
9
  import { removeEmptyFields, sortFields } from "@xyo-network/hash";
10
- import { PayloadBuilder, PayloadBuilderBase, PayloadWrapper } from "@xyo-network/payload";
10
+ import { PayloadBuilder, PayloadBuilderBase } from "@xyo-network/payload-builder";
11
11
  import { Mutex } from "async-mutex";
12
12
  var BoundWitnessBuilder = class _BoundWitnessBuilder extends PayloadBuilderBase {
13
13
  static {
@@ -140,21 +140,20 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends PayloadBuilderBase
140
140
  _BoundWitnessBuilder.validateLinkingFields(result);
141
141
  return result;
142
142
  }
143
- async error(payload) {
144
- const unwrappedPayload = await PayloadWrapper.unwrap(payload);
143
+ error(payload) {
145
144
  assertEx(this._errorHashes === void 0, "Can not set errors when hashes already set");
146
- if (unwrappedPayload) {
147
- this._errors.push(assertEx(sortFields(unwrappedPayload)));
145
+ if (payload) {
146
+ this._errors.push(assertEx(sortFields(payload)));
148
147
  }
149
148
  return this;
150
149
  }
151
- async errors(errors) {
150
+ errors(errors) {
152
151
  if (errors) {
153
- await Promise.all(errors.map(async (error) => {
152
+ errors.map((error) => {
154
153
  if (error !== null) {
155
- await this.error(error);
154
+ this.error(error);
156
155
  }
157
- }));
156
+ });
158
157
  }
159
158
  return this;
160
159
  }
@@ -164,21 +163,20 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends PayloadBuilderBase
164
163
  this._payloadSchemas = schema;
165
164
  return this;
166
165
  }
167
- async payload(payload) {
168
- const unwrappedPayload = await PayloadWrapper.unwrap(payload);
166
+ payload(payload) {
169
167
  assertEx(this._payloadHashes === void 0, "Can not set payloads when hashes already set");
170
- if (unwrappedPayload) {
171
- this._payloads.push(assertEx(sortFields(unwrappedPayload)));
168
+ if (payload) {
169
+ this._payloads.push(assertEx(sortFields(payload)));
172
170
  }
173
171
  return this;
174
172
  }
175
- async payloads(payloads) {
173
+ payloads(payloads) {
176
174
  if (payloads)
177
- await Promise.all(payloads.map(async (payload) => {
175
+ payloads.map((payload) => {
178
176
  if (payload !== null) {
179
- await this.payload(payload);
177
+ this.payload(payload);
180
178
  }
181
- }));
179
+ });
182
180
  return this;
183
181
  }
184
182
  sourceQuery(query) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts"],"sourcesContent":["import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { AnyObject, JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { removeEmptyFields, sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: TBoundWitness['payload_hashes']\n readonly payloadSchemas?: TBoundWitness['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: number\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<TBoundWitness, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<TBoundWitness> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<TBoundWitness, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n protected get addresses(): Address[] {\n return this._accounts.map((account) => account.address.toLowerCase())\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBuffers(): (ArrayBuffer | null)[] {\n return this._accounts.map((account) => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map((account) => account.previousHash ?? null)\n }\n\n protected get timestamp(): number {\n return (this._timestamp = typeof this._timestamp === 'number' ? this._timestamp : Date.now())\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static async build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>) {\n return await new BoundWitnessBuilder(options).build()\n }\n\n static override async dataHashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n ): Promise<Omit<T, '$hash' | '$meta'>> {\n return await PayloadBuilderBase.dataHashableFields(schema, fields ? removeEmptyFields(fields) : undefined)\n }\n\n static override async hashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n $meta?: JsonObject,\n $hash?: Hash,\n timestamp?: number,\n ): Promise<WithMeta<T>> {\n return await PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp)\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: Address) {\n return boundWitness.previous_hashes[this.addressIndex(boundWitness, address)]?.toLowerCase()\n }\n\n protected static async linkingFields<T extends BoundWitness = BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n timestamp = Date.now(),\n ) {\n const addresses = accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = payloads ? await PayloadBuilder.dataHashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema)\n return { addresses, payload_hashes, payload_schemas, previous_hashes, timestamp } as Omit<T, '$meta' | '$hash' | 'schema'>\n }\n\n protected static override async metaFields(\n dataHash: Hash,\n otherMeta?: JsonObject,\n accounts?: AccountInstance[],\n previousHashes?: (Hash | null)[],\n destination?: Address[],\n sourceQuery?: Hash,\n ): Promise<JsonObject> {\n const meta: JsonObject = { ...(await PayloadBuilderBase.metaFields(dataHash, otherMeta)) }\n\n if (accounts?.length && previousHashes?.length) {\n assertEx(accounts.length === previousHashes.length, 'accounts and previousHashes must have same length')\n meta.signatures = await this.signatures(accounts, dataHash, previousHashes)\n }\n\n if (sourceQuery) {\n meta.sourceQuery = sourceQuery\n }\n\n if (destination) {\n meta.destination = destination\n }\n\n return meta\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hashBytes = toArrayBuffer(hash)\n const previousHashesBytes = previousHashes?.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hashBytes, previousHashesBytes[index]))))\n }\n\n private static validateLinkingFields(bw: Pick<BoundWitness, 'payload_hashes' | 'payload_schemas'>) {\n assertEx(bw.payload_hashes?.length === bw.payload_schemas?.length, 'Payload hash/schema mismatch')\n assertEx(!bw.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n assertEx(!bw.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n }\n\n async build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = (await this.dataHashableFields()) as TBoundWitness\n const $hash = (await PayloadBuilder.build(dataHashableFields)).$hash\n const $meta = await this.metaFields($hash)\n\n const ret = {\n ...dataHashableFields,\n $hash,\n $meta,\n } as WithMeta<TBoundWitness>\n return [\n ret,\n await Promise.all(this._payloads?.map((payload) => PayloadBuilder.build(payload))),\n await Promise.all(this._errors?.map((error) => PayloadBuilder.build(error))),\n ]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>> {\n const fields = await this.linkingFields()\n const result = await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n\n BoundWitnessBuilder.validateLinkingFields(result)\n\n return result as Omit<TBoundWitness, '$meta' | '$hash'>\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query?.toLowerCase()\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected override async metaFields(dataHash: Hash): Promise<JsonObject> {\n return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async linkingFields() {\n return await BoundWitnessBuilder.linkingFields<TBoundWitness>(this._accounts, this._payloads, this.timestamp)\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n"],"mappings":"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","names":["toArrayBuffer","toUint8Array","assertEx","hexFromArrayBuffer","BoundWitnessSchema","removeEmptyFields","sortFields","PayloadBuilder","PayloadBuilderBase","PayloadWrapper","Mutex","BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","addresses","map","account","address","toLowerCase","payload","assertEx","missingSchemaMessage","previousHashBuffers","previousHashBytes","previousHashes","previousHash","Date","now","addressIndex","index","indexOf","Error","build","dataHashableFields","fields","removeEmptyFields","undefined","hashableFields","$meta","$hash","boundWitness","previous_hashes","linkingFields","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","PayloadBuilder","dataHashes","payload_schemas","metaFields","dataHash","otherMeta","meta","length","signatures","signature","hash","hashBytes","toArrayBuffer","previousHashesBytes","ph","toUint8Array","Promise","all","sign","validateLinkingFields","bw","some","runExclusive","ret","error","result","_schema","unwrappedPayload","PayloadWrapper","unwrap","push","sortFields","errors","hashes","query","witness","witnesses","_$meta","_hash","JSON","stringify","assertEx","QueryBoundWitnessSchema","PayloadBuilder","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload"]}
1
+ {"version":3,"sources":["../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts"],"sourcesContent":["import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { AnyObject, JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { removeEmptyFields, sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload-builder'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: TBoundWitness['payload_hashes']\n readonly payloadSchemas?: TBoundWitness['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: number\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<TBoundWitness, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<TBoundWitness> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<TBoundWitness, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n protected get addresses(): Address[] {\n return this._accounts.map((account) => account.address.toLowerCase())\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBuffers(): (ArrayBuffer | null)[] {\n return this._accounts.map((account) => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map((account) => account.previousHash ?? null)\n }\n\n protected get timestamp(): number {\n return (this._timestamp = typeof this._timestamp === 'number' ? this._timestamp : Date.now())\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static async build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>) {\n return await new BoundWitnessBuilder(options).build()\n }\n\n static override async dataHashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n ): Promise<Omit<T, '$hash' | '$meta'>> {\n return await PayloadBuilderBase.dataHashableFields(schema, fields ? removeEmptyFields(fields) : undefined)\n }\n\n static override async hashableFields<T extends Payload = Payload<AnyObject>>(\n schema: string,\n fields?: Omit<T, 'schema' | '$hash' | '$meta'>,\n $meta?: JsonObject,\n $hash?: Hash,\n timestamp?: number,\n ): Promise<WithMeta<T>> {\n return await PayloadBuilderBase.hashableFields(schema, fields, $meta, $hash, timestamp)\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: Address) {\n return boundWitness.previous_hashes[this.addressIndex(boundWitness, address)]?.toLowerCase()\n }\n\n protected static async linkingFields<T extends BoundWitness = BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n timestamp = Date.now(),\n ) {\n const addresses = accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = payloads ? await PayloadBuilder.dataHashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema)\n return { addresses, payload_hashes, payload_schemas, previous_hashes, timestamp } as Omit<T, '$meta' | '$hash' | 'schema'>\n }\n\n protected static override async metaFields(\n dataHash: Hash,\n otherMeta?: JsonObject,\n accounts?: AccountInstance[],\n previousHashes?: (Hash | null)[],\n destination?: Address[],\n sourceQuery?: Hash,\n ): Promise<JsonObject> {\n const meta: JsonObject = { ...(await PayloadBuilderBase.metaFields(dataHash, otherMeta)) }\n\n if (accounts?.length && previousHashes?.length) {\n assertEx(accounts.length === previousHashes.length, 'accounts and previousHashes must have same length')\n meta.signatures = await this.signatures(accounts, dataHash, previousHashes)\n }\n\n if (sourceQuery) {\n meta.sourceQuery = sourceQuery\n }\n\n if (destination) {\n meta.destination = destination\n }\n\n return meta\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hashBytes = toArrayBuffer(hash)\n const previousHashesBytes = previousHashes?.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hashBytes, previousHashesBytes[index]))))\n }\n\n private static validateLinkingFields(bw: Pick<BoundWitness, 'payload_hashes' | 'payload_schemas'>) {\n assertEx(bw.payload_hashes?.length === bw.payload_schemas?.length, 'Payload hash/schema mismatch')\n assertEx(!bw.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n assertEx(!bw.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n }\n\n async build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = (await this.dataHashableFields()) as TBoundWitness\n const $hash = (await PayloadBuilder.build(dataHashableFields)).$hash\n const $meta = await this.metaFields($hash)\n\n const ret = {\n ...dataHashableFields,\n $hash,\n $meta,\n } as WithMeta<TBoundWitness>\n return [\n ret,\n await Promise.all(this._payloads?.map((payload) => PayloadBuilder.build(payload))),\n await Promise.all(this._errors?.map((error) => PayloadBuilder.build(error))),\n ]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>> {\n const fields = await this.linkingFields()\n const result = await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n\n BoundWitnessBuilder.validateLinkingFields(result)\n\n return result as Omit<TBoundWitness, '$meta' | '$hash'>\n }\n\n error(payload?: ModuleError) {\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (payload) {\n this._errors.push(assertEx(sortFields(payload)))\n }\n return this\n }\n\n errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n errors.map((error) => {\n if (error !== null) {\n this.error(error)\n }\n })\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n payload(payload?: TPayload) {\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (payload) {\n this._payloads.push(assertEx(sortFields<TPayload>(payload)))\n }\n return this\n }\n\n payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n payloads.map((payload) => {\n if (payload !== null) {\n this.payload(payload)\n }\n })\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query?.toLowerCase()\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected override async metaFields(dataHash: Hash): Promise<JsonObject> {\n return await BoundWitnessBuilder.metaFields(dataHash, this._$meta, this._accounts, this.previousHashes, this._destination, this._sourceQuery)\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | null)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async linkingFields() {\n return await BoundWitnessBuilder.linkingFields<TBoundWitness>(this._accounts, this._payloads, this.timestamp)\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n"],"mappings":"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","names":["toArrayBuffer","toUint8Array","assertEx","hexFromArrayBuffer","BoundWitnessSchema","removeEmptyFields","sortFields","PayloadBuilder","PayloadBuilderBase","Mutex","BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","addresses","map","account","address","toLowerCase","payload","assertEx","missingSchemaMessage","previousHashBuffers","previousHashBytes","previousHashes","previousHash","Date","now","addressIndex","index","indexOf","Error","build","dataHashableFields","fields","removeEmptyFields","undefined","hashableFields","$meta","$hash","boundWitness","previous_hashes","linkingFields","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","PayloadBuilder","dataHashes","payload_schemas","metaFields","dataHash","otherMeta","meta","length","signatures","signature","hash","hashBytes","toArrayBuffer","previousHashesBytes","ph","toUint8Array","Promise","all","sign","validateLinkingFields","bw","some","runExclusive","ret","error","result","_schema","push","sortFields","errors","hashes","query","witness","witnesses","_$meta","_hash","JSON","stringify","assertEx","QueryBoundWitnessSchema","PayloadBuilder","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload"]}
@@ -2,7 +2,7 @@ import { Address, Hash } from '@xylabs/hex';
2
2
  import { AnyObject, JsonObject } from '@xylabs/object';
3
3
  import { AccountInstance } from '@xyo-network/account-model';
4
4
  import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model';
5
- import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload';
5
+ import { PayloadBuilderBase, PayloadBuilderOptions } from '@xyo-network/payload-builder';
6
6
  import { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model';
7
7
  export type GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes';
8
8
  export interface BoundWitnessBuilderOptions<TBoundWitness extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends Omit<PayloadBuilderOptions<Omit<TBoundWitness, GeneratedBoundWitnessFields>>, 'schema'> {
@@ -36,7 +36,7 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
36
36
  static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
37
37
  static build<TBoundWitness extends BoundWitness>(options: BoundWitnessBuilderOptions<TBoundWitness>): Promise<[WithMeta<TBoundWitness>, WithMeta<{
38
38
  schema: string;
39
- } & object>[], WithMeta<import("@xyo-network/payload").SchemaFields & object & {
39
+ } & object>[], WithMeta<import("@xyo-network/payload-model").SchemaFields & object & {
40
40
  message?: string | undefined;
41
41
  name?: string | undefined;
42
42
  query?: string | undefined;
@@ -53,11 +53,11 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
53
53
  private static validateLinkingFields;
54
54
  build(): Promise<[WithMeta<TBoundWitness>, WithMeta<TPayload>[], WithMeta<ModuleError>[]]>;
55
55
  dataHashableFields(): Promise<Omit<TBoundWitness, '$meta' | '$hash'>>;
56
- error(payload?: ModuleError): Promise<this>;
57
- errors(errors?: (ModuleError | null)[]): Promise<this>;
56
+ error(payload?: ModuleError): this;
57
+ errors(errors?: (ModuleError | null)[]): this;
58
58
  hashes(hashes: Hash[], schema: Schema[]): this;
59
- payload(payload?: TPayload): Promise<this>;
60
- payloads(payloads?: (TPayload | null)[]): Promise<this>;
59
+ payload(payload?: TPayload): this;
60
+ payloads(payloads?: (TPayload | null)[]): this;
61
61
  sourceQuery(query?: Hash): this;
62
62
  witness(account: AccountInstance): this;
63
63
  witnesses(accounts: AccountInstance[]): this;