@xyo-network/boundwitness-model 5.1.24 → 5.2.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.
@@ -1,11 +1,11 @@
1
- import type { Hash } from '@xylabs/hex';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
2
  import type { WithStorageMeta } from '@xyo-network/payload-model';
3
3
  import type { BoundWitness } from './BoundWitness/index.ts';
4
4
  export type QueryBoundWitnessFields = {
5
5
  error_hashes?: Hash[];
6
6
  query: Hash;
7
7
  };
8
- export type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>;
8
+ export type UnsignedQueryBoundWitness = BoundWitness & QueryBoundWitnessFields;
9
9
  export type QueryBoundWitness = UnsignedQueryBoundWitness;
10
10
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
11
11
  export declare const isQueryBoundWitnessWithStorageMeta: (x?: unknown) => x is WithStorageMeta<QueryBoundWitness>;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,kCAAkC,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAA+C,CAAA"}
1
+ {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,uBAAuB,CAAA;AAE9E,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,kCAAkC,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAA+C,CAAA"}
@@ -1,6 +1,42 @@
1
1
  // src/BoundWitness/BoundWitness.ts
2
- var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
- var asBlock = (bw) => bw;
2
+ import {
3
+ AddressZod,
4
+ HashZod,
5
+ HexZod
6
+ } from "@xylabs/sdk-js";
7
+ import {
8
+ PayloadZod,
9
+ SchemaZod,
10
+ StorageMetaZod
11
+ } from "@xyo-network/payload-model";
12
+ import * as z from "zod";
13
+
14
+ // src/BoundWitness/BoundWitnessSchema.ts
15
+ var BoundWitnessSchema = "network.xyo.boundwitness";
16
+
17
+ // src/BoundWitness/BoundWitness.ts
18
+ var BoundWitnessRequiredFieldsZod = z.object({
19
+ addresses: z.array(AddressZod),
20
+ payload_hashes: z.array(HashZod),
21
+ payload_schemas: z.array(SchemaZod),
22
+ previous_hashes: z.array(HashZod.nullable())
23
+ });
24
+ var BoundWitnessMetaZod = z.object({
25
+ $destination: AddressZod.optional(),
26
+ $sourceQuery: HashZod.optional(),
27
+ $signatures: z.array(z.union([HexZod, z.null()]))
28
+ });
29
+ var BoundWitnessZod = PayloadZod.extend({ schema: z.literal(BoundWitnessSchema) }).extend(BoundWitnessRequiredFieldsZod.shape).extend(BoundWitnessMetaZod.shape).refine((data) => data.$signatures.length === data.addresses.length, { message: "$signatures length must equal addresses length" });
30
+ var AnyBoundWitnessZod = BoundWitnessZod.catchall(z.any());
31
+ var UnsignedBoundWitnessZod = BoundWitnessZod.refine((data) => data.$signatures.includes(null), { message: "all $signatures must be null" });
32
+ var AnyUnsignedBoundWitnessZod = UnsignedBoundWitnessZod.catchall(z.any());
33
+ var UnsignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessZod.safeExtend(BoundWitnessRequiredFieldsZod.shape).safeExtend(BoundWitnessMetaZod.shape).safeExtend(StorageMetaZod.shape);
34
+ var SignedZod = z.object({ $signatures: z.array(HexZod) });
35
+ var UnsignedZod = z.object({ $signatures: z.array(z.null()) });
36
+ var SignedBoundWitnessZod = BoundWitnessZod.refine((data) => !data.$signatures.includes(null), { message: "all $signatures must not be null" });
37
+ var SignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod;
38
+ var AnySignedBoundWitnessZod = UnsignedBoundWitnessZod.catchall(z.any());
39
+ var AnySignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod.catchall(z.any());
4
40
 
5
41
  // src/BoundWitness/BoundWitnessJsonSchema.ts
6
42
  var BoundWitnessJsonSchema = () => {
@@ -19,11 +55,8 @@ var BoundWitnessJsonSchema = () => {
19
55
  };
20
56
  };
21
57
 
22
- // src/BoundWitness/BoundWitnessSchema.ts
23
- var BoundWitnessSchema = "network.xyo.boundwitness";
24
-
25
58
  // src/isBoundWitness.ts
26
- import { AsObjectFactory } from "@xylabs/object";
59
+ import { AsObjectFactory } from "@xylabs/sdk-js";
27
60
  import {
28
61
  isPayloadOfSchemaType,
29
62
  isStorageMeta,
@@ -48,14 +81,23 @@ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
48
81
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
49
82
  var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
50
83
  export {
84
+ AnyBoundWitnessZod,
85
+ AnySignedBoundWitnessWithStorageMetaZod,
86
+ AnySignedBoundWitnessZod,
87
+ AnyUnsignedBoundWitnessZod,
51
88
  BoundWitnessJsonSchema,
52
89
  BoundWitnessSchema,
53
- asBlock,
90
+ BoundWitnessZod,
91
+ SignedBoundWitnessWithStorageMetaZod,
92
+ SignedBoundWitnessZod,
93
+ SignedZod,
94
+ UnsignedBoundWitnessWithStorageMetaZod,
95
+ UnsignedBoundWitnessZod,
96
+ UnsignedZod,
54
97
  asBoundWitness,
55
98
  asBoundWitnessWithStorageMeta,
56
99
  asOptionalBoundWitness,
57
100
  asOptionalBoundWitnessWithStorageMeta,
58
- hasBlock,
59
101
  isBoundWitness,
60
102
  isBoundWitnessWithStorageMeta,
61
103
  isQueryBoundWitness,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BoundWitness/BoundWitness.ts","../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["import type {\n Address, Hash, Hex,\n} from '@xylabs/hex'\nimport type { EmptyObject, JsonObject } from '@xylabs/object'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\n\nimport type { BoundWitnessSchema } from './BoundWitnessSchema.ts'\n\nexport interface BoundWitnessRequiredFields {\n /** @field Array of signatures by the accounts that are listed in addresses */\n addresses: Address[]\n payload_hashes: Hash[]\n payload_schemas: Schema[]\n previous_hashes: (Hash | null)[]\n}\n\nexport interface BoundWitnessMeta {\n /**\n * @field The address to which the query is directed\n */\n $destination?: Address\n /**\n * @field The query that initiated the bound witness\n */\n $sourceQuery?: Hash\n}\n\nexport interface BoundWitnessBlockField {\n /** @field sequential number (if this boundwitness is part of a multi-party chain) */\n block: number\n}\n\nexport interface BoundWitnessChainField {\n /** @field unique id of a multi-party chain (usually staking contract address) */\n chain: Hex\n}\n\nexport interface BoundWitnessOptionalFields extends Partial<BoundWitnessBlockField>, Partial<BoundWitnessChainField> {\n root: Hash\n}\n\nexport interface BoundWitnessFields extends BoundWitnessRequiredFields, Partial<BoundWitnessOptionalFields> {}\n\nexport type UnsignedBoundWitness<T extends EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Unsigned<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & {\n $signatures: Hex[]\n}\n\nexport type Signed<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & {\n $signatures: Hex[]\n}\n\nexport type SignedBoundWitness = Signed<UnsignedBoundWitness>\n\nexport type WithBlock = BoundWitness & BoundWitnessBlockField\n\nexport const hasBlock = (bw: BoundWitness): bw is WithBlock => bw.block !== undefined && typeof bw.block === 'string'\nexport const asBlock = (bw: BoundWitness): WithBlock => bw as WithBlock\n\nexport type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>\n\nexport type AnyBoundWitness = BoundWitness<JsonObject>\n","// Should type as JSONSchemaType<BoundWitness> once ajv/eslint issue is fixed\n// https://github.com/microsoft/TypeScript/issues/44851\n\nexport const BoundWitnessJsonSchema = () => {\n return {\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: {\n addresses: { items: { type: 'string' }, type: 'array' },\n payload_hashes: { items: { type: 'string' }, type: 'array' },\n payload_schemas: { items: { type: 'string' }, type: 'array' },\n previous_hashes: { items: { nullable: true, type: 'string' }, type: 'array' },\n schema: { type: 'string' },\n },\n required: ['addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes', 'schema'],\n type: 'object',\n }\n}\n","export const BoundWitnessSchema = 'network.xyo.boundwitness' as const\nexport type BoundWitnessSchema = typeof BoundWitnessSchema\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type {\n BoundWitness, Signed, Unsigned,\n} from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\n\nexport const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)\n\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\n// TODO: Use AsObjectFactory here to match standard pattern\n// TODO: Other as identity functions throw if not valid, this one returns undefined with is more of a asOptional behavior\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\nexport const asOptionalBoundWitness = AsObjectFactory.createOptional<BoundWitness>(isBoundWitness)\n\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\nexport const asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\nexport const asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\n\nexport function isSigned(value: unknown): value is Signed\nexport function isSigned<T extends Unsigned>(value: T): value is Signed<T>\nexport function isSigned(value: unknown): value is Signed {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n}\n\nexport function isUnsigned(value: unknown): value is Unsigned\nexport function isUnsigned<T extends BoundWitness>(value: T): value is Unsigned<T>\nexport function isUnsigned(value: unknown): value is Unsigned {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length === 0\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { isBoundWitness } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessFields = {\n error_hashes?: Hash[]\n query: Hash\n}\n\nexport type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>\n\nexport type QueryBoundWitness = UnsignedQueryBoundWitness\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\nexport const isQueryBoundWitnessWithStorageMeta = (x?: unknown): x is WithStorageMeta<QueryBoundWitness> => isQueryBoundWitness(x) && isStorageMeta(x)\n"],"mappings":";AA4DO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;AC1DjD,IAAM,yBAAyB,MAAM;AAC1C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,sBAAsB;AAAA,IACtB,YAAY;AAAA,MACV,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MACtD,gBAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MAC3D,iBAAiB,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MAC5D,iBAAiB,EAAE,OAAO,EAAE,UAAU,MAAM,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MAC5E,QAAQ,EAAE,MAAM,SAAS;AAAA,IAC3B;AAAA,IACA,UAAU,CAAC,aAAa,kBAAkB,mBAAmB,mBAAmB,QAAQ;AAAA,IACxF,MAAM;AAAA,EACR;AACF;;;ACjBO,IAAM,qBAAqB;;;ACAlC,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAOA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAE/H,IAAM,kBAAkB,uBAAqC,kBAAkB;AAI/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAEtC,IAAM,yBAAyB,gBAAgB,eAA6B,cAAc;AAE1F,IAAM,gCAAgC,CAAC,UAC5C,sBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAChF,IAAM,gCAAgC,gBAAgB,eAA8C,6BAA6B;AACjI,IAAM,wCAAwC,gBAAgB,eAA8C,6BAA6B;AAIzI,SAAS,SAAS,OAAiC;AACxD,SAAO,eAAe,KAAK,KACtB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAChC;AAIO,SAAS,WAAW,OAAmC;AAC5D,SAAO,eAAe,KAAK,KACtB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,WAAW;AAClC;;;ACvCA,SAAS,iBAAAA,sBAAqB;AAcvB,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["isStorageMeta","isStorageMeta"]}
1
+ {"version":3,"sources":["../../src/BoundWitness/BoundWitness.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["import {\n AddressZod, HashZod, HexZod,\n} from '@xylabs/sdk-js'\nimport {\n PayloadZod, SchemaZod, StorageMetaZod,\n} from '@xyo-network/payload-model'\nimport * as z from 'zod'\n\nimport { BoundWitnessSchema } from './BoundWitnessSchema.ts'\n\nconst BoundWitnessRequiredFieldsZod = z.object({\n addresses: z.array(AddressZod),\n payload_hashes: z.array(HashZod),\n payload_schemas: z.array(SchemaZod),\n previous_hashes: z.array(HashZod.nullable()),\n})\n\nconst BoundWitnessMetaZod = z.object({\n $destination: AddressZod.optional(),\n $sourceQuery: HashZod.optional(),\n $signatures: z.array(z.union([HexZod, z.null()])),\n})\n\nexport const BoundWitnessZod = PayloadZod\n .extend({ schema: z.literal(BoundWitnessSchema) })\n .extend(BoundWitnessRequiredFieldsZod.shape)\n .extend(BoundWitnessMetaZod.shape)\n .refine(data => data.$signatures.length === data.addresses.length, { message: '$signatures length must equal addresses length' })\n\nexport type BoundWitness = z.infer<typeof BoundWitnessZod>\n\nexport const AnyBoundWitnessZod = BoundWitnessZod\n .catchall(z.any())\n\nexport type AnyBoundWitness = z.infer<typeof AnyBoundWitnessZod>\n\nexport const UnsignedBoundWitnessZod = BoundWitnessZod.refine(data => data.$signatures.includes(null), { message: 'all $signatures must be null' })\n\nexport type UnsignedBoundWitness = z.infer<typeof UnsignedBoundWitnessZod>\n\nexport const AnyUnsignedBoundWitnessZod = UnsignedBoundWitnessZod\n .catchall(z.any())\n\nexport type AnyUnsignedBoundWitness = z.infer<typeof AnyUnsignedBoundWitnessZod>\n\nexport const UnsignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessZod\n .safeExtend(BoundWitnessRequiredFieldsZod.shape)\n .safeExtend(BoundWitnessMetaZod.shape)\n .safeExtend(StorageMetaZod.shape)\n\nexport const SignedZod = z.object({ $signatures: z.array(HexZod) })\nexport const UnsignedZod = z.object({ $signatures: z.array(z.null()) })\n\nexport const SignedBoundWitnessZod = BoundWitnessZod.refine(data => !data.$signatures.includes(null), { message: 'all $signatures must not be null' })\n\nexport const SignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod\n\nexport const AnySignedBoundWitnessZod = UnsignedBoundWitnessZod.catchall(z.any())\n\nexport const AnySignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod.catchall(z.any())\n\nexport type Unsigned<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & z.infer<typeof UnsignedZod>\n\nexport type Signed<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & z.infer<typeof SignedZod>\n","export const BoundWitnessSchema = 'network.xyo.boundwitness' as const\nexport type BoundWitnessSchema = typeof BoundWitnessSchema\n","// Should type as JSONSchemaType<BoundWitness> once ajv/eslint issue is fixed\n// https://github.com/microsoft/TypeScript/issues/44851\n\nexport const BoundWitnessJsonSchema = () => {\n return {\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: {\n addresses: { items: { type: 'string' }, type: 'array' },\n payload_hashes: { items: { type: 'string' }, type: 'array' },\n payload_schemas: { items: { type: 'string' }, type: 'array' },\n previous_hashes: { items: { nullable: true, type: 'string' }, type: 'array' },\n schema: { type: 'string' },\n },\n required: ['addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes', 'schema'],\n type: 'object',\n }\n}\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type {\n BoundWitness, Signed, Unsigned,\n} from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\n\nexport const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)\n\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\n// TODO: Use AsObjectFactory here to match standard pattern\n// TODO: Other as identity functions throw if not valid, this one returns undefined with is more of a asOptional behavior\nexport const asBoundWitness = <T extends BoundWitness = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\nexport const asOptionalBoundWitness = AsObjectFactory.createOptional<BoundWitness>(isBoundWitness)\n\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\nexport const asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\nexport const asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\n\nexport function isSigned(value: unknown): value is Signed\nexport function isSigned<T extends Unsigned>(value: T): value is Signed<T>\nexport function isSigned(value: unknown): value is Signed {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n}\n\nexport function isUnsigned(value: unknown): value is Unsigned\nexport function isUnsigned<T extends BoundWitness>(value: T): value is Unsigned<T>\nexport function isUnsigned(value: unknown): value is Unsigned {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length === 0\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { isBoundWitness } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessFields = {\n error_hashes?: Hash[]\n query: Hash\n}\n\nexport type UnsignedQueryBoundWitness = BoundWitness & QueryBoundWitnessFields\n\nexport type QueryBoundWitness = UnsignedQueryBoundWitness\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\nexport const isQueryBoundWitnessWithStorageMeta = (x?: unknown): x is WithStorageMeta<QueryBoundWitness> => isQueryBoundWitness(x) && isStorageMeta(x)\n"],"mappings":"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","names":["isStorageMeta","isStorageMeta"]}
@@ -1,14 +1,48 @@
1
1
  import type { WithStorageMeta } from '@xyo-network/payload-model';
2
2
  import type { BoundWitness, Signed, Unsigned } from './BoundWitness/index.ts';
3
3
  export declare const isBoundWitness: (value: unknown) => value is BoundWitness;
4
- export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
5
- export declare const asBoundWitness: <T extends BoundWitness<{
6
- schema: string;
7
- }> = BoundWitness>(payload?: unknown) => T | undefined;
8
- export declare const asOptionalBoundWitness: (value: import(".store/@xylabs-promise-npm-5.0.37-e0d0dd2b09/package").AnyNonPromise) => BoundWitness | undefined;
4
+ export declare const notBoundWitness: (x?: unknown | null) => x is {
5
+ schema: "network.xyo.boundwitness";
6
+ addresses: import("@xylabs/sdk-js").Address[];
7
+ payload_hashes: import("@xylabs/sdk-js").Hash[];
8
+ payload_schemas: string[];
9
+ previous_hashes: (import("@xylabs/sdk-js").Hash | null)[];
10
+ $signatures: (import("@xylabs/sdk-js").Hex | null)[];
11
+ $destination?: import("@xylabs/sdk-js").Address | undefined;
12
+ $sourceQuery?: import("@xylabs/sdk-js").Hash | undefined;
13
+ };
14
+ export declare const asBoundWitness: <T extends BoundWitness = BoundWitness>(payload?: unknown) => T | undefined;
15
+ export declare const asOptionalBoundWitness: (value: import("@xylabs/sdk-js").AnyNonPromise) => {
16
+ schema: "network.xyo.boundwitness";
17
+ addresses: import("@xylabs/sdk-js").Address[];
18
+ payload_hashes: import("@xylabs/sdk-js").Hash[];
19
+ payload_schemas: string[];
20
+ previous_hashes: (import("@xylabs/sdk-js").Hash | null)[];
21
+ $signatures: (import("@xylabs/sdk-js").Hex | null)[];
22
+ $destination?: import("@xylabs/sdk-js").Address | undefined;
23
+ $sourceQuery?: import("@xylabs/sdk-js").Hash | undefined;
24
+ } | undefined;
9
25
  export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
10
- export declare const asBoundWitnessWithStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.37-e0d0dd2b09/package").AnyNonPromise) => WithStorageMeta<BoundWitness> | undefined;
11
- export declare const asOptionalBoundWitnessWithStorageMeta: (value: import(".store/@xylabs-promise-npm-5.0.37-e0d0dd2b09/package").AnyNonPromise) => WithStorageMeta<BoundWitness> | undefined;
26
+ export declare const asBoundWitnessWithStorageMeta: (value: import("@xylabs/sdk-js").AnyNonPromise) => WithStorageMeta<{
27
+ schema: "network.xyo.boundwitness";
28
+ addresses: import("@xylabs/sdk-js").Address[];
29
+ payload_hashes: import("@xylabs/sdk-js").Hash[];
30
+ payload_schemas: string[];
31
+ previous_hashes: (import("@xylabs/sdk-js").Hash | null)[];
32
+ $signatures: (import("@xylabs/sdk-js").Hex | null)[];
33
+ $destination?: import("@xylabs/sdk-js").Address | undefined;
34
+ $sourceQuery?: import("@xylabs/sdk-js").Hash | undefined;
35
+ }> | undefined;
36
+ export declare const asOptionalBoundWitnessWithStorageMeta: (value: import("@xylabs/sdk-js").AnyNonPromise) => WithStorageMeta<{
37
+ schema: "network.xyo.boundwitness";
38
+ addresses: import("@xylabs/sdk-js").Address[];
39
+ payload_hashes: import("@xylabs/sdk-js").Hash[];
40
+ payload_schemas: string[];
41
+ previous_hashes: (import("@xylabs/sdk-js").Hash | null)[];
42
+ $signatures: (import("@xylabs/sdk-js").Hex | null)[];
43
+ $destination?: import("@xylabs/sdk-js").Address | undefined;
44
+ $sourceQuery?: import("@xylabs/sdk-js").Hash | undefined;
45
+ }> | undefined;
12
46
  export declare function isSigned(value: unknown): value is Signed;
13
47
  export declare function isSigned<T extends Unsigned>(value: T): value is Signed<T>;
14
48
  export declare function isUnsigned(value: unknown): value is Unsigned;
@@ -1 +1 @@
1
- {"version":3,"file":"isBoundWitness.d.ts","sourceRoot":"","sources":["../../src/isBoundWitness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAKjE,OAAO,KAAK,EACV,YAAY,EAAE,MAAM,EAAE,QAAQ,EAC/B,MAAM,yBAAyB,CAAA;AAGhC,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AAEvI,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAIvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,UAAU,OAAO,kBACrD,CAAA;AAEtD,eAAO,MAAM,sBAAsB,mHAA+D,CAAA;AAElG,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B,oIAA+F,CAAA;AACzI,eAAO,MAAM,qCAAqC,oIAA+F,CAAA;AAEjJ,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAA;AACzD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAO1E,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAA;AAC7D,wBAAgB,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"isBoundWitness.d.ts","sourceRoot":"","sources":["../../src/isBoundWitness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAKjE,OAAO,KAAK,EACV,YAAY,EAAE,MAAM,EAAE,QAAQ,EAC/B,MAAM,yBAAyB,CAAA;AAGhC,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AAEvI,eAAO,MAAM,eAAe;;;;;;;;;CAA2D,CAAA;AAIvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,UAAU,OAAO,kBACjC,CAAA;AAEtD,eAAO,MAAM,sBAAsB;;;;;;;;;aAA+D,CAAA;AAElG,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B;;;;;;;;;cAA+F,CAAA;AACzI,eAAO,MAAM,qCAAqC;;;;;;;;;cAA+F,CAAA;AAEjJ,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAA;AACzD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAO1E,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAA;AAC7D,wBAAgB,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA"}
@@ -1,48 +1,113 @@
1
- import type { Address, Hash, Hex } from '@xylabs/hex';
2
- import type { EmptyObject, JsonObject } from '@xylabs/object';
3
- import type { Payload, Schema } from '@xyo-network/payload-model';
4
- import type { BoundWitnessSchema } from './BoundWitnessSchema.ts';
5
- export interface BoundWitnessRequiredFields {
6
- /** @field Array of signatures by the accounts that are listed in addresses */
7
- addresses: Address[];
8
- payload_hashes: Hash[];
9
- payload_schemas: Schema[];
10
- previous_hashes: (Hash | null)[];
11
- }
12
- export interface BoundWitnessMeta {
13
- /**
14
- * @field The address to which the query is directed
15
- */
16
- $destination?: Address;
17
- /**
18
- * @field The query that initiated the bound witness
19
- */
20
- $sourceQuery?: Hash;
21
- }
22
- export interface BoundWitnessBlockField {
23
- /** @field sequential number (if this boundwitness is part of a multi-party chain) */
24
- block: number;
25
- }
26
- export interface BoundWitnessChainField {
27
- /** @field unique id of a multi-party chain (usually staking contract address) */
28
- chain: Hex;
29
- }
30
- export interface BoundWitnessOptionalFields extends Partial<BoundWitnessBlockField>, Partial<BoundWitnessChainField> {
31
- root: Hash;
32
- }
33
- export interface BoundWitnessFields extends BoundWitnessRequiredFields, Partial<BoundWitnessOptionalFields> {
34
- }
35
- export type UnsignedBoundWitness<T extends EmptyObject | void = void> = Payload<T extends void ? BoundWitnessFields : BoundWitnessFields & T, BoundWitnessSchema> & BoundWitnessMeta;
36
- export type Unsigned<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & {
37
- $signatures: Hex[];
38
- };
39
- export type Signed<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & {
40
- $signatures: Hex[];
41
- };
42
- export type SignedBoundWitness = Signed<UnsignedBoundWitness>;
43
- export type WithBlock = BoundWitness & BoundWitnessBlockField;
44
- export declare const hasBlock: (bw: BoundWitness) => bw is WithBlock;
45
- export declare const asBlock: (bw: BoundWitness) => WithBlock;
46
- export type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>;
47
- export type AnyBoundWitness = BoundWitness<JsonObject>;
1
+ import * as z from 'zod';
2
+ export declare const BoundWitnessZod: z.ZodObject<{
3
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
4
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
5
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
6
+ payload_schemas: z.ZodArray<z.ZodString>;
7
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
8
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
9
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
10
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
11
+ }, z.core.$strip>;
12
+ export type BoundWitness = z.infer<typeof BoundWitnessZod>;
13
+ export declare const AnyBoundWitnessZod: z.ZodObject<{
14
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
15
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
16
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
17
+ payload_schemas: z.ZodArray<z.ZodString>;
18
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
19
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
20
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
21
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
22
+ }, z.core.$catchall<z.ZodAny>>;
23
+ export type AnyBoundWitness = z.infer<typeof AnyBoundWitnessZod>;
24
+ export declare const UnsignedBoundWitnessZod: z.ZodObject<{
25
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
26
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
27
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
28
+ payload_schemas: z.ZodArray<z.ZodString>;
29
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
30
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
31
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
32
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
33
+ }, z.core.$strip>;
34
+ export type UnsignedBoundWitness = z.infer<typeof UnsignedBoundWitnessZod>;
35
+ export declare const AnyUnsignedBoundWitnessZod: z.ZodObject<{
36
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
37
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
38
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
39
+ payload_schemas: z.ZodArray<z.ZodString>;
40
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
41
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
42
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
43
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
44
+ }, z.core.$catchall<z.ZodAny>>;
45
+ export type AnyUnsignedBoundWitness = z.infer<typeof AnyUnsignedBoundWitnessZod>;
46
+ export declare const UnsignedBoundWitnessWithStorageMetaZod: z.ZodObject<{
47
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
48
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
49
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
50
+ payload_schemas: z.ZodArray<z.ZodString>;
51
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
52
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
53
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
54
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
55
+ _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>;
56
+ _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>;
57
+ _sequence: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").LocalSequence, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").QualifiedSequence, string>>]>;
58
+ }, z.core.$strip>;
59
+ export declare const SignedZod: z.ZodObject<{
60
+ $signatures: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>>;
61
+ }, z.core.$strip>;
62
+ export declare const UnsignedZod: z.ZodObject<{
63
+ $signatures: z.ZodArray<z.ZodNull>;
64
+ }, z.core.$strip>;
65
+ export declare const SignedBoundWitnessZod: z.ZodObject<{
66
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
67
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
68
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
69
+ payload_schemas: z.ZodArray<z.ZodString>;
70
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
71
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
72
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
73
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
74
+ }, z.core.$strip>;
75
+ export declare const SignedBoundWitnessWithStorageMetaZod: z.ZodObject<{
76
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
77
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
78
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
79
+ payload_schemas: z.ZodArray<z.ZodString>;
80
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
81
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
82
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
83
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
84
+ _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>;
85
+ _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>;
86
+ _sequence: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").LocalSequence, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").QualifiedSequence, string>>]>;
87
+ }, z.core.$strip>;
88
+ export declare const AnySignedBoundWitnessZod: z.ZodObject<{
89
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
90
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
91
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
92
+ payload_schemas: z.ZodArray<z.ZodString>;
93
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
94
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
95
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
96
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
97
+ }, z.core.$catchall<z.ZodAny>>;
98
+ export declare const AnySignedBoundWitnessWithStorageMetaZod: z.ZodObject<{
99
+ schema: z.ZodLiteral<"network.xyo.boundwitness">;
100
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
101
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
102
+ payload_schemas: z.ZodArray<z.ZodString>;
103
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
104
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
105
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
106
+ $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
107
+ _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>;
108
+ _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>;
109
+ _sequence: z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").LocalSequence, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").QualifiedSequence, string>>]>;
110
+ }, z.core.$catchall<z.ZodAny>>;
111
+ export type Unsigned<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & z.infer<typeof UnsignedZod>;
112
+ export type Signed<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & z.infer<typeof SignedZod>;
48
113
  //# sourceMappingURL=BoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitness.d.ts","sourceRoot":"","sources":["../../../src/BoundWitness/BoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,GAAG,EACnB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,iFAAiF;IACjF,KAAK,EAAE,GAAG,CAAA;CACX;AAED,MAAM,WAAW,0BAA2B,SAAQ,OAAO,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;IAClH,IAAI,EAAE,IAAI,CAAA;CACX;AAED,MAAM,WAAW,kBAAmB,SAAQ,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,CAAC;CAAG;AAE9G,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CAC7E,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,EAC5D,kBAAkB,CACnB,GAAG,gBAAgB,CAAA;AAEpB,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IAAI,CAAC,GAAG;IAChF,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IAAI,CAAC,GAAG;IAC9E,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;AAE7D,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAE7D,eAAO,MAAM,QAAQ,GAAI,IAAI,YAAY,KAAG,EAAE,IAAI,SAAmE,CAAA;AACrH,eAAO,MAAM,OAAO,GAAI,IAAI,YAAY,KAAG,SAA4B,CAAA;AAEvE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzG,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA"}
1
+ {"version":3,"file":"BoundWitness.d.ts","sourceRoot":"","sources":["../../../src/BoundWitness/BoundWitness.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAiBxB,eAAO,MAAM,eAAe;;;;;;;;;iBAIuG,CAAA;AAEnI,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE1D,eAAO,MAAM,kBAAkB;;;;;;;;;8BACX,CAAA;AAEpB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;iBAA+G,CAAA;AAEnJ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE1E,eAAO,MAAM,0BAA0B;;;;;;;;;8BACnB,CAAA;AAEpB,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEhF,eAAO,MAAM,sCAAsC;;;;;;;;;;;;iBAGhB,CAAA;AAEnC,eAAO,MAAM,SAAS;;iBAA6C,CAAA;AACnE,eAAO,MAAM,WAAW;;iBAA+C,CAAA;AAEvE,eAAO,MAAM,qBAAqB;;;;;;;;;iBAAoH,CAAA;AAEtJ,eAAO,MAAM,oCAAoC;;;;;;;;;;;;iBAAyC,CAAA;AAE1F,eAAO,MAAM,wBAAwB;;;;;;;;;8BAA4C,CAAA;AAEjF,eAAO,MAAM,uCAAuC;;;;;;;;;;;;8BAA2D,CAAA;AAE/G,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE7G,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA"}
@@ -1,11 +1,11 @@
1
- import type { Hash } from '@xylabs/hex';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
2
  import type { WithStorageMeta } from '@xyo-network/payload-model';
3
3
  import type { BoundWitness } from './BoundWitness/index.ts';
4
4
  export type QueryBoundWitnessFields = {
5
5
  error_hashes?: Hash[];
6
6
  query: Hash;
7
7
  };
8
- export type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>;
8
+ export type UnsignedQueryBoundWitness = BoundWitness & QueryBoundWitnessFields;
9
9
  export type QueryBoundWitness = UnsignedQueryBoundWitness;
10
10
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
11
11
  export declare const isQueryBoundWitnessWithStorageMeta: (x?: unknown) => x is WithStorageMeta<QueryBoundWitness>;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,kCAAkC,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAA+C,CAAA"}
1
+ {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,uBAAuB,CAAA;AAE9E,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,kCAAkC,GAAI,IAAI,OAAO,KAAG,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAA+C,CAAA"}
@@ -1,6 +1,42 @@
1
1
  // src/BoundWitness/BoundWitness.ts
2
- var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
- var asBlock = (bw) => bw;
2
+ import {
3
+ AddressZod,
4
+ HashZod,
5
+ HexZod
6
+ } from "@xylabs/sdk-js";
7
+ import {
8
+ PayloadZod,
9
+ SchemaZod,
10
+ StorageMetaZod
11
+ } from "@xyo-network/payload-model";
12
+ import * as z from "zod";
13
+
14
+ // src/BoundWitness/BoundWitnessSchema.ts
15
+ var BoundWitnessSchema = "network.xyo.boundwitness";
16
+
17
+ // src/BoundWitness/BoundWitness.ts
18
+ var BoundWitnessRequiredFieldsZod = z.object({
19
+ addresses: z.array(AddressZod),
20
+ payload_hashes: z.array(HashZod),
21
+ payload_schemas: z.array(SchemaZod),
22
+ previous_hashes: z.array(HashZod.nullable())
23
+ });
24
+ var BoundWitnessMetaZod = z.object({
25
+ $destination: AddressZod.optional(),
26
+ $sourceQuery: HashZod.optional(),
27
+ $signatures: z.array(z.union([HexZod, z.null()]))
28
+ });
29
+ var BoundWitnessZod = PayloadZod.extend({ schema: z.literal(BoundWitnessSchema) }).extend(BoundWitnessRequiredFieldsZod.shape).extend(BoundWitnessMetaZod.shape).refine((data) => data.$signatures.length === data.addresses.length, { message: "$signatures length must equal addresses length" });
30
+ var AnyBoundWitnessZod = BoundWitnessZod.catchall(z.any());
31
+ var UnsignedBoundWitnessZod = BoundWitnessZod.refine((data) => data.$signatures.includes(null), { message: "all $signatures must be null" });
32
+ var AnyUnsignedBoundWitnessZod = UnsignedBoundWitnessZod.catchall(z.any());
33
+ var UnsignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessZod.safeExtend(BoundWitnessRequiredFieldsZod.shape).safeExtend(BoundWitnessMetaZod.shape).safeExtend(StorageMetaZod.shape);
34
+ var SignedZod = z.object({ $signatures: z.array(HexZod) });
35
+ var UnsignedZod = z.object({ $signatures: z.array(z.null()) });
36
+ var SignedBoundWitnessZod = BoundWitnessZod.refine((data) => !data.$signatures.includes(null), { message: "all $signatures must not be null" });
37
+ var SignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod;
38
+ var AnySignedBoundWitnessZod = UnsignedBoundWitnessZod.catchall(z.any());
39
+ var AnySignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod.catchall(z.any());
4
40
 
5
41
  // src/BoundWitness/BoundWitnessJsonSchema.ts
6
42
  var BoundWitnessJsonSchema = () => {
@@ -19,11 +55,8 @@ var BoundWitnessJsonSchema = () => {
19
55
  };
20
56
  };
21
57
 
22
- // src/BoundWitness/BoundWitnessSchema.ts
23
- var BoundWitnessSchema = "network.xyo.boundwitness";
24
-
25
58
  // src/isBoundWitness.ts
26
- import { AsObjectFactory } from "@xylabs/object";
59
+ import { AsObjectFactory } from "@xylabs/sdk-js";
27
60
  import {
28
61
  isPayloadOfSchemaType,
29
62
  isStorageMeta,
@@ -48,14 +81,23 @@ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
48
81
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
49
82
  var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
50
83
  export {
84
+ AnyBoundWitnessZod,
85
+ AnySignedBoundWitnessWithStorageMetaZod,
86
+ AnySignedBoundWitnessZod,
87
+ AnyUnsignedBoundWitnessZod,
51
88
  BoundWitnessJsonSchema,
52
89
  BoundWitnessSchema,
53
- asBlock,
90
+ BoundWitnessZod,
91
+ SignedBoundWitnessWithStorageMetaZod,
92
+ SignedBoundWitnessZod,
93
+ SignedZod,
94
+ UnsignedBoundWitnessWithStorageMetaZod,
95
+ UnsignedBoundWitnessZod,
96
+ UnsignedZod,
54
97
  asBoundWitness,
55
98
  asBoundWitnessWithStorageMeta,
56
99
  asOptionalBoundWitness,
57
100
  asOptionalBoundWitnessWithStorageMeta,
58
- hasBlock,
59
101
  isBoundWitness,
60
102
  isBoundWitnessWithStorageMeta,
61
103
  isQueryBoundWitness,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BoundWitness/BoundWitness.ts","../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["import type {\n Address, Hash, Hex,\n} from '@xylabs/hex'\nimport type { EmptyObject, JsonObject } from '@xylabs/object'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\n\nimport type { BoundWitnessSchema } from './BoundWitnessSchema.ts'\n\nexport interface BoundWitnessRequiredFields {\n /** @field Array of signatures by the accounts that are listed in addresses */\n addresses: Address[]\n payload_hashes: Hash[]\n payload_schemas: Schema[]\n previous_hashes: (Hash | null)[]\n}\n\nexport interface BoundWitnessMeta {\n /**\n * @field The address to which the query is directed\n */\n $destination?: Address\n /**\n * @field The query that initiated the bound witness\n */\n $sourceQuery?: Hash\n}\n\nexport interface BoundWitnessBlockField {\n /** @field sequential number (if this boundwitness is part of a multi-party chain) */\n block: number\n}\n\nexport interface BoundWitnessChainField {\n /** @field unique id of a multi-party chain (usually staking contract address) */\n chain: Hex\n}\n\nexport interface BoundWitnessOptionalFields extends Partial<BoundWitnessBlockField>, Partial<BoundWitnessChainField> {\n root: Hash\n}\n\nexport interface BoundWitnessFields extends BoundWitnessRequiredFields, Partial<BoundWitnessOptionalFields> {}\n\nexport type UnsignedBoundWitness<T extends EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Unsigned<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & {\n $signatures: Hex[]\n}\n\nexport type Signed<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & {\n $signatures: Hex[]\n}\n\nexport type SignedBoundWitness = Signed<UnsignedBoundWitness>\n\nexport type WithBlock = BoundWitness & BoundWitnessBlockField\n\nexport const hasBlock = (bw: BoundWitness): bw is WithBlock => bw.block !== undefined && typeof bw.block === 'string'\nexport const asBlock = (bw: BoundWitness): WithBlock => bw as WithBlock\n\nexport type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>\n\nexport type AnyBoundWitness = BoundWitness<JsonObject>\n","// Should type as JSONSchemaType<BoundWitness> once ajv/eslint issue is fixed\n// https://github.com/microsoft/TypeScript/issues/44851\n\nexport const BoundWitnessJsonSchema = () => {\n return {\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: {\n addresses: { items: { type: 'string' }, type: 'array' },\n payload_hashes: { items: { type: 'string' }, type: 'array' },\n payload_schemas: { items: { type: 'string' }, type: 'array' },\n previous_hashes: { items: { nullable: true, type: 'string' }, type: 'array' },\n schema: { type: 'string' },\n },\n required: ['addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes', 'schema'],\n type: 'object',\n }\n}\n","export const BoundWitnessSchema = 'network.xyo.boundwitness' as const\nexport type BoundWitnessSchema = typeof BoundWitnessSchema\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type {\n BoundWitness, Signed, Unsigned,\n} from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\n\nexport const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)\n\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\n// TODO: Use AsObjectFactory here to match standard pattern\n// TODO: Other as identity functions throw if not valid, this one returns undefined with is more of a asOptional behavior\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\nexport const asOptionalBoundWitness = AsObjectFactory.createOptional<BoundWitness>(isBoundWitness)\n\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\nexport const asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\nexport const asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\n\nexport function isSigned(value: unknown): value is Signed\nexport function isSigned<T extends Unsigned>(value: T): value is Signed<T>\nexport function isSigned(value: unknown): value is Signed {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n}\n\nexport function isUnsigned(value: unknown): value is Unsigned\nexport function isUnsigned<T extends BoundWitness>(value: T): value is Unsigned<T>\nexport function isUnsigned(value: unknown): value is Unsigned {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length === 0\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { isBoundWitness } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessFields = {\n error_hashes?: Hash[]\n query: Hash\n}\n\nexport type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>\n\nexport type QueryBoundWitness = UnsignedQueryBoundWitness\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\nexport const isQueryBoundWitnessWithStorageMeta = (x?: unknown): x is WithStorageMeta<QueryBoundWitness> => isQueryBoundWitness(x) && isStorageMeta(x)\n"],"mappings":";AA4DO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;AC1DjD,IAAM,yBAAyB,MAAM;AAC1C,SAAO;AAAA,IACL,KAAK;AAAA,IACL,sBAAsB;AAAA,IACtB,YAAY;AAAA,MACV,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MACtD,gBAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MAC3D,iBAAiB,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MAC5D,iBAAiB,EAAE,OAAO,EAAE,UAAU,MAAM,MAAM,SAAS,GAAG,MAAM,QAAQ;AAAA,MAC5E,QAAQ,EAAE,MAAM,SAAS;AAAA,IAC3B;AAAA,IACA,UAAU,CAAC,aAAa,kBAAkB,mBAAmB,mBAAmB,QAAQ;AAAA,IACxF,MAAM;AAAA,EACR;AACF;;;ACjBO,IAAM,qBAAqB;;;ACAlC,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAOA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAE/H,IAAM,kBAAkB,uBAAqC,kBAAkB;AAI/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAEtC,IAAM,yBAAyB,gBAAgB,eAA6B,cAAc;AAE1F,IAAM,gCAAgC,CAAC,UAC5C,sBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAChF,IAAM,gCAAgC,gBAAgB,eAA8C,6BAA6B;AACjI,IAAM,wCAAwC,gBAAgB,eAA8C,6BAA6B;AAIzI,SAAS,SAAS,OAAiC;AACxD,SAAO,eAAe,KAAK,KACtB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAChC;AAIO,SAAS,WAAW,OAAmC;AAC5D,SAAO,eAAe,KAAK,KACtB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,WAAW;AAClC;;;ACvCA,SAAS,iBAAAA,sBAAqB;AAcvB,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["isStorageMeta","isStorageMeta"]}
1
+ {"version":3,"sources":["../../src/BoundWitness/BoundWitness.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["import {\n AddressZod, HashZod, HexZod,\n} from '@xylabs/sdk-js'\nimport {\n PayloadZod, SchemaZod, StorageMetaZod,\n} from '@xyo-network/payload-model'\nimport * as z from 'zod'\n\nimport { BoundWitnessSchema } from './BoundWitnessSchema.ts'\n\nconst BoundWitnessRequiredFieldsZod = z.object({\n addresses: z.array(AddressZod),\n payload_hashes: z.array(HashZod),\n payload_schemas: z.array(SchemaZod),\n previous_hashes: z.array(HashZod.nullable()),\n})\n\nconst BoundWitnessMetaZod = z.object({\n $destination: AddressZod.optional(),\n $sourceQuery: HashZod.optional(),\n $signatures: z.array(z.union([HexZod, z.null()])),\n})\n\nexport const BoundWitnessZod = PayloadZod\n .extend({ schema: z.literal(BoundWitnessSchema) })\n .extend(BoundWitnessRequiredFieldsZod.shape)\n .extend(BoundWitnessMetaZod.shape)\n .refine(data => data.$signatures.length === data.addresses.length, { message: '$signatures length must equal addresses length' })\n\nexport type BoundWitness = z.infer<typeof BoundWitnessZod>\n\nexport const AnyBoundWitnessZod = BoundWitnessZod\n .catchall(z.any())\n\nexport type AnyBoundWitness = z.infer<typeof AnyBoundWitnessZod>\n\nexport const UnsignedBoundWitnessZod = BoundWitnessZod.refine(data => data.$signatures.includes(null), { message: 'all $signatures must be null' })\n\nexport type UnsignedBoundWitness = z.infer<typeof UnsignedBoundWitnessZod>\n\nexport const AnyUnsignedBoundWitnessZod = UnsignedBoundWitnessZod\n .catchall(z.any())\n\nexport type AnyUnsignedBoundWitness = z.infer<typeof AnyUnsignedBoundWitnessZod>\n\nexport const UnsignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessZod\n .safeExtend(BoundWitnessRequiredFieldsZod.shape)\n .safeExtend(BoundWitnessMetaZod.shape)\n .safeExtend(StorageMetaZod.shape)\n\nexport const SignedZod = z.object({ $signatures: z.array(HexZod) })\nexport const UnsignedZod = z.object({ $signatures: z.array(z.null()) })\n\nexport const SignedBoundWitnessZod = BoundWitnessZod.refine(data => !data.$signatures.includes(null), { message: 'all $signatures must not be null' })\n\nexport const SignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod\n\nexport const AnySignedBoundWitnessZod = UnsignedBoundWitnessZod.catchall(z.any())\n\nexport const AnySignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod.catchall(z.any())\n\nexport type Unsigned<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & z.infer<typeof UnsignedZod>\n\nexport type Signed<T extends UnsignedBoundWitness = UnsignedBoundWitness> = T & z.infer<typeof SignedZod>\n","export const BoundWitnessSchema = 'network.xyo.boundwitness' as const\nexport type BoundWitnessSchema = typeof BoundWitnessSchema\n","// Should type as JSONSchemaType<BoundWitness> once ajv/eslint issue is fixed\n// https://github.com/microsoft/TypeScript/issues/44851\n\nexport const BoundWitnessJsonSchema = () => {\n return {\n $id: 'https://schemas.xyo.network/2.0/boundwitness',\n additionalProperties: false,\n properties: {\n addresses: { items: { type: 'string' }, type: 'array' },\n payload_hashes: { items: { type: 'string' }, type: 'array' },\n payload_schemas: { items: { type: 'string' }, type: 'array' },\n previous_hashes: { items: { nullable: true, type: 'string' }, type: 'array' },\n schema: { type: 'string' },\n },\n required: ['addresses', 'payload_hashes', 'payload_schemas', 'previous_hashes', 'schema'],\n type: 'object',\n }\n}\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type {\n BoundWitness, Signed, Unsigned,\n} from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\n\nexport const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)\n\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\n// TODO: Use AsObjectFactory here to match standard pattern\n// TODO: Other as identity functions throw if not valid, this one returns undefined with is more of a asOptional behavior\nexport const asBoundWitness = <T extends BoundWitness = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\nexport const asOptionalBoundWitness = AsObjectFactory.createOptional<BoundWitness>(isBoundWitness)\n\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\nexport const asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\nexport const asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\n\nexport function isSigned(value: unknown): value is Signed\nexport function isSigned<T extends Unsigned>(value: T): value is Signed<T>\nexport function isSigned(value: unknown): value is Signed {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n}\n\nexport function isUnsigned(value: unknown): value is Unsigned\nexport function isUnsigned<T extends BoundWitness>(value: T): value is Unsigned<T>\nexport function isUnsigned(value: unknown): value is Unsigned {\n return isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length === 0\n}\n","import type { Hash } from '@xylabs/sdk-js'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { isBoundWitness } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessFields = {\n error_hashes?: Hash[]\n query: Hash\n}\n\nexport type UnsignedQueryBoundWitness = BoundWitness & QueryBoundWitnessFields\n\nexport type QueryBoundWitness = UnsignedQueryBoundWitness\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\nexport const isQueryBoundWitnessWithStorageMeta = (x?: unknown): x is WithStorageMeta<QueryBoundWitness> => isQueryBoundWitness(x) && isStorageMeta(x)\n"],"mappings":"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","names":["isStorageMeta","isStorageMeta"]}