@xyo-network/boundwitness-model 3.18.0 → 3.18.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,3 +1,11 @@
1
+ // src/AtomicBoundWitness.ts
2
+ import { AsObjectFactory } from "@xylabs/object";
3
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
4
+ var AtomicBoundWitnessSchema = "network.xyo.boundwitness.atomic";
5
+ var isAtomicBoundWitness = isPayloadOfSchemaType(AtomicBoundWitnessSchema);
6
+ var asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness);
7
+ var asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness);
8
+
1
9
  // src/BoundWitness/BoundWitness.ts
2
10
  var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
11
  var asBlock = (bw) => bw;
@@ -23,19 +31,19 @@ var BoundWitnessJsonSchema = () => {
23
31
  var BoundWitnessSchema = "network.xyo.boundwitness";
24
32
 
25
33
  // src/isBoundWitness.ts
26
- import { AsObjectFactory } from "@xylabs/object";
34
+ import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
27
35
  import {
28
- isPayloadOfSchemaType,
36
+ isPayloadOfSchemaType as isPayloadOfSchemaType2,
29
37
  isStorageMeta,
30
38
  notPayloadOfSchemaType
31
39
  } from "@xyo-network/payload-model";
32
- var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
40
+ var isBoundWitness = (value) => isPayloadOfSchemaType2(BoundWitnessSchema)(value);
33
41
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
34
42
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
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);
43
+ var asOptionalBoundWitness = AsObjectFactory2.createOptional(isBoundWitness);
44
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType2(BoundWitnessSchema)(value) && isStorageMeta(value);
45
+ var asBoundWitnessWithStorageMeta = AsObjectFactory2.createOptional(isBoundWitnessWithStorageMeta);
46
+ var asOptionalBoundWitnessWithStorageMeta = AsObjectFactory2.createOptional(isBoundWitnessWithStorageMeta);
39
47
  var isSigned = (value) => isBoundWitness(value) && value.$signatures.length === value.addresses.length && value.addresses.length > 0;
40
48
  var isUnsigned = (value) => isBoundWitness(value) && !isSigned(value);
41
49
 
@@ -44,14 +52,18 @@ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
44
52
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
45
53
  var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
