@xyo-network/xl1-protocol 1.4.26 → 1.4.28

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.
Files changed (33) hide show
  1. package/dist/neutral/index.mjs +37 -49
  2. package/dist/neutral/index.mjs.map +1 -1
  3. package/dist/types/block/BlockBoundWitness.d.ts +8 -1
  4. package/dist/types/block/BlockBoundWitness.d.ts.map +1 -1
  5. package/dist/types/block/HydratedBlock.d.ts +3 -12
  6. package/dist/types/block/HydratedBlock.d.ts.map +1 -1
  7. package/dist/types/isHydratedBoundWitness.d.ts +2 -2
  8. package/dist/types/isHydratedBoundWitness.d.ts.map +1 -1
  9. package/dist/types/provider/v1/XyoRunner.d.ts +2 -2
  10. package/dist/types/provider/v1/XyoRunner.d.ts.map +1 -1
  11. package/dist/types/provider/v1/XyoViewer.d.ts +9 -9
  12. package/dist/types/provider/v1/XyoViewer.d.ts.map +1 -1
  13. package/dist/types/provider/v2/Chain/Block.d.ts +2 -2
  14. package/dist/types/provider/v2/Chain/Block.d.ts.map +1 -1
  15. package/dist/types/provider/v2/Chain/Chain.d.ts +2 -2
  16. package/dist/types/provider/v2/Chain/Chain.d.ts.map +1 -1
  17. package/dist/types/transaction/HydratedTransaction.d.ts +6 -12
  18. package/dist/types/transaction/HydratedTransaction.d.ts.map +1 -1
  19. package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts +2 -2
  20. package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts.map +1 -1
  21. package/dist/types/validation/transaction/error.d.ts +2 -2
  22. package/dist/types/validation/transaction/error.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/src/block/BlockBoundWitness.ts +19 -2
  25. package/src/block/HydratedBlock.ts +6 -45
  26. package/src/isHydratedBoundWitness.ts +6 -6
  27. package/src/provider/v1/XyoRunner.ts +2 -2
  28. package/src/provider/v1/XyoViewer.ts +9 -9
  29. package/src/provider/v2/Chain/Block.ts +2 -2
  30. package/src/provider/v2/Chain/Chain.ts +2 -2
  31. package/src/transaction/HydratedTransaction.ts +6 -47
  32. package/src/validation/transaction/HydratedTransactionValidationFunction.ts +2 -4
  33. package/src/validation/transaction/error.ts +2 -2
@@ -57,27 +57,27 @@ var asOptionalTransfer = AsObjectFactory4.createOptional(isTransfer);
57
57
  import { AsObjectFactory as AsObjectFactory6 } from "@xylabs/object";
58
58
 
59
59
  // src/isHydratedBoundWitness.ts
60
- import { isBoundWitness } from "@xyo-network/boundwitness-model";
61
- import { isAnyPayload as isAnyPayload2 } from "@xyo-network/payload-model";
60
+ import { isBoundWitnessWithStorageMeta } from "@xyo-network/boundwitness-model";
61
+ import { isAnyPayload as isAnyPayload2, isStorageMeta } from "@xyo-network/payload-model";
62
62
  var isHydratedBoundWitness = (value) => {
63
- return Array.isArray(value) && value.length === 2 && isBoundWitness(value[0]) && Array.isArray(value[1]) && !value[1].some((item) => !isAnyPayload2(item));
63
+ return Array.isArray(value) && value.length === 2 && isBoundWitnessWithStorageMeta(value[0]) && Array.isArray(value[1]) && !value[1].some((item) => !isAnyPayload2(item) || !isStorageMeta(item));
64
64
  };
65
65
 
66
66
  // src/transaction/TransactionBoundWitness.ts
67
67
  import { AsObjectFactory as AsObjectFactory5 } from "@xylabs/object";
68
- import { isBoundWitness as isBoundWitness2 } from "@xyo-network/boundwitness-model";
69
- import { isHashStorageMeta, isStorageMeta } from "@xyo-network/payload-model";
68
+ import { isBoundWitness } from "@xyo-network/boundwitness-model";
69
+ import { isHashStorageMeta, isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
70
70
  var isTransactionBoundWitness = (value) => {
71
71
  const typedObj = value;
72
- return isBoundWitness2(value) && typedObj.chain !== void 0 && typedObj.fees !== void 0 && typedObj.exp !== void 0 && typedObj.nbf !== void 0;
72
+ return isBoundWitness(value) && typedObj.chain !== void 0 && typedObj.fees !== void 0 && typedObj.exp !== void 0 && typedObj.nbf !== void 0;
73
73
  };
74
74
  var isSignedTransactionBoundWitness = (value) => {
75
75
  return isTransactionBoundWitness(value) && isSigned(value);
76
76
  };
77
- var isSigned = (value) => isBoundWitness2(value) && value.$signatures.length === value.addresses.length && value.addresses.length > 0;
78
- var isTransactionBoundWitnessWithStorageMeta = (value) => isTransactionBoundWitness(value) && isStorageMeta(value);
77
+ var isSigned = (value) => isBoundWitness(value) && value.$signatures.length === value.addresses.length && value.addresses.length > 0;
78
+ var isTransactionBoundWitnessWithStorageMeta = (value) => isTransactionBoundWitness(value) && isStorageMeta2(value);
79
79
  var isTransactionBoundWitnessWithHashStorageMeta = (value) => isTransactionBoundWitness(value) && isHashStorageMeta(value);
80
- var isSignedTransactionBoundWitnessWithStorageMeta = (value) => isSignedTransactionBoundWitness(value) && isStorageMeta(value);
80
+ var isSignedTransactionBoundWitnessWithStorageMeta = (value) => isSignedTransactionBoundWitness(value) && isStorageMeta2(value);
81
81
  var isSignedTransactionBoundWitnessWithHashStorageMeta = (value) => isSignedTransactionBoundWitness(value) && isHashStorageMeta(value);
82
82
  var asTransactionBoundWitness = AsObjectFactory5.create(isTransactionBoundWitness);
83
83
  var asTransactionBoundWitnessWithStorageMeta = AsObjectFactory5.create(isTransactionBoundWitnessWithStorageMeta);
@@ -85,23 +85,11 @@ var asTransactionBoundWitnessWithHashStorageMeta = AsObjectFactory5.create(isTra
85
85
 
86
86
  // src/transaction/HydratedTransaction.ts
87
87
  var isHydratedTransaction = (value) => {
88
- return isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]);
88
+ return isHydratedBoundWitness(value) && isSignedTransactionBoundWitnessWithStorageMeta(value[0]);
89
89
  };
90
90
  var asHydratedTransaction = AsObjectFactory6.create(
91
91
  isHydratedTransaction
92
92
  );
93
- var isHydratedTransactionWithStorageMeta = (value) => {
94
- return isHydratedBoundWitness(value) && isTransactionBoundWitnessWithStorageMeta(value[0]);
95
- };
96
- var asHydratedTransactionWithStorageMeta = AsObjectFactory6.create(
97
- isHydratedTransactionWithStorageMeta
98
- );
99
- var isHydratedTransactionWithHashStorageMeta = (value) => {
100
- return isHydratedBoundWitness(value) && isTransactionBoundWitnessWithHashStorageMeta(value[0]);
101
- };
102
- var asHydratedTransactionWithHashStorageMeta = AsObjectFactory6.create(
103
- isHydratedTransactionWithHashStorageMeta
104
- );
105
93
 
106
94
  // src/block/AllowedBlockPayload.ts
107
95
  var AllowedBlockPayloadSchemas = [TransferSchema, ChainStakeIntentSchema, SchemaSchema, BoundWitnessSchema, HashSchema];
@@ -118,41 +106,42 @@ var isAllowedBlockPayloadWithHashStorageMeta = (value) => {
118
106
  // src/block/BlockBoundWitness.ts
119
107
  import { isHex } from "@xylabs/hex";
120
108
  import { AsObjectFactory as AsObjectFactory7 } from "@xylabs/object";
121
- import { isBoundWitness as isBoundWitness3 } from "@xyo-network/boundwitness-model";
122
- import { isHashStorageMeta as isHashStorageMeta3, isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
109
+ import { isBoundWitness as isBoundWitness2, isSigned as isSigned2 } from "@xyo-network/boundwitness-model";
110
+ import { isHashStorageMeta as isHashStorageMeta3, isStorageMeta as isStorageMeta3 } from "@xyo-network/payload-model";
123
111
  var isBlockBoundWitness = (value) => {
124
112
  const typedObj = value;
125
- return isBoundWitness3(value) && Number.isInteger(typedObj.block) && isHex(typedObj.chain);
113
+ return isBoundWitness2(value) && Number.isInteger(typedObj.block) && isHex(typedObj.chain);
114
+ };
115
+ var isSignedBlockBoundWitness = (value) => {
116
+ return isBlockBoundWitness(value) && isSigned2(value);
126
117
  };
127
118
  var isBlockBoundWitnessWithStorageMeta = (value) => {
128
- return isBlockBoundWitness(value) && isStorageMeta2(value);
119
+ return isBlockBoundWitness(value) && isStorageMeta3(value);
120
+ };
121
+ var isSignedBlockBoundWitnessWithStorageMeta = (value) => {
122
+ return isBlockBoundWitnessWithStorageMeta(value) && isSigned2(value);
129
123
  };
130
124
  var isBlockBoundWitnessWithHashStorageMeta = (value) => {
131
125
  return isBlockBoundWitness(value) && isHashStorageMeta3(value);
132
126
  };
127
+ var isSignedBlockBoundWitnessWithHashStorageMeta = (value) => {
128
+ return isBlockBoundWitnessWithHashStorageMeta(value) && isSigned2(value);
129
+ };
133
130
  var asBlockBoundWitness = AsObjectFactory7.create(isBlockBoundWitness);
131
+ var asSignedBlockBoundWitness = AsObjectFactory7.create(isSignedBlockBoundWitness);
134
132
  var asBlockBoundWitnessWithStorageMeta = AsObjectFactory7.create(isBlockBoundWitnessWithStorageMeta);
133
+ var asSignedBlockBoundWitnessWithStorageMeta = AsObjectFactory7.create(isSignedBlockBoundWitnessWithStorageMeta);
134
+ var asBlockBoundWitnessWithHashStorageMeta = AsObjectFactory7.create(isBlockBoundWitnessWithHashStorageMeta);
135
+ var asSignedBlockBoundWitnessWithHashStorageMeta = AsObjectFactory7.create(isSignedBlockBoundWitnessWithHashStorageMeta);
135
136
 
136
137
  // src/block/HydratedBlock.ts
137
138
  import { AsObjectFactory as AsObjectFactory8 } from "@xylabs/object";
138
139
  var isHydratedBlock = (value) => {
139
- return isHydratedBoundWitness(value) && isBlockBoundWitness(value[0]);
140
+ return isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0]);
140
141
  };
141
142
  var asHydratedBlock = AsObjectFactory8.create(
142
143
  isHydratedBlock
143
144
  );
144
- var isHydratedBlockWithStorageMeta = (value) => {
145
- return isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0]);
146
- };
147
- var asHydratedBlockWithStorageMeta = AsObjectFactory8.create(
148
- isHydratedBlockWithStorageMeta
149
- );
150
- var isHydratedBlockWithHashStorageMeta = (value) => {
151
- return isHydratedBoundWitness(value) && isBlockBoundWitnessWithHashStorageMeta(value[0]);
152
- };
153
- var asHydratedBlockWithHashStorageMeta = AsObjectFactory8.create(
154
- isHydratedBlockWithHashStorageMeta
155
- );
156
145
 
157
146
  // src/xl1/XL1.ts
158
147
  var XL1 = (value) => value;
@@ -277,13 +266,13 @@ var isChainInformationPayload = isPayloadOfSchemaType8(ChainInformationPayloadSc
277
266
 
278
267
  // src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts
279
268
  import { AsObjectFactory as AsObjectFactory10 } from "@xylabs/object";
280
- import { isPayloadOfSchemaType as isPayloadOfSchemaType9, isStorageMeta as isStorageMeta3 } from "@xyo-network/payload-model";
269
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType9, isStorageMeta as isStorageMeta4 } from "@xyo-network/payload-model";
281
270
  var ChainIndexingServiceStateSchema = "network.xyo.chain.indexing.service.state";
282
271
  var isChainIndexingServiceState = (payload) => {
283
272
  return isPayloadOfSchemaType9(ChainIndexingServiceStateSchema)(payload);
284
273
  };
285
274
  var asChainIndexingServiceState = AsObjectFactory10.create(isChainIndexingServiceState);
