@xyo-network/xl1-protocol 1.4.30 → 1.4.32

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 (42) hide show
  1. package/dist/neutral/index.mjs +72 -13
  2. package/dist/neutral/index.mjs.map +1 -1
  3. package/dist/types/validation/block/BlockValidationFunction.d.ts +1 -1
  4. package/dist/types/validation/block/BlockValidationFunction.d.ts.map +1 -1
  5. package/dist/types/validation/block/HydratedBlockStateValidationFunction.d.ts +1 -1
  6. package/dist/types/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -1
  7. package/dist/types/validation/block/HydratedBlockValidationFunction.d.ts +1 -1
  8. package/dist/types/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -1
  9. package/dist/types/validation/block/error.d.ts +12 -4
  10. package/dist/types/validation/block/error.d.ts.map +1 -1
  11. package/dist/types/validation/boundwitness/BoundWitnessValidationFunction.d.ts +1 -1
  12. package/dist/types/validation/boundwitness/BoundWitnessValidationFunction.d.ts.map +1 -1
  13. package/dist/types/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts +1 -1
  14. package/dist/types/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts.map +1 -1
  15. package/dist/types/validation/boundwitness/error.d.ts +3 -3
  16. package/dist/types/validation/boundwitness/error.d.ts.map +1 -1
  17. package/dist/types/validation/error.d.ts +8 -2
  18. package/dist/types/validation/error.d.ts.map +1 -1
  19. package/dist/types/validation/payload/InBlockPayloadValidationFunction.d.ts +1 -1
  20. package/dist/types/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -1
  21. package/dist/types/validation/payload/error.d.ts +10 -2
  22. package/dist/types/validation/payload/error.d.ts.map +1 -1
  23. package/dist/types/validation/transaction/HydratedTransactionStateValidationFunction.d.ts +1 -1
  24. package/dist/types/validation/transaction/HydratedTransactionStateValidationFunction.d.ts.map +1 -1
  25. package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts +1 -1
  26. package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts.map +1 -1
  27. package/dist/types/validation/transaction/error.d.ts +2 -2
  28. package/dist/types/validation/transaction/error.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/src/validation/block/BlockValidationFunction.ts +1 -1
  31. package/src/validation/block/HydratedBlockStateValidationFunction.ts +1 -1
  32. package/src/validation/block/HydratedBlockValidationFunction.ts +1 -1
  33. package/src/validation/block/error.ts +21 -10
  34. package/src/validation/boundwitness/BoundWitnessValidationFunction.ts +1 -1
  35. package/src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts +1 -1
  36. package/src/validation/boundwitness/error.ts +7 -7
  37. package/src/validation/error.ts +16 -3
  38. package/src/validation/payload/InBlockPayloadValidationFunction.ts +1 -1
  39. package/src/validation/payload/error.ts +15 -4
  40. package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +1 -1
  41. package/src/validation/transaction/HydratedTransactionValidationFunction.ts +1 -1
  42. package/src/validation/transaction/error.ts +2 -2
@@ -281,49 +281,100 @@ import { isUndefined } from "@xylabs/typeof";
281
281
 
282
282
  // src/validation/error.ts
283
283
  import { isError } from "@xylabs/typeof";
284
+ var ValidationError = class extends Error {
285
+ constructor(cause, message) {
286
+ super(message);
287
+ this.cause = cause;
288
+ this.name = this.constructor.name;
289
+ }
290
+ toJson() {
291
+ return {
292
+ name: this.name,
293
+ message: this.message,
294
+ cause: JSON.stringify(this.cause),
295
+ stack: this.stack
296
+ };
297
+ }
298
+ };
284
299
  var isValidationError = (error) => {
285
- return isError(error) && error?.value !== void 0;
300
+ return isError(error) && error?.cause !== void 0;
286
301
  };
287
302
 
288
303
  // src/validation/block/error.ts
304
+ var BlockValidationError = class extends ValidationError {
305
+ };
289
306
  var isBlockValidationError = (error) => {
290
307
  if (!isValidationError(error)) return false;
291
- const { value } = error;
292
- return isBlockBoundWitness(value);
308
+ const { cause } = error;
309
+ return isBlockBoundWitness(cause);
310
+ };
311
+ var HydratedBlockValidationError = class extends ValidationError {
293
312
  };
294
313
  var isHydratedBlockValidationError = (error) => {
295
314
  if (!isValidationError(error)) return false;
296
- const { value } = error;
297
- return isHydratedBoundWitness(value) && isBlockBoundWitness(value[0]);
315
+ const { cause } = error;
316
+ return isHydratedBoundWitness(cause) && isBlockBoundWitness(cause[0]);
317
+ };
318
+ var HydratedBlockStateValidationError = class extends ValidationError {
319
+ chainId;
320
+ constructor(chainId, cause, message) {
321
+ super(cause, message);
322
+ this.chainId = chainId;
323
+ }
324
+ toJson() {
325
+ return {
326
+ ...super.toJson(),
327
+ chainId: this.chainId
328
+ };
329
+ }
298
330
  };
