@xyo-network/xl1-protocol 1.13.13 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/neutral/block/AllowedBlockPayload.d.ts +1 -1
  2. package/dist/neutral/block/AllowedBlockPayload.d.ts.map +1 -1
  3. package/dist/neutral/block/index.d.ts +0 -2
  4. package/dist/neutral/block/index.d.ts.map +1 -1
  5. package/dist/neutral/chain/ChainAnalyzer.d.ts +1 -1
  6. package/dist/neutral/chain/ChainAnalyzer.d.ts.map +1 -1
  7. package/dist/neutral/constants/defaultTransactionFees.d.ts +1 -1
  8. package/dist/neutral/constants/defaultTransactionFees.d.ts.map +1 -1
  9. package/dist/neutral/constants/minTransactionFees.d.ts +1 -1
  10. package/dist/neutral/constants/minTransactionFees.d.ts.map +1 -1
  11. package/dist/neutral/index.d.ts +1 -1
  12. package/dist/neutral/index.d.ts.map +1 -1
  13. package/dist/neutral/index.mjs +520 -231
  14. package/dist/neutral/index.mjs.map +1 -1
  15. package/dist/neutral/repository/TransactionReadRepository.d.ts +1 -1
  16. package/dist/neutral/repository/TransactionReadRepository.d.ts.map +1 -1
  17. package/dist/neutral/repository/TransactionRepositoryIterator.d.ts +1 -1
  18. package/dist/neutral/repository/TransactionRepositoryIterator.d.ts.map +1 -1
  19. package/dist/neutral/repository/TransactionWriteRepository.d.ts +1 -1
  20. package/dist/neutral/repository/TransactionWriteRepository.d.ts.map +1 -1
  21. package/dist/neutral/validation/payload/InBlockPayloadValidationFunction.d.ts +1 -1
  22. package/dist/neutral/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -1
  23. package/dist/neutral/validation/payload/error.d.ts +1 -1
  24. package/dist/neutral/validation/payload/error.d.ts.map +1 -1
  25. package/dist/neutral/validation/transaction/HydratedTransactionStateValidationFunction.d.ts +2 -2
  26. package/dist/neutral/validation/transaction/HydratedTransactionStateValidationFunction.d.ts.map +1 -1
  27. package/dist/neutral/validation/transaction/HydratedTransactionValidationFunction.d.ts +2 -2
  28. package/dist/neutral/validation/transaction/HydratedTransactionValidationFunction.d.ts.map +1 -1
  29. package/dist/neutral/validation/transaction/error.d.ts +1 -1
  30. package/dist/neutral/validation/transaction/error.d.ts.map +1 -1
  31. package/dist/neutral/zod/ArrayBuffer.d.ts +4 -0
  32. package/dist/neutral/zod/ArrayBuffer.d.ts.map +1 -0
  33. package/dist/neutral/zod/BlockBoundWitness.d.ts +63 -0
  34. package/dist/neutral/zod/BlockBoundWitness.d.ts.map +1 -0
  35. package/dist/neutral/zod/BoundWitness.d.ts +111 -0
  36. package/dist/neutral/zod/BoundWitness.d.ts.map +1 -0
  37. package/dist/neutral/zod/Chain.d.ts +4 -0
  38. package/dist/neutral/zod/Chain.d.ts.map +1 -0
  39. package/dist/neutral/zod/HydratedBlock.d.ts +788 -0
  40. package/dist/neutral/zod/HydratedBlock.d.ts.map +1 -0
  41. package/dist/neutral/zod/HydratedTransaction.d.ts +1603 -0
  42. package/dist/neutral/zod/HydratedTransaction.d.ts.map +1 -0
  43. package/dist/neutral/zod/Permission.d.ts +53 -0
  44. package/dist/neutral/zod/Permission.d.ts.map +1 -0
  45. package/dist/neutral/zod/RewardsRangeOptions.d.ts +11 -0
  46. package/dist/neutral/zod/RewardsRangeOptions.d.ts.map +1 -0
  47. package/dist/neutral/zod/Sequence.d.ts +9 -0
  48. package/dist/neutral/zod/Sequence.d.ts.map +1 -0
  49. package/dist/neutral/zod/Stake.d.ts +62 -0
  50. package/dist/neutral/zod/Stake.d.ts.map +1 -0
  51. package/dist/neutral/zod/TimeDomain.d.ts +3 -0
  52. package/dist/neutral/zod/TimeDomain.d.ts.map +1 -0
  53. package/dist/neutral/zod/TransactionBoundWitness.d.ts +416 -0
  54. package/dist/neutral/zod/TransactionBoundWitness.d.ts.map +1 -0
  55. package/dist/neutral/zod/TransactionFees.d.ts +121 -0
  56. package/dist/neutral/zod/TransactionFees.d.ts.map +1 -0
  57. package/dist/neutral/zod/TransferPair.d.ts +3 -0
  58. package/dist/neutral/zod/TransferPair.d.ts.map +1 -0
  59. package/dist/neutral/zod/index.d.ts +15 -0
  60. package/dist/neutral/zod/index.d.ts.map +1 -0
  61. package/package.json +8 -6
  62. package/src/block/AllowedBlockPayload.ts +1 -1
  63. package/src/block/index.ts +0 -2
  64. package/src/chain/ChainAnalyzer.ts +1 -1
  65. package/src/constants/defaultTransactionFees.ts +1 -1
  66. package/src/constants/minTransactionFees.ts +1 -1
  67. package/src/index.ts +1 -1
  68. package/src/repository/TransactionReadRepository.ts +1 -1
  69. package/src/repository/TransactionRepositoryIterator.ts +1 -1
  70. package/src/repository/TransactionWriteRepository.ts +1 -1
  71. package/src/validation/payload/InBlockPayloadValidationFunction.ts +1 -1
  72. package/src/validation/payload/error.ts +1 -1
  73. package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +2 -2
  74. package/src/validation/transaction/HydratedTransactionValidationFunction.ts +2 -2
  75. package/src/validation/transaction/error.ts +1 -1
  76. package/src/zod/ArrayBuffer.ts +42 -0
  77. package/src/zod/BlockBoundWitness.ts +38 -0
  78. package/src/zod/BoundWitness.ts +59 -0
  79. package/src/zod/Chain.ts +6 -0
  80. package/src/zod/HydratedBlock.ts +83 -0
  81. package/src/zod/HydratedTransaction.ts +138 -0
  82. package/src/zod/Permission.ts +23 -0
  83. package/src/zod/RewardsRangeOptions.ts +11 -0
  84. package/src/zod/Sequence.ts +15 -0
  85. package/src/zod/Stake.ts +43 -0
  86. package/src/zod/TimeDomain.ts +7 -0
  87. package/src/zod/TransactionBoundWitness.ts +57 -0
  88. package/src/zod/TransactionFees.ts +57 -0
  89. package/src/zod/TransferPair.ts +6 -0
  90. package/src/zod/index.ts +14 -0
  91. package/dist/neutral/block/BlockBoundWitness.d.ts +0 -33
  92. package/dist/neutral/block/BlockBoundWitness.d.ts.map +0 -1
  93. package/dist/neutral/block/HydratedBlock.d.ts +0 -7
  94. package/dist/neutral/block/HydratedBlock.d.ts.map +0 -1
  95. package/dist/neutral/transaction/AnyHydratedTransaction.d.ts +0 -6
  96. package/dist/neutral/transaction/AnyHydratedTransaction.d.ts.map +0 -1
  97. package/dist/neutral/transaction/HydratedTransaction.d.ts +0 -10
  98. package/dist/neutral/transaction/HydratedTransaction.d.ts.map +0 -1
  99. package/dist/neutral/transaction/HydratedTransactionWithHashMeta.d.ts +0 -7
  100. package/dist/neutral/transaction/HydratedTransactionWithHashMeta.d.ts.map +0 -1
  101. package/dist/neutral/transaction/HydratedTransactionWithStorageMeta.d.ts +0 -7
  102. package/dist/neutral/transaction/HydratedTransactionWithStorageMeta.d.ts.map +0 -1
  103. package/dist/neutral/transaction/SignedHydratedTransaction.d.ts +0 -7
  104. package/dist/neutral/transaction/SignedHydratedTransaction.d.ts.map +0 -1
  105. package/dist/neutral/transaction/SignedHydratedTransactionWithHashMeta.d.ts +0 -7
  106. package/dist/neutral/transaction/SignedHydratedTransactionWithHashMeta.d.ts.map +0 -1
  107. package/dist/neutral/transaction/SignedHydratedTransactionWithStorageMeta.d.ts +0 -7
  108. package/dist/neutral/transaction/SignedHydratedTransactionWithStorageMeta.d.ts.map +0 -1
  109. package/dist/neutral/transaction/TransactionBoundWitness.d.ts +0 -14
  110. package/dist/neutral/transaction/TransactionBoundWitness.d.ts.map +0 -1
  111. package/dist/neutral/transaction/TransactionBoundWitnessDeprecated.d.ts +0 -11
  112. package/dist/neutral/transaction/TransactionBoundWitnessDeprecated.d.ts.map +0 -1
  113. package/dist/neutral/transaction/TransactionFeesFields.d.ts +0 -19
  114. package/dist/neutral/transaction/TransactionFeesFields.d.ts.map +0 -1
  115. package/dist/neutral/transaction/UnsignedHydratedTransaction.d.ts +0 -6
  116. package/dist/neutral/transaction/UnsignedHydratedTransaction.d.ts.map +0 -1
  117. package/dist/neutral/transaction/UnsignedHydratedTransactionWithHashMeta.d.ts +0 -7
  118. package/dist/neutral/transaction/UnsignedHydratedTransactionWithHashMeta.d.ts.map +0 -1
  119. package/dist/neutral/transaction/index.d.ts +0 -13
  120. package/dist/neutral/transaction/index.d.ts.map +0 -1
  121. package/src/block/BlockBoundWitness.ts +0 -64
  122. package/src/block/HydratedBlock.ts +0 -24
  123. package/src/transaction/AnyHydratedTransaction.ts +0 -20
  124. package/src/transaction/HydratedTransaction.ts +0 -29
  125. package/src/transaction/HydratedTransactionWithHashMeta.ts +0 -23
  126. package/src/transaction/HydratedTransactionWithStorageMeta.ts +0 -23
  127. package/src/transaction/SignedHydratedTransaction.ts +0 -22
  128. package/src/transaction/SignedHydratedTransactionWithHashMeta.ts +0 -25
  129. package/src/transaction/SignedHydratedTransactionWithStorageMeta.ts +0 -25
  130. package/src/transaction/TransactionBoundWitness.ts +0 -27
  131. package/src/transaction/TransactionBoundWitnessDeprecated.ts +0 -33
  132. package/src/transaction/TransactionFeesFields.ts +0 -58
  133. package/src/transaction/UnsignedHydratedTransaction.ts +0 -21
  134. package/src/transaction/UnsignedHydratedTransactionWithHashMeta.ts +0 -24
  135. package/src/transaction/index.ts +0 -12