286
- var isChainIndexingServiceStateWithStorageMeta = (value) => isChainIndexingServiceState(value) && isStorageMeta3(value);
275
+ var isChainIndexingServiceStateWithStorageMeta = (value) => isChainIndexingServiceState(value) && isStorageMeta4(value);
287
276
  var asChainIndexingServiceStateWithStorageMeta = AsObjectFactory10.create(isChainIndexingServiceStateWithStorageMeta);
288
277
 
289
278
  // src/validation/payload/error.ts
@@ -327,6 +316,7 @@ export {
327
316
  XL1Places,
328
317
  asAtomicBoundWitness,
329
318
  asBlockBoundWitness,
319
+ asBlockBoundWitnessWithHashStorageMeta,
330
320
  asBlockBoundWitnessWithStorageMeta,
331
321
  asBlockNumber,
332
322
  asBlockNumberWithSources,
@@ -337,17 +327,16 @@ export {
337
327
  asHashPayload,
338
328
  asHashPayloadWithStorageMeta,
339
329
  asHydratedBlock,
340
- asHydratedBlockWithHashStorageMeta,
341
- asHydratedBlockWithStorageMeta,
342
330
  asHydratedTransaction,
343
- asHydratedTransactionWithHashStorageMeta,
344
- asHydratedTransactionWithStorageMeta,
345
331
  asOptionalAtomicBoundWitness,
346
332
  asOptionalBlockNumber,
347
333
  asOptionalBlockNumberWithSources,
348
334
  asOptionalChainStakeIntent,
349
335
  asOptionalHashPayload,
350
336
  asOptionalTransfer,
337
+ asSignedBlockBoundWitness,
338
+ asSignedBlockBoundWitnessWithHashStorageMeta,
339
+ asSignedBlockBoundWitnessWithStorageMeta,
351
340
  asTransactionBoundWitness,
352
341
  asTransactionBoundWitnessWithHashStorageMeta,
353
342
  asTransactionBoundWitnessWithStorageMeta,
@@ -372,14 +361,13 @@ export {
372
361
  isExecutable,
373
362
  isHashPayload,
374
363
  isHydratedBlock,
375
- isHydratedBlockWithHashStorageMeta,
376
- isHydratedBlockWithStorageMeta,
377
364
  isHydratedTransaction,
378
- isHydratedTransactionWithHashStorageMeta,
379
- isHydratedTransactionWithStorageMeta,
380
365
  isInBlockPayloadValidationError,
381
366
  isNetworkStatus,
382
367
  isSigned,
368
+ isSignedBlockBoundWitness,
369
+ isSignedBlockBoundWitnessWithHashStorageMeta,
370
+ isSignedBlockBoundWitnessWithStorageMeta,
383
371
  isSignedTransactionBoundWitness,
384
372
  isSignedTransactionBoundWitnessWithHashStorageMeta,
385
373
  isSignedTransactionBoundWitnessWithStorageMeta,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/block/AllowedBlockPayload.ts","../../src/payload/AtomicBoundWitness.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/TransferPayload.ts","../../src/transaction/HydratedTransaction.ts","../../src/isHydratedBoundWitness.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/xl1/XL1.ts","../../src/constants/minTransactionFees.ts","../../src/constants/defaultTransactionFees.ts","../../src/constants/StepSizes.ts","../../src/constants/TransactionGasCosts.ts","../../src/fields/BlockNumber.ts","../../src/network/Status.ts","../../src/services/Chain/ChainIdentification.ts","../../src/services/Chain/ChainInformation.ts","../../src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts","../../src/validation/payload/error.ts","../../src/validation/error.ts"],"sourcesContent":["import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isSchema } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\n\nimport type {\n ChainStakeIntent, HashPayload, Transfer,\n} from '../payload/index.ts'\nimport {\n ChainStakeIntentSchema, HashSchema, isChainStakeIntent, isHashPayload, isTransfer, TransferSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\n\nexport type AllowedBlockPayload = Transfer | ChainStakeIntent | SchemaPayload | TransactionBoundWitness | HashPayload\nexport const AllowedBlockPayloadSchemas: Schema[] = [TransferSchema, ChainStakeIntentSchema, SchemaSchema, BoundWitnessSchema, HashSchema]\nexport type AllowedBlockPayloadSchema = typeof AllowedBlockPayloadSchemas[number]\n\nexport const isAllowedBlockPayloadSchema = (value: unknown): value is AllowedBlockPayloadSchema => {\n return isSchema(value) && AllowedBlockPayloadSchemas.includes(value)\n}\n\nexport const isAllowedBlockPayload = (value: unknown): value is AllowedBlockPayload => {\n return isTransfer(value) || isChainStakeIntent(value) || isSchemaPayload(value) || isTransactionBoundWitness(value) || isHashPayload(value)\n}\n\nexport const isAllowedBlockPayloadWithHashStorageMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {\n return isAllowedBlockPayload(value) && isHashStorageMeta(value)\n}\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const AtomicBoundWitnessSchema = 'network.xyo.boundwitness.atomic' as const\nexport type AtomicBoundWitnessSchema = typeof AtomicBoundWitnessSchema\n\nexport interface AtomicBoundWitnessFields<TBoundWitness extends BoundWitness = BoundWitness> {\n bw: TBoundWitness\n}\n\nexport type AtomicBoundWitness = Payload<AtomicBoundWitnessFields, AtomicBoundWitnessSchema>\n\nexport const isAtomicBoundWitness = isPayloadOfSchemaType<AtomicBoundWitness>(AtomicBoundWitnessSchema)\n\nexport const asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness)\nexport const asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BlockDuration } from '../../fields/index.ts'\nimport type { FromFields } from './Executable.ts'\n\nexport const ChainStakeIntentSchema = 'network.xyo.chain.stake.intent' as const\nexport type ChainStakeIntentSchema = typeof ChainStakeIntentSchema\n\nexport type Intent = 'producer' // | 'bank'\n\nexport interface ChainStakeIntentFields extends BlockDuration, FromFields {\n /*\n * The intent of the staking\n */\n intent: Intent\n}\n\nexport type ChainStakeIntent = Payload<ChainStakeIntentFields, ChainStakeIntentSchema>\n\nexport const isChainStakeIntent = (x?: unknown | null): x is ChainStakeIntent => {\n return isPayloadOfSchemaType<ChainStakeIntent>(ChainStakeIntentSchema)(x)\n && asNonNegativeInteger(x.nbf) !== undefined\n && asNonNegativeInteger(x.exp) !== undefined\n}\nexport const asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent)\nexport const asOptionalChainStakeIntent = AsObjectFactory.createOptional(isChainStakeIntent)\n\nconst asNonNegativeInteger = (num: number) => {\n return (Number.isInteger(num) && num >= 0) ? num : undefined\n}\n","import type { Address } from '@xylabs/hex'\nimport type { EmptyObject } from '@xylabs/object'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nexport interface FromFields {\n // the address that is treated as the source of this action\n from: Address\n}\n\nexport const hasFrom = (value: unknown): value is FromFields => {\n return (value as FromFields).from !== undefined\n}\n\nexport interface ExecutableFields {\n script: string[]\n}\n\nexport type Executable<T extends EmptyObject = EmptyObject> = T & ExecutableFields\nexport type OptionalExecutable<T extends EmptyObject = EmptyObject> = T & Partial<ExecutableFields>\n\nexport const isExecutable = <T extends EmptyObject>(value: T | undefined): value is Executable<T> => {\n return isAnyPayload(value) && Array.isArray((value as unknown as ExecutableFields).script)\n}\n\nexport const asExecutable = <T extends EmptyObject>(value: T | undefined): Executable<T> | undefined => {\n return isExecutable(value)\n ? value as unknown as Executable<T>\n : undefined\n}\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const HashSchema = 'network.xyo.hash' as const\nexport type HashSchema = typeof HashSchema\n\nexport interface HashFields {\n hash: Hash\n}\n\nexport type HashPayload = Payload<HashFields, HashSchema>\n\nexport const isHashPayload = isPayloadOfSchemaType<HashPayload>(HashSchema)\n\nexport const asHashPayload = AsObjectFactory.create(isHashPayload)\nexport const asHashPayloadWithStorageMeta = AsObjectFactory.create(isHashPayload)\nexport const asOptionalHashPayload = AsObjectFactory.createOptional(isHashPayload)\n","import type {\n Address,\n Hex,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const TransferSchema = 'network.xyo.transfer' as const\nexport type TransferSchema = typeof TransferSchema\n\nexport interface TransferFields extends FromFields {\n epoch: number\n // the amount that is being sent to another address\n transfers: Partial<Record<Address, Hex>>\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type Transfer = Payload<TransferFields, TransferSchema>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\nexport const asOptionalTransfer = AsObjectFactory.createOptional(isTransfer)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n type Payload, type WithHashStorageMeta, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport {\n isTransactionBoundWitness, isTransactionBoundWitnessWithHashStorageMeta, isTransactionBoundWitnessWithStorageMeta, type TransactionBoundWitness,\n} from './TransactionBoundWitness.ts'\n\nexport type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness, P extends Payload = Payload> = [T, P[]]\n\nexport const isHydratedTransaction = (\n value: unknown,\n): value is HydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0])\n )\n}\n\nexport const asHydratedTransaction = AsObjectFactory.create<HydratedTransaction>(\n isHydratedTransaction,\n)\n\nexport type HydratedTransactionWithStorageMeta<T extends HydratedTransaction = HydratedTransaction>\n = [WithStorageMeta<T[0]>, WithStorageMeta<T[1][number]>[]]\n\nexport const isHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is HydratedTransactionWithStorageMeta => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitnessWithStorageMeta(value[0])\n )\n}\n\nexport const asHydratedTransactionWithStorageMeta = AsObjectFactory.create<HydratedTransactionWithStorageMeta>(\n isHydratedTransactionWithStorageMeta,\n)\n\nexport type HydratedTransactionWithHashStorageMeta<T extends HydratedTransaction = HydratedTransaction>\n = [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]\n\nexport const isHydratedTransactionWithHashStorageMeta = (\n value: unknown,\n): value is HydratedTransactionWithHashStorageMeta => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitnessWithHashStorageMeta(value[0])\n )\n}\n\nexport const asHydratedTransactionWithHashStorageMeta = AsObjectFactory.create<HydratedTransactionWithHashStorageMeta>(\n isHydratedTransactionWithHashStorageMeta,\n)\n\nexport type SignedHydratedTransaction<T extends HydratedTransaction = HydratedTransaction> = [Signed<T[0]>, T[1][number][]] & HydratedTransaction\n\nexport type SignedHydratedTransactionWithStorageMeta<T extends HydratedTransaction = HydratedTransaction>\n = [WithStorageMeta<Signed<T[0]>>, WithStorageMeta<T[1][number]>[]] & SignedHydratedTransaction<T> & HydratedTransaction\n\nexport type SignedHydratedTransactionWithHashStorageMeta<T extends HydratedTransaction = HydratedTransaction>\n = [WithHashStorageMeta<Signed<T[0]>>, WithHashStorageMeta<T[1][number]>[]] & SignedHydratedTransaction<T> & HydratedTransaction\n","import type { HydratedBoundWitness } from '@xyo-network/archivist-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nexport const isHydratedBoundWitness = (\n value: unknown,\n): value is HydratedBoundWitness => {\n return (\n Array.isArray(value)\n && value.length === 2\n && isBoundWitness(value[0])\n && Array.isArray(value[1])\n && !value[1].some(item => !isAnyPayload(item))\n )\n}\n","import type { Address } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness, Signed } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BlockDuration } from '../fields/index.ts'\nimport type { FromFields, OptionalExecutable } from '../payload/index.ts'\nimport type { TransactionFeesFields } from './TransactionFeesFields.ts'\n\nexport interface TransactionBoundWitnessFields extends BlockDuration, TransactionFeesFields {\n chain: Address\n}\n\nexport type TransactionBoundWitness = BoundWitness<TransactionBoundWitnessFields & OptionalExecutable & FromFields>\n\nexport const isTransactionBoundWitness = (value: unknown): value is TransactionBoundWitness => {\n const typedObj = value as TransactionBoundWitness\n return isBoundWitness(value)\n && typedObj.chain !== undefined\n && typedObj.fees !== undefined\n && typedObj.exp !== undefined\n && typedObj.nbf !== undefined\n}\n\nexport const isSignedTransactionBoundWitness = (value: unknown): value is Signed<TransactionBoundWitness> => {\n return isTransactionBoundWitness(value) && isSigned(value)\n}\n\nexport const isSigned = <T extends BoundWitness = BoundWitness>(value: unknown): value is Signed<T> =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<Signed<TransactionBoundWitness>> =>\n isSignedTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<Signed<TransactionBoundWitness>> =>\n isSignedTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const asTransactionBoundWitness = AsObjectFactory.create(isTransactionBoundWitness)\n\nexport const asTransactionBoundWitnessWithStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithStorageMeta)\n\nexport const asTransactionBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithHashStorageMeta)\n","import type { Hash, Hex } from '@xylabs/hex'\nimport { isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface BlockBoundWitnessMeta {\n $epoch: number\n}\n\nexport interface BlockBoundWitnessFields {\n /** Block number */\n block: number\n /** Chain id - this should be \"0\" for the genesis block */\n chain: Hex\n /** Previous block hash if not block 0 */\n previous: Hash | null /* the previous block hash */\n /** Version of the protocol being used major * 1,000,000 + minor * 1,000 + patch */\n protocol: number\n /** Step hashes */\n step_hashes: Hex[]\n}\n\nexport type BlockBoundWitness = BoundWitness<BlockBoundWitnessFields & BlockBoundWitnessMeta>\n\nexport const isBlockBoundWitness = (value: unknown): value is BlockBoundWitness => {\n const typedObj = value as BlockBoundWitness\n return isBoundWitness(value)\n && Number.isInteger(typedObj.block)\n && isHex(typedObj.chain)\n}\n\nexport const isBlockBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isStorageMeta(value)\n}\n\nexport const isBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isHashStorageMeta(value)\n}\n\nexport const asBlockBoundWitness = AsObjectFactory.create(isBlockBoundWitness)\n\nexport const asBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithStorageMeta)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n type Payload, type WithHashStorageMeta, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport {\n type BlockBoundWitness,\n isBlockBoundWitness, isBlockBoundWitnessWithHashStorageMeta, isBlockBoundWitnessWithStorageMeta,\n} from './BlockBoundWitness.ts'\n\nexport type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness, P extends Payload = Payload> = [T, P[]]\n\nexport const isHydratedBlock = (\n value: unknown,\n): value is HydratedBlock => {\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitness(value[0])\n )\n}\n\nexport const asHydratedBlock = AsObjectFactory.create<HydratedBlock>(\n isHydratedBlock,\n)\n\nexport type HydratedBlockWithStorageMeta<T extends HydratedBlock = HydratedBlock>\n = [WithStorageMeta<T[0]>, WithStorageMeta<T[1][number]>[]]\n\nexport const isHydratedBlockWithStorageMeta = (\n value: unknown,\n): value is HydratedBlockWithStorageMeta => {\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0])\n )\n}\n\nexport const asHydratedBlockWithStorageMeta = AsObjectFactory.create<HydratedBlockWithStorageMeta>(\n isHydratedBlockWithStorageMeta,\n)\n\nexport type HydratedBlockWithHashStorageMeta<T extends HydratedBlock = HydratedBlock>\n = [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]\n\nexport const isHydratedBlockWithHashStorageMeta = (\n value: unknown,\n): value is HydratedBlockWithHashStorageMeta => {\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitnessWithHashStorageMeta(value[0])\n )\n}\n\nexport const asHydratedBlockWithHashStorageMeta = AsObjectFactory.create<HydratedBlockWithHashStorageMeta>(\n isHydratedBlockWithHashStorageMeta,\n)\n\nexport type SignedHydratedBlock<T extends HydratedBlock = HydratedBlock> = [Signed<T[0]>, T[1][number][]] & HydratedBlock\n\nexport type SignedHydratedBlockWithStorageMeta<T extends HydratedBlock = HydratedBlock>\n = [WithStorageMeta<Signed<T[0]>>, WithStorageMeta<T[1][number]>[]] & SignedHydratedBlock<T> & HydratedBlock\n\nexport type SignedHydratedBlockWithHashStorageMeta<T extends HydratedBlock = HydratedBlock>\n = [WithHashStorageMeta<Signed<T[0]>>, WithHashStorageMeta<T[1][number]>[]] & SignedHydratedBlock<T> & HydratedBlock\n","export type XL1 = bigint & { readonly _tag: 'XL1' } // 1e-18\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' } // 1e-15 [XL1 * 1e3 = milliXL1] [milliXL1 / 1e3 = XL1]\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' } // 1e-12 [XL1 * 1e6 = microXL1] [microXL1 / 1e6 = XL1]\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' } // 1e-9 [XL1 * 1e9 = nanoXL1] [nanoXL1 / 1e9 = XL1]\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' } // 1e-6 [XL1 * 1e12 = picoXL1] [picoXL1 / 1e12 = XL1]\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' } // 1e-3 [XL1 * 1e15 = femtoXL1] [femtoXL1 / 1e15 = XL1]\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' } // 1e-0 [XL1 * 1e18 = attoXL1] [attoXL1 / 1e18 = XL1]\n\nexport type TypingFunc<T extends bigint> = (value: bigint) => T\n\nexport const XL1: TypingFunc<XL1> = (value: bigint): XL1 => value as XL1\nexport const MilliXL1: TypingFunc<MilliXL1> = (value: bigint): MilliXL1 => value as MilliXL1\nexport const MicroXL1: TypingFunc<MicroXL1> = (value: bigint): MicroXL1 => value as MicroXL1\nexport const NanoXL1: TypingFunc<NanoXL1> = (value: bigint): NanoXL1 => value as NanoXL1\nexport const PicoXL1: TypingFunc<PicoXL1> = (value: bigint): PicoXL1 => value as PicoXL1\nexport const FemtoXL1: TypingFunc<FemtoXL1> = (value: bigint): FemtoXL1 => value as FemtoXL1\nexport const AttoXL1: TypingFunc<AttoXL1> = (value: bigint): AttoXL1 => value as AttoXL1\n\ntype XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\n\n/** @deprecated use XL1Places and xl1ConvertFactor(unit) instead */\nexport const XL1ConvertDict: Record<XL1Units, number> = {\n xl1: 18,\n milli: 15,\n micro: 12,\n nano: 9,\n pico: 6,\n femto: 3,\n atto: 0,\n} as const\n\nexport const XL1Places: Record<XL1Units, bigint> = {\n xl1: 18n,\n milli: 15n,\n micro: 12n,\n nano: 9n,\n pico: 6n,\n femto: 3n,\n atto: 0n,\n} as const\n\n/**\n * Convert factor by which a respective unit is multiplied to convert it to AttoXL1 or\n * by which AttoXL1 is divided to convert it to respective unit is multiplied.\n */\nexport const AttoXL1ConvertFactor: Record<XL1Units, bigint> = {\n xl1: 10n ** XL1Places.xl1,\n milli: 10n ** XL1Places.milli,\n micro: 10n ** XL1Places.micro,\n nano: 10n ** XL1Places.nano,\n pico: 10n ** XL1Places.pico,\n femto: 10n ** XL1Places.femto,\n atto: 10n ** XL1Places.atto,\n} as const\n\n/** @deprecated use AttoXL1ConvertFactor instead */\nexport function xl1ConvertFactor(unit: XL1Units) {\n return 10n ** XL1Places[unit]\n}\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\n\nexport const minTransactionFees: TransactionFeesBigInt = {\n base: AttoXL1(1000n * AttoXL1ConvertFactor.nano),\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: AttoXL1(0n * AttoXL1ConvertFactor.nano),\n} as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\nimport { minTransactionFees } from './minTransactionFees.ts'\n\nexport const defaultTransactionFees: TransactionFeesBigInt = {\n base: minTransactionFees.base,\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: minTransactionFees.priority,\n} as const\n","import { AsTypeFactory } from '@xylabs/object'\n\n// StepsV2 are primorial(n+2) + 1, where n is the index of the step size\n// primorial(n+2) = 2 → 2×3=6 → 6×5=30 → 30×7=210 → 210×11=2310\n\nexport const StepSizes = [10, 105, 1103, 11_576, 121_551, 1_276_282, 13_400_956, 223_092_871, 6_469_693_231] as const\nexport const StepSizesV2 = [7, 31, 211, 2311, 30_031, 510_511, 9_699_691, 223_092_871, 6_469_693_231] as const\n\nexport function isValidStep(step: unknown): step is number {\n if (typeof step === 'number' && Number.isInteger(step)) {\n return ((step >= 0) && (step < StepSizes.length))\n }\n return false\n}\n\nexport const asValidStep = AsTypeFactory.create<number>(isValidStep)\n\nexport function stepSize(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizes.length - 1}`)\n return StepSizes[validatedStep]\n}\n\nexport function stepSizeV2(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizesV2.length - 1}`)\n return StepSizesV2[validatedStep]\n}\n","export const TransactionGasCosts = {\n /**\n * The cost of storing each character that is added to the chain\n * This includes the transaction JSON and all the elevated payloads' JSON\n */\n characterStorage: 10n,\n\n /** The cost of static validating every payload that will be included in the chain */\n payloadValidation: 1000n,\n\n /** The cost of validating each signature that will be included in the chain */\n signatureValidation: 1000n,\n\n /** The cost of validating each hash that will be included in the chain */\n hashValidation: 100n,\n\n /** The cost of validating a balance state, triggered by a Transfer payload or gas collection */\n balanceValidation: 100n,\n} as const\n\n/** Gas Calculation\n *\n * 1 Million microXL1 (mXL1) = 1 XL1\n *\n * Gas amount is calculated as follows:\n *\n * 1. Each byte in the transaction cost 10 gas\n * 2. Each payload validation in the transaction costs 1000 gas\n * 3. Each signature verification in the transaction costs 1000 gas\n * 4. Each hash validation in the transaction costs 100 gas\n * 5. Each balance validation in the transaction costs 100 gas\n * 6. Processing/Compute/Storage Cost?\n * 7. operation Costs?\n *\n * The total gas cost is calculated by multiplying the gas amount by the gas price.\n *\n * minGasPrice is initially set to 100 mXL1\n * minBase is initially set to 1000 mXL1\n * minPriority is always 0 mXL1, but can be set to increase the priority of the transaction\n *\n */\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithSources } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType,\n isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/payload-model'\n\nexport const BlockNumberSchema = 'network.xyo.chain.block.number' as const\nexport type BlockNumberSchema = typeof BlockNumberSchema\n\nexport interface BlockNumberFields {\n /**\n * The block number\n */\n block: Hex\n /**\n * The chain id\n */\n chain?: Hex\n}\n/**\n * The number of a block\n */\nexport type BlockNumber = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumber = isPayloadOfSchemaType<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumber = AsObjectFactory.create<BlockNumber>(isBlockNumber)\nexport const asOptionalBlockNumber = AsObjectFactory.createOptional<BlockNumber>(isBlockNumber)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberWithSources = isPayloadOfSchemaTypeWithSources<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumberWithSources = AsObjectFactory.create<WithSources<BlockNumber>>(isBlockNumberWithSources)\nexport const asOptionalBlockNumberWithSources = AsObjectFactory.createOptional<WithSources<BlockNumber>>(isBlockNumberWithSources)\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const NetworkStatusSchema = 'network.xyo.chain.status' as const\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import type { Address } from '@xylabs/hex'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const ChainIdentificationPayloadSchema = 'network.xyo.chain.identification' as const\nexport type ChainIdentificationPayloadSchema = typeof ChainIdentificationPayloadSchema\n\n/**\n * Identification required to uniquely identify a chain\n */\nexport interface ChainIdentification {\n /** @field the id of the chain */\n id: Address\n}\n\nexport type ChainIdentificationPayload = Payload<ChainIdentification, ChainIdentificationPayloadSchema>\nexport const isChainIdentificationPayload = isPayloadOfSchemaType<ChainIdentificationPayload>(ChainIdentificationPayloadSchema)\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const ChainInformationPayloadSchema = 'network.xyo.chain.information' as const\nexport type ChainInformationPayloadSchema = typeof ChainInformationPayloadSchema\n\nimport type { ChainIdentification } from './ChainIdentification.ts'\n\n/**\n * Information required to produce a chain\n */\nexport interface ChainInformation extends ChainIdentification {\n // TODO: Add these fields which are currently promises on the smart contract\n // forkedAtBlockNumber: bigint\n // forkedAtHash: Hash\n // forkedChainId: Address\n}\n\nexport type ChainInformationPayload = Payload<ChainIdentification, ChainInformationPayloadSchema>\nexport const isChainInformationPayload = isPayloadOfSchemaType<ChainInformationPayload>(ChainInformationPayloadSchema)\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonValue } from '@xylabs/object'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface ChainIndexingServiceStateFields<T extends JsonValue = JsonValue> {\n /**\n * The hash of the last block that this service has indexing\n */\n endBlockHash: Hash\n /**\n * The hash of the block that the service started indexing. If undefined, the service is\n * assumed to have started indexing from the genesis block\n */\n startBlockHash?: Hash\n /**\n * The indexed state for the range\n */\n state: T\n}\nexport const ChainIndexingServiceStateSchema = 'network.xyo.chain.indexing.service.state' as const\nexport type ChainIndexingServiceStateSchema = typeof ChainIndexingServiceStateSchema\n\n/**\n * The result of a ChainIndexingServiceState\n */\nexport type ChainIndexingServiceState<T extends JsonValue = JsonValue> = Payload<ChainIndexingServiceStateFields<T>, ChainIndexingServiceStateSchema>\n\n/**\n * Identity functions for determining if an object is an ChainIndexingServiceState\n */\nexport const isChainIndexingServiceState = <T extends JsonValue = JsonValue>(payload?: unknown): payload is ChainIndexingServiceState<T> => {\n return isPayloadOfSchemaType<ChainIndexingServiceState<T>>(ChainIndexingServiceStateSchema)(payload)\n}\nexport const asChainIndexingServiceState = AsObjectFactory.create<ChainIndexingServiceState<JsonValue>>(isChainIndexingServiceState)\n\nexport const isChainIndexingServiceStateWithStorageMeta\n= <T extends JsonValue = JsonValue>(value: unknown): value is WithStorageMeta<ChainIndexingServiceState<T>> =>\n isChainIndexingServiceState<T>(value) && isStorageMeta(value)\n\nexport const asChainIndexingServiceStateWithStorageMeta\n= AsObjectFactory.create<WithStorageMeta<ChainIndexingServiceState>>(isChainIndexingServiceStateWithStorageMeta)\n","import { isAnyPayload, type Payload } from '@xyo-network/payload-model'\n\nimport { type HydratedBlock, isHydratedBlock } from '../../block/index.ts'\nimport { isValidationError, type ValidationError } from '../error.ts'\n\nexport interface InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n const { block, value } = error as InBlockPayloadValidationError\n return (\n isAnyPayload(value) && isHydratedBlock(block)\n )\n}\n","import { isError } from '@xylabs/typeof'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport interface ValidationError<TValue = Payload> extends Error {\n value: TValue\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n"],"mappings":"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","names":["isHashStorageMeta","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isAnyPayload","AsObjectFactory","isBoundWitness","AsObjectFactory","isHashStorageMeta","AsObjectFactory","isBoundWitness","isHashStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","isStorageMeta","isAnyPayload","isAnyPayload"]}
1
+ {"version":3,"sources":["../../src/block/AllowedBlockPayload.ts","../../src/payload/AtomicBoundWitness.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/TransferPayload.ts","../../src/transaction/HydratedTransaction.ts","../../src/isHydratedBoundWitness.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/xl1/XL1.ts","../../src/constants/minTransactionFees.ts","../../src/constants/defaultTransactionFees.ts","../../src/constants/StepSizes.ts","../../src/constants/TransactionGasCosts.ts","../../src/fields/BlockNumber.ts","../../src/network/Status.ts","../../src/services/Chain/ChainIdentification.ts","../../src/services/Chain/ChainInformation.ts","../../src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts","../../src/validation/payload/error.ts","../../src/validation/error.ts"],"sourcesContent":["import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isSchema } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\n\nimport type {\n ChainStakeIntent, HashPayload, Transfer,\n} from '../payload/index.ts'\nimport {\n ChainStakeIntentSchema, HashSchema, isChainStakeIntent, isHashPayload, isTransfer, TransferSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\n\nexport type AllowedBlockPayload = Transfer | ChainStakeIntent | SchemaPayload | TransactionBoundWitness | HashPayload\nexport const AllowedBlockPayloadSchemas: Schema[] = [TransferSchema, ChainStakeIntentSchema, SchemaSchema, BoundWitnessSchema, HashSchema]\nexport type AllowedBlockPayloadSchema = typeof AllowedBlockPayloadSchemas[number]\n\nexport const isAllowedBlockPayloadSchema = (value: unknown): value is AllowedBlockPayloadSchema => {\n return isSchema(value) && AllowedBlockPayloadSchemas.includes(value)\n}\n\nexport const isAllowedBlockPayload = (value: unknown): value is AllowedBlockPayload => {\n return isTransfer(value) || isChainStakeIntent(value) || isSchemaPayload(value) || isTransactionBoundWitness(value) || isHashPayload(value)\n}\n\nexport const isAllowedBlockPayloadWithHashStorageMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {\n return isAllowedBlockPayload(value) && isHashStorageMeta(value)\n}\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const AtomicBoundWitnessSchema = 'network.xyo.boundwitness.atomic' as const\nexport type AtomicBoundWitnessSchema = typeof AtomicBoundWitnessSchema\n\nexport interface AtomicBoundWitnessFields<TBoundWitness extends BoundWitness = BoundWitness> {\n bw: TBoundWitness\n}\n\nexport type AtomicBoundWitness = Payload<AtomicBoundWitnessFields, AtomicBoundWitnessSchema>\n\nexport const isAtomicBoundWitness = isPayloadOfSchemaType<AtomicBoundWitness>(AtomicBoundWitnessSchema)\n\nexport const asAtomicBoundWitness = AsObjectFactory.create(isAtomicBoundWitness)\nexport const asOptionalAtomicBoundWitness = AsObjectFactory.createOptional(isAtomicBoundWitness)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BlockDuration } from '../../fields/index.ts'\nimport type { FromFields } from './Executable.ts'\n\nexport const ChainStakeIntentSchema = 'network.xyo.chain.stake.intent' as const\nexport type ChainStakeIntentSchema = typeof ChainStakeIntentSchema\n\nexport type Intent = 'producer' // | 'bank'\n\nexport interface ChainStakeIntentFields extends BlockDuration, FromFields {\n /*\n * The intent of the staking\n */\n intent: Intent\n}\n\nexport type ChainStakeIntent = Payload<ChainStakeIntentFields, ChainStakeIntentSchema>\n\nexport const isChainStakeIntent = (x?: unknown | null): x is ChainStakeIntent => {\n return isPayloadOfSchemaType<ChainStakeIntent>(ChainStakeIntentSchema)(x)\n && asNonNegativeInteger(x.nbf) !== undefined\n && asNonNegativeInteger(x.exp) !== undefined\n}\nexport const asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent)\nexport const asOptionalChainStakeIntent = AsObjectFactory.createOptional(isChainStakeIntent)\n\nconst asNonNegativeInteger = (num: number) => {\n return (Number.isInteger(num) && num >= 0) ? num : undefined\n}\n","import type { Address } from '@xylabs/hex'\nimport type { EmptyObject } from '@xylabs/object'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nexport interface FromFields {\n // the address that is treated as the source of this action\n from: Address\n}\n\nexport const hasFrom = (value: unknown): value is FromFields => {\n return (value as FromFields).from !== undefined\n}\n\nexport interface ExecutableFields {\n script: string[]\n}\n\nexport type Executable<T extends EmptyObject = EmptyObject> = T & ExecutableFields\nexport type OptionalExecutable<T extends EmptyObject = EmptyObject> = T & Partial<ExecutableFields>\n\nexport const isExecutable = <T extends EmptyObject>(value: T | undefined): value is Executable<T> => {\n return isAnyPayload(value) && Array.isArray((value as unknown as ExecutableFields).script)\n}\n\nexport const asExecutable = <T extends EmptyObject>(value: T | undefined): Executable<T> | undefined => {\n return isExecutable(value)\n ? value as unknown as Executable<T>\n : undefined\n}\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const HashSchema = 'network.xyo.hash' as const\nexport type HashSchema = typeof HashSchema\n\nexport interface HashFields {\n hash: Hash\n}\n\nexport type HashPayload = Payload<HashFields, HashSchema>\n\nexport const isHashPayload = isPayloadOfSchemaType<HashPayload>(HashSchema)\n\nexport const asHashPayload = AsObjectFactory.create(isHashPayload)\nexport const asHashPayloadWithStorageMeta = AsObjectFactory.create(isHashPayload)\nexport const asOptionalHashPayload = AsObjectFactory.createOptional(isHashPayload)\n","import type {\n Address,\n Hex,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const TransferSchema = 'network.xyo.transfer' as const\nexport type TransferSchema = typeof TransferSchema\n\nexport interface TransferFields extends FromFields {\n epoch: number\n // the amount that is being sent to another address\n transfers: Partial<Record<Address, Hex>>\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type Transfer = Payload<TransferFields, TransferSchema>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\nexport const asOptionalTransfer = AsObjectFactory.createOptional(isTransfer)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isSignedTransactionBoundWitnessWithStorageMeta, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness, P extends Payload = Payload> =\n[WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedTransaction = (\n value: unknown,\n): value is HydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isSignedTransactionBoundWitnessWithStorageMeta(value[0])\n )\n}\n\nexport const asHydratedTransaction = AsObjectFactory.create<HydratedTransaction>(\n isHydratedTransaction,\n)\n","import type { HydratedBoundWitnessWithStorageMeta } from '@xyo-network/archivist-model'\nimport { isBoundWitnessWithStorageMeta } from '@xyo-network/boundwitness-model'\nimport { isAnyPayload, isStorageMeta } from '@xyo-network/payload-model'\n\nexport const isHydratedBoundWitness = (\n value: unknown,\n): value is HydratedBoundWitnessWithStorageMeta => {\n return (\n Array.isArray(value)\n && value.length === 2\n && isBoundWitnessWithStorageMeta(value[0])\n && Array.isArray(value[1])\n && !value[1].some(item => (!isAnyPayload(item) || !isStorageMeta(item)))\n )\n}\n","import type { Address } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness, Signed } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BlockDuration } from '../fields/index.ts'\nimport type { FromFields, OptionalExecutable } from '../payload/index.ts'\nimport type { TransactionFeesFields } from './TransactionFeesFields.ts'\n\nexport interface TransactionBoundWitnessFields extends BlockDuration, TransactionFeesFields {\n chain: Address\n}\n\nexport type TransactionBoundWitness = BoundWitness<TransactionBoundWitnessFields & OptionalExecutable & FromFields>\n\nexport const isTransactionBoundWitness = (value: unknown): value is TransactionBoundWitness => {\n const typedObj = value as TransactionBoundWitness\n return isBoundWitness(value)\n && typedObj.chain !== undefined\n && typedObj.fees !== undefined\n && typedObj.exp !== undefined\n && typedObj.nbf !== undefined\n}\n\nexport const isSignedTransactionBoundWitness = (value: unknown): value is Signed<TransactionBoundWitness> => {\n return isTransactionBoundWitness(value) && isSigned(value)\n}\n\nexport const isSigned = <T extends BoundWitness = BoundWitness>(value: unknown): value is Signed<T> =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<Signed<TransactionBoundWitness>> =>\n isSignedTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<Signed<TransactionBoundWitness>> =>\n isSignedTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const asTransactionBoundWitness = AsObjectFactory.create(isTransactionBoundWitness)\n\nexport const asTransactionBoundWitnessWithStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithStorageMeta)\n\nexport const asTransactionBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithHashStorageMeta)\n","import type { Hash, Hex } from '@xylabs/hex'\nimport { isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness, Signed } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness, isSigned } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface BlockBoundWitnessMeta {\n $epoch: number\n}\n\nexport interface BlockBoundWitnessFields {\n /** Block number */\n block: number\n /** Chain id - this should be \"0\" for the genesis block */\n chain: Hex\n /** Previous block hash if not block 0 */\n previous: Hash | null /* the previous block hash */\n /** Version of the protocol being used major * 1,000,000 + minor * 1,000 + patch */\n protocol: number\n /** Step hashes */\n step_hashes: Hex[]\n}\n\nexport type BlockBoundWitness = BoundWitness<BlockBoundWitnessFields & BlockBoundWitnessMeta>\n\nexport const isBlockBoundWitness = (value: unknown): value is BlockBoundWitness => {\n const typedObj = value as BlockBoundWitness\n return isBoundWitness(value)\n && Number.isInteger(typedObj.block)\n && isHex(typedObj.chain)\n}\n\nexport const isSignedBlockBoundWitness = (value: unknown): value is Signed<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isSigned(value)\n}\n\nexport const isBlockBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isStorageMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithStorageMeta = (value: unknown): value is Signed<WithStorageMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithStorageMeta(value) && isSigned(value)\n}\n\nexport const isBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isHashStorageMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is Signed<WithHashStorageMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithHashStorageMeta(value) && isSigned(value)\n}\n\nexport const asBlockBoundWitness = AsObjectFactory.create(isBlockBoundWitness)\nexport const asSignedBlockBoundWitness = AsObjectFactory.create(isSignedBlockBoundWitness)\n\nexport const asBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithStorageMeta)\nexport const asSignedBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithStorageMeta)\n\nexport const asBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithHashStorageMeta)\nexport const asSignedBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithHashStorageMeta)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { type Payload, type WithStorageMeta } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport {\n type BlockBoundWitness,\n isBlockBoundWitnessWithStorageMeta,\n} from './BlockBoundWitness.ts'\n\nexport type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedBlock = (\n value: unknown,\n): value is HydratedBlock => {\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0])\n )\n}\n\nexport const asHydratedBlock = AsObjectFactory.create<HydratedBlock>(\n isHydratedBlock,\n)\n","export type XL1 = bigint & { readonly _tag: 'XL1' } // 1e-18\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' } // 1e-15 [XL1 * 1e3 = milliXL1] [milliXL1 / 1e3 = XL1]\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' } // 1e-12 [XL1 * 1e6 = microXL1] [microXL1 / 1e6 = XL1]\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' } // 1e-9 [XL1 * 1e9 = nanoXL1] [nanoXL1 / 1e9 = XL1]\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' } // 1e-6 [XL1 * 1e12 = picoXL1] [picoXL1 / 1e12 = XL1]\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' } // 1e-3 [XL1 * 1e15 = femtoXL1] [femtoXL1 / 1e15 = XL1]\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' } // 1e-0 [XL1 * 1e18 = attoXL1] [attoXL1 / 1e18 = XL1]\n\nexport type TypingFunc<T extends bigint> = (value: bigint) => T\n\nexport const XL1: TypingFunc<XL1> = (value: bigint): XL1 => value as XL1\nexport const MilliXL1: TypingFunc<MilliXL1> = (value: bigint): MilliXL1 => value as MilliXL1\nexport const MicroXL1: TypingFunc<MicroXL1> = (value: bigint): MicroXL1 => value as MicroXL1\nexport const NanoXL1: TypingFunc<NanoXL1> = (value: bigint): NanoXL1 => value as NanoXL1\nexport const PicoXL1: TypingFunc<PicoXL1> = (value: bigint): PicoXL1 => value as PicoXL1\nexport const FemtoXL1: TypingFunc<FemtoXL1> = (value: bigint): FemtoXL1 => value as FemtoXL1\nexport const AttoXL1: TypingFunc<AttoXL1> = (value: bigint): AttoXL1 => value as AttoXL1\n\ntype XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\n\n/** @deprecated use XL1Places and xl1ConvertFactor(unit) instead */\nexport const XL1ConvertDict: Record<XL1Units, number> = {\n xl1: 18,\n milli: 15,\n micro: 12,\n nano: 9,\n pico: 6,\n femto: 3,\n atto: 0,\n} as const\n\nexport const XL1Places: Record<XL1Units, bigint> = {\n xl1: 18n,\n milli: 15n,\n micro: 12n,\n nano: 9n,\n pico: 6n,\n femto: 3n,\n atto: 0n,\n} as const\n\n/**\n * Convert factor by which a respective unit is multiplied to convert it to AttoXL1 or\n * by which AttoXL1 is divided to convert it to respective unit is multiplied.\n */\nexport const AttoXL1ConvertFactor: Record<XL1Units, bigint> = {\n xl1: 10n ** XL1Places.xl1,\n milli: 10n ** XL1Places.milli,\n micro: 10n ** XL1Places.micro,\n nano: 10n ** XL1Places.nano,\n pico: 10n ** XL1Places.pico,\n femto: 10n ** XL1Places.femto,\n atto: 10n ** XL1Places.atto,\n} as const\n\n/** @deprecated use AttoXL1ConvertFactor instead */\nexport function xl1ConvertFactor(unit: XL1Units) {\n return 10n ** XL1Places[unit]\n}\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\n\nexport const minTransactionFees: TransactionFeesBigInt = {\n base: AttoXL1(1000n * AttoXL1ConvertFactor.nano),\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: AttoXL1(0n * AttoXL1ConvertFactor.nano),\n} as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\nimport { minTransactionFees } from './minTransactionFees.ts'\n\nexport const defaultTransactionFees: TransactionFeesBigInt = {\n base: minTransactionFees.base,\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: minTransactionFees.priority,\n} as const\n","import { AsTypeFactory } from '@xylabs/object'\n\n// StepsV2 are primorial(n+2) + 1, where n is the index of the step size\n// primorial(n+2) = 2 → 2×3=6 → 6×5=30 → 30×7=210 → 210×11=2310\n\nexport const StepSizes = [10, 105, 1103, 11_576, 121_551, 1_276_282, 13_400_956, 223_092_871, 6_469_693_231] as const\nexport const StepSizesV2 = [7, 31, 211, 2311, 30_031, 510_511, 9_699_691, 223_092_871, 6_469_693_231] as const\n\nexport function isValidStep(step: unknown): step is number {\n if (typeof step === 'number' && Number.isInteger(step)) {\n return ((step >= 0) && (step < StepSizes.length))\n }\n return false\n}\n\nexport const asValidStep = AsTypeFactory.create<number>(isValidStep)\n\nexport function stepSize(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizes.length - 1}`)\n return StepSizes[validatedStep]\n}\n\nexport function stepSizeV2(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizesV2.length - 1}`)\n return StepSizesV2[validatedStep]\n}\n","export const TransactionGasCosts = {\n /**\n * The cost of storing each character that is added to the chain\n * This includes the transaction JSON and all the elevated payloads' JSON\n */\n characterStorage: 10n,\n\n /** The cost of static validating every payload that will be included in the chain */\n payloadValidation: 1000n,\n\n /** The cost of validating each signature that will be included in the chain */\n signatureValidation: 1000n,\n\n /** The cost of validating each hash that will be included in the chain */\n hashValidation: 100n,\n\n /** The cost of validating a balance state, triggered by a Transfer payload or gas collection */\n balanceValidation: 100n,\n} as const\n\n/** Gas Calculation\n *\n * 1 Million microXL1 (mXL1) = 1 XL1\n *\n * Gas amount is calculated as follows:\n *\n * 1. Each byte in the transaction cost 10 gas\n * 2. Each payload validation in the transaction costs 1000 gas\n * 3. Each signature verification in the transaction costs 1000 gas\n * 4. Each hash validation in the transaction costs 100 gas\n * 5. Each balance validation in the transaction costs 100 gas\n * 6. Processing/Compute/Storage Cost?\n * 7. operation Costs?\n *\n * The total gas cost is calculated by multiplying the gas amount by the gas price.\n *\n * minGasPrice is initially set to 100 mXL1\n * minBase is initially set to 1000 mXL1\n * minPriority is always 0 mXL1, but can be set to increase the priority of the transaction\n *\n */\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithSources } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType,\n isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/payload-model'\n\nexport const BlockNumberSchema = 'network.xyo.chain.block.number' as const\nexport type BlockNumberSchema = typeof BlockNumberSchema\n\nexport interface BlockNumberFields {\n /**\n * The block number\n */\n block: Hex\n /**\n * The chain id\n */\n chain?: Hex\n}\n/**\n * The number of a block\n */\nexport type BlockNumber = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumber = isPayloadOfSchemaType<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumber = AsObjectFactory.create<BlockNumber>(isBlockNumber)\nexport const asOptionalBlockNumber = AsObjectFactory.createOptional<BlockNumber>(isBlockNumber)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberWithSources = isPayloadOfSchemaTypeWithSources<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumberWithSources = AsObjectFactory.create<WithSources<BlockNumber>>(isBlockNumberWithSources)\nexport const asOptionalBlockNumberWithSources = AsObjectFactory.createOptional<WithSources<BlockNumber>>(isBlockNumberWithSources)\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const NetworkStatusSchema = 'network.xyo.chain.status' as const\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import type { Address } from '@xylabs/hex'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const ChainIdentificationPayloadSchema = 'network.xyo.chain.identification' as const\nexport type ChainIdentificationPayloadSchema = typeof ChainIdentificationPayloadSchema\n\n/**\n * Identification required to uniquely identify a chain\n */\nexport interface ChainIdentification {\n /** @field the id of the chain */\n id: Address\n}\n\nexport type ChainIdentificationPayload = Payload<ChainIdentification, ChainIdentificationPayloadSchema>\nexport const isChainIdentificationPayload = isPayloadOfSchemaType<ChainIdentificationPayload>(ChainIdentificationPayloadSchema)\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const ChainInformationPayloadSchema = 'network.xyo.chain.information' as const\nexport type ChainInformationPayloadSchema = typeof ChainInformationPayloadSchema\n\nimport type { ChainIdentification } from './ChainIdentification.ts'\n\n/**\n * Information required to produce a chain\n */\nexport interface ChainInformation extends ChainIdentification {\n // TODO: Add these fields which are currently promises on the smart contract\n // forkedAtBlockNumber: bigint\n // forkedAtHash: Hash\n // forkedChainId: Address\n}\n\nexport type ChainInformationPayload = Payload<ChainIdentification, ChainInformationPayloadSchema>\nexport const isChainInformationPayload = isPayloadOfSchemaType<ChainInformationPayload>(ChainInformationPayloadSchema)\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonValue } from '@xylabs/object'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface ChainIndexingServiceStateFields<T extends JsonValue = JsonValue> {\n /**\n * The hash of the last block that this service has indexing\n */\n endBlockHash: Hash\n /**\n * The hash of the block that the service started indexing. If undefined, the service is\n * assumed to have started indexing from the genesis block\n */\n startBlockHash?: Hash\n /**\n * The indexed state for the range\n */\n state: T\n}\nexport const ChainIndexingServiceStateSchema = 'network.xyo.chain.indexing.service.state' as const\nexport type ChainIndexingServiceStateSchema = typeof ChainIndexingServiceStateSchema\n\n/**\n * The result of a ChainIndexingServiceState\n */\nexport type ChainIndexingServiceState<T extends JsonValue = JsonValue> = Payload<ChainIndexingServiceStateFields<T>, ChainIndexingServiceStateSchema>\n\n/**\n * Identity functions for determining if an object is an ChainIndexingServiceState\n */\nexport const isChainIndexingServiceState = <T extends JsonValue = JsonValue>(payload?: unknown): payload is ChainIndexingServiceState<T> => {\n return isPayloadOfSchemaType<ChainIndexingServiceState<T>>(ChainIndexingServiceStateSchema)(payload)\n}\nexport const asChainIndexingServiceState = AsObjectFactory.create<ChainIndexingServiceState<JsonValue>>(isChainIndexingServiceState)\n\nexport const isChainIndexingServiceStateWithStorageMeta\n= <T extends JsonValue = JsonValue>(value: unknown): value is WithStorageMeta<ChainIndexingServiceState<T>> =>\n isChainIndexingServiceState<T>(value) && isStorageMeta(value)\n\nexport const asChainIndexingServiceStateWithStorageMeta\n= AsObjectFactory.create<WithStorageMeta<ChainIndexingServiceState>>(isChainIndexingServiceStateWithStorageMeta)\n","import { isAnyPayload, type Payload } from '@xyo-network/payload-model'\n\nimport { type HydratedBlock, isHydratedBlock } from '../../block/index.ts'\nimport { isValidationError, type ValidationError } from '../error.ts'\n\nexport interface InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n const { block, value } = error as InBlockPayloadValidationError\n return (\n isAnyPayload(value) && isHydratedBlock(block)\n )\n}\n","import { isError } from '@xylabs/typeof'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport interface ValidationError<TValue = Payload> extends Error {\n value: TValue\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n"],"mappings":"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","names":["isHashStorageMeta","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isAnyPayload","AsObjectFactory","isStorageMeta","AsObjectFactory","isHashStorageMeta","AsObjectFactory","isBoundWitness","isSigned","isHashStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","isStorageMeta","isAnyPayload","isAnyPayload"]}
@@ -1,5 +1,5 @@
1
1
  import type { Hash, Hex } from '@xylabs/hex';
2
- import type { BoundWitness } from '@xyo-network/boundwitness-model';
2
+ import type { BoundWitness, Signed } from '@xyo-network/boundwitness-model';
3
3
  import type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model';
4
4
  export interface BlockBoundWitnessMeta {
5
5
  $epoch: number;
@@ -18,8 +18,15 @@ export interface BlockBoundWitnessFields {
18
18
  }
19
19
  export type BlockBoundWitness = BoundWitness<BlockBoundWitnessFields & BlockBoundWitnessMeta>;
20
20
  export declare const isBlockBoundWitness: (value: unknown) => value is BlockBoundWitness;
21
+ export declare const isSignedBlockBoundWitness: (value: unknown) => value is Signed<BlockBoundWitness>;
21
22
  export declare const isBlockBoundWitnessWithStorageMeta: (value: unknown) => value is WithStorageMeta<BlockBoundWitness>;
23
+ export declare const isSignedBlockBoundWitnessWithStorageMeta: (value: unknown) => value is Signed<WithStorageMeta<BlockBoundWitness>>;
22
24
  export declare const isBlockBoundWitnessWithHashStorageMeta: (value: unknown) => value is WithHashStorageMeta<BlockBoundWitness>;
25
+ export declare const isSignedBlockBoundWitnessWithHashStorageMeta: (value: unknown) => value is Signed<WithHashStorageMeta<BlockBoundWitness>>;
23
26
  export declare const asBlockBoundWitness: import("@xylabs/object").AsTypeFunction<BlockBoundWitness>;
27
+ export declare const asSignedBlockBoundWitness: import("@xylabs/object").AsTypeFunction<Signed<BlockBoundWitness>>;
24
28
  export declare const asBlockBoundWitnessWithStorageMeta: import("@xylabs/object").AsTypeFunction<WithStorageMeta<BlockBoundWitness>>;
29
+ export declare const asSignedBlockBoundWitnessWithStorageMeta: import("@xylabs/object").AsTypeFunction<Signed<WithStorageMeta<BlockBoundWitness>>>;
30
+ export declare const asBlockBoundWitnessWithHashStorageMeta: import("@xylabs/object").AsTypeFunction<WithHashStorageMeta<BlockBoundWitness>>;
31
+ export declare const asSignedBlockBoundWitnessWithHashStorageMeta: import("@xylabs/object").AsTypeFunction<Signed<WithHashStorageMeta<BlockBoundWitness>>>;
25
32
  //# sourceMappingURL=BlockBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/block/BlockBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGtF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,KAAK,EAAE,GAAG,CAAA;IACV,yCAAyC;IACzC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACrB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB;IAClB,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,CAAA;AAE7F,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAK7D,CAAA;AAED,eAAO,MAAM,kCAAkC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,iBAAiB,CAE7G,CAAA;AAED,eAAO,MAAM,sCAAsC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,mBAAmB,CAAC,iBAAiB,CAErH,CAAA;AAED,eAAO,MAAM,mBAAmB,4DAA8C,CAAA;AAE9E,eAAO,MAAM,kCAAkC,6EAA6D,CAAA"}
1
+ {"version":3,"file":"BlockBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/block/BlockBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAE3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGtF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,KAAK,EAAE,GAAG,CAAA;IACV,yCAAyC;IACzC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACrB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB;IAClB,WAAW,EAAE,GAAG,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,CAAA;AAE7F,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAK7D,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,iBAAiB,CAE3F,CAAA;AAED,eAAO,MAAM,kCAAkC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,iBAAiB,CAE7G,CAAA;AAED,eAAO,MAAM,wCAAwC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAE3H,CAAA;AAED,eAAO,MAAM,sCAAsC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,mBAAmB,CAAC,iBAAiB,CAErH,CAAA;AAED,eAAO,MAAM,4CAA4C,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAEnI,CAAA;AAED,eAAO,MAAM,mBAAmB,4DAA8C,CAAA;AAC9E,eAAO,MAAM,yBAAyB,oEAAoD,CAAA;AAE1F,eAAO,MAAM,kCAAkC,6EAA6D,CAAA;AAC5G,eAAO,MAAM,wCAAwC,qFAAmE,CAAA;AAExH,eAAO,MAAM,sCAAsC,iFAAiE,CAAA;AACpH,eAAO,MAAM,4CAA4C,yFAAuE,CAAA"}
@@ -1,16 +1,7 @@
1
- import { type Signed } from '@xyo-network/boundwitness-model';
2
- import { type Payload, type WithHashStorageMeta, type WithStorageMeta } from '@xyo-network/payload-model';
1
+ import type { Signed } from '@xyo-network/boundwitness-model';
2
+ import { type Payload, type WithStorageMeta } from '@xyo-network/payload-model';
3
3
  import { type BlockBoundWitness } from './BlockBoundWitness.ts';
4
- export type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness, P extends Payload = Payload> = [T, P[]];
4
+ export type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness, P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]];
5
5
  export declare const isHydratedBlock: (value: unknown) => value is HydratedBlock;
