@xyo-network/boundwitness-builder 2.88.2 → 2.89.0-rc.1

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.
Files changed (43) hide show
  1. package/dist/browser/Builder.d.cts +6 -3
  2. package/dist/browser/Builder.d.cts.map +1 -1
  3. package/dist/browser/Builder.d.mts +6 -3
  4. package/dist/browser/Builder.d.mts.map +1 -1
  5. package/dist/browser/Builder.d.ts +6 -3
  6. package/dist/browser/Builder.d.ts.map +1 -1
  7. package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
  8. package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
  9. package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
  10. package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts +1 -1
  11. package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts.map +1 -1
  12. package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts +1 -1
  13. package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts.map +1 -1
  14. package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts +1 -1
  15. package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts.map +1 -1
  16. package/dist/browser/index.cjs +33 -33
  17. package/dist/browser/index.cjs.map +1 -1
  18. package/dist/browser/index.js +36 -36
  19. package/dist/browser/index.js.map +1 -1
  20. package/dist/node/Builder.d.cts +6 -3
  21. package/dist/node/Builder.d.cts.map +1 -1
  22. package/dist/node/Builder.d.mts +6 -3
  23. package/dist/node/Builder.d.mts.map +1 -1
  24. package/dist/node/Builder.d.ts +6 -3
  25. package/dist/node/Builder.d.ts.map +1 -1
  26. package/dist/node/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
  27. package/dist/node/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
  28. package/dist/node/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
  29. package/dist/node/Query/QueryBoundWitnessWrapper.d.cts +1 -1
  30. package/dist/node/Query/QueryBoundWitnessWrapper.d.cts.map +1 -1
  31. package/dist/node/Query/QueryBoundWitnessWrapper.d.mts +1 -1
  32. package/dist/node/Query/QueryBoundWitnessWrapper.d.mts.map +1 -1
  33. package/dist/node/Query/QueryBoundWitnessWrapper.d.ts +1 -1
  34. package/dist/node/Query/QueryBoundWitnessWrapper.d.ts.map +1 -1
  35. package/dist/node/index.cjs +33 -35
  36. package/dist/node/index.cjs.map +1 -1
  37. package/dist/node/index.js +36 -38
  38. package/dist/node/index.js.map +1 -1
  39. package/package.json +19 -18
  40. package/src/Builder.ts +35 -34
  41. package/src/Query/QueryBoundWitnessBuilder.ts +5 -5
  42. package/src/Query/QueryBoundWitnessValidator.ts +3 -3
  43. package/src/Query/QueryBoundWitnessWrapper.ts +16 -10
@@ -1,7 +1,8 @@
1
+ import { Address } from '@xylabs/hex';
1
2
  import { Logger } from '@xylabs/logger';
2
3
  import { AccountInstance } from '@xyo-network/account-model';
3
4
  import { BoundWitness } from '@xyo-network/boundwitness-model';
4
- import { ModuleError, Payload } from '@xyo-network/payload-model';
5
+ import { ModuleError, Payload, WithMeta } from '@xyo-network/payload-model';
5
6
  export interface BoundWitnessBuilderConfig {
6
7
  /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
7
8
  /** @deprecated We will be removing support for inlinePayloads soon */
@@ -27,7 +28,10 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
27
28
  private _timestamp;
28
29
  constructor(config?: BoundWitnessBuilderConfig, logger?: Logger | undefined);
29
30
  private get _payload_schemas();
30
- build(meta?: boolean): Promise<[TBoundWitness, TPayload[], ModuleError[]]>;
31
+ static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
32
+ static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
+ static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
+ build(meta?: boolean): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]>;
31
35
  error(payload?: ModuleError): this;
32
36
  errors(errors?: (ModuleError | null)[]): this;
33
37
  hashableFields(): Promise<TBoundWitness>;
@@ -39,7 +43,6 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
39
43
  witnesses(accounts: AccountInstance[]): this;
40
44
  protected signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): Promise<string[]>;
41
45
  private getPayloadHashes;
42
- private inlinePayloads;
43
46
  private missingSchemaMessage;
44
47
  }
45
48
  //# sourceMappingURL=Builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAIlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGjE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAgC9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAsB,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAGlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAG3E,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAQxE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAIxE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAI/D,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6BxF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -1,7 +1,8 @@
