@xyo-network/boundwitness-model 3.5.2 → 3.6.0-rc.10

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.
@@ -2,21 +2,35 @@ import type { Address, Hash, Hex } from '@xylabs/hex';
2
2
  import type { EmptyObject } from '@xylabs/object';
3
3
  import type { Payload, Schema } from '@xyo-network/payload-model';
4
4
  import type { BoundWitnessSchema } from './BoundWitnessSchema.ts';
5
- export type BoundWitnessFields = {
6
- $meta: {
7
- /** @field Array of signatures by the accounts that are listed in addresses */
8
- signatures: Hex[];
9
- };
5
+ export interface BoundWitnessRequiredFields {
10
6
  /** @field Array of signatures by the accounts that are listed in addresses */
11
7
  addresses: Address[];
12
- blockNumber?: number;
13
- error_hashes?: Hash[];
14
8
  payload_hashes: Hash[];
15
9
  payload_schemas: Schema[];
16
10
  previous_hashes: (Hash | null)[];
17
- /** @field Hash of the QueryBoundWitness that caused this BoundWitness to be created */
18
- sourceQuery?: Hash;
19
- timestamp: number;
11
+ }
12
+ export interface BoundWitnessMeta {
13
+ $sourceQuery?: Hash;
14
+ }
15
+ export interface BoundWitnessBlockField {
16
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) zero padded to 32 characters */
17
+ block: Hex;
18
+ }
19
+ export interface BoundWitnessChainField {
20
+ /** @field unique id of a multi-party chain (usually staking contract address) */
21
+ chain: Hex;
22
+ }
23
+ export interface BoundWitnessOptionalFields extends Partial<BoundWitnessBlockField>, Partial<BoundWitnessChainField> {
24
+ root: Hash;
25
+ }
26
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, Partial<BoundWitnessOptionalFields> {
27
+ }
28
+ export type UnsignedBoundWitness<T extends Payload | EmptyObject | void = void> = Payload<T extends void ? BoundWitnessFields : BoundWitnessFields & T, T extends void ? BoundWitnessSchema : T extends Payload ? T['schema'] : BoundWitnessSchema> & BoundWitnessMeta;
29
+ export type Signed<T> = T & {
30
+ $signatures: Hex[];
20
31
  };
21
- export type BoundWitness<T extends Payload | EmptyObject | void = void> = Payload<T extends void ? BoundWitnessFields : BoundWitnessFields & T, T extends void ? BoundWitnessSchema : T extends Payload ? T['schema'] : BoundWitnessSchema>;
32
+ export type WithBlock = BoundWitness & BoundWitnessBlockField;
33
+ export declare const hasBlock: (bw: BoundWitness) => bw is WithBlock;
34
+ export declare const asBlock: (bw: BoundWitness) => WithBlock;
35
+ export type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>;
22
36
  //# sourceMappingURL=BoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitness.d.ts","sourceRoot":"","sources":["../../../src/BoundWitness/BoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,GAAG,EACnB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,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,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE;QACL,8EAA8E;QAC9E,UAAU,EAAE,GAAG,EAAE,CAAA;KAClB,CAAA;IACD,8EAA8E;IAC9E,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAA;IAChC,wFAAwF;IACxF,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CAC/E,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,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;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,15 +1,12 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
- import type { WithMeta } from '@xyo-network/payload-model';
2
+ import { type WithStorageMeta } from '@xyo-network/payload-model';
3
3
  import type { BoundWitness } from './BoundWitness/index.ts';
4
- import { BoundWitnessSchema } from './BoundWitness/index.ts';
5
- export type QueryBoundWitnessSchema = BoundWitnessSchema;
6
- export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
7
- export type QueryBoundWitness = BoundWitness<{
8
- additional?: Hash[];
4
+ export type QueryBoundWitnessFields = {
5
+ error_hashes?: Hash[];
9
6
  query: Hash;
10
- resultSet?: string;
11
- schema: QueryBoundWitnessSchema;
12
- }>;
7
+ };
8
+ export type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>;
9
+ export type QueryBoundWitness = UnsignedQueryBoundWitness;
13
10
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
14
- export declare const isQueryBoundWitnessWithMeta: (x?: unknown) => x is WithMeta<QueryBoundWitness>;
11
+ export declare const isQueryBoundWitnessWithStorageMeta: (x?: unknown) => x is WithStorageMeta<QueryBoundWitness>;
15
12
  //# sourceMappingURL=QueryBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAA;AACxD,eAAO,MAAM,uBAAuB,EAAE,uBAA4C,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAC3C,UAAU,CAAC,EAAE,IAAI,EAAE,CAAA;IACnB,KAAK,EAAE,IAAI,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,uBAAuB,CAAA;CAChC,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,2BAA2B,OAAQ,OAAO,KAAG,CAAC,IAAI,QAAQ,CAAC,iBAAiB,CACkB,CAAA"}
