@xyo-network/xl1-protocol-sdk 1.16.23 → 1.16.25

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 (182) hide show
  1. package/dist/neutral/block/hydrate/blockPayloadsFromHydratedBlock.d.ts +3 -3
  2. package/dist/neutral/block/hydrate/blockPayloadsFromHydratedBlock.d.ts.map +1 -1
  3. package/dist/neutral/block/hydrate/flattenHydratedBlock.d.ts +3 -3
  4. package/dist/neutral/block/hydrate/flattenHydratedBlock.d.ts.map +1 -1
  5. package/dist/neutral/block/hydrate/flattenHydratedBlocks.d.ts +3 -3
  6. package/dist/neutral/block/hydrate/flattenHydratedBlocks.d.ts.map +1 -1
  7. package/dist/neutral/block/hydrate/hydrateBlock.d.ts +2 -2
  8. package/dist/neutral/block/hydrate/hydrateBlock.d.ts.map +1 -1
  9. package/dist/neutral/block/hydrate/transactionsFromHydratedBlock.d.ts +2 -3
  10. package/dist/neutral/block/hydrate/transactionsFromHydratedBlock.d.ts.map +1 -1
  11. package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts +3 -2
  12. package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts.map +1 -1
  13. package/dist/neutral/config/Config.d.ts +10 -4
  14. package/dist/neutral/config/Config.d.ts.map +1 -1
  15. package/dist/neutral/config/Producer.d.ts +0 -1
  16. package/dist/neutral/config/Producer.d.ts.map +1 -1
  17. package/dist/neutral/config/Services.d.ts +7 -0
  18. package/dist/neutral/config/Services.d.ts.map +1 -0
  19. package/dist/neutral/config/Telemetry.d.ts +16 -0
  20. package/dist/neutral/config/Telemetry.d.ts.map +1 -1
  21. package/dist/neutral/index.d.ts +0 -1
  22. package/dist/neutral/index.d.ts.map +1 -1
  23. package/dist/neutral/index.mjs +607 -911
  24. package/dist/neutral/index.mjs.map +1 -1
  25. package/dist/neutral/instances/transaction/HydratedTransaction.d.ts +2 -3
  26. package/dist/neutral/instances/transaction/HydratedTransaction.d.ts.map +1 -1
  27. package/dist/neutral/instances/transaction/TransactionFields.d.ts +3 -2
  28. package/dist/neutral/instances/transaction/TransactionFields.d.ts.map +1 -1
  29. package/dist/neutral/model/PayloadBundle/bundledPayloadToHydratedTransaction.d.ts +4 -0
  30. package/dist/neutral/model/PayloadBundle/bundledPayloadToHydratedTransaction.d.ts.map +1 -0
  31. package/dist/neutral/model/PayloadBundle/hydratedTransactionToPayloadBundle.d.ts +4 -0
  32. package/dist/neutral/model/PayloadBundle/hydratedTransactionToPayloadBundle.d.ts.map +1 -0
  33. package/dist/neutral/model/PayloadBundle/index.d.ts +3 -0
  34. package/dist/neutral/model/PayloadBundle/index.d.ts.map +1 -0
  35. package/dist/neutral/model/index.d.ts +1 -0
  36. package/dist/neutral/model/index.d.ts.map +1 -1
  37. package/dist/neutral/primitives/summary/schemas/schemasStepSummaryFromRange.d.ts +2 -2
  38. package/dist/neutral/primitives/summary/schemas/schemasStepSummaryFromRange.d.ts.map +1 -1
  39. package/dist/neutral/primitives/transaction/elevatedPayloads.d.ts +3 -3
  40. package/dist/neutral/primitives/transaction/elevatedPayloads.d.ts.map +1 -1
  41. package/dist/neutral/provider/TransactionSubmitter.d.ts +3 -3
  42. package/dist/neutral/provider/TransactionSubmitter.d.ts.map +1 -1
  43. package/dist/neutral/provider/XyoGatewayRunner.d.ts +3 -3
  44. package/dist/neutral/provider/XyoGatewayRunner.d.ts.map +1 -1
  45. package/dist/neutral/provider/signer/XyoSigner.d.ts +2 -2
  46. package/dist/neutral/provider/signer/XyoSigner.d.ts.map +1 -1
  47. package/dist/neutral/provider/viewer/XyoViewer.d.ts +5 -2
  48. package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -1
  49. package/dist/neutral/services/BlockProducerService.d.ts +2 -2
  50. package/dist/neutral/services/BlockProducerService.d.ts.map +1 -1
  51. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +18 -6
  52. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -1
  53. package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts +2 -2
  54. package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts.map +1 -1
  55. package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts +9 -0
  56. package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts.map +1 -0
  57. package/dist/neutral/simple/mempool/index.d.ts +2 -0
  58. package/dist/neutral/simple/mempool/index.d.ts.map +1 -0
  59. package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +3 -4
  60. package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts.map +1 -1
  61. package/dist/neutral/transaction/buildTransaction.d.ts +2 -2
  62. package/dist/neutral/transaction/buildTransaction.d.ts.map +1 -1
  63. package/dist/neutral/transaction/buildUnsignedTransaction.d.ts +2 -2
  64. package/dist/neutral/transaction/buildUnsignedTransaction.d.ts.map +1 -1
  65. package/dist/neutral/transaction/hydrateTransaction.d.ts.map +1 -1
  66. package/dist/neutral/transaction/primitives/transactionBlockByteCount.d.ts +2 -2
  67. package/dist/neutral/transaction/primitives/transactionBlockByteCount.d.ts.map +1 -1
  68. package/dist/neutral/transaction/primitives/transactionElevatedPayloads.d.ts +2 -2
  69. package/dist/neutral/transaction/primitives/transactionElevatedPayloads.d.ts.map +1 -1
  70. package/dist/neutral/transaction/primitives/transactionRequiredGas.d.ts +3 -3
  71. package/dist/neutral/transaction/primitives/transactionRequiredGas.d.ts.map +1 -1
  72. package/dist/neutral/transaction/script.d.ts +3 -3
  73. package/dist/neutral/transaction/script.d.ts.map +1 -1
  74. package/dist/neutral/transaction/signTransaction.d.ts +23 -3
  75. package/dist/neutral/transaction/signTransaction.d.ts.map +1 -1
  76. package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts +2 -2
  77. package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -1
  78. package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts +2 -2
  79. package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -1
  80. package/dist/neutral/viewers/AccountBalance.d.ts +22 -28
  81. package/dist/neutral/viewers/AccountBalance.d.ts.map +1 -1
  82. package/dist/neutral/viewers/Block.d.ts +5 -5
  83. package/dist/neutral/viewers/Block.d.ts.map +1 -1
  84. package/dist/neutral/viewers/Mempool.d.ts +14 -0
  85. package/dist/neutral/viewers/Mempool.d.ts.map +1 -0
  86. package/dist/neutral/viewers/index.d.ts +1 -0
  87. package/dist/neutral/viewers/index.d.ts.map +1 -1
  88. package/package.json +17 -17
  89. package/src/block/hydrate/blockPayloadsFromHydratedBlock.ts +5 -5
  90. package/src/block/hydrate/flattenHydratedBlock.ts +3 -3
  91. package/src/block/hydrate/flattenHydratedBlocks.ts +3 -3
  92. package/src/block/hydrate/hydrateBlock.ts +2 -2
  93. package/src/block/hydrate/transactionsFromHydratedBlock.ts +4 -6
  94. package/src/block/primitives/blockFromBlockNumber.ts +27 -7
  95. package/src/config/Config.ts +2 -2
  96. package/src/config/Producer.ts +0 -6
  97. package/src/config/Services.ts +17 -0
  98. package/src/config/Telemetry.ts +19 -0
  99. package/src/index.ts +1 -1
  100. package/src/instances/transaction/HydratedTransaction.ts +3 -5
  101. package/src/instances/transaction/TransactionFields.ts +4 -4
  102. package/src/model/PayloadBundle/bundledPayloadToHydratedTransaction.ts +14 -0
  103. package/src/model/PayloadBundle/hydratedTransactionToPayloadBundle.ts +18 -0
  104. package/src/model/PayloadBundle/index.ts +2 -0
  105. package/src/model/index.ts +1 -0
  106. package/src/primitives/summary/balances/balancesSummary.ts +1 -1
  107. package/src/primitives/summary/schemas/schemasStepSummaryFromRange.ts +8 -8
  108. package/src/primitives/summary/schemas/schemasSummary.ts +1 -1
  109. package/src/primitives/summary/transfers/transfersSummary.ts +1 -1
  110. package/src/primitives/transaction/elevatedPayloads.ts +4 -4
  111. package/src/provider/TransactionSubmitter.ts +3 -2
  112. package/src/provider/XyoGatewayRunner.ts +3 -2
  113. package/src/provider/signer/XyoSigner.ts +4 -3
  114. package/src/provider/viewer/XyoViewer.ts +5 -1
  115. package/src/services/BlockProducerService.ts +2 -2
  116. package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +31 -13
  117. package/src/simple/gateway/SimpleXyoGatewayRunner.ts +11 -8
  118. package/src/simple/mempool/SimpleMempoolViewer.ts +37 -0
  119. package/src/simple/mempool/index.ts +1 -0
  120. package/src/simple/signer/SimpleXyoSigner.ts +10 -7
  121. package/src/transaction/buildTransaction.ts +8 -6
  122. package/src/transaction/buildUnsignedTransaction.ts +5 -4
  123. package/src/transaction/hydrateTransaction.ts +2 -2
  124. package/src/transaction/primitives/transactionBlockByteCount.ts +2 -2
  125. package/src/transaction/primitives/transactionElevatedPayloads.ts +2 -2
  126. package/src/transaction/primitives/transactionRequiredGas.ts +3 -3
  127. package/src/transaction/script.ts +3 -3
  128. package/src/transaction/signTransaction.ts +12 -9
  129. package/src/validation/block/HydratedBlockStateValidationFunction.ts +2 -2
  130. package/src/validation/block/HydratedBlockValidationFunction.ts +2 -2
  131. package/src/viewers/AccountBalance.ts +5 -6
  132. package/src/viewers/Block.ts +5 -5
  133. package/src/viewers/Mempool.ts +18 -0
  134. package/src/viewers/index.ts +1 -0
  135. package/dist/neutral/config/App.d.ts +0 -6
  136. package/dist/neutral/config/App.d.ts.map +0 -1
  137. package/dist/neutral/zod/ArrayBuffer.d.ts +0 -4
  138. package/dist/neutral/zod/ArrayBuffer.d.ts.map +0 -1
  139. package/dist/neutral/zod/BlockBoundWitness.d.ts +0 -44
  140. package/dist/neutral/zod/BlockBoundWitness.d.ts.map +0 -1
  141. package/dist/neutral/zod/BoundWitness.d.ts +0 -123
  142. package/dist/neutral/zod/BoundWitness.d.ts.map +0 -1
  143. package/dist/neutral/zod/Chain.d.ts +0 -4
  144. package/dist/neutral/zod/Chain.d.ts.map +0 -1
  145. package/dist/neutral/zod/HydratedBlock.d.ts +0 -133
  146. package/dist/neutral/zod/HydratedBlock.d.ts.map +0 -1
  147. package/dist/neutral/zod/HydratedTransaction.d.ts +0 -210
  148. package/dist/neutral/zod/HydratedTransaction.d.ts.map +0 -1
  149. package/dist/neutral/zod/Permission.d.ts +0 -53
  150. package/dist/neutral/zod/Permission.d.ts.map +0 -1
  151. package/dist/neutral/zod/RewardsRangeOptions.d.ts +0 -11
  152. package/dist/neutral/zod/RewardsRangeOptions.d.ts.map +0 -1
  153. package/dist/neutral/zod/Sequence.d.ts +0 -9
  154. package/dist/neutral/zod/Sequence.d.ts.map +0 -1
  155. package/dist/neutral/zod/Stake.d.ts +0 -62
  156. package/dist/neutral/zod/Stake.d.ts.map +0 -1
  157. package/dist/neutral/zod/TimeDomain.d.ts +0 -3
  158. package/dist/neutral/zod/TimeDomain.d.ts.map +0 -1
  159. package/dist/neutral/zod/TransactionBoundWitness.d.ts +0 -75
  160. package/dist/neutral/zod/TransactionBoundWitness.d.ts.map +0 -1
  161. package/dist/neutral/zod/TransactionFees.d.ts +0 -53
  162. package/dist/neutral/zod/TransactionFees.d.ts.map +0 -1
  163. package/dist/neutral/zod/TransferPair.d.ts +0 -3
  164. package/dist/neutral/zod/TransferPair.d.ts.map +0 -1
  165. package/dist/neutral/zod/index.d.ts +0 -15
  166. package/dist/neutral/zod/index.d.ts.map +0 -1
  167. package/src/config/App.ts +0 -13
  168. package/src/zod/ArrayBuffer.ts +0 -42
  169. package/src/zod/BlockBoundWitness.ts +0 -36
  170. package/src/zod/BoundWitness.ts +0 -56
  171. package/src/zod/Chain.ts +0 -5
  172. package/src/zod/HydratedBlock.ts +0 -32
  173. package/src/zod/HydratedTransaction.ts +0 -37
  174. package/src/zod/Permission.ts +0 -23
  175. package/src/zod/RewardsRangeOptions.ts +0 -10
  176. package/src/zod/Sequence.ts +0 -15
  177. package/src/zod/Stake.ts +0 -43
  178. package/src/zod/TimeDomain.ts +0 -7
  179. package/src/zod/TransactionBoundWitness.ts +0 -42
  180. package/src/zod/TransactionFees.ts +0 -45
  181. package/src/zod/TransferPair.ts +0 -6
  182. package/src/zod/index.ts +0 -14