6
6
  export declare const asHydratedBlock: import("@xylabs/object").AsTypeFunction<HydratedBlock<BlockBoundWitness, Payload>>;
7
- export type HydratedBlockWithStorageMeta<T extends HydratedBlock = HydratedBlock> = [WithStorageMeta<T[0]>, WithStorageMeta<T[1][number]>[]];
8
- export declare const isHydratedBlockWithStorageMeta: (value: unknown) => value is HydratedBlockWithStorageMeta;
9
- export declare const asHydratedBlockWithStorageMeta: import("@xylabs/object").AsTypeFunction<HydratedBlockWithStorageMeta<HydratedBlock<BlockBoundWitness, Payload>>>;
10
- export type HydratedBlockWithHashStorageMeta<T extends HydratedBlock = HydratedBlock> = [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]];
11
- export declare const isHydratedBlockWithHashStorageMeta: (value: unknown) => value is HydratedBlockWithHashStorageMeta;
12
- export declare const asHydratedBlockWithHashStorageMeta: import("@xylabs/object").AsTypeFunction<HydratedBlockWithHashStorageMeta<HydratedBlock<BlockBoundWitness, Payload>>>;
13
- export type SignedHydratedBlock<T extends HydratedBlock = HydratedBlock> = [Signed<T[0]>, T[1][number][]] & HydratedBlock;
14
- export type SignedHydratedBlockWithStorageMeta<T extends HydratedBlock = HydratedBlock> = [WithStorageMeta<Signed<T[0]>>, WithStorageMeta<T[1][number]>[]] & SignedHydratedBlock<T> & HydratedBlock;
15
- export type SignedHydratedBlockWithHashStorageMeta<T extends HydratedBlock = HydratedBlock> = [WithHashStorageMeta<Signed<T[0]>>, WithHashStorageMeta<T[1][number]>[]] & SignedHydratedBlock<T> & HydratedBlock;
16
7
  //# sourceMappingURL=HydratedBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/block/HydratedBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EACL,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAC7D,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAA;AAE/B,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAElH,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,KACb,KAAK,IAAI,aAIX,CAAA;AAED,eAAO,MAAM,eAAe,oFAE3B,CAAA;AAED,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAC7E,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA;AAE3D,eAAO,MAAM,8BAA8B,GACzC,OAAO,OAAO,KACb,KAAK,IAAI,4BAIX,CAAA;AAED,eAAO,MAAM,8BAA8B,kHAE1C,CAAA;AAED,MAAM,MAAM,gCAAgC,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IACjF,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA;AAEnE,eAAO,MAAM,kCAAkC,GAC7C,OAAO,OAAO,KACb,KAAK,IAAI,gCAIX,CAAA;AAED,eAAO,MAAM,kCAAkC,sHAE9C,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,aAAa,CAAA;AAEzH,MAAM,MAAM,kCAAkC,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IACnF,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAA;AAE5G,MAAM,MAAM,sCAAsC,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IACvF,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAA"}