1
+ {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,kCAAkC,OAAQ,OAAO,KAAG,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAA+C,CAAA"}
@@ -1,3 +1,7 @@
1
+ // src/BoundWitness/BoundWitness.ts
2
+ var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
+ var asBlock = (bw) => bw;
4
+
1
5
  // src/BoundWitness/BoundWitnessJsonSchema.ts
2
6
  var BoundWitnessJsonSchema = () => {
3
7
  return {
@@ -19,31 +23,35 @@ var BoundWitnessJsonSchema = () => {
19
23
  var BoundWitnessSchema = "network.xyo.boundwitness";
20
24
 
21
25
  // src/isBoundWitness.ts
26
+ import { AsObjectFactory } from "@xylabs/object";
22
27
  import {
23
28
  isPayloadOfSchemaType,
24
- isPayloadOfSchemaTypeWithMeta,
29
+ isStorageMeta,
25
30
  notPayloadOfSchemaType
26
31
  } from "@xyo-network/payload-model";
27
32
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
28
- var isBoundWitnessWithMeta = (value) => isPayloadOfSchemaTypeWithMeta(BoundWitnessSchema)(value);
33
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
34
+ var asBoundWitnessWithStorageMeta = AsObjectFactory.create(isBoundWitnessWithStorageMeta);
35
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
29
36
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
30
37
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
31
- var isBoundWitnessPayload = isBoundWitness;
32
38
 
33
39
  // src/QueryBoundWitness.ts
34
- var QueryBoundWitnessSchema = BoundWitnessSchema;
40
+ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
35
41
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
36
- var isQueryBoundWitnessWithMeta = (x) => isBoundWitness(x) && isBoundWitnessWithMeta(x) && x?.query !== void 0;
42
+ var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
37
43
  export {
38
44
  BoundWitnessJsonSchema,
39
45
  BoundWitnessSchema,
40
- QueryBoundWitnessSchema,
46
+ asBlock,
41
47
  asBoundWitness,
48
+ asBoundWitnessWithStorageMeta,
49
+ hasBlock,
42
50
  isBoundWitness,
43
- isBoundWitnessPayload,
44
- isBoundWitnessWithMeta,
51
+ isBoundWitnessWithStorageMeta,
45
52
  isQueryBoundWitness,
46
- isQueryBoundWitnessWithMeta,
53
+ isQueryBoundWitnessWithStorageMeta,
54
+ isUnsignedBoundWitness,
47
55
  notBoundWitness
48
56
  };
49
57
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["// 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 { WithMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type { BoundWitness } 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 isBoundWitnessWithMeta = (value: unknown): value is WithMeta<BoundWitness> =>\n isPayloadOfSchemaTypeWithMeta<BoundWitness>(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 type { WithMeta } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\nimport { isBoundWitness, isBoundWitnessWithMeta } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n additional?: Hash[]\n query: Hash\n resultSet?: string\n schema: QueryBoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\nexport const isQueryBoundWitnessWithMeta = (x?: unknown): x is WithMeta<QueryBoundWitness> =>\n isBoundWitness(x) && isBoundWitnessWithMeta(x) && (x as WithMeta<QueryBoundWitness>)?.query !== undefined\n"],"mappings":";AAGO,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,EAA+B;AAAA,OACjD;AAKA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,yBAAyB,CAAC,UACrC,8BAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACT9B,IAAM,0BAAmD;AASzD,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,8BAA8B,CAAC,MAC1C,eAAe,CAAC,KAAK,uBAAuB,CAAC,KAAM,GAAmC,UAAU;","names":[]}
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 { 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)\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\nexport const asBoundWitnessWithStorageMeta = AsObjectFactory.create<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\n\nexport const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\n// TODO: Use AsObjectFactory here to match standard patter\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\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;;;ACDtD,SAAS,uBAAuB;AAEhC;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;AAChF,IAAM,gCAAgC,gBAAgB,OAAsC,6BAA6B;AAEzH,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAG/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;;;ACnB7C,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,15 +1,14 @@
1
- import type { WithMeta } from '@xyo-network/payload-model';
2
- import type { BoundWitness } from './BoundWitness/index.ts';
1
+ import type { WithStorageMeta } from '@xyo-network/payload-model';
2
+ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
3
  export declare const isBoundWitness: (value: unknown) => value is BoundWitness;
4
- export declare const isBoundWitnessWithMeta: (value: unknown) => value is WithMeta<BoundWitness>;
5
- export declare const notBoundWitness: (x?: unknown | null) => x is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("./BoundWitness/BoundWitness.ts").BoundWitnessFields & {
6
- schema: "network.xyo.boundwitness";
4
+ export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
5
+ export declare const asBoundWitnessWithStorageMeta: {
6
+ <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.21-54890ce283/package").AnyNonPromise, config?: import("@xylabs/object").TypeCheckConfig): TType | undefined;
7
+ <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.21-54890ce283/package").AnyNonPromise, assert: import("@xylabs/object").StringOrAlertFunction<WithStorageMeta<BoundWitness>>, config?: import("@xylabs/object").TypeCheckConfig): TType;
7
8
  };
9
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
10
+ export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
8
11
  export declare const asBoundWitness: <T extends BoundWitness<{
9
12
  schema: string;
10
- }> = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("./BoundWitness/BoundWitness.ts").BoundWitnessFields & {
11
- schema: "network.xyo.boundwitness";
12
- }>(payload?: unknown) => T | undefined;
13
- /** @deprecated use isBoundWitness instead */
14
- export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
13
+ }> = BoundWitness>(payload?: unknown) => T | undefined;
15
14
  //# 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,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAK1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,QAAQ,CAAC,YAAY,CACd,CAAA;AACxE,eAAO,MAAM,eAAe;;CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;;aAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UATI,OAAO,KAAG,KAAK,IAAI,YASN,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;AACvI,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B;gEANjB,sDAAiB,iCAAiC,gBAC9D;gEAEiB,sDAAiB,wHACxC,gBAAoB;CAEsG,CAAA;AAEjI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAGvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA"}
@@ -2,21 +2,35 @@ import type { Address, Hash, Hex } from '@xylabs/hex';
2
2
  import type { EmptyObject } from '@xylabs/object';
3
3
  import type { Payload, Schema } from '@xyo-network/payload-model';
4
4
  import type { BoundWitnessSchema } from './BoundWitnessSchema.ts';
5
- export type BoundWitnessFields = {
6
- $meta: {
7
- /** @field Array of signatures by the accounts that are listed in addresses */
8
- signatures: Hex[];
9
- };
5
+ export interface BoundWitnessRequiredFields {
10
6
  /** @field Array of signatures by the accounts that are listed in addresses */
11
7
  addresses: Address[];
12
- blockNumber?: number;
13
- error_hashes?: Hash[];
14
8
  payload_hashes: Hash[];
15
9
  payload_schemas: Schema[];
16
10
  previous_hashes: (Hash | null)[];
17
- /** @field Hash of the QueryBoundWitness that caused this BoundWitness to be created */
18
- sourceQuery?: Hash;
19
- timestamp: number;
11
+ }
12
+ export interface BoundWitnessMeta {
13
+ $sourceQuery?: Hash;
14
+ }
15
+ export interface BoundWitnessBlockField {
16
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) zero padded to 32 characters */
17
+ block: Hex;
18
+ }
19
+ export interface BoundWitnessChainField {
20
+ /** @field unique id of a multi-party chain (usually staking contract address) */
21
+ chain: Hex;
22
+ }
23
+ export interface BoundWitnessOptionalFields extends Partial<BoundWitnessBlockField>, Partial<BoundWitnessChainField> {
24
+ root: Hash;
25
+ }
26
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, Partial<BoundWitnessOptionalFields> {
27
+ }
28
+ export type UnsignedBoundWitness<T extends Payload | EmptyObject | void = void> = Payload<T extends void ? BoundWitnessFields : BoundWitnessFields & T, T extends void ? BoundWitnessSchema : T extends Payload ? T['schema'] : BoundWitnessSchema> & BoundWitnessMeta;
29
+ export type Signed<T> = T & {
30
+ $signatures: Hex[];
20
31
  };
21
- export type BoundWitness<T extends Payload | EmptyObject | void = void> = Payload<T extends void ? BoundWitnessFields : BoundWitnessFields & T, T extends void ? BoundWitnessSchema : T extends Payload ? T['schema'] : BoundWitnessSchema>;
32
+ export type WithBlock = BoundWitness & BoundWitnessBlockField;
33
+ export declare const hasBlock: (bw: BoundWitness) => bw is WithBlock;
34
+ export declare const asBlock: (bw: BoundWitness) => WithBlock;
35
+ export type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>;
22
36
  //# sourceMappingURL=BoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitness.d.ts","sourceRoot":"","sources":["../../../src/BoundWitness/BoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,GAAG,EACnB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,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,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE;QACL,8EAA8E;QAC9E,UAAU,EAAE,GAAG,EAAE,CAAA;KAClB,CAAA;IACD,8EAA8E;IAC9E,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAA;IAChC,wFAAwF;IACxF,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CAC/E,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,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;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,15 +1,12 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
- import type { WithMeta } from '@xyo-network/payload-model';
2
+ import { type WithStorageMeta } from '@xyo-network/payload-model';
3
3
  import type { BoundWitness } from './BoundWitness/index.ts';
4
- import { BoundWitnessSchema } from './BoundWitness/index.ts';
5
- export type QueryBoundWitnessSchema = BoundWitnessSchema;
6
- export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
7
- export type QueryBoundWitness = BoundWitness<{
8
- additional?: Hash[];
4
+ export type QueryBoundWitnessFields = {
5
+ error_hashes?: Hash[];
9
6
  query: Hash;
10
- resultSet?: string;
11
- schema: QueryBoundWitnessSchema;
12
- }>;
7
+ };
8
+ export type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>;
9
+ export type QueryBoundWitness = UnsignedQueryBoundWitness;
13
10
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
14
- export declare const isQueryBoundWitnessWithMeta: (x?: unknown) => x is WithMeta<QueryBoundWitness>;
11
+ export declare const isQueryBoundWitnessWithStorageMeta: (x?: unknown) => x is WithStorageMeta<QueryBoundWitness>;
15
12
  //# sourceMappingURL=QueryBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAA;AACxD,eAAO,MAAM,uBAAuB,EAAE,uBAA4C,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAC3C,UAAU,CAAC,EAAE,IAAI,EAAE,CAAA;IACnB,KAAK,EAAE,IAAI,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,uBAAuB,CAAA;CAChC,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,2BAA2B,OAAQ,OAAO,KAAG,CAAC,IAAI,QAAQ,CAAC,iBAAiB,CACkB,CAAA"}
1
+ {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,kCAAkC,OAAQ,OAAO,KAAG,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAA+C,CAAA"}
@@ -1,3 +1,7 @@
1
+ // src/BoundWitness/BoundWitness.ts
2
+ var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
+ var asBlock = (bw) => bw;
4
+
1
5
  // src/BoundWitness/BoundWitnessJsonSchema.ts
2
6
  var BoundWitnessJsonSchema = () => {
3
7
  return {
@@ -19,31 +23,35 @@ var BoundWitnessJsonSchema = () => {
19
23
  var BoundWitnessSchema = "network.xyo.boundwitness";
20
24
 
21
25
  // src/isBoundWitness.ts
26
+ import { AsObjectFactory } from "@xylabs/object";
22
27
  import {
23
28
  isPayloadOfSchemaType,
24
- isPayloadOfSchemaTypeWithMeta,
29
+ isStorageMeta,
25
30
  notPayloadOfSchemaType
26
31
  } from "@xyo-network/payload-model";
27
32
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
28
- var isBoundWitnessWithMeta = (value) => isPayloadOfSchemaTypeWithMeta(BoundWitnessSchema)(value);
33
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
34
+ var asBoundWitnessWithStorageMeta = AsObjectFactory.create(isBoundWitnessWithStorageMeta);
35
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
29
36
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
30
37
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
31
- var isBoundWitnessPayload = isBoundWitness;
32
38
 
33
39
  // src/QueryBoundWitness.ts
34
- var QueryBoundWitnessSchema = BoundWitnessSchema;
40
+ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
35
41
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
36
- var isQueryBoundWitnessWithMeta = (x) => isBoundWitness(x) && isBoundWitnessWithMeta(x) && x?.query !== void 0;
42
+ var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
37
43
  export {
38
44
  BoundWitnessJsonSchema,
39
45
  BoundWitnessSchema,
40
- QueryBoundWitnessSchema,
46
+ asBlock,
41
47
  asBoundWitness,
48
+ asBoundWitnessWithStorageMeta,
49
+ hasBlock,
42
50
  isBoundWitness,
43
- isBoundWitnessPayload,
44
- isBoundWitnessWithMeta,
51
+ isBoundWitnessWithStorageMeta,
45
52
  isQueryBoundWitness,
46
- isQueryBoundWitnessWithMeta,
53
+ isQueryBoundWitnessWithStorageMeta,
54
+ isUnsignedBoundWitness,
47
55
  notBoundWitness
48
56
  };
49
57
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["// 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 { WithMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type { BoundWitness } 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 isBoundWitnessWithMeta = (value: unknown): value is WithMeta<BoundWitness> =>\n isPayloadOfSchemaTypeWithMeta<BoundWitness>(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 type { WithMeta } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\nimport { isBoundWitness, isBoundWitnessWithMeta } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n additional?: Hash[]\n query: Hash\n resultSet?: string\n schema: QueryBoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\nexport const isQueryBoundWitnessWithMeta = (x?: unknown): x is WithMeta<QueryBoundWitness> =>\n isBoundWitness(x) && isBoundWitnessWithMeta(x) && (x as WithMeta<QueryBoundWitness>)?.query !== undefined\n"],"mappings":";AAGO,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,EAA+B;AAAA,OACjD;AAKA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,yBAAyB,CAAC,UACrC,8BAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACT9B,IAAM,0BAAmD;AASzD,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,8BAA8B,CAAC,MAC1C,eAAe,CAAC,KAAK,uBAAuB,CAAC,KAAM,GAAmC,UAAU;","names":[]}
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 { 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)\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\nexport const asBoundWitnessWithStorageMeta = AsObjectFactory.create<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\n\nexport const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\n// TODO: Use AsObjectFactory here to match standard patter\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\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;;;ACDtD,SAAS,uBAAuB;AAEhC;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;AAChF,IAAM,gCAAgC,gBAAgB,OAAsC,6BAA6B;AAEzH,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAG/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;;;ACnB7C,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,15 +1,14 @@
1
- import type { WithMeta } from '@xyo-network/payload-model';
2
- import type { BoundWitness } from './BoundWitness/index.ts';
1
+ import type { WithStorageMeta } from '@xyo-network/payload-model';
2
+ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
3
  export declare const isBoundWitness: (value: unknown) => value is BoundWitness;
4
- export declare const isBoundWitnessWithMeta: (value: unknown) => value is WithMeta<BoundWitness>;
5
- export declare const notBoundWitness: (x?: unknown | null) => x is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("./BoundWitness/BoundWitness.ts").BoundWitnessFields & {
6
- schema: "network.xyo.boundwitness";
4
+ export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
5
+ export declare const asBoundWitnessWithStorageMeta: {
6
+ <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.21-54890ce283/package").AnyNonPromise, config?: import("@xylabs/object").TypeCheckConfig): TType | undefined;
7
+ <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.21-54890ce283/package").AnyNonPromise, assert: import("@xylabs/object").StringOrAlertFunction<WithStorageMeta<BoundWitness>>, config?: import("@xylabs/object").TypeCheckConfig): TType;
7
8
  };
9
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
10
+ export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
8
11
  export declare const asBoundWitness: <T extends BoundWitness<{
9
12
  schema: string;
10
- }> = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("./BoundWitness/BoundWitness.ts").BoundWitnessFields & {
11
- schema: "network.xyo.boundwitness";
12
- }>(payload?: unknown) => T | undefined;
13
- /** @deprecated use isBoundWitness instead */
14
- export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
13
+ }> = BoundWitness>(payload?: unknown) => T | undefined;
15
14
  //# 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,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAK1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,QAAQ,CAAC,YAAY,CACd,CAAA;AACxE,eAAO,MAAM,eAAe;;CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;;aAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UATI,OAAO,KAAG,KAAK,IAAI,YASN,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;AACvI,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B;gEANjB,sDAAiB,iCAAiC,gBAC9D;gEAEiB,sDAAiB,wHACxC,gBAAoB;CAEsG,CAAA;AAEjI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAGvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA"}
@@ -2,21 +2,35 @@ import type { Address, Hash, Hex } from '@xylabs/hex';
2
2
  import type { EmptyObject } from '@xylabs/object';
3
3
  import type { Payload, Schema } from '@xyo-network/payload-model';
4
4
  import type { BoundWitnessSchema } from './BoundWitnessSchema.ts';
5
- export type BoundWitnessFields = {
6
- $meta: {
7
- /** @field Array of signatures by the accounts that are listed in addresses */
8
- signatures: Hex[];
9
- };
5
+ export interface BoundWitnessRequiredFields {
10
6
  /** @field Array of signatures by the accounts that are listed in addresses */
11
7
  addresses: Address[];
12
- blockNumber?: number;
13
- error_hashes?: Hash[];
14
8
  payload_hashes: Hash[];
15
9
  payload_schemas: Schema[];
16
10
  previous_hashes: (Hash | null)[];
17
- /** @field Hash of the QueryBoundWitness that caused this BoundWitness to be created */
18
- sourceQuery?: Hash;
19
- timestamp: number;
11
+ }
12
+ export interface BoundWitnessMeta {
13
+ $sourceQuery?: Hash;
14
+ }
15
+ export interface BoundWitnessBlockField {
16
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) zero padded to 32 characters */
17
+ block: Hex;
18
+ }
19
+ export interface BoundWitnessChainField {
20
+ /** @field unique id of a multi-party chain (usually staking contract address) */
21
+ chain: Hex;
22
+ }
23
+ export interface BoundWitnessOptionalFields extends Partial<BoundWitnessBlockField>, Partial<BoundWitnessChainField> {
24
+ root: Hash;
25
+ }
26
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, Partial<BoundWitnessOptionalFields> {
27
+ }
28
+ export type UnsignedBoundWitness<T extends Payload | EmptyObject | void = void> = Payload<T extends void ? BoundWitnessFields : BoundWitnessFields & T, T extends void ? BoundWitnessSchema : T extends Payload ? T['schema'] : BoundWitnessSchema> & BoundWitnessMeta;
29
+ export type Signed<T> = T & {
30
+ $signatures: Hex[];
20
31
  };
21
- export type BoundWitness<T extends Payload | EmptyObject | void = void> = Payload<T extends void ? BoundWitnessFields : BoundWitnessFields & T, T extends void ? BoundWitnessSchema : T extends Payload ? T['schema'] : BoundWitnessSchema>;
32
+ export type WithBlock = BoundWitness & BoundWitnessBlockField;
33
+ export declare const hasBlock: (bw: BoundWitness) => bw is WithBlock;
34
+ export declare const asBlock: (bw: BoundWitness) => WithBlock;
35
+ export type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>;
22
36
  //# sourceMappingURL=BoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitness.d.ts","sourceRoot":"","sources":["../../../src/BoundWitness/BoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,GAAG,EACnB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,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,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE;QACL,8EAA8E;QAC9E,UAAU,EAAE,GAAG,EAAE,CAAA;KAClB,CAAA;IACD,8EAA8E;IAC9E,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAA;IAChC,wFAAwF;IACxF,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,IAAI,OAAO,CAC/E,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,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;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,15 +1,12 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
- import type { WithMeta } from '@xyo-network/payload-model';
2
+ import { type WithStorageMeta } from '@xyo-network/payload-model';
3
3
  import type { BoundWitness } from './BoundWitness/index.ts';
4
- import { BoundWitnessSchema } from './BoundWitness/index.ts';
5
- export type QueryBoundWitnessSchema = BoundWitnessSchema;
6
- export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
7
- export type QueryBoundWitness = BoundWitness<{
8
- additional?: Hash[];
4
+ export type QueryBoundWitnessFields = {
5
+ error_hashes?: Hash[];
9
6
  query: Hash;
10
- resultSet?: string;
11
- schema: QueryBoundWitnessSchema;
12
- }>;
7
+ };
8
+ export type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>;
9
+ export type QueryBoundWitness = UnsignedQueryBoundWitness;
13
10
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
14
- export declare const isQueryBoundWitnessWithMeta: (x?: unknown) => x is WithMeta<QueryBoundWitness>;
11
+ export declare const isQueryBoundWitnessWithStorageMeta: (x?: unknown) => x is WithStorageMeta<QueryBoundWitness>;
15
12
  //# sourceMappingURL=QueryBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAA;AACxD,eAAO,MAAM,uBAAuB,EAAE,uBAA4C,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAC3C,UAAU,CAAC,EAAE,IAAI,EAAE,CAAA;IACnB,KAAK,EAAE,IAAI,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,uBAAuB,CAAA;CAChC,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,2BAA2B,OAAQ,OAAO,KAAG,CAAC,IAAI,QAAQ,CAAC,iBAAiB,CACkB,CAAA"}
1
+ {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA;AAC9I,eAAO,MAAM,kCAAkC,OAAQ,OAAO,KAAG,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAA+C,CAAA"}
@@ -1,3 +1,7 @@
1
+ // src/BoundWitness/BoundWitness.ts
2
+ var hasBlock = (bw) => bw.block !== void 0 && typeof bw.block === "string";
3
+ var asBlock = (bw) => bw;
4
+
1
5
  // src/BoundWitness/BoundWitnessJsonSchema.ts
2
6
  var BoundWitnessJsonSchema = () => {
3
7
  return {
@@ -19,31 +23,35 @@ var BoundWitnessJsonSchema = () => {
19
23
  var BoundWitnessSchema = "network.xyo.boundwitness";
20
24
 
21
25
  // src/isBoundWitness.ts
26
+ import { AsObjectFactory } from "@xylabs/object";
22
27
  import {
23
28
  isPayloadOfSchemaType,
24
- isPayloadOfSchemaTypeWithMeta,
29
+ isStorageMeta,
25
30
  notPayloadOfSchemaType
26
31
  } from "@xyo-network/payload-model";
27
32
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
28
- var isBoundWitnessWithMeta = (value) => isPayloadOfSchemaTypeWithMeta(BoundWitnessSchema)(value);
33
+ var isBoundWitnessWithStorageMeta = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value) && isStorageMeta(value);
34
+ var asBoundWitnessWithStorageMeta = AsObjectFactory.create(isBoundWitnessWithStorageMeta);
35
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
29
36
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
30
37
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
31
- var isBoundWitnessPayload = isBoundWitness;
32
38
 
33
39
  // src/QueryBoundWitness.ts
34
- var QueryBoundWitnessSchema = BoundWitnessSchema;
40
+ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
35
41
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
36
- var isQueryBoundWitnessWithMeta = (x) => isBoundWitness(x) && isBoundWitnessWithMeta(x) && x?.query !== void 0;
42
+ var isQueryBoundWitnessWithStorageMeta = (x) => isQueryBoundWitness(x) && isStorageMeta2(x);
37
43
  export {
38
44
  BoundWitnessJsonSchema,
39
45
  BoundWitnessSchema,
40
- QueryBoundWitnessSchema,
46
+ asBlock,
41
47
  asBoundWitness,
48
+ asBoundWitnessWithStorageMeta,
49
+ hasBlock,
42
50
  isBoundWitness,
43
- isBoundWitnessPayload,
44
- isBoundWitnessWithMeta,
51
+ isBoundWitnessWithStorageMeta,
45
52
  isQueryBoundWitness,
46
- isQueryBoundWitnessWithMeta,
53
+ isQueryBoundWitnessWithStorageMeta,
54
+ isUnsignedBoundWitness,
47
55
  notBoundWitness
48
56
  };
49
57
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/BoundWitness/BoundWitnessJsonSchema.ts","../../src/BoundWitness/BoundWitnessSchema.ts","../../src/isBoundWitness.ts","../../src/QueryBoundWitness.ts"],"sourcesContent":["// 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 { WithMeta } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, notPayloadOfSchemaType,\n} from '@xyo-network/payload-model'\n\nimport type { BoundWitness } 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 isBoundWitnessWithMeta = (value: unknown): value is WithMeta<BoundWitness> =>\n isPayloadOfSchemaTypeWithMeta<BoundWitness>(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 type { WithMeta } from '@xyo-network/payload-model'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\nimport { isBoundWitness, isBoundWitnessWithMeta } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type QueryBoundWitness = BoundWitness<{\n additional?: Hash[]\n query: Hash\n resultSet?: string\n schema: QueryBoundWitnessSchema\n}>\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined\nexport const isQueryBoundWitnessWithMeta = (x?: unknown): x is WithMeta<QueryBoundWitness> =>\n isBoundWitness(x) && isBoundWitnessWithMeta(x) && (x as WithMeta<QueryBoundWitness>)?.query !== undefined\n"],"mappings":";AAGO,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,EAA+B;AAAA,OACjD;AAKA,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,yBAAyB,CAAC,UACrC,8BAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACT9B,IAAM,0BAAmD;AASzD,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;AAC9H,IAAM,8BAA8B,CAAC,MAC1C,eAAe,CAAC,KAAK,uBAAuB,CAAC,KAAM,GAAmC,UAAU;","names":[]}
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 { 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)\nexport const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>\n isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)\nexport const asBoundWitnessWithStorageMeta = AsObjectFactory.create<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)\n\nexport const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\n// TODO: Use AsObjectFactory here to match standard patter\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\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;;;ACDtD,SAAS,uBAAuB;AAEhC;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;AAChF,IAAM,gCAAgC,gBAAgB,OAAsC,6BAA6B;AAEzH,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAG/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;;;ACnB7C,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,15 +1,14 @@
1
- import type { WithMeta } from '@xyo-network/payload-model';
2
- import type { BoundWitness } from './BoundWitness/index.ts';
1
+ import type { WithStorageMeta } from '@xyo-network/payload-model';
2
+ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
3
  export declare const isBoundWitness: (value: unknown) => value is BoundWitness;
4
- export declare const isBoundWitnessWithMeta: (value: unknown) => value is WithMeta<BoundWitness>;
5
- export declare const notBoundWitness: (x?: unknown | null) => x is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("./BoundWitness/BoundWitness.ts").BoundWitnessFields & {
6
- schema: "network.xyo.boundwitness";
4
+ export declare const isBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BoundWitness>;
5
+ export declare const asBoundWitnessWithStorageMeta: {
6
+ <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.21-54890ce283/package").AnyNonPromise, config?: import("@xylabs/object").TypeCheckConfig): TType | undefined;
7
+ <TType extends WithStorageMeta<BoundWitness>>(value: import(".store/@xylabs-promise-npm-4.4.21-54890ce283/package").AnyNonPromise, assert: import("@xylabs/object").StringOrAlertFunction<WithStorageMeta<BoundWitness>>, config?: import("@xylabs/object").TypeCheckConfig): TType;
7
8
  };
9
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
10
+ export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
8
11
  export declare const asBoundWitness: <T extends BoundWitness<{
9
12
  schema: string;
10
- }> = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("./BoundWitness/BoundWitness.ts").BoundWitnessFields & {
11
- schema: "network.xyo.boundwitness";
12
- }>(payload?: unknown) => T | undefined;
13
- /** @deprecated use isBoundWitness instead */
14
- export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
13
+ }> = BoundWitness>(payload?: unknown) => T | undefined;
15
14
  //# 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,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAK1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,QAAQ,CAAC,YAAY,CACd,CAAA;AACxE,eAAO,MAAM,eAAe;;CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;;aAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UATI,OAAO,KAAG,KAAK,IAAI,YASN,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;AACvI,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,YAAY,CACZ,CAAA;AACxF,eAAO,MAAM,6BAA6B;gEANjB,sDAAiB,iCAAiC,gBAC9D;gEAEiB,sDAAiB,wHACxC,gBAAoB;CAEsG,CAAA;AAEjI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAGvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/boundwitness-model",
3
- "version": "3.5.2",
3
+ "version": "3.6.0-rc.10",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,17 +29,18 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/hex": "^4.4.9",
33
- "@xylabs/object": "^4.4.9",
34
- "@xyo-network/payload-model": "^3.5.2"
32
+ "@xylabs/hex": "^4.4.21",
33
+ "@xylabs/object": "^4.4.21",
34
+ "@xyo-network/payload-model": "^3.6.0-rc.10"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "^22.10.0",
38
- "@xylabs/ts-scripts-yarn3": "^4.2.4",
39
- "@xylabs/tsconfig": "^4.2.4",
37
+ "@types/node": "^22.10.2",
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
- }
44
+ },
45
+ "stableVersion": "3.5.2"
45
46
  }
@@ -6,26 +6,49 @@ import type { Payload, Schema } from '@xyo-network/payload-model'
6
6
 
7
7
  import type { BoundWitnessSchema } from './BoundWitnessSchema.ts'
8
8
 
9
- export type BoundWitnessFields = {
10
- $meta: {
11
- /** @field Array of signatures by the accounts that are listed in addresses */
12
- signatures: Hex[]
13
- }
9
+ export interface BoundWitnessRequiredFields {
14
10
  /** @field Array of signatures by the accounts that are listed in addresses */
15
11
  addresses: Address[]
16
- blockNumber?: number
17
- error_hashes?: Hash[]
18
12
  payload_hashes: Hash[]
19
13
  payload_schemas: Schema[]
20
14
  previous_hashes: (Hash | null)[]
21
- /** @field Hash of the QueryBoundWitness that caused this BoundWitness to be created */
22
- sourceQuery?: Hash
23
- timestamp: number
24
15
  }
25
16
 
26
- export type BoundWitness<T extends Payload | EmptyObject | void = void> = Payload<
17
+ export interface BoundWitnessMeta {
18
+ // the query that initiated the bound witness
19
+ $sourceQuery?: Hash
20
+ }
21
+
22
+ export interface BoundWitnessBlockField {
23
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) zero padded to 32 characters */
24
+ block: Hex
25
+ }
26
+
27
+ export interface BoundWitnessChainField {
28
+ /** @field unique id of a multi-party chain (usually staking contract address) */
29
+ chain: Hex
30
+ }
31
+
32
+ export interface BoundWitnessOptionalFields extends Partial<BoundWitnessBlockField>, Partial<BoundWitnessChainField> {
33
+ root: Hash
34
+ }
35
+
36
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, Partial<BoundWitnessOptionalFields> {}
37
+
38
+ export type UnsignedBoundWitness<T extends Payload | EmptyObject | void = void> = Payload<
27
39
  T extends void ? BoundWitnessFields : BoundWitnessFields & T,
28
40
  T extends void ? BoundWitnessSchema
29
41
  : T extends Payload ? T['schema']
30
42
  : BoundWitnessSchema
31
- >
43
+ > & BoundWitnessMeta
44
+
45
+ export type Signed<T> = T & {
46
+ $signatures: Hex[]
47
+ }
48
+
49
+ export type WithBlock = BoundWitness & BoundWitnessBlockField
50
+
51
+ export const hasBlock = (bw: BoundWitness): bw is WithBlock => bw.block !== undefined && typeof bw.block === 'string'
52
+ export const asBlock = (bw: BoundWitness): WithBlock => bw as WithBlock
53
+
54
+ export type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>
@@ -1,20 +1,17 @@
1
1
  import type { Hash } from '@xylabs/hex'
2
- import type { WithMeta } from '@xyo-network/payload-model'
2
+ import { isStorageMeta, type WithStorageMeta } from '@xyo-network/payload-model'
3
3
 
4
4
  import type { BoundWitness } from './BoundWitness/index.ts'
5
- import { BoundWitnessSchema } from './BoundWitness/index.ts'
6
- import { isBoundWitness, isBoundWitnessWithMeta } from './isBoundWitness.ts'
5
+ import { isBoundWitness } from './isBoundWitness.ts'
7
6
 
8
- export type QueryBoundWitnessSchema = BoundWitnessSchema
9
- export const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema
10
-
11
- export type QueryBoundWitness = BoundWitness<{
12
- additional?: Hash[]
7
+ export type QueryBoundWitnessFields = {
8
+ error_hashes?: Hash[]
13
9
  query: Hash
14
- resultSet?: string
15
- schema: QueryBoundWitnessSchema
16
- }>
10
+ }
11
+
12
+ export type UnsignedQueryBoundWitness = BoundWitness<QueryBoundWitnessFields>
13
+
14
+ export type QueryBoundWitness = UnsignedQueryBoundWitness
17
15
 
18
16
  export const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined
19
- export const isQueryBoundWitnessWithMeta = (x?: unknown): x is WithMeta<QueryBoundWitness> =>
20
- isBoundWitness(x) && isBoundWitnessWithMeta(x) && (x as WithMeta<QueryBoundWitness>)?.query !== undefined
17
+ export const isQueryBoundWitnessWithStorageMeta = (x?: unknown): x is WithStorageMeta<QueryBoundWitness> => isQueryBoundWitness(x) && isStorageMeta(x)
@@ -1,18 +1,21 @@
1
- import type { WithMeta } from '@xyo-network/payload-model'
1
+ import { AsObjectFactory } from '@xylabs/object'
2
+ import type { WithStorageMeta } from '@xyo-network/payload-model'
2
3
  import {
3
- isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, notPayloadOfSchemaType,
4
+ isPayloadOfSchemaType, isStorageMeta, notPayloadOfSchemaType,
4
5
  } from '@xyo-network/payload-model'
5
6
 
6
- import type { BoundWitness } from './BoundWitness/index.ts'
7
+ 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 isBoundWitnessWithMeta = (value: unknown): value is WithMeta<BoundWitness> =>
11
- isPayloadOfSchemaTypeWithMeta<BoundWitness>(BoundWitnessSchema)(value)
11
+ export const isBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BoundWitness> =>
12
+ isPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)(value) && isStorageMeta(value)
13
+ export const asBoundWitnessWithStorageMeta = AsObjectFactory.create<WithStorageMeta<BoundWitness>>(isBoundWitnessWithStorageMeta)
14
+
15
+ export const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>
16
+ isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)
12
17
  export const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)
13
18
 
19
+ // TODO: Use AsObjectFactory here to match standard patter
14
20
  export const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>
15
21
  isBoundWitness(payload) ? (payload as T) : undefined
16
-
17
- /** @deprecated use isBoundWitness instead */
18
- export const isBoundWitnessPayload = isBoundWitness