@xyo-network/boundwitness-builder 2.88.3 → 2.89.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Builder.d.cts +13 -10
- package/dist/browser/Builder.d.cts.map +1 -1
- package/dist/browser/Builder.d.mts +13 -10
- package/dist/browser/Builder.d.mts.map +1 -1
- package/dist/browser/Builder.d.ts +13 -10
- package/dist/browser/Builder.d.ts.map +1 -1
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts +1 -1
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts +1 -1
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts +1 -1
- package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts +1 -3
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts.map +1 -1
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts +1 -3
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts.map +1 -1
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts +1 -3
- package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts.map +1 -1
- package/dist/browser/index.cjs +50 -50
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +53 -53
- package/dist/browser/index.js.map +1 -1
- package/dist/node/Builder.d.cts +13 -10
- package/dist/node/Builder.d.cts.map +1 -1
- package/dist/node/Builder.d.mts +13 -10
- package/dist/node/Builder.d.mts.map +1 -1
- package/dist/node/Builder.d.ts +13 -10
- package/dist/node/Builder.d.ts.map +1 -1
- package/dist/node/Query/QueryBoundWitnessBuilder.d.cts +1 -1
- package/dist/node/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
- package/dist/node/Query/QueryBoundWitnessBuilder.d.mts +1 -1
- package/dist/node/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
- package/dist/node/Query/QueryBoundWitnessBuilder.d.ts +1 -1
- package/dist/node/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
- package/dist/node/Query/QueryBoundWitnessWrapper.d.cts +1 -3
- package/dist/node/Query/QueryBoundWitnessWrapper.d.cts.map +1 -1
- package/dist/node/Query/QueryBoundWitnessWrapper.d.mts +1 -3
- package/dist/node/Query/QueryBoundWitnessWrapper.d.mts.map +1 -1
- package/dist/node/Query/QueryBoundWitnessWrapper.d.ts +1 -3
- package/dist/node/Query/QueryBoundWitnessWrapper.d.ts.map +1 -1
- package/dist/node/index.cjs +50 -52
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +53 -55
- package/dist/node/index.js.map +1 -1
- package/package.json +12 -11
- package/src/Builder.ts +59 -52
- package/src/Query/QueryBoundWitnessBuilder.ts +7 -7
- package/src/Query/QueryBoundWitnessValidator.ts +3 -3
- package/src/Query/QueryBoundWitnessWrapper.ts +21 -15
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { Address, Hash } 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, Schema, 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,19 +28,21 @@ 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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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[]]>;
|
|
35
|
+
error(payload?: ModuleError): Promise<this>;
|
|
36
|
+
errors(errors?: (ModuleError | null)[]): Promise<this>;
|
|
33
37
|
hashableFields(): Promise<TBoundWitness>;
|
|
34
|
-
hashes(hashes:
|
|
35
|
-
payload(payload?: TPayload): this
|
|
36
|
-
payloads(payloads?: (TPayload | null)[]): this
|
|
37
|
-
sourceQuery(hash?:
|
|
38
|
+
hashes(hashes: Hash[], schema: Schema[]): this;
|
|
39
|
+
payload(payload?: TPayload): Promise<this>;
|
|
40
|
+
payloads(payloads?: (TPayload | null)[]): Promise<this>;
|
|
41
|
+
sourceQuery(hash?: Hash): this;
|
|
38
42
|
witness(account: AccountInstance): this;
|
|
39
43
|
witnesses(accounts: AccountInstance[]): this;
|
|
40
|
-
protected signatures(_hash:
|
|
44
|
+
protected signatures(_hash: Hash, previousHashes: (Hash | 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":"
|
|
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,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,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,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;IA6BlF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAatC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,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,IAAI,CAAC,EAAE,IAAI;IAKvB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMhG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { Address, Hash } 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, Schema, 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,19 +28,21 @@ 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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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[]]>;
|
|
35
|
+
error(payload?: ModuleError): Promise<this>;
|
|
36
|
+
errors(errors?: (ModuleError | null)[]): Promise<this>;
|
|
33
37
|
hashableFields(): Promise<TBoundWitness>;
|
|
34
|
-
hashes(hashes:
|
|
35
|
-
payload(payload?: TPayload): this
|
|
36
|
-
payloads(payloads?: (TPayload | null)[]): this
|
|
37
|
-
sourceQuery(hash?:
|
|
38
|
+
hashes(hashes: Hash[], schema: Schema[]): this;
|
|
39
|
+
payload(payload?: TPayload): Promise<this>;
|
|
40
|
+
payloads(payloads?: (TPayload | null)[]): Promise<this>;
|
|
41
|
+
sourceQuery(hash?: Hash): this;
|
|
38
42
|
witness(account: AccountInstance): this;
|
|
39
43
|
witnesses(accounts: AccountInstance[]): this;
|
|
40
|
-
protected signatures(_hash:
|
|
44
|
+
protected signatures(_hash: Hash, previousHashes: (Hash | 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":"
|
|
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,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,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,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;IA6BlF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAatC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,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,IAAI,CAAC,EAAE,IAAI;IAKvB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMhG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { Address, Hash } 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, Schema, 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,19 +28,21 @@ 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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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[]]>;
|
|
35
|
+
error(payload?: ModuleError): Promise<this>;
|
|
36
|
+
errors(errors?: (ModuleError | null)[]): Promise<this>;
|
|
33
37
|
hashableFields(): Promise<TBoundWitness>;
|
|
34
|
-
hashes(hashes:
|
|
35
|
-
payload(payload?: TPayload): this
|
|
36
|
-
payloads(payloads?: (TPayload | null)[]): this
|
|
37
|
-
sourceQuery(hash?:
|
|
38
|
+
hashes(hashes: Hash[], schema: Schema[]): this;
|
|
39
|
+
payload(payload?: TPayload): Promise<this>;
|
|
40
|
+
payloads(payloads?: (TPayload | null)[]): Promise<this>;
|
|
41
|
+
sourceQuery(hash?: Hash): this;
|
|
38
42
|
witness(account: AccountInstance): this;
|
|
39
43
|
witnesses(accounts: AccountInstance[]): this;
|
|
40
|
-
protected signatures(_hash:
|
|
44
|
+
protected signatures(_hash: Hash, previousHashes: (Hash | 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":"
|
|
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,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,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,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;IA6BlF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAatC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,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,IAAI,CAAC,EAAE,IAAI;IAKvB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMhG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
|
|
@@ -4,6 +4,6 @@ import { BoundWitnessBuilder } from '../Builder';
|
|
|
4
4
|
export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
|
|
5
5
|
private _query;
|
|
6
6
|
hashableFields(): Promise<TBoundWitness>;
|
|
7
|
-
query<T extends TQuery>(query: T): this
|
|
7
|
+
query<T extends TQuery>(query: T): Promise<this>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
|
|
@@ -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;
|
|
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,EAAY,MAAM,4BAA4B,CAAA;AAE5D,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,CAA8B;IAE7B,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQjD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
|
|
@@ -4,6 +4,6 @@ import { BoundWitnessBuilder } from '../Builder';
|
|
|
4
4
|
export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
|
|
5
5
|
private _query;
|
|
6
6
|
hashableFields(): Promise<TBoundWitness>;
|
|
7
|
-
query<T extends TQuery>(query: T): this
|
|
7
|
+
query<T extends TQuery>(query: T): Promise<this>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
|
|
@@ -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;
|
|
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,EAAY,MAAM,4BAA4B,CAAA;AAE5D,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,CAA8B;IAE7B,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQjD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
|
|
@@ -4,6 +4,6 @@ import { BoundWitnessBuilder } from '../Builder';
|
|
|
4
4
|
export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
|
|
5
5
|
private _query;
|
|
6
6
|
hashableFields(): Promise<TBoundWitness>;
|
|
7
|
-
query<T extends TQuery>(query: T): this
|
|
7
|
+
query<T extends TQuery>(query: T): Promise<this>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
|
|
@@ -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;
|
|
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,EAAY,MAAM,4BAA4B,CAAA;AAE5D,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,CAA8B;IAE7B,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQjD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
|
|
@@ -5,9 +5,7 @@ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
|
5
5
|
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
6
|
private _payloadsWithoutQuery;
|
|
7
7
|
private _query;
|
|
8
|
-
|
|
9
|
-
private isQueryBoundWitnessWrapper;
|
|
10
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
|
|
8
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
11
9
|
getQuery(): Promise<T>;
|
|
12
10
|
getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
|
|
13
11
|
}
|
|
@@ -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;
|
|
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,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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;WAEhB,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;IAqBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
|
|
@@ -5,9 +5,7 @@ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
|
5
5
|
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
6
|
private _payloadsWithoutQuery;
|
|
7
7
|
private _query;
|
|
8
|
-
|
|
9
|
-
private isQueryBoundWitnessWrapper;
|
|
10
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
|
|
8
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
11
9
|
getQuery(): Promise<T>;
|
|
12
10
|
getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
|
|
13
11
|
}
|
|
@@ -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;
|
|
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,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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;WAEhB,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;IAqBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
|
|
@@ -5,9 +5,7 @@ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
|
5
5
|
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
6
|
private _payloadsWithoutQuery;
|
|
7
7
|
private _query;
|
|
8
|
-
|
|
9
|
-
private isQueryBoundWitnessWrapper;
|
|
10
|
-
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
|
|
8
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
11
9
|
getQuery(): Promise<T>;
|
|
12
10
|
getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
|
|
13
11
|
}
|
|
@@ -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;
|
|
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,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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;WAEhB,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;IAqBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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,
|
|
@@ -95,19 +103,21 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
|
|
|
95
103
|
];
|
|
96
104
|
});
|
|
97
105
|
}
|
|
98
|
-
error(payload) {
|
|
99
|
-
const unwrappedPayload = import_payload.PayloadWrapper.unwrap(payload);
|
|
106
|
+
async error(payload) {
|
|
107
|
+
const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
|
|
100
108
|
(0, import_assert.assertEx)(this._errorHashes === void 0, "Can not set errors when hashes already set");
|
|
101
109
|
if (unwrappedPayload) {
|
|
102
110
|
this._errors.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
|
|
103
111
|
}
|
|
104
112
|
return this;
|
|
105
113
|
}
|
|
106
|
-
errors(errors) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
114
|
+
async errors(errors) {
|
|
115
|
+
if (errors) {
|
|
116
|
+
await Promise.all(errors.map(async (error) => {
|
|
117
|
+
if (error !== null) {
|
|
118
|
+
await this.error(error);
|
|
119
|
+
}
|
|
120
|
+
}));
|
|
111
121
|
}
|
|
112
122
|
return this;
|
|
113
123
|
}
|
|
@@ -142,21 +152,21 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
|
|
|
142
152
|
this._payloadSchemas = schema;
|
|
143
153
|
return this;
|
|
144
154
|
}
|
|
145
|
-
payload(payload) {
|
|
146
|
-
const unwrappedPayload = import_payload.PayloadWrapper.unwrap(payload);
|
|
155
|
+
async payload(payload) {
|
|
156
|
+
const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
|
|
147
157
|
(0, import_assert.assertEx)(this._payloadHashes === void 0, "Can not set payloads when hashes already set");
|
|
148
158
|
if (unwrappedPayload) {
|
|
149
159
|
this._payloads.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
|
|
150
160
|
}
|
|
151
161
|
return this;
|
|
152
162
|
}
|
|
153
|
-
payloads(payloads) {
|
|
163
|
+
async payloads(payloads) {
|
|
154
164
|
if (payloads)
|
|
155
|
-
|
|
165
|
+
await Promise.all(payloads.map(async (payload) => {
|
|
156
166
|
if (payload !== null) {
|
|
157
|
-
this.payload(payload);
|
|
167
|
+
await this.payload(payload);
|
|
158
168
|
}
|
|
159
|
-
}
|
|
169
|
+
}));
|
|
160
170
|
return this;
|
|
161
171
|
}
|
|
162
172
|
sourceQuery(hash) {
|
|
@@ -177,16 +187,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
|
|
|
177
187
|
return await Promise.all(this._accounts.map(async (account, index) => (0, import_hex.hexFromArrayBuffer)(await account.sign(hash, previousHashesBytes[index]))));
|
|
178
188
|
}
|
|
179
189
|
async getPayloadHashes() {
|
|
180
|
-
return this._payloadHashes ?? await Promise.all(this._payloads.map((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
|
-
});
|
|
190
|
+
return this._payloadHashes ?? await Promise.all(this._payloads.map(async (payload) => (await import_payload.PayloadBuilder.build(payload)).$hash));
|
|
190
191
|
}
|
|
191
192
|
missingSchemaMessage(payload) {
|
|
192
193
|
return `Builder: Missing Schema
|
|
@@ -197,7 +198,7 @@ ${JSON.stringify(payload, null, 2)}`;
|
|
|
197
198
|
// src/Query/QueryBoundWitnessBuilder.ts
|
|
198
199
|
var import_assert2 = require("@xylabs/assert");
|
|
199
200
|
var import_boundwitness_model2 = require("@xyo-network/boundwitness-model");
|
|
200
|
-
var
|
|
201
|
+
var import_payload2 = require("@xyo-network/payload");
|
|
201
202
|
var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
|
|
202
203
|
static {
|
|
203
204
|
__name(this, "QueryBoundWitnessBuilder");
|
|
@@ -206,13 +207,13 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
|
|
|
206
207
|
async hashableFields() {
|
|
207
208
|
return {
|
|
208
209
|
...await super.hashableFields(),
|
|
209
|
-
query: (0, import_assert2.assertEx)(
|
|
210
|
+
query: (0, import_assert2.assertEx)(this._query, "No Query Specified").$hash,
|
|
210
211
|
schema: import_boundwitness_model2.QueryBoundWitnessSchema
|
|
211
212
|
};
|
|
212
213
|
}
|
|
213
|
-
query(query) {
|
|
214
|
-
this._query =
|
|
215
|
-
this.payload(this._query
|
|
214
|
+
async query(query) {
|
|
215
|
+
this._query = await import_payload2.PayloadBuilder.build(query);
|
|
216
|
+
await this.payload(this._query);
|
|
216
217
|
return this;
|
|
217
218
|
}
|
|
218
219
|
};
|
|
@@ -220,35 +221,34 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
|
|
|
220
221
|
// src/Query/QueryBoundWitnessWrapper.ts
|
|
221
222
|
var import_assert3 = require("@xylabs/assert");
|
|
222
223
|
var import_lodash = require("@xylabs/lodash");
|
|
223
|
-
var
|
|
224
|
+
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
224
225
|
var import_hash2 = require("@xyo-network/hash");
|
|
225
|
-
var
|
|
226
|
-
var
|
|
226
|
+
var import_payload3 = require("@xyo-network/payload");
|
|
227
|
+
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
228
|
+
var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_boundwitness_wrapper.BoundWitnessWrapper {
|
|
227
229
|
static {
|
|
228
230
|
__name(this, "QueryBoundWitnessWrapper");
|
|
229
231
|
}
|
|
230
232
|
_payloadsWithoutQuery;
|
|
231
233
|
_query;
|
|
232
|
-
|
|
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
|
|
239
|
+
const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await import_payload3.PayloadBuilder.build(obj), payloads ? await Promise.all(payloads.map((payload) => import_payload3.PayloadBuilder.build(payload))) : void 0);
|
|
240
240
|
return wrapper;
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
243
|
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
244
244
|
}
|
|
245
245
|
async getQuery() {
|
|
246
|
-
const payloadMap = await this.
|
|
246
|
+
const payloadMap = await this.payloadsDataHashMap();
|
|
247
247
|
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
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.
|
|
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, Hash, 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, Schema, 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 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 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: 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(hash?: Hash) {\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: Hash, previousHashes: (Hash | 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, 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 hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n }\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","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, 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\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>(\n await PayloadBuilder.build(obj as QueryBoundWitness),\n payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload))) : undefined,\n )\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.payloadsDataHashMap()\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","Promise","all","addressBytes","hexFromArrayBuffer","prefix","payload_hashes","getPayloadHashes","payload_schemas","result","BoundWitnessSchema","some","timestamp","sourceQuery","hashes","payloads","witness","witnesses","accounts","_hash","toArrayBuffer","previousHashesBytes","ph","toUint8Array","sign","JSON","stringify","import_assert","import_boundwitness_model","import_payload","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","hashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","PayloadBuilder","build","payload","import_assert","import_hash","import_payload","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Promise","all","map","payload","undefined","Error","getQuery","payloadMap","payloadsDataHashMap","boundwitness","query","getWrappedPayloads","compact","PayloadHasher","filterExclude","jsonPayload","PayloadWrapper","wrap"]}
|