46
54
  export {
55
+ AtomicBoundWitnessSchema,
47
56
  BoundWitnessJsonSchema,
48
57
  BoundWitnessSchema,
58
+ asAtomicBoundWitness,
49
59
  asBlock,
50
60
  asBoundWitness,
51
61
  asBoundWitnessWithStorageMeta,
62
+ asOptionalAtomicBoundWitness,
52
63
  asOptionalBoundWitness,
53
64
  asOptionalBoundWitnessWithStorageMeta,
54
65
  hasBlock,
66
+ isAtomicBoundWitness,
55
67
  isBoundWitness,
56
68
  isBoundWitnessWithStorageMeta,
57
69
  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 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, UnsignedBoundWitness,\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 const isSigned = (value: unknown): value is Signed =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isUnsigned = (value: unknown): value is UnsignedBoundWitness =>\n isBoundWitness(value) && !isSigned(value)\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\n// eslint-disable-next-line sonarjs/redundant-type-aliases\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;;;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;AAEzI,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,KACjB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAEvB,IAAM,aAAa,CAAC,UACzB,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK;;;AC/B1C,SAAS,iBAAAA,sBAAqB;AAevB,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/AtomicBoundWitness.ts","../../src/BoundWitness/BoundWitness.ts","../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\n\n// payload that wraps a complete boundwitness with its payloads for use in systems such as submission queues\nexport const AtomicBoundWitnessSchema = 'network.xyo.boundwitness.atomic' as const\nexport type AtomicBoundWitnessSchema = typeof AtomicBoundWitnessSchema\n\nexport interface AtomicBoundWitnessFields<TBoundWitness extends BoundWitness = BoundWitness> {\n bw: TBoundWitness\n payloads: Record<Hash, Payload>\n}\n\nexport type AtomicBoundWitness = Payload<AtomicBoundWitnessFields, AtomicBoundWitnessSchema>\n\nexport const isAtomicBoundWitness = isPayloadOfSchemaType<AtomicBoundWitness>(AtomicBoundWitnessSchema)\n\nexport const asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness)\nexport const asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness)\n","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 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, UnsignedBoundWitness,\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 const isSigned = (value: unknown): value is Signed =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isUnsigned = (value: unknown): value is UnsignedBoundWitness =>\n isBoundWitness(value) && !isSigned(value)\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\n// eslint-disable-next-line sonarjs/redundant-type-aliases\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":";AACA,SAAS,uBAAuB;AAEhC,SAAS,6BAA6B;AAK/B,IAAM,2BAA2B;AAUjC,IAAM,uBAAuB,sBAA0C,wBAAwB;AAE/F,IAAM,uBAAuB,gBAAgB,OAAO,oBAAoB;AACxE,IAAM,+BAA+B,gBAAgB,eAAe,oBAAoB;;;ACmCxF,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;;;ACjBO,IAAM,qBAAqB;;;ACAlC,SAAS,mBAAAA,wBAAuB;AAEhC;AAAA,EACE,yBAAAC;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAOA,IAAM,iBAAiB,CAAC,UAA0CC,uBAAoC,kBAAkB,EAAE,KAAK;AAE/H,IAAM,kBAAkB,uBAAqC,kBAAkB;AAI/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAEtC,IAAM,yBAAyBC,iBAAgB,eAA6B,cAAc;AAE1F,IAAM,gCAAgC,CAAC,UAC5CD,uBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAChF,IAAM,gCAAgCC,iBAAgB,eAA8C,6BAA6B;AACjI,IAAM,wCAAwCA,iBAAgB,eAA8C,6BAA6B;AAEzI,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,KACjB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAEvB,IAAM,aAAa,CAAC,UACzB,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK;;;AC/B1C,SAAS,iBAAAC,sBAAqB;AAevB,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isStorageMeta","isStorageMeta"]}
@@ -1,3 +1,11 @@
1
+ // src/AtomicBoundWitness.ts
2
+ import { AsObjectFactory } from "@xylabs/object";
3
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
4
+ var AtomicBoundWitnessSchema = "network.xyo.boundwitness.atomic";
5
+ var isAtomicBoundWitness = isPayloadOfSchemaType(AtomicBoundWitnessSchema);
6
+ var asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness);
7
+ var asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness);
8
+
1
9
  // src/BoundWitness/BoundWitness.ts
2
10
  var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
11
  var asBlock = (bw) => bw;
@@ -23,19 +31,19 @@ var BoundWitnessJsonSchema = () => {
23
31
  var BoundWitnessSchema = "network.xyo.boundwitness";
24
32
 
25
33
  // src/isBoundWitness.ts
26
- import { AsObjectFactory } from "@xylabs/object";
34
+ import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
27
35
  import {
28
- isPayloadOfSchemaType,
36
+ isPayloadOfSchemaType as isPayloadOfSchemaType2,
29
37
  isStorageMeta,
30
38
  notPayloadOfSchemaType
31
39
  } from "@xyo-network/payload-model";
32
- var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
40
+ var isBoundWitness = (value) => isPayloadOfSchemaType2(BoundWitnessSchema)(value);
33
41
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
34
42
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
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);
43
+ var asOptionalBoundWitness = AsObjectFactory2.createOptional(isBoundWitness);
44
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType2(BoundWitnessSchema)(value) && isStorageMeta(value);
45
+ var asBoundWitnessWithStorageMeta = AsObjectFactory2.createOptional(isBoundWitnessWithStorageMeta);
46
+ var asOptionalBoundWitnessWithStorageMeta = AsObjectFactory2.createOptional(isBoundWitnessWithStorageMeta);
39
47
  var isSigned = (value) => isBoundWitness(value) && value.$signatures.length === value.addresses.length && value.addresses.length > 0;
40
48
  var isUnsigned = (value) => isBoundWitness(value) && !isSigned(value);
41
49
 
@@ -44,14 +52,18 @@ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
44
52
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
45
53
  var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