1
+ {"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/block/HydratedBlock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG/E,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAA;AAE/B,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EACvE,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEnF,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,KACb,KAAK,IAAI,aAIX,CAAA;AAED,eAAO,MAAM,eAAe,oFAE3B,CAAA"}
@@ -1,3 +1,3 @@
1
- import type { HydratedBoundWitness } from '@xyo-network/archivist-model';
2
- export declare const isHydratedBoundWitness: (value: unknown) => value is HydratedBoundWitness;
1
+ import type { HydratedBoundWitnessWithStorageMeta } from '@xyo-network/archivist-model';
2
+ export declare const isHydratedBoundWitness: (value: unknown) => value is HydratedBoundWitnessWithStorageMeta;
3
3
  //# sourceMappingURL=isHydratedBoundWitness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isHydratedBoundWitness.d.ts","sourceRoot":"","sources":["../../src/isHydratedBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAIxE,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,KACb,KAAK,IAAI,oBAQX,CAAA"}
1
+ {"version":3,"file":"isHydratedBoundWitness.d.ts","sourceRoot":"","sources":["../../src/isHydratedBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAA;AAIvF,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,KACb,KAAK,IAAI,mCAQX,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import type { Hash } from '@xylabs/hex';
2
2
  import type { Promisable } from '@xylabs/promise';
3
- import type { SignedHydratedTransaction } from '../../transaction/index.ts';
3
+ import type { HydratedTransaction } from '../../transaction/index.ts';
4
4
  export interface XyoRunner {
5
- broadcastTransaction(transaction: SignedHydratedTransaction): Promisable<Hash>;
5
+ broadcastTransaction(transaction: HydratedTransaction): Promisable<Hash>;
6
6
  }
7
7
  //# sourceMappingURL=XyoRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoRunner.d.ts","sourceRoot":"","sources":["../../../../src/provider/v1/XyoRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAE3E,MAAM,WAAW,SAAS;IACxB,oBAAoB,CAAC,WAAW,EAAE,yBAAyB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAC/E"}
1
+ {"version":3,"file":"XyoRunner.d.ts","sourceRoot":"","sources":["../../../../src/provider/v1/XyoRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE,MAAM,WAAW,SAAS;IACxB,oBAAoB,CAAC,WAAW,EAAE,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CACzE"}
@@ -1,20 +1,20 @@
1
1
  import type { Address, Hash } from '@xylabs/hex';
2
2
  import type { Promisable } from '@xylabs/promise';
3
- import type { SignedHydratedBlock } from '../../block/index.ts';
3
+ import type { HydratedBlock } from '../../block/index.ts';
4
4
  import type { Transfer } from '../../payload/index.ts';
5
- import type { SignedHydratedTransaction, TransactionBoundWitness } from '../../transaction/index.ts';
5
+ import type { HydratedTransaction, TransactionBoundWitness } from '../../transaction/index.ts';
6
6
  export interface XyoViewer {
7
7
  accountBalance: (address: Address) => Promisable<bigint>;
8
8
  accountHistory: (address: Address) => Promisable<[TransactionBoundWitness[], Transfer[]]>;
9
- blockByHash(hash: Hash): Promisable<SignedHydratedBlock | null>;
10
- blockByNumber(blockNumber: number): Promisable<SignedHydratedBlock | null>;
11
- blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlock[]>;
9
+ blockByHash(hash: Hash): Promisable<HydratedBlock | null>;
10
+ blockByNumber(blockNumber: number): Promisable<HydratedBlock | null>;
11
+ blocksByHash(hash: Hash, limit?: number): Promisable<HydratedBlock[]>;
12
12
  chainId(): Promisable<Address>;
13
- currentBlock(): Promisable<SignedHydratedBlock>;
13
+ currentBlock(): Promisable<HydratedBlock>;
14
14
  currentBlockHash(): Promisable<Hash>;
15
15
  currentBlockNumber(): Promisable<number>;
16
- transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>;
17
- transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>;
18
- transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>;
16
+ transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<HydratedTransaction | null>;
17
+ transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<HydratedTransaction | null>;
18
+ transactionByHash(transactionHash: Hash): Promisable<HydratedTransaction | null>;
19
19
  }
20
20
  //# sourceMappingURL=XyoViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoViewer.d.ts","sourceRoot":"","sources":["../../../../src/provider/v1/XyoViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEpG,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,CAAC,MAAM,CAAC,CAAA;IACxD,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAEzF,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;IAC/D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;IAC1E,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAE3E,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;IAE9B,YAAY,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAC/C,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACpC,kBAAkB,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IAExC,8BAA8B,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IACvH,gCAAgC,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IAC7H,iBAAiB,CAAC,eAAe,EAAE,IAAI,GAAG,UAAU,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CACvF"}
1
+ {"version":3,"file":"XyoViewer.d.ts","sourceRoot":"","sources":["../../../../src/provider/v1/XyoViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE9F,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,CAAC,MAAM,CAAC,CAAA;IACxD,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAEzF,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACzD,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACpE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;IAErE,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;IAE9B,YAAY,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACzC,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACpC,kBAAkB,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IAExC,8BAA8B,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;IACjH,gCAAgC,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;IACvH,iBAAiB,CAAC,eAAe,EAAE,IAAI,GAAG,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;CACjF"}
@@ -1,9 +1,9 @@
1
1
  import type { Address, Hash } from '@xylabs/hex';
2
2
  import type { Promisable } from '@xylabs/promise';
3
- import type { SignedHydratedBlock } from '../../../block/index.ts';
3
+ import type { HydratedBlock } from '../../../block/index.ts';
4
4
  export interface ChainBlockViewer {
5
5
  chain: Address;
6
6
  hash: Hash;
7
- hydrate(): Promisable<SignedHydratedBlock>;
7
+ hydrate(): Promisable<HydratedBlock>;
8
8
  }
9
9
  //# sourceMappingURL=Block.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../../../src/provider/v2/Chain/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAA;CAC3C"}
1
+ {"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../../../src/provider/v2/Chain/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;CACrC"}
@@ -1,6 +1,6 @@
1
1
  import type { Address, Hash } from '@xylabs/hex';
2
2
  import type { Promisable } from '@xylabs/promise';
3
- import type { SignedHydratedBlock } from '../../../block/index.ts';
3
+ import type { HydratedBlock } from '../../../block/index.ts';
4
4
  import type { NetworkStatus } from '../../../network/index.ts';
5
5
  import type { ChainDefinitionProvider, ChainDefinitionViewer } from '../ChainDefinition/index.ts';
6
6
  import type { ChainPendingTransactionsViewer } from '../viewer/index.ts';
@@ -11,7 +11,7 @@ export interface ChainViewer<TChainDefinitionViewer extends ChainDefinitionViewe
11
11
  id: Address;
12
12
  account(address: Address): ChainAccountViewer;
13
13
  block(hash: Hash): ChainBlockViewer;
14
- currentBlock(): Promisable<SignedHydratedBlock>;
14
+ currentBlock(): Promisable<HydratedBlock>;
15
15
  pendingTransactions(): ChainPendingTransactionsViewer;
16
16
  status(): NetworkStatus;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../../../src/provider/v2/Chain/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACjG,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,WAAW,WAAW,CAAC,sBAAsB,SAAS,qBAAqB,GAAG,qBAAqB;IACvG,UAAU,EAAE,sBAAsB,CAAA;IAClC,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAAA;IAC7C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,CAAA;IACnC,YAAY,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAC/C,mBAAmB,IAAI,8BAA8B,CAAA;IACrD,MAAM,IAAI,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW,CAAC,uBAAuB,CAAC;CAE1E"}
1
+ {"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../../../src/provider/v2/Chain/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACjG,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,WAAW,WAAW,CAAC,sBAAsB,SAAS,qBAAqB,GAAG,qBAAqB;IACvG,UAAU,EAAE,sBAAsB,CAAA;IAClC,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAAA;IAC7C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,CAAA;IACnC,YAAY,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACzC,mBAAmB,IAAI,8BAA8B,CAAA;IACrD,MAAM,IAAI,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW,CAAC,uBAAuB,CAAC;CAE1E"}
@@ -1,16 +1,10 @@
1
- import { type Signed } from '@xyo-network/boundwitness-model';
2
- import { type Payload, type WithHashStorageMeta, type WithStorageMeta } from '@xyo-network/payload-model';
1
+ import type { Signed } from '@xyo-network/boundwitness-model';
2
+ import type { Payload, WithStorageMeta } from '@xyo-network/payload-model';
3
3
  import { type TransactionBoundWitness } from './TransactionBoundWitness.ts';
4
- export type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness, P extends Payload = Payload> = [T, P[]];
4
+ export type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness, P extends Payload = Payload> = [
5
+ WithStorageMeta<Signed<T>>,
6
+ WithStorageMeta<P>[]
7
+ ];
5
8
  export declare const isHydratedTransaction: (value: unknown) => value is HydratedTransaction;
6
9
  export declare const asHydratedTransaction: import("@xylabs/object").AsTypeFunction<HydratedTransaction<TransactionBoundWitness, Payload>>;
7
- export type HydratedTransactionWithStorageMeta<T extends HydratedTransaction = HydratedTransaction> = [WithStorageMeta<T[0]>, WithStorageMeta<T[1][number]>[]];
8
- export declare const isHydratedTransactionWithStorageMeta: (value: unknown) => value is HydratedTransactionWithStorageMeta;
9
- export declare const asHydratedTransactionWithStorageMeta: import("@xylabs/object").AsTypeFunction<HydratedTransactionWithStorageMeta<HydratedTransaction<TransactionBoundWitness, Payload>>>;
10
- export type HydratedTransactionWithHashStorageMeta<T extends HydratedTransaction = HydratedTransaction> = [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]];
11
- export declare const isHydratedTransactionWithHashStorageMeta: (value: unknown) => value is HydratedTransactionWithHashStorageMeta;
12
- export declare const asHydratedTransactionWithHashStorageMeta: import("@xylabs/object").AsTypeFunction<HydratedTransactionWithHashStorageMeta<HydratedTransaction<TransactionBoundWitness, Payload>>>;
13
- export type SignedHydratedTransaction<T extends HydratedTransaction = HydratedTransaction> = [Signed<T[0]>, T[1][number][]] & HydratedTransaction;
14
- export type SignedHydratedTransactionWithStorageMeta<T extends HydratedTransaction = HydratedTransaction> = [WithStorageMeta<Signed<T[0]>>, WithStorageMeta<T[1][number]>[]] & SignedHydratedTransaction<T> & HydratedTransaction;
15
- export type SignedHydratedTransactionWithHashStorageMeta<T extends HydratedTransaction = HydratedTransaction> = [WithHashStorageMeta<Signed<T[0]>>, WithHashStorageMeta<T[1][number]>[]] & SignedHydratedTransaction<T> & HydratedTransaction;
16
10
  //# sourceMappingURL=HydratedTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EACL,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAC7D,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAC8G,KAAK,uBAAuB,EAChJ,MAAM,8BAA8B,CAAA;AAErC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAEpI,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,KACb,KAAK,IAAI,mBAIX,CAAA;AAED,eAAO,MAAM,qBAAqB,gGAEjC,CAAA;AAED,MAAM,MAAM,kCAAkC,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,IAC/F,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA;AAE3D,eAAO,MAAM,oCAAoC,GAC/C,OAAO,OAAO,KACb,KAAK,IAAI,kCAIX,CAAA;AAED,eAAO,MAAM,oCAAoC,oIAEhD,CAAA;AAED,MAAM,MAAM,sCAAsC,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,IACnG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA;AAEnE,eAAO,MAAM,wCAAwC,GACnD,OAAO,OAAO,KACb,KAAK,IAAI,sCAIX,CAAA;AAED,eAAO,MAAM,wCAAwC,wIAEpD,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAA;AAEjJ,MAAM,MAAM,wCAAwC,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,IACrG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAA;AAExH,MAAM,MAAM,4CAA4C,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,IACzG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAA"}
1
+ {"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG1E,OAAO,EAAkD,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAE3H,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,IACxH;IAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,eAAe,CAAC,CAAC,CAAC,EAAE;CAAC,CAAA;AAElD,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,KACb,KAAK,IAAI,mBAIX,CAAA;AAED,eAAO,MAAM,qBAAqB,gGAEjC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { Address } from '@xylabs/hex';
2
2
  import type { Promisable } from '@xylabs/promise';
3
- import type { HydratedTransaction, HydratedTransactionWithHashStorageMeta, TransactionBoundWitness } from '../../transaction/index.ts';
3
+ import type { HydratedTransaction, TransactionBoundWitness } from '../../transaction/index.ts';
4
4
  import type { HydratedTransactionValidationError } from './error.ts';
5
5
  /**
6
6
  * A function that validates a hydrated transaction.
@@ -8,5 +8,5 @@ import type { HydratedTransactionValidationError } from './error.ts';
8
8
  * @param chainId The chain ID to use for validation.
9
9
  * @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
10
10
  */
11
- export type HydratedTransactionValidatorFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (hydratedTransaction: HydratedTransactionWithHashStorageMeta<HydratedTransaction<T>>, chainId?: Address) => Promisable<HydratedTransactionValidationError[]>;
11
+ export type HydratedTransactionValidatorFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (hydratedTransaction: HydratedTransaction<T>, chainId?: Address) => Promisable<HydratedTransactionValidationError[]>;
12
12
  //# sourceMappingURL=HydratedTransactionValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HydratedTransactionValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/transaction/HydratedTransactionValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,mBAAmB,EAAE,sCAAsC,EAAE,uBAAuB,EACrF,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAA;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,oCAAoC,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,IAAI,CAC9G,mBAAmB,EAAE,sCAAsC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EACnF,OAAO,CAAC,EAAE,OAAO,KACd,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"HydratedTransactionValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/transaction/HydratedTransactionValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAA;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,oCAAoC,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,IAAI,CAC9G,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,OAAO,CAAC,EAAE,OAAO,KACd,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
- import { type HydratedTransactionWithHashStorageMeta } from '../../transaction/index.ts';
1
+ import { type HydratedTransaction } from '../../transaction/index.ts';
2
2
  import { type ValidationError } from '../error.ts';
3
- export interface HydratedTransactionValidationError extends ValidationError<HydratedTransactionWithHashStorageMeta> {
3
+ export interface HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {
4
4
  }
5
5
  export declare const isHydratedTransactionValidationError: (error: unknown) => error is HydratedTransactionValidationError;
6
6
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/transaction/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sCAAsC,EAAyB,MAAM,4BAA4B,CAAA;AAC/G,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,WAAW,kCAAmC,SAAQ,eAAe,CAAC,sCAAsC,CAAC;CAAG;AAEtH,eAAO,MAAM,oCAAoC,GAC/C,OAAO,OAAO,KACb,KAAK,IAAI,kCAIX,CAAA"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/transaction/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAyB,MAAM,4BAA4B,CAAA;AAC5F,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,WAAW,kCAAmC,SAAQ,eAAe,CAAC,mBAAmB,CAAC;CAAG;AAEnG,eAAO,MAAM,oCAAoC,GAC/C,OAAO,OAAO,KACb,KAAK,IAAI,kCAIX,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/xl1-protocol",
4
- "version": "1.4.26",
4
+ "version": "1.4.28",
5
5
  "description": "XYO Layer One Protocol",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -1,8 +1,8 @@
1
1
  import type { Hash, Hex } from '@xylabs/hex'
2
2
  import { isHex } from '@xylabs/hex'
3
3
  import { AsObjectFactory } from '@xylabs/object'
4
- import type { BoundWitness } from '@xyo-network/boundwitness-model'
5
- import { isBoundWitness } from '@xyo-network/boundwitness-model'
4
+ import type { BoundWitness, Signed } from '@xyo-network/boundwitness-model'
5
+ import { isBoundWitness, isSigned } from '@xyo-network/boundwitness-model'
6
6
  import type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'
7
7
  import { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'
8
8
 
@@ -32,14 +32,31 @@ export const isBlockBoundWitness = (value: unknown): value is BlockBoundWitness
32
32
  && isHex(typedObj.chain)
33
33
  }
34
34
 
35
+ export const isSignedBlockBoundWitness = (value: unknown): value is Signed<BlockBoundWitness> => {
36
+ return isBlockBoundWitness(value) && isSigned(value)
37
+ }
38
+
35
39
  export const isBlockBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BlockBoundWitness> => {
36
40
  return isBlockBoundWitness(value) && isStorageMeta(value)
37
41
  }
38
42
 
43
+ export const isSignedBlockBoundWitnessWithStorageMeta = (value: unknown): value is Signed<WithStorageMeta<BlockBoundWitness>> => {
44
+ return isBlockBoundWitnessWithStorageMeta(value) && isSigned(value)
45
+ }
46
+
39
47
  export const isBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<BlockBoundWitness> => {
40
48
  return isBlockBoundWitness(value) && isHashStorageMeta(value)
41
49
  }
42
50
 
51
+ export const isSignedBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is Signed<WithHashStorageMeta<BlockBoundWitness>> => {
52
+ return isBlockBoundWitnessWithHashStorageMeta(value) && isSigned(value)
53
+ }
54
+
43
55
  export const asBlockBoundWitness = AsObjectFactory.create(isBlockBoundWitness)
56
+ export const asSignedBlockBoundWitness = AsObjectFactory.create(isSignedBlockBoundWitness)
44
57
 
45
58
  export const asBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithStorageMeta)
59
+ export const asSignedBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithStorageMeta)
60
+
61
+ export const asBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithHashStorageMeta)
62
+ export const asSignedBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithHashStorageMeta)
@@ -1,63 +1,24 @@
1
1
  import { AsObjectFactory } from '@xylabs/object'
2
- import { type Signed } from '@xyo-network/boundwitness-model'
3
- import {
4
- type Payload, type WithHashStorageMeta, type WithStorageMeta,
5
- } from '@xyo-network/payload-model'
2
+ import type { Signed } from '@xyo-network/boundwitness-model'
3
+ import { type Payload, type WithStorageMeta } from '@xyo-network/payload-model'
6
4
 
7
5
  import { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'
8
6
  import {
9
7
  type BlockBoundWitness,
10
- isBlockBoundWitness, isBlockBoundWitnessWithHashStorageMeta, isBlockBoundWitnessWithStorageMeta,
8
+ isBlockBoundWitnessWithStorageMeta,
11
9
  } from './BlockBoundWitness.ts'
12
10
 
13
- export type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness, P extends Payload = Payload> = [T, P[]]
11
+ export type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness,
12
+ P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]
14
13
 
15
14
  export const isHydratedBlock = (
16
15
  value: unknown,
17
16
  ): value is HydratedBlock => {
18
17
  return (
19
- isHydratedBoundWitness(value) && isBlockBoundWitness(value[0])
18
+ isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0])
20
19
  )