1
+ import { Address } from '@xylabs/hex';
1
2
  import { Logger } from '@xylabs/logger';
2
3
  import { AccountInstance } from '@xyo-network/account-model';
3
4
  import { BoundWitness } from '@xyo-network/boundwitness-model';
4
- import { ModuleError, Payload } from '@xyo-network/payload-model';
5
+ import { ModuleError, Payload, WithMeta } from '@xyo-network/payload-model';
5
6
  export interface BoundWitnessBuilderConfig {
6
7
  /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
7
8
  /** @deprecated We will be removing support for inlinePayloads soon */
@@ -27,7 +28,10 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
27
28
  private _timestamp;
28
29
  constructor(config?: BoundWitnessBuilderConfig, logger?: Logger | undefined);
29
30
  private get _payload_schemas();
30
- build(meta?: boolean): Promise<[TBoundWitness, TPayload[], ModuleError[]]>;
31
+ static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
32
+ static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
+ static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
+ build(meta?: boolean): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]>;
31
35
  error(payload?: ModuleError): this;
32
36
  errors(errors?: (ModuleError | null)[]): this;
33
37
  hashableFields(): Promise<TBoundWitness>;
@@ -39,7 +43,6 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
39
43
  witnesses(accounts: AccountInstance[]): this;
40
44
  protected signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): Promise<string[]>;
41
45
  private getPayloadHashes;
42
- private inlinePayloads;
43
46
  private missingSchemaMessage;
44
47
  }
45
48
  //# sourceMappingURL=Builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAIlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGjE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAgC9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAsB,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAGlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAG3E,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAQxE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAIxE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAI/D,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6BxF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -1,7 +1,8 @@
1
+ import { Address } from '@xylabs/hex';
1
2
  import { Logger } from '@xylabs/logger';
2
3
  import { AccountInstance } from '@xyo-network/account-model';
3
4
  import { BoundWitness } from '@xyo-network/boundwitness-model';
4
- import { ModuleError, Payload } from '@xyo-network/payload-model';
5
+ import { ModuleError, Payload, WithMeta } from '@xyo-network/payload-model';
5
6
  export interface BoundWitnessBuilderConfig {
6
7
  /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
7
8
  /** @deprecated We will be removing support for inlinePayloads soon */
@@ -27,7 +28,10 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
27
28
  private _timestamp;
28
29
  constructor(config?: BoundWitnessBuilderConfig, logger?: Logger | undefined);
29
30
  private get _payload_schemas();
30
- build(meta?: boolean): Promise<[TBoundWitness, TPayload[], ModuleError[]]>;
31
+ static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
32
+ static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
+ static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
+ build(meta?: boolean): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]>;
31
35
  error(payload?: ModuleError): this;
32
36
  errors(errors?: (ModuleError | null)[]): this;
33
37
  hashableFields(): Promise<TBoundWitness>;
@@ -39,7 +43,6 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
39
43
  witnesses(accounts: AccountInstance[]): this;
40
44
  protected signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): Promise<string[]>;
41
45
  private getPayloadHashes;
42
- private inlinePayloads;
43
46
  private missingSchemaMessage;
44
47
  }
45
48
  //# sourceMappingURL=Builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAIlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGjE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAgC9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAsB,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAGlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAG3E,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAQxE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAIxE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAI/D,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6BxF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoC;IAEnC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoB;IAEnB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoC;IAEnC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoB;IAEnB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAC5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoC;IAEnC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoB;IAEnB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
@@ -7,7 +7,7 @@ export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends B
7
7
  private _query;
8
8
  private _resultSet;
9
9
  private isQueryBoundWitnessWrapper;
10
- static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
10
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
11
11
  getQuery(): Promise<T>;
12
12
  getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;IAEzC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;IAerG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAGvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;WAE5B,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAkBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
@@ -7,7 +7,7 @@ export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends B
7
7
  private _query;
8
8
  private _resultSet;
9
9
  private isQueryBoundWitnessWrapper;
10
- static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
10
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
11
11
  getQuery(): Promise<T>;
12
12
  getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;IAEzC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;IAerG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAGvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;WAE5B,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAkBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
