@xyo-network/boundwitness-model 3.6.0-rc.9 → 3.6.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.
@@ -10,6 +10,13 @@ export interface BoundWitnessRequiredFields {
10
10
  previous_hashes: (Hash | null)[];
11
11
  }
12
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
+ */
13
20
  $sourceQuery?: Hash;
14
21
  }
15
22
  export interface BoundWitnessBlockField {
@@ -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,MAAM,gBAAgB,CAAA;AACjD,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;IAE/B,YAAY,CAAC,EAAE,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,kHAAkH;IAClH,KAAK,EAAE,GAAG,CAAA;CACX;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,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CACvF,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,EAC5D,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAC/B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAC7B,kBAAkB,CACzB,GAAG,gBAAgB,CAAA;AAEpB,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAC1B,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAE7D,eAAO,MAAM,QAAQ,OAAQ,YAAY,KAAG,EAAE,IAAI,SAAmE,CAAA;AACrH,eAAO,MAAM,OAAO,OAAQ,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"}
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,MAAM,gBAAgB,CAAA;AACjD,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,kHAAkH;IAClH,KAAK,EAAE,GAAG,CAAA;CACX;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,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CACvF,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,EAC5D,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAC/B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAC7B,kBAAkB,CACzB,GAAG,gBAAgB,CAAA;AAEpB,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAC1B,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAE7D,eAAO,MAAM,QAAQ,OAAQ,YAAY,KAAG,EAAE,IAAI,SAAmE,CAAA;AACrH,eAAO,MAAM,OAAO,OAAQ,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"}
@@ -23,17 +23,20 @@ var BoundWitnessJsonSchema = () => {
23
23
  var BoundWitnessSchema = "network.xyo.boundwitness";
24
24
 
25
25
  // src/isBoundWitness.ts
26
+ import { AsObjectFactory } from "@xylabs/object";
26
27
  import {
27
28
  isPayloadOfSchemaType,
28
29
  isStorageMeta,
29
30
  notPayloadOfSchemaType
30
31
  } from "@xyo-network/payload-model";
31
32
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
32
- var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
33
- var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
34
33
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
35
34
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
36
- var isBoundWitnessPayload = isBoundWitness;
35
+ var asOptionalBoundWitness = AsObjectFactory.createOptional(isBoundWitness);
36
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
37
+ var asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isBoundWitnessWithStorageMeta);
38
+ var asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isBoundWitnessWithStorageMeta);
39
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
37
40
 
38
41
  // src/QueryBoundWitness.ts
39
42
  import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
@@ -44,9 +47,11 @@ export {
44
47
  BoundWitnessSchema,
45
48
  asBlock,
46
49
  asBoundWitness,
50
+ asBoundWitnessWithStorageMeta,
51
+ asOptionalBoundWitness,
52
+ asOptionalBoundWitnessWithStorageMeta,
47
53
  hasBlock,
48
54
  isBoundWitness,
49
- isBoundWitnessPayload,
50
55
  isBoundWitnessWithStorageMeta,
51
56
  isQueryBoundWitness,
52
57
  isQueryBoundWitnessWithStorageMeta,
@@ -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 } 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 // the query that initiated the bound witness\n $sourceQuery?: Hash\n}\n\nexport interface BoundWitnessBlockField {\n /** @field sequential number (if this boundwitness is part of a multi-party chain) zero padded to 32 characters */\n block: Hex\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 Payload | EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n T extends void ? BoundWitnessSchema\n : T extends Payload ? T['schema']\n : BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Signed<T> = T & {\n $signatures: Hex[]\n}\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","// 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 type BoundWitnessSchema = 'network.xyo.boundwitness'\nexport const BoundWitnessSchema: BoundWitnessSchema = 'network.xyo.boundwitness'\n","import type { WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\n\nexport const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\n\nexport const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\n/** @deprecated use isBoundWitness instead */\nexport const isBoundWitnessPayload = isBoundWitness\n","import type { Hash } from '@xylabs/hex'\nimport { isStorageMeta, type WithStorageMeta } 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":";AAkDO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;AChDjD,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;;;AChBO,IAAM,qBAAyC;;;ACAtD;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAKA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,gCAAgC,CAAC,UAC5C,sBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAEhF,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACnBrC,SAAS,iBAAAA,sBAA2C;AAc7C,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/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 } 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) zero padded to 32 characters */\n block: Hex\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 Payload | EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n T extends void ? BoundWitnessSchema\n : T extends Payload ? T['schema']\n : BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Signed<T> = T & {\n $signatures: Hex[]\n}\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","// 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 type BoundWitnessSchema = 'network.xyo.boundwitness'\nexport const BoundWitnessSchema: BoundWitnessSchema = 'network.xyo.boundwitness'\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 { BoundWitness, UnsignedBoundWitness } 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 const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\n","import type { Hash } from '@xylabs/hex'\nimport { isStorageMeta, type WithStorageMeta } 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":";AAwDO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;ACtDjD,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;;;AChBO,IAAM,qBAAyC;;;ACDtD,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAKA,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;AAEzI,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;;;ACzBvE,SAAS,iBAAAA,sBAA2C;AAc7C,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["isStorageMeta","isStorageMeta"]}
@@ -1,12 +1,13 @@
1
1
  import type { WithStorageMeta } from '@xyo-network/payload-model';
