@xyo-network/boundwitness-builder 7.0.2 → 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.
@@ -1,4 +1,4 @@
1
- import type { Hash, Hex } from '@xylabs/sdk-js';
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-js").BrandedHex | null;
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-js").BrandedHash>;
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":"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"}
1
+ {"version":3,"file":"BoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessBuilder.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import {
4
4
  assertEx,
5
5
  hexFromArrayBuffer,
6
6
  toArrayBuffer
7
- } from "@xylabs/sdk-js";
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-js";
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-js";
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-js";
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": ";AACA;AAAA,EACE;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAoB;AAAA,OACjC;AASP,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EAAc;AAAA,EAAmB;AAAA,OAC5B;AAEP,SAAS,YAAY,sBAAsB;AAQ3C,SAAS,aAAa;;;ACzBf,IAAM,8BAA8B,CAAC,aAAa,kBAAkB,mBAAmB,iBAAiB;;;ACExG,IAAM,kBAAkB,CAAC,WAAyB,eAAe,UAAU;AAChF,QAAM,eAAe,oBAAI,IAAgB;AACzC,aAAW,WAAW,WAAW;AAC/B,QAAI,aAAa,IAAI,OAAO,GAAG;AAC7B,UAAI,cAAc;AAChB,cAAM,IAAI,MAAM,mBAAmB;AAAA,MACrC;AACA,aAAO;AAAA,IACT;AACA,iBAAa,IAAI,OAAO;AAAA,EAC1B;AACA,SAAO;AACT;;;ACVO,IAAM,iBAAiB,CAAC,UAA6B,eAAe,UAAU;AACnF,SAAO,gBAAgB,SAAS,IAAI,aAAW,QAAQ,OAAO,GAAG,YAAY;AAC/E;;;AHwBA,SAAS,qBAAqB,SAAkB;AAC9C,SAAO;AAAA,EAA4B,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AACrE;AAEO,IAAM,sBAAN,MAAM,6BAGH,eAGN;AAAA,EACF,OAAwB,cAAc,IAAI,MAAM;AAAA,EAExC,YAA+B,CAAC;AAAA,EAChC;AAAA,EACA,UAAyB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,YAAwB,CAAC;AAAA,EAEjC,YAAY,SAAiD;AAC3D,UAAM,EAAE,GAAG,SAAS,QAAQ,mBAAmB,CAAC;AAAA,EAClD;AAAA,EAEA,OAAe,wBAAwB,QAAyD;AAC9F,aAAS,OAAO,gBAAgB,WAAW,OAAO,iBAAiB,QAAQ,MAAM,8BAA8B;AAC/G,aAAS,CAAE,OAAO,eAAmC,SAAS,IAAI,GAAG,MAAM,uBAAuB;AAClG,aAAS,CAAE,OAAO,gBAAsC,SAAS,IAAI,GAAG,MAAM,wBAAwB;AAAA,EACxG;AAAA,EAEA,aAAuB,cACrB,UACA,UAC+C;AAC/C,UAAM,YAAY,SAAS,IAAI,aAAW,QAAQ,QAAQ,YAAY,CAAe;AACrF,UAAM,kBAAkB,SAAS,IAAI,aAAW,QAAQ,gBAAgB,IAAI;AAC5E,UAAM,iBAAiB,WAAW,MAAM,KAAK,OAAO,QAAQ,IAAI,CAAC;AACjE,UAAM,kBAAkB,UAAU,IAAI,CAAC,EAAE,OAAO,MAAM,MAAM,KAAK,CAAC;AAClE,WAAO;AAAA,MACL;AAAA,MAAW;AAAA,MAAgB;AAAA,MAAiB;AAAA,IAC9C;AAAA,EACF;AAAA,EAEA,OAAiB,UAAkC,SAAY,SAAqB;AAClF,WAAO,QAAQ,YAAY,KAAK,aAAa,SAAS,OAAO,CAAC;AAAA,EAChE;AAAA,EAEA,aAAuB,WAAW,UAA6B,UAAmC;AAChG,UAAM,YAAY,cAAc,QAAQ;AACxC,UAAM,sBAAsB,UAAU,IAAI,aAAW,QAAQ,iBAAiB;AAC9E,WAAO,MAAM,QAAQ,IAAI,SAAS,IAAI,OAAO,SAAS,UAAU;AAC9D,YAAM,YAAY,MAAM,QAAQ,KAAK,WAAW,oBAAoB,KAAK,CAAC;AAC1E,aAAO,mBAAmB,UAAU,CAAC,CAAC;AAAA,IACxC,CAAC,CAAC;AAAA,EACJ;AAAA,EAEA,OAAO,aAAqC,SAAY,SAAqB;AAC3E,UAAM,QAAQ,QAAQ,UAAU,QAAQ,OAAO;AAC/C,QAAI,UAAU,IAAI;AAChB,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACnC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,aAAqC,cAAiB,SAAqB;AAChF,WAAO,OAAO,aAAa,gBAAgB,KAAK,aAAa,cAAc,OAAO,CAAC,CAAC,GAAG,YAAY;AAAA,EACrG;AAAA,EAEA,IAAc,YAA0B;AACtC,mBAAe,KAAK,WAAW,IAAI;AACnC,WAAO,KAAK,UAAU,IAAI,aAAW,QAAQ,QAAQ,YAAY,CAAC;AAAA,EACpE;AAAA,EAEA,IAAc,iBAA2B;AACvC,WACE,KAAK,mBACF,KAAK,UAAU,IAAI,CAAC,YAAY;AACjC,aAAO,SAAS,QAAQ,QAAQ,MAAM,qBAAqB,OAAO,CAAC;AAAA,IACrE,CAAC;AAAA,EAEL;AAAA,EAEA,IAAc,oBAAgD;AAC5D,WAAO,KAAK,UAAU,IAAI,aAAW,QAAQ,qBAAqB,IAAI;AAAA,EACxE;AAAA,EAEA,IAAc,iBAAkC;AAC9C,WAAO,KAAK,UAAU,IAAI,aAAW,QAAQ,gBAAgB,IAAI;AAAA,EACnE;AAAA,EAEA,MAAgB,OAAuB;AACrC,mBAAe,KAAK,WAAW,IAAI;AACnC,UAAM,YAAY,cAAc,MAAM,KAAK,SAAS,CAAC;AACrD,WAAO,MAAM,QAAQ,IAAI,KAAK,UAAU,IAAI,OAAO,YAAY;AAC7D,YAAM,YAAY,MAAM,QAAQ,KAAK,SAAS;AAC9C,aAAO,mBAAmB,UAAU,CAAC,CAAC;AAAA,IACxC,CAAC,CAAC;AAAA,EACJ;AAAA,EAKA,MAAe,MAAM,OAAO,MAA2E;AACrG,WAAO,MAAM,qBAAoB,YAAY,aAAa,YAAY;AACpE,YAAM,qBAAqB,MAAM,KAAK,mBAAmB;AACzD,YAAM,cAAc,OAAO,MAAM,KAAK,KAAK,IAAI,KAAK,UAAU,IAAI,MAAM,IAAI;AAE5E,YAAM,MAAM;AAAA,QACV,GAAG,KAAK;AAAA,QAAO,GAAG;AAAA,QAAoB,GAAG,KAAK;AAAA,QAAS;AAAA,MACzD;AACA,aAAO;AAAA,QACL;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,WAAW;AACf,UAAM,qBAAqB,MAAM,KAAK,mBAAmB;AACzD,UAAM,OAAO,MAAM,aAAa,KAAK,kBAAkB;AACvD,WAAO;AAAA,EACT;AAAA,EAEA,MAAe,qBAA0D;AACvE,UAAM,kBAAoE,MAAM,qBAAoB,cAAc,KAAK,WAAW,KAAK,SAAS;AAChJ,yBAAoB,wBAAwB,eAAe;AAC3D,UAAM,SAAuC;AAAA,MAC3C,GAAG,eAAe,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,MAC7C,GAAG;AAAA,IACL;AACA,WAAO,MAAM,qBAAoB,mBAAkC,KAAK,SAAS,MAAM;AAAA,EACzF;AAAA,EAEA,MAAM,SAAuB;AAC3B,aAAS,KAAK,iBAAiB,QAAW,MAAM,4CAA4C;AAC5F,QAAI,SAAS;AACX,WAAK,QAAQ,KAAK,SAAS,WAAW,OAAO,CAAC,CAAC;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,QAAiC;AACtC,QAAI,QAAQ;AACV,iBAAW,SAAS,QAAQ;AAC1B,YAAI,UAAU,MAAM;AAClB,eAAK,MAAM,KAAK;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAES,OAAO,QACkE;AAEhF,UAAM,QAAQ,gBAAgB,MAAM;AACpC,eAAW,SAAS,6BAA6B;AAC/C,aAAO,MAAM,KAAK;AAAA,IACpB;AACA,UAAM,qBAAqB,kBAAkB,KAAK;AAClD,UAAM,gBAAgB,WAAW,kBAAkB;AACnD,UAAM,oBAAoB,qBAAoB,eAAe,aAAa;AAE1E,SAAK,UAAU,qBAAoB,gBAAgB,iBAAiB;AACpE,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,QAAgB,QAAkB;AACvC,aAAS,KAAK,SAAS,WAAW,GAAG,MAAM,8CAA8C;AACzF,SAAK,iBAAiB;AACtB,SAAK,kBAAkB;AACvB,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,SAAoB;AAC1B,aAAS,KAAK,mBAAmB,QAAW,MAAM,8CAA8C;AAChG,QAAI,SAAS;AACX,WAAK,UAAU,KAAK,SAAS,WAAqB,OAAO,CAAC,CAAC;AAAA,IAC7D;AACA,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,UAAgC;AACvC,QAAI;AACF,iBAAW,WAAW,UAAU;AAC9B,YAAI,YAAY,MAAM;AACpB,eAAK,QAAQ,OAAO;AAAA,QACtB;AAAA,MACF;AACF,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,SAA0B;AAC/B,mBAAe,CAAC,GAAG,KAAK,WAAW,OAAO,GAAG,IAAI;AACjD,SAAK,WAAW,KAAK,OAAO;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,UAA6B;AACnC,mBAAe,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,GAAG,IAAI;AACrD,SAAK,WAAW,KAAK,GAAG,QAAQ;AAChC,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,aAAmB;AAC7B,SAAK,QAAQ;AAAA,MACX,GAAG,KAAK;AAAA,MACR,cAAc;AAAA,IAChB;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,QAAQ,SAA0B;AAChC,SAAK,WAAW,KAAK,OAAO;AAC5B,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,UAAU,UAA6B;AACrC,SAAK,WAAW,KAAK,GAAG,QAAQ;AAChC,WAAO;AAAA,EACT;AACF;;;AI9PA;AAAA,EACE,UAAAA;AAAA,EAAQ;AAAA,EAAY;AAAA,OACf;AAEP,SAAS,sBAAsB;AAC/B,SAAS,kBAAAC,uBAAsB;AASxB,IAAM,6BAA6B,OAAO,aAAiE;AAChH,QAAM,MAAM,IAAI,IAAkB,SAAS,OAAO,OAAK,eAAe,CAAC,CAAC,CAAC;AACzE,QAAM,YAAY,WAAW,IAAI,IAAI,QAAQ,GAAG,GAAG;AACnD,QAAM,oBAAoB,MAAMA,gBAAe,UAAU,CAAC,GAAG,SAAS,CAAC;AACvE,QAAM,UAAU,CAAC;AACjB,aAAW,MAAM,KAAK;AACpB,UAAM,EAAE,eAAe,IAAI;AAC3B,UAAM,IAAI,eAAe,IAAI,CAAC,MAAM;AAClC,YAAM,UAAU,OAAOD,QAAO,GAAG,IAAI,CAAC;AACtC,aAAO,kBAAkB,OAAO;AAAA,IAClC,CAAC,EAAE,OAAO,MAAM;AAChB,QAAI,EAAE,WAAW,eAAe,QAAQ;AACtC,YAAM,WAAW,CAAC,IAAI,GAAG,CAAC;AAC1B,cAAQ,KAAK,QAAQ;AAAA,IACvB;AAAA,EACF;AACA,SAAO;AACT;;;AC/BA,SAAS,UAAAE,eAAyB;AAU3B,IAAM,sCAAsC,CAAC,cAA4B,YAAgC;AAE9G,QAAM,WAAqC,CAAC;AAG5C,aAAW,CAAC,OAAO,OAAO,KAAK,aAAa,gBAAgB,QAAQ,GAAG;AACrE,QAAI,CAAC,OAAO,OAAO,UAAU,OAAO,GAAG;AACrC,eAAS,OAAO,IAAI,CAAC;AAAA,IACvB;AACA,aAAS,OAAO,EAAE,KAAK,KAAK;AAAA,EAC9B;AAGA,MAAI,qBAAqB,CAAC,CAAC,CAAC;AAG5B,aAAW,WAAW,SAAS;AAC7B,UAAM,kBAA8B,CAAC;AAErC,UAAM,UAAU,SAAS,OAAO,KAAK,CAAC;AAGtC,eAAW,eAAe,oBAAoB;AAE5C,iBAAW,SAAS,SAAS;AAE3B,YAAI,CAAC,YAAY,SAAS,KAAK,GAAG;AAChC,gBAAM,iBAAiB,CAAC,GAAG,aAAa,KAAK;AAE7C,cAAI,eAAe,WAAW,QAAQ,QAAQ,OAAO,IAAI,GAAG;AAC1D,4BAAgB,KAAK,cAAc;AAAA,UACrC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAGA,yBAAqB;AAAA,EACvB;AAEA,SAAO,mBAAmB,IAAI,CAAC,YAAY;AACzC,WAAO,QAAQ,IAAI,CAAC,UAAU;AAC5B,aAAOA,QAAO,aAAa,eAAe,KAAK,GAAG,IAAI;AAAA,IACxD,CAAC;AAAA,EACH,CAAC;AACH;;;ACvDA,SAAS,YAAAC,iBAAgB;AAEzB,SAAS,kBAAAC,uBAAsB;AAKxB,IAAM,2BAAN,cAGG,oBAAmC;AAAA,EACnC;AAAA,EAER,MAAe,qBAA0D;AACvE,UAAM,SAAS;AAAA,MACb,GAAI,MAAM,MAAM,mBAAmB;AAAA,MACnC,OAAO,MAAMC,gBAAe,SAASC,UAAS,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAAA,IACxF;AACA,WAAO,EAAE,GAAG,OAAO;AAAA,EACrB;AAAA,EAEA,MAAwB,OAAU;AAChC,SAAK,QAAQ,KAAK;AAClB,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AACF;",
6
6
  "names": ["asHash", "PayloadBuilder", "asHash", "assertEx", "PayloadBuilder", "PayloadBuilder", "assertEx"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import { type Hash } from '@xylabs/sdk-js';
1
+ import { type Hash } from '@xylabs/sdk';
2
2
  import type { BoundWitness } from '@xyo-network/boundwitness-model';
3
3
  import type { Schema } from '@xyo-network/payload-model';
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"intraBoundwitnessSchemaCombinations.d.ts","sourceRoot":"","sources":["../../src/intraBoundwitnessSchemaCombinations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAClD,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"}
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.2",
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.2",
38
- "@xyo-network/address": "~7.0.2",
39
- "@xyo-network/boundwitness-model": "~7.0.2",
40
- "@xyo-network/payload-builder": "~7.0.2",
41
- "@xyo-network/payload-model": "~7.0.2",
42
- "@xyo-network/payload": "~7.0.2",
43
- "@xyo-network/hash": "~7.0.2"
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-js": "^6.1.4",
52
- "@xylabs/threads": "^6.1.4",
53
- "@xylabs/toolchain": "~8.3.0",
54
- "@xylabs/tsconfig": "~8.3.0",
55
- "@xylabs/vitest-extended": "^6.1.4",
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.5.0",
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/elliptic": "~7.0.2",
67
- "@xyo-network/account": "~7.0.2",
68
- "@xyo-network/wallet": "~7.0.2"
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-js": "^6.0",
76
- "@xylabs/threads": "^6.0",
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",