@@ -7,7 +7,7 @@ export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends B
7
7
  private _query;
8
8
  private _resultSet;
9
9
  private isQueryBoundWitnessWrapper;
10
- static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
10
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
11
11
  getQuery(): Promise<T>;
12
12
  getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;IAEzC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;IAerG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAGvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;WAE5B,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAkBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
@@ -32,7 +32,6 @@ var import_arraybuffer = require("@xylabs/arraybuffer");
32
32
  var import_assert = require("@xylabs/assert");
33
33
  var import_hex = require("@xylabs/hex");
34
34
  var import_boundwitness_model = require("@xyo-network/boundwitness-model");
35
- var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
36
35
  var import_hash = require("@xyo-network/hash");
37
36
  var import_payload = require("@xyo-network/payload");
38
37
  var import_async_mutex = require("async-mutex");
@@ -66,28 +65,37 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
66
65
  return (0, import_assert.assertEx)(payload.schema, () => this.missingSchemaMessage(payload));
67
66
  });
68
67
  }
68
+ static addressIndex(payload, address) {
69
+ const index = payload.addresses.indexOf(address);
70
+ if (index === -1) {
71
+ throw new Error("Invalid address");
72
+ }
73
+ return index;
74
+ }
75
+ static previousHash(payload, address) {
76
+ return payload.previous_hashes[this.addressIndex(payload, address)];
77
+ }
78
+ static signature(payload, address) {
79
+ return payload.$meta.signatures[this.addressIndex(payload, address)];
80
+ }
69
81
  async build(meta = false) {
70
82
  if (meta) {
71
83
  console.log("BoundWitnessBuilder: Calling build with meta=true will be disallowed soon");
72
84
  }
73
85
  return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
74
86
  const hashableFields = await this.hashableFields();
75
- const _hash = await import_boundwitness_wrapper.BoundWitnessWrapper.hashAsync(hashableFields);
87
+ const hash = (await import_payload.PayloadBuilder.build(hashableFields)).$hash;
76
88
  const previousHashes = this._accounts.map((account) => account.previousHash);
89
+ const meta2 = hashableFields.addresses.length > 0 ? {
90
+ $meta: {
91
+ signatures: await this.signatures(hash, previousHashes)
92
+ }
93
+ } : {};
77
94
  const ret = {
78
95
  ...hashableFields,
79
- _signatures: await this.signatures(_hash, previousHashes)
96
+ $hash: hash,
97
+ ...meta2
80
98
  };
81
- if (meta ?? this.config?.meta) {
82
- const bwWithMeta = ret;
83
- bwWithMeta._client = "js";
84
- bwWithMeta._hash = _hash;
85
- bwWithMeta._timestamp = this._timestamp;
86
- }
87
- if (this.config.inlinePayloads) {
88
- const anyRet = ret;
89
- anyRet._payloads = this.inlinePayloads();
90
- }
91
99
  return [
92
100
  ret,
93
101
  this._payloads,
@@ -177,16 +185,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
177
185
  return await Promise.all(this._accounts.map(async (account, index) => (0, import_hex.hexFromArrayBuffer)(await account.sign(hash, previousHashesBytes[index]))));
178
186
  }
179
187
  async getPayloadHashes() {
180
- return this._payloadHashes ?? await Promise.all(this._payloads.map((payload) => import_hash.PayloadHasher.hashAsync(payload)));
181
- }
182
- inlinePayloads() {
183
- console.log("BoundWitnessBuilder: Using inlinePayloads will soon be disallowed");
184
- return this._payloads.map((payload, index) => {
185
- return {
186
- ...payload,
187
- schema: this._payload_schemas[index]
188
- };
189
- });
188
+ return this._payloadHashes ?? await Promise.all(this._payloads.map(async (payload) => (await import_payload.PayloadBuilder.build(payload)).$hash));
190
189
  }
191
190
  missingSchemaMessage(payload) {
192
191
  return `Builder: Missing Schema
@@ -197,7 +196,7 @@ ${JSON.stringify(payload, null, 2)}`;
197
196
  // src/Query/QueryBoundWitnessBuilder.ts
198
197
  var import_assert2 = require("@xylabs/assert");
199
198
  var import_boundwitness_model2 = require("@xyo-network/boundwitness-model");
200
- var import_payload_wrapper = require("@xyo-network/payload-wrapper");
199
+ var import_payload2 = require("@xyo-network/payload");
201
200
  var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
202
201
  static {
203
202
  __name(this, "QueryBoundWitnessBuilder");
@@ -206,13 +205,13 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
206
205
  async hashableFields() {
207
206
  return {
208
207
  ...await super.hashableFields(),
209
- query: (0, import_assert2.assertEx)(await this._query?.hashAsync(), "No Query Specified"),
208
+ query: (await import_payload2.PayloadBuilder.build((0, import_assert2.assertEx)(this._query, "No Query Specified"))).$hash,
210
209
  schema: import_boundwitness_model2.QueryBoundWitnessSchema
211
210
  };
212
211
  }
213
212
  query(query) {
214
- this._query = import_payload_wrapper.PayloadWrapper.wrap(query);
215
- this.payload(this._query.payload());
213
+ this._query = query;
214
+ this.payload(this._query);
216
215
  return this;
217
216
  }
218
217
  };
@@ -220,10 +219,11 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
220
219
  // src/Query/QueryBoundWitnessWrapper.ts
221
220
  var import_assert3 = require("@xylabs/assert");
222
221
  var import_lodash = require("@xylabs/lodash");
223
- var import_boundwitness_wrapper2 = require("@xyo-network/boundwitness-wrapper");
222
+ var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
224
223
  var import_hash2 = require("@xyo-network/hash");
225
- var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
226
- var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_boundwitness_wrapper2.BoundWitnessWrapper {
224
+ var import_payload3 = require("@xyo-network/payload");
225
+ var import_payload_wrapper = require("@xyo-network/payload-wrapper");
226
+ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_boundwitness_wrapper.BoundWitnessWrapper {
227
227
  static {
228
228
  __name(this, "QueryBoundWitnessWrapper");
229
229
  }
@@ -231,12 +231,12 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_bo
231
231
  _query;
232
232
  _resultSet;
233
233
  isQueryBoundWitnessWrapper = true;
234
- static parseQuery(obj, payloads) {
234
+ static async parseQuery(obj, payloads) {
235
235
  (0, import_assert3.assertEx)(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
236
236
  switch (typeof obj) {
237
237
  case "object": {
238
238
  const castWrapper = obj;
239
- const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
239
+ const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await import_payload3.PayloadBuilder.build(obj), payloads);
240
240
  return wrapper;
241
241
  }
242
242
  }
@@ -248,7 +248,7 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_bo
248
248
  return (0, import_assert3.assertEx)(this._query, `Missing Query [${this.boundwitness}]`);
249
249
  }
250
250
  async getWrappedPayloads() {
251
- this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? (0, import_lodash.compact)((await import_hash2.PayloadHasher.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()), this.payload().query)).map((payload) => import_payload_wrapper2.PayloadWrapper.wrap(payload)));
251
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all((0, import_lodash.compact)((await import_hash2.PayloadHasher.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.jsonPayload()), this.jsonPayload().query)).map((payload) => import_payload_wrapper.PayloadWrapper.wrap(payload))));
252
252
  return this._payloadsWithoutQuery;
253
253
  }
254
254
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["export * from './Builder'\nexport * from './Query'\n","import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { hexFromArrayBuffer } from '@xylabs/hex'\nimport { Logger } from '@xylabs/logger'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher, sortFields } from '@xyo-network/hash'\nimport { PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport interface BoundWitnessBuilderConfig {\n /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */\n /** @deprecated We will be removing support for inlinePayloads soon */\n readonly inlinePayloads?: boolean\n /** @deprecated We will be removing support for meta soon */\n readonly meta?: boolean\n /** @deprecated We will be removing support for timestamp soon */\n readonly timestamp?: boolean\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness, TPayload extends Payload = Payload> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[] = []\n private _errorHashes: string[] | undefined\n private _errors: ModuleError[] = []\n private _payloadHashes: string[] | undefined\n private _payloadSchemas: string[] | undefined\n private _payloads: TPayload[] = []\n private _sourceQuery: string | undefined\n private _timestamp = Date.now()\n\n constructor(\n readonly config: BoundWitnessBuilderConfig = { inlinePayloads: false },\n protected readonly logger?: Logger,\n ) {}\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n async build(meta = false): Promise<[TBoundWitness, TPayload[], ModuleError[]]> {\n if (meta) {\n console.log('BoundWitnessBuilder: Calling build with meta=true will be disallowed soon')\n }\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.hashableFields()\n const _hash = await BoundWitnessWrapper.hashAsync(hashableFields)\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const ret: TBoundWitness = {\n ...hashableFields,\n _signatures: await this.signatures(_hash, previousHashes),\n }\n if (meta ?? this.config?.meta) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bwWithMeta = ret as any\n bwWithMeta._client = 'js'\n bwWithMeta._hash = _hash\n bwWithMeta._timestamp = this._timestamp\n }\n if (this.config.inlinePayloads) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const anyRet = ret as any\n //leaving this in here to prevent breaking code (for now)\n anyRet._payloads = this.inlinePayloads()\n }\n return [ret, this._payloads, this._errors]\n })\n }\n\n error(payload?: ModuleError) {\n const unwrappedPayload = 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 errors(errors?: (ModuleError | null)[]) {\n for (const error of errors ?? []) {\n if (error !== null) {\n this.error(error)\n }\n }\n return this\n }\n\n async hashableFields(): Promise<TBoundWitness> {\n const addresses = this._accounts.map((account) =>\n account.addressBytes ? hexFromArrayBuffer(account.addressBytes, { prefix: false }) : undefined,\n )\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const result: TBoundWitness = {\n addresses: assertEx(addresses, 'Missing addresses'),\n payload_hashes,\n payload_schemas,\n previous_hashes,\n schema: BoundWitnessSchema,\n } as TBoundWitness\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n\n if (this.config.timestamp ?? true) {\n result.timestamp = this._timestamp\n }\n\n if (this._sourceQuery) {\n result.sourceQuery = this._sourceQuery\n }\n\n return result\n }\n\n hashes(hashes: string[], schema: string[]) {\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 const unwrappedPayload = 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 payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n for (const payload of payloads) {\n if (payload !== null) {\n this.payload(payload)\n }\n }\n return this\n }\n\n sourceQuery(hash?: string) {\n this._sourceQuery = hash\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 async signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): 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 getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map((payload) => PayloadHasher.hashAsync(payload))))\n }\n\n private inlinePayloads() {\n console.log('BoundWitnessBuilder: Using inlinePayloads will soon be disallowed')\n\n return this._payloads.map<TPayload>((payload, index) => {\n return {\n ...payload,\n schema: this._payload_schemas[index],\n }\n })\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 { Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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: PayloadWrapper<TQuery> | undefined\n\n override async hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),\n schema: QueryBoundWitnessSchema,\n }\n }\n\n query<T extends TQuery>(query: T) {\n this._query = PayloadWrapper.wrap(query)\n this.payload(this._query.payload())\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n private _resultSet: PayloadSetPayload | undefined\n\n private isQueryBoundWitnessWrapper = true\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {\n assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)\n /*if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n }*/\n return wrapper\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.allPayloadMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, `Missing Query [${this.boundwitness}]`)\n }\n\n override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),\n this.payload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n )\n return this._payloadsWithoutQuery\n }\n}\n"],"mappings":"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","names":["BoundWitnessBuilder","_buildMutex","Mutex","_accounts","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","config","inlinePayloads","logger","Date","now","_payload_schemas","map","payload","assertEx","schema","missingSchemaMessage","build","meta","console","log","runExclusive","hashableFields","_hash","BoundWitnessWrapper","hashAsync","previousHashes","account","previousHash","ret","_signatures","signatures","bwWithMeta","_client","anyRet","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","addresses","addressBytes","hexFromArrayBuffer","prefix","previous_hashes","payload_hashes","getPayloadHashes","payload_schemas","result","BoundWitnessSchema","length","some","hash","timestamp","sourceQuery","hashes","payloads","witness","witnesses","accounts","toArrayBuffer","previousHashesBytes","ph","toUint8Array","Promise","all","index","sign","PayloadHasher","JSON","stringify","import_assert","import_boundwitness_model","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","hashableFields","query","assertEx","hashAsync","schema","QueryBoundWitnessSchema","PayloadWrapper","wrap","payload","import_assert","import_boundwitness_wrapper","import_hash","import_payload_wrapper","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","_resultSet","isQueryBoundWitnessWrapper","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","Error","getQuery","payloadMap","allPayloadMap","boundwitness","query","getWrappedPayloads","compact","PayloadHasher","filterExclude","map","payload","PayloadWrapper","wrap"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["export * from './Builder'\nexport * from './Query'\n","import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, hexFromArrayBuffer } from '@xylabs/hex'\nimport { Logger } from '@xylabs/logger'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport interface BoundWitnessBuilderConfig {\n /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */\n /** @deprecated We will be removing support for inlinePayloads soon */\n readonly inlinePayloads?: boolean\n /** @deprecated We will be removing support for meta soon */\n readonly meta?: boolean\n /** @deprecated We will be removing support for timestamp soon */\n readonly timestamp?: boolean\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness, TPayload extends Payload = Payload> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[] = []\n private _errorHashes: string[] | undefined\n private _errors: ModuleError[] = []\n private _payloadHashes: string[] | undefined\n private _payloadSchemas: string[] | undefined\n private _payloads: TPayload[] = []\n private _sourceQuery: string | undefined\n private _timestamp = Date.now()\n\n constructor(\n readonly config: BoundWitnessBuilderConfig = { inlinePayloads: false },\n protected readonly logger?: Logger,\n ) {}\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\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 previousHash<T extends BoundWitness>(payload: T, address: Address) {\n return payload.previous_hashes[this.addressIndex(payload, address)]\n }\n\n static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n async build(meta = false): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]> {\n if (meta) {\n console.log('BoundWitnessBuilder: Calling build with meta=true will be disallowed soon')\n }\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.hashableFields()\n const hash = (await PayloadBuilder.build(hashableFields)).$hash\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const meta =\n hashableFields.addresses.length > 0\n ? {\n $meta: {\n signatures: await this.signatures(hash, previousHashes),\n },\n }\n : {}\n\n const ret: WithMeta<TBoundWitness> = {\n ...hashableFields,\n $hash: hash,\n ...meta,\n }\n return [ret, this._payloads, this._errors]\n })\n }\n\n error(payload?: ModuleError) {\n const unwrappedPayload = 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 errors(errors?: (ModuleError | null)[]) {\n for (const error of errors ?? []) {\n if (error !== null) {\n this.error(error)\n }\n }\n return this\n }\n\n async hashableFields(): Promise<TBoundWitness> {\n const addresses = this._accounts.map((account) =>\n account.addressBytes ? hexFromArrayBuffer(account.addressBytes, { prefix: false }) : undefined,\n )\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const result: TBoundWitness = {\n addresses: assertEx(addresses, 'Missing addresses'),\n payload_hashes,\n payload_schemas,\n previous_hashes,\n schema: BoundWitnessSchema,\n } as TBoundWitness\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n\n if (this.config.timestamp ?? true) {\n result.timestamp = this._timestamp\n }\n\n if (this._sourceQuery) {\n result.sourceQuery = this._sourceQuery\n }\n\n return result\n }\n\n hashes(hashes: string[], schema: string[]) {\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 const unwrappedPayload = 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 payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n for (const payload of payloads) {\n if (payload !== null) {\n this.payload(payload)\n }\n }\n return this\n }\n\n sourceQuery(hash?: string) {\n this._sourceQuery = hash\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 async signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): 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 getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map(async (payload) => (await PayloadBuilder.build(payload)).$hash)))\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 } 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: TQuery | undefined\n\n override async hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: (await PayloadBuilder.build(assertEx(this._query, 'No Query Specified'))).$hash,\n schema: QueryBoundWitnessSchema,\n }\n }\n\n query<T extends TQuery>(query: T) {\n this._query = query\n this.payload(this._query)\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n private _resultSet: PayloadSetPayload | undefined\n\n private isQueryBoundWitnessWrapper = true\n\n static async parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>> {\n assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n const wrapper =\n castWrapper instanceof QueryBoundWitnessWrapper\n ? castWrapper\n : new QueryBoundWitnessWrapper<T>(await PayloadBuilder.build(obj as QueryBoundWitness), payloads)\n /*if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n }*/\n return wrapper\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.allPayloadMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, `Missing Query [${this.boundwitness}]`)\n }\n\n override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n (await Promise.all(\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.jsonPayload()),\n this.jsonPayload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n ),\n ))\n return this._payloadsWithoutQuery\n }\n}\n"],"mappings":"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","names":["BoundWitnessBuilder","_buildMutex","Mutex","_accounts","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","config","inlinePayloads","logger","Date","now","_payload_schemas","map","payload","assertEx","schema","missingSchemaMessage","addressIndex","address","index","addresses","indexOf","Error","previousHash","previous_hashes","signature","$meta","signatures","build","meta","console","log","runExclusive","hashableFields","hash","PayloadBuilder","$hash","previousHashes","account","length","ret","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","addressBytes","hexFromArrayBuffer","prefix","payload_hashes","getPayloadHashes","payload_schemas","result","BoundWitnessSchema","some","timestamp","sourceQuery","hashes","payloads","witness","witnesses","accounts","_hash","toArrayBuffer","previousHashesBytes","ph","toUint8Array","Promise","all","sign","JSON","stringify","import_assert","import_boundwitness_model","import_payload","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","hashableFields","query","PayloadBuilder","build","assertEx","$hash","schema","QueryBoundWitnessSchema","payload","import_assert","import_hash","import_payload","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","_resultSet","isQueryBoundWitnessWrapper","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Error","getQuery","payloadMap","allPayloadMap","boundwitness","query","getWrappedPayloads","Promise","all","compact","PayloadHasher","filterExclude","map","jsonPayload","payload","PayloadWrapper","wrap"]}
@@ -6,9 +6,8 @@ import { toArrayBuffer, toUint8Array } from "@xylabs/arraybuffer";
6
6
  import { assertEx } from "@xylabs/assert";
7
7
  import { hexFromArrayBuffer } from "@xylabs/hex";
8
8
  import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
9
- import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
10
- import { PayloadHasher, sortFields } from "@xyo-network/hash";
11
- import { PayloadWrapper } from "@xyo-network/payload";
9
+ import { sortFields } from "@xyo-network/hash";
10
+ import { PayloadBuilder, PayloadWrapper } from "@xyo-network/payload";
12
11
  import { Mutex } from "async-mutex";
13
12
  var BoundWitnessBuilder = class _BoundWitnessBuilder {
14
13
  static {
@@ -40,28 +39,37 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
40
39
  return assertEx(payload.schema, () => this.missingSchemaMessage(payload));
41
40
  });
42
41
  }