2
2
  import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
3
  export declare const isBoundWitness: (value: unknown) => value is BoundWitness;
4
- export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
5
- export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
6
4
  export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
7
5
  export declare const asBoundWitness: <T extends BoundWitness<{
8
6
  schema: string;
9
7
  }> = BoundWitness>(payload?: unknown) => T | undefined;
10
- /** @deprecated use isBoundWitness instead */
11
- export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
8
+ export declare const asOptionalBoundWitness: <TType extends BoundWitness>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
9
+ export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
10
+ export declare const asBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
11
+ export declare const asOptionalBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
12
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
12
13
  //# sourceMappingURL=isBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isBoundWitness.d.ts","sourceRoot":"","sources":["../../src/isBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AAExF,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UAZI,OAAO,KAAG,KAAK,IAAI,YAYN,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,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,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,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,eAAO,MAAM,sBAAsB,6CAJpB,sDAAiB,qCAIkE,CAAA;AAElG,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B,8DAR3B,sDAAiB,qCAQyG,CAAA;AACzI,eAAO,MAAM,qCAAqC,8DATnC,sDAAiB,qCASiH,CAAA;AAEjJ,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA"}
@@ -10,6 +10,13 @@ export interface BoundWitnessRequiredFields {
10
10
  previous_hashes: (Hash | null)[];
11
11
  }
12
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
+ */
13
20
  $sourceQuery?: Hash;
14
21
  }
15
22
  export interface BoundWitnessBlockField {
@@ -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,MAAM,gBAAgB,CAAA;AACjD,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;IAE/B,YAAY,CAAC,EAAE,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,kHAAkH;IAClH,KAAK,EAAE,GAAG,CAAA;CACX;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,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CACvF,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,EAC5D,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAC/B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAC7B,kBAAkB,CACzB,GAAG,gBAAgB,CAAA;AAEpB,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAC1B,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAE7D,eAAO,MAAM,QAAQ,OAAQ,YAAY,KAAG,EAAE,IAAI,SAAmE,CAAA;AACrH,eAAO,MAAM,OAAO,OAAQ,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"}
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,MAAM,gBAAgB,CAAA;AACjD,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,kHAAkH;IAClH,KAAK,EAAE,GAAG,CAAA;CACX;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,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CACvF,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,EAC5D,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAC/B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAC7B,kBAAkB,CACzB,GAAG,gBAAgB,CAAA;AAEpB,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAC1B,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAE7D,eAAO,MAAM,QAAQ,OAAQ,YAAY,KAAG,EAAE,IAAI,SAAmE,CAAA;AACrH,eAAO,MAAM,OAAO,OAAQ,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"}
@@ -23,17 +23,20 @@ var BoundWitnessJsonSchema = () => {
23
23
  var BoundWitnessSchema = "network.xyo.boundwitness";
24
24
 
25
25
  // src/isBoundWitness.ts
26
+ import { AsObjectFactory } from "@xylabs/object";
26
27
  import {
27
28
  isPayloadOfSchemaType,
28
29
  isStorageMeta,
29
30
  notPayloadOfSchemaType
30
31
  } from "@xyo-network/payload-model";
31
32
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
32
- var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
33
- var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
34
33
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
35
34
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
36
- var isBoundWitnessPayload = isBoundWitness;
35
+ var asOptionalBoundWitness = AsObjectFactory.createOptional(isBoundWitness);
36
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
37
+ var asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isBoundWitnessWithStorageMeta);
38
+ var asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isBoundWitnessWithStorageMeta);
39
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
37
40
 
38
41
  // src/QueryBoundWitness.ts
39
42
  import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
