@xyo-network/boundwitness-wrapper 2.82.0 → 2.83.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.
- package/dist/browser/BoundWitnessWrapper.d.cts +3 -4
- package/dist/browser/BoundWitnessWrapper.d.cts.map +1 -1
- package/dist/browser/BoundWitnessWrapper.d.mts +3 -4
- package/dist/browser/BoundWitnessWrapper.d.mts.map +1 -1
- package/dist/browser/BoundWitnessWrapper.d.ts +3 -4
- package/dist/browser/BoundWitnessWrapper.d.ts.map +1 -1
- package/dist/browser/index.cjs +4 -4
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.cts +3 -4
- package/dist/node/BoundWitnessWrapper.d.cts.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.mts +3 -4
- package/dist/node/BoundWitnessWrapper.d.mts.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.ts +3 -4
- package/dist/node/BoundWitnessWrapper.d.ts.map +1 -1
- package/dist/node/index.js +4 -4
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +1 -1
- package/dist/node/index.mjs.map +1 -1
- package/package.json +6 -6
- package/src/BoundWitnessWrapper.ts +2 -2
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@xylabs/promise';
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
-
import { DataLike } from '@xyo-network/core';
|
|
4
3
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
6
5
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -20,12 +19,12 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
20
19
|
get previousHashes(): (string | null)[];
|
|
21
20
|
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
22
21
|
schema: string;
|
|
23
|
-
}> | null;
|
|
24
|
-
static load(address:
|
|
22
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null;
|
|
23
|
+
static load(address: string): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
25
24
|
schema: "network.xyo.boundwitness";
|
|
26
25
|
}, {
|
|
27
26
|
schema: string;
|
|
28
|
-
}> | null>;
|
|
27
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
29
28
|
static mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>>;
|
|
30
29
|
static mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>>;
|
|
31
30
|
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAsC,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@xylabs/promise';
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
-
import { DataLike } from '@xyo-network/core';
|
|
4
3
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
6
5
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -20,12 +19,12 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
20
19
|
get previousHashes(): (string | null)[];
|
|
21
20
|
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
22
21
|
schema: string;
|
|
23
|
-
}> | null;
|
|
24
|
-
static load(address:
|
|
22
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null;
|
|
23
|
+
static load(address: string): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
25
24
|
schema: "network.xyo.boundwitness";
|
|
26
25
|
}, {
|
|
27
26
|
schema: string;
|
|
28
|
-
}> | null>;
|
|
27
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
29
28
|
static mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>>;
|
|
30
29
|
static mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>>;
|
|
31
30
|
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAsC,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAsC,MAAM,iCAAiC,CAAA;AAGlG,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjF,qBAAa,mBAAmB,CAC9B,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EACrE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAClC,SAAQ,kBAAkB,CAAC,aAAa,CAAC;IACzC,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,qBAAqB,CAAO;IAEpC,SAAS,aAAa,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE;IAM9H,IAAI,SAAS,aAEZ;IAED,IAAI,YAAY,kBAEf;IAED,IAAI,aAAa,aAEhB;IAED,IAAI,cAAc,aAEjB;IAED,IAAI,aAAa,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAE9C;IAED,IAAI,cAAc,sBAEjB;IAED,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO;;;WAIlD,IAAI,CAAC,OAAO,EAAE,MAAM;;;;;WASpB,WAAW,CAAC,QAAQ,SAAS,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;WAiB9F,kBAAkB,CAAC,QAAQ,SAAS,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAiBlI,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAgBhH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAS/H,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;WAYpH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IAU1I,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAKlD,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAqBhE,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI3C,qBAAqB,IAAI,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;IAIzD,kBAAkB;IAKlB,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIxC,sBAAsB,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;IAItD,kBAAkB,IAAI,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;IAI5D,cAAc,CAAC,MAAM,EAAE,MAAM;IASvB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAK/C,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKpE,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIxE,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,QAAQ;IAIO,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAG5C"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@xylabs/promise';
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
-
import { DataLike } from '@xyo-network/core';
|
|
4
3
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
6
5
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -20,12 +19,12 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
20
19
|
get previousHashes(): (string | null)[];
|
|
21
20
|
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
22
21
|
schema: string;
|
|
23
|
-
}> | null;
|
|
24
|
-
static load(address:
|
|
22
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null;
|
|
23
|
+
static load(address: string): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
25
24
|
schema: "network.xyo.boundwitness";
|
|
26
25
|
}, {
|
|
27
26
|
schema: string;
|
|
28
|
-
}> | null>;
|
|
27
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
29
28
|
static mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>>;
|
|
30
29
|
static mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>>;
|
|
31
30
|
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAsC,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -30,7 +30,7 @@ var import_exists = require("@xylabs/exists");
|
|
|
30
30
|
var import_lodash = require("@xylabs/lodash");
|
|
31
31
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
32
32
|
var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
|
|
33
|
-
var
|
|
33
|
+
var import_hash = require("@xyo-network/hash");
|
|
34
34
|
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
35
35
|
var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrapper.PayloadWrapperBase {
|
|
36
36
|
_allPayloadMap;
|
|
@@ -75,7 +75,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
75
75
|
return (await Promise.all(
|
|
76
76
|
payloads?.map(async (payload) => {
|
|
77
77
|
const unwrapped = (0, import_assert.assertEx)(import_payload_wrapper.PayloadWrapper.unwrap(payload));
|
|
78
|
-
return [unwrapped, await
|
|
78
|
+
return [unwrapped, await import_hash.PayloadHasher.hashAsync(unwrapped)];
|
|
79
79
|
})
|
|
80
80
|
)).reduce(
|
|
81
81
|
(map, [payload, payloadHash]) => {
|
|
@@ -89,7 +89,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
89
89
|
return (await Promise.all(
|
|
90
90
|
payloads?.map(async (payload) => {
|
|
91
91
|
const unwrapped = (0, import_assert.assertEx)(import_payload_wrapper.PayloadWrapper.unwrap(payload));
|
|
92
|
-
return [unwrapped, await
|
|
92
|
+
return [unwrapped, await import_hash.PayloadHasher.hashAsync(unwrapped)];
|
|
93
93
|
})
|
|
94
94
|
)).reduce(
|
|
95
95
|
(map, [payload, payloadHash]) => {
|
|
@@ -150,7 +150,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
150
150
|
const innerBoundwitnessPayload = (await _BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash];
|
|
151
151
|
const innerBoundwitness = innerBoundwitnessPayload ? new _BoundWitnessWrapper(
|
|
152
152
|
innerBoundwitnessPayload.body(),
|
|
153
|
-
(await
|
|
153
|
+
(await import_hash.PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body())
|
|
154
154
|
) : void 0;
|
|
155
155
|
if (innerBoundwitness) {
|
|
156
156
|
return innerBoundwitness.dig(depth ? depth - 1 : void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/BoundWitnessWrapper.ts"],"sourcesContent":["export * from './BoundWitnessWrapper'\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { DataLike, PayloadHasher } from '@xyo-network/core'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: DataLike) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/BoundWitnessWrapper.ts"],"sourcesContent":["export * from './BoundWitnessWrapper'\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: string) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/browser/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { exists } from "@xylabs/exists";
|
|
|
4
4
|
import { compact } from "@xylabs/lodash";
|
|
5
5
|
import { BoundWitnessSchema, isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
6
6
|
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
7
|
-
import { PayloadHasher } from "@xyo-network/
|
|
7
|
+
import { PayloadHasher } from "@xyo-network/hash";
|
|
8
8
|
import { PayloadWrapper, PayloadWrapperBase } from "@xyo-network/payload-wrapper";
|
|
9
9
|
var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase {
|
|
10
10
|
_allPayloadMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { DataLike, PayloadHasher } from '@xyo-network/core'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: DataLike) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,eAAe;AAExB,SAAuB,oBAAoB,sBAAsB;AACjE,SAAS,6BAA6B;AACtC,SAAmB,qBAAqB;AAExC,SAAS,gBAAgB,0BAA0B;AAE5C,IAAM,sBAAN,MAAM,6BAGH,mBAAkC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,EAEtB,YAAY,cAA6B,UAAqC,cAAwC;AAC9H,UAAM,YAAY;AAClB,SAAK,YAAY,WAAW,QAAQ,SAAS,OAAO,MAAM,EAAE,IAAI,CAAC,YAAY,eAAe,KAAe,OAAO,CAAC,CAAC,IAAI,CAAC;AACzH,SAAK,gBAAgB,eAAe,QAAQ,aAAa,OAAO,MAAM,EAAE,IAAI,CAAC,UAAU,eAAe,KAAc,KAAK,CAAC,CAAC,IAAI,CAAC;AAAA,EAClI;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,gBAAgB;AAClB,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EAEA,IAAI,gBAA4C;AAC9C,WAAO,OAAO,OAAO,KAAK,aAAa,CAAC,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAI,iBAAiB;AACnB,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EAEA,OAAO,GAA0C,OAAgB;AAC/D,WAAO,iBAAiB,uBAAuB,QAAmC;AAAA,EACpF;AAAA,EAEA,aAAa,KAAK,SAAmB;AACnC,UAAM,UAAU,MAAM,eAAe,KAAK,OAAO;AACjD,UAAM,UAAU,SAAS,QAAQ;AACjC,aAAS,WAAW,eAAe,OAAO,GAAG,kCAAkC;AAE/E,UAAM,eAAyC,WAAW,eAAe,OAAO,IAAI,UAAU;AAC9F,WAAO,eAAe,qBAAoB,KAAK,YAAY,IAAI;AAAA,EACjE;AAAA,EAEA,aAAa,YAAsC,UAAyD;AAC1G,YACE,MAAM,QAAQ;AAAA,MACZ,UAAU,IAAiC,OAAO,YAAY;AAC5D,cAAM,YAAY,SAAS,eAAe,OAAiB,OAAO,CAAC;AACnE,eAAO,CAAC,WAAW,MAAM,cAAc,UAAU,SAAS,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH,GACA;AAAA,MACA,CAAC,KAAK,CAAC,SAAS,WAAW,MAAM;AAC/B,YAAI,WAAW,IAAI;AACnB,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,aAAa,mBAA6C,UAAyE;AACjI,YACE,MAAM,QAAQ;AAAA,MACZ,UAAU,IAAiC,OAAO,YAAY;AAC5D,cAAM,YAAY,SAAS,eAAe,OAAiB,OAAO,CAAC;AACnE,eAAO,CAAC,WAAW,MAAM,cAAc,UAAU,SAAS,CAAC;AAAA,MAC7D,CAAC;AAAA,IACH,GACA;AAAA,MACA,CAAC,KAAK,CAAC,SAAS,WAAW,MAAM;AAC/B,YAAI,WAAW,IAAI,eAAe,KAAK,OAAO;AAC9C,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,OAAO,MAAiD,KAAc,UAA2C;AAC/G,UAAM,cAAc,OAAO,QAAQ,WAAW,KAAK,MAAM,GAAG,IAAI;AAChE,aAAS,CAAC,MAAM,QAAQ,WAAW,GAAG,mDAAmD;AACzF,YAAQ,OAAO,aAAa;AAAA,MAC1B,KAAK,UAAU;AACb,cAAM,cAAc;AACpB,cAAM,aAAa,aAAa,wBAAwB,cAAc,IAAI,qBAAoB,aAAkB,QAAQ;AAIxH,eAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,MAAM,oBAAoB,OAAO,GAAG,GAAG;AAAA,EAC/C;AAAA,EAEA,OAAO,SAAoD,KAAc,UAAuD;AAC9H,QAAI,QAAQ;AAAW,aAAO;AAC9B,QAAI;AACF,aAAO,KAAK,MAAM,KAAK,QAAQ;AAAA,IACjC,SAAS,KAAK;AACZ,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO,KAAgD,KAAgC,UAA2C;AAChI,YAAQ,OAAO,KAAK;AAAA,MAClB,KAAK,UAAU;AACb,cAAM,aAAa,IAAI,qBAA0B,SAAS,qBAAoB,OAAU,GAAG,CAAC,GAAG,QAAQ;AAIvG,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,aAAa,WAAmC,gBAAiG;AAC/I,UAAM,SAAiD,CAAC;AACxD,UAAM,QAAQ;AAAA,MACZ,eAAe,IAAI,OAAO,YAAY;AACpC,eAAO,MAAM,qBAAoB,UAAU,OAAO,CAAC,IAAI,qBAAoB,MAAM,OAAO;AAAA,MAC1F,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAmD;AACvD,SAAK,iBAAiB,KAAK,kBAAmB,MAAM,qBAAoB,YAAsB,MAAM,KAAK,eAAe,CAAC;AACzH,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,IAAI,OAA6D;AACrE,QAAI,UAAU;AAAG,aAAO;AAExB,UAAM,yBAAiC,KAAK,eAAe,UAAU,CAAC,SAAS,SAAS,kBAAkB;AAC1G,QAAI,yBAAyB,IAAI;AAC/B,YAAM,wBAAgC,KAAK,cAAc,sBAAsB;AAC/E,YAAM,4BAA4B,MAAM,qBAAoB,mBAAmB,MAAM,KAAK,YAAY,CAAC,GAAG,qBAAqB;AAC/H,YAAM,oBAAoE,2BACtE,IAAI;AAAA,QACF,yBAAyB,KAAK;AAAA,SAC7B,MAAM,cAAc,cAAc,KAAK,eAAe,qBAAqB,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAA6B;AAAA,MACtI,IACA;AACJ,UAAI,mBAAmB;AACrB,eAAO,kBAAkB,IAAI,QAAQ,QAAQ,IAAI,MAAS;AAAA,MAC5D;AAAA,IACF;AACA,aAAS,CAAC,OAAO,gCAAgC,KAAK,GAAG;AACzD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,iBAAsC;AAC1C,YAAQ,MAAM,KAAK,sBAAsB,GAAG,IAAI,CAAC,YAAY,QAAQ,QAAQ,CAAC;AAAA,EAChF;AAAA,EAEA,wBAAgE;AAC9D,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,qBAAqB;AACzB,UAAM,aAAa,MAAM,qBAAoB,YAAY,MAAM,KAAK,YAAY,CAAC;AACjF,WAAO,KAAK,cAAc,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,cAAmC;AACvC,YAAQ,MAAM,KAAK,mBAAmB,GAAG,IAAI,CAAC,YAAY,QAAQ,QAAQ,CAAC;AAAA,EAC7E;AAAA,EAEA,yBAAuD;AACrD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,qBAA6D;AAC3D,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,eAAe,QAAgB;AAC7B,WAAO,KAAK,eAAe,OAAiB,CAAC,MAAM,eAAe,UAAU;AAC1E,UAAI,kBAAkB,QAAQ;AAC5B,aAAK,KAAK,KAAK,cAAc,KAAK,CAAC;AAAA,MACrC;AACA,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AAAA,EACP;AAAA,EAEA,MAAM,aAAgD;AACpD,SAAK,cAAc,KAAK,eAAgB,MAAM,qBAAoB,YAAsB,MAAM,KAAK,YAAY,CAAC;AAChH,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,iBAAqC,QAAgC;AACzE,UAAM,MAAM,MAAM,KAAK,WAAW;AAClC,WAAO,OAAO,IAAO,CAAC,SAAS,SAAS,IAAI,IAAI,GAAG,gBAAgB,CAAM;AAAA,EAC3E;AAAA,EAEA,MAAM,iBAAqC,QAA8B;AACvE,YAAQ,MAAM,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,SAAS,WAAW,MAAM;AAAA,EAClF;AAAA,EAEA,KAAK,SAAiB;AACpB,WAAO,KAAK,eAAe,KAAK,UAAU,UAAU,CAAC,SAAS,YAAY,IAAI,CAAC;AAAA,EACjF;AAAA,EAEA,WAAW;AACT,WAAO,CAAC,KAAK,cAAc,KAAK,cAAc,IAAI,CAAC,YAAY,QAAQ,KAAK,CAAC,CAAC;AAAA,EAChF;AAAA,EAEA,MAAe,WAA6B;AAC1C,WAAO,MAAM,IAAI,sBAAsB,KAAK,YAAY,EAAE,SAAS;AAAA,EACrE;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: string) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@xylabs/promise';
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
-
import { DataLike } from '@xyo-network/core';
|
|
4
3
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
6
5
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -20,12 +19,12 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
20
19
|
get previousHashes(): (string | null)[];
|
|
21
20
|
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
22
21
|
schema: string;
|
|
23
|
-
}> | null;
|
|
24
|
-
static load(address:
|
|
22
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null;
|
|
23
|
+
static load(address: string): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
25
24
|
schema: "network.xyo.boundwitness";
|
|
26
25
|
}, {
|
|
27
26
|
schema: string;
|
|
28
|
-
}> | null>;
|
|
27
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
29
28
|
static mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>>;
|
|
30
29
|
static mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>>;
|
|
31
30
|
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAsC,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@xylabs/promise';
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
-
import { DataLike } from '@xyo-network/core';
|
|
4
3
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
6
5
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -20,12 +19,12 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
20
19
|
get previousHashes(): (string | null)[];
|
|
21
20
|
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
22
21
|
schema: string;
|
|
23
|
-
}> | null;
|
|
24
|
-
static load(address:
|
|
22
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null;
|
|
23
|
+
static load(address: string): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
25
24
|
schema: "network.xyo.boundwitness";
|
|
26
25
|
}, {
|
|
27
26
|
schema: string;
|
|
28
|
-
}> | null>;
|
|
27
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
29
28
|
static mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>>;
|
|
30
29
|
static mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>>;
|
|
31
30
|
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAsC,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Promisable } from '@xylabs/promise';
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
-
import { DataLike } from '@xyo-network/core';
|
|
4
3
|
import { Payload } from '@xyo-network/payload-model';
|
|
5
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
6
5
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -20,12 +19,12 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
20
19
|
get previousHashes(): (string | null)[];
|
|
21
20
|
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
22
21
|
schema: string;
|
|
23
|
-
}> | null;
|
|
24
|
-
static load(address:
|
|
22
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null;
|
|
23
|
+
static load(address: string): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
25
24
|
schema: "network.xyo.boundwitness";
|
|
26
25
|
}, {
|
|
27
26
|
schema: string;
|
|
28
|
-
}> | null>;
|
|
27
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
29
28
|
static mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>>;
|
|
30
29
|
static mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>>;
|
|
31
30
|
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAsC,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.js
CHANGED
|
@@ -30,7 +30,7 @@ var import_exists = require("@xylabs/exists");
|
|
|
30
30
|
var import_lodash = require("@xylabs/lodash");
|
|
31
31
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
32
32
|
var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
|
|
33
|
-
var
|
|
33
|
+
var import_hash = require("@xyo-network/hash");
|
|
34
34
|
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
35
35
|
var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrapper.PayloadWrapperBase {
|
|
36
36
|
_allPayloadMap;
|
|
@@ -75,7 +75,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
75
75
|
return (await Promise.all(
|
|
76
76
|
payloads == null ? void 0 : payloads.map(async (payload) => {
|
|
77
77
|
const unwrapped = (0, import_assert.assertEx)(import_payload_wrapper.PayloadWrapper.unwrap(payload));
|
|
78
|
-
return [unwrapped, await
|
|
78
|
+
return [unwrapped, await import_hash.PayloadHasher.hashAsync(unwrapped)];
|
|
79
79
|
})
|
|
80
80
|
)).reduce(
|
|
81
81
|
(map, [payload, payloadHash]) => {
|
|
@@ -89,7 +89,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
89
89
|
return (await Promise.all(
|
|
90
90
|
payloads == null ? void 0 : payloads.map(async (payload) => {
|
|
91
91
|
const unwrapped = (0, import_assert.assertEx)(import_payload_wrapper.PayloadWrapper.unwrap(payload));
|
|
92
|
-
return [unwrapped, await
|
|
92
|
+
return [unwrapped, await import_hash.PayloadHasher.hashAsync(unwrapped)];
|
|
93
93
|
})
|
|
94
94
|
)).reduce(
|
|
95
95
|
(map, [payload, payloadHash]) => {
|
|
@@ -150,7 +150,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
150
150
|
const innerBoundwitnessPayload = (await _BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash];
|
|
151
151
|
const innerBoundwitness = innerBoundwitnessPayload ? new _BoundWitnessWrapper(
|
|
152
152
|
innerBoundwitnessPayload.body(),
|
|
153
|
-
(await
|
|
153
|
+
(await import_hash.PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body())
|
|
154
154
|
) : void 0;
|
|
155
155
|
if (innerBoundwitness) {
|
|
156
156
|
return innerBoundwitness.dig(depth ? depth - 1 : void 0);
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/BoundWitnessWrapper.ts"],"sourcesContent":["export * from './BoundWitnessWrapper'\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { DataLike, PayloadHasher } from '@xyo-network/core'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: DataLike) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/BoundWitnessWrapper.ts"],"sourcesContent":["export * from './BoundWitnessWrapper'\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: string) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/node/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { exists } from "@xylabs/exists";
|
|
|
4
4
|
import { compact } from "@xylabs/lodash";
|
|
5
5
|
import { BoundWitnessSchema, isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
6
6
|
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
7
|
-
import { PayloadHasher } from "@xyo-network/
|
|
7
|
+
import { PayloadHasher } from "@xyo-network/hash";
|
|
8
8
|
import { PayloadWrapper, PayloadWrapperBase } from "@xyo-network/payload-wrapper";
|
|
9
9
|
var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase {
|
|
10
10
|
_allPayloadMap;
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { DataLike, PayloadHasher } from '@xyo-network/core'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: DataLike) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _allPayloadMap: Record<string, TPayload> | undefined\n private _moduleErrors: PayloadWrapper[]\n private _payloadMap: Record<string, TPayload> | undefined\n private _payloads: PayloadWrapper<TPayload>[]\n private isBoundWitnessWrapper = true\n\n protected constructor(boundwitness: TBoundWitness, payloads?: (TPayload | undefined)[], moduleErrors?: (Payload | undefined)[]) {\n super(boundwitness)\n this._payloads = payloads ? compact(payloads.filter(exists).map((payload) => PayloadWrapper.wrap<TPayload>(payload))) : []\n this._moduleErrors = moduleErrors ? compact(moduleErrors.filter(exists).map((error) => PayloadWrapper.wrap<Payload>(error))) : []\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get boundwitness() {\n return this.obj\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get payloadsArray(): PayloadWrapper<TPayload>[] {\n return Object.values(this._payloads ?? {})\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null\n }\n\n static async load(address: string) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload()\n assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static async mapPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, TPayload>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = payload\n return map\n },\n {} as Record<string, TPayload>,\n )\n }\n\n static async mapWrappedPayloads<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<string, PayloadWrapper<TPayload>>> {\n return (\n await Promise.all(\n payloads?.map<Promise<[TPayload, string]>>(async (payload) => {\n const unwrapped = assertEx(PayloadWrapper.unwrap<TPayload>(payload))\n return [unwrapped, await PayloadHasher.hashAsync(unwrapped)]\n }),\n )\n ).reduce(\n (map, [payload, payloadHash]) => {\n map[payloadHash] = PayloadWrapper.wrap(payload)\n return map\n },\n {} as Record<string, PayloadWrapper<TPayload>>,\n )\n }\n\n static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> {\n const hydratedObj = typeof obj === 'string' ? JSON.parse(obj) : obj\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n const castWrapper = hydratedObj as BoundWitnessWrapper<T, P>\n const newWrapper = castWrapper?.isBoundWitnessWrapper ? castWrapper : new BoundWitnessWrapper(hydratedObj as T, payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n throw Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch (_ex) {\n return undefined\n }\n }\n\n static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): BoundWitnessWrapper<T, P> {\n switch (typeof obj) {\n case 'object': {\n const newWrapper = new BoundWitnessWrapper<T, P>(assertEx(BoundWitnessWrapper.unwrap<T>(obj)), payloads)\n /*if (!newWrapper.getValid()) {\n console.warn('Wrapped invalid BoundWitness')\n }*/\n return newWrapper\n }\n }\n }\n\n static async wrappedMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n result[await BoundWitnessWrapper.hashAsync(payload)] = BoundWitnessWrapper.parse(payload)\n }),\n )\n return result\n }\n\n async allPayloadMap(): Promise<Record<string, TPayload>> {\n this._allPayloadMap = this._allPayloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getAllPayloads()))\n return this._allPayloadMap\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.findIndex((item) => item === BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: string = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = (await BoundWitnessWrapper.mapWrappedPayloads(await this.getPayloads()))[innerBoundwitnessHash]\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = innerBoundwitnessPayload\n ? new BoundWitnessWrapper<TBoundWitness>(\n innerBoundwitnessPayload.body() as unknown as TBoundWitness,\n (await PayloadHasher.filterExclude(this.payloadsArray, innerBoundwitnessHash)).map((item) => item.body() as unknown as TBoundWitness),\n )\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getAllPayloads(): Promise<TPayload[]> {\n return (await this.getAllWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getAllWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n async getMissingPayloads() {\n const payloadMap = await BoundWitnessWrapper.mapPayloads(await this.getPayloads())\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getPayloads(): Promise<TPayload[]> {\n return (await this.getWrappedPayloads()).map((wrapper) => wrapper.payload())\n }\n\n getWrappedModuleErrors(): Promisable<PayloadWrapper[]> {\n return this._moduleErrors\n }\n\n getWrappedPayloads(): Promisable<PayloadWrapper<TPayload>[]> {\n return this._payloads\n }\n\n hashesBySchema(schema: string) {\n return this.payloadSchemas.reduce<string[]>((prev, payloadSchema, index) => {\n if (payloadSchema === schema) {\n prev.push(this.payloadHashes[index])\n }\n return prev\n }, [])\n }\n\n async payloadMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.mapPayloads<TPayload>(await this.getPayloads()))\n return this._payloadMap\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsBySchema<T extends TPayload>(schema: string): Promise<T[]> {\n return (await this.getPayloads()).filter((payload) => payload?.schema === schema) as T[]\n }\n\n prev(address: string) {\n return this.previousHashes[this.addresses.findIndex((addr) => address === addr)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloadsArray.map((payload) => payload.body())]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"@xylabs/exists": "^2.13.20",
|
|
15
15
|
"@xylabs/lodash": "^2.13.20",
|
|
16
16
|
"@xylabs/promise": "^2.13.20",
|
|
17
|
-
"@xyo-network/boundwitness-model": "~2.
|
|
18
|
-
"@xyo-network/boundwitness-validator": "~2.
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/payload-model": "~2.
|
|
21
|
-
"@xyo-network/payload-wrapper": "~2.
|
|
17
|
+
"@xyo-network/boundwitness-model": "~2.83.1",
|
|
18
|
+
"@xyo-network/boundwitness-validator": "~2.83.1",
|
|
19
|
+
"@xyo-network/hash": "~2.83.1",
|
|
20
|
+
"@xyo-network/payload-model": "~2.83.1",
|
|
21
|
+
"@xyo-network/payload-wrapper": "~2.83.1"
|
|
22
22
|
},
|
|
23
23
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
24
24
|
"devDependencies": {
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
},
|
|
66
66
|
"sideEffects": false,
|
|
67
67
|
"types": "dist/node/index.d.ts",
|
|
68
|
-
"version": "2.
|
|
68
|
+
"version": "2.83.1"
|
|
69
69
|
}
|
|
@@ -4,7 +4,7 @@ import { compact } from '@xylabs/lodash'
|
|
|
4
4
|
import { Promisable } from '@xylabs/promise'
|
|
5
5
|
import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'
|
|
6
6
|
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
|
|
7
|
-
import {
|
|
7
|
+
import { PayloadHasher } from '@xyo-network/hash'
|
|
8
8
|
import { Payload } from '@xyo-network/payload-model'
|
|
9
9
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'
|
|
10
10
|
|
|
@@ -52,7 +52,7 @@ export class BoundWitnessWrapper<
|
|
|
52
52
|
return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : null
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
static async load(address:
|
|
55
|
+
static async load(address: string) {
|
|
56
56
|
const wrapper = await PayloadWrapper.load(address)
|
|
57
57
|
const payload = wrapper?.payload()
|
|
58
58
|
assertEx(payload && isBoundWitness(payload), 'Attempt to load non-boundwitness')
|