299
331
  var isHydratedBlockStateValidationError = (error) => {
300
332
  if (!isValidationError(error)) return false;
301
- const { value, chainId } = error;
302
- return isHydratedBoundWitness(value) && isBlockBoundWitness(value[0]) && (isUndefined(chainId) || isAddress(chainId));
333
+ const { cause, chainId } = error;
334
+ return isHydratedBoundWitness(cause) && isBlockBoundWitness(cause[0]) && (isUndefined(chainId) || isAddress(chainId));
303
335
  };
304
336
 
305
337
  // src/validation/boundwitness/error.ts
306
338
  import { isBoundWitness as isBoundWitness3 } from "@xyo-network/boundwitness-model";
339
+ var BoundWitnessValidationError = class extends ValidationError {
340
+ };
307
341
  var isBoundWitnessValidationError = (error) => {
308
342
  if (!isValidationError(error)) return false;
309
- const { value } = error;
310
- return isBoundWitness3(value);
343
+ const { cause } = error;
344
+ return isBoundWitness3(cause);
345
+ };
346
+ var HydratedBoundWitnessValidationError = class extends ValidationError {
311
347
  };
312
348
  var isHydratedBoundWitnessValidationError = (error) => {
313
349
  if (!isValidationError(error)) return false;
314
- const { value } = error;
315
- return isHydratedBoundWitness(value);
350
+ const { cause } = error;
351
+ return isHydratedBoundWitness(cause);
316
352
  };
317
353
 
318
354
  // src/validation/payload/error.ts
319
355
  import { isAnyPayload as isAnyPayload3 } from "@xyo-network/payload-model";
356
+ var InBlockPayloadValidationError = class extends ValidationError {
357
+ block;
358
+ constructor(block, cause, message) {
359
+ super(cause, message);
360
+ this.block = block;
361
+ }
362
+ toJson() {
363
+ return {
364
+ ...super.toJson(),
365
+ block: JSON.stringify(this.block)
366
+ };
367
+ }
368
+ };
320
369
  var isInBlockPayloadValidationError = (error) => {
321
370
  if (!isValidationError(error)) return false;
322
- const { block, value } = error;
323
- return isAnyPayload3(value) && isHydratedBlock(block);
371
+ const { block, cause } = error;
372
+ return isAnyPayload3(cause) && isHydratedBlock(block);
324
373
  };
325
374
 
326
375
  // src/validation/transaction/error.ts
376
+ var HydratedTransactionValidationError = class extends ValidationError {
377
+ };
327
378
  var isHydratedTransactionValidationError = (error) => {
328
379
  return isValidationError(error) && isHydratedTransaction(error);
329
380
  };