@@ -3,46 +3,40 @@ import { type AttoXL1, type XL1BlockRange } from '@xyo-network/xl1-protocol';
3
3
  import z from 'zod';
4
4
  export declare const AccountBalanceHistoryItemZod: z.ZodTuple<[z.ZodObject<{
5
5
  schema: z.ZodLiteral<"network.xyo.boundwitness">;
6
- addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>>;
7
- payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>;
8
- payload_schemas: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<string & {
9
- __schema: true;
10
- }, string>>]>>;
11
- previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>>;
12
- $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>>;
13
- $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>;
6
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
7
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
8
+ payload_schemas: z.ZodArray<z.ZodString>;
9
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
10
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
11
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
14
12
  $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
15
- _sequence: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").LocalSequence, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").QualifiedSequence, string>>]>>;
16
13
  block: z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").XL1BlockNumber, number>>;
17
- chain: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/xl1-protocol").ChainId, string>>;
18
- previous: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>;
19
- protocol: z.ZodNumber;
20
- step_hashes: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>>;
14
+ chain: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
15
+ previous: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
16
+ protocol: z.ZodOptional<z.ZodNumber>;
17
+ step_hashes: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
21
18
  $epoch: z.ZodNumber;
22
19
  _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
23
20
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
24
21
  }, z.z.core.$strip>, z.ZodNullable<z.ZodObject<{
25
22
  schema: z.ZodLiteral<"network.xyo.boundwitness">;
26
- addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>>;
27
- payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>;
28
- payload_schemas: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodPipe<z.ZodString, z.ZodTransform<string & {
29
- __schema: true;
30
- }, string>>]>>;
31
- previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>>;
32
- $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>>;
33
- $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<Hash, string>>>;
23
+ addresses: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
24
+ payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
25
+ payload_schemas: z.ZodArray<z.ZodString>;
26
+ previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>>;
27
+ $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>>;
28
+ $sourceQuery: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
34
29
  $signatures: z.ZodArray<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>, z.ZodNull]>>;