@@ -44,9 +47,11 @@ export {
44
47
  BoundWitnessSchema,
45
48
  asBlock,
46
49
  asBoundWitness,
50
+ asBoundWitnessWithStorageMeta,
51
+ asOptionalBoundWitness,
52
+ asOptionalBoundWitnessWithStorageMeta,
47
53
  hasBlock,
48
54
  isBoundWitness,
49
- isBoundWitnessPayload,
50
55
  isBoundWitnessWithStorageMeta,
51
56
  isQueryBoundWitness,
52
57
  isQueryBoundWitnessWithStorageMeta,
@@ -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 } 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 // the query that initiated the bound witness\n $sourceQuery?: Hash\n}\n\nexport interface BoundWitnessBlockField {\n /** @field sequential number (if this boundwitness is part of a multi-party chain) zero padded to 32 characters */\n block: Hex\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 Payload | EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n T extends void ? BoundWitnessSchema\n : T extends Payload ? T['schema']\n : BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Signed<T> = T & {\n $signatures: Hex[]\n}\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","// 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 type BoundWitnessSchema = 'network.xyo.boundwitness'\nexport const BoundWitnessSchema: BoundWitnessSchema = 'network.xyo.boundwitness'\n","import type { WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\n\nexport const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\n\nexport const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\n/** @deprecated use isBoundWitness instead */\nexport const isBoundWitnessPayload = isBoundWitness\n","import type { Hash } from '@xylabs/hex'\nimport { isStorageMeta, type WithStorageMeta } 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":";AAkDO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;AChDjD,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;;;AChBO,IAAM,qBAAyC;;;ACAtD;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAKA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,gCAAgC,CAAC,UAC5C,sBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAEhF,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACnBrC,SAAS,iBAAAA,sBAA2C;AAc7C,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/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 } 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) zero padded to 32 characters */\n block: Hex\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 Payload | EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n T extends void ? BoundWitnessSchema\n : T extends Payload ? T['schema']\n : BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Signed<T> = T & {\n $signatures: Hex[]\n}\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","// 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 type BoundWitnessSchema = 'network.xyo.boundwitness'\nexport const BoundWitnessSchema: BoundWitnessSchema = 'network.xyo.boundwitness'\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 { BoundWitness, UnsignedBoundWitness } 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 const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\n","import type { Hash } from '@xylabs/hex'\nimport { isStorageMeta, type WithStorageMeta } 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":";AAwDO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;ACtDjD,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;;;AChBO,IAAM,qBAAyC;;;ACDtD,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAKA,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;AAEzI,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;;;ACzBvE,SAAS,iBAAAA,sBAA2C;AAc7C,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["isStorageMeta","isStorageMeta"]}
@@ -1,12 +1,13 @@
1
1
  import type { WithStorageMeta } from '@xyo-network/payload-model';
2
2
  import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
3
  export declare const isBoundWitness: (value: unknown) => value is BoundWitness;
4
- export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
5
- export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
6
4
  export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
7
5
  export declare const asBoundWitness: <T extends BoundWitness<{
8
6
  schema: string;
9
7
  }> = BoundWitness>(payload?: unknown) => T | undefined;
10
- /** @deprecated use isBoundWitness instead */
11
- export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
8
+ export declare const asOptionalBoundWitness: <TType extends BoundWitness>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
9
+ export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
10
+ export declare const asBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
11
+ export declare const asOptionalBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
12
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
12
13
  //# sourceMappingURL=isBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isBoundWitness.d.ts","sourceRoot":"","sources":["../../src/isBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AAExF,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UAZI,OAAO,KAAG,KAAK,IAAI,YAYN,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,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,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,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,eAAO,MAAM,sBAAsB,6CAJpB,sDAAiB,qCAIkE,CAAA;AAElG,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B,8DAR3B,sDAAiB,qCAQyG,CAAA;AACzI,eAAO,MAAM,qCAAqC,8DATnC,sDAAiB,qCASiH,CAAA;AAEjJ,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA"}
@@ -10,6 +10,13 @@ export interface BoundWitnessRequiredFields {
10
10
  previous_hashes: (Hash | null)[];
11
11
  }
12
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
+ */
13
20
  $sourceQuery?: Hash;
14
21
  }