21
20
  }
22
21
 
23
22
  export const asHydratedBlock = AsObjectFactory.create<HydratedBlock>(
24
23
  isHydratedBlock,
25
24
  )
26
-
27
- export type HydratedBlockWithStorageMeta<T extends HydratedBlock = HydratedBlock>
28
- = [WithStorageMeta<T[0]>, WithStorageMeta<T[1][number]>[]]
29
-
30
- export const isHydratedBlockWithStorageMeta = (
31
- value: unknown,
32
- ): value is HydratedBlockWithStorageMeta => {
33
- return (
34
- isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0])
35
- )
36
- }
37
-
38
- export const asHydratedBlockWithStorageMeta = AsObjectFactory.create<HydratedBlockWithStorageMeta>(
39
- isHydratedBlockWithStorageMeta,
40
- )
41
-
42
- export type HydratedBlockWithHashStorageMeta<T extends HydratedBlock = HydratedBlock>
43
- = [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]
44
-
45
- export const isHydratedBlockWithHashStorageMeta = (
46
- value: unknown,
47
- ): value is HydratedBlockWithHashStorageMeta => {
48
- return (
49
- isHydratedBoundWitness(value) && isBlockBoundWitnessWithHashStorageMeta(value[0])
50
- )
51
- }
52
-
53
- export const asHydratedBlockWithHashStorageMeta = AsObjectFactory.create<HydratedBlockWithHashStorageMeta>(
54
- isHydratedBlockWithHashStorageMeta,
55
- )
56
-
57
- export type SignedHydratedBlock<T extends HydratedBlock = HydratedBlock> = [Signed<T[0]>, T[1][number][]] & HydratedBlock
58
-
59
- export type SignedHydratedBlockWithStorageMeta<T extends HydratedBlock = HydratedBlock>
60
- = [WithStorageMeta<Signed<T[0]>>, WithStorageMeta<T[1][number]>[]] & SignedHydratedBlock<T> & HydratedBlock
61
-
62
- export type SignedHydratedBlockWithHashStorageMeta<T extends HydratedBlock = HydratedBlock>
63
- = [WithHashStorageMeta<Signed<T[0]>>, WithHashStorageMeta<T[1][number]>[]] & SignedHydratedBlock<T> & HydratedBlock
@@ -1,15 +1,15 @@
1
- import type { HydratedBoundWitness } from '@xyo-network/archivist-model'
2
- import { isBoundWitness } from '@xyo-network/boundwitness-model'
3
- import { isAnyPayload } from '@xyo-network/payload-model'
1
+ import type { HydratedBoundWitnessWithStorageMeta } from '@xyo-network/archivist-model'
2
+ import { isBoundWitnessWithStorageMeta } from '@xyo-network/boundwitness-model'
3
+ import { isAnyPayload, isStorageMeta } from '@xyo-network/payload-model'
4
4
 