@@ -333,12 +384,19 @@ export {
333
384
  AttoXL1,
334
385
  AttoXL1ConvertFactor,
335
386
  BlockNumberSchema,
387
+ BlockValidationError,
388
+ BoundWitnessValidationError,
336
389
  ChainIdentificationPayloadSchema,
337
390
  ChainIndexingServiceStateSchema,
338
391
  ChainInformationPayloadSchema,
339
392
  ChainStakeIntentSchema,
340
393
  FemtoXL1,
341
394
  HashSchema,
395
+ HydratedBlockStateValidationError,
396
+ HydratedBlockValidationError,
397
+ HydratedBoundWitnessValidationError,
398
+ HydratedTransactionValidationError,
399
+ InBlockPayloadValidationError,
342
400
  MicroXL1,
343
401
  MilliXL1,
344
402
  NanoXL1,
@@ -348,6 +406,7 @@ export {
348
406
  StepSizesV2,
349
407
  TransactionGasCosts,
350
408
  TransferSchema,
409
+ ValidationError,
351
410
  XL1,
352
411
  XL1ConvertDict,
353
412
  XL1Places,
@@ -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/block/error.ts","../../src/validation/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/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 { type Address, isAddress } from '@xylabs/hex'\nimport { isUndefined } from '@xylabs/typeof'\n\nimport {\n type BlockBoundWitness, type HydratedBlock, isBlockBoundWitness,\n} from '../../block/index.ts'\nimport { isHydratedBoundWitness } from '../../isHydratedBoundWitness.ts'\nimport { isValidationError, type ValidationError } from '../error.ts'\n\nexport interface BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n const { value } = error as BlockValidationError\n return (\n isBlockBoundWitness(value)\n )\n}\n\nexport interface HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError<HydratedBlock>(error)) return false\n const { value } = error as HydratedBlockValidationError\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitness(value[0])\n )\n}\n\nexport interface HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: Address\n}\n\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError<HydratedBlock>(error)) return false\n const { value, chainId } = error as HydratedBlockStateValidationError\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitness(value[0]) && (isUndefined(chainId) || isAddress(chainId))\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","import type { HydratedBoundWitness } from '@xyo-network/archivist-model'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\n\nimport { isHydratedBoundWitness } from '../../isHydratedBoundWitness.ts'\nimport { isValidationError, type ValidationError } from '../error.ts'\n\nexport interface BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n const { value } = error as BoundWitnessValidationError\n return (\n isBoundWitness(value)\n )\n}\n\nexport interface HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError<HydratedBoundWitness>(error)) return false\n const { value } = error as HydratedBoundWitnessValidationError\n return (\n isHydratedBoundWitness(value)\n )\n}\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 { type HydratedTransaction, isHydratedTransaction } from '../../transaction/index.ts'\nimport { isValidationError, type ValidationError } from '../error.ts'\n\nexport interface HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n return (\n isValidationError(error) && isHydratedTransaction(error)\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","isBoundWitness","isBoundWitness","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/block/error.ts","../../src/validation/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/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 { type Address, isAddress } from '@xylabs/hex'\nimport { isUndefined } from '@xylabs/typeof'\n\nimport {\n type BlockBoundWitness, type HydratedBlock, isBlockBoundWitness,\n} from '../../block/index.ts'\nimport { isHydratedBoundWitness } from '../../isHydratedBoundWitness.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n const { cause } = error as BlockValidationError\n return (\n isBlockBoundWitness(cause)\n )\n}\n\nexport class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError<HydratedBlock>(error)) return false\n const { cause } = error as HydratedBlockValidationError\n return (\n isHydratedBoundWitness(cause) && isBlockBoundWitness(cause[0])\n )\n}\n\nexport class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: Address\n constructor(chainId: Address, cause: HydratedBlock, message?: string) {\n super(cause, message)\n this.chainId = chainId\n }\n\n override toJson() {\n return {\n ...super.toJson(),\n chainId: this.chainId,\n }\n }\n}\n\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError<HydratedBlock>(error)) return false\n const { cause, chainId } = error as HydratedBlockStateValidationError\n return (\n isHydratedBoundWitness(cause) && isBlockBoundWitness(cause[0]) && (isUndefined(chainId) || isAddress(chainId))\n )\n}\n","import { isError } from '@xylabs/typeof'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport class ValidationError<TValue = Payload> extends Error {\n constructor(cause: TValue, message?: string) {\n super(message)\n this.cause = cause\n this.name = this.constructor.name\n }\n\n toJson() {\n return {\n name: this.name,\n message: this.message,\n cause: JSON.stringify(this.cause),\n stack: this.stack,\n }\n }\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && (error as ValidationError<TValue>)?.cause !== undefined\n )\n}\n","import type { HydratedBoundWitness } from '@xyo-network/archivist-model'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\n\nimport { isHydratedBoundWitness } from '../../isHydratedBoundWitness.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n const { cause } = error as BoundWitnessValidationError\n return (\n isBoundWitness(cause)\n )\n}\n\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError<HydratedBoundWitness>(error)) return false\n const { cause } = error as HydratedBoundWitnessValidationError\n return (\n isHydratedBoundWitness(cause)\n )\n}\n","import { isAnyPayload, type Payload } from '@xyo-network/payload-model'\n\nimport { type HydratedBlock, isHydratedBlock } from '../../block/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(block: HydratedBlock, cause: Payload, message?: string) {\n super(cause, message)\n this.block = block\n }\n\n override toJson() {\n return {\n ...super.toJson(),\n block: JSON.stringify(this.block),\n }\n }\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n const { block, cause } = error as InBlockPayloadValidationError\n return (\n isAnyPayload(cause) && isHydratedBlock(block)\n )\n}\n","import { type HydratedTransaction, isHydratedTransaction } from '../../transaction/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n return (\n isValidationError(error) && isHydratedTransaction(error)\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","isBoundWitness","isBoundWitness","isAnyPayload","isAnyPayload"]}
@@ -2,5 +2,5 @@ import type { Address } from '@xylabs/hex';
2
2
  import type { Promisable } from '@xylabs/promise';
3
3
  import type { BlockBoundWitness } from '../../block/index.ts';
4
4
  import type { BlockValidationError } from './error.ts';
5
- export type BlockValidatorFunction = (block: BlockBoundWitness, chainId?: Address) => Promisable<BlockValidationError[]>;
5
+ export type BlockValidatorFunction = (block: BlockBoundWitness, chainId?: Address) => Promisable<(BlockValidationError | Error)[]>;
6
6
  //# sourceMappingURL=BlockValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/BlockValidationFunction.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,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,EAAE,OAAO,KACd,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"BlockValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/BlockValidationFunction.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,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,EAAE,OAAO,KACd,UAAU,CAAC,CAAC,oBAAoB,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -12,5 +12,5 @@ import type { HydratedBlockStateValidationError } from './error.ts';
12
12
  */
13
13
  export type HydratedBlockStateValidationFunction = (hydratedBlock: HydratedBlock, chainId: Address, services: {
14
14
  accountBalance: AccountBalanceService;
15
- }) => Promisable<HydratedBlockStateValidationError[]>;
15
+ }) => Promisable<(HydratedBlockStateValidationError | Error)[]>;
16
16
  //# sourceMappingURL=HydratedBlockStateValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HydratedBlockStateValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/HydratedBlockStateValidationFunction.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,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAA;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,oCAAoC,GAAG,CACjD,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE;IAAE,cAAc,EAAE,qBAAqB,CAAA;CAAE,KAChD,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"HydratedBlockStateValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/HydratedBlockStateValidationFunction.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,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAA;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,oCAAoC,GAAG,CACjD,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE;IAAE,cAAc,EAAE,qBAAqB,CAAA;CAAE,KAChD,UAAU,CAAC,CAAC,iCAAiC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -8,5 +8,5 @@ import type { HydratedBlockValidationError } from './error.ts';