46
54
  export {
55
+ AtomicBoundWitnessSchema,
47
56
  BoundWitnessJsonSchema,
48
57
  BoundWitnessSchema,
58
+ asAtomicBoundWitness,
49
59
  asBlock,
50
60
  asBoundWitness,
51
61
  asBoundWitnessWithStorageMeta,
62
+ asOptionalAtomicBoundWitness,
52
63
  asOptionalBoundWitness,
53
64
  asOptionalBoundWitnessWithStorageMeta,
54
65
  hasBlock,
66
+ isAtomicBoundWitness,
55
67
  isBoundWitness,
56
68
  isBoundWitnessWithStorageMeta,
57
69
  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 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, UnsignedBoundWitness,\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 const isSigned = (value: unknown): value is Signed =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isUnsigned = (value: unknown): value is UnsignedBoundWitness =>\n isBoundWitness(value) && !isSigned(value)\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\n// eslint-disable-next-line sonarjs/redundant-type-aliases\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;;;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;AAEzI,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,KACjB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAEvB,IAAM,aAAa,CAAC,UACzB,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK;;;AC/B1C,SAAS,iBAAAA,sBAAqB;AAevB,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/AtomicBoundWitness.ts","../../src/BoundWitness/BoundWitness.ts","../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\n\n// payload that wraps a complete boundwitness with its payloads for use in systems such as submission queues\nexport const AtomicBoundWitnessSchema = 'network.xyo.boundwitness.atomic' as const\nexport type AtomicBoundWitnessSchema = typeof AtomicBoundWitnessSchema\n\nexport interface AtomicBoundWitnessFields<TBoundWitness extends BoundWitness = BoundWitness> {\n bw: TBoundWitness\n payloads: Record<Hash, Payload>\n}\n\nexport type AtomicBoundWitness = Payload<AtomicBoundWitnessFields, AtomicBoundWitnessSchema>\n\nexport const isAtomicBoundWitness = isPayloadOfSchemaType<AtomicBoundWitness>(AtomicBoundWitnessSchema)\n\nexport const asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness)\nexport const asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness)\n","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 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, UnsignedBoundWitness,\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 const isSigned = (value: unknown): value is Signed =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isUnsigned = (value: unknown): value is UnsignedBoundWitness =>\n isBoundWitness(value) && !isSigned(value)\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\n// eslint-disable-next-line sonarjs/redundant-type-aliases\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":";AACA,SAAS,uBAAuB;AAEhC,SAAS,6BAA6B;AAK/B,IAAM,2BAA2B;AAUjC,IAAM,uBAAuB,sBAA0C,wBAAwB;AAE/F,IAAM,uBAAuB,gBAAgB,OAAO,oBAAoB;AACxE,IAAM,+BAA+B,gBAAgB,eAAe,oBAAoB;;;ACmCxF,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;;;ACjBO,IAAM,qBAAqB;;;ACAlC,SAAS,mBAAAA,wBAAuB;AAEhC;AAAA,EACE,yBAAAC;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAOA,IAAM,iBAAiB,CAAC,UAA0CC,uBAAoC,kBAAkB,EAAE,KAAK;AAE/H,IAAM,kBAAkB,uBAAqC,kBAAkB;AAI/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAEtC,IAAM,yBAAyBC,iBAAgB,eAA6B,cAAc;AAE1F,IAAM,gCAAgC,CAAC,UAC5CD,uBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAChF,IAAM,gCAAgCC,iBAAgB,eAA8C,6BAA6B;AACjI,IAAM,wCAAwCA,iBAAgB,eAA8C,6BAA6B;AAEzI,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,KACjB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAEvB,IAAM,aAAa,CAAC,UACzB,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK;;;AC/B1C,SAAS,iBAAAC,sBAAqB;AAevB,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isStorageMeta","isStorageMeta"]}
@@ -1,3 +1,11 @@
1
+ // src/AtomicBoundWitness.ts
2
+ import { AsObjectFactory } from "@xylabs/object";
3
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
4
+ var AtomicBoundWitnessSchema = "network.xyo.boundwitness.atomic";
5
+ var isAtomicBoundWitness = isPayloadOfSchemaType(AtomicBoundWitnessSchema);
6
+ var asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness);
7
+ var asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness);
8
+
1
9
  // src/BoundWitness/BoundWitness.ts
2
10
  var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
11
  var asBlock = (bw) => bw;