35
- _sequence: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").LocalSequence, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").QualifiedSequence, string>>]>>;
36
- nbf: z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").BlockNumber, number>>;
37
- exp: z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").BlockNumber, number>>;
30
+ nbf: z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").XL1BlockNumber, number>>;
31
+ exp: z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").XL1BlockNumber, number>>;
38
32
  fees: z.ZodObject<{
39
33
  base: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
40
34
  gasLimit: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
41
35
  gasPrice: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
42
36
  priority: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
43
37
  }, z.z.core.$strip>;
44
- chain: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/xl1-protocol").ChainId, string>>;
45
- from: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/xl1-protocol").ChainId, string>>;
38
+ chain: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
39
+ from: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Address, string>>;
46
40
  script: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
41
  _hash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
48
42
  _dataHash: z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").Hash, string>>;
@@ -58,11 +52,11 @@ export declare const AccountBalanceHistoryItemZod: z.ZodTuple<[z.ZodObject<{
58
52
  }, z.z.core.$strip>], null>;
59
53
  export type AccountBalanceHistoryItem = z.infer<typeof AccountBalanceHistoryItemZod>;
60
54
  export interface AccountBalanceViewerMethods {
61
- accountBalance(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AttoXL1>;
62
- accountBalanceHistory(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>;
63
55
  accountsBalances(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AttoXL1>>>;
64
56
  accountsBalancesHistory(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AccountBalanceHistoryItem[]>>>;
65
57
  }
66
58
  export interface AccountBalanceViewer extends AccountBalanceViewerMethods {
59
+ accountBalance(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AttoXL1>;
60
+ accountBalanceHistory(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>;
67
61
  }
68
62
  //# sourceMappingURL=AccountBalance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccountBalance.d.ts","sourceRoot":"","sources":["../../../src/viewers/AccountBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,UAAU,EAC1B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,CAAC,MAAM,KAAK,CAAA;AAInB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAIvC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEpF,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACzF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAA;IAEpH,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACvH,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAA;CACnJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;CAAG"}
1
+ {"version":3,"file":"AccountBalance.d.ts","sourceRoot":"","sources":["../../../src/viewers/AccountBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,UAAU,EAC1B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAA;AAElC,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAIvC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEpF,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACvH,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAA;CACnJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;IACvE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACzF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAA;CACrH"}
@@ -1,10 +1,10 @@
1
1
  import type { Hash, Promisable } from '@xylabs/sdk-js';
2
- import type { HydratedBlock, XL1BlockNumber } from '@xyo-network/xl1-protocol';
2
+ import type { SignedHydratedBlockWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol';
3
3
  export interface BlockViewierMethods {
4
- blockByHash(hash: Hash): Promisable<HydratedBlock | null>;
5
- blockByNumber(block: XL1BlockNumber): Promisable<HydratedBlock | null>;
6
- blocksByHash(hash: Hash, limit?: number): Promisable<HydratedBlock[]>;
7
- currentBlock(): Promisable<HydratedBlock>;
4
+ blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>;
5
+ blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>;
6
+ blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>;
7
+ currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>;
8
8
  currentBlockHash(): Promisable<Hash>;
9
9
  currentBlockNumber(): Promisable<XL1BlockNumber>;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/viewers/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE9E,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACzD,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACtE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;IAErE,YAAY,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACzC,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACpC,kBAAkB,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,WAAY,SAAQ,mBAAmB;CAAG"}
1
+ {"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/viewers/Block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEhG,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAA;IAC3E,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAA;IACxF,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAA;IAEvF,YAAY,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAA;IAC3D,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACpC,kBAAkB,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,WAAY,SAAQ,mBAAmB;CAAG"}
@@ -0,0 +1,14 @@
1
+ import type { SignedHydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol';
2
+ import z from 'zod';
3
+ export declare const PendingTransactionsOptionsZod: z.ZodObject<{
4
+ cursor: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").Hash, string>>>;
5
+ limit: z.ZodOptional<z.ZodNumber>;
6
+ window: z.ZodOptional<z.ZodTuple<[z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").XL1BlockNumber, number>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<import("@xyo-network/xl1-protocol").XL1BlockNumber, number>>], null>>;
7
+ }, z.z.core.$strip>;
8
+ export type PendingTransactionsOptions = z.infer<typeof PendingTransactionsOptionsZod>;
9
+ export interface MempoolViewerMethods {
10
+ pendingTransactions(options?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>;
11
+ }
12
+ export interface MempoolViewer extends MempoolViewerMethods {
13
+ }
14
+ //# sourceMappingURL=Mempool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mempool.d.ts","sourceRoot":"","sources":["../../../src/viewers/Mempool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,2BAA2B,CAAA;AAEtF,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,eAAO,MAAM,6BAA6B;;;;mBAIxC,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEtF,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,qCAAqC,EAAE,CAAC,CAAA;CAC5G;AAED,MAAM,WAAW,aAAc,SAAQ,oBAAoB;CAAG"}
@@ -3,6 +3,7 @@ export * from './Block.ts';
3
3
  export * from './Chain.ts';
4
4
  export * from './ChainContract.ts';
5
5
  export * from './Fork.ts';
6
+ export * from './Mempool.ts';
6
7
  export * from './NetworkStakeStepReward.ts';
7
8
  export * from './Stake.ts';
8
9
  export * from './StakeEvents.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,6BAA6B,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,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-sdk",
4
- "version": "1.16.23",
4
+ "version": "1.16.25",
5
5
  "description": "XYO Layer One SDK Protocol",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -39,19 +39,19 @@
39
39
  "!**/*.test.*"
40
40
  ],
41
41
  "dependencies": {
42
- "@xylabs/sdk-js": "~5.0.39",
43
- "@xylabs/telemetry": "~5.0.39",
44
- "@xyo-network/account": "~5.1.24",
45
- "@xyo-network/account-model": "~5.1.24",
46
- "@xyo-network/archivist-memory": "~5.1.24",
47
- "@xyo-network/archivist-model": "~5.1.24",
48
- "@xyo-network/boundwitness-builder": "~5.1.24",
49
- "@xyo-network/boundwitness-model": "~5.1.24",
50
- "@xyo-network/payload-builder": "~5.1.24",
51
- "@xyo-network/payload-model": "~5.1.24",
52
- "@xyo-network/wallet": "~5.1.24",
53
- "@xyo-network/wallet-model": "~5.1.24",
54
- "@xyo-network/xl1-protocol": "~1.13.13",
42
+ "@xylabs/sdk-js": "~5.0.42",
43
+ "@xylabs/telemetry": "~5.0.42",
44
+ "@xyo-network/account": "~5.2.10",
45
+ "@xyo-network/account-model": "~5.2.10",
46
+ "@xyo-network/archivist-memory": "~5.2.10",
47
+ "@xyo-network/archivist-model": "~5.2.10",
48
+ "@xyo-network/boundwitness-builder": "~5.2.10",
49
+ "@xyo-network/boundwitness-model": "~5.2.10",
50
+ "@xyo-network/payload-builder": "~5.2.10",
51
+ "@xyo-network/payload-model": "~5.2.10",
52
+ "@xyo-network/wallet": "~5.2.10",
53
+ "@xyo-network/wallet-model": "~5.2.10",
54
+ "@xyo-network/xl1-protocol": "~1.14.13",
55
55
  "async-mutex": "~0.5.0",
56
56
  "ethers": "~6.15.0",
57
57
  "lru-cache": "^11.2.2",
@@ -61,12 +61,12 @@
61
61
  "@types/node": "~24.10.1",
62
62
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
63
63
  "@xylabs/tsconfig": "~7.2.8",
64
- "@xyo-network/account": "~5.1.24",
65
- "@xyo-network/boundwitness-validator": "~5.1.24",
64
+ "@xyo-network/account": "~5.2.10",
65
+ "@xyo-network/boundwitness-validator": "~5.2.10",
66
66
  "axios": "^1.13.2",
67
67
  "eslint": "^9.39.1",
68
68
  "typescript": "~5.9.3",
69
- "vitest": "~4.0.10"
69
+ "vitest": "~4.0.13"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "axios": "^1.13.2"
@@ -1,11 +1,11 @@
1
1
  import { assertEx } from '@xylabs/sdk-js'
2
- import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
3
- import type { HydratedBlock } from '@xyo-network/xl1-protocol'
4
- import { isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
2
+ import type { WithStorageMeta } from '@xyo-network/payload-model'
3
+ import type { HydratedBlockWithStorageMeta } from '@xyo-network/xl1-protocol'
4
+ import { isTransactionBoundWitness } from '@xyo-network/xl1-protocol'
5
5
 
6
- export const blockPayloadsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<Payload>[] => {
6
+ export const blockPayloadsFromHydratedBlock = (block: HydratedBlockWithStorageMeta): WithStorageMeta[] => {
7
7
  return block[0].payload_hashes.map(hash => assertEx(
8
8
  block[1].find(p => p._hash === hash),
9
9
  () => `missing payload ${hash}`,
10
- )).filter(x => !isTransactionBoundWitnessWithStorageMeta(x))
10
+ )).filter(x => !isTransactionBoundWitness(x))
11
11
  }
@@ -1,7 +1,7 @@
1
- import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
2
- import type { HydratedBlock } from '@xyo-network/xl1-protocol'
1
+ import type { Payload } from '@xyo-network/payload-model'
2
+ import type { BlockBoundWitness } from '@xyo-network/xl1-protocol'
3
3
 
4
- export const flattenHydratedBlock = (hydratedBlock: HydratedBlock): WithStorageMeta<Payload>[] => {
4
+ export const flattenHydratedBlock = <B extends BlockBoundWitness, P extends Payload>(hydratedBlock: [B, P[]]): (P | B)[] => {
5
5
  const [blk, blkPayloads] = hydratedBlock
6
6
  return [...blkPayloads, blk]
7
7
  }
@@ -1,7 +1,7 @@
1
- import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
2
- import type { HydratedBlock } from '@xyo-network/xl1-protocol'
1
+ import type { Payload, WithHashMeta } from '@xyo-network/payload-model'
2
+ import type { HydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol'
3
3
 
4
4
  import { flattenHydratedBlock } from './flattenHydratedBlock.ts'
5
5
 
6
- export const flattenHydratedBlocks = (hydratedBlocks: HydratedBlock[]): WithStorageMeta<Payload>[] =>
6
+ export const flattenHydratedBlocks = (hydratedBlocks: HydratedBlockWithHashMeta[]): WithHashMeta<Payload>[] =>
7
7
  hydratedBlocks.flatMap(blk => flattenHydratedBlock(blk))
@@ -1,6 +1,6 @@
1
1
  import type { Hash } from '@xylabs/sdk-js'
2
2
  import { assertEx } from '@xylabs/sdk-js'
3
- import type { HydratedBlock } from '@xyo-network/xl1-protocol'
3
+ import type { HydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol'
4
4
  import { asBlockBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
5
5
 
6
6
  import type { ChainStoreRead } from '../../model/index.ts'
@@ -11,7 +11,7 @@ export const hydrateBlock = async (
11
11
  hash: Hash,
12
12
  maxDepth: number = 1,
13
13
  minDepth = maxDepth,
14
- ): Promise<HydratedBlock> => {
14
+ ): Promise<HydratedBlockWithHashMeta> => {
15
15
  assertEx(maxDepth >= 0, () => 'maxDepth must be greater than or equal to 0')
16
16
  assertEx(minDepth >= 0, () => 'minDepth must be greater than or equal to 0')
17
17
  assertEx(maxDepth >= minDepth, () => 'maxDepth must be greater than or equal to minDepth')
@@ -1,8 +1,6 @@
1
- import { filterAs } from '@xylabs/sdk-js'
2
- import type { WithStorageMeta } from '@xyo-network/payload-model'
3
- import type { HydratedBlock, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
4
- import { asTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
1
+ import type { HydratedBlock, TransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
2
+ import { isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
5
3
 
6
- export const transactionsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<TransactionBoundWitness>[] => {
7
- return filterAs(block[1], asTransactionBoundWitnessWithStorageMeta)
4
+ export const transactionsFromHydratedBlock = (block: HydratedBlock): TransactionBoundWitnessWithStorageMeta[] => {
5
+ return block[1].filter(isTransactionBoundWitnessWithStorageMeta)
8
6
  }
@@ -1,17 +1,28 @@
1
- import { asHash, type Hash } from '@xylabs/sdk-js'
1
+ import {
2
+ asHash, type Hash, isDefined,
3
+ } from '@xylabs/sdk-js'
2
4
  import { toSafeJsonString } from '@xylabs/sdk-js'
3
- import type { WithStorageMeta } from '@xyo-network/payload-model'
5
+ import type { Signed } from '@xyo-network/boundwitness-model'
6
+ import type { WithHashMeta } from '@xyo-network/payload-model'
4
7
  import type { BlockBoundWitness, XL1BlockNumber } from '@xyo-network/xl1-protocol'
5
- import { asBlockBoundWitnessWithStorageMeta, StepSizes } from '@xyo-network/xl1-protocol'
8
+ import {
9
+ asSignedBlockBoundWitnessWithStorageMeta, SignedBlockBoundWitnessWithHashMetaZod, StepSizes,
10
+ } from '@xyo-network/xl1-protocol'
6
11
 
7
12
  import { type ChainContextRead, withContextCacheResponse } from '../../model/index.ts'
8
13
 
9
- export async function blockFromBlockNumber(context: ChainContextRead, blockNumber: XL1BlockNumber): Promise<WithStorageMeta<BlockBoundWitness>> {
14
+ export async function blockFromBlockNumber(context: ChainContextRead, blockNumber: XL1BlockNumber): Promise<WithHashMeta<Signed<BlockBoundWitness>>> {
10
15
  const cacheKey = `${blockNumber}`
11
16
  return await withContextCacheResponse(context, 'blockFromBlockNumber', cacheKey, async () => {
12
17
  const [headHash] = await context.head()
13
18
  const result = await context.store.chainMap.get(headHash)
14
- let currentBlock = asBlockBoundWitnessWithStorageMeta(result, () => `Head block not found for hash: ${headHash}`, { required: true })
19
+ if (!isDefined(result)) {
20
+ throw new Error(`Head block not found for hash: ${headHash}`)
21
+ }
22
+ let currentBlock = asSignedBlockBoundWitnessWithStorageMeta(
23
+ result,
24
+ () => `Found Payload is not a Signed<BlockBoundWitness>: ${JSON.stringify(result, null, 2)}`,
25
+ )
15
26
  if (currentBlock.block < blockNumber) {
16
27
  throw new Error(`Block number ${blockNumber} is greater than head ${currentBlock.block}.`)
17
28
  }
@@ -22,13 +33,22 @@ export async function blockFromBlockNumber(context: ChainContextRead, blockNumbe
22
33
  const possibleJumpBlockNumber = currentBlock.block - (currentBlock.block % stepSize) - 1
23
34
  if (possibleJumpBlockNumber >= blockNumber && possibleJumpBlockNumber <= jumpBlockNumber) {
24
35
  jumpBlockNumber = possibleJumpBlockNumber
25
- jumpHash = asHash(currentBlock.step_hashes.at(step), () => `Step hash not found for step ${step} in block ${currentBlock.block}`)
36
+ jumpHash = asHash(currentBlock.step_hashes?.at(step), () => `Step hash not found for step ${step} in block ${currentBlock.block}`)
26
37
  }
27
38
  }
28
39
  const newBlock = await context.store.chainMap.get(
29
40
  asHash(jumpHash, () => `Jump hash not found for block number [${blockNumber}]: ${jumpBlockNumber} ${toSafeJsonString(currentBlock, 10)}`),
30
41
  )
31
- currentBlock = asBlockBoundWitnessWithStorageMeta(newBlock, () => `Block not found for hash: ${jumpHash}`, { required: true })
42
+ if (!isDefined(newBlock)) {
43
+ throw new Error(`Block not found for jump hash: ${jumpHash}`)
44
+ }
45
+ currentBlock = asSignedBlockBoundWitnessWithStorageMeta(
46
+ newBlock,
47
+ () => {
48
+ const result = SignedBlockBoundWitnessWithHashMetaZod.safeParse(newBlock)
49
+ return `Found Payload [jump hash] is not a Signed<BlockBoundWitness>: ${result.error}`
50
+ },
51
+ )
32
52
  if (currentBlock.block === blockNumber) {
33
53
  break
34
54
  }
@@ -1,7 +1,6 @@
1
1
  import * as z from 'zod'
2
2
 
3
3
  import { ApiConfigZod } from './Api.ts'
4
- import { AppConfigZod } from './App.ts'
5
4
  import { BridgeConfigZod } from './Bridge.ts'
6
5
  import { ChainConfigZod } from './Chain.ts'
7
6
  import { EvmConfigZod } from './Evm.ts'
@@ -9,6 +8,7 @@ import { LogConfigZod } from './Log.ts'
9
8
  import { MempoolConfigZod } from './Mempool.ts'
10
9
  import { ProducerConfigZod } from './Producer.ts'
11
10
  import { RewardRedemptionApiConfigZod } from './RewardRedemptionApi.ts'
11
+ import { ServicesConfigZod } from './Services.ts'
12
12
  import { StorageConfigZod } from './storage/index.ts'
13
13
  import { TelemetryConfigZod } from './Telemetry.ts'
14
14
  import { ValidationConfigZod } from './Validation.ts'
@@ -18,13 +18,13 @@ export const Xl1CommonConfigSchema = z.object({ ...LogConfigZod.shape }).describ
18
18
  export const ConfigZod = z.object({
19
19
  ...Xl1CommonConfigSchema.shape,
20
20
  api: ApiConfigZod.default(ApiConfigZod.parse({})).describe('Configuration for the API node'),
21
- app: AppConfigZod.default(AppConfigZod.parse({})).describe('Configuration for the application'),
22
21
  bridge: BridgeConfigZod.default(BridgeConfigZod.parse({})).describe('Configuration for the Bridge node'),
23
22
  chain: ChainConfigZod.default(ChainConfigZod.parse({})).describe('Configuration for the chain'),
24
23
  evm: EvmConfigZod.default(EvmConfigZod.parse({})).describe('Configuration for EVM-backed services'),
25
24
  mempool: MempoolConfigZod.default(MempoolConfigZod.parse({})).describe('Configuration for the mempool'),
26
25
  producer: ProducerConfigZod.default(ProducerConfigZod.parse({})).describe('Configuration for the producer'),
27
26
  rewardRedemptionApi: RewardRedemptionApiConfigZod.default(RewardRedemptionApiConfigZod.parse({})).describe('Configuration for the rewards redemption API'),
27
+ services: ServicesConfigZod.default(ServicesConfigZod.parse({})).describe('Configuration for the global services'),
28
28
  storage: StorageConfigZod.default(StorageConfigZod.parse({})).describe('Configuration for the storage'),
29
29
  telemetry: TelemetryConfigZod.default(TelemetryConfigZod.parse({})).describe('Configuration for telemetry'),
30
30
  validation: ValidationConfigZod.default(ValidationConfigZod.parse({})).describe('Configuration for validation'),
@@ -16,12 +16,6 @@ export const ProducerConfigZod = z.object({
16
16
  type: 'array',
17
17
  })),
18
18
 
19
- apiEndpoint: z.string().optional().register(globalRegistry, {
20
- description: 'Endpoint of the API to use for chain data',
21
- title: 'producer.apiEndpoint',
22
- type: 'string',
23
- }),
24
-
25
19
  disableIntentRedeclaration: z.boolean().optional().register(globalRegistry, {
26
20
  description: 'Should the producer skip redeclaring their intent to continue producing blocks',
27
21
  title: 'producer.disableIntentRedeclaration',
@@ -0,0 +1,17 @@
1
+ import { globalRegistry } from 'zod'
2
+ import * as z from 'zod'
3
+
4
+ export const ServicesConfigZod = z.object({
5
+ accountBalanceViewerEndpoint: z.string().optional().register(globalRegistry, {
6
+ description: 'Endpoint of the API to use for instantiating an external AccountBalanceViewer',
7
+ title: 'services.accountBalanceViewerEndpoint',
8
+ type: 'string',
9
+ }),
10
+ apiEndpoint: z.string().optional().register(globalRegistry, {
11
+ description: 'Endpoint of the API to use for instantiating an external Viewers',
12
+ title: 'services.apiEndpoint',
13
+ type: 'string',
14
+ }),
15
+ })
16
+
17
+ export type ServicesConfig = z.infer<typeof ServicesConfigZod>
@@ -1,6 +1,23 @@
1
1
  import { globalRegistry } from 'zod'
2
2
  import * as z from 'zod'
3
3
 
4
+ export const MetricsScrapeConfigZod = z.object({
5
+ path: z.string().default('/metrics').register(globalRegistry, {
6
+ default: '/metrics',
7
+ description: 'Path for the metrics scrape endpoint',
8
+ title: 'telemetry.metrics.scrape.path',
9
+ type: 'string',
10
+ }),
11
+ port: z.coerce.number().default(9464).register(globalRegistry, {
12
+ default: 9464,
13
+ description: 'Port for the metrics scrape endpoint',
14
+ title: 'telemetry.metrics.scrape.port',
15
+ type: 'number',
16
+ }),
17
+ }).describe('Metrics scrape configuration')
18
+
19
+ export const MetricsConfigZod = z.object({ scrape: MetricsScrapeConfigZod }).describe('Metrics configuration options')
20
+
4
21
  export const OpenTelemetryConfigZod = z.object({
5
22
  // OpenTelemetry options
6
23
  otlpEndpoint: z.url().optional().register(globalRegistry, {
@@ -11,6 +28,8 @@ export const OpenTelemetryConfigZod = z.object({
11
28
  })
12
29
 
13
30
  export const TelemetryConfigZod = z.object({
31
+ // Metrics configuration
32
+ metrics: MetricsConfigZod.optional().describe('Metrics configuration'),
14
33
  // OpenTelemetry configuration
15
34
  otel: OpenTelemetryConfigZod.optional().describe('OpenTelemetry configuration'),
16
35
  }).describe('Telemetry configuration options')
package/src/index.ts CHANGED
@@ -20,4 +20,4 @@ export * from './utils/index.ts'
20
20
  export * from './validation/index.ts'
21
21
  export * from './viewers/index.ts'
22
22
  export * from './wallet/index.ts'
23
- export * from './zod/index.ts'
23
+ // export * from './zod/index.ts'
@@ -1,10 +1,8 @@
1
- import type { AllowedBlockPayload, HydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
1
+ import type { AllowedBlockPayload, HydratedTransaction } from '@xyo-network/xl1-protocol'
2
2
 
3
3
  import type { HydratedBoundWitnessInstance } from '../HydratedBoundWitness.ts'
4
- import type { SignedInstance } from '../modifiers/index.ts'
5
4
  import type { TransactionFieldsInstance } from './TransactionFields.ts'
6
5
 
7
- export interface HydratedTransactionInstance<T extends HydratedTransactionWithStorageMeta = HydratedTransactionWithStorageMeta,
8
- TElevatedPayload extends AllowedBlockPayload = AllowedBlockPayload>
9
- extends TransactionFieldsInstance<T[1][number] & TElevatedPayload>, HydratedBoundWitnessInstance<T>, SignedInstance {
6
+ export interface HydratedTransactionInstance<T extends HydratedTransaction = HydratedTransaction>
7
+ extends TransactionFieldsInstance<T[1][number] & AllowedBlockPayload>, HydratedBoundWitnessInstance<T> {
10
8
  }
@@ -1,14 +1,12 @@
1
1
  import type { Hash } from '@xylabs/sdk-js'
2
- import type {
3
- Payload, Schema, WithStorageMeta,
4
- } from '@xyo-network/payload-model'
2
+ import type { Payload, Schema } from '@xyo-network/payload-model'
5
3
  import type { AllowedBlockPayload } from '@xyo-network/xl1-protocol'
6
4
 
7
5
  import type { TransactionFeesInstance } from '../Fees.ts'
8
6
 
9
7
  export interface TransactionFieldsInstance<TBlockPayload extends AllowedBlockPayload = AllowedBlockPayload> {
10
8
  elevatedPayloadCount: number
11
- elevatedPayloads: WithStorageMeta<TBlockPayload>[]
9
+ elevatedPayloads: TBlockPayload[]
12
10
  externalPayloads: Record<Hash, Schema | Payload>
13
11
 
14
12
  fees: TransactionFeesInstance
@@ -16,6 +14,8 @@ export interface TransactionFieldsInstance<TBlockPayload extends AllowedBlockPay
16
14
  privateExternalPayloads: Record<Hash, Schema>
17
15
  publicExternalPayloads: Payload[]
18
16
 
17
+ signatureCount: number
18
+
19
19
  elevatedPayload(index: number): TBlockPayload | undefined
20
20
  reward(): bigint
21
21
  }
@@ -0,0 +1,14 @@
1
+ import { PayloadBuilder } from '@xyo-network/payload-builder'
2
+ import type { PayloadBundle, WithHashMeta } from '@xyo-network/payload-model'
3
+ import type { SignedHydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
4
+ import { asSignedTransactionBoundWitnessWithHashMeta } from '@xyo-network/xl1-protocol'
5
+
6
+ export const bundledPayloadToHydratedTransaction = async (
7
+ payload: WithHashMeta<PayloadBundle>,
8
+ ): Promise<SignedHydratedTransactionWithHashMeta | undefined> => {
9
+ const withHashMeta = await PayloadBuilder.addHashMeta(payload.payloads)
10
+ const tx = asSignedTransactionBoundWitnessWithHashMeta(withHashMeta.find(p => p._hash === payload.root))
11
+ if (tx) {
12
+ return [tx, withHashMeta.filter(p => p._hash !== payload.root)]
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ import type { Hash } from '@xylabs/sdk-js'
2
+ import { PayloadBuilder } from '@xyo-network/payload-builder'
3
+ import { type PayloadBundle, PayloadBundleSchema } from '@xyo-network/payload-model'
4
+ import type { SignedHydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
5
+
6
+ import { flattenHydratedTransaction } from '../../transaction/index.ts'
7
+
8
+ export const hydratedTransactionToPayloadBundle = (transaction: SignedHydratedTransactionWithHashMeta): PayloadBundle => {
9
+ const root = transaction[0]._hash
10
+ return bundle(root, transaction)
11
+ }
12
+
13
+ const bundle = (root: Hash, transaction: SignedHydratedTransactionWithHashMeta) => {
14
+ const payloads = flattenHydratedTransaction(transaction).flatMap(p => PayloadBuilder.omitStorageMeta(p))
15
+ return new PayloadBuilder<PayloadBundle>({ schema: PayloadBundleSchema })
16
+ .fields({ payloads, root })
17
+ .build()
18
+ }
@@ -0,0 +1,2 @@
1
+ export * from './bundledPayloadToHydratedTransaction.ts'
2
+ export * from './hydratedTransactionToPayloadBundle.ts'
@@ -2,6 +2,7 @@ export * from './ChainContext/index.ts'
2
2
  export * from './ChainFork/index.ts'
3
3
  export * from './ChainIdentity.ts'
4
4
  export * from './ChainStore.ts'
5
+ export * from './PayloadBundle/index.ts'
5
6
  export * from './PayloadMap.ts'
6
7
  export * from './Position.ts'
7
8
  export * from './RecordKeyType.ts'
@@ -16,7 +16,7 @@ export async function balancesSummary(
16
16
  return await spanRootAsync('balancesSummary', async () => {
17
17
  const [headHash] = await context.head()
18
18
  const headResult = await context.store.chainMap.get(headHash)
19
- const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${headHash}`, { required: true })
19
+ const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${headHash}`)
20
20
  const rangeStart = asXL1BlockNumber(isDefined(context.windowSize) ? Math.max(headBoundWitness.block - context.windowSize + 1, 0) : 0)
21
21
  const ranges = deepCalculateFramesFromRange(asXL1BlockRange(
22
22
  [rangeStart, headBoundWitness.block],
@@ -1,9 +1,10 @@
1
- /* eslint-disable max-statements */
2
1
  import { assertEx } from '@xylabs/sdk-js'
3
- import { isBoundWitnessWithStorageMeta } from '@xyo-network/boundwitness-model'
2
+ import { isBoundWitness } from '@xyo-network/boundwitness-model'
4
3
  import { PayloadBuilder } from '@xyo-network/payload-builder'
5
- import type { Schema, WithStorageMeta } from '@xyo-network/payload-model'
6
- import { isAnyPayload } from '@xyo-network/payload-model'
4
+ import type {
5
+ Schema, WithHashMeta, WithStorageMeta,
6
+ } from '@xyo-network/payload-model'
7
+ import { isAnyPayload, isHashMeta } from '@xyo-network/payload-model'
7
8
  import type { XL1BlockRange } from '@xyo-network/xl1-protocol'
8
9
  import { StepSizes } from '@xyo-network/xl1-protocol'
9
10
 
@@ -18,7 +19,7 @@ import { SchemasStepSummarySchema } from '../../../payloads/index.ts'
18
19
  export async function schemasStepSummaryFromRange(
19
20
  context: SchemasStepSummaryContext,
20
21
  range: XL1BlockRange,
21
- ): Promise<WithStorageMeta<SchemasStepSummary>> {
22
+ ): Promise<WithHashMeta<SchemasStepSummary>> {
22
23
  // console.log(`balanceStepSummaryFromRange: head=${head}, range=${range[0]}-${range[1]}`)
23
24
  const frameHeadHash = await hashFromBlockNumber(context, range[1])
24
25
  const frameSize = range[1] - range[0] + 1
@@ -29,7 +30,7 @@ export async function schemasStepSummaryFromRange(
29
30
  if (frameSize === 1) {
30
31
  const hash = await hashFromBlockNumber(context, range[0])
31
32
  const [block, payloads] = await hydrateBlock(context.store, hash)
32
- const boundWitnesses = [block, ...payloads.filter(isBoundWitnessWithStorageMeta)]
33
+ const boundWitnesses = [block, ...payloads.filter(x => isBoundWitness(x) && isHashMeta(x))]
33
34
  const schemas: Record<Schema, number> = {}
34
35
  for (const bw of boundWitnesses) {
35
36
  schemas[bw.schema] = (schemas[bw.schema] ?? 0) + 1
@@ -78,6 +79,5 @@ export async function schemasStepSummaryFromRange(
78
79
  }
79
80
  }
80
81
  // console.log(`balanceStepSummaryFromRange-result: head=${head}, range=${range[0]}-${range[1]}: ${toSafeJsonString(result, 10)}`)
81
- const finalResult = await PayloadBuilder.addStorageMeta(result)
82
- return finalResult
82
+ return await PayloadBuilder.addHashMeta(result)
83
83
  }
@@ -15,7 +15,7 @@ export async function schemasSummary(
15
15
  return await spanRootAsync('schemasSummary', async () => {
16
16
  const [headHash] = await context.head()
17
17
  const headResult = await context.store.chainMap.get(headHash)
18
- const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${headHash}`, { required: true })
18
+ const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${headHash}`)
19
19
  const rangeStart = asXL1BlockNumber(isDefined(context.windowSize) ? Math.max(headBoundWitness.block - context.windowSize + 1, 0) : 0)
20
20
  const ranges = deepCalculateFramesFromRange(asXL1BlockRange(
21
21
  [rangeStart, headBoundWitness.block],
@@ -17,7 +17,7 @@ export async function transfersSummary(
17
17
  return await spanRootAsync('transferSummary', async () => {
18
18
  const [headHash] = await transferContext.head()
19
19
  const headResult = await transferContext.store.chainMap.get(headHash)
20
- const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${transferContext.head}`, { required: true })
20
+ const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${transferContext.head}`)
21
21
  const rangeStart = asXL1BlockNumber(isDefined(transferContext.windowSize) ? Math.max(headBoundWitness.block - transferContext.windowSize + 1, 0) : 0)
22
22
  const ranges = deepCalculateFramesFromRange(asXL1BlockRange(
23
23
  [rangeStart, headBoundWitness.block],