8
8
  * @param chainId The chain ID to use for validation.
9
9
  * @returns An array of errors if the block is invalid, or an empty array if it is valid.
10
10
  */
11
- export type HydratedBlockValidatorFunction = (hydratedBlock: HydratedBlock, chainId?: Address) => Promisable<HydratedBlockValidationError[]>;
11
+ export type HydratedBlockValidatorFunction = (hydratedBlock: HydratedBlock, chainId?: Address) => Promisable<(HydratedBlockValidationError | Error)[]>;
12
12
  //# sourceMappingURL=HydratedBlockValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HydratedBlockValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/HydratedBlockValidationFunction.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,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAC3C,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,OAAO,KACd,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"HydratedBlockValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/HydratedBlockValidationFunction.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,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAC3C,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,OAAO,KACd,UAAU,CAAC,CAAC,4BAA4B,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -1,14 +1,22 @@
1
1
  import { type Address } from '@xylabs/hex';
2
2
  import { type BlockBoundWitness, type HydratedBlock } from '../../block/index.ts';
3
- import { type ValidationError } from '../error.ts';
4
- export interface BlockValidationError extends ValidationError<BlockBoundWitness> {
3
+ import { ValidationError } from '../error.ts';
4
+ export declare class BlockValidationError extends ValidationError<BlockBoundWitness> {
5
5
  }
6
6
  export declare const isBlockValidationError: (error: unknown) => error is BlockValidationError;
7
- export interface HydratedBlockValidationError extends ValidationError<HydratedBlock> {
7
+ export declare class HydratedBlockValidationError extends ValidationError<HydratedBlock> {
8
8
  }
9
9
  export declare const isHydratedBlockValidationError: (error: unknown) => error is HydratedBlockValidationError;
10
- export interface HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {
10
+ export declare class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {
11
11
  chainId: Address;
12
+ constructor(chainId: Address, cause: HydratedBlock, message?: string);
13
+ toJson(): {
14
+ chainId: Lowercase<string>;
15
+ name: string;
16
+ message: string;
17
+ cause: string;
18
+ stack: string | undefined;
19
+ };
12
20
  }
13
21
  export declare const isHydratedBlockStateValidationError: (error: unknown) => error is HydratedBlockStateValidationError;
14
22
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,aAAa,CAAA;AAGrD,OAAO,EACL,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAC3C,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,WAAW,oBAAqB,SAAQ,eAAe,CAAC,iBAAiB,CAAC;CAAG;AAEnF,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,KACb,KAAK,IAAI,oBAMX,CAAA;AAED,MAAM,WAAW,4BAA6B,SAAQ,eAAe,CAAC,aAAa,CAAC;CAAG;AAEvF,eAAO,MAAM,8BAA8B,GACzC,OAAO,OAAO,KACb,KAAK,IAAI,4BAMX,CAAA;AAED,MAAM,WAAW,iCAAkC,SAAQ,eAAe,CAAC,aAAa,CAAC;IACvF,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,mCAAmC,GAC9C,OAAO,OAAO,KACb,KAAK,IAAI,iCAMX,CAAA"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/block/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,aAAa,CAAA;AAGrD,OAAO,EACL,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAC3C,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAqB,eAAe,EAAE,MAAM,aAAa,CAAA;AAEhE,qBAAa,oBAAqB,SAAQ,eAAe,CAAC,iBAAiB,CAAC;CAAG;AAE/E,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,KACb,KAAK,IAAI,oBAMX,CAAA;AAED,qBAAa,4BAA6B,SAAQ,eAAe,CAAC,aAAa,CAAC;CAAG;AAEnF,eAAO,MAAM,8BAA8B,GACzC,OAAO,OAAO,KACb,KAAK,IAAI,4BAMX,CAAA;AAED,qBAAa,iCAAkC,SAAQ,eAAe,CAAC,aAAa,CAAC;IACnF,OAAO,EAAE,OAAO,CAAA;gBACJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM;IAK3D,MAAM;;;;;;;CAMhB;AAED,eAAO,MAAM,mCAAmC,GAC9C,OAAO,OAAO,KACb,KAAK,IAAI,iCAMX,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { Promisable } from '@xylabs/promise';
2
2
  import type { BoundWitness } from '@xyo-network/boundwitness-model';
3
3
  import type { BoundWitnessValidationError } from './error.ts';
4
- export type BoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (bw: T) => Promisable<BoundWitnessValidationError[]>;
4
+ export type BoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (bw: T) => Promisable<(BoundWitnessValidationError | Error)[]>;
5
5
  //# sourceMappingURL=BoundWitnessValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoundWitnessValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/boundwitness/BoundWitnessValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAE7D,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,CAClF,EAAE,EAAE,CAAC,KACF,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"BoundWitnessValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/boundwitness/BoundWitnessValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAE7D,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,CAClF,EAAE,EAAE,CAAC,KACF,UAAU,CAAC,CAAC,2BAA2B,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -3,5 +3,5 @@ import type { BoundWitness } from '@xyo-network/boundwitness-model';
3
3
  import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model';
4
4
  import type { HydratedBoundWitnessValidationError } from './error.ts';
5
5
  export type HydratedBoundWitnessWithHashStorageMeta<T extends BoundWitness = BoundWitness, P extends Payload = Payload> = [WithHashStorageMeta<T>, WithHashStorageMeta<P>[]];
6
- export type HydratedBoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (bw: HydratedBoundWitnessWithHashStorageMeta<T>) => Promisable<HydratedBoundWitnessValidationError[]>;
6
+ export type HydratedBoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (bw: HydratedBoundWitnessWithHashStorageMeta<T>) => Promisable<(HydratedBoundWitnessValidationError | Error)[]>;
7
7
  //# sourceMappingURL=HydratedBoundWitnessValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HydratedBoundWitnessValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAE9E,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAA;AAErE,MAAM,MAAM,uCAAuC,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,IAClH,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEtD,MAAM,MAAM,sCAAsC,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,CAC1F,EAAE,EAAE,uCAAuC,CAAC,CAAC,CAAC,KAC3C,UAAU,CAAC,mCAAmC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"HydratedBoundWitnessValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAE9E,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAA;AAErE,MAAM,MAAM,uCAAuC,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,IAClH,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEtD,MAAM,MAAM,sCAAsC,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,CAC1F,EAAE,EAAE,uCAAuC,CAAC,CAAC,CAAC,KAC3C,UAAU,CAAC,CAAC,mCAAmC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import type { HydratedBoundWitness } from '@xyo-network/archivist-model';
2
2
  import { type BoundWitness } from '@xyo-network/boundwitness-model';
3
- import { type ValidationError } from '../error.ts';
4
- export interface BoundWitnessValidationError extends ValidationError<BoundWitness> {
3
+ import { ValidationError } from '../error.ts';
4
+ export declare class BoundWitnessValidationError extends ValidationError<BoundWitness> {
5
5
  }
6
6
  export declare const isBoundWitnessValidationError: (error: unknown) => error is BoundWitnessValidationError;
7
- export interface HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {
7
+ export declare class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {
8
8
  }
9
9
  export declare const isHydratedBoundWitnessValidationError: (error: unknown) => error is HydratedBoundWitnessValidationError;
10
10
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/boundwitness/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,iCAAiC,CAAA;AAGnF,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,WAAW,2BAA4B,SAAQ,eAAe,CAAC,YAAY,CAAC;CAAG;AAErF,eAAO,MAAM,6BAA6B,GACxC,OAAO,OAAO,KACb,KAAK,IAAI,2BAMX,CAAA;AAED,MAAM,WAAW,mCAAoC,SAAQ,eAAe,CAAC,oBAAoB,CAAC;CAAG;AAErG,eAAO,MAAM,qCAAqC,GAChD,OAAO,OAAO,KACb,KAAK,IAAI,mCAMX,CAAA"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/boundwitness/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,iCAAiC,CAAA;AAGnF,OAAO,EAAqB,eAAe,EAAE,MAAM,aAAa,CAAA;AAEhE,qBAAa,2BAA4B,SAAQ,eAAe,CAAC,YAAY,CAAC;CAAG;AAEjF,eAAO,MAAM,6BAA6B,GACxC,OAAO,OAAO,KACb,KAAK,IAAI,2BAMX,CAAA;AAED,qBAAa,mCAAoC,SAAQ,eAAe,CAAC,oBAAoB,CAAC;CAAG;AAEjG,eAAO,MAAM,qCAAqC,GAChD,OAAO,OAAO,KACb,KAAK,IAAI,mCAMX,CAAA"}
@@ -1,6 +1,12 @@
1
1
  import type { Payload } from '@xyo-network/payload-model';
2
- export interface ValidationError<TValue = Payload> extends Error {
3
- value: TValue;
2
+ export declare class ValidationError<TValue = Payload> extends Error {
3
+ constructor(cause: TValue, message?: string);
4
+ toJson(): {
5
+ name: string;
6
+ message: string;
7
+ cause: string;
8
+ stack: string | undefined;
9
+ };
4
10
  }
5
11
  export declare const isValidationError: <TValue = Payload>(error: unknown) => error is ValidationError<TValue>;
6
12
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/validation/error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,KAAK;IAC9D,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,GAAG,OAAO,EAChD,OAAO,OAAO,KACb,KAAK,IAAI,eAAe,CAAC,MAAM,CAIjC,CAAA"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/validation/error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,qBAAa,eAAe,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,KAAK;gBAC9C,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAM3C,MAAM;;;;;;CAQP;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,GAAG,OAAO,EAChD,OAAO,OAAO,KACb,KAAK,IAAI,eAAe,CAAC,MAAM,CAIjC,CAAA"}
@@ -2,5 +2,5 @@ import type { Promisable } from '@xylabs/promise';
2
2
  import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model';
3
3
  import type { HydratedBlock } from '../../block/index.ts';
4
4
  import type { InBlockPayloadValidationError } from './error.ts';
5
- export type InBlockPayloadValidationFunction = (payload: WithHashStorageMeta<Payload>, block: HydratedBlock) => Promisable<InBlockPayloadValidationError[]>;
5
+ export type InBlockPayloadValidationFunction = (payload: WithHashStorageMeta<Payload>, block: HydratedBlock) => Promisable<(InBlockPayloadValidationError | Error)[]>;
6
6
  //# sourceMappingURL=InBlockPayloadValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InBlockPayloadValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/payload/InBlockPayloadValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAE9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,MAAM,gCAAgC,GAAG,CAC7C,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,KACxD,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"InBlockPayloadValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/payload/InBlockPayloadValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAE9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,MAAM,gCAAgC,GAAG,CAC7C,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,KACxD,UAAU,CAAC,CAAC,6BAA6B,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -1,8 +1,16 @@
1
1
  import { type Payload } from '@xyo-network/payload-model';
2
2
  import { type HydratedBlock } from '../../block/index.ts';
3
- import { type ValidationError } from '../error.ts';
4
- export interface InBlockPayloadValidationError extends ValidationError<Payload> {
3
+ import { ValidationError } from '../error.ts';
4
+ export declare class InBlockPayloadValidationError extends ValidationError<Payload> {
5
5
  block: HydratedBlock;
6
+ constructor(block: HydratedBlock, cause: Payload, message?: string);
7
+ toJson(): {
8
+ block: string;
9
+ name: string;
10
+ message: string;
11
+ cause: string;
12
+ stack: string | undefined;
13
+ };
6
14
  }
7
15
  export declare const isInBlockPayloadValidationError: (error: unknown) => error is InBlockPayloadValidationError;
8
16
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/payload/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,WAAW,6BAA8B,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC7E,KAAK,EAAE,aAAa,CAAA;CACrB;AAED,eAAO,MAAM,+BAA+B,GAC1C,OAAO,OAAO,KACb,KAAK,IAAI,6BAMX,CAAA"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/validation/payload/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAqB,eAAe,EAAE,MAAM,aAAa,CAAA;AAEhE,qBAAa,6BAA8B,SAAQ,eAAe,CAAC,OAAO,CAAC;IACzE,KAAK,EAAE,aAAa,CAAA;gBACR,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;IAKzD,MAAM;;;;;;;CAMhB;AAED,eAAO,MAAM,+BAA+B,GAC1C,OAAO,OAAO,KACb,KAAK,IAAI,6BAMX,CAAA"}
@@ -10,5 +10,5 @@ import type { HydratedTransactionValidationError } from './error.ts';
10
10
  * @param archivist The archivist to use for validation.
11
11
  * @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
12
12
  */
13
- export type HydratedTransactionStateValidationFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (hydratedTransaction: HydratedBoundWitnessWithStorageMeta<T>, chainId: Address, archivist: ReadArchivist) => Promisable<HydratedTransactionValidationError[]>;
13
+ export type HydratedTransactionStateValidationFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (hydratedTransaction: HydratedBoundWitnessWithStorageMeta<T>, chainId: Address, archivist: ReadArchivist) => Promisable<(HydratedTransactionValidationError | Error)[]>;
14
14
  //# sourceMappingURL=HydratedTransactionStateValidationFunction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HydratedTransactionStateValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/transaction/HydratedTransactionStateValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,mCAAmC,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEtG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAA;AAEpE;;;;;;GAMG;AACH,MAAM,MAAM,0CAA0C,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,IAAI,CACpH,mBAAmB,EAAE,mCAAmC,CAAC,CAAC,CAAC,EAC3D,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,aAAa,KACrB,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"HydratedTransactionStateValidationFunction.d.ts","sourceRoot":"","sources":["../../../../src/validation/transaction/HydratedTransactionStateValidationFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,mCAAmC,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEtG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAA;AAEpE;;;;;;GAMG;AACH,MAAM,MAAM,0CAA0C,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,IAAI,CACpH,mBAAmB,EAAE,mCAAmC,CAAC,CAAC,CAAC,EAC3D,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,aAAa,KACrB,UAAU,CAAC,CAAC,kCAAkC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -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: HydratedTransaction<T>, chainId?: Address) => Promisable<HydratedTransactionValidationError[]>;
11
+ export type HydratedTransactionValidatorFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (hydratedTransaction: HydratedTransaction<T>, chainId?: Address) => Promisable<(HydratedTransactionValidationError | Error)[]>;
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,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
+ {"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,CAAC,kCAAkC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { type HydratedTransaction } from '../../transaction/index.ts';
2
- import { type ValidationError } from '../error.ts';
3
- export interface HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {
2
+ import { ValidationError } from '../error.ts';
3
+ export declare class 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,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"}
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,eAAe,EAAE,MAAM,aAAa,CAAA;AAEhE,qBAAa,kCAAmC,SAAQ,eAAe,CAAC,mBAAmB,CAAC;CAAG;AAE/F,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.30",
4
+ "version": "1.4.32",
5
5
  "description": "XYO Layer One Protocol",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -7,4 +7,4 @@ import type { BlockValidationError } from './error.ts'
7
7
  export type BlockValidatorFunction = (
8
8
  block: BlockBoundWitness,
9
9
  chainId?: Address,
10
- ) => Promisable<BlockValidationError[]>
10
+ ) => Promisable<(BlockValidationError | Error)[]>
@@ -16,4 +16,4 @@ export type HydratedBlockStateValidationFunction = (
16
16
  hydratedBlock: HydratedBlock,
17
17
  chainId: Address,
18
18
  services: { accountBalance: AccountBalanceService },
19
- ) => Promisable<HydratedBlockStateValidationError[]>
19
+ ) => Promisable<(HydratedBlockStateValidationError | Error)[]>
@@ -13,4 +13,4 @@ import type { HydratedBlockValidationError } from './error.ts'
13
13
  export type HydratedBlockValidatorFunction = (
14
14
  hydratedBlock: HydratedBlock,
15
15
  chainId?: Address,
16
- ) => Promisable<HydratedBlockValidationError[]>
16
+ ) => Promisable<(HydratedBlockValidationError | Error)[]>
@@ -5,42 +5,53 @@ import {
5
5
  type BlockBoundWitness, type HydratedBlock, isBlockBoundWitness,
6
6
  } from '../../block/index.ts'
7
7
  import { isHydratedBoundWitness } from '../../isHydratedBoundWitness.ts'
8
- import { isValidationError, type ValidationError } from '../error.ts'
8
+ import { isValidationError, ValidationError } from '../error.ts'
9
9
 
10
- export interface BlockValidationError extends ValidationError<BlockBoundWitness> {}
10
+ export class BlockValidationError extends ValidationError<BlockBoundWitness> {}
11
11
 
12
12
  export const isBlockValidationError = (
13
13
  error: unknown,
14
14
  ): error is BlockValidationError => {
15
15
  if (!isValidationError(error)) return false
16
- const { value } = error as BlockValidationError
16
+ const { cause } = error as BlockValidationError
17
17
  return (
18
- isBlockBoundWitness(value)
18
+ isBlockBoundWitness(cause)
19
19
  )
20
20
  }
21
21
 
22
- export interface HydratedBlockValidationError extends ValidationError<HydratedBlock> {}
22
+ export class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}
23
23
 
24
24
  export const isHydratedBlockValidationError = (
25
25
  error: unknown,
26
26
  ): error is HydratedBlockValidationError => {
27
27
  if (!isValidationError<HydratedBlock>(error)) return false
28
- const { value } = error as HydratedBlockValidationError
28
+ const { cause } = error as HydratedBlockValidationError
29
29
  return (
30
- isHydratedBoundWitness(value) && isBlockBoundWitness(value[0])
30
+ isHydratedBoundWitness(cause) && isBlockBoundWitness(cause[0])
31
31
  )
32
32
  }
33
33
 
34
- export interface HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {
34
+ export class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {
35
35
  chainId: Address
36
+ constructor(chainId: Address, cause: HydratedBlock, message?: string) {
37
+ super(cause, message)
38
+ this.chainId = chainId
39
+ }
40
+
41
+ override toJson() {
42
+ return {
43
+ ...super.toJson(),
44
+ chainId: this.chainId,
45
+ }
46
+ }
36
47
  }
37
48
 
38
49
  export const isHydratedBlockStateValidationError = (
39
50
  error: unknown,
40
51
  ): error is HydratedBlockStateValidationError => {
41
52
  if (!isValidationError<HydratedBlock>(error)) return false
42
- const { value, chainId } = error as HydratedBlockStateValidationError
53
+ const { cause, chainId } = error as HydratedBlockStateValidationError
43
54
  return (
44
- isHydratedBoundWitness(value) && isBlockBoundWitness(value[0]) && (isUndefined(chainId) || isAddress(chainId))
55
+ isHydratedBoundWitness(cause) && isBlockBoundWitness(cause[0]) && (isUndefined(chainId) || isAddress(chainId))
45
56
  )
46
57
  }
@@ -5,4 +5,4 @@ import type { BoundWitnessValidationError } from './error.ts'
5
5
 
6
6
  export type BoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (
7
7
  bw: T
8
- ) => Promisable<BoundWitnessValidationError[]>
8
+ ) => Promisable<(BoundWitnessValidationError | Error)[]>
@@ -9,4 +9,4 @@ export type HydratedBoundWitnessWithHashStorageMeta<T extends BoundWitness = Bou
9
9
 
10
10
  export type HydratedBoundWitnessValidationFunction<T extends BoundWitness = BoundWitness> = (
11
11
  bw: HydratedBoundWitnessWithHashStorageMeta<T>
12
- ) => Promisable<HydratedBoundWitnessValidationError[]>
12
+ ) => Promisable<(HydratedBoundWitnessValidationError | Error)[]>
@@ -2,28 +2,28 @@ import type { HydratedBoundWitness } from '@xyo-network/archivist-model'
2
2
  import { type BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'
3
3
 
4
4
  import { isHydratedBoundWitness } from '../../isHydratedBoundWitness.ts'
5
- import { isValidationError, type ValidationError } from '../error.ts'
5
+ import { isValidationError, ValidationError } from '../error.ts'
6
6
 
7
- export interface BoundWitnessValidationError extends ValidationError<BoundWitness> {}
7
+ export class BoundWitnessValidationError extends ValidationError<BoundWitness> {}
8
8
 
9
9
  export const isBoundWitnessValidationError = (
10
10
  error: unknown,
11
11
  ): error is BoundWitnessValidationError => {
12
12
  if (!isValidationError(error)) return false
13
- const { value } = error as BoundWitnessValidationError
13
+ const { cause } = error as BoundWitnessValidationError
14
14
  return (
15
- isBoundWitness(value)
15
+ isBoundWitness(cause)
16
16
  )
17
17
  }
18
18
 
19
- export interface HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}
19
+ export class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}
20
20
 