@@ -0,0 +1,121 @@
1
+ import * as z from 'zod';
2
+ export declare const AttoZod: z.ZodBigInt;
3
+ export declare const JsonToAttoZod: z.ZodPipe<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodTransform<bigint, import("@xylabs/sdk-js").Hex>>, z.ZodTransform<import("../xl1/AttoXL1.ts").AttoXL1, bigint>>;
4
+ export declare const AttoToJsonZod: z.ZodPipe<z.ZodBigInt, z.ZodTransform<import("@xylabs/sdk-js").Hex, bigint>>;
5
+ export declare const TransactionFeesHexZod: z.ZodObject<{
6
+ base: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
7
+ gasLimit: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
8
+ gasPrice: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
9
+ priority: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
10
+ }, z.core.$strip>;
11
+ export type TransactionFeesHex = z.infer<typeof TransactionFeesHexZod>;
12
+ export declare const isTransactionFeesHex: (value: unknown) => value is {
13
+ base: import("@xylabs/sdk-js").Hex;
14
+ gasLimit: import("@xylabs/sdk-js").Hex;
15
+ gasPrice: import("@xylabs/sdk-js").Hex;
16
+ priority: import("@xylabs/sdk-js").Hex;
17
+ };
18
+ export declare const asTransactionFeesHex: {
19
+ (value: unknown): {
20
+ base: import("@xylabs/sdk-js").Hex;
21
+ gasLimit: import("@xylabs/sdk-js").Hex;
22
+ gasPrice: import("@xylabs/sdk-js").Hex;
23
+ priority: import("@xylabs/sdk-js").Hex;
24
+ } | undefined;
25
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
26
+ base: import("@xylabs/sdk-js").Hex;
27
+ gasLimit: import("@xylabs/sdk-js").Hex;
28
+ gasPrice: import("@xylabs/sdk-js").Hex;
29
+ priority: import("@xylabs/sdk-js").Hex;
30
+ };
31
+ };
32
+ export declare const toTransactionFeesHex: {
33
+ (value: unknown): {
34
+ base: import("@xylabs/sdk-js").Hex;
35
+ gasLimit: import("@xylabs/sdk-js").Hex;
36
+ gasPrice: import("@xylabs/sdk-js").Hex;
37
+ priority: import("@xylabs/sdk-js").Hex;
38
+ } | undefined;
39
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
40
+ base: import("@xylabs/sdk-js").Hex;
41
+ gasLimit: import("@xylabs/sdk-js").Hex;
42
+ gasPrice: import("@xylabs/sdk-js").Hex;
43
+ priority: import("@xylabs/sdk-js").Hex;
44
+ };
45
+ };
46
+ export declare const TransactionFeesBigIntZod: z.ZodObject<{
47
+ base: z.ZodBigInt;
48
+ gasLimit: z.ZodBigInt;
49
+ gasPrice: z.ZodBigInt;
50
+ priority: z.ZodBigInt;
51
+ }, z.core.$strip>;
52
+ export type TransactionFeesBigInt = z.infer<typeof TransactionFeesBigIntZod>;
53
+ export declare const isTransactionFeesBigInt: (value: unknown) => value is {
54
+ base: bigint;
55
+ gasLimit: bigint;
56
+ gasPrice: bigint;
57
+ priority: bigint;
58
+ };
59
+ export declare const asTransactionFeesBigInt: {
60
+ (value: unknown): {
61
+ base: bigint;
62
+ gasLimit: bigint;
63
+ gasPrice: bigint;
64
+ priority: bigint;
65
+ } | undefined;
66
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
67
+ base: bigint;
68
+ gasLimit: bigint;
69
+ gasPrice: bigint;
70
+ priority: bigint;
71
+ };
72
+ };
73
+ export declare const toTransactionFeesBigInt: {
74
+ (value: unknown): {
75
+ base: bigint;
76
+ gasLimit: bigint;
77
+ gasPrice: bigint;
78
+ priority: bigint;
79
+ } | undefined;
80
+ (value: unknown, assert: import("@xylabs/zod").ZodFactoryConfig): {
81
+ base: bigint;
82
+ gasLimit: bigint;
83
+ gasPrice: bigint;
84
+ priority: bigint;
85
+ };
86
+ };
87
+ export declare const TransactionFeesJsonToBigIntZod: z.ZodPipe<z.ZodObject<{
88
+ base: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
89
+ gasLimit: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
90
+ gasPrice: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
91
+ priority: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
92
+ }, z.core.$strip>, z.ZodTransform<{
93
+ base: bigint;
94
+ gasLimit: bigint;
95
+ gasPrice: bigint;
96
+ priority: bigint;
97
+ }, {
98
+ base: import("@xylabs/sdk-js").Hex;
99
+ gasLimit: import("@xylabs/sdk-js").Hex;
100
+ gasPrice: import("@xylabs/sdk-js").Hex;
101
+ priority: import("@xylabs/sdk-js").Hex;
102
+ }>>;
103
+ export declare const TransactionFeesBigIntToJsonZod: z.ZodPipe<z.ZodObject<{
104
+ base: z.ZodBigInt;
105
+ gasLimit: z.ZodBigInt;
106
+ gasPrice: z.ZodBigInt;
107
+ priority: z.ZodBigInt;
108
+ }, z.core.$strip>, z.ZodTransform<{
109
+ base: import("@xylabs/sdk-js").Hex;
110
+ gasLimit: import("@xylabs/sdk-js").Hex;
111
+ gasPrice: import("@xylabs/sdk-js").Hex;
112
+ priority: import("@xylabs/sdk-js").Hex;
113
+ }, {
114
+ base: bigint;
115
+ gasLimit: bigint;
116
+ gasPrice: bigint;
117
+ priority: bigint;
118
+ }>>;
119
+ export type TransactionFeesJsonToBigIntZodType = z.infer<typeof TransactionFeesJsonToBigIntZod>;
120
+ export type TransactionFeesBigIntToJsonZodType = z.infer<typeof TransactionFeesBigIntToJsonZod>;
121
+ //# sourceMappingURL=TransactionFees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionFees.d.ts","sourceRoot":"","sources":["../../../src/zod/TransactionFees.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB,eAAO,MAAM,OAAO,aAAa,CAAA;AACjC,eAAO,MAAM,aAAa,uNAA+C,CAAA;AAEzE,eAAO,MAAM,aAAa,8EAAkB,CAAA;AAE5C,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,eAAO,MAAM,oBAAoB;;;;;CAAsC,CAAA;AACvE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAA8D,CAAA;AAC/F,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAA8D,CAAA;AAE/F,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE5E,eAAO,MAAM,uBAAuB;;;;;CAAyC,CAAA;AAC7E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;CAAoE,CAAA;AACxG,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;CAAoE,CAAA;AAExG,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;GAKxC,CAAA;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;GAKxC,CAAA;AAEH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAC/F,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import z from 'zod';
2
+ export declare const TransferPairZod: z.ZodTuple<[z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>], null>;
3
+ //# sourceMappingURL=TransferPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferPair.d.ts","sourceRoot":"","sources":["../../../src/zod/TransferPair.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,eAAO,MAAM,eAAe,wLAE1B,CAAA"}
@@ -0,0 +1,15 @@
1
+ export * from './ArrayBuffer.ts';
2
+ export * from './BlockBoundWitness.ts';
3
+ export * from './BoundWitness.ts';
4
+ export * from './Chain.ts';
5
+ export * from './HydratedBlock.ts';
6
+ export * from './HydratedTransaction.ts';
7
+ export * from './Permission.ts';
8
+ export * from './RewardsRangeOptions.ts';
9
+ export * from './Sequence.ts';
10
+ export * from './Stake.ts';
11
+ export * from './TimeDomain.ts';
12
+ export * from './TransactionBoundWitness.ts';
13
+ export * from './TransactionFees.ts';
14
+ export * from './TransferPair.ts';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/zod/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/xl1-protocol",
4
- "version": "1.13.13",
4
+ "version": "1.14.1",
5
5
  "description": "XYO Layer One Protocol",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -46,12 +46,13 @@
