@xyo-network/xl1-protocol 1.13.5 → 1.13.6
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.
- package/dist/neutral/index.mjs +190 -174
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/model/StepIdentity.d.ts +5 -0
- package/dist/neutral/model/StepIdentity.d.ts.map +1 -1
- package/dist/neutral/payload/StepIdentityPayload.d.ts +13 -0
- package/dist/neutral/payload/StepIdentityPayload.d.ts.map +1 -0
- package/dist/neutral/payload/index.d.ts +1 -0
- package/dist/neutral/payload/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/model/StepIdentity.ts +6 -0
- package/src/payload/StepIdentityPayload.ts +20 -0
- package/src/payload/index.ts +1 -0
package/dist/neutral/index.mjs
CHANGED
|
@@ -287,7 +287,7 @@ var XL1Amount = class _XL1Amount {
|
|
|
287
287
|
import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
|
|
288
288
|
import { isHashMeta as isHashMeta3, isSchema } from "@xyo-network/payload-model";
|
|
289
289
|
import { isSchemaPayload, SchemaSchema } from "@xyo-network/schema-payload-plugin";
|
|
290
|
-
import
|
|
290
|
+
import z13 from "zod";
|
|
291
291
|
|
|
292
292
|
// src/payload/elevatable/Bridge/BridgeDestinationObservation.ts
|
|
293
293
|
import { HexZod as HexZod2 } from "@xylabs/hex";
|
|
@@ -447,11 +447,154 @@ var TransferSchema = "network.xyo.transfer";
|
|
|
447
447
|
var isTransfer = isPayloadOfSchemaType5(TransferSchema);
|
|
448
448
|
var asTransfer = AsObjectFactory8.create(isTransfer);
|
|
449
449
|
|
|
450
|
+
// src/payload/StepIdentityPayload.ts
|
|
451
|
+
import { AsObjectFactory as AsObjectFactory9 } from "@xylabs/object";
|
|
452
|
+
import { isPayloadOfZodType as isPayloadOfZodType4 } from "@xyo-network/payload-model";
|
|
453
|
+
|
|
454
|
+
// src/model/BlockNumber/BlockNumber.ts
|
|
455
|
+
import z5 from "zod";
|
|
456
|
+
|
|
457
|
+
// src/model/zod/zodAsFactory.ts
|
|
458
|
+
import { assertError } from "@xylabs/hex";
|
|
459
|
+
function zodAsFactory(zod) {
|
|
460
|
+
function asFunc(value, assert) {
|
|
461
|
+
const result = zod.safeParse(value);
|
|
462
|
+
if (result.success) {
|
|
463
|
+
return result.data;
|
|
464
|
+
}
|
|
465
|
+
return assertError(value, assert, result.error.message);
|
|
466
|
+
}
|
|
467
|
+
return asFunc;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
// src/model/zod/zodIsFactory.ts
|
|
471
|
+
function zodIsFactory(zod) {
|
|
472
|
+
return (value) => zod.safeParse(value).success;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
// src/model/zod/zodToFactory.ts
|
|
476
|
+
function zodToFactory(zod) {
|
|
477
|
+
return zodAsFactory(zod);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
// src/model/BlockNumber/Numberish.ts
|
|
481
|
+
import z4 from "zod";
|
|
482
|
+
var NumberishZod = z4.union([z4.number(), z4.string(), z4.bigint()]).transform((v) => typeof v === "bigint" ? Number(v) : typeof v === "string" ? Number(v) : v).pipe(z4.number());
|
|
483
|
+
|
|
484
|
+
// src/model/BlockNumber/BlockNumber.ts
|
|
485
|
+
var BlockNumberZod = z5.number().transform((v) => v);
|
|
486
|
+
var NumberishBlockNumberZod = NumberishZod.transform((v) => v);
|
|
487
|
+
var asBlockNumber = zodAsFactory(BlockNumberZod);
|
|
488
|
+
var toBlockNumber = zodToFactory(NumberishBlockNumberZod);
|
|
489
|
+
var BLOCK_NUMBER_ZERO = asBlockNumber(0);
|
|
490
|
+
|
|
491
|
+
// src/model/BlockNumber/EthBlockNumber.ts
|
|
492
|
+
import z6 from "zod";
|
|
493
|
+
var EthBlockNumberZod = z6.number().transform((v) => v);
|
|
494
|
+
var NumberishEthBlockNumberZod = NumberishBlockNumberZod.transform((v) => v);
|
|
495
|
+
var asEthBlockNumber = zodAsFactory(EthBlockNumberZod);
|
|
496
|
+
var toEthBlockNumber = zodToFactory(NumberishEthBlockNumberZod);
|
|
497
|
+
var ETH_BLOCK_NUMBER_ZERO = asEthBlockNumber(0);
|
|
498
|
+
|
|
499
|
+
// src/model/BlockNumber/XL1BlockNumber.ts
|
|
500
|
+
import z7 from "zod";
|
|
501
|
+
var XL1BlockNumberZod = z7.number().transform((v) => v);
|
|
502
|
+
var NumberishXL1BlockNumberZod = NumberishBlockNumberZod.transform((v) => v);
|
|
503
|
+
var asXL1BlockNumber = zodAsFactory(XL1BlockNumberZod);
|
|
504
|
+
var toXL1BlockNumber = zodToFactory(NumberishXL1BlockNumberZod);
|
|
505
|
+
var XL1_BLOCK_NUMBER_ZERO = asXL1BlockNumber(0);
|
|
506
|
+
|
|
507
|
+
// src/model/BlockRange/BlockRange.ts
|
|
508
|
+
import { assertError as assertError2 } from "@xylabs/hex";
|
|
509
|
+
import { isDefined } from "@xylabs/typeof";
|
|
510
|
+
import z8 from "zod";
|
|
511
|
+
var BlockRangeZod = z8.tuple([BlockNumberZod, BlockNumberZod]);
|
|
512
|
+
var NumberishBlockRangeZod = z8.tuple([NumberishBlockNumberZod, NumberishBlockNumberZod]);
|
|
513
|
+
var asBlockRange = zodAsFactory(BlockRangeZod);
|
|
514
|
+
var toBlockRange = zodToFactory(NumberishBlockRangeZod);
|
|
515
|
+
var toBlockNumberKey = (range) => `${range[0]}|${range[1]}`;
|
|
516
|
+
function fromBlockNumberKey(key, assert) {
|
|
517
|
+
const [start, end] = key.split("|").map((v) => asBlockNumber(Number(v)));
|
|
518
|
+
const result = isDefined(start) && isDefined(end) ? [start, end] : void 0;
|
|
519
|
+
return assertError2(result, assert, `Invalid BlockRangeKey: ${key}`);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// src/model/BlockRange/EthBlockRange.ts
|
|
523
|
+
import { assertError as assertError3 } from "@xylabs/hex";
|
|
524
|
+
import { isDefined as isDefined2 } from "@xylabs/typeof";
|
|
525
|
+
import z9 from "zod";
|
|
526
|
+
var EthBlockRangeZod = z9.tuple([EthBlockNumberZod, EthBlockNumberZod]);
|
|
527
|
+
var NumberishEthBlockRangeZod = z9.tuple([NumberishEthBlockNumberZod, NumberishEthBlockNumberZod]);
|
|
528
|
+
var asEthBlockRange = zodAsFactory(EthBlockRangeZod);
|
|
529
|
+
var toEthBlockRange = zodToFactory(NumberishEthBlockRangeZod);
|
|
530
|
+
var toEthBlockNumberKey = (range) => `${range[0]}|${range[1]}`;
|
|
531
|
+
function fromEthBlockNumberKey(key, assert) {
|
|
532
|
+
const [start, end] = key.split("|").map((v) => asEthBlockNumber(Number(v)));
|
|
533
|
+
const result = isDefined2(start) && isDefined2(end) ? [start, end] : void 0;
|
|
534
|
+
return assertError3(result, assert, `Invalid EthBlockRangeKey: ${key}`);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
// src/model/BlockRange/Range.ts
|
|
538
|
+
import z10 from "zod";
|
|
539
|
+
var RangeZod = z10.tuple([z10.number(), z10.number()]);
|
|
540
|
+
var isRange = zodIsFactory(RangeZod);
|
|
541
|
+
var asRange = zodAsFactory(RangeZod);
|
|
542
|
+
var toRange = zodToFactory(RangeZod);
|
|
543
|
+
|
|
544
|
+
// src/model/BlockRange/XL1BlockRange.ts
|
|
545
|
+
import { assertError as assertError4 } from "@xylabs/hex";
|
|
546
|
+
import { isDefined as isDefined3 } from "@xylabs/typeof";
|
|
547
|
+
import z11 from "zod";
|
|
548
|
+
var XL1BlockRangeZod = z11.tuple([XL1BlockNumberZod, XL1BlockNumberZod]);
|
|
549
|
+
var NumberishXL1BlockRangeZod = z11.tuple([NumberishXL1BlockNumberZod, NumberishXL1BlockNumberZod]);
|
|
550
|
+
var asXL1BlockRange = zodAsFactory(XL1BlockRangeZod);
|
|
551
|
+
var toXL1BlockRange = zodToFactory(NumberishXL1BlockRangeZod);
|
|
552
|
+
var toXL1BlockNumberKey = (range) => `${range[0]}|${range[1]}`;
|
|
553
|
+
function fromXL1BlockNumberKey(key, assert) {
|
|
554
|
+
const [start, end] = key.split("|").map((v) => asXL1BlockNumber(Number(v)));
|
|
555
|
+
const result = isDefined3(start) && isDefined3(end) ? [start, end] : void 0;
|
|
556
|
+
return assertError4(result, assert, `Invalid XL1BlockRangeKey: ${key}`);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
// src/model/StepIdentity.ts
|
|
560
|
+
import { isUndefined } from "@xylabs/typeof";
|
|
561
|
+
import * as z12 from "zod";
|
|
562
|
+
var StepIdentityZod = z12.object({
|
|
563
|
+
block: z12.number().int().nonnegative(),
|
|
564
|
+
step: z12.number().int().nonnegative()
|
|
565
|
+
});
|
|
566
|
+
function tryParseInt(value) {
|
|
567
|
+
if (value === "") return void 0;
|
|
568
|
+
const num = Number(value);
|
|
569
|
+
return Number.isInteger(num) ? num : void 0;
|
|
570
|
+
}
|
|
571
|
+
var asStepIdentity = (stepIdentityString) => {
|
|
572
|
+
try {
|
|
573
|
+
const [blockNumberString, stepString] = stepIdentityString.split("|");
|
|
574
|
+
if (isUndefined(blockNumberString) || isUndefined(stepString)) {
|
|
575
|
+
return void 0;
|
|
576
|
+
}
|
|
577
|
+
const step = tryParseInt(stepString);
|
|
578
|
+
const block = toXL1BlockNumber(blockNumberString);
|
|
579
|
+
if (isUndefined(block) || isUndefined(step)) {
|
|
580
|
+
return void 0;
|
|
581
|
+
}
|
|
582
|
+
return { block, step };
|
|
583
|
+
} catch {
|
|
584
|
+
return void 0;
|
|
585
|
+
}
|
|
586
|
+
};
|
|
587
|
+
|
|
588
|
+
// src/payload/StepIdentityPayload.ts
|
|
589
|
+
var StepIdentitySchema = "network.xyo.chain.step.identity";
|
|
590
|
+
var isStepIdentityPayload = isPayloadOfZodType4(StepIdentityZod, StepIdentitySchema);
|
|
591
|
+
var asStepIdentityPayload = AsObjectFactory9.create(isStepIdentityPayload);
|
|
592
|
+
|
|
450
593
|
// src/transaction/AnyHydratedTransaction.ts
|
|
451
|
-
import { AsObjectFactory as
|
|
594
|
+
import { AsObjectFactory as AsObjectFactory12 } from "@xylabs/object";
|
|
452
595
|
|
|
453
596
|
// src/isHydratedBoundWitness.ts
|
|
454
|
-
import { AsObjectFactory as
|
|
597
|
+
import { AsObjectFactory as AsObjectFactory10 } from "@xylabs/object";
|
|
455
598
|
import { isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
456
599
|
import { isAnyPayload as isAnyPayload2, isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
|
|
457
600
|
var isHydratedBoundWitness = (value) => {
|
|
@@ -460,10 +603,10 @@ var isHydratedBoundWitness = (value) => {
|
|
|
460
603
|
var isHydratedBoundWitnessWithStorageMeta = (value) => {
|
|
461
604
|
return isHydratedBoundWitness(value) && isStorageMeta2(value[0]) && !value[1].some((item) => !isStorageMeta2(item));
|
|
462
605
|
};
|
|
463
|
-
var asHydratedBoundWitness =
|
|
606
|
+
var asHydratedBoundWitness = AsObjectFactory10.create(
|
|
464
607
|
isHydratedBoundWitness
|
|
465
608
|
);
|
|
466
|
-
var asHydratedBoundWitnessWithStorageMeta =
|
|
609
|
+
var asHydratedBoundWitnessWithStorageMeta = AsObjectFactory10.create(
|
|
467
610
|
isHydratedBoundWitnessWithStorageMeta
|
|
468
611
|
);
|
|
469
612
|
|
|
@@ -471,24 +614,24 @@ var asHydratedBoundWitnessWithStorageMeta = AsObjectFactory9.create(
|
|
|
471
614
|
import {
|
|
472
615
|
isAddress
|
|
473
616
|
} from "@xylabs/hex";
|
|
474
|
-
import { AsObjectFactory as
|
|
617
|
+
import { AsObjectFactory as AsObjectFactory11 } from "@xylabs/object";
|
|
475
618
|
import { isBoundWitness as isBoundWitness2 } from "@xyo-network/boundwitness-model";
|
|
476
619
|
var isTransactionBoundWitness = (value) => {
|
|
477
620
|
const typedObj = value;
|
|
478
621
|
return isBoundWitness2(value) && isAddress(typedObj.chain) && typedObj.fees !== void 0 && typedObj.exp !== void 0 && typedObj.nbf !== void 0;
|
|
479
622
|
};
|
|
480
|
-
var asTransactionBoundWitness =
|
|
623
|
+
var asTransactionBoundWitness = AsObjectFactory11.create(isTransactionBoundWitness);
|
|
481
624
|
|
|
482
625
|
// src/transaction/AnyHydratedTransaction.ts
|
|
483
626
|
var isAnyHydratedTransaction = (value) => {
|
|
484
627
|
return isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]);
|
|
485
628
|
};
|
|
486
|
-
var asAnyHydratedTransaction =
|
|
629
|
+
var asAnyHydratedTransaction = AsObjectFactory12.create(
|
|
487
630
|
isAnyHydratedTransaction
|
|
488
631
|
);
|
|
489
632
|
|
|
490
633
|
// src/transaction/HydratedTransaction.ts
|
|
491
|
-
import { AsObjectFactory as
|
|
634
|
+
import { AsObjectFactory as AsObjectFactory13 } from "@xylabs/object";
|
|
492
635
|
import { isSigned } from "@xyo-network/boundwitness-model";
|
|
493
636
|
import {
|
|
494
637
|
isStorageMeta as isStorageMeta3
|
|
@@ -496,67 +639,67 @@ import {
|
|
|
496
639
|
var isHydratedTransaction = (value) => {
|
|
497
640
|
return isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]) && isSigned(value[0]) && isStorageMeta3(value[0]);
|
|
498
641
|
};
|
|
499
|
-
var asHydratedTransaction =
|
|
642
|
+
var asHydratedTransaction = AsObjectFactory13.create(
|
|
500
643
|
// eslint-disable-next-line sonarjs/deprecation
|
|
501
644
|
isHydratedTransaction
|
|
502
645
|
);
|
|
503
646
|
|
|
504
647
|
// src/transaction/HydratedTransactionWithHashMeta.ts
|
|
505
|
-
import { AsObjectFactory as
|
|
648
|
+
import { AsObjectFactory as AsObjectFactory14 } from "@xylabs/object";
|
|
506
649
|
import {
|
|
507
650
|
isStorageMeta as isStorageMeta4
|
|
508
651
|
} from "@xyo-network/payload-model";
|
|
509
652
|
var isHydratedTransactionWithHashMeta = (value) => {
|
|
510
653
|
return isAnyHydratedTransaction(value) && isStorageMeta4(value[0]) && !value[1].some((v) => !isStorageMeta4(v));
|
|
511
654
|
};
|
|
512
|
-
var asHydratedTransactionWithHashMeta =
|
|
655
|
+
var asHydratedTransactionWithHashMeta = AsObjectFactory14.create(
|
|
513
656
|
isHydratedTransactionWithHashMeta
|
|
514
657
|
);
|
|
515
658
|
|
|
516
659
|
// src/transaction/HydratedTransactionWithStorageMeta.ts
|
|
517
|
-
import { AsObjectFactory as
|
|
660
|
+
import { AsObjectFactory as AsObjectFactory15 } from "@xylabs/object";
|
|
518
661
|
import {
|
|
519
662
|
isStorageMeta as isStorageMeta5
|
|
520
663
|
} from "@xyo-network/payload-model";
|
|
521
664
|
var isHydratedTransactionWithStorageMeta = (value) => {
|
|
522
665
|
return isAnyHydratedTransaction(value) && isStorageMeta5(value[0]) && !value[1].some((v) => !isStorageMeta5(v));
|
|
523
666
|
};
|
|
524
|
-
var asHydratedTransactionWithStorageMeta =
|
|
667
|
+
var asHydratedTransactionWithStorageMeta = AsObjectFactory15.create(
|
|
525
668
|
isHydratedTransactionWithStorageMeta
|
|
526
669
|
);
|
|
527
670
|
|
|
528
671
|
// src/transaction/SignedHydratedTransaction.ts
|
|
529
|
-
import { AsObjectFactory as
|
|
672
|
+
import { AsObjectFactory as AsObjectFactory16 } from "@xylabs/object";
|
|
530
673
|
import { isSigned as isSigned2 } from "@xyo-network/boundwitness-model";
|
|
531
674
|
var isSignedHydratedTransaction = (value) => {
|
|
532
675
|
return isAnyHydratedTransaction(value) && isSigned2(value[0]);
|
|
533
676
|
};
|
|
534
|
-
var asSignedHydratedTransaction =
|
|
677
|
+
var asSignedHydratedTransaction = AsObjectFactory16.create(
|
|
535
678
|
isSignedHydratedTransaction
|
|
536
679
|
);
|
|
537
680
|
|
|
538
681
|
// src/transaction/SignedHydratedTransactionWithHashMeta.ts
|
|
539
|
-
import { AsObjectFactory as
|
|
682
|
+
import { AsObjectFactory as AsObjectFactory17 } from "@xylabs/object";
|
|
540
683
|
import { isStorageMeta as isStorageMeta6 } from "@xyo-network/payload-model";
|
|
541
684
|
var isSignedHydratedTransactionWithHashMeta = (value) => {
|
|
542
685
|
return isSignedHydratedTransaction(value) && isStorageMeta6(value[0]) && !value[1].some((v) => !isStorageMeta6(v));
|
|
543
686
|
};
|
|
544
|
-
var asSignedHydratedTransactionWithHashMeta =
|
|
687
|
+
var asSignedHydratedTransactionWithHashMeta = AsObjectFactory17.create(
|
|
545
688
|
isSignedHydratedTransactionWithHashMeta
|
|
546
689
|
);
|
|
547
690
|
|
|
548
691
|
// src/transaction/SignedHydratedTransactionWithStorageMeta.ts
|
|
549
|
-
import { AsObjectFactory as
|
|
692
|
+
import { AsObjectFactory as AsObjectFactory18 } from "@xylabs/object";
|
|
550
693
|
import { isStorageMeta as isStorageMeta7 } from "@xyo-network/payload-model";
|
|
551
694
|
var isSignedHydratedTransactionWithStorageMeta = (value) => {
|
|
552
695
|
return isSignedHydratedTransaction(value) && isStorageMeta7(value[0]) && !value[1].some((v) => !isStorageMeta7(v));
|
|
553
696
|
};
|
|
554
|
-
var asSignedHydratedTransactionWithStorageMeta =
|
|
697
|
+
var asSignedHydratedTransactionWithStorageMeta = AsObjectFactory18.create(
|
|
555
698
|
isSignedHydratedTransactionWithStorageMeta
|
|
556
699
|
);
|
|
557
700
|
|
|
558
701
|
// src/transaction/TransactionBoundWitnessDeprecated.ts
|
|
559
|
-
import { AsObjectFactory as
|
|
702
|
+
import { AsObjectFactory as AsObjectFactory19 } from "@xylabs/object";
|
|
560
703
|
import { isSigned as isSigned3 } from "@xyo-network/boundwitness-model";
|
|
561
704
|
import { isHashMeta, isStorageMeta as isStorageMeta8 } from "@xyo-network/payload-model";
|
|
562
705
|
var isSignedTransactionBoundWitness = (value) => {
|
|
@@ -566,12 +709,12 @@ var isTransactionBoundWitnessWithStorageMeta = (value) => isTransactionBoundWitn
|
|
|
566
709
|
var isTransactionBoundWitnessWithHashMeta = (value) => isTransactionBoundWitness(value) && isHashMeta(value);
|
|
567
710
|
var isSignedTransactionBoundWitnessWithStorageMeta = (value) => isSignedTransactionBoundWitness(value) && isStorageMeta8(value);
|
|
568
711
|
var isSignedTransactionBoundWitnessWithHashMeta = (value) => isSignedTransactionBoundWitness(value) && isHashMeta(value);
|
|
569
|
-
var asTransactionBoundWitnessWithStorageMeta =
|
|
570
|
-
var asTransactionBoundWitnessWithHashMeta =
|
|
712
|
+
var asTransactionBoundWitnessWithStorageMeta = AsObjectFactory19.create(isTransactionBoundWitnessWithStorageMeta);
|
|
713
|
+
var asTransactionBoundWitnessWithHashMeta = AsObjectFactory19.create(isTransactionBoundWitnessWithHashMeta);
|
|
571
714
|
|
|
572
715
|
// src/transaction/TransactionFeesFields.ts
|
|
573
716
|
import { isHex } from "@xylabs/hex";
|
|
574
|
-
import { AsObjectFactory as
|
|
717
|
+
import { AsObjectFactory as AsObjectFactory20 } from "@xylabs/object";
|
|
575
718
|
import { isObject } from "@xylabs/typeof";
|
|
576
719
|
var isTransactionFeesBigInt = (value) => {
|
|
577
720
|
if (!isObject(value)) {
|
|
@@ -585,7 +728,7 @@ var isTransactionFeesBigInt = (value) => {
|
|
|
585
728
|
} = value;
|
|
586
729
|
return isAttoXL1(base) && isAttoXL1(gasLimit) && isAttoXL1(gasPrice) && isAttoXL1(priority);
|
|
587
730
|
};
|
|
588
|
-
var asTransactionFeesBigInt =
|
|
731
|
+
var asTransactionFeesBigInt = AsObjectFactory20.create(
|
|
589
732
|
isTransactionFeesBigInt
|
|
590
733
|
);
|
|
591
734
|
var isTransactionFeesHex = (value) => {
|
|
@@ -600,29 +743,29 @@ var isTransactionFeesHex = (value) => {
|
|
|
600
743
|
} = value;
|
|
601
744
|
return isHex(base) && isHex(gasLimit) && isHex(gasPrice) && isHex(priority);
|
|
602
745
|
};
|
|
603
|
-
var asTransactionFeesHex =
|
|
746
|
+
var asTransactionFeesHex = AsObjectFactory20.create(
|
|
604
747
|
isTransactionFeesHex
|
|
605
748
|
);
|
|
606
749
|
|
|
607
750
|
// src/transaction/UnsignedHydratedTransaction.ts
|
|
608
|
-
import { AsObjectFactory as
|
|
751
|
+
import { AsObjectFactory as AsObjectFactory21 } from "@xylabs/object";
|
|
609
752
|
import { isUnsigned } from "@xyo-network/boundwitness-model";
|
|
610
753
|
var isUnsignedHydratedTransaction = (value) => {
|
|
611
754
|
return isAnyHydratedTransaction(value) && isUnsigned(value[0]);
|
|
612
755
|
};
|
|
613
|
-
var asUnsignedHydratedTransaction =
|
|
756
|
+
var asUnsignedHydratedTransaction = AsObjectFactory21.create(
|
|
614
757
|
isUnsignedHydratedTransaction
|
|
615
758
|
);
|
|
616
759
|
|
|
617
760
|
// src/transaction/UnsignedHydratedTransactionWithHashMeta.ts
|
|
618
|
-
import { AsObjectFactory as
|
|
761
|
+
import { AsObjectFactory as AsObjectFactory22 } from "@xylabs/object";
|
|
619
762
|
import {
|
|
620
763
|
isHashMeta as isHashMeta2
|
|
621
764
|
} from "@xyo-network/payload-model";
|
|
622
765
|
var isUnsignedHydratedTransactionWithHashMeta = (value) => {
|
|
623
766
|
return isSignedHydratedTransaction(value) && isHashMeta2(value[0]) && !value[1].some((v) => !isHashMeta2(v));
|
|
624
767
|
};
|
|
625
|
-
var asUnsignedHydratedTransactionWithHashMeta =
|
|
768
|
+
var asUnsignedHydratedTransactionWithHashMeta = AsObjectFactory22.create(
|
|
626
769
|
isUnsignedHydratedTransactionWithHashMeta
|
|
627
770
|
);
|
|
628
771
|
|
|
@@ -648,11 +791,11 @@ var isAllowedBlockPayload = (value) => {
|
|
|
648
791
|
var isAllowedBlockPayloadWithHashMeta = (value) => {
|
|
649
792
|
return isAllowedBlockPayload(value) && isHashMeta3(value);
|
|
650
793
|
};
|
|
651
|
-
var AllowedBlockPayloadZod =
|
|
794
|
+
var AllowedBlockPayloadZod = z13.object({ schema: z13.enum(AllowedBlockPayloadSchemas) });
|
|
652
795
|
|
|
653
796
|
// src/block/BlockBoundWitness.ts
|
|
654
797
|
import { isHex as isHex2 } from "@xylabs/hex";
|
|
655
|
-
import { AsObjectFactory as
|
|
798
|
+
import { AsObjectFactory as AsObjectFactory23 } from "@xylabs/object";
|
|
656
799
|
import { isBoundWitness as isBoundWitness3, isSigned as isSigned4 } from "@xyo-network/boundwitness-model";
|
|
657
800
|
import { isHashMeta as isHashMeta4, isStorageMeta as isStorageMeta9 } from "@xyo-network/payload-model";
|
|
658
801
|
var isBlockBoundWitness = (value) => {
|
|
@@ -674,19 +817,19 @@ var isBlockBoundWitnessWithHashMeta = (value) => {
|
|
|
674
817
|
var isSignedBlockBoundWitnessWithHashMeta = (value) => {
|
|
675
818
|
return isBlockBoundWitnessWithHashMeta(value) && isSigned4(value);
|
|
676
819
|
};
|
|
677
|
-
var asBlockBoundWitness =
|
|
678
|
-
var asSignedBlockBoundWitness =
|
|
679
|
-
var asBlockBoundWitnessWithStorageMeta =
|
|
680
|
-
var asSignedBlockBoundWitnessWithStorageMeta =
|
|
681
|
-
var asBlockBoundWitnessWithHashMeta =
|
|
682
|
-
var asSignedBlockBoundWitnessWithHashMeta =
|
|
820
|
+
var asBlockBoundWitness = AsObjectFactory23.create(isBlockBoundWitness);
|
|
821
|
+
var asSignedBlockBoundWitness = AsObjectFactory23.create(isSignedBlockBoundWitness);
|
|
822
|
+
var asBlockBoundWitnessWithStorageMeta = AsObjectFactory23.create(isBlockBoundWitnessWithStorageMeta);
|
|
823
|
+
var asSignedBlockBoundWitnessWithStorageMeta = AsObjectFactory23.create(isSignedBlockBoundWitnessWithStorageMeta);
|
|
824
|
+
var asBlockBoundWitnessWithHashMeta = AsObjectFactory23.create(isBlockBoundWitnessWithHashMeta);
|
|
825
|
+
var asSignedBlockBoundWitnessWithHashMeta = AsObjectFactory23.create(isSignedBlockBoundWitnessWithHashMeta);
|
|
683
826
|
|
|
684
827
|
// src/block/HydratedBlock.ts
|
|
685
|
-
import { AsObjectFactory as
|
|
828
|
+
import { AsObjectFactory as AsObjectFactory24 } from "@xylabs/object";
|
|
686
829
|
var isHydratedBlock = (value) => {
|
|
687
830
|
return isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0]);
|
|
688
831
|
};
|
|
689
|
-
var asHydratedBlock =
|
|
832
|
+
var asHydratedBlock = AsObjectFactory24.create(
|
|
690
833
|
isHydratedBlock
|
|
691
834
|
);
|
|
692
835
|
|
|
@@ -725,137 +868,6 @@ var ELEVATE_OPCODE = "elevate";
|
|
|
725
868
|
|
|
726
869
|
// src/constants/StepSizes.ts
|
|
727
870
|
import { AsTypeFactory } from "@xylabs/object";
|
|
728
|
-
|
|
729
|
-
// src/model/BlockNumber/BlockNumber.ts
|
|
730
|
-
import z6 from "zod";
|
|
731
|
-
|
|
732
|
-
// src/model/zod/zodAsFactory.ts
|
|
733
|
-
import { assertError } from "@xylabs/hex";
|
|
734
|
-
function zodAsFactory(zod) {
|
|
735
|
-
function asFunc(value, assert) {
|
|
736
|
-
const result = zod.safeParse(value);
|
|
737
|
-
if (result.success) {
|
|
738
|
-
return result.data;
|
|
739
|
-
}
|
|
740
|
-
return assertError(value, assert, result.error.message);
|
|
741
|
-
}
|
|
742
|
-
return asFunc;
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
// src/model/zod/zodIsFactory.ts
|
|
746
|
-
function zodIsFactory(zod) {
|
|
747
|
-
return (value) => zod.safeParse(value).success;
|
|
748
|
-
}
|
|
749
|
-
|
|
750
|
-
// src/model/zod/zodToFactory.ts
|
|
751
|
-
function zodToFactory(zod) {
|
|
752
|
-
return zodAsFactory(zod);
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
// src/model/BlockNumber/Numberish.ts
|
|
756
|
-
import z5 from "zod";
|
|
757
|
-
var NumberishZod = z5.union([z5.number(), z5.string(), z5.bigint()]).transform((v) => typeof v === "bigint" ? Number(v) : typeof v === "string" ? Number(v) : v).pipe(z5.number());
|
|
758
|
-
|
|
759
|
-
// src/model/BlockNumber/BlockNumber.ts
|
|
760
|
-
var BlockNumberZod = z6.number().transform((v) => v);
|
|
761
|
-
var NumberishBlockNumberZod = NumberishZod.transform((v) => v);
|
|
762
|
-
var asBlockNumber = zodAsFactory(BlockNumberZod);
|
|
763
|
-
var toBlockNumber = zodToFactory(NumberishBlockNumberZod);
|
|
764
|
-
var BLOCK_NUMBER_ZERO = asBlockNumber(0);
|
|
765
|
-
|
|
766
|
-
// src/model/BlockNumber/EthBlockNumber.ts
|
|
767
|
-
import z7 from "zod";
|
|
768
|
-
var EthBlockNumberZod = z7.number().transform((v) => v);
|
|
769
|
-
var NumberishEthBlockNumberZod = NumberishBlockNumberZod.transform((v) => v);
|
|
770
|
-
var asEthBlockNumber = zodAsFactory(EthBlockNumberZod);
|
|
771
|
-
var toEthBlockNumber = zodToFactory(NumberishEthBlockNumberZod);
|
|
772
|
-
var ETH_BLOCK_NUMBER_ZERO = asEthBlockNumber(0);
|
|
773
|
-
|
|
774
|
-
// src/model/BlockNumber/XL1BlockNumber.ts
|
|
775
|
-
import z8 from "zod";
|
|
776
|
-
var XL1BlockNumberZod = z8.number().transform((v) => v);
|
|
777
|
-
var NumberishXL1BlockNumberZod = NumberishBlockNumberZod.transform((v) => v);
|
|
778
|
-
var asXL1BlockNumber = zodAsFactory(XL1BlockNumberZod);
|
|
779
|
-
var toXL1BlockNumber = zodToFactory(NumberishXL1BlockNumberZod);
|
|
780
|
-
var XL1_BLOCK_NUMBER_ZERO = asXL1BlockNumber(0);
|
|
781
|
-
|
|
782
|
-
// src/model/BlockRange/BlockRange.ts
|
|
783
|
-
import { assertError as assertError2 } from "@xylabs/hex";
|
|
784
|
-
import { isDefined } from "@xylabs/typeof";
|
|
785
|
-
import z9 from "zod";
|
|
786
|
-
var BlockRangeZod = z9.tuple([BlockNumberZod, BlockNumberZod]);
|
|
787
|
-
var NumberishBlockRangeZod = z9.tuple([NumberishBlockNumberZod, NumberishBlockNumberZod]);
|
|
788
|
-
var asBlockRange = zodAsFactory(BlockRangeZod);
|
|
789
|
-
var toBlockRange = zodToFactory(NumberishBlockRangeZod);
|
|
790
|
-
var toBlockNumberKey = (range) => `${range[0]}|${range[1]}`;
|
|
791
|
-
function fromBlockNumberKey(key, assert) {
|
|
792
|
-
const [start, end] = key.split("|").map((v) => asBlockNumber(Number(v)));
|
|
793
|
-
const result = isDefined(start) && isDefined(end) ? [start, end] : void 0;
|
|
794
|
-
return assertError2(result, assert, `Invalid BlockRangeKey: ${key}`);
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
// src/model/BlockRange/EthBlockRange.ts
|
|
798
|
-
import { assertError as assertError3 } from "@xylabs/hex";
|
|
799
|
-
import { isDefined as isDefined2 } from "@xylabs/typeof";
|
|
800
|
-
import z10 from "zod";
|
|
801
|
-
var EthBlockRangeZod = z10.tuple([EthBlockNumberZod, EthBlockNumberZod]);
|
|
802
|
-
var NumberishEthBlockRangeZod = z10.tuple([NumberishEthBlockNumberZod, NumberishEthBlockNumberZod]);
|
|
803
|
-
var asEthBlockRange = zodAsFactory(EthBlockRangeZod);
|
|
804
|
-
var toEthBlockRange = zodToFactory(NumberishEthBlockRangeZod);
|
|
805
|
-
var toEthBlockNumberKey = (range) => `${range[0]}|${range[1]}`;
|
|
806
|
-
function fromEthBlockNumberKey(key, assert) {
|
|
807
|
-
const [start, end] = key.split("|").map((v) => asEthBlockNumber(Number(v)));
|
|
808
|
-
const result = isDefined2(start) && isDefined2(end) ? [start, end] : void 0;
|
|
809
|
-
return assertError3(result, assert, `Invalid EthBlockRangeKey: ${key}`);
|
|
810
|
-
}
|
|
811
|
-
|
|
812
|
-
// src/model/BlockRange/Range.ts
|
|
813
|
-
import z11 from "zod";
|
|
814
|
-
var RangeZod = z11.tuple([z11.number(), z11.number()]);
|
|
815
|
-
var isRange = zodIsFactory(RangeZod);
|
|
816
|
-
var asRange = zodAsFactory(RangeZod);
|
|
817
|
-
var toRange = zodToFactory(RangeZod);
|
|
818
|
-
|
|
819
|
-
// src/model/BlockRange/XL1BlockRange.ts
|
|
820
|
-
import { assertError as assertError4 } from "@xylabs/hex";
|
|
821
|
-
import { isDefined as isDefined3 } from "@xylabs/typeof";
|
|
822
|
-
import z12 from "zod";
|
|
823
|
-
var XL1BlockRangeZod = z12.tuple([XL1BlockNumberZod, XL1BlockNumberZod]);
|
|
824
|
-
var NumberishXL1BlockRangeZod = z12.tuple([NumberishXL1BlockNumberZod, NumberishXL1BlockNumberZod]);
|
|
825
|
-
var asXL1BlockRange = zodAsFactory(XL1BlockRangeZod);
|
|
826
|
-
var toXL1BlockRange = zodToFactory(NumberishXL1BlockRangeZod);
|
|
827
|
-
var toXL1BlockNumberKey = (range) => `${range[0]}|${range[1]}`;
|
|
828
|
-
function fromXL1BlockNumberKey(key, assert) {
|
|
829
|
-
const [start, end] = key.split("|").map((v) => asXL1BlockNumber(Number(v)));
|
|
830
|
-
const result = isDefined3(start) && isDefined3(end) ? [start, end] : void 0;
|
|
831
|
-
return assertError4(result, assert, `Invalid XL1BlockRangeKey: ${key}`);
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
// src/model/StepIdentity.ts
|
|
835
|
-
import { isUndefined } from "@xylabs/typeof";
|
|
836
|
-
function tryParseInt(value) {
|
|
837
|
-
if (value === "") return void 0;
|
|
838
|
-
const num = Number(value);
|
|
839
|
-
return Number.isInteger(num) ? num : void 0;
|
|
840
|
-
}
|
|
841
|
-
var asStepIdentity = (stepIdentityString) => {
|
|
842
|
-
try {
|
|
843
|
-
const [blockNumberString, stepString] = stepIdentityString.split("|");
|
|
844
|
-
if (isUndefined(blockNumberString) || isUndefined(stepString)) {
|
|
845
|
-
return void 0;
|
|
846
|
-
}
|
|
847
|
-
const step = tryParseInt(stepString);
|
|
848
|
-
const block = toXL1BlockNumber(blockNumberString);
|
|
849
|
-
if (isUndefined(block) || isUndefined(step)) {
|
|
850
|
-
return void 0;
|
|
851
|
-
}
|
|
852
|
-
return { block, step };
|
|
853
|
-
} catch {
|
|
854
|
-
return void 0;
|
|
855
|
-
}
|
|
856
|
-
};
|
|
857
|
-
|
|
858
|
-
// src/constants/StepSizes.ts
|
|
859
871
|
var StepSizes = [
|
|
860
872
|
asXL1BlockNumber(7, true),
|
|
861
873
|
asXL1BlockNumber(31, true),
|
|
@@ -920,16 +932,16 @@ var XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_
|
|
|
920
932
|
var XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1e6 + XL1_PROTOCOL_VERSION_MINOR * 1e3 + XL1_PROTOCOL_VERSION_PATCH;
|
|
921
933
|
|
|
922
934
|
// src/fields/BlockNumber.ts
|
|
923
|
-
import { AsObjectFactory as
|
|
935
|
+
import { AsObjectFactory as AsObjectFactory25 } from "@xylabs/object";
|
|
924
936
|
import {
|
|
925
937
|
isPayloadOfSchemaType as isPayloadOfSchemaType6,
|
|
926
938
|
isPayloadOfSchemaTypeWithSources
|
|
927
939
|
} from "@xyo-network/payload-model";
|
|
928
940
|
var BlockNumberSchema = "network.xyo.chain.block.number";
|
|
929
941
|
var isBlockNumberPayload = isPayloadOfSchemaType6(BlockNumberSchema);
|
|
930
|
-
var asBlockNumberPayload =
|
|
942
|
+
var asBlockNumberPayload = AsObjectFactory25.create(isBlockNumberPayload);
|
|
931
943
|
var isBlockNumberPayloadWithSources = isPayloadOfSchemaTypeWithSources(BlockNumberSchema);
|
|
932
|
-
var asBlockNumberPayloadWithSources =
|
|
944
|
+
var asBlockNumberPayloadWithSources = AsObjectFactory25.create(isBlockNumberPayloadWithSources);
|
|
933
945
|
|
|
934
946
|
// src/network/Status.ts
|
|
935
947
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType7 } from "@xyo-network/payload-model";
|
|
@@ -1038,6 +1050,8 @@ export {
|
|
|
1038
1050
|
RangeZod,
|
|
1039
1051
|
ShiftedBigInt,
|
|
1040
1052
|
StepCompleteSchema,
|
|
1053
|
+
StepIdentitySchema,
|
|
1054
|
+
StepIdentityZod,
|
|
1041
1055
|
StepRewardFractions,
|
|
1042
1056
|
StepSizes,
|
|
1043
1057
|
TimeSchema,
|
|
@@ -1101,6 +1115,7 @@ export {
|
|
|
1101
1115
|
asSignedHydratedTransactionWithStorageMeta,
|
|
1102
1116
|
asStepComplete,
|
|
1103
1117
|
asStepIdentity,
|
|
1118
|
+
asStepIdentityPayload,
|
|
1104
1119
|
asTimePayload,
|
|
1105
1120
|
asTimePayloadWithStorageMeta,
|
|
1106
1121
|
asTransactionBoundWitness,
|
|
@@ -1164,6 +1179,7 @@ export {
|
|
|
1164
1179
|
isSignedTransactionBoundWitnessWithHashMeta,
|
|
1165
1180
|
isSignedTransactionBoundWitnessWithStorageMeta,
|
|
1166
1181
|
isStepComplete,
|
|
1182
|
+
isStepIdentityPayload,
|
|
1167
1183
|
isTimePayload,
|
|
1168
1184
|
isTransactionBoundWitness,
|
|
1169
1185
|
isTransactionBoundWitnessWithHashMeta,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/amount/splitOnDecimal.ts","../../src/amount/splitOnDecimalToString.ts","../../src/amount/ShiftedBigInt.ts","../../src/amount/XL1Amount.ts","../../src/xl1/isXL1Factory.ts","../../src/xl1/xl1MaxValue.ts","../../src/xl1/XL1Units.ts","../../src/xl1/AttoXL1.ts","../../src/xl1/FemtoXL1.ts","../../src/xl1/MicroXL1.ts","../../src/xl1/MilliXL1.ts","../../src/xl1/NanoXL1.ts","../../src/xl1/PicoXL1.ts","../../src/xl1/XL1.ts","../../src/block/AllowedBlockPayload.ts","../../src/payload/elevatable/Bridge/BridgeDestinationObservation.ts","../../src/payload/elevatable/Bridge/BridgeDetails.ts","../../src/payload/elevatable/Bridge/BridgeIntent.ts","../../src/payload/elevatable/Bridge/BridgeSourceObservation.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/StepComplete.ts","../../src/payload/elevatable/Time.ts","../../src/payload/elevatable/TransferPayload.ts","../../src/transaction/AnyHydratedTransaction.ts","../../src/isHydratedBoundWitness.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/transaction/HydratedTransaction.ts","../../src/transaction/HydratedTransactionWithHashMeta.ts","../../src/transaction/HydratedTransactionWithStorageMeta.ts","../../src/transaction/SignedHydratedTransaction.ts","../../src/transaction/SignedHydratedTransactionWithHashMeta.ts","../../src/transaction/SignedHydratedTransactionWithStorageMeta.ts","../../src/transaction/TransactionBoundWitnessDeprecated.ts","../../src/transaction/TransactionFeesFields.ts","../../src/transaction/UnsignedHydratedTransaction.ts","../../src/transaction/UnsignedHydratedTransactionWithHashMeta.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/constants/addresses.ts","../../src/constants/defaultRewardRatio.ts","../../src/constants/minTransactionFees.ts","../../src/constants/defaultTransactionFees.ts","../../src/constants/OpCodes.ts","../../src/constants/StepSizes.ts","../../src/model/BlockNumber/BlockNumber.ts","../../src/model/zod/zodAsFactory.ts","../../src/model/zod/zodIsFactory.ts","../../src/model/zod/zodToFactory.ts","../../src/model/BlockNumber/Numberish.ts","../../src/model/BlockNumber/EthBlockNumber.ts","../../src/model/BlockNumber/XL1BlockNumber.ts","../../src/model/BlockRange/BlockRange.ts","../../src/model/BlockRange/EthBlockRange.ts","../../src/model/BlockRange/Range.ts","../../src/model/BlockRange/XL1BlockRange.ts","../../src/model/StepIdentity.ts","../../src/constants/TransactionGasCosts.ts","../../src/constants/version.ts","../../src/fields/BlockNumber.ts","../../src/network/Status.ts","../../src/validation/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts"],"sourcesContent":["export const splitOnDecimal = (value: bigint, places = 18): [bigint, bigint] => {\n const whole = value / BigInt(10 ** places)\n const decimal = value % BigInt(10 ** places)\n return [whole, decimal]\n}\n","import { splitOnDecimal } from './splitOnDecimal.ts'\n\nexport const splitOnDecimalToString = (\n value: bigint,\n places = 18,\n maxDecimal = places,\n maxCharacters = 9,\n minDecimals = 1,\n locale: Intl.LocalesArgument = 'en-US',\n): string => {\n const [whole, decimal] = splitOnDecimal(value, places)\n const remainderLength = decimal.toString().length\n const precedingZerosInDecimal = places - remainderLength\n if (whole === 0n && precedingZerosInDecimal >= maxDecimal && decimal !== 0n) return '< 0.'.padEnd(maxDecimal + 5, '0') + '1'\n\n const wholeCharacters = whole.toString(10).length\n const calcMaxDecimalCharacters = maxCharacters === -1 ? places : wholeCharacters > maxCharacters ? 0 : maxCharacters - wholeCharacters\n const maxDecimalCharacters = Math.min(maxDecimal, calcMaxDecimalCharacters)\n\n // Format whole number with thousand separators according to locale\n const formattedWhole = new Intl.NumberFormat(locale, {\n maximumFractionDigits: 0,\n useGrouping: true,\n }).format(whole)\n\n // Get decimal separator for the locale\n const decimalSeparator = new Intl.NumberFormat(locale)\n .formatToParts(1.1)\n .find(part => part.type === 'decimal')?.value ?? '.'\n\n // Pad decimal part to correct number of places\n let paddedDecimal = decimal.toString().padStart(places, '0').slice(0, maxDecimalCharacters)\n // remove unneeded trailing zeros (honoring minDecimals)\n while (paddedDecimal.length > minDecimals && paddedDecimal.endsWith('0')) {\n paddedDecimal = paddedDecimal.slice(0, -1)\n }\n\n return `${formattedWhole}${paddedDecimal.length > 0 ? decimalSeparator : ''}${paddedDecimal}`\n}\n","import type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\nimport { splitOnDecimalToString } from './splitOnDecimalToString.ts'\n\nexport class ShiftedBigInt {\n static readonly defaultConfig: ShiftedBigIntConfig = {\n places: 18,\n maxDecimal: 18,\n maxCharacters: 9,\n minDecimals: 1,\n locale: 'en-US',\n }\n\n config: ShiftedBigIntConfig\n value: bigint\n\n constructor(\n value: bigint | ShiftedBigInt,\n config: Partial<ShiftedBigIntConfig> = {},\n ) {\n this.value = typeof value === 'bigint' ? value : value.value\n this.config = {\n ...ShiftedBigInt.defaultConfig, ...(typeof value === 'bigint' ? {} : value.config), ...config,\n }\n }\n\n get locale(): Intl.LocalesArgument {\n return this.config.locale ?? 'en-US'\n }\n\n get maxCharacters(): number {\n return this.config.maxCharacters ?? 9\n }\n\n get maxDecimal(): number {\n return this.config.maxDecimal ?? this.places\n }\n\n get minDecimals(): number {\n return this.config.minDecimals ?? 1\n }\n\n get places(): number {\n return this.config.places ?? 18\n }\n\n toFullString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.places,\n Infinity,\n this.places,\n this.locale,\n )\n }\n\n toShortString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.maxDecimal,\n this.maxCharacters,\n this.minDecimals,\n this.locale,\n )\n }\n\n toString(): string {\n return this.toFullString()\n }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { assertEx } from '@xylabs/assert'\n\nimport {\n AttoXL1, FemtoXL1, MicroXL1, MilliXL1, NanoXL1, PicoXL1, XL1,\n XL1Places,\n} from '../xl1/index.ts'\nimport { ShiftedBigInt } from './ShiftedBigInt.ts'\nimport type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\n\nconst MAX_XL1_AMOUNT = 2n ** 256n - 1n\nconst allowedPlaces = Object.values(XL1Places)\n\nexport interface XL1AmountInstance {\n value: AttoXL1\n\n to(places: bigint | number): bigint\n\n milli: MilliXL1\n\n micro: MicroXL1\n\n nano: NanoXL1\n\n pico: PicoXL1\n\n femto: FemtoXL1\n\n atto: AttoXL1\n\n xl1: XL1\n\n toString(places: number, config: Partial<ShiftedBigIntConfig>): string\n}\n\nexport class XL1Amount implements XL1AmountInstance {\n value: AttoXL1\n private locale: Intl.LocalesArgument\n\n constructor(value: bigint, locale: Intl.LocalesArgument = 'en-US') {\n this.locale = locale\n this.value = AttoXL1(value > MAX_XL1_AMOUNT ? MAX_XL1_AMOUNT : value < 0n ? 0n : value)\n }\n\n static from(value: bigint, places: bigint = XL1Places.atto) {\n assertEx(allowedPlaces.includes(places), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new XL1Amount(value * 10n ** BigInt(places))\n }\n\n static fromMilli(value: MilliXL1) {\n return this.from(value, XL1Places.milli)\n }\n\n static fromMicro(value: MicroXL1) {\n return this.from(value, XL1Places.micro)\n }\n\n static fromNano(value: NanoXL1) {\n return this.from(value, XL1Places.nano)\n }\n\n static fromPico(value: PicoXL1) {\n return this.from(value, XL1Places.pico)\n }\n\n static fromFemto(value: FemtoXL1) {\n return this.from(value, XL1Places.femto)\n }\n\n static fromAtto(value: AttoXL1) {\n return this.from(value, XL1Places.atto)\n }\n\n static fromXL1(value: XL1) {\n return this.from(value, XL1Places.xl1)\n }\n\n to(places: number | bigint = XL1Places.atto) {\n return this.value / 10n ** BigInt(places)\n }\n\n get milli() {\n return MilliXL1(this.to(XL1Places.milli))\n }\n\n get micro() {\n return MicroXL1(this.to(XL1Places.micro))\n }\n\n get nano() {\n return NanoXL1(this.to(XL1Places.nano))\n }\n\n get pico() {\n return PicoXL1(this.to(XL1Places.pico))\n }\n\n get femto() {\n return FemtoXL1(this.to(XL1Places.femto))\n }\n\n get atto() {\n return AttoXL1(this.to(XL1Places.atto))\n }\n\n get xl1() {\n return XL1(this.to(XL1Places.xl1))\n }\n\n toString(places: number = Number(XL1Places.atto), config: Partial<ShiftedBigIntConfig> = {}): string {\n assertEx(allowedPlaces.includes(BigInt(places)), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new ShiftedBigInt(\n this.value,\n {\n places,\n locale: this.locale,\n maxDecimal: places,\n minDecimals: 0,\n maxCharacters: places,\n ...config,\n },\n ).toShortString()\n }\n}\n","import * as z from 'zod'\n\nimport { xl1MaxValue } from './xl1MaxValue.ts'\n\nexport const isXL1Factory = <T extends bigint>(places: bigint) => (val: unknown): val is T => {\n if (typeof val !== 'bigint') return false\n return val >= 0n && val <= xl1MaxValue(places)\n}\n\nexport const XL1ZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.bigint().refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const XL1TransformZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.union([z.bigint(), z.number(), z.string(), z.boolean()]).transform(val => BigInt(val) as T).refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const asXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1ZodFactory<T>(places, 'local')\n return (val: unknown): T => {\n const result = zod.safeParse(val)\n if (result.success) {\n return result.data as T\n }\n throw result.error\n }\n}\n\nexport const toXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1TransformZodFactory<T>(places, 'local')\n return (val: unknown): T | undefined => {\n const result = zod.safeParse(val)\n return result.success ? result.data as T : undefined\n }\n}\n","export const xl1MaxValue = (places: bigint) => 10n ** (32n - places) - 1n\n","type XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\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","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const AttoXL1MaxValue = xl1MaxValue(XL1Places.atto)\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' }\nexport const isAttoXL1 = isXL1Factory<AttoXL1>(XL1Places.atto)\nexport const asAttoXL1 = asXL1Factory<AttoXL1>(XL1Places.atto)\nexport const toAttoXL1 = toXL1Factory<AttoXL1>(XL1Places.atto)\n\nexport const AttoXL1 = asAttoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const FemtoXL1MaxValue = xl1MaxValue(XL1Places.femto)\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' }\nexport const isFemtoXL1 = isXL1Factory<FemtoXL1>(XL1Places.femto)\nexport const asFemtoXL1 = asXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const toFemtoXL1 = toXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const FemtoXL1 = asFemtoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MicroXL1MaxValue = xl1MaxValue(XL1Places.micro)\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' }\nexport const isMicroXL1 = isXL1Factory<MicroXL1>(XL1Places.micro)\nexport const asMicroXL1 = asXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const toMicroXL1 = toXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const MicroXL1 = asMicroXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MilliXL1MaxValue = xl1MaxValue(XL1Places.milli)\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' }\nexport const isMilliXL1 = isXL1Factory<MilliXL1>(XL1Places.milli)\nexport const asMilliXL1 = asXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const toMilliXL1 = toXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const MilliXL1 = asMilliXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const NanoXL1MaxValue = xl1MaxValue(XL1Places.nano)\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' }\nexport const isNanoXL1 = isXL1Factory<NanoXL1>(XL1Places.nano)\nexport const asNanoXL1 = asXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const toNanoXL1 = toXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const NanoXL1 = asNanoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const PicoXL1MaxValue = xl1MaxValue(XL1Places.pico)\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' }\nexport const isPicoXL1 = isXL1Factory<PicoXL1>(XL1Places.pico)\nexport const asPicoXL1 = asXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const toPicoXL1 = toXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const PicoXL1 = asPicoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const XL1MaxValue = xl1MaxValue(XL1Places.xl1)\nexport type XL1 = bigint & { readonly _tag: 'XL1' }\nexport const isXL1 = isXL1Factory<XL1>(XL1Places.xl1)\nexport const asXL1 = asXL1Factory<XL1>(XL1Places.xl1)\n\nexport const toXL1 = toXL1Factory<XL1>(XL1Places.xl1)\n\nexport const XL1 = asXL1\n","import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashMeta, isSchema } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\nimport z from 'zod'\n\nimport type {\n BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation, ChainStakeIntent, HashPayload, StepComplete, TimePayload, Transfer,\n} from '../payload/index.ts'\nimport {\n BridgeDestinationObservationSchema, BridgeIntentSchema, BridgeSourceObservationSchema, ChainStakeIntentSchema, HashSchema,\n isBridgeDestinationObservation, isBridgeIntent, isBridgeSourceObservation, isChainStakeIntent, isHashPayload, isTimePayload, isTransfer, StepCompleteSchema,\n TimeSchema, TransferSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\n\nexport type AllowedBlockPayload\n = Transfer\n | BridgeDestinationObservation\n | BridgeIntent\n | BridgeSourceObservation\n | ChainStakeIntent\n | HashPayload\n | SchemaPayload\n | StepComplete\n | TimePayload\n | TransactionBoundWitness\n\nexport const AllowedBlockPayloadSchemas: Schema[] = [\n BoundWitnessSchema,\n BridgeDestinationObservationSchema,\n BridgeIntentSchema,\n BridgeSourceObservationSchema,\n ChainStakeIntentSchema,\n HashSchema,\n SchemaSchema,\n StepCompleteSchema,\n TimeSchema,\n TransferSchema,\n]\n\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)\n || isBridgeDestinationObservation(value)\n || isBridgeIntent(value)\n || isBridgeSourceObservation(value)\n || isChainStakeIntent(value)\n || isHashPayload(value)\n || isSchemaPayload(value)\n || isTimePayload(value)\n || isTransactionBoundWitness(value)\n}\n\nexport const isAllowedBlockPayloadWithHashMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {\n return isAllowedBlockPayload(value) && isHashMeta(value)\n}\n\nexport const AllowedBlockPayloadZod = z.object({ schema: z.enum(AllowedBlockPayloadSchemas) })\n","import { HexZod } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfZodType } from '@xyo-network/payload-model'\nimport type z from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeDestinationObservationSchema = 'network.xyo.chain.bridge.observation.destination' as const\nexport type BridgeDestinationObservationSchema = typeof BridgeDestinationObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport const BridgeDestinationObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Destination chain confirmation\n */\n destConfirmation: HexZod.optional().describe('Destination chain confirmation'),\n})\n\nexport type BridgeDestinationObservationFields = z.infer<typeof BridgeDestinationObservationFieldsZod>\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport type BridgeDestinationObservation = Payload<BridgeDestinationObservationFields, BridgeDestinationObservationSchema>\n\nexport const isBridgeDestinationObservation = isPayloadOfZodType<BridgeDestinationObservation>(\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n)\n\nexport const asBridgeDestinationObservation = AsObjectFactory.create(isBridgeDestinationObservation)\n","import { HexZod } from '@xylabs/hex'\nimport z from 'zod'\n\n/**\n * Represents a transfer destination\n */\nexport const BridgeDetailsDestinationFieldsZod = z.object({\n /**\n * Destination network\n */\n dest: HexZod.describe('The destination network identifier'),\n /**\n * Destination address (EOA or contract)\n */\n destAddress: HexZod.describe('The destination address (EOA or contract)'),\n /**\n * Token amount to bridge to destination\n */\n destAmount: HexZod.describe('The token amount to bridge to destination'),\n /**\n * Token being bridged to\n */\n destToken: HexZod.describe('The token being bridged to'),\n})\n\n/**\n * Represents a transfer destination\n */\nexport type BridgeDetailsDestinationFields = z.infer<typeof BridgeDetailsDestinationFieldsZod>\n\n/**\n * Represents a transfer source\n */\nexport const BridgeDetailsSourceFieldsZod = z.object({\n /**\n * Source network\n */\n src: HexZod.describe('The source network identifier'),\n\n /**\n * Source address (EOA or contract)\n */\n srcAddress: HexZod.describe('The source address (EOA or contract)'),\n /**\n * Token amount to bridge from source\n */\n srcAmount: HexZod.describe('The token amount to bridge from source'),\n /**\n * Token being bridged from\n */\n srcToken: HexZod.describe('The token being bridged from'),\n})\n\n/**\n * Represents a transfer source\n */\nexport type BridgeDetailsSourceFields = z.infer<typeof BridgeDetailsSourceFieldsZod>\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport const BridgeDetailsFieldsZod = BridgeDetailsSourceFieldsZod.extend(\n BridgeDetailsDestinationFieldsZod.shape,\n)\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport type BridgeDetailsFields = z.infer<typeof BridgeDetailsFieldsZod>\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfZodType } from '@xyo-network/payload-model'\nimport z from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeIntentSchema = 'network.xyo.chain.bridge.intent' as const\nexport type BridgeIntentSchema = typeof BridgeIntentSchema\n\n/**\n * Represents an Address's intent to initiate a token bridge.\n */\nexport const BridgeIntentFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Unique identifier for replay protection\n */\n nonce: z.string().describe('Unique identifier for replay protection'),\n})\n\nexport type BridgeIntentFields = z.infer<typeof BridgeIntentFieldsZod>\n\nexport type BridgeIntent = Payload<BridgeIntentFields, BridgeIntentSchema>\n\nexport const isBridgeIntent = isPayloadOfZodType<BridgeIntent>(\n BridgeIntentFieldsZod,\n BridgeIntentSchema,\n)\n\nexport const asBridgeIntent = AsObjectFactory.create(isBridgeIntent)\n","import { HexZod } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfZodType } from '@xyo-network/payload-model'\nimport type z from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeSourceObservationSchema = 'network.xyo.chain.bridge.observation.source' as const\nexport type BridgeSourceObservationSchema = typeof BridgeSourceObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport const BridgeSourceObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Source chain confirmation\n */\n srcConfirmation: HexZod.optional().describe('Source chain confirmation'),\n})\n\nexport type BridgeSourceObservationFields = z.infer<typeof BridgeSourceObservationFieldsZod>\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport type BridgeSourceObservation = Payload<BridgeSourceObservationFields, BridgeSourceObservationSchema>\n\nexport const isBridgeSourceObservation = isPayloadOfZodType<BridgeSourceObservation>(\n BridgeSourceObservationFieldsZod,\n BridgeSourceObservationSchema,\n)\n\nexport const asBridgeSourceObservation = AsObjectFactory.create(isBridgeSourceObservation)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } 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)\n\nexport const isChainStakeIntentWithStorageMeta = (x?: unknown | null): x is WithStorageMeta<ChainStakeIntent> => {\n return isChainStakeIntent(x) && isStorageMeta(x)\n}\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)\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\nimport type { FromFields } from './Executable.ts'\n\nexport const StepCompleteSchema = 'network.xyo.chain.step.complete' as const\nexport type StepCompleteSchema = typeof StepCompleteSchema\n\n/* This records the completion of a step in the network - needed for network staking rewards */\n/* We will only write these for steps that are eligible for rewards Step 3 (2311) */\n\nexport interface StepCompleteFields extends FromFields {\n block: number /* The block number on the XL1 network */\n hash: Hash /* The Step Hash */\n size: number /* The size of the step */\n stakeBlock: number /* The block number on ethereum or other staking system */\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 StepComplete = Payload<StepCompleteFields, StepCompleteSchema>\n\nexport const isStepComplete = isPayloadOfSchemaType<StepComplete>(StepCompleteSchema)\n\nexport const asStepComplete = AsObjectFactory.create(isStepComplete)\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\n// xl1 = xl1 block number, epoch = epoch number, ethereum = ethereum block number\nexport type TimeDomain = 'xl1' | 'epoch' | 'ethereum'\n\nexport const TimeSchema = 'network.xyo.time' as const\nexport type TimeSchema = typeof TimeSchema\n\nexport interface XL1TimeFields {\n // block number\n xl1?: number\n // block hash\n xl1Hash?: Hash\n}\n\nexport interface EthereumTimeFields {\n // block number\n ethereum?: number\n // block hash\n ethereumHash?: Hash\n}\n\nexport interface TimeFields extends XL1TimeFields, EthereumTimeFields {\n // in milliseconds\n epoch: number\n}\n\nexport type TimePayload = Payload<TimeFields, TimeSchema>\n\n// to prevent scaling problems, we use double the current time as a max safe epoch\nexport const isSafeEpoch = (value: unknown): value is number => {\n return typeof value === 'number' && value < 2 * Date.now()\n}\n\nexport const isTimePayload = (value: unknown): value is TimePayload => {\n return isPayloadOfSchemaType<TimePayload>(TimeSchema)(value) && isSafeEpoch(value.epoch)\n}\n\nexport const asTimePayload = AsObjectFactory.create(isTimePayload)\nexport const asTimePayloadWithStorageMeta = AsObjectFactory.create(isTimePayload)\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<TContext extends {} = {}> extends FromFields {\n context?: TContext\n epoch: number\n // the amount that is being sent to other addresses\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<TContext extends {} = {}> = Payload<TransferFields<TContext>, TransferSchema>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type AnyHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isAnyHydratedTransaction = (\n value: unknown,\n): value is AnyHydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0])\n )\n}\n\nexport const asAnyHydratedTransaction = AsObjectFactory.create<AnyHydratedTransaction>(\n isAnyHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { HydratedBoundWitness, HydratedBoundWitnessWithStorageMeta } from '@xyo-network/archivist-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isAnyPayload, isStorageMeta } from '@xyo-network/payload-model'\n\nexport const isHydratedBoundWitness = (\n value: unknown,\n): value is HydratedBoundWitness => {\n return (\n Array.isArray(value)\n && value.length === 2\n && isBoundWitness(value[0])\n && Array.isArray(value[1])\n && !value[1].some(item => (!isAnyPayload(item)))\n )\n}\n\nexport const isHydratedBoundWitnessWithStorageMeta = (\n value: unknown,\n): value is HydratedBoundWitnessWithStorageMeta => {\n return (\n isHydratedBoundWitness(value)\n && isStorageMeta(value[0])\n && !value[1].some(item => (!isStorageMeta(item)))\n )\n}\n\nexport const asHydratedBoundWitness = AsObjectFactory.create<HydratedBoundWitness>(\n isHydratedBoundWitness,\n)\n\nexport const asHydratedBoundWitnessWithStorageMeta = AsObjectFactory.create<HydratedBoundWitnessWithStorageMeta>(\n isHydratedBoundWitnessWithStorageMeta,\n)\n","import {\n type Address, type Hex, isAddress,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-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: Hex | Address & { __chain: true }\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 && isAddress(typedObj.chain)\n && typedObj.fees !== undefined\n && typedObj.exp !== undefined\n && typedObj.nbf !== undefined\n}\n\nexport const asTransactionBoundWitness = AsObjectFactory.create(isTransactionBoundWitness)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isSigned, type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\n/** @deprecated Use HydratedTransactionWithStorageMeta instead */\nexport type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\n/** @deprecated Use isHydratedTransactionWithStorageMeta instead */\nexport const isHydratedTransaction = (\n value: unknown,\n// eslint-disable-next-line sonarjs/deprecation\n): value is HydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]) && isSigned(value[0]) && isStorageMeta(value[0])\n )\n}\n\n/** @deprecated Use asHydratedTransactionWithStorageMeta instead */\n// eslint-disable-next-line sonarjs/deprecation\nexport const asHydratedTransaction = AsObjectFactory.create<HydratedTransaction>(\n // eslint-disable-next-line sonarjs/deprecation\n isHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithHashMeta,\n} from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type HydratedTransactionWithHashMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithHashMeta<Signed<T>>, WithHashMeta<P>[]]\n\nexport const isHydratedTransactionWithHashMeta = (\n value: unknown,\n): value is HydratedTransactionWithHashMeta => {\n return (\n isAnyHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asHydratedTransactionWithHashMeta = AsObjectFactory.create<HydratedTransactionWithHashMeta>(\n isHydratedTransactionWithHashMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type HydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is HydratedTransactionWithStorageMeta => {\n return (\n isAnyHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asHydratedTransactionWithStorageMeta = AsObjectFactory.create<HydratedTransactionWithStorageMeta>(\n isHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [Signed<T>, P[]]\n\nexport const isSignedHydratedTransaction = (\n value: unknown,\n): value is SignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isSigned(value[0])\n )\n}\n\nexport const asSignedHydratedTransaction = AsObjectFactory.create<SignedHydratedTransaction>(\n isSignedHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport type {\n Payload,\n WithHashMeta,\n} from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransactionWithHashMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithHashMeta<Signed<T>>, WithHashMeta<P>[]]\n\nexport const isSignedHydratedTransactionWithHashMeta = (\n value: unknown,\n): value is SignedHydratedTransactionWithHashMeta => {\n return (\n isSignedHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asSignedHydratedTransactionWithHashMeta = AsObjectFactory.create<SignedHydratedTransactionWithHashMeta>(\n isSignedHydratedTransactionWithHashMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport type {\n Payload,\n WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isSignedHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is SignedHydratedTransactionWithStorageMeta => {\n return (\n isSignedHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asSignedHydratedTransactionWithStorageMeta = AsObjectFactory.create<SignedHydratedTransactionWithStorageMeta>(\n isSignedHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { WithHashMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport const isSignedTransactionBoundWitness = (value: unknown): value is Signed<TransactionBoundWitness> => {\n return isTransactionBoundWitness(value) && isSigned(value)\n}\n\nexport const isTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isTransactionBoundWitnessWithHashMeta = (value: unknown): value is WithHashMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isHashMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithHashMeta = (value: unknown): value is WithHashMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isHashMeta(value)\n\nexport const asTransactionBoundWitnessWithStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithStorageMeta)\n\nexport const asTransactionBoundWitnessWithHashMeta = AsObjectFactory.create(isTransactionBoundWitnessWithHashMeta)\n","import { type Hex, isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport { isObject } from '@xylabs/typeof'\n\nimport { type AttoXL1, isAttoXL1 } from '../xl1/index.ts'\n\nexport interface TransactionFeesBigInt {\n base: AttoXL1\n gasLimit: AttoXL1\n gasPrice: AttoXL1\n priority: AttoXL1\n}\n\nexport type TransactionFeesHex = {\n [K in keyof TransactionFeesBigInt]: Hex;\n}\n\nexport interface TransactionFeesFields {\n fees: TransactionFeesHex\n}\n\nexport const isTransactionFeesBigInt = (value: unknown): value is TransactionFeesBigInt => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesBigInt\n return (\n isAttoXL1(base)\n && isAttoXL1(gasLimit)\n && isAttoXL1(gasPrice)\n && isAttoXL1(priority)\n )\n}\n\nexport const asTransactionFeesBigInt = AsObjectFactory.create<TransactionFeesBigInt>(\n isTransactionFeesBigInt,\n)\n\nexport const isTransactionFeesHex = (value: unknown): value is TransactionFeesHex => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesHex\n return (\n isHex(base)\n && isHex(gasLimit)\n && isHex(gasPrice)\n && isHex(priority)\n )\n}\n\nexport const asTransactionFeesHex = AsObjectFactory.create<TransactionFeesHex>(\n isTransactionFeesHex,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isUnsigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type UnsignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isUnsignedHydratedTransaction = (\n value: unknown,\n): value is UnsignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isUnsigned(value[0])\n )\n}\n\nexport const asUnsignedHydratedTransaction = AsObjectFactory.create<UnsignedHydratedTransaction>(\n isUnsignedHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Unsigned } from '@xyo-network/boundwitness-model'\nimport {\n isHashMeta,\n type Payload, type WithHashMeta,\n} from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type UnsignedHydratedTransactionWithHashMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithHashMeta<Unsigned<T>>, WithHashMeta<P>[]]\n\nexport const isUnsignedHydratedTransactionWithHashMeta = (\n value: unknown,\n): value is UnsignedHydratedTransactionWithHashMeta => {\n return (\n isSignedHydratedTransaction(value) && isHashMeta(value[0]) && !value[1].some(v => !isHashMeta(v))\n )\n}\n\nexport const asUnsignedHydratedTransactionWithHashMeta = AsObjectFactory.create<UnsignedHydratedTransactionWithHashMeta>(\n isUnsignedHydratedTransactionWithHashMeta,\n)\n","import type { Hash } 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 { WithHashMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { ChainId, XL1BlockNumber } from '../model/index.ts'\n\nexport interface BlockBoundWitnessMeta {\n $epoch: number\n}\n\nexport interface BlockBoundWitnessFields {\n /** Block number */\n block: XL1BlockNumber\n /** Chain id - this should be \"0\" for the genesis block */\n chain: ChainId\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: Hash[]\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 isBlockBoundWitnessWithHashMeta = (value: unknown): value is WithHashMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isHashMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithHashMeta = (value: unknown): value is Signed<WithHashMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithHashMeta(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 asBlockBoundWitnessWithHashMeta = AsObjectFactory.create(isBlockBoundWitnessWithHashMeta)\nexport const asSignedBlockBoundWitnessWithHashMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithHashMeta)\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","import type { Address, EthAddress } from '@xylabs/hex'\n\n/**\n * The Zero Address is used as a marker address for various protocol operations.\n */\nexport const XYO_ZERO_ADDRESS = '0000000000000000000000000000000000000000' as const as Address\n\n/**\n * The Bridge Address is used as a marker address for bridge transactions.\n */\nexport const XYO_BRIDGE_ADDRESS = '3012193230121932301219323012193230121932' as const as Address\n\n/**\n * The Network Staking Address is used as a marker address for staking the network.\n */\nexport const XYO_NETWORK_STAKING_ADDRESS = '1969196919691969196919691969196919691969' as const as Address\n\n/**\n * The Step Reward Address is used as a marker address for step rewards.\n */\nexport const XYO_STEP_REWARD_ADDRESS = '1216197612161976121619761216197612161976' as const as Address\n\nexport const XL1_ETH_MAIN_ERC20_CONTRACT_ADDRESS = '0xf72aE3E0DA743033AbD7A407557D684c1aE66aed' as const as EthAddress\n\nexport const XL1_ETH_MAIN_SUB_GOVERNOR_ADDRESS = '0xbA296Bc5D0949C0484f08c56c30FB95CC4675A29' as const as EthAddress\n\nexport const XL1_ETH_MAIN_REWARDS_ADDRESS = '0x1a546e091FB4EFb274DC584334a28b8754c4ece7' as const as EthAddress\n\nexport const XL1_ETH_MAIN_STAKED_XYO_CHAIN_ADDRESS = '0x319e667cED10452A117472811130444dED357F26' as const as EthAddress\n\nexport const XL1_ETH_MAIN_GOVERNANCE_ADDRESS = '0x7595710956d6B14b4f2F51a8dF41379eEeC9074E' as const as EthAddress\n","// the percent of the block rewards the producer gets\nexport const defaultRewardRatio = 0.05 as const // 5.0% goes to block producer\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","export const ELEVATE_OPCODE = 'elevate'\n","import { AsTypeFactory } from '@xylabs/object'\n\nimport { asXL1BlockNumber, type XL1BlockNumber } from '../model/index.ts'\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: XL1BlockNumber[] = [\n asXL1BlockNumber(7, true),\n asXL1BlockNumber(31, true),\n asXL1BlockNumber(211, true),\n asXL1BlockNumber(2311, true),\n asXL1BlockNumber(30_031, true),\n asXL1BlockNumber(510_511, true),\n asXL1BlockNumber(9_699_691, true),\n asXL1BlockNumber(223_092_871, true),\n asXL1BlockNumber(6_469_693_231, true),\n]\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}`, { required: true })\n return StepSizes[validatedStep]\n}\n\nexport const StepRewardFractions = [\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [1n, 10_000n], // 0.01%\n [2n, 1000n], // 0.2%\n [3n, 100n], // 3%\n [45n, 100n], // 45%\n] as const\n","import { type Brand } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\nimport { NumberishZod } from './Numberish.ts'\n\nexport type BlockNumber = Brand<number, { readonly __blockNumber: true }>\n\nexport const BlockNumberZod = z.number().transform(v => v as BlockNumber)\nexport const NumberishBlockNumberZod = NumberishZod.transform(v => v as BlockNumber)\n\nexport const asBlockNumber = zodAsFactory<BlockNumber>(BlockNumberZod)\nexport const toBlockNumber = zodToFactory<BlockNumber>(NumberishBlockNumberZod)\n\nexport const BLOCK_NUMBER_ZERO = asBlockNumber(0)\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport type z from 'zod'\n\nexport function zodAsFactory<T>(zod: z.ZodType<T>) {\n function asFunc(value: unknown): T | undefined\n function asFunc(value: unknown, assert: AssertConfig): T\n function asFunc(value: unknown, assert?: AssertConfig): T | undefined {\n const result = zod.safeParse(value)\n if (result.success) {\n return result.data\n }\n return assertError(value, assert, result.error.message)\n }\n\n return asFunc\n}\n","import type z from 'zod'\n\nexport function zodIsFactory<T>(zod: z.ZodType<T>) {\n return (value: unknown): value is T => zod.safeParse(value).success\n}\n","import type z from 'zod'\n\nimport { zodAsFactory } from './zodAsFactory.ts'\n\nexport function zodToFactory<T>(zod: z.ZodType<T>) {\n return zodAsFactory<T>(zod)\n}\n","import z from 'zod'\n\nexport const NumberishZod = z.union([z.number(), z.string(), z.bigint()])\n .transform(v => (typeof v === 'bigint' ? Number(v) : typeof v === 'string' ? Number(v) : v))\n .pipe(z.number())\n","import { type Brand } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { NumberishBlockNumberZod } from './BlockNumber.ts'\n\nexport type EthBlockNumber = Brand<BlockNumber, { readonly __ethBlockNumber: true }>\n\nexport const EthBlockNumberZod = z.number().transform(v => v as EthBlockNumber)\nexport const NumberishEthBlockNumberZod = NumberishBlockNumberZod.transform(v => v as EthBlockNumber)\n\nexport const asEthBlockNumber = zodAsFactory<EthBlockNumber>(EthBlockNumberZod)\nexport const toEthBlockNumber = zodToFactory<EthBlockNumber>(NumberishEthBlockNumberZod)\n\nexport const ETH_BLOCK_NUMBER_ZERO = asEthBlockNumber(0)\n","import { type Brand } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { NumberishBlockNumberZod } from './BlockNumber.ts'\n\nexport type XL1BlockNumber = Brand<BlockNumber, { readonly __xl1BlockNumber: true }>\n\nexport const XL1BlockNumberZod = z.number().transform(v => v as XL1BlockNumber)\nexport const NumberishXL1BlockNumberZod = NumberishBlockNumberZod.transform(v => v as XL1BlockNumber)\n\nexport const asXL1BlockNumber = zodAsFactory<XL1BlockNumber>(XL1BlockNumberZod)\nexport const toXL1BlockNumber = zodToFactory<XL1BlockNumber>(NumberishXL1BlockNumberZod)\n\nexport const XL1_BLOCK_NUMBER_ZERO = asXL1BlockNumber(0)\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport { type Brand, isDefined } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport {\n asBlockNumber,\n type BlockNumber, BlockNumberZod, NumberishBlockNumberZod,\n} from '../BlockNumber/index.ts'\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\n\nexport type BlockRange = [BlockNumber, BlockNumber]\nexport type NumberishBlockRange = [BlockNumber, BlockNumber]\n\nexport const BlockRangeZod = z.tuple([BlockNumberZod, BlockNumberZod])\nexport const NumberishBlockRangeZod = z.tuple([NumberishBlockNumberZod, NumberishBlockNumberZod])\n\nexport const asBlockRange = zodAsFactory<BlockRange>(BlockRangeZod)\nexport const toBlockRange = zodToFactory<BlockRange>(NumberishBlockRangeZod)\n\nexport type BlockRangeKey = Brand<string, { readonly __blockRangeKey: true }>\nexport const toBlockNumberKey = (range: BlockRange) => `${range[0]}|${range[1]}` as BlockRangeKey\n\nexport function fromBlockNumberKey(key: BlockRangeKey): BlockRange | undefined\nexport function fromBlockNumberKey(key: BlockRangeKey, assert: AssertConfig): BlockRange\nexport function fromBlockNumberKey(key: BlockRangeKey, assert?: AssertConfig): BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid BlockRangeKey: ${key}`)\n}\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport { type Brand, isDefined } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport type { EthBlockNumber } from '../BlockNumber/index.ts'\nimport {\n asEthBlockNumber,\n EthBlockNumberZod,\n NumberishEthBlockNumberZod,\n} from '../BlockNumber/index.ts'\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\n\nexport type EthBlockRange = [EthBlockNumber, EthBlockNumber]\nexport type NumberishEthBlockRange = [EthBlockNumber, EthBlockNumber]\n\nexport const EthBlockRangeZod = z.tuple([EthBlockNumberZod, EthBlockNumberZod])\nexport const NumberishEthBlockRangeZod = z.tuple([NumberishEthBlockNumberZod, NumberishEthBlockNumberZod])\n\nexport const asEthBlockRange = zodAsFactory<EthBlockRange>(EthBlockRangeZod)\nexport const toEthBlockRange = zodToFactory<EthBlockRange>(NumberishEthBlockRangeZod)\n\nexport type EthBlockRangeKey = Brand<string, { readonly __ethBlockRangeKey: true }>\nexport const toEthBlockNumberKey = (range: EthBlockRange) => `${range[0]}|${range[1]}` as EthBlockRangeKey\n\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey): EthBlockRange | undefined\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert: AssertConfig): EthBlockRange\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert?: AssertConfig): EthBlockRange | undefined {\n const [start, end] = key.split('|').map(v => asEthBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid EthBlockRangeKey: ${key}`)\n}\n","import z from 'zod'\n\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '../zod/index.ts'\n\nexport const RangeZod = z.tuple([z.number(), z.number()])\n\nexport type Range = z.infer<typeof RangeZod>\n\nexport const isRange = zodIsFactory<Range>(RangeZod)\nexport const asRange = zodAsFactory<Range>(RangeZod)\nexport const toRange = zodToFactory<Range>(RangeZod)\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport { type Brand, isDefined } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport {\n asXL1BlockNumber,\n NumberishXL1BlockNumberZod,\n XL1BlockNumberZod,\n} from '../BlockNumber/index.ts'\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\n\nexport type XL1BlockRange = [XL1BlockNumber, XL1BlockNumber]\nexport type NumberishXL1BlockRange = [XL1BlockNumber, XL1BlockNumber]\n\nexport const XL1BlockRangeZod = z.tuple([XL1BlockNumberZod, XL1BlockNumberZod])\nexport const NumberishXL1BlockRangeZod = z.tuple([NumberishXL1BlockNumberZod, NumberishXL1BlockNumberZod])\n\nexport const asXL1BlockRange = zodAsFactory<XL1BlockRange>(XL1BlockRangeZod)\nexport const toXL1BlockRange = zodToFactory<XL1BlockRange>(NumberishXL1BlockRangeZod)\n\nexport type XL1BlockRangeKey = Brand<string, { readonly __xl1BlockRangeKey: true }>\nexport const toXL1BlockNumberKey = (range: XL1BlockRange) => `${range[0]}|${range[1]}` as XL1BlockRangeKey\n\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey): XL1BlockRange | undefined\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert: AssertConfig): XL1BlockRange\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert?: AssertConfig): XL1BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asXL1BlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid XL1BlockRangeKey: ${key}`)\n}\n","import { type Brand, isUndefined } from '@xylabs/typeof'\n\nimport { toXL1BlockNumber, type XL1BlockNumber } from './BlockNumber/index.ts'\n\nexport interface StepIdentity {\n block: XL1BlockNumber\n // the index of the step into the StepSize array\n step: number\n}\n\n/** @deprecated use StepIdentity instead */\nexport interface StepContext extends StepIdentity {}\n\n// this string is the block and the step separated by a pipe\nexport type StepIdentityString = Brand<string, { readonly __stepIdentityString: true }>\n\nfunction tryParseInt(value: string): number | undefined {\n // Prevent coercion of empty strings to 0\n if (value === '') return undefined\n // Parse number\n const num = Number(value)\n // Check if integer\n return Number.isInteger(num) ? num : undefined\n}\n\nexport const asStepIdentity = (stepIdentityString: string): StepIdentity | undefined => {\n try {\n const [blockNumberString, stepString] = stepIdentityString.split('|')\n if (isUndefined(blockNumberString) || isUndefined(stepString)) {\n return undefined\n }\n const step = tryParseInt(stepString)\n const block = toXL1BlockNumber(blockNumberString)\n if (isUndefined(block) || isUndefined(step)) {\n return undefined\n }\n\n return { block, step }\n } catch {\n return undefined\n }\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","export const XL1_PROTOCOL_VERSION_MAJOR = 1 as const\nexport const XL1_PROTOCOL_VERSION_MINOR = 2 as const\nexport const XL1_PROTOCOL_VERSION_PATCH = 0 as const\nexport const XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_VERSION_MINOR}.${XL1_PROTOCOL_VERSION_PATCH}` as const\nexport const XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1_000_000 + XL1_PROTOCOL_VERSION_MINOR * 1000 + XL1_PROTOCOL_VERSION_PATCH\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/**\n * The number of a block\n */\nexport type BlockNumberPayload = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumberPayload = isPayloadOfSchemaType<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayload = AsObjectFactory.create<BlockNumberPayload>(isBlockNumberPayload)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberPayloadWithSources = isPayloadOfSchemaTypeWithSources<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayloadWithSources = AsObjectFactory.create<WithSources<BlockNumberPayload>>(isBlockNumberPayloadWithSources)\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 Hash, isHash } from '@xylabs/hex'\nimport { isError } from '@xylabs/typeof'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { HydratedBoundWitness } from '@xyo-network/archivist-model'\nimport { type BoundWitness } from '@xyo-network/boundwitness-model'\n\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 return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/hex'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { type HydratedBlock } from '../../block/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import { type SignedHydratedTransaction } from '../../transaction/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class HydratedTransactionValidationError extends ValidationError<SignedHydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n"],"mappings":"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","names":["isHashMeta","z","HexZod","z","HexZod","AsObjectFactory","isPayloadOfZodType","z","z","isPayloadOfZodType","AsObjectFactory","HexZod","AsObjectFactory","isPayloadOfZodType","HexZod","isPayloadOfZodType","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isAnyPayload","isStorageMeta","AsObjectFactory","isBoundWitness","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isSigned","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isStorageMeta","isSigned","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","isHashMeta","isHashMeta","AsObjectFactory","isHashMeta","z","isHex","AsObjectFactory","isBoundWitness","isSigned","isHashMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","z","z","z","z","z","z","z","assertError","z","z","assertError","assertError","isDefined","z","z","isDefined","assertError","z","z","assertError","isDefined","z","z","isDefined","assertError","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType"]}
|
|
1
|
+
{"version":3,"sources":["../../src/amount/splitOnDecimal.ts","../../src/amount/splitOnDecimalToString.ts","../../src/amount/ShiftedBigInt.ts","../../src/amount/XL1Amount.ts","../../src/xl1/isXL1Factory.ts","../../src/xl1/xl1MaxValue.ts","../../src/xl1/XL1Units.ts","../../src/xl1/AttoXL1.ts","../../src/xl1/FemtoXL1.ts","../../src/xl1/MicroXL1.ts","../../src/xl1/MilliXL1.ts","../../src/xl1/NanoXL1.ts","../../src/xl1/PicoXL1.ts","../../src/xl1/XL1.ts","../../src/block/AllowedBlockPayload.ts","../../src/payload/elevatable/Bridge/BridgeDestinationObservation.ts","../../src/payload/elevatable/Bridge/BridgeDetails.ts","../../src/payload/elevatable/Bridge/BridgeIntent.ts","../../src/payload/elevatable/Bridge/BridgeSourceObservation.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/StepComplete.ts","../../src/payload/elevatable/Time.ts","../../src/payload/elevatable/TransferPayload.ts","../../src/payload/StepIdentityPayload.ts","../../src/model/BlockNumber/BlockNumber.ts","../../src/model/zod/zodAsFactory.ts","../../src/model/zod/zodIsFactory.ts","../../src/model/zod/zodToFactory.ts","../../src/model/BlockNumber/Numberish.ts","../../src/model/BlockNumber/EthBlockNumber.ts","../../src/model/BlockNumber/XL1BlockNumber.ts","../../src/model/BlockRange/BlockRange.ts","../../src/model/BlockRange/EthBlockRange.ts","../../src/model/BlockRange/Range.ts","../../src/model/BlockRange/XL1BlockRange.ts","../../src/model/StepIdentity.ts","../../src/transaction/AnyHydratedTransaction.ts","../../src/isHydratedBoundWitness.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/transaction/HydratedTransaction.ts","../../src/transaction/HydratedTransactionWithHashMeta.ts","../../src/transaction/HydratedTransactionWithStorageMeta.ts","../../src/transaction/SignedHydratedTransaction.ts","../../src/transaction/SignedHydratedTransactionWithHashMeta.ts","../../src/transaction/SignedHydratedTransactionWithStorageMeta.ts","../../src/transaction/TransactionBoundWitnessDeprecated.ts","../../src/transaction/TransactionFeesFields.ts","../../src/transaction/UnsignedHydratedTransaction.ts","../../src/transaction/UnsignedHydratedTransactionWithHashMeta.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/constants/addresses.ts","../../src/constants/defaultRewardRatio.ts","../../src/constants/minTransactionFees.ts","../../src/constants/defaultTransactionFees.ts","../../src/constants/OpCodes.ts","../../src/constants/StepSizes.ts","../../src/constants/TransactionGasCosts.ts","../../src/constants/version.ts","../../src/fields/BlockNumber.ts","../../src/network/Status.ts","../../src/validation/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts"],"sourcesContent":["export const splitOnDecimal = (value: bigint, places = 18): [bigint, bigint] => {\n const whole = value / BigInt(10 ** places)\n const decimal = value % BigInt(10 ** places)\n return [whole, decimal]\n}\n","import { splitOnDecimal } from './splitOnDecimal.ts'\n\nexport const splitOnDecimalToString = (\n value: bigint,\n places = 18,\n maxDecimal = places,\n maxCharacters = 9,\n minDecimals = 1,\n locale: Intl.LocalesArgument = 'en-US',\n): string => {\n const [whole, decimal] = splitOnDecimal(value, places)\n const remainderLength = decimal.toString().length\n const precedingZerosInDecimal = places - remainderLength\n if (whole === 0n && precedingZerosInDecimal >= maxDecimal && decimal !== 0n) return '< 0.'.padEnd(maxDecimal + 5, '0') + '1'\n\n const wholeCharacters = whole.toString(10).length\n const calcMaxDecimalCharacters = maxCharacters === -1 ? places : wholeCharacters > maxCharacters ? 0 : maxCharacters - wholeCharacters\n const maxDecimalCharacters = Math.min(maxDecimal, calcMaxDecimalCharacters)\n\n // Format whole number with thousand separators according to locale\n const formattedWhole = new Intl.NumberFormat(locale, {\n maximumFractionDigits: 0,\n useGrouping: true,\n }).format(whole)\n\n // Get decimal separator for the locale\n const decimalSeparator = new Intl.NumberFormat(locale)\n .formatToParts(1.1)\n .find(part => part.type === 'decimal')?.value ?? '.'\n\n // Pad decimal part to correct number of places\n let paddedDecimal = decimal.toString().padStart(places, '0').slice(0, maxDecimalCharacters)\n // remove unneeded trailing zeros (honoring minDecimals)\n while (paddedDecimal.length > minDecimals && paddedDecimal.endsWith('0')) {\n paddedDecimal = paddedDecimal.slice(0, -1)\n }\n\n return `${formattedWhole}${paddedDecimal.length > 0 ? decimalSeparator : ''}${paddedDecimal}`\n}\n","import type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\nimport { splitOnDecimalToString } from './splitOnDecimalToString.ts'\n\nexport class ShiftedBigInt {\n static readonly defaultConfig: ShiftedBigIntConfig = {\n places: 18,\n maxDecimal: 18,\n maxCharacters: 9,\n minDecimals: 1,\n locale: 'en-US',\n }\n\n config: ShiftedBigIntConfig\n value: bigint\n\n constructor(\n value: bigint | ShiftedBigInt,\n config: Partial<ShiftedBigIntConfig> = {},\n ) {\n this.value = typeof value === 'bigint' ? value : value.value\n this.config = {\n ...ShiftedBigInt.defaultConfig, ...(typeof value === 'bigint' ? {} : value.config), ...config,\n }\n }\n\n get locale(): Intl.LocalesArgument {\n return this.config.locale ?? 'en-US'\n }\n\n get maxCharacters(): number {\n return this.config.maxCharacters ?? 9\n }\n\n get maxDecimal(): number {\n return this.config.maxDecimal ?? this.places\n }\n\n get minDecimals(): number {\n return this.config.minDecimals ?? 1\n }\n\n get places(): number {\n return this.config.places ?? 18\n }\n\n toFullString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.places,\n Infinity,\n this.places,\n this.locale,\n )\n }\n\n toShortString(): string {\n return splitOnDecimalToString(\n this.value,\n this.places,\n this.maxDecimal,\n this.maxCharacters,\n this.minDecimals,\n this.locale,\n )\n }\n\n toString(): string {\n return this.toFullString()\n }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { assertEx } from '@xylabs/assert'\n\nimport {\n AttoXL1, FemtoXL1, MicroXL1, MilliXL1, NanoXL1, PicoXL1, XL1,\n XL1Places,\n} from '../xl1/index.ts'\nimport { ShiftedBigInt } from './ShiftedBigInt.ts'\nimport type { ShiftedBigIntConfig } from './ShiftedBigIntConfig.ts'\n\nconst MAX_XL1_AMOUNT = 2n ** 256n - 1n\nconst allowedPlaces = Object.values(XL1Places)\n\nexport interface XL1AmountInstance {\n value: AttoXL1\n\n to(places: bigint | number): bigint\n\n milli: MilliXL1\n\n micro: MicroXL1\n\n nano: NanoXL1\n\n pico: PicoXL1\n\n femto: FemtoXL1\n\n atto: AttoXL1\n\n xl1: XL1\n\n toString(places: number, config: Partial<ShiftedBigIntConfig>): string\n}\n\nexport class XL1Amount implements XL1AmountInstance {\n value: AttoXL1\n private locale: Intl.LocalesArgument\n\n constructor(value: bigint, locale: Intl.LocalesArgument = 'en-US') {\n this.locale = locale\n this.value = AttoXL1(value > MAX_XL1_AMOUNT ? MAX_XL1_AMOUNT : value < 0n ? 0n : value)\n }\n\n static from(value: bigint, places: bigint = XL1Places.atto) {\n assertEx(allowedPlaces.includes(places), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new XL1Amount(value * 10n ** BigInt(places))\n }\n\n static fromMilli(value: MilliXL1) {\n return this.from(value, XL1Places.milli)\n }\n\n static fromMicro(value: MicroXL1) {\n return this.from(value, XL1Places.micro)\n }\n\n static fromNano(value: NanoXL1) {\n return this.from(value, XL1Places.nano)\n }\n\n static fromPico(value: PicoXL1) {\n return this.from(value, XL1Places.pico)\n }\n\n static fromFemto(value: FemtoXL1) {\n return this.from(value, XL1Places.femto)\n }\n\n static fromAtto(value: AttoXL1) {\n return this.from(value, XL1Places.atto)\n }\n\n static fromXL1(value: XL1) {\n return this.from(value, XL1Places.xl1)\n }\n\n to(places: number | bigint = XL1Places.atto) {\n return this.value / 10n ** BigInt(places)\n }\n\n get milli() {\n return MilliXL1(this.to(XL1Places.milli))\n }\n\n get micro() {\n return MicroXL1(this.to(XL1Places.micro))\n }\n\n get nano() {\n return NanoXL1(this.to(XL1Places.nano))\n }\n\n get pico() {\n return PicoXL1(this.to(XL1Places.pico))\n }\n\n get femto() {\n return FemtoXL1(this.to(XL1Places.femto))\n }\n\n get atto() {\n return AttoXL1(this.to(XL1Places.atto))\n }\n\n get xl1() {\n return XL1(this.to(XL1Places.xl1))\n }\n\n toString(places: number = Number(XL1Places.atto), config: Partial<ShiftedBigIntConfig> = {}): string {\n assertEx(allowedPlaces.includes(BigInt(places)), () => `Invalid conversion places (${places} not in ${allowedPlaces})`)\n return new ShiftedBigInt(\n this.value,\n {\n places,\n locale: this.locale,\n maxDecimal: places,\n minDecimals: 0,\n maxCharacters: places,\n ...config,\n },\n ).toShortString()\n }\n}\n","import * as z from 'zod'\n\nimport { xl1MaxValue } from './xl1MaxValue.ts'\n\nexport const isXL1Factory = <T extends bigint>(places: bigint) => (val: unknown): val is T => {\n if (typeof val !== 'bigint') return false\n return val >= 0n && val <= xl1MaxValue(places)\n}\n\nexport const XL1ZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.bigint().refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const XL1TransformZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.union([z.bigint(), z.number(), z.string(), z.boolean()]).transform(val => BigInt(val) as T).refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const asXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1ZodFactory<T>(places, 'local')\n return (val: unknown): T => {\n const result = zod.safeParse(val)\n if (result.success) {\n return result.data as T\n }\n throw result.error\n }\n}\n\nexport const toXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1TransformZodFactory<T>(places, 'local')\n return (val: unknown): T | undefined => {\n const result = zod.safeParse(val)\n return result.success ? result.data as T : undefined\n }\n}\n","export const xl1MaxValue = (places: bigint) => 10n ** (32n - places) - 1n\n","type XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\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","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const AttoXL1MaxValue = xl1MaxValue(XL1Places.atto)\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' }\nexport const isAttoXL1 = isXL1Factory<AttoXL1>(XL1Places.atto)\nexport const asAttoXL1 = asXL1Factory<AttoXL1>(XL1Places.atto)\nexport const toAttoXL1 = toXL1Factory<AttoXL1>(XL1Places.atto)\n\nexport const AttoXL1 = asAttoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const FemtoXL1MaxValue = xl1MaxValue(XL1Places.femto)\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' }\nexport const isFemtoXL1 = isXL1Factory<FemtoXL1>(XL1Places.femto)\nexport const asFemtoXL1 = asXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const toFemtoXL1 = toXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const FemtoXL1 = asFemtoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MicroXL1MaxValue = xl1MaxValue(XL1Places.micro)\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' }\nexport const isMicroXL1 = isXL1Factory<MicroXL1>(XL1Places.micro)\nexport const asMicroXL1 = asXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const toMicroXL1 = toXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const MicroXL1 = asMicroXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MilliXL1MaxValue = xl1MaxValue(XL1Places.milli)\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' }\nexport const isMilliXL1 = isXL1Factory<MilliXL1>(XL1Places.milli)\nexport const asMilliXL1 = asXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const toMilliXL1 = toXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const MilliXL1 = asMilliXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const NanoXL1MaxValue = xl1MaxValue(XL1Places.nano)\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' }\nexport const isNanoXL1 = isXL1Factory<NanoXL1>(XL1Places.nano)\nexport const asNanoXL1 = asXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const toNanoXL1 = toXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const NanoXL1 = asNanoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const PicoXL1MaxValue = xl1MaxValue(XL1Places.pico)\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' }\nexport const isPicoXL1 = isXL1Factory<PicoXL1>(XL1Places.pico)\nexport const asPicoXL1 = asXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const toPicoXL1 = toXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const PicoXL1 = asPicoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const XL1MaxValue = xl1MaxValue(XL1Places.xl1)\nexport type XL1 = bigint & { readonly _tag: 'XL1' }\nexport const isXL1 = isXL1Factory<XL1>(XL1Places.xl1)\nexport const asXL1 = asXL1Factory<XL1>(XL1Places.xl1)\n\nexport const toXL1 = toXL1Factory<XL1>(XL1Places.xl1)\n\nexport const XL1 = asXL1\n","import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashMeta, isSchema } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\nimport z from 'zod'\n\nimport type {\n BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation, ChainStakeIntent, HashPayload, StepComplete, TimePayload, Transfer,\n} from '../payload/index.ts'\nimport {\n BridgeDestinationObservationSchema, BridgeIntentSchema, BridgeSourceObservationSchema, ChainStakeIntentSchema, HashSchema,\n isBridgeDestinationObservation, isBridgeIntent, isBridgeSourceObservation, isChainStakeIntent, isHashPayload, isTimePayload, isTransfer, StepCompleteSchema,\n TimeSchema, TransferSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\n\nexport type AllowedBlockPayload\n = Transfer\n | BridgeDestinationObservation\n | BridgeIntent\n | BridgeSourceObservation\n | ChainStakeIntent\n | HashPayload\n | SchemaPayload\n | StepComplete\n | TimePayload\n | TransactionBoundWitness\n\nexport const AllowedBlockPayloadSchemas: Schema[] = [\n BoundWitnessSchema,\n BridgeDestinationObservationSchema,\n BridgeIntentSchema,\n BridgeSourceObservationSchema,\n ChainStakeIntentSchema,\n HashSchema,\n SchemaSchema,\n StepCompleteSchema,\n TimeSchema,\n TransferSchema,\n]\n\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)\n || isBridgeDestinationObservation(value)\n || isBridgeIntent(value)\n || isBridgeSourceObservation(value)\n || isChainStakeIntent(value)\n || isHashPayload(value)\n || isSchemaPayload(value)\n || isTimePayload(value)\n || isTransactionBoundWitness(value)\n}\n\nexport const isAllowedBlockPayloadWithHashMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {\n return isAllowedBlockPayload(value) && isHashMeta(value)\n}\n\nexport const AllowedBlockPayloadZod = z.object({ schema: z.enum(AllowedBlockPayloadSchemas) })\n","import { HexZod } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfZodType } from '@xyo-network/payload-model'\nimport type z from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeDestinationObservationSchema = 'network.xyo.chain.bridge.observation.destination' as const\nexport type BridgeDestinationObservationSchema = typeof BridgeDestinationObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport const BridgeDestinationObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Destination chain confirmation\n */\n destConfirmation: HexZod.optional().describe('Destination chain confirmation'),\n})\n\nexport type BridgeDestinationObservationFields = z.infer<typeof BridgeDestinationObservationFieldsZod>\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport type BridgeDestinationObservation = Payload<BridgeDestinationObservationFields, BridgeDestinationObservationSchema>\n\nexport const isBridgeDestinationObservation = isPayloadOfZodType<BridgeDestinationObservation>(\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n)\n\nexport const asBridgeDestinationObservation = AsObjectFactory.create(isBridgeDestinationObservation)\n","import { HexZod } from '@xylabs/hex'\nimport z from 'zod'\n\n/**\n * Represents a transfer destination\n */\nexport const BridgeDetailsDestinationFieldsZod = z.object({\n /**\n * Destination network\n */\n dest: HexZod.describe('The destination network identifier'),\n /**\n * Destination address (EOA or contract)\n */\n destAddress: HexZod.describe('The destination address (EOA or contract)'),\n /**\n * Token amount to bridge to destination\n */\n destAmount: HexZod.describe('The token amount to bridge to destination'),\n /**\n * Token being bridged to\n */\n destToken: HexZod.describe('The token being bridged to'),\n})\n\n/**\n * Represents a transfer destination\n */\nexport type BridgeDetailsDestinationFields = z.infer<typeof BridgeDetailsDestinationFieldsZod>\n\n/**\n * Represents a transfer source\n */\nexport const BridgeDetailsSourceFieldsZod = z.object({\n /**\n * Source network\n */\n src: HexZod.describe('The source network identifier'),\n\n /**\n * Source address (EOA or contract)\n */\n srcAddress: HexZod.describe('The source address (EOA or contract)'),\n /**\n * Token amount to bridge from source\n */\n srcAmount: HexZod.describe('The token amount to bridge from source'),\n /**\n * Token being bridged from\n */\n srcToken: HexZod.describe('The token being bridged from'),\n})\n\n/**\n * Represents a transfer source\n */\nexport type BridgeDetailsSourceFields = z.infer<typeof BridgeDetailsSourceFieldsZod>\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport const BridgeDetailsFieldsZod = BridgeDetailsSourceFieldsZod.extend(\n BridgeDetailsDestinationFieldsZod.shape,\n)\n\n/**\n * Represents a transfer from a source chain/token/address/amount to a destination chain/token/address/amount.\n */\nexport type BridgeDetailsFields = z.infer<typeof BridgeDetailsFieldsZod>\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfZodType } from '@xyo-network/payload-model'\nimport z from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeIntentSchema = 'network.xyo.chain.bridge.intent' as const\nexport type BridgeIntentSchema = typeof BridgeIntentSchema\n\n/**\n * Represents an Address's intent to initiate a token bridge.\n */\nexport const BridgeIntentFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Unique identifier for replay protection\n */\n nonce: z.string().describe('Unique identifier for replay protection'),\n})\n\nexport type BridgeIntentFields = z.infer<typeof BridgeIntentFieldsZod>\n\nexport type BridgeIntent = Payload<BridgeIntentFields, BridgeIntentSchema>\n\nexport const isBridgeIntent = isPayloadOfZodType<BridgeIntent>(\n BridgeIntentFieldsZod,\n BridgeIntentSchema,\n)\n\nexport const asBridgeIntent = AsObjectFactory.create(isBridgeIntent)\n","import { HexZod } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfZodType } from '@xyo-network/payload-model'\nimport type z from 'zod'\n\nimport { BridgeDetailsFieldsZod } from './BridgeDetails.ts'\n\nexport const BridgeSourceObservationSchema = 'network.xyo.chain.bridge.observation.source' as const\nexport type BridgeSourceObservationSchema = typeof BridgeSourceObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport const BridgeSourceObservationFieldsZod = BridgeDetailsFieldsZod.extend({\n /**\n * Source chain confirmation\n */\n srcConfirmation: HexZod.optional().describe('Source chain confirmation'),\n})\n\nexport type BridgeSourceObservationFields = z.infer<typeof BridgeSourceObservationFieldsZod>\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport type BridgeSourceObservation = Payload<BridgeSourceObservationFields, BridgeSourceObservationSchema>\n\nexport const isBridgeSourceObservation = isPayloadOfZodType<BridgeSourceObservation>(\n BridgeSourceObservationFieldsZod,\n BridgeSourceObservationSchema,\n)\n\nexport const asBridgeSourceObservation = AsObjectFactory.create(isBridgeSourceObservation)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } 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)\n\nexport const isChainStakeIntentWithStorageMeta = (x?: unknown | null): x is WithStorageMeta<ChainStakeIntent> => {\n return isChainStakeIntent(x) && isStorageMeta(x)\n}\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)\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\nimport type { FromFields } from './Executable.ts'\n\nexport const StepCompleteSchema = 'network.xyo.chain.step.complete' as const\nexport type StepCompleteSchema = typeof StepCompleteSchema\n\n/* This records the completion of a step in the network - needed for network staking rewards */\n/* We will only write these for steps that are eligible for rewards Step 3 (2311) */\n\nexport interface StepCompleteFields extends FromFields {\n block: number /* The block number on the XL1 network */\n hash: Hash /* The Step Hash */\n size: number /* The size of the step */\n stakeBlock: number /* The block number on ethereum or other staking system */\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 StepComplete = Payload<StepCompleteFields, StepCompleteSchema>\n\nexport const isStepComplete = isPayloadOfSchemaType<StepComplete>(StepCompleteSchema)\n\nexport const asStepComplete = AsObjectFactory.create(isStepComplete)\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\n// xl1 = xl1 block number, epoch = epoch number, ethereum = ethereum block number\nexport type TimeDomain = 'xl1' | 'epoch' | 'ethereum'\n\nexport const TimeSchema = 'network.xyo.time' as const\nexport type TimeSchema = typeof TimeSchema\n\nexport interface XL1TimeFields {\n // block number\n xl1?: number\n // block hash\n xl1Hash?: Hash\n}\n\nexport interface EthereumTimeFields {\n // block number\n ethereum?: number\n // block hash\n ethereumHash?: Hash\n}\n\nexport interface TimeFields extends XL1TimeFields, EthereumTimeFields {\n // in milliseconds\n epoch: number\n}\n\nexport type TimePayload = Payload<TimeFields, TimeSchema>\n\n// to prevent scaling problems, we use double the current time as a max safe epoch\nexport const isSafeEpoch = (value: unknown): value is number => {\n return typeof value === 'number' && value < 2 * Date.now()\n}\n\nexport const isTimePayload = (value: unknown): value is TimePayload => {\n return isPayloadOfSchemaType<TimePayload>(TimeSchema)(value) && isSafeEpoch(value.epoch)\n}\n\nexport const asTimePayload = AsObjectFactory.create(isTimePayload)\nexport const asTimePayloadWithStorageMeta = AsObjectFactory.create(isTimePayload)\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<TContext extends {} = {}> extends FromFields {\n context?: TContext\n epoch: number\n // the amount that is being sent to other addresses\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<TContext extends {} = {}> = Payload<TransferFields<TContext>, TransferSchema>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfZodType } from '@xyo-network/payload-model'\nimport type { z } from 'zod'\n\nimport { StepIdentityZod } from '../model/index.ts'\n\nexport const StepIdentitySchema = 'network.xyo.chain.step.identity' as const\nexport type StepIdentitySchema = typeof StepIdentitySchema\n\nexport type StepIdentityFields = z.infer<typeof StepIdentityZod>\n\n/**\n * A Step Identity Payload\n */\nexport type StepIdentityPayload = Payload<StepIdentityFields, StepIdentitySchema>\n\nexport const isStepIdentityPayload = isPayloadOfZodType<StepIdentityPayload>(StepIdentityZod, StepIdentitySchema)\n\nexport const asStepIdentityPayload = AsObjectFactory.create(isStepIdentityPayload)\n","import { type Brand } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\nimport { NumberishZod } from './Numberish.ts'\n\nexport type BlockNumber = Brand<number, { readonly __blockNumber: true }>\n\nexport const BlockNumberZod = z.number().transform(v => v as BlockNumber)\nexport const NumberishBlockNumberZod = NumberishZod.transform(v => v as BlockNumber)\n\nexport const asBlockNumber = zodAsFactory<BlockNumber>(BlockNumberZod)\nexport const toBlockNumber = zodToFactory<BlockNumber>(NumberishBlockNumberZod)\n\nexport const BLOCK_NUMBER_ZERO = asBlockNumber(0)\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport type z from 'zod'\n\nexport function zodAsFactory<T>(zod: z.ZodType<T>) {\n function asFunc(value: unknown): T | undefined\n function asFunc(value: unknown, assert: AssertConfig): T\n function asFunc(value: unknown, assert?: AssertConfig): T | undefined {\n const result = zod.safeParse(value)\n if (result.success) {\n return result.data\n }\n return assertError(value, assert, result.error.message)\n }\n\n return asFunc\n}\n","import type z from 'zod'\n\nexport function zodIsFactory<T>(zod: z.ZodType<T>) {\n return (value: unknown): value is T => zod.safeParse(value).success\n}\n","import type z from 'zod'\n\nimport { zodAsFactory } from './zodAsFactory.ts'\n\nexport function zodToFactory<T>(zod: z.ZodType<T>) {\n return zodAsFactory<T>(zod)\n}\n","import z from 'zod'\n\nexport const NumberishZod = z.union([z.number(), z.string(), z.bigint()])\n .transform(v => (typeof v === 'bigint' ? Number(v) : typeof v === 'string' ? Number(v) : v))\n .pipe(z.number())\n","import { type Brand } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { NumberishBlockNumberZod } from './BlockNumber.ts'\n\nexport type EthBlockNumber = Brand<BlockNumber, { readonly __ethBlockNumber: true }>\n\nexport const EthBlockNumberZod = z.number().transform(v => v as EthBlockNumber)\nexport const NumberishEthBlockNumberZod = NumberishBlockNumberZod.transform(v => v as EthBlockNumber)\n\nexport const asEthBlockNumber = zodAsFactory<EthBlockNumber>(EthBlockNumberZod)\nexport const toEthBlockNumber = zodToFactory<EthBlockNumber>(NumberishEthBlockNumberZod)\n\nexport const ETH_BLOCK_NUMBER_ZERO = asEthBlockNumber(0)\n","import { type Brand } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\nimport type { BlockNumber } from './BlockNumber.ts'\nimport { NumberishBlockNumberZod } from './BlockNumber.ts'\n\nexport type XL1BlockNumber = Brand<BlockNumber, { readonly __xl1BlockNumber: true }>\n\nexport const XL1BlockNumberZod = z.number().transform(v => v as XL1BlockNumber)\nexport const NumberishXL1BlockNumberZod = NumberishBlockNumberZod.transform(v => v as XL1BlockNumber)\n\nexport const asXL1BlockNumber = zodAsFactory<XL1BlockNumber>(XL1BlockNumberZod)\nexport const toXL1BlockNumber = zodToFactory<XL1BlockNumber>(NumberishXL1BlockNumberZod)\n\nexport const XL1_BLOCK_NUMBER_ZERO = asXL1BlockNumber(0)\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport { type Brand, isDefined } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport {\n asBlockNumber,\n type BlockNumber, BlockNumberZod, NumberishBlockNumberZod,\n} from '../BlockNumber/index.ts'\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\n\nexport type BlockRange = [BlockNumber, BlockNumber]\nexport type NumberishBlockRange = [BlockNumber, BlockNumber]\n\nexport const BlockRangeZod = z.tuple([BlockNumberZod, BlockNumberZod])\nexport const NumberishBlockRangeZod = z.tuple([NumberishBlockNumberZod, NumberishBlockNumberZod])\n\nexport const asBlockRange = zodAsFactory<BlockRange>(BlockRangeZod)\nexport const toBlockRange = zodToFactory<BlockRange>(NumberishBlockRangeZod)\n\nexport type BlockRangeKey = Brand<string, { readonly __blockRangeKey: true }>\nexport const toBlockNumberKey = (range: BlockRange) => `${range[0]}|${range[1]}` as BlockRangeKey\n\nexport function fromBlockNumberKey(key: BlockRangeKey): BlockRange | undefined\nexport function fromBlockNumberKey(key: BlockRangeKey, assert: AssertConfig): BlockRange\nexport function fromBlockNumberKey(key: BlockRangeKey, assert?: AssertConfig): BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid BlockRangeKey: ${key}`)\n}\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport { type Brand, isDefined } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport type { EthBlockNumber } from '../BlockNumber/index.ts'\nimport {\n asEthBlockNumber,\n EthBlockNumberZod,\n NumberishEthBlockNumberZod,\n} from '../BlockNumber/index.ts'\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\n\nexport type EthBlockRange = [EthBlockNumber, EthBlockNumber]\nexport type NumberishEthBlockRange = [EthBlockNumber, EthBlockNumber]\n\nexport const EthBlockRangeZod = z.tuple([EthBlockNumberZod, EthBlockNumberZod])\nexport const NumberishEthBlockRangeZod = z.tuple([NumberishEthBlockNumberZod, NumberishEthBlockNumberZod])\n\nexport const asEthBlockRange = zodAsFactory<EthBlockRange>(EthBlockRangeZod)\nexport const toEthBlockRange = zodToFactory<EthBlockRange>(NumberishEthBlockRangeZod)\n\nexport type EthBlockRangeKey = Brand<string, { readonly __ethBlockRangeKey: true }>\nexport const toEthBlockNumberKey = (range: EthBlockRange) => `${range[0]}|${range[1]}` as EthBlockRangeKey\n\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey): EthBlockRange | undefined\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert: AssertConfig): EthBlockRange\nexport function fromEthBlockNumberKey(key: EthBlockRangeKey, assert?: AssertConfig): EthBlockRange | undefined {\n const [start, end] = key.split('|').map(v => asEthBlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid EthBlockRangeKey: ${key}`)\n}\n","import z from 'zod'\n\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '../zod/index.ts'\n\nexport const RangeZod = z.tuple([z.number(), z.number()])\n\nexport type Range = z.infer<typeof RangeZod>\n\nexport const isRange = zodIsFactory<Range>(RangeZod)\nexport const asRange = zodAsFactory<Range>(RangeZod)\nexport const toRange = zodToFactory<Range>(RangeZod)\n","import type { AssertConfig } from '@xylabs/hex'\nimport { assertError } from '@xylabs/hex'\nimport { type Brand, isDefined } from '@xylabs/typeof'\nimport z from 'zod'\n\nimport type { XL1BlockNumber } from '../BlockNumber/index.ts'\nimport {\n asXL1BlockNumber,\n NumberishXL1BlockNumberZod,\n XL1BlockNumberZod,\n} from '../BlockNumber/index.ts'\nimport { zodAsFactory, zodToFactory } from '../zod/index.ts'\n\nexport type XL1BlockRange = [XL1BlockNumber, XL1BlockNumber]\nexport type NumberishXL1BlockRange = [XL1BlockNumber, XL1BlockNumber]\n\nexport const XL1BlockRangeZod = z.tuple([XL1BlockNumberZod, XL1BlockNumberZod])\nexport const NumberishXL1BlockRangeZod = z.tuple([NumberishXL1BlockNumberZod, NumberishXL1BlockNumberZod])\n\nexport const asXL1BlockRange = zodAsFactory<XL1BlockRange>(XL1BlockRangeZod)\nexport const toXL1BlockRange = zodToFactory<XL1BlockRange>(NumberishXL1BlockRangeZod)\n\nexport type XL1BlockRangeKey = Brand<string, { readonly __xl1BlockRangeKey: true }>\nexport const toXL1BlockNumberKey = (range: XL1BlockRange) => `${range[0]}|${range[1]}` as XL1BlockRangeKey\n\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey): XL1BlockRange | undefined\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert: AssertConfig): XL1BlockRange\nexport function fromXL1BlockNumberKey(key: XL1BlockRangeKey, assert?: AssertConfig): XL1BlockRange | undefined {\n const [start, end] = key.split('|').map(v => asXL1BlockNumber(Number(v)))\n const result = (isDefined(start) && isDefined(end)) ? [start, end] : undefined\n return assertError(result, assert, `Invalid XL1BlockRangeKey: ${key}`)\n}\n","import { type Brand, isUndefined } from '@xylabs/typeof'\nimport * as z from 'zod'\n\nimport { toXL1BlockNumber, type XL1BlockNumber } from './BlockNumber/index.ts'\n\nexport const StepIdentityZod = z.object({\n block: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n})\n\nexport interface StepIdentity {\n block: XL1BlockNumber\n // the index of the step into the StepSize array\n step: number\n}\n\n/** @deprecated use StepIdentity instead */\nexport interface StepContext extends StepIdentity {}\n\n// this string is the block and the step separated by a pipe\nexport type StepIdentityString = Brand<string, { readonly __stepIdentityString: true }>\n\nfunction tryParseInt(value: string): number | undefined {\n // Prevent coercion of empty strings to 0\n if (value === '') return undefined\n // Parse number\n const num = Number(value)\n // Check if integer\n return Number.isInteger(num) ? num : undefined\n}\n\nexport const asStepIdentity = (stepIdentityString: string): StepIdentity | undefined => {\n try {\n const [blockNumberString, stepString] = stepIdentityString.split('|')\n if (isUndefined(blockNumberString) || isUndefined(stepString)) {\n return undefined\n }\n const step = tryParseInt(stepString)\n const block = toXL1BlockNumber(blockNumberString)\n if (isUndefined(block) || isUndefined(step)) {\n return undefined\n }\n\n return { block, step }\n } catch {\n return undefined\n }\n}\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type AnyHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isAnyHydratedTransaction = (\n value: unknown,\n): value is AnyHydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0])\n )\n}\n\nexport const asAnyHydratedTransaction = AsObjectFactory.create<AnyHydratedTransaction>(\n isAnyHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { HydratedBoundWitness, HydratedBoundWitnessWithStorageMeta } from '@xyo-network/archivist-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isAnyPayload, isStorageMeta } from '@xyo-network/payload-model'\n\nexport const isHydratedBoundWitness = (\n value: unknown,\n): value is HydratedBoundWitness => {\n return (\n Array.isArray(value)\n && value.length === 2\n && isBoundWitness(value[0])\n && Array.isArray(value[1])\n && !value[1].some(item => (!isAnyPayload(item)))\n )\n}\n\nexport const isHydratedBoundWitnessWithStorageMeta = (\n value: unknown,\n): value is HydratedBoundWitnessWithStorageMeta => {\n return (\n isHydratedBoundWitness(value)\n && isStorageMeta(value[0])\n && !value[1].some(item => (!isStorageMeta(item)))\n )\n}\n\nexport const asHydratedBoundWitness = AsObjectFactory.create<HydratedBoundWitness>(\n isHydratedBoundWitness,\n)\n\nexport const asHydratedBoundWitnessWithStorageMeta = AsObjectFactory.create<HydratedBoundWitnessWithStorageMeta>(\n isHydratedBoundWitnessWithStorageMeta,\n)\n","import {\n type Address, type Hex, isAddress,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-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: Hex | Address & { __chain: true }\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 && isAddress(typedObj.chain)\n && typedObj.fees !== undefined\n && typedObj.exp !== undefined\n && typedObj.nbf !== undefined\n}\n\nexport const asTransactionBoundWitness = AsObjectFactory.create(isTransactionBoundWitness)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isSigned, type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\n/** @deprecated Use HydratedTransactionWithStorageMeta instead */\nexport type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\n/** @deprecated Use isHydratedTransactionWithStorageMeta instead */\nexport const isHydratedTransaction = (\n value: unknown,\n// eslint-disable-next-line sonarjs/deprecation\n): value is HydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]) && isSigned(value[0]) && isStorageMeta(value[0])\n )\n}\n\n/** @deprecated Use asHydratedTransactionWithStorageMeta instead */\n// eslint-disable-next-line sonarjs/deprecation\nexport const asHydratedTransaction = AsObjectFactory.create<HydratedTransaction>(\n // eslint-disable-next-line sonarjs/deprecation\n isHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithHashMeta,\n} from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type HydratedTransactionWithHashMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithHashMeta<Signed<T>>, WithHashMeta<P>[]]\n\nexport const isHydratedTransactionWithHashMeta = (\n value: unknown,\n): value is HydratedTransactionWithHashMeta => {\n return (\n isAnyHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asHydratedTransactionWithHashMeta = AsObjectFactory.create<HydratedTransactionWithHashMeta>(\n isHydratedTransactionWithHashMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type HydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is HydratedTransactionWithStorageMeta => {\n return (\n isAnyHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asHydratedTransactionWithStorageMeta = AsObjectFactory.create<HydratedTransactionWithStorageMeta>(\n isHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [Signed<T>, P[]]\n\nexport const isSignedHydratedTransaction = (\n value: unknown,\n): value is SignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isSigned(value[0])\n )\n}\n\nexport const asSignedHydratedTransaction = AsObjectFactory.create<SignedHydratedTransaction>(\n isSignedHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport type {\n Payload,\n WithHashMeta,\n} from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransactionWithHashMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithHashMeta<Signed<T>>, WithHashMeta<P>[]]\n\nexport const isSignedHydratedTransactionWithHashMeta = (\n value: unknown,\n): value is SignedHydratedTransactionWithHashMeta => {\n return (\n isSignedHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asSignedHydratedTransactionWithHashMeta = AsObjectFactory.create<SignedHydratedTransactionWithHashMeta>(\n isSignedHydratedTransactionWithHashMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport type {\n Payload,\n WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isSignedHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is SignedHydratedTransactionWithStorageMeta => {\n return (\n isSignedHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asSignedHydratedTransactionWithStorageMeta = AsObjectFactory.create<SignedHydratedTransactionWithStorageMeta>(\n isSignedHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { WithHashMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport const isSignedTransactionBoundWitness = (value: unknown): value is Signed<TransactionBoundWitness> => {\n return isTransactionBoundWitness(value) && isSigned(value)\n}\n\nexport const isTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isTransactionBoundWitnessWithHashMeta = (value: unknown): value is WithHashMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isHashMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithHashMeta = (value: unknown): value is WithHashMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isHashMeta(value)\n\nexport const asTransactionBoundWitnessWithStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithStorageMeta)\n\nexport const asTransactionBoundWitnessWithHashMeta = AsObjectFactory.create(isTransactionBoundWitnessWithHashMeta)\n","import { type Hex, isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport { isObject } from '@xylabs/typeof'\n\nimport { type AttoXL1, isAttoXL1 } from '../xl1/index.ts'\n\nexport interface TransactionFeesBigInt {\n base: AttoXL1\n gasLimit: AttoXL1\n gasPrice: AttoXL1\n priority: AttoXL1\n}\n\nexport type TransactionFeesHex = {\n [K in keyof TransactionFeesBigInt]: Hex;\n}\n\nexport interface TransactionFeesFields {\n fees: TransactionFeesHex\n}\n\nexport const isTransactionFeesBigInt = (value: unknown): value is TransactionFeesBigInt => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesBigInt\n return (\n isAttoXL1(base)\n && isAttoXL1(gasLimit)\n && isAttoXL1(gasPrice)\n && isAttoXL1(priority)\n )\n}\n\nexport const asTransactionFeesBigInt = AsObjectFactory.create<TransactionFeesBigInt>(\n isTransactionFeesBigInt,\n)\n\nexport const isTransactionFeesHex = (value: unknown): value is TransactionFeesHex => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesHex\n return (\n isHex(base)\n && isHex(gasLimit)\n && isHex(gasPrice)\n && isHex(priority)\n )\n}\n\nexport const asTransactionFeesHex = AsObjectFactory.create<TransactionFeesHex>(\n isTransactionFeesHex,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isUnsigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type UnsignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isUnsignedHydratedTransaction = (\n value: unknown,\n): value is UnsignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isUnsigned(value[0])\n )\n}\n\nexport const asUnsignedHydratedTransaction = AsObjectFactory.create<UnsignedHydratedTransaction>(\n isUnsignedHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Unsigned } from '@xyo-network/boundwitness-model'\nimport {\n isHashMeta,\n type Payload, type WithHashMeta,\n} from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type UnsignedHydratedTransactionWithHashMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithHashMeta<Unsigned<T>>, WithHashMeta<P>[]]\n\nexport const isUnsignedHydratedTransactionWithHashMeta = (\n value: unknown,\n): value is UnsignedHydratedTransactionWithHashMeta => {\n return (\n isSignedHydratedTransaction(value) && isHashMeta(value[0]) && !value[1].some(v => !isHashMeta(v))\n )\n}\n\nexport const asUnsignedHydratedTransactionWithHashMeta = AsObjectFactory.create<UnsignedHydratedTransactionWithHashMeta>(\n isUnsignedHydratedTransactionWithHashMeta,\n)\n","import type { Hash } 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 { WithHashMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { ChainId, XL1BlockNumber } from '../model/index.ts'\n\nexport interface BlockBoundWitnessMeta {\n $epoch: number\n}\n\nexport interface BlockBoundWitnessFields {\n /** Block number */\n block: XL1BlockNumber\n /** Chain id - this should be \"0\" for the genesis block */\n chain: ChainId\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: Hash[]\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 isBlockBoundWitnessWithHashMeta = (value: unknown): value is WithHashMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isHashMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithHashMeta = (value: unknown): value is Signed<WithHashMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithHashMeta(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 asBlockBoundWitnessWithHashMeta = AsObjectFactory.create(isBlockBoundWitnessWithHashMeta)\nexport const asSignedBlockBoundWitnessWithHashMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithHashMeta)\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","import type { Address, EthAddress } from '@xylabs/hex'\n\n/**\n * The Zero Address is used as a marker address for various protocol operations.\n */\nexport const XYO_ZERO_ADDRESS = '0000000000000000000000000000000000000000' as const as Address\n\n/**\n * The Bridge Address is used as a marker address for bridge transactions.\n */\nexport const XYO_BRIDGE_ADDRESS = '3012193230121932301219323012193230121932' as const as Address\n\n/**\n * The Network Staking Address is used as a marker address for staking the network.\n */\nexport const XYO_NETWORK_STAKING_ADDRESS = '1969196919691969196919691969196919691969' as const as Address\n\n/**\n * The Step Reward Address is used as a marker address for step rewards.\n */\nexport const XYO_STEP_REWARD_ADDRESS = '1216197612161976121619761216197612161976' as const as Address\n\nexport const XL1_ETH_MAIN_ERC20_CONTRACT_ADDRESS = '0xf72aE3E0DA743033AbD7A407557D684c1aE66aed' as const as EthAddress\n\nexport const XL1_ETH_MAIN_SUB_GOVERNOR_ADDRESS = '0xbA296Bc5D0949C0484f08c56c30FB95CC4675A29' as const as EthAddress\n\nexport const XL1_ETH_MAIN_REWARDS_ADDRESS = '0x1a546e091FB4EFb274DC584334a28b8754c4ece7' as const as EthAddress\n\nexport const XL1_ETH_MAIN_STAKED_XYO_CHAIN_ADDRESS = '0x319e667cED10452A117472811130444dED357F26' as const as EthAddress\n\nexport const XL1_ETH_MAIN_GOVERNANCE_ADDRESS = '0x7595710956d6B14b4f2F51a8dF41379eEeC9074E' as const as EthAddress\n","// the percent of the block rewards the producer gets\nexport const defaultRewardRatio = 0.05 as const // 5.0% goes to block producer\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","export const ELEVATE_OPCODE = 'elevate'\n","import { AsTypeFactory } from '@xylabs/object'\n\nimport { asXL1BlockNumber, type XL1BlockNumber } from '../model/index.ts'\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: XL1BlockNumber[] = [\n asXL1BlockNumber(7, true),\n asXL1BlockNumber(31, true),\n asXL1BlockNumber(211, true),\n asXL1BlockNumber(2311, true),\n asXL1BlockNumber(30_031, true),\n asXL1BlockNumber(510_511, true),\n asXL1BlockNumber(9_699_691, true),\n asXL1BlockNumber(223_092_871, true),\n asXL1BlockNumber(6_469_693_231, true),\n]\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}`, { required: true })\n return StepSizes[validatedStep]\n}\n\nexport const StepRewardFractions = [\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [0n, 1n], // 0%\n [1n, 10_000n], // 0.01%\n [2n, 1000n], // 0.2%\n [3n, 100n], // 3%\n [45n, 100n], // 45%\n] as const\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","export const XL1_PROTOCOL_VERSION_MAJOR = 1 as const\nexport const XL1_PROTOCOL_VERSION_MINOR = 2 as const\nexport const XL1_PROTOCOL_VERSION_PATCH = 0 as const\nexport const XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_VERSION_MINOR}.${XL1_PROTOCOL_VERSION_PATCH}` as const\nexport const XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1_000_000 + XL1_PROTOCOL_VERSION_MINOR * 1000 + XL1_PROTOCOL_VERSION_PATCH\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/**\n * The number of a block\n */\nexport type BlockNumberPayload = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumberPayload = isPayloadOfSchemaType<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayload = AsObjectFactory.create<BlockNumberPayload>(isBlockNumberPayload)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberPayloadWithSources = isPayloadOfSchemaTypeWithSources<BlockNumberPayload>(BlockNumberSchema)\nexport const asBlockNumberPayloadWithSources = AsObjectFactory.create<WithSources<BlockNumberPayload>>(isBlockNumberPayloadWithSources)\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 Hash, isHash } from '@xylabs/hex'\nimport { isError } from '@xylabs/typeof'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { HydratedBoundWitness } from '@xyo-network/archivist-model'\nimport { type BoundWitness } from '@xyo-network/boundwitness-model'\n\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 return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/hex'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { type HydratedBlock } from '../../block/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import { type SignedHydratedTransaction } from '../../transaction/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class HydratedTransactionValidationError extends ValidationError<SignedHydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n"],"mappings":"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","names":["isHashMeta","z","HexZod","z","HexZod","AsObjectFactory","isPayloadOfZodType","z","z","isPayloadOfZodType","AsObjectFactory","HexZod","AsObjectFactory","isPayloadOfZodType","HexZod","isPayloadOfZodType","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfZodType","z","z","z","z","z","z","z","assertError","z","z","assertError","assertError","isDefined","z","z","isDefined","assertError","z","z","assertError","isDefined","z","z","isDefined","assertError","z","isPayloadOfZodType","AsObjectFactory","AsObjectFactory","AsObjectFactory","isAnyPayload","isStorageMeta","AsObjectFactory","isBoundWitness","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isSigned","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isStorageMeta","isSigned","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","isHashMeta","isHashMeta","AsObjectFactory","isHashMeta","z","isHex","AsObjectFactory","isBoundWitness","isSigned","isHashMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType"]}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { type Brand } from '@xylabs/typeof';
|
|
2
|
+
import * as z from 'zod';
|
|
2
3
|
import { type XL1BlockNumber } from './BlockNumber/index.ts';
|
|
4
|
+
export declare const StepIdentityZod: z.ZodObject<{
|
|
5
|
+
block: z.ZodNumber;
|
|
6
|
+
step: z.ZodNumber;
|
|
7
|
+
}, z.core.$strip>;
|
|
3
8
|
export interface StepIdentity {
|
|
4
9
|
block: XL1BlockNumber;
|
|
5
10
|
step: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepIdentity.d.ts","sourceRoot":"","sources":["../../../src/model/StepIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"StepIdentity.d.ts","sourceRoot":"","sources":["../../../src/model/StepIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE9E,eAAO,MAAM,eAAe;;;iBAG1B,CAAA;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,cAAc,CAAA;IAErB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAY,SAAQ,YAAY;CAAG;AAGpD,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAA;CAAE,CAAC,CAAA;AAWvF,eAAO,MAAM,cAAc,GAAI,oBAAoB,MAAM,KAAG,YAAY,GAAG,SAgB1E,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
2
|
+
import type { z } from 'zod';
|
|
3
|
+
import { StepIdentityZod } from '../model/index.ts';
|
|
4
|
+
export declare const StepIdentitySchema: "network.xyo.chain.step.identity";
|
|
5
|
+
export type StepIdentitySchema = typeof StepIdentitySchema;
|
|
6
|
+
export type StepIdentityFields = z.infer<typeof StepIdentityZod>;
|
|
7
|
+
/**
|
|
8
|
+
* A Step Identity Payload
|
|
9
|
+
*/
|
|
10
|
+
export type StepIdentityPayload = Payload<StepIdentityFields, StepIdentitySchema>;
|
|
11
|
+
export declare const isStepIdentityPayload: (x?: unknown | null) => x is StepIdentityPayload;
|
|
12
|
+
export declare const asStepIdentityPayload: import("@xylabs/object").AsTypeFunction<StepIdentityPayload>;
|
|
13
|
+
//# sourceMappingURL=StepIdentityPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepIdentityPayload.d.ts","sourceRoot":"","sources":["../../../src/payload/StepIdentityPayload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,eAAO,MAAM,kBAAkB,EAAG,iCAA0C,CAAA;AAC5E,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA;AAE1D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAA;AAEjF,eAAO,MAAM,qBAAqB,kDAA+E,CAAA;AAEjH,eAAO,MAAM,qBAAqB,8DAAgD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/payload/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/payload/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { type Brand, isUndefined } from '@xylabs/typeof'
|
|
2
|
+
import * as z from 'zod'
|
|
2
3
|
|
|
3
4
|
import { toXL1BlockNumber, type XL1BlockNumber } from './BlockNumber/index.ts'
|
|
4
5
|
|
|
6
|
+
export const StepIdentityZod = z.object({
|
|
7
|
+
block: z.number().int().nonnegative(),
|
|
8
|
+
step: z.number().int().nonnegative(),
|
|
9
|
+
})
|
|
10
|
+
|
|
5
11
|
export interface StepIdentity {
|
|
6
12
|
block: XL1BlockNumber
|
|
7
13
|
// the index of the step into the StepSize array
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AsObjectFactory } from '@xylabs/object'
|
|
2
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
import { isPayloadOfZodType } from '@xyo-network/payload-model'
|
|
4
|
+
import type { z } from 'zod'
|
|
5
|
+
|
|
6
|
+
import { StepIdentityZod } from '../model/index.ts'
|
|
7
|
+
|
|
8
|
+
export const StepIdentitySchema = 'network.xyo.chain.step.identity' as const
|
|
9
|
+
export type StepIdentitySchema = typeof StepIdentitySchema
|
|
10
|
+
|
|
11
|
+
export type StepIdentityFields = z.infer<typeof StepIdentityZod>
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A Step Identity Payload
|
|
15
|
+
*/
|
|
16
|
+
export type StepIdentityPayload = Payload<StepIdentityFields, StepIdentitySchema>
|
|
17
|
+
|
|
18
|
+
export const isStepIdentityPayload = isPayloadOfZodType<StepIdentityPayload>(StepIdentityZod, StepIdentitySchema)
|
|
19
|
+
|
|
20
|
+
export const asStepIdentityPayload = AsObjectFactory.create(isStepIdentityPayload)
|
package/src/payload/index.ts
CHANGED