21
21
  export const isHydratedBoundWitnessValidationError = (
22
22
  error: unknown,
23
23
  ): error is HydratedBoundWitnessValidationError => {
24
24
  if (!isValidationError<HydratedBoundWitness>(error)) return false
25
- const { value } = error as HydratedBoundWitnessValidationError
25
+ const { cause } = error as HydratedBoundWitnessValidationError
26
26
  return (
27
- isHydratedBoundWitness(value)
27
+ isHydratedBoundWitness(cause)
28
28
  )
29
29
  }
@@ -1,14 +1,27 @@
1
1
  import { isError } from '@xylabs/typeof'
2
2
  import type { Payload } from '@xyo-network/payload-model'
3
3
 
4
- export interface ValidationError<TValue = Payload> extends Error {
5
- value: TValue
4
+ export class ValidationError<TValue = Payload> extends Error {
5
+ constructor(cause: TValue, message?: string) {
6
+ super(message)
7
+ this.cause = cause
8
+ this.name = this.constructor.name
9
+ }
10
+
11
+ toJson() {
12
+ return {
13
+ name: this.name,
14
+ message: this.message,
15
+ cause: JSON.stringify(this.cause),
16
+ stack: this.stack,
17
+ }
18
+ }
6
19
  }
7
20
 
8
21
  export const isValidationError = <TValue = Payload>(
9
22
  error: unknown,
10
23
  ): error is ValidationError<TValue> => {
11
24
  return (
12
- isError(error) && (error as ValidationError<TValue>)?.value !== undefined
25
+ isError(error) && (error as ValidationError<TValue>)?.cause !== undefined
13
26
  )
14
27
  }
@@ -6,4 +6,4 @@ import type { InBlockPayloadValidationError } from './error.ts'
6
6
 
7
7
  export type InBlockPayloadValidationFunction = (
8
8
  payload: WithHashStorageMeta<Payload>, block: HydratedBlock
9
- ) => Promisable<InBlockPayloadValidationError[]>
9
+ ) => Promisable<(InBlockPayloadValidationError | Error)[]>
@@ -1,18 +1,29 @@
1
1
  import { isAnyPayload, type Payload } from '@xyo-network/payload-model'
