@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
@@ -1,12 +1,12 @@
1
- import type { WithStorageMeta } from '@xyo-network/payload-model'
2
- import type { AllowedBlockPayload, SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
1
+ import type { WithHashMeta } from '@xyo-network/payload-model'
2
+ import type { AllowedBlockPayload, HydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
3
3
  import { isAllowedBlockPayload } from '@xyo-network/xl1-protocol'
4
4
 
5
5
  const ELEVATE_OPCODE = 'elevate'
6
6
 
7
- export function elevatedPayloads([tx, payloads]: SignedHydratedTransactionWithStorageMeta) {
7
+ export function elevatedPayloads([tx, payloads]: HydratedTransactionWithHashMeta) {
8
8
  const opCodes = (tx.script ?? []).filter(operation => operation.startsWith(`${ELEVATE_OPCODE}|`))
9
- const elevatedPayloads: WithStorageMeta<AllowedBlockPayload>[] = []
9
+ const elevatedPayloads: WithHashMeta<AllowedBlockPayload>[] = []
10
10
  for (const opCode of opCodes) {
11
11
  const [code, hash] = opCode.split('|')
12
12
  if (code === ELEVATE_OPCODE) {
@@ -4,15 +4,16 @@ import type {
4
4
  import type { Payload } from '@xyo-network/payload-model'
5
5
  import type {
6
6
  AllowedBlockPayload, SignedHydratedTransaction, TransactionFeesBigInt,
7
+ XL1BlockNumber,
7
8
  } from '@xyo-network/xl1-protocol'
8
9
 
9
10
  /** @deprecated use TransactionOptions instead */
10
11
  export interface TransactionSubmitterOptions {
11
12
  chain?: Hex
12
- exp?: number
13
+ exp?: XL1BlockNumber
13
14
  fees?: TransactionFeesBigInt
14
15
  from?: Address
15
- nbf?: number
16
+ nbf?: XL1BlockNumber
16
17
  }
17
18
 
18
19
  /** @deprecated use XyoGatewayHelpers instead */
@@ -5,6 +5,7 @@ import type { Payload } from '@xyo-network/payload-model'
5
5
  import type {
6
6
  AllowedBlockPayload, AttoXL1, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta, TransactionFeesBigInt,
7
7
  UnsignedHydratedTransaction,
8
+ XL1BlockNumber,
8
9
  } from '@xyo-network/xl1-protocol'
9
10
 
10
11
  import type { ConfirmSubmittedTransactionOptions } from '../transaction/index.ts'
@@ -13,10 +14,10 @@ import type { XyoGateway } from './XyoGateway.ts'
13
14
 
14
15
  export interface TransactionOptions {
15
16
  chain?: Hex
16
- exp?: number
17
+ exp?: XL1BlockNumber
17
18
  fees?: TransactionFeesBigInt
18
19
  from?: Address
19
- nbf?: number
20
+ nbf?: XL1BlockNumber
20
21
  }
21
22
 
22
23
  export interface XyoGatewayRunnerMethods {
@@ -1,8 +1,9 @@
1
1
  import type { Address, Promisable } from '@xylabs/sdk-js'
2
- import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model'
2
+ import type { Signed } from '@xyo-network/boundwitness-model'
3
3
  import type { Payload } from '@xyo-network/payload-model'
4
4
  import type {
5
- AllowedBlockPayload, ChainId, SignedHydratedTransactionWithHashMeta, TransactionBoundWitness,
5
+ AllowedBlockPayload, ChainId,
6
+ SignedHydratedTransactionWithHashMeta, TransactionBoundWitness,
6
7
  TransactionFeesBigInt,
7
8
  } from '@xyo-network/xl1-protocol'
8
9
 
@@ -11,7 +12,7 @@ export interface XyoSigner {
11
12
  // The tx passed in must have all the payloads (on and off chain) in the payloads array
12
13
  // Returns the signed transaction and the payloads array excluding the off-chain payloads.
13
14
  // The return value is ready to be broadcast to block producers
14
- signTransaction(tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta>
15
+ signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta>
15
16
  }
16
17
 
17
18
  export interface XyoSignerDeprecated {
@@ -1,4 +1,5 @@
1
1
  import type {
2
+ AccountBalanceViewer,
2
3
  AccountBalanceViewerMethods,
3
4
  BlockViewierMethods,
4
5
  ChainViewerMethods,
@@ -12,11 +13,14 @@ import type { NetworkStakeViewer } from './NetworkStake/index.ts'
12
13
  import type { StepViewer } from './StepViewer.ts'
13
14
 
14
15
  export interface XyoViewerMethods extends AccountBalanceViewerMethods, TransferBalanceViewerMethods,
15
- NetworkStakeStepRewardViewer,
16
+ NetworkStakeStepRewardViewer, AccountBalanceViewer,
16
17
  ChainViewerMethods, BlockViewierMethods, TransactionViewerMethods, StakeViewerMethods, ForkViewerMethods {
17
18
  }
18
19
 
19
20
  export interface XyoViewer extends XyoViewerMethods {
21
+ account?: {
22
+ balance?: AccountBalanceViewer
23
+ }
20
24
  networkStake?: NetworkStakeViewer
21
25
  step?: StepViewer
22
26
  }
@@ -1,8 +1,8 @@
1
1
  import type {
2
2
  Addressable,
3
- BlockBoundWitness, HydratedBlock, IterableRepository,
3
+ BlockBoundWitness, HydratedBlockWithHashMeta, IterableRepository,
4
4
  } from '@xyo-network/xl1-protocol'
5
5
 
6
- export type NextBlockProducer = IterableRepository<BlockBoundWitness, HydratedBlock | undefined>
6
+ export type NextBlockProducer = IterableRepository<BlockBoundWitness, HydratedBlockWithHashMeta | undefined>
7
7
 
8
8
  export interface BlockProducerService extends Addressable, NextBlockProducer {}
@@ -1,12 +1,14 @@
1
- import type { Address, Hash } from '@xylabs/sdk-js'
1
+ import type {
2
+ Address, CreatableParams, Hash,
3
+ } from '@xylabs/sdk-js'
2
4
  import {
5
+ AbstractCreatable,
3
6
  assertEx, exists, isDefined,
4
7
  } from '@xylabs/sdk-js'
5
8
  import { spanRootAsync } from '@xylabs/telemetry'
6
- import type { Signed } from '@xyo-network/boundwitness-model'
7
- import type { WithStorageMeta } from '@xyo-network/payload-model'
9
+ import type { WithHashMeta, WithStorageMeta } from '@xyo-network/payload-model'
8
10
  import type {
9
- BlockBoundWitness, Transfer, XL1BlockNumber, XL1BlockRange,
11
+ SignedBlockBoundWitnessWithHashMeta, Transfer, XL1BlockNumber, XL1BlockRange,
10
12
  } from '@xyo-network/xl1-protocol'
11
13
  import {
12
14
  asRange, asXL1BlockNumber, asXL1BlockRange, AttoXL1,
@@ -22,15 +24,31 @@ import type {
22
24
  AccountBalanceHistoryItem, AccountBalanceViewer, BlockViewer,
23
25
  } from '../../viewers/index.ts'
24
26
 
25
- export class SimpleAccountBalanceViewer implements AccountBalanceViewer {
26
- protected readonly blockViewer: BlockViewer
27
- protected readonly context: BalanceStepSummaryContext
28
- protected readonly transferContext: TransfersStepSummaryContext
27
+ export interface SimpleAccountBalanceViewerParams extends CreatableParams {
28
+ blockViewer: BlockViewer
29
+ context: BalanceStepSummaryContext
30
+ transferContext: TransfersStepSummaryContext
31
+ }
32
+
33
+ export class SimpleAccountBalanceViewer extends AbstractCreatable<SimpleAccountBalanceViewerParams> implements AccountBalanceViewer {
34
+ get blockViewer(): BlockViewer {
35
+ return this.params.blockViewer!
36
+ }
37
+
38
+ get context(): BalanceStepSummaryContext {
39
+ return this.params.context!
40
+ }
41
+
42
+ get transferContext(): TransfersStepSummaryContext {
43
+ return this.params.transferContext!
44
+ }
45
+
46
+ static override async paramsHandler(params: Partial<SimpleAccountBalanceViewerParams>) {
47
+ assertEx(params.blockViewer, () => 'blockViewer is required')
48
+ assertEx(params.context, () => 'context is required')
49
+ assertEx(params.transferContext, () => 'transferContext is required')
29
50
 
30
- constructor(context: BalanceStepSummaryContext, transferContext: TransfersStepSummaryContext, blockViewer: BlockViewer) {
31
- this.context = context
32
- this.transferContext = transferContext
33
- this.blockViewer = blockViewer
51
+ return { ...await super.paramsHandler(params) }
34
52
  }
35
53
 
36
54
  async accountBalance(address: Address, headOrRange?: XL1BlockRange | Hash): Promise<AttoXL1> {
@@ -56,7 +74,7 @@ export class SimpleAccountBalanceViewer implements AccountBalanceViewer {
56
74
  if (transfers.length === 0) {
57
75
  continue
58
76
  }
59
- const pairs: [WithStorageMeta<Signed<BlockBoundWitness>>, WithStorageMeta<Transfer>][] = (transfers.map((transfer) => {
77
+ const pairs: [SignedBlockBoundWitnessWithHashMeta, WithHashMeta<Transfer>][] = (transfers.map((transfer) => {
60
78
  return [block[0], transfer]
61
79
  }))
62
80
  result.push(...pairs.map(([block, transfer]) => [block,
@@ -6,12 +6,15 @@ import {
6
6
  } from '@xylabs/sdk-js'
7
7
  import { PayloadBuilder } from '@xyo-network/payload-builder'
8
8
  import type { Payload, WithHashMeta } from '@xyo-network/payload-model'
9
+ import type {
10
+ AllowedBlockPayload,
11
+ AttoXL1,
12
+ SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta,
13
+ Transfer,
14
+ UnsignedHydratedTransaction,
15
+ } from '@xyo-network/xl1-protocol'
9
16
  import {
10
- type AllowedBlockPayload,
11
- type AttoXL1,
12
- type SignedHydratedTransaction,
13
- type SignedHydratedTransactionWithHashMeta,
14
- type Transfer,
17
+ asXL1BlockNumber,
15
18
  TransferSchema,
16
19
  } from '@xyo-network/xl1-protocol'
17
20
 
@@ -65,8 +68,8 @@ export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
65
68
  nbf, exp, chain, fees,
66
69
  } = options ?? {}
67
70
  const resolvedChainId = isDefined(chain) ? chain : await viewer.chainId()
68
- const resolvedNbf = isDefined(nbf) ? nbf : await viewer?.currentBlockNumber()
69
- const resolvedExp = isDefined(exp) ? exp : resolvedNbf + 10
71
+ const resolvedNbf = asXL1BlockNumber(isDefined(nbf) ? nbf : await viewer.currentBlockNumber(), true)
72
+ const resolvedExp = asXL1BlockNumber(isDefined(exp) ? exp : resolvedNbf + 10, true)
70
73
 
71
74
  // Build, sign, and broadcast the transaction
72
75
  // eslint-disable-next-line sonarjs/deprecation
@@ -74,7 +77,7 @@ export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
74
77
  return await this.addTransactionToChain(tx)
75
78
  }
76
79
 
77
- async addTransactionToChain(tx: SignedHydratedTransaction): Promise<[Hash, SignedHydratedTransactionWithHashMeta]> {
80
+ async addTransactionToChain(tx: UnsignedHydratedTransaction): Promise<[Hash, SignedHydratedTransactionWithHashMeta]> {
78
81
  const connection = this.connectionInstance
79
82
 
80
83
  const signer = this.signerInstance
@@ -0,0 +1,37 @@
1
+ import {
2
+ exists, isDefined, isHash,
3
+ } from '@xylabs/sdk-js'
4
+ import type { ArchivistInstance } from '@xyo-network/archivist-model'
5
+ import {
6
+ isHashMeta, isPayloadBundle, type Sequence,
7
+ } from '@xyo-network/payload-model'
8
+ import type { SignedHydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
9
+
10
+ import { bundledPayloadToHydratedTransaction } from '../../model/index.ts'
11
+ import type {
12
+ MempoolViewer,
13
+ PendingTransactionsOptions,
14
+ } from '../../viewers/index.ts'
15
+
16
+ export class SimpleMempoolViewer implements MempoolViewer {
17
+ protected readonly archivist: ArchivistInstance
18
+
19
+ constructor(archivist: ArchivistInstance) {
20
+ this.archivist = archivist
21
+ }
22
+
23
+ async pendingTransactions({ cursor: providedCursor }: PendingTransactionsOptions = {}): Promise<SignedHydratedTransactionWithHashMeta[]> {
24
+ let cursor: Sequence | undefined = undefined
25
+ if (isHash(providedCursor)) {
26
+ const [p] = await this.archivist.get([providedCursor])
27
+ if (isDefined(p)) {
28
+ cursor = p._sequence
29
+ }
30
+ }
31
+ const bundles = await this.archivist.next({
32
+ order: 'asc', limit: 100, cursor,
33
+ })
34
+ const filteredBundles = bundles.filter(isPayloadBundle).filter(isHashMeta)
35
+ return (await Promise.all(filteredBundles.map(async bundle => await bundledPayloadToHydratedTransaction(bundle)))).filter(exists)
36
+ }
37
+ }
@@ -0,0 +1 @@
1
+ export * from './SimpleMempoolViewer.ts'
@@ -1,11 +1,14 @@
1
1
  import type { Address, Promisable } from '@xylabs/sdk-js'
2
2
  import type { AccountInstance } from '@xyo-network/account-model'
3
- import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model'
4
3
  import { PayloadBuilder } from '@xyo-network/payload-builder'
5
4
  import { type Payload } from '@xyo-network/payload-model'
6
5
  import type {
7
- AllowedBlockPayload, ChainId, SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, TransactionFeesBigInt,
6
+ AllowedBlockPayload, ChainId, SignedHydratedTransactionWithHashMeta,
7
+ SignedTransactionBoundWitness, TransactionFeesBigInt,
8
+ UnsignedTransactionBoundWitness,
9
+ XL1BlockNumber,
8
10
  } from '@xyo-network/xl1-protocol'
11
+ import { SignedHydratedTransactionWithHashMetaZod } from '@xyo-network/xl1-protocol'
9
12
 
10
13
  import type { XyoSigner } from '../../provider/index.ts'
11
14
  import { buildTransaction, signTransaction } from '../../transaction/index.ts'
@@ -25,11 +28,11 @@ export class SimpleXyoSigner implements XyoSigner {
25
28
  chain: ChainId,
26
29
  elevatedPayloads: AllowedBlockPayload[],
27
30
  additionalPayloads: Payload[],
28
- nbf: number,
29
- exp: number,
31
+ nbf: XL1BlockNumber,
32
+ exp: XL1BlockNumber,
30
33
  fees: TransactionFeesBigInt,
31
34
  from?: Address,
32
- ): Promise<Signed<TransactionBoundWitness>> {
35
+ ): Promise<SignedTransactionBoundWitness> {
33
36
  const fromAddress = from ?? this._account.address
34
37
  const transaction = await buildTransaction(
35
38
  chain,
@@ -44,8 +47,8 @@ export class SimpleXyoSigner implements XyoSigner {
44
47
  return transaction[0]
45
48
  }
46
49
 
47
- async signTransaction(tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promise<SignedHydratedTransactionWithHashMeta> {
50
+ async signTransaction(tx: [UnsignedTransactionBoundWitness, Payload[]]): Promise<SignedHydratedTransactionWithHashMeta> {
48
51
  const txBW = await signTransaction(tx[0], this._account)
49
- return [await PayloadBuilder.addStorageMeta(txBW), await PayloadBuilder.addStorageMeta(tx[1])]
52
+ return SignedHydratedTransactionWithHashMetaZod.parse([await PayloadBuilder.addStorageMeta(txBW), await PayloadBuilder.addStorageMeta(tx[1])])
50
53
  }
51
54
  }
@@ -9,7 +9,9 @@ import type {
9
9
  ChainId,
10
10
  ExecutableFields,
11
11
  FromFields,
12
- SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness, TransactionBoundWitnessFields, TransactionFeesBigInt,
12
+ SignedHydratedTransactionWithHashMeta,
13
+ TransactionBoundWitness, TransactionBoundWitnessFields, TransactionFeesBigInt,
14
+ XL1BlockNumber,
13
15
  } from '@xyo-network/xl1-protocol'
14
16
  import { defaultTransactionFees } from '@xyo-network/xl1-protocol'
15
17
 
@@ -18,16 +20,16 @@ export async function buildTransaction(
18
20
  onChainPayloads: AllowedBlockPayload[],
19
21
  offChainPayloads: Payload[],
20
22
  signer: AccountInstance | AccountInstance[],
21
- nbf: number,
22
- exp: number,
23
+ nbf: XL1BlockNumber,
24
+ exp: XL1BlockNumber,
23
25
  from?: Address,
24
26
  fees: TransactionFeesBigInt = defaultTransactionFees,
25
- ): Promise<SignedHydratedTransactionWithStorageMeta> {
27
+ ): Promise<SignedHydratedTransactionWithHashMeta> {
26
28
  if (from === undefined && Array.isArray(signer)) {
27
29
  throw new Error('from is required when signer is an array')
28
30
  }
29
31
 
30
- const txBoundWitnessFields: TransactionBoundWitnessFields = {
32
+ const txBoundWitnessFields: Omit<TransactionBoundWitnessFields, 'from'> = {
31
33
  chain,
32
34
  fees: {
33
35
  base: toHex(fees.base),
@@ -61,5 +63,5 @@ export async function buildTransaction(
61
63
  .signers(Array.isArray(signer) ? signer : [signer])
62
64
  .build()
63
65
 
64
- return [await PayloadBuilder.addStorageMeta(tx), await PayloadBuilder.addStorageMeta(txPayloads)]
66
+ return [await PayloadBuilder.addHashMeta(tx), await PayloadBuilder.addHashMeta(txPayloads)]
65
67
  }
@@ -6,6 +6,7 @@ import type { Payload } from '@xyo-network/payload-model'
6
6
  import type {
7
7
  AllowedBlockPayload, ChainId, ExecutableFields, FromFields, TransactionBoundWitness, TransactionBoundWitnessFields, TransactionFeesBigInt,
8
8
  UnsignedHydratedTransaction,
9
+ XL1BlockNumber,
9
10
  } from '@xyo-network/xl1-protocol'
10
11
  import { defaultTransactionFees } from '@xyo-network/xl1-protocol'
11
12
 
@@ -13,12 +14,12 @@ export async function buildUnsignedTransaction(
13
14
  chain: ChainId,
14
15
  onChainPayloads: AllowedBlockPayload[],
15
16
  offChainPayloads: Payload[],
16
- nbf: number,
17
- exp: number,
17
+ nbf: XL1BlockNumber,
18
+ exp: XL1BlockNumber,
18
19
  from: Address,
19
20
  fees: TransactionFeesBigInt = defaultTransactionFees,
20
21
  ): Promise<UnsignedHydratedTransaction> {
21
- const txBoundWitnessFields: TransactionBoundWitnessFields = {
22
+ const txBoundWitnessFields: Omit<TransactionBoundWitnessFields, 'from'> = {
22
23
  chain,
23
24
  fees: {
24
25
  base: toHex(fees.base),
@@ -49,7 +50,7 @@ export async function buildUnsignedTransaction(
49
50
  .fields(fields)
50
51
  .meta({ $signatures: [] })
51
52
  .payloads([...onChainPayloads, ...offChainPayloads])
52
- .build()
53
+ .build(false)
53
54
 
54
55
  return [tx, txPayloads]
55
56
  }
@@ -3,8 +3,8 @@ import { assertEx } from '@xylabs/sdk-js'
3
3
  import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from '@xyo-network/archivist-model'
4
4
  import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
5
5
  import type {
6
- AllowedBlockPayload,
7
- SignedHydratedTransaction, SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness,
6
+ AllowedBlockPayload, SignedHydratedTransaction,
7
+ SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness,
8
8
  } from '@xyo-network/xl1-protocol'
9
9
  import { isAllowedBlockPayload, isSignedTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
10
10
 
@@ -1,8 +1,8 @@
1
1
  import { PayloadBuilder } from '@xyo-network/payload-builder'
2
- import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
2
+ import type { HydratedTransaction } from '@xyo-network/xl1-protocol'
3
3
 
4
4
  /** The number of bytes that a transaction and its payloads will take up in a block */
5
- export function transactionBlockByteCount([transaction, payloads]: SignedHydratedTransaction): number {
5
+ export function transactionBlockByteCount([transaction, payloads]: HydratedTransaction): number {
6
6
  const cleanTransaction = PayloadBuilder.omitStorageMeta(transaction)
7
7
  const transactionBytes = JSON.stringify(cleanTransaction).length
8
8
  const cleanPayloads = PayloadBuilder.omitStorageMeta(payloads)
@@ -1,6 +1,6 @@
1
1
  import { asHash, type Hash } from '@xylabs/sdk-js'
2
2
  import type { Payload, WithHashMeta } from '@xyo-network/payload-model'
3
- import type { SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
3
+ import type { HydratedTransactionWithHashMeta, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
4
4
 
5
5
  import { crackOperations } from './transactionOperations.ts'
6
6
 
@@ -9,7 +9,7 @@ export function transactionElevatedPayloadHashes(transaction: TransactionBoundWi
9
9
  return elevateOperations.map(op => asHash(op[1][0], true))
10
10
  }
11
11
 
12
- export function transactionElevatedPayloads([transaction, payloads]: SignedHydratedTransactionWithStorageMeta): WithHashMeta<Payload>[] {
12
+ export function transactionElevatedPayloads([transaction, payloads]: HydratedTransactionWithHashMeta): WithHashMeta<Payload>[] {
13
13
  const hashes = transactionElevatedPayloadHashes(transaction)
14
14
  const elevatedPayloads = payloads.filter(payload => hashes.includes(payload._hash))
15
15
  return elevatedPayloads
@@ -1,16 +1,16 @@
1
- import type { SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
1
+ import type { HydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
2
2
  import { AttoXL1, TransactionGasCosts } from '@xyo-network/xl1-protocol'
3
3
 
4
4
  import { transactionBlockByteCount } from './transactionBlockByteCount.ts'
5
5
  import { transactionElevatedPayloads } from './transactionElevatedPayloads.ts'
6
6
 
7
7
  /** The required gas for the byte storage on the block chain for a transaction */
8
- export function transactionBytesRequiredGas([transaction, payloads]: SignedHydratedTransactionWithStorageMeta): AttoXL1 {
8
+ export function transactionBytesRequiredGas([transaction, payloads]: HydratedTransactionWithHashMeta): AttoXL1 {
9
9
  const transactionBlockBytes = transactionBlockByteCount([transaction, payloads])
10
10
  return AttoXL1(TransactionGasCosts.characterStorage * BigInt(transactionBlockBytes))
11
11
  }
12
12
 
13
- export function transactionRequiredGas(hydratedTransaction: SignedHydratedTransactionWithStorageMeta): AttoXL1 {
13
+ export function transactionRequiredGas(hydratedTransaction: HydratedTransactionWithHashMeta): AttoXL1 {
14
14
  const elevatedPayloads = transactionElevatedPayloads(hydratedTransaction)
15
15
  const hashes = elevatedPayloads.length + 1 /* for transaction itself */
16
16
  const signatures = hydratedTransaction[0].addresses.length
@@ -1,7 +1,7 @@
1
1
  import { asHash, type Hash } from '@xylabs/sdk-js'
2
2
  import { assertEx, filterAs } from '@xylabs/sdk-js'
3
3
  import type { WithStorageMeta } from '@xyo-network/payload-model'
4
- import type { AllowedBlockPayload, HydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
4
+ import type { AllowedBlockPayload, HydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
5
5
  import { isAllowedBlockPayloadWithHashMeta } from '@xyo-network/xl1-protocol'
6
6
 
7
7
  export const tryExtractElevatedHashesFromScript = (strings: string[]): Hash[] => {
@@ -20,7 +20,7 @@ export const extractElevatedHashesFromScript = (strings: string[]): Hash[] => {
20
20
  return filtered
21
21
  }
22
22
 
23
- export const tryExtractElevatedHashes = (tx: HydratedTransactionWithStorageMeta): WithStorageMeta<AllowedBlockPayload>[] => {
23
+ export const tryExtractElevatedHashes = (tx: HydratedTransactionWithHashMeta): WithStorageMeta<AllowedBlockPayload>[] => {
24
24
  const [bw, payloads] = tx
25
25
  const { script } = bw
26
26
  const hashes = script ? tryExtractElevatedHashesFromScript(script) : []
@@ -29,7 +29,7 @@ export const tryExtractElevatedHashes = (tx: HydratedTransactionWithStorageMeta)
29
29
  .filter(isAllowedBlockPayloadWithHashMeta)
30
30
  }
31
31
 
32
- export const extractElevatedHashes = (tx: HydratedTransactionWithStorageMeta): WithStorageMeta<AllowedBlockPayload>[] => {
32
+ export const extractElevatedHashes = (tx: HydratedTransactionWithHashMeta): WithStorageMeta<AllowedBlockPayload>[] => {
33
33
  const [bw, payloads] = tx
34
34
  const { script } = bw
35
35
  const hashes = script ? tryExtractElevatedHashesFromScript(script) : []
@@ -2,9 +2,9 @@ import {
2
2
  assertEx, hexFromArrayBuffer, toArrayBuffer,
3
3
  } from '@xylabs/sdk-js'
4
4
  import type { AccountInstance } from '@xyo-network/account-model'
5
- import type { Unsigned } from '@xyo-network/boundwitness-model'
5
+ import type { Signed } from '@xyo-network/boundwitness-model'
6
6
  import { PayloadBuilder } from '@xyo-network/payload-builder'
7
- import type { TransactionBoundWitness } from '@xyo-network/xl1-protocol'
7
+ import type { TransactionBoundWitness, UnsignedTransactionBoundWitness } from '@xyo-network/xl1-protocol'
8
8
 
9
9
  /**
10
10
  * Signs an unsigned transaction with the provided account.
@@ -12,19 +12,22 @@ import type { TransactionBoundWitness } from '@xyo-network/xl1-protocol'
12
12
  * @param account The account to sign the transaction with
13
13
  * @returns The signed transaction
14
14
  */
15
- export async function signTransaction(tx: Unsigned<TransactionBoundWitness>, account: AccountInstance) {
15
+ export async function signTransaction(tx: UnsignedTransactionBoundWitness, account: AccountInstance) {
16
16
  assertEx(tx.from === account.address, () => 'Signer address does not match transaction from address')
17
17
  // Clone tx to prevent modifying original
18
- const signedTx = structuredClone(tx)
18
+ const unsignedTx = structuredClone(tx)
19
19
  // Update dynamic fields based on account
20
- signedTx.addresses = [account.address]
21
- signedTx.previous_hashes = [account.previousHash ?? null]
20
+ unsignedTx.addresses = [account.address]
21
+ unsignedTx.previous_hashes = [account.previousHash ?? null]
22
22
  // Calculate tx hash and sign it
23
- const hash = await PayloadBuilder.dataHash(signedTx)
23
+ const hash = await PayloadBuilder.dataHash(unsignedTx)
24
24
  const hashBytes = toArrayBuffer(hash)
25
25
  const [signature] = await account.sign(hashBytes)
26
26
  // Append the signatures to the transaction
27
- signedTx.$signatures = [hexFromArrayBuffer(signature)]
27
+ const result: Signed<TransactionBoundWitness> = {
28
+ ...unsignedTx,
29
+ $signatures: [hexFromArrayBuffer(signature)],
30
+ }
28
31
  // Return the signed transaction
29
- return signedTx
32
+ return result
30
33
  }
@@ -1,5 +1,5 @@
1
1
  import type { Promisable } from '@xylabs/sdk-js'
2
- import type { ChainId, HydratedBlock } from '@xyo-network/xl1-protocol'
2
+ import type { ChainId, HydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol'
3
3
 
4
4
  import type { AccountBalanceViewer } from '../../viewers/index.ts'
5
5
  import type { HydratedBlockStateValidationError } from './error.ts'
@@ -12,7 +12,7 @@ import type { HydratedBlockStateValidationError } from './error.ts'
12
12
  * @returns An array of errors if the block is invalid, or an empty array if it is valid.
13
13
  */
14
14
  export type HydratedBlockStateValidationFunction = (
15
- hydratedBlock: HydratedBlock,
15
+ hydratedBlock: HydratedBlockWithHashMeta,
16
16
  chainId: ChainId,
17
17
  services: { accountBalance: AccountBalanceViewer },
18
18
  ) => Promisable<HydratedBlockStateValidationError[]>
@@ -1,5 +1,5 @@
1
1
  import type { Promisable } from '@xylabs/sdk-js'
2
- import type { ChainId, HydratedBlock } from '@xyo-network/xl1-protocol'
2
+ import type { ChainId, HydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol'
3
3
 
4
4
  import type { HydratedBlockValidationError } from './error.ts'
5
5
 
@@ -10,6 +10,6 @@ import type { HydratedBlockValidationError } from './error.ts'
10
10
  * @returns An array of errors if the block is invalid, or an empty array if it is valid.
11
11
  */
12
12
  export type HydratedBlockValidationFunction = (
13
- hydratedBlock: HydratedBlock,
13
+ hydratedBlock: HydratedBlockWithHashMeta,
14
14
  chainId?: ChainId,
15
15
  ) => Promisable<HydratedBlockValidationError[]>
@@ -7,10 +7,9 @@ import {
7
7
  TransferZod,
8
8
  type XL1BlockRange,
9
9
  } from '@xyo-network/xl1-protocol'
10
+ import { BlockBoundWitnessZod, TransactionBoundWitnessZod } from '@xyo-network/xl1-protocol'
10
11
  import z from 'zod'
11
12
 
12
- import { BlockBoundWitnessZod, TransactionBoundWitnessZod } from '../zod/index.ts'
13
-
14
13
  export const AccountBalanceHistoryItemZod = z.tuple([
15
14
  WithHashMetaZod(BlockBoundWitnessZod),
16
15
  WithHashMetaZod(TransactionBoundWitnessZod).nullable(),
@@ -20,11 +19,11 @@ export const AccountBalanceHistoryItemZod = z.tuple([
20
19
  export type AccountBalanceHistoryItem = z.infer<typeof AccountBalanceHistoryItemZod>
21
20
 
22
21
  export interface AccountBalanceViewerMethods {
23
- accountBalance(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AttoXL1>
24
- accountBalanceHistory(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>
25
-
26
22
  accountsBalances(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AttoXL1>>>
27
23
  accountsBalancesHistory(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
28
24
  }
29
25
 
30
- export interface AccountBalanceViewer extends AccountBalanceViewerMethods {}
26
+ export interface AccountBalanceViewer extends AccountBalanceViewerMethods {
27
+ accountBalance(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AttoXL1>
28
+ accountBalanceHistory(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>
29
+ }
@@ -1,12 +1,12 @@
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
 
4
4
  export interface BlockViewierMethods {
5
- blockByHash(hash: Hash): Promisable<HydratedBlock | null>
6
- blockByNumber(block: XL1BlockNumber): Promisable<HydratedBlock | null>
7
- blocksByHash(hash: Hash, limit?: number): Promisable<HydratedBlock[]>
5
+ blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>
6
+ blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>
7
+ blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>
8
8
 
9
- currentBlock(): Promisable<HydratedBlock>
9
+ currentBlock(): Promisable<SignedHydratedBlockWithHashMeta>
10
10
  currentBlockHash(): Promisable<Hash>
11
11
  currentBlockNumber(): Promisable<XL1BlockNumber>
12
12
  }
@@ -0,0 +1,18 @@
1
+ import { HashZod } from '@xylabs/sdk-js'
2
+ import type { SignedHydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
3
+ import { XL1BlockRangeZod } from '@xyo-network/xl1-protocol'
4
+ import z from 'zod'
5
+
6
+ export const PendingTransactionsOptionsZod = z.object({
7
+ cursor: HashZod.optional(),
8
+ limit: z.number().int().positive().optional(),
9
+ window: XL1BlockRangeZod.optional(),
10
+ })
11
+
12
+ export type PendingTransactionsOptions = z.infer<typeof PendingTransactionsOptionsZod>
13
+
14
+ export interface MempoolViewerMethods {
15
+ pendingTransactions(options?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>
16
+ }
17
+
18
+ export interface MempoolViewer extends MempoolViewerMethods {}
@@ -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,6 +0,0 @@
1
- import * as z from 'zod';
2
- export declare const AppConfigZod: z.ZodObject<{
3
- port: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
4
- }, z.core.$strip>;
5
- export type AppConfig = z.infer<typeof AppConfigZod>;
6
- //# sourceMappingURL=App.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/config/App.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,eAAO,MAAM,YAAY;;iBAOvB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
@@ -1,4 +0,0 @@
1
- import * as z from 'zod';
2
- export declare const ArrayBufferToJsonZod: z.ZodPipe<z.ZodCustom<ArrayBuffer, ArrayBuffer>, z.ZodTransform<string, ArrayBuffer>>;
3
- export declare const JsonToArrayBufferZod: z.ZodPipe<z.ZodString, z.ZodTransform<ArrayBuffer | SharedArrayBuffer, string>>;
4
- //# sourceMappingURL=ArrayBuffer.d.ts.map