@xyo-network/boundwitness-model 3.5.1 → 3.6.0-rc.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.
@@ -2,21 +2,32 @@ 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 type BoundWitnessOptionalFields = {
13
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) */
14
+ block?: number;
15
+ /** @field unique id of a multi-party chain */
16
+ chain?: Hex;
17
+ error_hashes?: Hash[];
18
+ timestamp?: number;
19
+ /**
20
+ * @field sequential number of the tower (if this boundwitness is part of a multi-party chain)
21
+ * The tower should always be zero until block reaches 2^32 which then causes it to rollover to 0
22
+ * and increases the tower by 1
23
+ */
24
+ tower?: number;
25
+ };
26
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, 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>;
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 BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>;
22
33
  //# 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,MAAM,0BAA0B,GAAG;IACvC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;MAIE;IACF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,0BAA0B,EAAE,0BAA0B;CAAG;AAErG,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,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,WAAW,EAAE,GAAG,EAAE,CAAA;CAAE,CAAA;AAElD,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,14 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
- import type { WithMeta } from '@xyo-network/payload-model';
3
2
  import type { BoundWitness } from './BoundWitness/index.ts';
4
3
  import { BoundWitnessSchema } from './BoundWitness/index.ts';
5
4
  export type QueryBoundWitnessSchema = BoundWitnessSchema;
6
5
  export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