15
22
  export interface BoundWitnessBlockField {
@@ -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,MAAM,gBAAgB,CAAA;AACjD,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;IAE/B,YAAY,CAAC,EAAE,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,kHAAkH;IAClH,KAAK,EAAE,GAAG,CAAA;CACX;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,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CACvF,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,EAC5D,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAC/B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAC7B,kBAAkB,CACzB,GAAG,gBAAgB,CAAA;AAEpB,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAC1B,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAE7D,eAAO,MAAM,QAAQ,OAAQ,YAAY,KAAG,EAAE,IAAI,SAAmE,CAAA;AACrH,eAAO,MAAM,OAAO,OAAQ,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"}
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,MAAM,gBAAgB,CAAA;AACjD,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,kHAAkH;IAClH,KAAK,EAAE,GAAG,CAAA;CACX;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,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CACvF,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,EAC5D,CAAC,SAAS,IAAI,GAAG,kBAAkB,GAC/B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAC7B,kBAAkB,CACzB,GAAG,gBAAgB,CAAA;AAEpB,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAC1B,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAE7D,eAAO,MAAM,QAAQ,OAAQ,YAAY,KAAG,EAAE,IAAI,SAAmE,CAAA;AACrH,eAAO,MAAM,OAAO,OAAQ,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"}
@@ -23,17 +23,20 @@ var BoundWitnessJsonSchema = () => {
23
23
  var BoundWitnessSchema = "network.xyo.boundwitness";
24
24
 
25
25
  // src/isBoundWitness.ts
26
+ import { AsObjectFactory } from "@xylabs/object";
26
27
  import {
27
28
  isPayloadOfSchemaType,
28
29
  isStorageMeta,
29
30
  notPayloadOfSchemaType
30
31
  } from "@xyo-network/payload-model";
31
32
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
32
- var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
33
- var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
34
33
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
35
34
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
36
- var isBoundWitnessPayload = isBoundWitness;
35
+ var asOptionalBoundWitness = AsObjectFactory.createOptional(isBoundWitness);
36
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
37
+ var asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isBoundWitnessWithStorageMeta);
38
+ var asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isBoundWitnessWithStorageMeta);
39
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
37
40
 
38
41
  // src/QueryBoundWitness.ts
39
42
  import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
@@ -44,9 +47,11 @@ export {
44
47
  BoundWitnessSchema,
45
48
  asBlock,
46
49
  asBoundWitness,
50
+ asBoundWitnessWithStorageMeta,
51
+ asOptionalBoundWitness,
52
+ asOptionalBoundWitnessWithStorageMeta,
47
53
  hasBlock,
48
54
  isBoundWitness,
49
- isBoundWitnessPayload,
50
55
  isBoundWitnessWithStorageMeta,
51
56
  isQueryBoundWitness,
52
57
  isQueryBoundWitnessWithStorageMeta,
@@ -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 } 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 // the query that initiated the bound witness\n $sourceQuery?: Hash\n}\n\nexport interface BoundWitnessBlockField {\n /** @field sequential number (if this boundwitness is part of a multi-party chain) zero padded to 32 characters */\n block: Hex\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 Payload | EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n T extends void ? BoundWitnessSchema\n : T extends Payload ? T['schema']\n : BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Signed<T> = T & {\n $signatures: Hex[]\n}\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","// 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 type BoundWitnessSchema = 'network.xyo.boundwitness'\nexport const BoundWitnessSchema: BoundWitnessSchema = 'network.xyo.boundwitness'\n","import type { WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\n\nexport const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\n\nexport const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\n/** @deprecated use isBoundWitness instead */\nexport const isBoundWitnessPayload = isBoundWitness\n","import type { Hash } from '@xylabs/hex'\nimport { isStorageMeta, type WithStorageMeta } 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":";AAkDO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;AChDjD,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;;;AChBO,IAAM,qBAAyC;;;ACAtD;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAKA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,gCAAgC,CAAC,UAC5C,sBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAEhF,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACnBrC,SAAS,iBAAAA,sBAA2C;AAc7C,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/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 } 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) zero padded to 32 characters */\n block: Hex\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 Payload | EmptyObject | void = void> = Payload<\n T extends void ? BoundWitnessFields : BoundWitnessFields & T,\n T extends void ? BoundWitnessSchema\n : T extends Payload ? T['schema']\n : BoundWitnessSchema\n> & BoundWitnessMeta\n\nexport type Signed<T> = T & {\n $signatures: Hex[]\n}\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","// 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 type BoundWitnessSchema = 'network.xyo.boundwitness'\nexport const BoundWitnessSchema: BoundWitnessSchema = 'network.xyo.boundwitness'\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 { BoundWitness, UnsignedBoundWitness } 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 const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\n","import type { Hash } from '@xylabs/hex'\nimport { isStorageMeta, type WithStorageMeta } 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":";AAwDO,IAAM,WAAW,CAAC,OAAsC,GAAG,UAAU,UAAa,OAAO,GAAG,UAAU;AACtG,IAAM,UAAU,CAAC,OAAgC;;;ACtDjD,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;;;AChBO,IAAM,qBAAyC;;;ACDtD,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAKA,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;AAEzI,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;;;ACzBvE,SAAS,iBAAAA,sBAA2C;AAc7C,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["isStorageMeta","isStorageMeta"]}
@@ -1,12 +1,13 @@
1
1
  import type { WithStorageMeta } from '@xyo-network/payload-model';