42
+ static addressIndex(payload, address) {
43
+ const index = payload.addresses.indexOf(address);
44
+ if (index === -1) {
45
+ throw new Error("Invalid address");
46
+ }
47
+ return index;
48
+ }
49
+ static previousHash(payload, address) {
50
+ return payload.previous_hashes[this.addressIndex(payload, address)];
51
+ }
52
+ static signature(payload, address) {
53
+ return payload.$meta.signatures[this.addressIndex(payload, address)];
54
+ }
43
55
  async build(meta = false) {
44
56
  if (meta) {
45
57
  console.log("BoundWitnessBuilder: Calling build with meta=true will be disallowed soon");
46
58
  }
47
59
  return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
48
60
  const hashableFields = await this.hashableFields();
49
- const _hash = await BoundWitnessWrapper.hashAsync(hashableFields);
61
+ const hash = (await PayloadBuilder.build(hashableFields)).$hash;
50
62
  const previousHashes = this._accounts.map((account) => account.previousHash);
63
+ const meta2 = hashableFields.addresses.length > 0 ? {
64
+ $meta: {
65
+ signatures: await this.signatures(hash, previousHashes)
66
+ }
67
+ } : {};
51
68
  const ret = {
52
69
  ...hashableFields,
53
- _signatures: await this.signatures(_hash, previousHashes)
70
+ $hash: hash,
71
+ ...meta2
54
72
  };
55
- if (meta ?? this.config?.meta) {
56
- const bwWithMeta = ret;
57
- bwWithMeta._client = "js";
58
- bwWithMeta._hash = _hash;
59
- bwWithMeta._timestamp = this._timestamp;
60
- }
61
- if (this.config.inlinePayloads) {
62
- const anyRet = ret;
63
- anyRet._payloads = this.inlinePayloads();
64
- }
65
73
  return [
66
74
  ret,
67
75
  this._payloads,
@@ -151,16 +159,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
151
159
  return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))));