5
5
  export const isHydratedBoundWitness = (
6
6
  value: unknown,
7
- ): value is HydratedBoundWitness => {
7
+ ): value is HydratedBoundWitnessWithStorageMeta => {
8
8
  return (
9
9
  Array.isArray(value)
10
10
  && value.length === 2
11
- && isBoundWitness(value[0])
11
+ && isBoundWitnessWithStorageMeta(value[0])
12
12
  && Array.isArray(value[1])
13
- && !value[1].some(item => !isAnyPayload(item))
13
+ && !value[1].some(item => (!isAnyPayload(item) || !isStorageMeta(item)))
14
14
  )
15
15
  }
@@ -1,8 +1,8 @@
1
1
  import type { Hash } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
3
 
4
- import type { SignedHydratedTransaction } from '../../transaction/index.ts'
4
+ import type { HydratedTransaction } from '../../transaction/index.ts'
5
5
 
6
6
  export interface XyoRunner {
7
- broadcastTransaction(transaction: SignedHydratedTransaction): Promisable<Hash>
7
+ broadcastTransaction(transaction: HydratedTransaction): Promisable<Hash>
8
8
  }
@@ -1,25 +1,25 @@
1
1
  import type { Address, Hash } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
3
 
4
- import type { SignedHydratedBlock } from '../../block/index.ts'
4
+ import type { HydratedBlock } from '../../block/index.ts'
5
5
  import type { Transfer } from '../../payload/index.ts'