@@ -23,19 +31,19 @@ var BoundWitnessJsonSchema = () => {
23
31
  var BoundWitnessSchema = "network.xyo.boundwitness";
24
32
 
25
33
  // src/isBoundWitness.ts
26
- import { AsObjectFactory } from "@xylabs/object";
34
+ import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
27
35
  import {
28
- isPayloadOfSchemaType,
36
+ isPayloadOfSchemaType as isPayloadOfSchemaType2,
29
37
  isStorageMeta,
30
38
  notPayloadOfSchemaType
31
39
  } from "@xyo-network/payload-model";
32
- var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
40
+ var isBoundWitness = (value) => isPayloadOfSchemaType2(BoundWitnessSchema)(value);
33
41
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
34
42
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
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);
43
+ var asOptionalBoundWitness = AsObjectFactory2.createOptional(isBoundWitness);
44
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType2(BoundWitnessSchema)(value) && isStorageMeta(value);
45
+ var asBoundWitnessWithStorageMeta = AsObjectFactory2.createOptional(isBoundWitnessWithStorageMeta);
46
+ var asOptionalBoundWitnessWithStorageMeta = AsObjectFactory2.createOptional(isBoundWitnessWithStorageMeta);
39
47
  var isSigned = (value) => isBoundWitness(value) && value.$signatures.length === value.addresses.length && value.addresses.length > 0;
40
48
  var isUnsigned = (value) => isBoundWitness(value) && !isSigned(value);
41
49
 
@@ -44,14 +52,18 @@ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
44
52
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
45
53
  var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