7
- export type QueryBoundWitness = BoundWitness<{
6
+ export type UnsignedQueryBoundWitness = BoundWitness<{
8
7
  additional?: Hash[];
9
8
  query: Hash;
10
9
  resultSet?: string;
11
10
  schema: QueryBoundWitnessSchema;
12
11
  }>;
12
+ export type QueryBoundWitness = UnsignedQueryBoundWitness;
13
13
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
14
- export declare const isQueryBoundWitnessWithMeta: (x?: unknown) => x is WithMeta<QueryBoundWitness>;
15
14
  //# 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;AAEvC,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,yBAAyB,GAAG,YAAY,CAAC;IACnD,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,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA"}
@@ -19,13 +19,9 @@ var BoundWitnessJsonSchema = () => {
19
19
  var BoundWitnessSchema = "network.xyo.boundwitness";
20
20
 
21
21
  // src/isBoundWitness.ts
22
- import {
23
- isPayloadOfSchemaType,
24
- isPayloadOfSchemaTypeWithMeta,
25
- notPayloadOfSchemaType
26
- } from "@xyo-network/payload-model";
22
+ import { isPayloadOfSchemaType, notPayloadOfSchemaType } from "@xyo-network/payload-model";
27
23
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
28
- var isBoundWitnessWithMeta = (value) => isPayloadOfSchemaTypeWithMeta(BoundWitnessSchema)(value);
24
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
29
25
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
30
26
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
31
27
  var isBoundWitnessPayload = isBoundWitness;
@@ -33,7 +29,6 @@ var isBoundWitnessPayload = isBoundWitness;
33
29
  // src/QueryBoundWitness.ts
34
30
  var QueryBoundWitnessSchema = BoundWitnessSchema;
35
31
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
36
- var isQueryBoundWitnessWithMeta = (x) => isBoundWitness(x) && isBoundWitnessWithMeta(x) && x?.query !== void 0;
37
32
  export {
38
33
  BoundWitnessJsonSchema,
39
34
  BoundWitnessSchema,
@@ -41,9 +36,8 @@ export {
41
36
  asBoundWitness,
42
37
  isBoundWitness,
43
38
  isBoundWitnessPayload,
44
- isBoundWitnessWithMeta,
45
39
  isQueryBoundWitness,
46
- isQueryBoundWitnessWithMeta,
40
+ isUnsignedBoundWitness,
47
41
  notBoundWitness
48
42
  };
49
43
  //# 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/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 { isPayloadOfSchemaType, notPayloadOfSchemaType } 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 isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\n/** @deprecated use isBoundWitness instead */\nexport const isBoundWitnessPayload = isBoundWitness\n","import type { Hash } from '@xylabs/hex'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\nimport { isBoundWitness } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type UnsignedQueryBoundWitness = BoundWitness<{\n additional?: Hash[]\n query: Hash\n resultSet?: string\n schema: QueryBoundWitnessSchema\n}>\n\nexport type QueryBoundWitness = UnsignedQueryBoundWitness\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as 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;;;ACDtD,SAAS,uBAAuB,8BAA8B;AAKvD,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACP9B,IAAM,0BAAmD;AAWzD,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;","names":[]}
@@ -1,15 +1,10 @@
1
- import type { WithMeta } from '@xyo-network/payload-model';
2
- import type { BoundWitness } from './BoundWitness/index.ts';
1
+ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
2
  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";
7
- };
3
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
4
+ export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
8
5
  export declare const asBoundWitness: <T extends BoundWitness<{
9
6
  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;
7
+ }> = BoundWitness>(payload?: unknown) => T | undefined;
13
8
  /** @deprecated use isBoundWitness instead */
14
9
  export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
15
10
  //# 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":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UATI,OAAO,KAAG,KAAK,IAAI,YASN,CAAA"}
@@ -2,21 +2,32 @@ 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 type BoundWitnessOptionalFields = {
13
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) */
14
+ block?: number;
15
+ /** @field unique id of a multi-party chain */
16
+ chain?: Hex;
17
+ error_hashes?: Hash[];
18
+ timestamp?: number;
19
+ /**
20
+ * @field sequential number of the tower (if this boundwitness is part of a multi-party chain)
21
+ * The tower should always be zero until block reaches 2^32 which then causes it to rollover to 0
22
+ * and increases the tower by 1
23
+ */
24
+ tower?: number;
25
+ };
26
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, 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>;
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 BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>;
22
33
  //# 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,MAAM,0BAA0B,GAAG;IACvC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;MAIE;IACF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,0BAA0B,EAAE,0BAA0B;CAAG;AAErG,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,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,WAAW,EAAE,GAAG,EAAE,CAAA;CAAE,CAAA;AAElD,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,14 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
- import type { WithMeta } from '@xyo-network/payload-model';
3
2
  import type { BoundWitness } from './BoundWitness/index.ts';
4
3
  import { BoundWitnessSchema } from './BoundWitness/index.ts';
5
4
  export type QueryBoundWitnessSchema = BoundWitnessSchema;
6
5
  export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
7
- export type QueryBoundWitness = BoundWitness<{
6
+ export type UnsignedQueryBoundWitness = BoundWitness<{
8
7
  additional?: Hash[];
9
8
  query: Hash;
10
9
  resultSet?: string;
11
10
  schema: QueryBoundWitnessSchema;
12
11
  }>;
12
+ export type QueryBoundWitness = UnsignedQueryBoundWitness;
13
13
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
14
- export declare const isQueryBoundWitnessWithMeta: (x?: unknown) => x is WithMeta<QueryBoundWitness>;
15
14
  //# 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;AAEvC,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,yBAAyB,GAAG,YAAY,CAAC;IACnD,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,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA"}
@@ -19,13 +19,9 @@ var BoundWitnessJsonSchema = () => {
19
19
  var BoundWitnessSchema = "network.xyo.boundwitness";
20
20
 
21
21
  // src/isBoundWitness.ts
22
- import {
23
- isPayloadOfSchemaType,
24
- isPayloadOfSchemaTypeWithMeta,
25
- notPayloadOfSchemaType
26
- } from "@xyo-network/payload-model";
22
+ import { isPayloadOfSchemaType, notPayloadOfSchemaType } from "@xyo-network/payload-model";
27
23
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
28
- var isBoundWitnessWithMeta = (value) => isPayloadOfSchemaTypeWithMeta(BoundWitnessSchema)(value);
24
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
29
25
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
30
26
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
31
27
  var isBoundWitnessPayload = isBoundWitness;
@@ -33,7 +29,6 @@ var isBoundWitnessPayload = isBoundWitness;
33
29
  // src/QueryBoundWitness.ts
34
30
  var QueryBoundWitnessSchema = BoundWitnessSchema;
35
31
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
36
- var isQueryBoundWitnessWithMeta = (x) => isBoundWitness(x) && isBoundWitnessWithMeta(x) && x?.query !== void 0;
37
32
  export {
38
33
  BoundWitnessJsonSchema,
39
34
  BoundWitnessSchema,
@@ -41,9 +36,8 @@ export {
41
36
  asBoundWitness,
42
37
  isBoundWitness,
43
38
  isBoundWitnessPayload,
44
- isBoundWitnessWithMeta,
45
39
  isQueryBoundWitness,
46
- isQueryBoundWitnessWithMeta,
40
+ isUnsignedBoundWitness,
47
41
  notBoundWitness
48
42
  };
49
43
  //# 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/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 { isPayloadOfSchemaType, notPayloadOfSchemaType } 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 isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\n/** @deprecated use isBoundWitness instead */\nexport const isBoundWitnessPayload = isBoundWitness\n","import type { Hash } from '@xylabs/hex'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\nimport { isBoundWitness } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type UnsignedQueryBoundWitness = BoundWitness<{\n additional?: Hash[]\n query: Hash\n resultSet?: string\n schema: QueryBoundWitnessSchema\n}>\n\nexport type QueryBoundWitness = UnsignedQueryBoundWitness\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as 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;;;ACDtD,SAAS,uBAAuB,8BAA8B;AAKvD,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACP9B,IAAM,0BAAmD;AAWzD,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;","names":[]}
@@ -1,15 +1,10 @@
1
- import type { WithMeta } from '@xyo-network/payload-model';
2
- import type { BoundWitness } from './BoundWitness/index.ts';
1
+ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
2
  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";
7
- };
3
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
4
+ export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
8
5
  export declare const asBoundWitness: <T extends BoundWitness<{
9
6
  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;
7
+ }> = BoundWitness>(payload?: unknown) => T | undefined;
13
8
  /** @deprecated use isBoundWitness instead */
14
9
  export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
15
10
  //# 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":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UATI,OAAO,KAAG,KAAK,IAAI,YASN,CAAA"}
@@ -2,21 +2,32 @@ 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 type BoundWitnessOptionalFields = {
13
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) */
14
+ block?: number;
15
+ /** @field unique id of a multi-party chain */
16
+ chain?: Hex;
17
+ error_hashes?: Hash[];
18
+ timestamp?: number;
19
+ /**
20
+ * @field sequential number of the tower (if this boundwitness is part of a multi-party chain)
21
+ * The tower should always be zero until block reaches 2^32 which then causes it to rollover to 0
22
+ * and increases the tower by 1
23
+ */
24
+ tower?: number;
25
+ };
26
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, 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>;
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 BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>;
22
33
  //# 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,MAAM,0BAA0B,GAAG;IACvC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;MAIE;IACF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,0BAA0B,EAAE,0BAA0B;CAAG;AAErG,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,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,WAAW,EAAE,GAAG,EAAE,CAAA;CAAE,CAAA;AAElD,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,14 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
- import type { WithMeta } from '@xyo-network/payload-model';
3
2
  import type { BoundWitness } from './BoundWitness/index.ts';
4
3
  import { BoundWitnessSchema } from './BoundWitness/index.ts';
5
4
  export type QueryBoundWitnessSchema = BoundWitnessSchema;
6
5
  export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
7
- export type QueryBoundWitness = BoundWitness<{
6
+ export type UnsignedQueryBoundWitness = BoundWitness<{
8
7
  additional?: Hash[];
9
8
  query: Hash;
10
9
  resultSet?: string;
11
10
  schema: QueryBoundWitnessSchema;
12
11
  }>;
12
+ export type QueryBoundWitness = UnsignedQueryBoundWitness;
13
13
  export declare const isQueryBoundWitness: (x?: unknown) => x is QueryBoundWitness;
14
- export declare const isQueryBoundWitnessWithMeta: (x?: unknown) => x is WithMeta<QueryBoundWitness>;
15
14
  //# 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;AAEvC,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,yBAAyB,GAAG,YAAY,CAAC;IACnD,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,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEzD,eAAO,MAAM,mBAAmB,OAAQ,OAAO,KAAG,CAAC,IAAI,iBAAuF,CAAA"}
@@ -19,13 +19,9 @@ var BoundWitnessJsonSchema = () => {
19
19
  var BoundWitnessSchema = "network.xyo.boundwitness";
20
20
 
21
21
  // src/isBoundWitness.ts
22
- import {
23
- isPayloadOfSchemaType,
24
- isPayloadOfSchemaTypeWithMeta,
25
- notPayloadOfSchemaType
26
- } from "@xyo-network/payload-model";
22
+ import { isPayloadOfSchemaType, notPayloadOfSchemaType } from "@xyo-network/payload-model";
27
23
  var isBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
28
- var isBoundWitnessWithMeta = (value) => isPayloadOfSchemaTypeWithMeta(BoundWitnessSchema)(value);
24
+ var isUnsignedBoundWitness = (value) => isPayloadOfSchemaType(BoundWitnessSchema)(value);
29
25
  var notBoundWitness = notPayloadOfSchemaType(BoundWitnessSchema);
30
26
  var asBoundWitness = (payload) => isBoundWitness(payload) ? payload : void 0;
31
27
  var isBoundWitnessPayload = isBoundWitness;
@@ -33,7 +29,6 @@ var isBoundWitnessPayload = isBoundWitness;
33
29
  // src/QueryBoundWitness.ts
34
30
  var QueryBoundWitnessSchema = BoundWitnessSchema;
35
31
  var isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== void 0;
36
- var isQueryBoundWitnessWithMeta = (x) => isBoundWitness(x) && isBoundWitnessWithMeta(x) && x?.query !== void 0;
37
32
  export {
38
33
  BoundWitnessJsonSchema,
39
34
  BoundWitnessSchema,
@@ -41,9 +36,8 @@ export {
41
36
  asBoundWitness,
42
37
  isBoundWitness,
43
38
  isBoundWitnessPayload,
44
- isBoundWitnessWithMeta,
45
39
  isQueryBoundWitness,
46
- isQueryBoundWitnessWithMeta,
40
+ isUnsignedBoundWitness,
47
41
  notBoundWitness
48
42
  };
49
43
  //# 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/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 { isPayloadOfSchemaType, notPayloadOfSchemaType } 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 isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>\n isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)\nexport const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)\n\nexport const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>\n isBoundWitness(payload) ? (payload as T) : undefined\n\n/** @deprecated use isBoundWitness instead */\nexport const isBoundWitnessPayload = isBoundWitness\n","import type { Hash } from '@xylabs/hex'\n\nimport type { BoundWitness } from './BoundWitness/index.ts'\nimport { BoundWitnessSchema } from './BoundWitness/index.ts'\nimport { isBoundWitness } from './isBoundWitness.ts'\n\nexport type QueryBoundWitnessSchema = BoundWitnessSchema\nexport const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema\n\nexport type UnsignedQueryBoundWitness = BoundWitness<{\n additional?: Hash[]\n query: Hash\n resultSet?: string\n schema: QueryBoundWitnessSchema\n}>\n\nexport type QueryBoundWitness = UnsignedQueryBoundWitness\n\nexport const isQueryBoundWitness = (x?: unknown): x is QueryBoundWitness => isBoundWitness(x) && (x as 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;;;ACDtD,SAAS,uBAAuB,8BAA8B;AAKvD,IAAM,iBAAiB,CAAC,UAA0C,sBAAoC,kBAAkB,EAAE,KAAK;AAC/H,IAAM,yBAAyB,CAAC,UACrC,sBAA4C,kBAAkB,EAAE,KAAK;AAChE,IAAM,kBAAkB,uBAAqC,kBAAkB;AAE/E,IAAM,iBAAiB,CAA4D,YACxF,eAAe,OAAO,IAAK,UAAgB;AAGtC,IAAM,wBAAwB;;;ACP9B,IAAM,0BAAmD;AAWzD,IAAM,sBAAsB,CAAC,MAAwC,eAAe,CAAC,KAAM,GAAyB,UAAU;","names":[]}
@@ -1,15 +1,10 @@
1
- import type { WithMeta } from '@xyo-network/payload-model';
2
- import type { BoundWitness } from './BoundWitness/index.ts';
1
+ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts';
3
2
  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";
7
- };
3
+ export declare const isUnsignedBoundWitness: (value: unknown) => value is UnsignedBoundWitness;
4
+ export declare const notBoundWitness: (x?: unknown | null) => x is BoundWitness;
8
5
  export declare const asBoundWitness: <T extends BoundWitness<{
9
6
  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;
7
+ }> = BoundWitness>(payload?: unknown) => T | undefined;
13
8
  /** @deprecated use isBoundWitness instead */
14
9
  export declare const isBoundWitnessPayload: (value: unknown) => value is BoundWitness;
15
10
  //# 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":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGjF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA8E,CAAA;AACvI,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,KAAK,IAAI,oBACO,CAAA;AACxE,eAAO,MAAM,eAAe,2CAA2D,CAAA;AAEvF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,2BAA2B,OAAO,kBACrD,CAAA;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,UATI,OAAO,KAAG,KAAK,IAAI,YASN,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/boundwitness-model",
3
- "version": "3.5.1",
3
+ "version": "3.6.0-rc.1",
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.1"
32
+ "@xylabs/hex": "^4.4.12",
33
+ "@xylabs/object": "^4.4.12",
34
+ "@xyo-network/payload-model": "^3.6.0-rc.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "^22.10.0",
37
+ "@types/node": "^22.10.1",
38
38
  "@xylabs/ts-scripts-yarn3": "^4.2.4",
39
39
  "@xylabs/tsconfig": "^4.2.4",
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,38 @@ 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 type BoundWitnessOptionalFields = {
18
+ /** @field sequential number (if this boundwitness is part of a multi-party chain) */
19
+ block?: number
20
+ /** @field unique id of a multi-party chain */
21
+ chain?: Hex
22
+ error_hashes?: Hash[]
23
+ timestamp?: number
24
+ /**
25
+ * @field sequential number of the tower (if this boundwitness is part of a multi-party chain)
26
+ * The tower should always be zero until block reaches 2^32 which then causes it to rollover to 0
27
+ * and increases the tower by 1
28
+ */
29
+ tower?: number
30
+ }
31
+
32
+ export interface BoundWitnessFields extends BoundWitnessRequiredFields, BoundWitnessOptionalFields {}
33
+
34
+ export type UnsignedBoundWitness<T extends Payload | EmptyObject | void = void> = Payload<
27
35
  T extends void ? BoundWitnessFields : BoundWitnessFields & T,
28
36
  T extends void ? BoundWitnessSchema
29
37
  : T extends Payload ? T['schema']
30
38
  : BoundWitnessSchema
31
39
  >
40
+
41
+ export type Signed<T> = T & { $signatures: Hex[] }
42
+
43
+ export type BoundWitness<T extends Payload | EmptyObject | void = void> = Signed<UnsignedBoundWitness<T>>
@@ -1,20 +1,19 @@
1
1
  import type { Hash } from '@xylabs/hex'
2
- import type { WithMeta } from '@xyo-network/payload-model'
3
2
 
4
3
  import type { BoundWitness } from './BoundWitness/index.ts'
5
4
  import { BoundWitnessSchema } from './BoundWitness/index.ts'
6
- import { isBoundWitness, isBoundWitnessWithMeta } from './isBoundWitness.ts'
5
+ import { isBoundWitness } from './isBoundWitness.ts'
7
6
 
8
7
  export type QueryBoundWitnessSchema = BoundWitnessSchema
9
8
  export const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema
10
9
 
11
- export type QueryBoundWitness = BoundWitness<{
10
+ export type UnsignedQueryBoundWitness = BoundWitness<{
12
11
  additional?: Hash[]
13
12
  query: Hash
14
13
  resultSet?: string
15
14
  schema: QueryBoundWitnessSchema
16
15
  }>
17
16
 
17
+ export type QueryBoundWitness = UnsignedQueryBoundWitness
18
+
18
19
  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
@@ -1,14 +1,11 @@
1
- import type { WithMeta } from '@xyo-network/payload-model'
2
- import {
3
- isPayloadOfSchemaType, isPayloadOfSchemaTypeWithMeta, notPayloadOfSchemaType,
4
- } from '@xyo-network/payload-model'
1
+ import { isPayloadOfSchemaType, notPayloadOfSchemaType } from '@xyo-network/payload-model'
5
2
 
6
- import type { BoundWitness } from './BoundWitness/index.ts'
3
+ import type { BoundWitness, UnsignedBoundWitness } from './BoundWitness/index.ts'
7
4
  import { BoundWitnessSchema } from './BoundWitness/index.ts'
8
5
 
9
6
  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)
7
+ export const isUnsignedBoundWitness = (value: unknown): value is UnsignedBoundWitness =>
8
+ isPayloadOfSchemaType<UnsignedBoundWitness>(BoundWitnessSchema)(value)
12
9
  export const notBoundWitness = notPayloadOfSchemaType<BoundWitness>(BoundWitnessSchema)
13
10
 
14
11
  export const asBoundWitness = <T extends BoundWitness<{ schema: string }> = BoundWitness>(payload?: unknown) =>