2
2
 
3
3
  import { type HydratedBlock, isHydratedBlock } from '../../block/index.ts'
4
- import { isValidationError, type ValidationError } from '../error.ts'
4
+ import { isValidationError, ValidationError } from '../error.ts'
5
5
 
6
- export interface InBlockPayloadValidationError extends ValidationError<Payload> {
6
+ export class InBlockPayloadValidationError extends ValidationError<Payload> {
7
7
  block: HydratedBlock
8
+ constructor(block: HydratedBlock, cause: Payload, message?: string) {
9
+ super(cause, message)
10
+ this.block = block
11
+ }
12
+
13
+ override toJson() {
14
+ return {
15
+ ...super.toJson(),
16
+ block: JSON.stringify(this.block),
17
+ }
18
+ }
8
19
  }
9
20
 
10
21
  export const isInBlockPayloadValidationError = (
11
22
  error: unknown,
12
23
  ): error is InBlockPayloadValidationError => {
13
24
  if (!isValidationError(error)) return false
14
- const { block, value } = error as InBlockPayloadValidationError
25
+ const { block, cause } = error as InBlockPayloadValidationError
15
26
  return (
16
- isAnyPayload(value) && isHydratedBlock(block)
27
+ isAnyPayload(cause) && isHydratedBlock(block)
17
28
  )
18
29
  }
@@ -16,4 +16,4 @@ export type HydratedTransactionStateValidationFunction<T extends TransactionBoun
16
16
  hydratedTransaction: HydratedBoundWitnessWithStorageMeta<T>,
17
17
  chainId: Address,
18
18
  archivist: ReadArchivist,
19
- ) => Promisable<HydratedTransactionValidationError[]>
19
+ ) => Promisable<(HydratedTransactionValidationError | Error)[]>
@@ -13,4 +13,4 @@ import type { HydratedTransactionValidationError } from './error.ts'
13
13
  export type HydratedTransactionValidatorFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (
14
14
  hydratedTransaction: HydratedTransaction<T>,
15
15
  chainId?: Address,
16
- ) => Promisable<HydratedTransactionValidationError[]>
16
+ ) => Promisable<(HydratedTransactionValidationError | Error)[]>
@@ -1,7 +1,7 @@
1
1
  import { type HydratedTransaction, isHydratedTransaction } from '../../transaction/index.ts'
2
- import { isValidationError, type ValidationError } from '../error.ts'
2
+ import { isValidationError, ValidationError } from '../error.ts'
3
3
 
4
- export interface HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}
4
+ export class HydratedTransactionValidationError extends ValidationError<HydratedTransaction> {}
5
5
 
6
6
  export const isHydratedTransactionValidationError = (
7
7
  error: unknown,