6
- import type { SignedHydratedTransaction, TransactionBoundWitness } from '../../transaction/index.ts'
6
+ import type { HydratedTransaction, TransactionBoundWitness } from '../../transaction/index.ts'
7
7
 
8
8
  export interface XyoViewer {
9
9
  accountBalance: (address: Address) => Promisable<bigint>
10
10
  accountHistory: (address: Address) => Promisable<[TransactionBoundWitness[], Transfer[]]>
11
11
 
12
- blockByHash(hash: Hash): Promisable<SignedHydratedBlock | null>
13
- blockByNumber(blockNumber: number): Promisable<SignedHydratedBlock | null>
14
- blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlock[]>
12
+ blockByHash(hash: Hash): Promisable<HydratedBlock | null>
13
+ blockByNumber(blockNumber: number): Promisable<HydratedBlock | null>
14
+ blocksByHash(hash: Hash, limit?: number): Promisable<HydratedBlock[]>
15
15
 
16
16
  chainId(): Promisable<Address>
17
17
 
18
- currentBlock(): Promisable<SignedHydratedBlock>
18
+ currentBlock(): Promisable<HydratedBlock>
19
19
  currentBlockHash(): Promisable<Hash>
20
20
  currentBlockNumber(): Promisable<number>
21
21
 
22
- transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<SignedHydratedTransaction | null>
23
- transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<SignedHydratedTransaction | null>
24
- transactionByHash(transactionHash: Hash): Promisable<SignedHydratedTransaction | null>
22
+ transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promisable<HydratedTransaction | null>
23
+ transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promisable<HydratedTransaction | null>
24
+ transactionByHash(transactionHash: Hash): Promisable<HydratedTransaction | null>
25
25
  }