2
2
  import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
3
  export declare const isBoundWitness: (value: unknown) => value is BoundWitness;
4
- export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
5
- export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
6
4
  export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
7
5
  export declare const asBoundWitness: <T extends BoundWitness<{
8
6
  schema: string;
9
7
  }> = BoundWitness>(payload?: unknown) => T | undefined;
10
- /** @deprecated use isBoundWitness instead */
11
- export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
8
+ export declare const asOptionalBoundWitness: <TType extends BoundWitness>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
9
+ export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
10
+ export declare const asBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
11
+ export declare const asOptionalBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.26-eff161fa33/package").AnyNonPromise) => TType | undefined;
12
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
12
13
  //# sourceMappingURL=isBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isBoundWitness.d.ts","sourceRoot":"","sources":["../../src/isBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AAExF,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UAZI,OAAO,KAAG,KAAK,IAAI,YAYN,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,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,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,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,eAAO,MAAM,sBAAsB,6CAJpB,sDAAiB,qCAIkE,CAAA;AAElG,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B,8DAR3B,sDAAiB,qCAQyG,CAAA;AACzI,eAAO,MAAM,qCAAqC,8DATnC,sDAAiB,qCASiH,CAAA;AAEjJ,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/boundwitness-model",
3
- "version": "3.6.0-rc.9",
3
+ "version": "3.6.1",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,18 +29,17 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/hex": "^4.4.18",
33
- "@xylabs/object": "^4.4.18",
34
- "@xyo-network/payload-model": "^3.6.0-rc.9"
32
+ "@xylabs/hex": "^4.4.26",
33
+ "@xylabs/object": "^4.4.26",
34
+ "@xyo-network/payload-model": "^3.6.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^22.10.2",
38
- "@xylabs/ts-scripts-yarn3": "^4.2.4",
39
- "@xylabs/tsconfig": "^4.2.4",
38
+ "@xylabs/ts-scripts-yarn3": "^4.2.6",
39
+ "@xylabs/tsconfig": "^4.2.6",
40
40
  "typescript": "^5.7.2"
41
41
  },
42
42
  "publishConfig": {
43
43
  "access": "public"
44
- },
45
- "stableVersion": "3.5.2"
44
+ }
46
45
  }
@@ -15,7 +15,13 @@ export interface BoundWitnessRequiredFields {
15
15
  }
16
16
 
17
17
  export interface BoundWitnessMeta {
18
- // the query that initiated the bound witness
18
+ /**
19
+ * @field The address to which the query is directed
20
+ */
21
+ $destination?: Address
22
+ /**
23
+ * @field The query that initiated the bound witness
24
+ */
19
25
  $sourceQuery?: Hash
20
26
  }
21
27
 
@@ -1,3 +1,4 @@
1
+ import { AsObjectFactory } from '@xylabs/object'
1
2
  import type { WithStorageMeta } from '@xyo-network/payload-model'
2
3
  import {
3
4
  isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,
@@ -7,15 +8,20 @@ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts
7
8
  import { BoundWitnessSchema } from './BoundWitness/index.ts'
8
9
 
9
10
  export const isBoundWitness = (value: unknown): value is BoundWitness => isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value)
10
- export const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>
11
- isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)
12
11
 
13
- export const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>
14
- isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)
15
12
  export const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)
16
13
 
14
+ // TODO: Use AsObjectFactory here to match standard pattern
15
+ // TODO: Other as identity functions throw if not valid, this one returns undefined with is more of a asOptional behavior
17
16
  export const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>
18
17
  isBoundWitness(payload) ? (payload as T) : undefined
19
18
 
20
- /** @deprecated use isBoundWitness instead */
21
- export const isBoundWitnessPayload = isBoundWitness
19
+ export const asOptionalBoundWitness = AsObjectFactory.createOptional<BoundWitness>(isBoundWitness)
20
+
21
+ export const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>
22
+ isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)
23
+ export const asBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)
24
+ export const asOptionalBoundWitnessWithStorageMeta = AsObjectFactory.createOptional<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)
25
+
26
+ export const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>
27
+ isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)