152
160
  }
153
161
  async getPayloadHashes() {
154
- return this._payloadHashes ?? await Promise.all(this._payloads.map((payload) => PayloadHasher.hashAsync(payload)));
155
- }
156
- inlinePayloads() {
157
- console.log("BoundWitnessBuilder: Using inlinePayloads will soon be disallowed");
158
- return this._payloads.map((payload, index) => {
159
- return {
160
- ...payload,
161
- schema: this._payload_schemas[index]
162
- };
163
- });
162
+ return this._payloadHashes ?? await Promise.all(this._payloads.map(async (payload) => (await PayloadBuilder.build(payload)).$hash));
164
163
  }
165
164
  missingSchemaMessage(payload) {
166
165
  return `Builder: Missing Schema
@@ -171,7 +170,7 @@ ${JSON.stringify(payload, null, 2)}`;
171
170
  // src/Query/QueryBoundWitnessBuilder.ts
172
171
  import { assertEx as assertEx2 } from "@xylabs/assert";
173
172
  import { QueryBoundWitnessSchema } from "@xyo-network/boundwitness-model";
174
- import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
173
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload";
175
174
  var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
176
175
  static {
177
176
  __name(this, "QueryBoundWitnessBuilder");
@@ -180,13 +179,13 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
180
179
  async hashableFields() {
181
180
  return {
182
181
  ...await super.hashableFields(),
183
- query: assertEx2(await this._query?.hashAsync(), "No Query Specified"),
182
+ query: (await PayloadBuilder2.build(assertEx2(this._query, "No Query Specified"))).$hash,
184
183
  schema: QueryBoundWitnessSchema
185
184
  };
186
185
  }
187
186
  query(query) {
188
- this._query = PayloadWrapper2.wrap(query);
189
- this.payload(this._query.payload());
187
+ this._query = query;
188
+ this.payload(this._query);
190
189
  return this;
191
190
  }
192
191
  };
@@ -194,10 +193,11 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
194
193
  // src/Query/QueryBoundWitnessWrapper.ts
195
194
  import { assertEx as assertEx3 } from "@xylabs/assert";
196
195
  import { compact } from "@xylabs/lodash";
197
- import { BoundWitnessWrapper as BoundWitnessWrapper2 } from "@xyo-network/boundwitness-wrapper";
198
- import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
199
- import { PayloadWrapper as PayloadWrapper3 } from "@xyo-network/payload-wrapper";
200
- var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper2 {
196
+ import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
197
+ import { PayloadHasher } from "@xyo-network/hash";
198
+ import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload";
199
+ import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
200
+ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
201
201
  static {
202
202
  __name(this, "QueryBoundWitnessWrapper");
203
203
  }
@@ -205,12 +205,12 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitn
205
205
  _query;
206
206
  _resultSet;
207
207
  isQueryBoundWitnessWrapper = true;
208
- static parseQuery(obj, payloads) {
208
+ static async parseQuery(obj, payloads) {
209
209
  assertEx3(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
210
210
  switch (typeof obj) {
211
211
  case "object": {
212
212
  const castWrapper = obj;
213
- const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
213
+ const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await PayloadBuilder3.build(obj), payloads);
214
214
  return wrapper;
215
215
  }
216
216
  }
@@ -222,7 +222,7 @@ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitn
222
222
  return assertEx3(this._query, `Missing Query [${this.boundwitness}]`);
223
223
  }
224
224
  async getWrappedPayloads() {
225
- this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? compact((await PayloadHasher2.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()), this.payload().query)).map((payload) => PayloadWrapper3.wrap(payload)));
225
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all(compact((await PayloadHasher.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.jsonPayload()), this.jsonPayload().query)).map((payload) => PayloadWrapper2.wrap(payload))));
226
226
  return this._payloadsWithoutQuery;
227
227
  }
228
228
  };