@@ -1,10 +1,10 @@
1
1
  import type { Address, Hash } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
3
 
4
- import type { SignedHydratedBlock } from '../../../block/index.ts'
4
+ import type { HydratedBlock } from '../../../block/index.ts'
5
5
 
6
6
  export interface ChainBlockViewer {
7
7
  chain: Address
8
8
  hash: Hash
9
- hydrate(): Promisable<SignedHydratedBlock>
9
+ hydrate(): Promisable<HydratedBlock>
10
10
  }
@@ -1,7 +1,7 @@
1
1
  import type { Address, Hash } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
3
 
4
- import type { SignedHydratedBlock } from '../../../block/index.ts'
4
+ import type { HydratedBlock } from '../../../block/index.ts'
5
5
  import type { NetworkStatus } from '../../../network/index.ts'
6
6
  import type { ChainDefinitionProvider, ChainDefinitionViewer } from '../ChainDefinition/index.ts'
7
7
  import type { ChainPendingTransactionsViewer } from '../viewer/index.ts'
@@ -13,7 +13,7 @@ export interface ChainViewer<TChainDefinitionViewer extends ChainDefinitionViewe
13
13
  id: Address
14
14
  account(address: Address): ChainAccountViewer
15
15
  block(hash: Hash): ChainBlockViewer
16
- currentBlock(): Promisable<SignedHydratedBlock>
16
+ currentBlock(): Promisable<HydratedBlock>
17
17
  pendingTransactions(): ChainPendingTransactionsViewer
18
18
  status(): NetworkStatus
19
19
  }
@@ -1,62 +1,21 @@
1
1
  import { AsObjectFactory } from '@xylabs/object'
2
- import { type Signed } from '@xyo-network/boundwitness-model'
3
- import {
4
- type Payload, type WithHashStorageMeta, type WithStorageMeta,
5
- } from '@xyo-network/payload-model'
2
+ import type { Signed } from '@xyo-network/boundwitness-model'
3
+ import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
6
4
 
7
5
  import { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'
8
- import {
9
- isTransactionBoundWitness, isTransactionBoundWitnessWithHashStorageMeta, isTransactionBoundWitnessWithStorageMeta, type TransactionBoundWitness,
10
- } from './TransactionBoundWitness.ts'
6
+ import { isSignedTransactionBoundWitnessWithStorageMeta, type TransactionBoundWitness } from './TransactionBoundWitness.ts'
11
7
 
12
- export type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness, P extends Payload = Payload> = [T, P[]]
8
+ export type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness, P extends Payload = Payload> =
9
+ [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]
13
10
 
14
11
  export const isHydratedTransaction = (
15
12
  value: unknown,
16
13
  ): value is HydratedTransaction => {
17
14
  return (
18
- isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0])
15
+ isHydratedBoundWitness(value) && isSignedTransactionBoundWitnessWithStorageMeta(value[0])
19
16
  )
20
17
  }
21
18
 
22
19
  export const asHydratedTransaction = AsObjectFactory.create<HydratedTransaction>(
23
20
  isHydratedTransaction,
24
21
  )
25
-
26
- export type HydratedTransactionWithStorageMeta<T extends HydratedTransaction = HydratedTransaction>
27
- = [WithStorageMeta<T[0]>, WithStorageMeta<T[1][number]>[]]
28
-
29
- export const isHydratedTransactionWithStorageMeta = (
30
- value: unknown,
31
- ): value is HydratedTransactionWithStorageMeta => {
32
- return (
33
- isHydratedBoundWitness(value) && isTransactionBoundWitnessWithStorageMeta(value[0])
34
- )
35
- }
36
-
37
- export const asHydratedTransactionWithStorageMeta = AsObjectFactory.create<HydratedTransactionWithStorageMeta>(
38
- isHydratedTransactionWithStorageMeta,
39
- )
40
-
41
- export type HydratedTransactionWithHashStorageMeta<T extends HydratedTransaction = HydratedTransaction>
42
- = [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]
43
-
44
- export const isHydratedTransactionWithHashStorageMeta = (
45
- value: unknown,
46
- ): value is HydratedTransactionWithHashStorageMeta => {
47
- return (
48
- isHydratedBoundWitness(value) && isTransactionBoundWitnessWithHashStorageMeta(value[0])
49
- )
50
- }
51
-
52
- export const asHydratedTransactionWithHashStorageMeta = AsObjectFactory.create<HydratedTransactionWithHashStorageMeta>(
53
- isHydratedTransactionWithHashStorageMeta,
54
- )
55
-
56
- export type SignedHydratedTransaction<T extends HydratedTransaction = HydratedTransaction> = [Signed<T[0]>, T[1][number][]] & HydratedTransaction
57
-
58
- export type SignedHydratedTransactionWithStorageMeta<T extends HydratedTransaction = HydratedTransaction>
59
- = [WithStorageMeta<Signed<T[0]>>, WithStorageMeta<T[1][number]>[]] & SignedHydratedTransaction<T> & HydratedTransaction
60
-
61
- export type SignedHydratedTransactionWithHashStorageMeta<T extends HydratedTransaction = HydratedTransaction>
62
- = [WithHashStorageMeta<Signed<T[0]>>, WithHashStorageMeta<T[1][number]>[]] & SignedHydratedTransaction<T> & HydratedTransaction
@@ -1,9 +1,7 @@
1
1
  import type { Address } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
3
 
4
- import type {
5
- HydratedTransaction, HydratedTransactionWithHashStorageMeta, TransactionBoundWitness,
6
- } from '../../transaction/index.ts'
4
+ import type { HydratedTransaction, TransactionBoundWitness } from '../../transaction/index.ts'
7
5
  import type { HydratedTransactionValidationError } from './error.ts'
8
6
 
9
7
  /**
@@ -13,6 +11,6 @@ import type { HydratedTransactionValidationError } from './error.ts'
13
11
  * @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
14
12
  */
15
13
  export type HydratedTransactionValidatorFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (
16
- hydratedTransaction: HydratedTransactionWithHashStorageMeta<HydratedTransaction<T>>,
14
+ hydratedTransaction: HydratedTransaction<T>,
17
15
  chainId?: Address,
18
16
  ) => Promisable<HydratedTransactionValidationError[]>
@@ -1,7 +1,7 @@
1
- import { type HydratedTransactionWithHashStorageMeta, isHydratedTransaction } from '../../transaction/index.ts'
1
+ import { type HydratedTransaction, isHydratedTransaction } from '../../transaction/index.ts'
2
2
  import { isValidationError, type ValidationError } from '../error.ts'
3
3
 
4
- export interface HydratedTransactionValidationError extends ValidationError<HydratedTransactionWithHashStorageMeta> {}
4
+ export interface HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}
5
5
 
6
6
  export const isHydratedTransactionValidationError = (
7
7
  error: unknown,