46
54
  export {
55
+ AtomicBoundWitnessSchema,
47
56
  BoundWitnessJsonSchema,
48
57
  BoundWitnessSchema,
58
+ asAtomicBoundWitness,
49
59
  asBlock,
50
60
  asBoundWitness,
51
61
  asBoundWitnessWithStorageMeta,
62
+ asOptionalAtomicBoundWitness,
52
63
  asOptionalBoundWitness,
53
64
  asOptionalBoundWitnessWithStorageMeta,
54
65
  hasBlock,
66
+ isAtomicBoundWitness,
55
67
  isBoundWitness,
56
68
  isBoundWitnessWithStorageMeta,
57
69
  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 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, UnsignedBoundWitness,\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 const isSigned = (value: unknown): value is Signed =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isUnsigned = (value: unknown): value is UnsignedBoundWitness =>\n isBoundWitness(value) && !isSigned(value)\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\n// eslint-disable-next-line sonarjs/redundant-type-aliases\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;;;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;AAEzI,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,KACjB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAEvB,IAAM,aAAa,CAAC,UACzB,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK;;;AC/B1C,SAAS,iBAAAA,sBAAqB;AAevB,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/AtomicBoundWitness.ts","../../src/BoundWitness/BoundWitness.ts","../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\n\n// payload that wraps a complete boundwitness with its payloads for use in systems such as submission queues\nexport const AtomicBoundWitnessSchema = 'network.xyo.boundwitness.atomic' as const\nexport type AtomicBoundWitnessSchema = typeof AtomicBoundWitnessSchema\n\nexport interface AtomicBoundWitnessFields<TBoundWitness extends BoundWitness = BoundWitness> {\n bw: TBoundWitness\n payloads: Record<Hash, Payload>\n}\n\nexport type AtomicBoundWitness = Payload<AtomicBoundWitnessFields, AtomicBoundWitnessSchema>\n\nexport const isAtomicBoundWitness = isPayloadOfSchemaType<AtomicBoundWitness>(AtomicBoundWitnessSchema)\n\nexport const asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness)\nexport const asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness)\n","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 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, UnsignedBoundWitness,\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 const isSigned = (value: unknown): value is Signed =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isUnsigned = (value: unknown): value is UnsignedBoundWitness =>\n isBoundWitness(value) && !isSigned(value)\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\n// eslint-disable-next-line sonarjs/redundant-type-aliases\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":";AACA,SAAS,uBAAuB;AAEhC,SAAS,6BAA6B;AAK/B,IAAM,2BAA2B;AAUjC,IAAM,uBAAuB,sBAA0C,wBAAwB;AAE/F,IAAM,uBAAuB,gBAAgB,OAAO,oBAAoB;AACxE,IAAM,+BAA+B,gBAAgB,eAAe,oBAAoB;;;ACmCxF,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;;;ACjBO,IAAM,qBAAqB;;;ACAlC,SAAS,mBAAAA,wBAAuB;AAEhC;AAAA,EACE,yBAAAC;AAAA,EAAuB;AAAA,EAAe;AAAA,OACjC;AAOA,IAAM,iBAAiB,CAAC,UAA0CC,uBAAoC,kBAAkB,EAAE,KAAK;AAE/H,IAAM,kBAAkB,uBAAqC,kBAAkB;AAI/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAEtC,IAAM,yBAAyBC,iBAAgB,eAA6B,cAAc;AAE1F,IAAM,gCAAgC,CAAC,UAC5CD,uBAAoC,kBAAkB,EAAE,KAAK,KAAK,cAAc,KAAK;AAChF,IAAM,gCAAgCC,iBAAgB,eAA8C,6BAA6B;AACjI,IAAM,wCAAwCA,iBAAgB,eAA8C,6BAA6B;AAEzI,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,KACjB,MAAM,YAAY,WAAW,MAAM,UAAU,UAC7C,MAAM,UAAU,SAAS;AAEvB,IAAM,aAAa,CAAC,UACzB,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK;;;AC/B1C,SAAS,iBAAAC,sBAAqB;AAevB,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,qCAAqC,CAAC,MAAyD,oBAAoB,CAAC,KAAKC,eAAc,CAAC;","names":["AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isStorageMeta","isStorageMeta"]}
@@ -0,0 +1,17 @@
1
+ import type { Hash } from '@xylabs/hex';
2
+ import type { Payload } from '@xyo-network/payload-model';
3
+ import type { BoundWitness } from './BoundWitness/index.ts';
4
+ export declare const AtomicBoundWitnessSchema: "network.xyo.boundwitness.atomic";
5
+ export type AtomicBoundWitnessSchema = typeof AtomicBoundWitnessSchema;
6
+ export interface AtomicBoundWitnessFields<TBoundWitness extends BoundWitness = BoundWitness> {
7
+ bw: TBoundWitness;
8
+ payloads: Record<Hash, Payload>;
9
+ }
10
+ export type AtomicBoundWitness = Payload<AtomicBoundWitnessFields, AtomicBoundWitnessSchema>;
11
+ export declare const isAtomicBoundWitness: (x?: unknown | null) => x is AtomicBoundWitness;
12
+ export declare const asAtomicBoundWitness: {
13
+ <TType extends AtomicBoundWitness>(value: import(".store/@xylabs-promise-npm-4.11.10-fbfee46454/package").AnyNonPromise, config?: import("@xylabs/object").TypeCheckConfig): TType | undefined;
14
+ <TType extends AtomicBoundWitness>(value: import(".store/@xylabs-promise-npm-4.11.10-fbfee46454/package").AnyNonPromise, assert: import("@xylabs/object").StringOrAlertFunction<AtomicBoundWitness>, config?: import("@xylabs/object").TypeCheckConfig): TType;
15
+ };
16
+ export declare const asOptionalAtomicBoundWitness: <TType extends AtomicBoundWitness>(value: import(".store/@xylabs-promise-npm-4.11.10-fbfee46454/package").AnyNonPromise) => TType | undefined;
17
+ //# sourceMappingURL=AtomicBoundWitness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicBoundWitness.d.ts","sourceRoot":"","sources":["../../src/AtomicBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,eAAO,MAAM,wBAAwB,EAAG,iCAA0C,CAAA;AAClF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAA;AAEtE,MAAM,WAAW,wBAAwB,CAAC,aAAa,SAAS,YAAY,GAAG,YAAY;IACzF,EAAE,EAAE,aAAa,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAA;AAE5F,eAAO,MAAM,oBAAoB,iDAAsE,CAAA;AAEvG,eAAO,MAAM,oBAAoB;;;CAA+C,CAAA;AAChF,eAAO,MAAM,4BAA4B,+IAAuD,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './AtomicBoundWitness.ts';
1
2
  export * from './BoundWitness/index.ts';
2
3
  export * from './isBoundWitness.ts';
3
4
  export * from './QueryBoundWitness.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
@@ -5,10 +5,10 @@ export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
5
5
  export declare const asBoundWitness: <T extends BoundWitness<{
6
6
  schema: string;
7
7
  }> = BoundWitness>(payload?: unknown) => T | undefined;
8
- export declare const asOptionalBoundWitness: <TType extends BoundWitness>(value: import(".store/@xylabs-promise-npm-4.11.2-66516e0826/package").AnyNonPromise) => TType | undefined;
8
+ export declare const asOptionalBoundWitness: <TType extends BoundWitness>(value: import(".store/@xylabs-promise-npm-4.11.10-fbfee46454/package").AnyNonPromise) => TType | undefined;
9
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.11.2-66516e0826/package").AnyNonPromise) => TType | undefined;
11
- export declare const asOptionalBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.11.2-66516e0826/package").AnyNonPromise) => TType | undefined;
10
+ export declare const asBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.11.10-fbfee46454/package").AnyNonPromise) => TType | undefined;
11
+ export declare const asOptionalBoundWitnessWithStorageMeta: <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.11.10-fbfee46454/package").AnyNonPromise) => TType | undefined;
12
12
  export declare const isSigned: (value: unknown) => value is Signed;
13
13
  export declare const isUnsigned: (value: unknown) => value is UnsignedBoundWitness;
14
14
  //# sourceMappingURL=isBoundWitness.d.ts.map
@@ -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,oBAAoB,EAC3C,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,wIAA+D,CAAA;AAElG,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B,yJAA+F,CAAA;AACzI,eAAO,MAAM,qCAAqC,yJAA+F,CAAA;AAEjJ,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAGpB,CAAA;AAE/B,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBACV,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,oBAAoB,EAC3C,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,yIAA+D,CAAA;AAElG,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B,0JAA+F,CAAA;AACzI,eAAO,MAAM,qCAAqC,0JAA+F,CAAA;AAEjJ,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAGpB,CAAA;AAE/B,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBACV,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/boundwitness-model",
3
- "version": "3.18.0",
3
+ "version": "3.18.1",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,12 +29,12 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/types/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/hex": "^4.11.2",
33
- "@xylabs/object": "^4.11.2",
34
- "@xyo-network/payload-model": "^3.18.0"
32
+ "@xylabs/hex": "^4.11.10",
33
+ "@xylabs/object": "^4.11.10",
34
+ "@xyo-network/payload-model": "^3.18.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "^22.15.24",
37
+ "@types/node": "^22.15.29",
38
38
  "@xylabs/ts-scripts-yarn3": "^6.5.7",
39
39
  "@xylabs/tsconfig": "^6.5.7",
40
40
  "typescript": "^5.8.3"
@@ -0,0 +1,22 @@
1
+ import type { Hash } from '@xylabs/hex'
2
+ import { AsObjectFactory } from '@xylabs/object'
3
+ import type { Payload } from '@xyo-network/payload-model'
4
+ import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
5
+
6
+ import type { BoundWitness } from './BoundWitness/index.ts'
7
+
8
+ // payload that wraps a complete boundwitness with its payloads for use in systems such as submission queues
9
+ export const AtomicBoundWitnessSchema = 'network.xyo.boundwitness.atomic' as const
10
+ export type AtomicBoundWitnessSchema = typeof AtomicBoundWitnessSchema
11
+
12
+ export interface AtomicBoundWitnessFields<TBoundWitness extends BoundWitness = BoundWitness> {
13
+ bw: TBoundWitness
14
+ payloads: Record<Hash, Payload>
15
+ }
16
+
17
+ export type AtomicBoundWitness = Payload<AtomicBoundWitnessFields, AtomicBoundWitnessSchema>
18
+
19
+ export const isAtomicBoundWitness = isPayloadOfSchemaType<AtomicBoundWitness>(AtomicBoundWitnessSchema)
20
+
21
+ export const asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness)
22
+ export const asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness)
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './AtomicBoundWitness.ts'
1
2
  export * from './BoundWitness/index.ts'
2
3
  export * from './isBoundWitness.ts'
3
4
  export * from './QueryBoundWitness.ts'