46
46
  "@xylabs/logger": "~5.0.39",
47
47
  "@xylabs/object": "~5.0.39",
48
48
  "@xylabs/promise": "~5.0.39",
49
+ "@xylabs/sdk-js": "~5.0.39",
49
50
  "@xylabs/typeof": "~5.0.39",
50
51
  "@xylabs/zod": "~5.0.39",
51
- "@xyo-network/archivist-model": "~5.1.24",
52
- "@xyo-network/boundwitness-model": "~5.1.24",
53
- "@xyo-network/payload-model": "~5.1.24",
54
- "@xyo-network/schema-payload-plugin": "~5.1.24",
52
+ "@xyo-network/archivist-model": "~5.2.0",
53
+ "@xyo-network/boundwitness-model": "~5.2.0",
54
+ "@xyo-network/payload-model": "~5.2.0",
55
+ "@xyo-network/schema-payload-plugin": "~5.2.0",
55
56
  "zod": "~4.1.12"
56
57
  },
57
58
  "devDependencies": {
@@ -61,7 +62,8 @@
61
62
  "@xylabs/eslint-config-flat": "~7.2.8",
62
63
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
63
64
  "@xylabs/tsconfig": "~7.2.8",
64
- "@xyo-network/account-model": "~5.1.24",
65
+ "@xyo-network/account-model": "~5.2.0",
66
+ "@xyo-network/payload-builder": "~5.2.0",
65
67
  "dependency-cruiser": "~17.3.1",
66
68
  "dotenv": "~17.2.3",
67
69
  "eslint": "~9.39.1",
@@ -14,7 +14,7 @@ import {
14
14
  isBridgeDestinationObservation, isBridgeIntent, isBridgeSourceObservation, isChainStakeIntent, isHashPayload, isTimePayload, isTransfer, StepCompleteSchema,
15
15
  TimeSchema, TransferSchema,
16
16
  } from '../payload/index.ts'
17
- import { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'
17
+ import { isTransactionBoundWitness, type TransactionBoundWitness } from '../zod/index.ts'
18
18
 
19
19
  export type AllowedBlockPayload
20
20
  = Transfer
@@ -1,3 +1 @@
1
1
  export * from './AllowedBlockPayload.ts'
2
- export * from './BlockBoundWitness.ts'
3
- export * from './HydratedBlock.ts'
@@ -1,7 +1,7 @@
1
1
  import type { Promisable } from '@xylabs/promise'
2
2
  import type { Payload } from '@xyo-network/payload-model'
3
3
 
4
- import type { HydratedBlock } from '../block/index.ts'
4
+ import type { HydratedBlock } from '../zod/index.ts'
5
5
 
6
6
  export interface ChainAnalyzer<T extends Payload = Payload> {
7
7
  onBlock(block: HydratedBlock): Promisable<boolean>
@@ -1,5 +1,5 @@
1
- import type { TransactionFeesBigInt } from '../transaction/index.ts'
2
1
  import { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'
2
+ import type { TransactionFeesBigInt } from '../zod/index.ts'
3
3
  import { minTransactionFees } from './minTransactionFees.ts'
4
4
 
5
5
  export const defaultTransactionFees: TransactionFeesBigInt = {
@@ -1,5 +1,5 @@
1
- import type { TransactionFeesBigInt } from '../transaction/index.ts'
2
1
  import { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'
2
+ import type { TransactionFeesBigInt } from '../zod/index.ts'
3
3
 
4
4
  export const minTransactionFees: TransactionFeesBigInt = {
5
5
  base: AttoXL1(1000n * AttoXL1ConvertFactor.nano),
package/src/index.ts CHANGED
@@ -9,6 +9,6 @@ export * from './network/index.ts'
9
9
  export * from './OpenTelemetryProviders.ts'
10
10
  export * from './payload/index.ts'
11
11
  export * from './repository/index.ts'
12
- export * from './transaction/index.ts'
13
12
  export * from './validation/index.ts'
14
13
  export * from './xl1/index.ts'
14
+ export * from './zod/index.ts'
@@ -1,4 +1,4 @@
1
- import type { SignedHydratedTransaction, TransactionBoundWitness } from '../transaction/index.ts'
1
+ import type { SignedHydratedTransaction, TransactionBoundWitness } from '../zod/index.ts'
2
2
  import type { ReadRepository } from './Repository.ts'
3
3
 
4
4
  export interface TransactionReadRepository extends ReadRepository<TransactionBoundWitness, SignedHydratedTransaction | undefined> {}
@@ -1,4 +1,4 @@
1
- import type { SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness } from '../transaction/index.ts'
1
+ import type { SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness } from '../zod/index.ts'
2
2
  import type { IterableRepository } from './Repository.ts'
3
3
 
4
4
  export interface TransactionRepositoryIterator extends IterableRepository<TransactionBoundWitness, SignedHydratedTransactionWithStorageMeta | undefined> {}
@@ -1,4 +1,4 @@
1
- import type { SignedHydratedTransaction } from '../transaction/index.ts'
1
+ import type { SignedHydratedTransaction } from '../zod/index.ts'
2
2
  import type { WriteRepository } from './Repository.ts'
3
3
 
4
4
  export interface TransactionWriteRepository extends WriteRepository<SignedHydratedTransaction, boolean> {}
@@ -1,7 +1,7 @@
1
1
  import type { Promisable } from '@xylabs/promise'
2
2
  import type { Payload, WithHashMeta } from '@xyo-network/payload-model'
3
3
 
4
- import type { HydratedBlock } from '../../block/index.ts'
4
+ import type { HydratedBlock } from '../../zod/index.ts'
5
5
  import type { InBlockPayloadValidationError } from './error.ts'
6
6
 
7
7
  export type InBlockPayloadValidationFunction = (
@@ -1,7 +1,7 @@
1
1
  import type { Hash } from '@xylabs/hex'
2
2
  import { type Payload } from '@xyo-network/payload-model'
3
3
 
4
- import { type HydratedBlock } from '../../block/index.ts'
4
+ import type { HydratedBlock } from '../../zod/index.ts'
5
5
  import { isValidationError, ValidationError } from '../error.ts'
6
6
 
7
7
  export class InBlockPayloadValidationError extends ValidationError<Payload> {
@@ -2,7 +2,7 @@ import type { Promisable } from '@xylabs/promise'
2
2
  import type { ReadArchivist } from '@xyo-network/archivist-model'
3
3
 
4
4
  import type { ChainId } from '../../model/index.ts'
5
- import type { HydratedTransactionWithStorageMeta, TransactionBoundWitness } from '../../transaction/index.ts'
5
+ import type { HydratedTransactionWithStorageMeta, TransactionBoundWitness } from '../../zod/index.ts'
6
6
  import type { HydratedTransactionValidationError } from './error.ts'
7
7
 
8
8
  /**
@@ -13,7 +13,7 @@ import type { HydratedTransactionValidationError } from './error.ts'
13
13
  * @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
14
14
  */
15
15
  export type HydratedTransactionStateValidationFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (
16
- hydratedTransaction: HydratedTransactionWithStorageMeta<T>,
16
+ hydratedTransaction: T & HydratedTransactionWithStorageMeta,
17
17
  chainId: ChainId,
18
18
  archivist: ReadArchivist,
19
19
  ) => Promisable<HydratedTransactionValidationError[]>
@@ -1,6 +1,6 @@
1
1
  import type { Promisable } from '@xylabs/promise'
2
2
 
3
- import type { HydratedTransactionWithStorageMeta, TransactionBoundWitness } from '../../transaction/index.ts'
3
+ import type { HydratedTransactionWithStorageMeta, TransactionBoundWitness } from '../../zod/index.ts'
4
4
  import type { HydratedTransactionValidationError } from './error.ts'
5
5
 
6
6
  /**
@@ -10,6 +10,6 @@ import type { HydratedTransactionValidationError } from './error.ts'
10
10
  * @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
11
11
  */
12
12
  export type HydratedTransactionValidationFunction<T extends TransactionBoundWitness = TransactionBoundWitness, TContext extends {} = {}> = (
13
- hydratedTransaction: HydratedTransactionWithStorageMeta<T>,
13
+ hydratedTransaction: T & HydratedTransactionWithStorageMeta,
14
14
  context?: TContext,
15
15
  ) => Promisable<HydratedTransactionValidationError[]>
@@ -1,4 +1,4 @@
1
- import { type SignedHydratedTransaction } from '../../transaction/index.ts'
1
+ import type { SignedHydratedTransaction } from '../../zod/index.ts'
2
2
  import { isValidationError, ValidationError } from '../error.ts'
3
3
 
4
4
  export class HydratedTransactionValidationError extends ValidationError<SignedHydratedTransaction> {}
@@ -0,0 +1,42 @@
1
+ import * as z from 'zod'
2
+
3
+ function base64Encode(u8: Uint8Array): string {
4
+ // Node
5
+ if (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {
6
+ return Buffer.from(u8).toString('base64')
7
+ }
8
+
9
+ // Browser
10
+ let binary = ''
11
+ const chunk = 0x80_00
12
+ for (let i = 0; i < u8.length; i += chunk) {
13
+ // eslint-disable-next-line unicorn/prefer-code-point
14
+ binary += String.fromCharCode(...u8.subarray(i, i + chunk))
15
+ }
16
+ return btoa(binary)
17
+ }
18
+
19
+ /** Base64 decode that works in Node and browsers -> Uint8Array */
20
+ function base64Decode(b64: string): Uint8Array {
21
+ // Node
22
+ if (typeof Buffer !== 'undefined' && typeof Buffer.from === 'function') {
23
+ return new Uint8Array(Buffer.from(b64, 'base64'))
24
+ }
25
+
26
+ // Browser
27
+ const binary = atob(b64)
28
+ const u8 = new Uint8Array(binary.length)
29
+ // eslint-disable-next-line unicorn/prefer-code-point
30
+ for (let i = 0; i < binary.length; i++) u8[i] = binary.charCodeAt(i)
31
+ return u8
32
+ }
33
+
34
+ export const ArrayBufferToJsonZod = z.instanceof(ArrayBuffer).transform((x) => {
35
+ const u8 = new Uint8Array(x)
36
+ return base64Encode(u8)
37
+ })
38
+
39
+ export const JsonToArrayBufferZod = z.string().transform((x) => {
40
+ const u8 = base64Decode(x)
41
+ return u8.buffer
42
+ })
@@ -0,0 +1,38 @@
1
+ import { HashZod } from '@xylabs/sdk-js'
2
+ import * as z from 'zod'
3
+
4
+ import { XL1BlockNumberZod } from '../model/index.ts'
5
+ import {
6
+ BoundWitnessZod,
7
+ SignedBoundWitnessZod,
8
+ UnsignedBoundWitnessZod,
9
+ } from './BoundWitness.ts'
10
+ import { ChainZod } from './Chain.ts'
11
+
12
+ export const BlockBoundWitnessFieldsZod = z.object({
13
+ block: XL1BlockNumberZod,
14
+ chain: ChainZod,
15
+ previous: HashZod.nullable(),
16
+ protocol: z.number(),
17
+ step_hashes: z.array(HashZod).optional(),
18
+ })
19
+
20
+ export const BlockBoundWitnessMetaZod = z.object({ $epoch: z.number() })
21
+
22
+ export const BlockBoundWitnessZod = BoundWitnessZod
23
+ .extend(BlockBoundWitnessFieldsZod.shape)
24
+ .extend(BlockBoundWitnessMetaZod.shape)
25
+
26
+ export type BlockBoundWitness = z.infer<typeof BlockBoundWitnessZod>
27
+
28
+ export const UnsignedBlockBoundWitnessZod = UnsignedBoundWitnessZod
29
+ .extend(BlockBoundWitnessFieldsZod.shape)
30
+ .extend(BlockBoundWitnessMetaZod.shape)
31
+
32
+ export type UnsignedBlockBoundWitness = z.infer<typeof UnsignedBlockBoundWitnessZod>
33
+
34
+ export const SignedBlockBoundWitnessZod = SignedBoundWitnessZod
35
+ .extend(BlockBoundWitnessFieldsZod.shape)
36
+ .extend(BlockBoundWitnessMetaZod.shape)
37
+
38
+ export type SignedBlockBoundWitness = z.infer<typeof SignedBlockBoundWitnessZod>
@@ -0,0 +1,59 @@
1
+ import {
2
+ AddressZod, HashZod, HexZod,
3
+ } from '@xylabs/sdk-js'
4
+ import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'
5
+ import {
6
+ PayloadZod, SchemaZod, StorageMetaZod,
7
+ } from '@xyo-network/payload-model'
8
+ import * as z from 'zod'
9
+
10
+ const BoundWitnessRequiredFieldsZod = z.object({
11
+ addresses: z.array(AddressZod),
12
+ payload_hashes: z.array(HashZod),
13
+ payload_schemas: z.array(SchemaZod),
14
+ previous_hashes: z.array(HashZod.nullable()),
15
+ })
16
+
17
+ const BoundWitnessMetaZod = z.object({
18
+ $destination: AddressZod.optional(),
19
+ $sourceQuery: HashZod.optional(),
20
+ $signatures: z.array(z.union([HexZod, z.null()])),
21
+ })
22
+
23
+ export const BoundWitnessZod = PayloadZod
24
+ .extend({ schema: z.literal(BoundWitnessSchema) })
25
+ .extend(BoundWitnessRequiredFieldsZod.shape)
26
+ .extend(BoundWitnessMetaZod.shape)
27
+ .refine(data => data.$signatures.length === data.addresses.length, { message: '$signatures length must equal addresses length' })
28
+
29
+ export type BoundWitness = z.infer<typeof BoundWitnessZod>
30
+
31
+ export const AnyBoundWitnessZod = BoundWitnessZod
32
+ .catchall(z.any())
33
+
34
+ export type AnyBoundWitness = z.infer<typeof AnyBoundWitnessZod>
35
+
36
+ export const UnsignedBoundWitnessZod = BoundWitnessZod.refine(data => data.$signatures.includes(null), { message: 'all $signatures must be null' })
37
+
38
+ export type UnsignedBoundWitness = z.infer<typeof UnsignedBoundWitnessZod>
39
+
40
+ export const AnyUnsignedBoundWitnessZod = UnsignedBoundWitnessZod
41
+ .catchall(z.any())
42
+
43
+ export type AnyUnsignedBoundWitness = z.infer<typeof AnyUnsignedBoundWitnessZod>
44
+
45
+ export const UnsignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessZod
46
+ .safeExtend(BoundWitnessRequiredFieldsZod.shape)
47
+ .safeExtend(BoundWitnessMetaZod.shape)
48
+ .safeExtend(StorageMetaZod.shape)
49
+
50
+ export const SignedZod = z.object({ $signatures: z.array(HexZod) })
51
+ export const UnsignedZod = z.object({ $signatures: z.array(z.null()) })
52
+
53
+ export const SignedBoundWitnessZod = BoundWitnessZod.refine(data => !data.$signatures.includes(null), { message: 'all $signatures must not be null' })
54
+
55
+ export const SignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod
56
+
57
+ export const AnySignedBoundWitnessZod = UnsignedBoundWitnessZod.catchall(z.any())
58
+
59
+ export const AnySignedBoundWitnessWithStorageMetaZod = UnsignedBoundWitnessWithStorageMetaZod.catchall(z.any())
@@ -0,0 +1,6 @@
1
+ import { AddressRegEx, toAddress } from '@xylabs/sdk-js'
2
+ import * as z from 'zod'
3
+
4
+ import type { ChainId } from '../model/index.ts'
5
+
6
+ export const ChainZod = z.string().toLowerCase().regex(AddressRegEx).transform<ChainId>(v => toAddress(v) as ChainId)
@@ -0,0 +1,83 @@
1
+ import {
2
+ zodAsFactory, zodIsFactory, zodToFactory,
3
+ } from '@xylabs/zod'
4
+ import {
5
+ PayloadZodLoose, WithHashMetaZod, WithStorageMetaZod,
6
+ } from '@xyo-network/payload-model'
7
+ import * as z from 'zod'
8
+
9
+ import {
10
+ BlockBoundWitnessZod,
11
+ SignedBlockBoundWitnessZod,
12
+ } from './BlockBoundWitness.ts'
13
+
14
+ export const HydratedBlockZod = z.tuple([
15
+ BlockBoundWitnessZod,
16
+ z.array(PayloadZodLoose),
17
+ ])
18
+
19
+ export type HydratedBlock = z.infer<typeof HydratedBlockZod>
20
+
21
+ export const isHydratedBlock = zodIsFactory(HydratedBlockZod)
22
+ export const asHydratedBlock = zodAsFactory(HydratedBlockZod, 'asHydratedBlock')
23
+ export const toHydratedBlock = zodToFactory(HydratedBlockZod, 'toHydratedBlock')
24
+
25
+ export const HydratedBlockWithHashMetaZod = z.tuple([
26
+ WithHashMetaZod(BlockBoundWitnessZod),
27
+ z.array(WithHashMetaZod(PayloadZodLoose)),
28
+ ])
29
+
30
+ export type HydratedBlockWithHashMeta = z.infer<typeof HydratedBlockWithHashMetaZod>
31
+
32
+ export const isHydratedBlockWithHashMeta = zodIsFactory(HydratedBlockWithHashMetaZod)
33
+ export const asHydratedBlockWithHashMeta = zodAsFactory(HydratedBlockWithHashMetaZod, 'asHydratedBlockWithHashMeta')
34
+ export const toHydratedBlockWithHashMeta = zodToFactory(HydratedBlockWithHashMetaZod, 'toHydratedBlockWithHashMeta')
35
+
36
+ export const HydratedBlockWithStorageMetaZod = z.tuple([
37
+ WithStorageMetaZod(BlockBoundWitnessZod),
38
+ z.array(WithStorageMetaZod(PayloadZodLoose)),
39
+ ])
40
+
41
+ export type HydratedBlockWithStorageMeta = z.infer<typeof HydratedBlockWithStorageMetaZod>
42
+
43
+ export const isHydratedBlockWithStorageMeta = zodIsFactory(HydratedBlockWithStorageMetaZod)
44
+ export const asHydratedBlockWithStorageMeta = zodAsFactory(HydratedBlockWithStorageMetaZod, 'asHydratedBlockWithStorageMeta')
45
+ export const toHydratedBlockWithStorageMeta = zodToFactory(HydratedBlockWithStorageMetaZod, 'toHydratedBlockWithStorageMeta')
46
+
47
+ export const SignedHydratedBlockZod = z.tuple([
48
+ SignedBlockBoundWitnessZod,
49
+ z.array(PayloadZodLoose),
50
+ ])
51
+
52
+ export type SignedHydratedBlock = z.infer<typeof SignedHydratedBlockZod>
53
+
54
+ export const isSignedHydratedBlock = zodIsFactory(SignedHydratedBlockZod)
55
+ export const asSignedHydratedBlock = zodAsFactory(SignedHydratedBlockZod, 'asSignedHydratedBlock')
56
+ export const toSignedHydratedBlock = zodToFactory(SignedHydratedBlockZod, 'toSignedHydratedBlock')
57
+
58
+ export const SignedHydratedBlockToJsonZod = z.tuple([
59
+ SignedBlockBoundWitnessZod,
60
+ z.array(PayloadZodLoose),
61
+ ])
62
+
63
+ export type SignedHydratedBlockToJson = z.infer<typeof SignedHydratedBlockToJsonZod>
64
+
65
+ export const isSignedHydratedBlockToJson = zodIsFactory(SignedHydratedBlockToJsonZod)
66
+ export const asSignedHydratedBlockToJson = zodAsFactory(SignedHydratedBlockToJsonZod, 'asSignedHydratedBlockToJson')
67
+ export const toSignedHydratedBlockToJson = zodToFactory(SignedHydratedBlockToJsonZod, 'toSignedHydratedBlockToJson')
68
+
69
+ export const SignedHydratedBlockWithHashMetaZod = z.tuple([
70
+ WithHashMetaZod(SignedBlockBoundWitnessZod),
71
+ z.array(WithHashMetaZod(PayloadZodLoose)),
72
+ ])
73
+
74
+ export type SignedHydratedBlockWithHashMeta = z.infer<typeof SignedHydratedBlockWithHashMetaZod>
75
+
76
+ export const isSignedHydratedBlockWithHashMeta = zodIsFactory(SignedHydratedBlockWithHashMetaZod)
77
+ export const asSignedHydratedBlockWithHashMeta = zodAsFactory(SignedHydratedBlockWithHashMetaZod, 'asSignedHydratedBlockWithHashMeta')
78
+ export const toSignedHydratedBlockWithHashMeta = zodToFactory(SignedHydratedBlockWithHashMetaZod, 'toSignedHydratedBlockWithHashMeta')
79
+
80
+ export const SignedHydratedBlockWithStorageMetaZod = z.tuple([
81
+ WithStorageMetaZod(SignedBlockBoundWitnessZod),
82
+ z.array(WithStorageMetaZod(PayloadZodLoose)),
83
+ ])