@xyo-network/boundwitness-builder 7.0.3 → 7.0.4
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/neutral/BoundWitnessBuilder.d.ts +3 -3
- package/dist/neutral/BoundWitnessBuilder.d.ts.map +1 -1
- package/dist/neutral/index.mjs +4 -4
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/intraBoundwitnessSchemaCombinations.d.ts +1 -1
- package/dist/neutral/intraBoundwitnessSchemaCombinations.d.ts.map +1 -1
- package/package.json +21 -19
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Hash, Hex } from '@xylabs/sdk
|
|
1
|
+
import type { Hash, Hex } from '@xylabs/sdk';
|
|
2
2
|
import type { AccountInstance } from '@xyo-network/account-model';
|
|
3
3
|
import type { XyoAddress } from '@xyo-network/address';
|
|
4
4
|
import type { BoundWitness, PossiblySigned, Signed, Unsigned } from '@xyo-network/boundwitness-model';
|
|
@@ -17,7 +17,7 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
|
|
|
17
17
|
constructor(options?: Omit<PayloadBuilderOptions, 'schema'>);
|
|
18
18
|
private static validateGeneratedFields;
|
|
19
19
|
protected static linkingFields<T extends BoundWitness>(accounts: AccountInstance[], payloads?: Payload[]): Promise<Pick<T, GeneratedBoundWitnessFields>>;
|
|
20
|
-
protected static signature<T extends BoundWitness>(payload: T, address: XyoAddress): import("@xylabs/sdk
|
|
20
|
+
protected static signature<T extends BoundWitness>(payload: T, address: XyoAddress): import("@xylabs/sdk").BrandedHex | null;
|
|
21
21
|
protected static signatures(accounts: AccountInstance[], dataHash: Hash): Promise<string[]>;
|
|
22
22
|
static addressIndex<T extends BoundWitness>(payload: T, address: XyoAddress): number;
|
|
23
23
|
static previousHash<T extends BoundWitness>(boundWitness: T, address: XyoAddress): string | undefined;
|
|
@@ -29,7 +29,7 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness = Bo
|
|
|
29
29
|
build(): Promise<[Signed<TBoundWitness>, TPayload[], ModuleError[]]>;
|
|
30
30
|
build(sign: false): Promise<[Unsigned<TBoundWitness>, TPayload[], ModuleError[]]>;
|
|
31
31
|
build(sign: true): Promise<[Signed<TBoundWitness>, TPayload[], ModuleError[]]>;
|
|
32
|
-
dataHash(): Promise<import("@xylabs/sdk
|
|
32
|
+
dataHash(): Promise<import("@xylabs/sdk").BrandedHash>;
|
|
33
33
|
dataHashableFields(): Promise<WithoutMeta<TBoundWitness>>;
|
|
34
34
|
error(payload?: ModuleError): this;
|
|
35
35
|
errors(errors?: (ModuleError | null)[]): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"BoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,MAAM,EACN,QAAQ,EACT,MAAM,iCAAiC,CAAA;AAKxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAc,cAAc,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EACV,WAAW,EAAE,OAAO,EAAE,MAAM,EAC5B,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAO9E,qBAAa,mBAAmB,CAC9B,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,QAAQ,SAAS,OAAO,GAAG,OAAO,CAClC,SAAQ,cAAc,CACpB,aAAa,EACb,OAAO,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CACpE;IACD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IAEjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAC,CAAQ;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAU;IAClC,OAAO,CAAC,SAAS,CAAiB;gBAEtB,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IAI3D,OAAO,CAAC,MAAM,CAAC,uBAAuB;qBAMf,aAAa,CAAC,CAAC,SAAS,YAAY,EACzD,QAAQ,EAAE,eAAe,EAAE,EAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAUhD,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU;qBAI3D,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASjG,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU;IAQ3E,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU;IAIhF,SAAS,KAAK,SAAS,IAAI,UAAU,EAAE,CAGtC;IAED,SAAS,KAAK,cAAc,IAAI,MAAM,EAAE,CAOvC;IAED,SAAS,KAAK,iBAAiB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAE5D;IAED,SAAS,KAAK,cAAc,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAE9C;cAEe,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IASvB,KAAK,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAiBvF,QAAQ;IAMC,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAUxE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAQ3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAW7B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAC7F,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,GAAG,IAAI;IAcjF,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOvC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAQ1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAUvC,MAAM,CAAC,OAAO,EAAE,eAAe;IAM/B,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE;IAMnC,WAAW,CAAC,WAAW,EAAE,IAAI;IAQ7B,qCAAqC;IACrC,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,sCAAsC;IACtC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;CAItC"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
assertEx,
|
|
5
5
|
hexFromArrayBuffer,
|
|
6
6
|
toArrayBuffer
|
|
7
|
-
} from "@xylabs/sdk
|
|
7
|
+
} from "@xylabs/sdk";
|
|
8
8
|
import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
|
|
9
9
|
import {
|
|
10
10
|
ObjectHasher,
|
|
@@ -229,7 +229,7 @@ import {
|
|
|
229
229
|
asHash as asHash2,
|
|
230
230
|
difference,
|
|
231
231
|
exists
|
|
232
|
-
} from "@xylabs/sdk
|
|
232
|
+
} from "@xylabs/sdk";
|
|
233
233
|
import { isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
234
234
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
235
235
|
var combinationsByBoundwitness = async (payloads) => {
|
|
@@ -252,7 +252,7 @@ var combinationsByBoundwitness = async (payloads) => {
|
|
|
252
252
|
};
|
|
253
253
|
|
|
254
254
|
// src/intraBoundwitnessSchemaCombinations.ts
|
|
255
|
-
import { asHash as asHash3 } from "@xylabs/sdk
|
|
255
|
+
import { asHash as asHash3 } from "@xylabs/sdk";
|
|
256
256
|
var intraBoundwitnessSchemaCombinations = (boundwitness, schemas) => {
|
|
257
257
|
const indexMap = {};
|
|
258
258
|
for (const [index, element] of boundwitness.payload_schemas.entries()) {
|
|
@@ -285,7 +285,7 @@ var intraBoundwitnessSchemaCombinations = (boundwitness, schemas) => {
|
|
|
285
285
|
};
|
|
286
286
|
|
|
287
287
|
// src/Query/QueryBoundWitnessBuilder.ts
|
|
288
|
-
import { assertEx as assertEx2 } from "@xylabs/sdk
|
|
288
|
+
import { assertEx as assertEx2 } from "@xylabs/sdk";
|
|
289
289
|
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload";
|
|
290
290
|
var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
|
|
291
291
|
_query;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/BoundWitnessBuilder.ts", "../../src/GeneratedBoundWitnessFields.ts", "../../src/uniqueAddresses.ts", "../../src/uniqueAccounts.ts", "../../src/combinationsByBoundwitness.ts", "../../src/intraBoundwitnessSchemaCombinations.ts", "../../src/Query/QueryBoundWitnessBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Hash, Hex } from '@xylabs/sdk-js'\nimport {\n asHash, assertEx, hexFromArrayBuffer, toArrayBuffer,\n} from '@xylabs/sdk-js'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { XyoAddress } from '@xyo-network/address'\nimport type {\n BoundWitness,\n PossiblySigned,\n Signed,\n Unsigned,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport {\n ObjectHasher, removeEmptyFields, sortFields,\n} from '@xyo-network/hash'\nimport type { PayloadBuilderOptions } from '@xyo-network/payload-builder'\nimport { omitSchema, PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n ModuleError, Payload, Schema,\n WithoutClientMeta,\n WithoutMeta,\n WithoutSchema,\n WithoutStorageMeta,\n} from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nimport { GeneratedBoundWitnessFields } from './GeneratedBoundWitnessFields.ts'\nimport { uniqueAccounts } from './uniqueAccounts.ts'\n\nfunction missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n}\n\nexport class BoundWitnessBuilder<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload>\n extends PayloadBuilder<\n TBoundWitness,\n Promise<[PossiblySigned<TBoundWitness>, TPayload[], ModuleError[]]>\n > {\n private static readonly _buildMutex = new Mutex()\n\n private _accounts: AccountInstance[] = []\n private _errorHashes?: Hash[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: Hash[]\n private _payloadSchemas?: Schema[]\n private _payloads: TPayload[] = []\n\n constructor(options?: Omit<PayloadBuilderOptions, 'schema'>) {\n super({ ...options, schema: BoundWitnessSchema })\n }\n\n private static validateGeneratedFields(fields: Pick<BoundWitness, GeneratedBoundWitnessFields>) {\n assertEx(fields.payload_hashes?.length === fields.payload_schemas?.length, () => 'Payload hash/schema mismatch')\n assertEx(!(fields.payload_hashes as (Hash | null)[]).includes(null), () => 'nulls found in hashes')\n assertEx(!(fields.payload_schemas as (Schema | null)[]).includes(null), () => 'nulls found in schemas')\n }\n\n protected static async linkingFields<T extends BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n ): Promise<Pick<T, GeneratedBoundWitnessFields>> {\n const addresses = accounts.map(account => account.address.toLowerCase() as XyoAddress)\n const previous_hashes = accounts.map(account => account.previousHash ?? null)\n const payload_hashes = payloads ? await this.hashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema) ?? []\n return {\n addresses, payload_hashes, payload_schemas, previous_hashes,\n }\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: XyoAddress) {\n return payload.$signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], dataHash: Hash): Promise<string[]> {\n const hashBytes = toArrayBuffer(dataHash)\n const previousHashesBytes = accounts?.map(account => account.previousHashBytes)\n return await Promise.all(accounts.map(async (account, index) => {\n const signature = await account.sign(hashBytes, previousHashesBytes[index])\n return hexFromArrayBuffer(signature[0])\n }))\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: XyoAddress) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: XyoAddress) {\n return asHash(boundWitness.previous_hashes[this.addressIndex(boundWitness, address)])?.toLowerCase()\n }\n\n protected get addresses(): XyoAddress[] {\n uniqueAccounts(this._accounts, true)\n return this._accounts.map(account => account.address.toLowerCase()) as XyoAddress[]\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas\n ?? this._payloads.map((payload) => {\n return assertEx(payload.schema, () => missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBytes(): (ArrayBufferLike | null)[] {\n return this._accounts.map(account => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map(account => account.previousHash ?? null)\n }\n\n protected async sign(): Promise<Hex[]> {\n uniqueAccounts(this._accounts, true)\n const hashBytes = toArrayBuffer(await this.dataHash())\n return await Promise.all(this._accounts.map(async (account) => {\n const signature = await account.sign(hashBytes)\n return hexFromArrayBuffer(signature[0])\n }))\n }\n\n override async build(): Promise<[Signed<TBoundWitness>, TPayload[], ModuleError[]]>\n override async build(sign: false): Promise<[Unsigned<TBoundWitness>, TPayload[], ModuleError[]]>\n override async build(sign: true): Promise<[Signed<TBoundWitness>, TPayload[], ModuleError[]]>\n override async build(sign = true): Promise<[PossiblySigned<TBoundWitness>, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = await this.dataHashableFields()\n const $signatures = sign ? await this.sign() : this.addresses.map(() => null)\n\n const ret = {\n ...this._meta, ...dataHashableFields, ...this._fields, $signatures,\n } as Signed<TBoundWitness>\n return [\n ret,\n this._payloads,\n this._errors,\n ]\n })\n }\n\n async dataHash() {\n const dataHashableFields = await this.dataHashableFields()\n const hash = await ObjectHasher.hash(dataHashableFields)\n return hash\n }\n\n override async dataHashableFields(): Promise<WithoutMeta<TBoundWitness>> {\n const generatedFields: Pick<TBoundWitness, GeneratedBoundWitnessFields> = await BoundWitnessBuilder.linkingFields(this._accounts, this._payloads)\n BoundWitnessBuilder.validateGeneratedFields(generatedFields)\n const fields: WithoutSchema<TBoundWitness> = {\n ...PayloadBuilder.omitMeta(this._fields ?? {}),\n ...generatedFields,\n } as WithoutSchema<TBoundWitness>\n return await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n }\n\n error(payload?: ModuleError) {\n assertEx(this._errorHashes === undefined, () => 'Can not set errors when hashes already set')\n if (payload) {\n this._errors.push(assertEx(sortFields(payload)))\n }\n return this\n }\n\n errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n for (const error of errors) {\n if (error !== null) {\n this.error(error)\n }\n }\n }\n return this\n }\n\n override fields(fields: WithoutSchema<Omit<WithoutStorageMeta<WithoutClientMeta<TBoundWitness>>,\n 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'>>): this {\n // clean it up just incase\n const clone = structuredClone(fields) as unknown as Partial<TBoundWitness>\n for (const field of GeneratedBoundWitnessFields) {\n delete clone[field]\n }\n const withoutEmptyFields = removeEmptyFields(clone)\n const withoutSchema = omitSchema(withoutEmptyFields)\n const withoutClientMeta = BoundWitnessBuilder.omitClientMeta(withoutSchema)\n // we need to do the cast here since ts seems to not like nested, yet same, generics\n this._fields = BoundWitnessBuilder.omitStorageMeta(withoutClientMeta) as unknown as WithoutStorageMeta<WithoutClientMeta<WithoutSchema<TBoundWitness>>>\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, () => 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n payload(payload?: TPayload) {\n assertEx(this._payloadHashes === undefined, () => 'Can not set payloads when hashes already set')\n if (payload) {\n this._payloads.push(assertEx(sortFields<TPayload>(payload)))\n }\n return this\n }\n\n payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n for (const payload of payloads) {\n if (payload !== null) {\n this.payload(payload)\n }\n }\n return this\n }\n\n signer(account: AccountInstance) {\n uniqueAccounts([...this._accounts, account], true)\n this._accounts?.push(account)\n return this\n }\n\n signers(accounts: AccountInstance[]) {\n uniqueAccounts([...this._accounts, ...accounts], true)\n this._accounts?.push(...accounts)\n return this\n }\n\n sourceQuery(sourceQuery: Hash) {\n this._meta = {\n ...this._meta,\n $sourceQuery: sourceQuery,\n } as typeof this._meta\n return this\n }\n\n /** @deprecated use signer instead */\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n /** @deprecated use signers instead */\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n}\n", "export const GeneratedBoundWitnessFields = ['addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'] as const\nexport type GeneratedBoundWitnessFields = typeof GeneratedBoundWitnessFields[number]\n", "import type { XyoAddress } from '@xyo-network/address'\n\nexport const uniqueAddresses = (addresses: XyoAddress[], throwOnFalse = false) => {\n const addressesSet = new Set<XyoAddress>()\n for (const address of addresses) {\n if (addressesSet.has(address)) {\n if (throwOnFalse) {\n throw new Error('Duplicate address')\n }\n return false\n }\n addressesSet.add(address)\n }\n return true\n}\n", "import type { AccountInstance } from '@xyo-network/account-model'\n\nimport { uniqueAddresses } from './uniqueAddresses.ts'\n\nexport const uniqueAccounts = (accounts: AccountInstance[], throwOnFalse = false) => {\n return uniqueAddresses(accounts.map(account => account.address), throwOnFalse)\n}\n", "import {\n asHash, difference, exists,\n} from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\n\n/**\n * Returns tuples of bound witnesses and their payloads from the supplied payloads. Omits\n * bound witnesses where the payloads were not included in the supplied payloads.\n * @param payloads An array of bound witnesses and payloads\n * @returns An array of tuples of bound witnesses and their payloads\n */\nexport const combinationsByBoundwitness = async (payloads: Payload[]): Promise<[BoundWitness, ...Payload[]][]> => {\n const bws = new Set<BoundWitness>(payloads.filter(x => isBoundWitness(x)))\n const remaining = difference(new Set(payloads), bws)\n const payloadDictionary = await PayloadBuilder.toHashMap([...remaining]) as Record<string, Payload>\n const results = [] as [BoundWitness, ...Payload[]][]\n for (const bw of bws) {\n const { payload_hashes } = bw\n const p = payload_hashes.map((h) => {\n const hashKey = String(asHash(h, true))\n return payloadDictionary[hashKey]\n }).filter(exists)\n if (p.length === payload_hashes.length) {\n const complete = [bw, ...p] as [BoundWitness, ...Payload[]]\n results.push(complete)\n }\n }\n return results\n}\n", "import { asHash, type Hash } from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport type { Schema } from '@xyo-network/payload-model'\n\n/**\n * Returns all the possible combinations of payloads for the supplied schemas within the bound witness\n * @param boundwitness The bound witness to search\n * @param schemas The schemas to search for unique combinations of\n * @returns The payload hashes corresponding to the unique combinations of the supplied schemas\n */\nexport const intraBoundwitnessSchemaCombinations = (boundwitness: BoundWitness, schemas: Schema[]): Hash[][] => {\n // Map to store the indices of each element in the source array\n const indexMap: Record<string, number[]> = {}\n\n // Populate the index map with positions of each element\n for (const [index, element] of boundwitness.payload_schemas.entries()) {\n if (!Object.hasOwn(indexMap, element)) {\n indexMap[element] = []\n }\n indexMap[element].push(index)\n }\n\n // Initialize an array to store unique combinations\n let uniqueCombinations = [[]] as number[][]\n\n // Iterate over each element in the target array\n for (const element of schemas) {\n const newCombinations: number[][] = []\n // Get the array of indices for the current element\n const indices = indexMap[element] ?? []\n\n // Iterate over existing combinations\n for (const combination of uniqueCombinations) {\n // Iterate over each index in the indices array\n for (const index of indices) {\n // Check if the index is already in the combination\n if (!combination.includes(index)) {\n const newCombination = [...combination, index]\n // Only add the new combination if its length matches the current target index\n if (newCombination.length === schemas.indexOf(element) + 1) {\n newCombinations.push(newCombination)\n }\n }\n }\n }\n\n // Update the unique combinations for the next iteration\n uniqueCombinations = newCombinations\n }\n\n return uniqueCombinations.map((indexes) => {\n return indexes.map((index) => {\n return asHash(boundwitness.payload_hashes[index], true)\n })\n })\n}\n", "import { assertEx } from '@xylabs/sdk-js'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Query, WithoutMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../BoundWitnessBuilder.ts'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: TQuery | undefined\n\n override async dataHashableFields(): Promise<WithoutMeta<TBoundWitness>> {\n const fields = {\n ...(await super.dataHashableFields()),\n query: await PayloadBuilder.dataHash(assertEx(this._query, () => 'No Query Specified')),\n } as TBoundWitness\n return { ...fields } as WithoutMeta<TBoundWitness>\n }\n\n query<T extends TQuery>(query: T) {\n this.payload(query)\n this._query = query\n return this\n }\n}\n"],
|
|
4
|
+
"sourcesContent": ["import type { Hash, Hex } from '@xylabs/sdk'\nimport {\n asHash, assertEx, hexFromArrayBuffer, toArrayBuffer,\n} from '@xylabs/sdk'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { XyoAddress } from '@xyo-network/address'\nimport type {\n BoundWitness,\n PossiblySigned,\n Signed,\n Unsigned,\n} from '@xyo-network/boundwitness-model'\nimport { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport {\n ObjectHasher, removeEmptyFields, sortFields,\n} from '@xyo-network/hash'\nimport type { PayloadBuilderOptions } from '@xyo-network/payload-builder'\nimport { omitSchema, PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n ModuleError, Payload, Schema,\n WithoutClientMeta,\n WithoutMeta,\n WithoutSchema,\n WithoutStorageMeta,\n} from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nimport { GeneratedBoundWitnessFields } from './GeneratedBoundWitnessFields.ts'\nimport { uniqueAccounts } from './uniqueAccounts.ts'\n\nfunction missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n}\n\nexport class BoundWitnessBuilder<\n TBoundWitness extends BoundWitness = BoundWitness,\n TPayload extends Payload = Payload>\n extends PayloadBuilder<\n TBoundWitness,\n Promise<[PossiblySigned<TBoundWitness>, TPayload[], ModuleError[]]>\n > {\n private static readonly _buildMutex = new Mutex()\n\n private _accounts: AccountInstance[] = []\n private _errorHashes?: Hash[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: Hash[]\n private _payloadSchemas?: Schema[]\n private _payloads: TPayload[] = []\n\n constructor(options?: Omit<PayloadBuilderOptions, 'schema'>) {\n super({ ...options, schema: BoundWitnessSchema })\n }\n\n private static validateGeneratedFields(fields: Pick<BoundWitness, GeneratedBoundWitnessFields>) {\n assertEx(fields.payload_hashes?.length === fields.payload_schemas?.length, () => 'Payload hash/schema mismatch')\n assertEx(!(fields.payload_hashes as (Hash | null)[]).includes(null), () => 'nulls found in hashes')\n assertEx(!(fields.payload_schemas as (Schema | null)[]).includes(null), () => 'nulls found in schemas')\n }\n\n protected static async linkingFields<T extends BoundWitness>(\n accounts: AccountInstance[],\n payloads?: Payload[],\n ): Promise<Pick<T, GeneratedBoundWitnessFields>> {\n const addresses = accounts.map(account => account.address.toLowerCase() as XyoAddress)\n const previous_hashes = accounts.map(account => account.previousHash ?? null)\n const payload_hashes = payloads ? await this.hashes(payloads) : []\n const payload_schemas = payloads?.map(({ schema }) => schema) ?? []\n return {\n addresses, payload_hashes, payload_schemas, previous_hashes,\n }\n }\n\n protected static signature<T extends BoundWitness>(payload: T, address: XyoAddress) {\n return payload.$signatures[this.addressIndex(payload, address)]\n }\n\n protected static async signatures(accounts: AccountInstance[], dataHash: Hash): Promise<string[]> {\n const hashBytes = toArrayBuffer(dataHash)\n const previousHashesBytes = accounts?.map(account => account.previousHashBytes)\n return await Promise.all(accounts.map(async (account, index) => {\n const signature = await account.sign(hashBytes, previousHashesBytes[index])\n return hexFromArrayBuffer(signature[0])\n }))\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: XyoAddress) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static previousHash<T extends BoundWitness>(boundWitness: T, address: XyoAddress) {\n return asHash(boundWitness.previous_hashes[this.addressIndex(boundWitness, address)])?.toLowerCase()\n }\n\n protected get addresses(): XyoAddress[] {\n uniqueAccounts(this._accounts, true)\n return this._accounts.map(account => account.address.toLowerCase()) as XyoAddress[]\n }\n\n protected get payloadSchemas(): string[] {\n return (\n this._payloadSchemas\n ?? this._payloads.map((payload) => {\n return assertEx(payload.schema, () => missingSchemaMessage(payload))\n })\n )\n }\n\n protected get previousHashBytes(): (ArrayBufferLike | null)[] {\n return this._accounts.map(account => account.previousHashBytes ?? null)\n }\n\n protected get previousHashes(): (Hash | null)[] {\n return this._accounts.map(account => account.previousHash ?? null)\n }\n\n protected async sign(): Promise<Hex[]> {\n uniqueAccounts(this._accounts, true)\n const hashBytes = toArrayBuffer(await this.dataHash())\n return await Promise.all(this._accounts.map(async (account) => {\n const signature = await account.sign(hashBytes)\n return hexFromArrayBuffer(signature[0])\n }))\n }\n\n override async build(): Promise<[Signed<TBoundWitness>, TPayload[], ModuleError[]]>\n override async build(sign: false): Promise<[Unsigned<TBoundWitness>, TPayload[], ModuleError[]]>\n override async build(sign: true): Promise<[Signed<TBoundWitness>, TPayload[], ModuleError[]]>\n override async build(sign = true): Promise<[PossiblySigned<TBoundWitness>, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const dataHashableFields = await this.dataHashableFields()\n const $signatures = sign ? await this.sign() : this.addresses.map(() => null)\n\n const ret = {\n ...this._meta, ...dataHashableFields, ...this._fields, $signatures,\n } as Signed<TBoundWitness>\n return [\n ret,\n this._payloads,\n this._errors,\n ]\n })\n }\n\n async dataHash() {\n const dataHashableFields = await this.dataHashableFields()\n const hash = await ObjectHasher.hash(dataHashableFields)\n return hash\n }\n\n override async dataHashableFields(): Promise<WithoutMeta<TBoundWitness>> {\n const generatedFields: Pick<TBoundWitness, GeneratedBoundWitnessFields> = await BoundWitnessBuilder.linkingFields(this._accounts, this._payloads)\n BoundWitnessBuilder.validateGeneratedFields(generatedFields)\n const fields: WithoutSchema<TBoundWitness> = {\n ...PayloadBuilder.omitMeta(this._fields ?? {}),\n ...generatedFields,\n } as WithoutSchema<TBoundWitness>\n return await BoundWitnessBuilder.dataHashableFields<TBoundWitness>(this._schema, fields)\n }\n\n error(payload?: ModuleError) {\n assertEx(this._errorHashes === undefined, () => 'Can not set errors when hashes already set')\n if (payload) {\n this._errors.push(assertEx(sortFields(payload)))\n }\n return this\n }\n\n errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n for (const error of errors) {\n if (error !== null) {\n this.error(error)\n }\n }\n }\n return this\n }\n\n override fields(fields: WithoutSchema<Omit<WithoutStorageMeta<WithoutClientMeta<TBoundWitness>>,\n 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'>>): this {\n // clean it up just incase\n const clone = structuredClone(fields) as unknown as Partial<TBoundWitness>\n for (const field of GeneratedBoundWitnessFields) {\n delete clone[field]\n }\n const withoutEmptyFields = removeEmptyFields(clone)\n const withoutSchema = omitSchema(withoutEmptyFields)\n const withoutClientMeta = BoundWitnessBuilder.omitClientMeta(withoutSchema)\n // we need to do the cast here since ts seems to not like nested, yet same, generics\n this._fields = BoundWitnessBuilder.omitStorageMeta(withoutClientMeta) as unknown as WithoutStorageMeta<WithoutClientMeta<WithoutSchema<TBoundWitness>>>\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, () => 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n payload(payload?: TPayload) {\n assertEx(this._payloadHashes === undefined, () => 'Can not set payloads when hashes already set')\n if (payload) {\n this._payloads.push(assertEx(sortFields<TPayload>(payload)))\n }\n return this\n }\n\n payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n for (const payload of payloads) {\n if (payload !== null) {\n this.payload(payload)\n }\n }\n return this\n }\n\n signer(account: AccountInstance) {\n uniqueAccounts([...this._accounts, account], true)\n this._accounts?.push(account)\n return this\n }\n\n signers(accounts: AccountInstance[]) {\n uniqueAccounts([...this._accounts, ...accounts], true)\n this._accounts?.push(...accounts)\n return this\n }\n\n sourceQuery(sourceQuery: Hash) {\n this._meta = {\n ...this._meta,\n $sourceQuery: sourceQuery,\n } as typeof this._meta\n return this\n }\n\n /** @deprecated use signer instead */\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n /** @deprecated use signers instead */\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n}\n", "export const GeneratedBoundWitnessFields = ['addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes'] as const\nexport type GeneratedBoundWitnessFields = typeof GeneratedBoundWitnessFields[number]\n", "import type { XyoAddress } from '@xyo-network/address'\n\nexport const uniqueAddresses = (addresses: XyoAddress[], throwOnFalse = false) => {\n const addressesSet = new Set<XyoAddress>()\n for (const address of addresses) {\n if (addressesSet.has(address)) {\n if (throwOnFalse) {\n throw new Error('Duplicate address')\n }\n return false\n }\n addressesSet.add(address)\n }\n return true\n}\n", "import type { AccountInstance } from '@xyo-network/account-model'\n\nimport { uniqueAddresses } from './uniqueAddresses.ts'\n\nexport const uniqueAccounts = (accounts: AccountInstance[], throwOnFalse = false) => {\n return uniqueAddresses(accounts.map(account => account.address), throwOnFalse)\n}\n", "import {\n asHash, difference, exists,\n} from '@xylabs/sdk'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\n\n/**\n * Returns tuples of bound witnesses and their payloads from the supplied payloads. Omits\n * bound witnesses where the payloads were not included in the supplied payloads.\n * @param payloads An array of bound witnesses and payloads\n * @returns An array of tuples of bound witnesses and their payloads\n */\nexport const combinationsByBoundwitness = async (payloads: Payload[]): Promise<[BoundWitness, ...Payload[]][]> => {\n const bws = new Set<BoundWitness>(payloads.filter(x => isBoundWitness(x)))\n const remaining = difference(new Set(payloads), bws)\n const payloadDictionary = await PayloadBuilder.toHashMap([...remaining]) as Record<string, Payload>\n const results = [] as [BoundWitness, ...Payload[]][]\n for (const bw of bws) {\n const { payload_hashes } = bw\n const p = payload_hashes.map((h) => {\n const hashKey = String(asHash(h, true))\n return payloadDictionary[hashKey]\n }).filter(exists)\n if (p.length === payload_hashes.length) {\n const complete = [bw, ...p] as [BoundWitness, ...Payload[]]\n results.push(complete)\n }\n }\n return results\n}\n", "import { asHash, type Hash } from '@xylabs/sdk'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport type { Schema } from '@xyo-network/payload-model'\n\n/**\n * Returns all the possible combinations of payloads for the supplied schemas within the bound witness\n * @param boundwitness The bound witness to search\n * @param schemas The schemas to search for unique combinations of\n * @returns The payload hashes corresponding to the unique combinations of the supplied schemas\n */\nexport const intraBoundwitnessSchemaCombinations = (boundwitness: BoundWitness, schemas: Schema[]): Hash[][] => {\n // Map to store the indices of each element in the source array\n const indexMap: Record<string, number[]> = {}\n\n // Populate the index map with positions of each element\n for (const [index, element] of boundwitness.payload_schemas.entries()) {\n if (!Object.hasOwn(indexMap, element)) {\n indexMap[element] = []\n }\n indexMap[element].push(index)\n }\n\n // Initialize an array to store unique combinations\n let uniqueCombinations = [[]] as number[][]\n\n // Iterate over each element in the target array\n for (const element of schemas) {\n const newCombinations: number[][] = []\n // Get the array of indices for the current element\n const indices = indexMap[element] ?? []\n\n // Iterate over existing combinations\n for (const combination of uniqueCombinations) {\n // Iterate over each index in the indices array\n for (const index of indices) {\n // Check if the index is already in the combination\n if (!combination.includes(index)) {\n const newCombination = [...combination, index]\n // Only add the new combination if its length matches the current target index\n if (newCombination.length === schemas.indexOf(element) + 1) {\n newCombinations.push(newCombination)\n }\n }\n }\n }\n\n // Update the unique combinations for the next iteration\n uniqueCombinations = newCombinations\n }\n\n return uniqueCombinations.map((indexes) => {\n return indexes.map((index) => {\n return asHash(boundwitness.payload_hashes[index], true)\n })\n })\n}\n", "import { assertEx } from '@xylabs/sdk'\nimport type { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport type { Query, WithoutMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../BoundWitnessBuilder.ts'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: TQuery | undefined\n\n override async dataHashableFields(): Promise<WithoutMeta<TBoundWitness>> {\n const fields = {\n ...(await super.dataHashableFields()),\n query: await PayloadBuilder.dataHash(assertEx(this._query, () => 'No Query Specified')),\n } as TBoundWitness\n return { ...fields } as WithoutMeta<TBoundWitness>\n }\n\n query<T extends TQuery>(query: T) {\n this.payload(query)\n this._query = query\n return this\n }\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["asHash", "PayloadBuilder", "asHash", "assertEx", "PayloadBuilder", "PayloadBuilder", "assertEx"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intraBoundwitnessSchemaCombinations.d.ts","sourceRoot":"","sources":["../../src/intraBoundwitnessSchemaCombinations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"intraBoundwitnessSchemaCombinations.d.ts","sourceRoot":"","sources":["../../src/intraBoundwitnessSchemaCombinations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,GAAI,cAAc,YAAY,EAAE,SAAS,MAAM,EAAE,KAAG,IAAI,EAAE,EA6CzG,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/boundwitness-builder",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.4",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"README.md"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@xyo-network/account-model": "~7.0.
|
|
38
|
-
"@xyo-network/
|
|
39
|
-
"@xyo-network/
|
|
40
|
-
"@xyo-network/payload
|
|
41
|
-
"@xyo-network/
|
|
42
|
-
"@xyo-network/payload": "~7.0.
|
|
43
|
-
"@xyo-network/
|
|
37
|
+
"@xyo-network/account-model": "~7.0.4",
|
|
38
|
+
"@xyo-network/boundwitness-model": "~7.0.4",
|
|
39
|
+
"@xyo-network/address": "~7.0.4",
|
|
40
|
+
"@xyo-network/payload": "~7.0.4",
|
|
41
|
+
"@xyo-network/hash": "~7.0.4",
|
|
42
|
+
"@xyo-network/payload-builder": "~7.0.4",
|
|
43
|
+
"@xyo-network/payload-model": "~7.0.4"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@bitauth/libauth": "~3.0.0",
|
|
@@ -48,14 +48,16 @@
|
|
|
48
48
|
"@opentelemetry/sdk-trace-base": "^2.8.0",
|
|
49
49
|
"@scure/base": "~2.2.0",
|
|
50
50
|
"@scure/bip39": "~2.2.0",
|
|
51
|
-
"@xylabs/sdk
|
|
52
|
-
"@xylabs/threads": "
|
|
53
|
-
"@xylabs/toolchain": "~8.3
|
|
54
|
-
"@xylabs/tsconfig": "~8.3
|
|
55
|
-
"@xylabs/vitest-extended": "^
|
|
51
|
+
"@xylabs/sdk": "^7.0.1",
|
|
52
|
+
"@xylabs/threads": "~7.0.1",
|
|
53
|
+
"@xylabs/toolchain": "~8.5.3",
|
|
54
|
+
"@xylabs/tsconfig": "~8.5.3",
|
|
55
|
+
"@xylabs/vitest-extended": "^7.0.1",
|
|
56
56
|
"async-mutex": "^0.5.0",
|
|
57
|
+
"browserslist": "4.28.4",
|
|
57
58
|
"debug": "^4.4.3",
|
|
58
|
-
"eslint": "^10.
|
|
59
|
+
"eslint": "^10.6.0",
|
|
60
|
+
"eslint-import-resolver-typescript": "^4.4.5",
|
|
59
61
|
"ethers": "^6.17.0",
|
|
60
62
|
"hash-wasm": "~4.12.0",
|
|
61
63
|
"observable-fns": "^0.6.1",
|
|
@@ -63,17 +65,17 @@
|
|
|
63
65
|
"vite": "^8.1.0",
|
|
64
66
|
"vitest": "~4.1.9",
|
|
65
67
|
"zod": "^4.4.3",
|
|
66
|
-
"@xyo-network/account": "~7.0.
|
|
67
|
-
"@xyo-network/elliptic": "~7.0.
|
|
68
|
-
"@xyo-network/wallet": "~7.0.
|
|
68
|
+
"@xyo-network/account": "~7.0.4",
|
|
69
|
+
"@xyo-network/elliptic": "~7.0.4",
|
|
70
|
+
"@xyo-network/wallet": "~7.0.4"
|
|
69
71
|
},
|
|
70
72
|
"peerDependencies": {
|
|
71
73
|
"@bitauth/libauth": "~3.0",
|
|
72
74
|
"@opentelemetry/api": "^1.9",
|
|
73
75
|
"@opentelemetry/sdk-trace-base": "^2.7",
|
|
74
76
|
"@scure/base": "~2.2",
|
|
75
|
-
"@xylabs/sdk
|
|
76
|
-
"@xylabs/threads": "^
|
|
77
|
+
"@xylabs/sdk": "^7.0",
|
|
78
|
+
"@xylabs/threads": "^7.0",
|
|
77
79
|
"async-mutex": "^0.5",
|
|
78
80
|
"debug": "^4.4",
|
|
79
81
|
"ethers": "^6.16",
|