@aztec/p2p 0.0.1-commit.358457c → 0.0.1-commit.3895657bc

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 (146) hide show
  1. package/dest/client/factory.d.ts +5 -6
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +7 -6
  4. package/dest/client/interface.d.ts +4 -4
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +4 -4
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +1 -25
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +1 -2
  10. package/dest/config.d.ts +20 -11
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +66 -32
  13. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +1 -1
  14. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  15. package/dest/mem_pools/attestation_pool/attestation_pool.js +5 -1
  16. package/dest/mem_pools/instrumentation.d.ts +4 -2
  17. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  18. package/dest/mem_pools/instrumentation.js +16 -14
  19. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  20. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  21. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
  22. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +7 -1
  23. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  24. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +1 -1
  25. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  26. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +8 -6
  27. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +2 -2
  28. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  29. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
  30. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  31. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  32. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  33. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +3 -1
  34. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  35. package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
  36. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +32 -10
  37. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  38. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +62 -16
  39. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  40. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  41. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +26 -44
  42. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +1 -1
  43. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  44. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +3 -0
  45. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +2 -1
  46. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +41 -23
  48. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
  49. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  50. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  51. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
  52. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  53. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  54. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
  55. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  56. package/dest/msg_validators/proposal_validator/proposal_validator.js +48 -36
  57. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  58. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  59. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  60. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  61. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  62. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  63. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  64. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  65. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  66. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  67. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  68. package/dest/msg_validators/tx_validator/index.js +1 -0
  69. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  70. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  71. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  72. package/dest/msg_validators/tx_validator/phases_validator.d.ts +2 -2
  73. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  74. package/dest/msg_validators/tx_validator/phases_validator.js +44 -23
  75. package/dest/services/encoding.d.ts +2 -2
  76. package/dest/services/encoding.d.ts.map +1 -1
  77. package/dest/services/encoding.js +7 -7
  78. package/dest/services/libp2p/libp2p_service.d.ts +6 -7
  79. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  80. package/dest/services/libp2p/libp2p_service.js +22 -19
  81. package/dest/services/peer-manager/metrics.d.ts +3 -1
  82. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  83. package/dest/services/peer-manager/metrics.js +6 -0
  84. package/dest/services/peer-manager/peer_manager.d.ts +1 -1
  85. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  86. package/dest/services/peer-manager/peer_manager.js +2 -1
  87. package/dest/services/reqresp/reqresp.d.ts +1 -1
  88. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  89. package/dest/services/reqresp/reqresp.js +2 -1
  90. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  91. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  92. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  93. package/dest/test-helpers/mock-pubsub.d.ts +2 -3
  94. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  95. package/dest/test-helpers/mock-pubsub.js +2 -2
  96. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  97. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  98. package/dest/test-helpers/reqresp-nodes.js +2 -2
  99. package/dest/testbench/p2p_client_testbench_worker.js +7 -6
  100. package/dest/testbench/worker_client_manager.d.ts +3 -1
  101. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  102. package/dest/testbench/worker_client_manager.js +6 -2
  103. package/dest/util.d.ts +1 -1
  104. package/package.json +14 -14
  105. package/src/client/factory.ts +10 -14
  106. package/src/client/interface.ts +3 -9
  107. package/src/client/p2p_client.ts +2 -34
  108. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +2 -3
  109. package/src/config.ts +91 -34
  110. package/src/mem_pools/attestation_pool/attestation_pool.ts +5 -4
  111. package/src/mem_pools/instrumentation.ts +17 -13
  112. package/src/mem_pools/tx_pool_v2/README.md +9 -1
  113. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
  114. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +11 -1
  115. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +15 -6
  116. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +2 -1
  117. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  118. package/src/mem_pools/tx_pool_v2/interfaces.ts +3 -0
  119. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +91 -19
  120. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +29 -43
  121. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +3 -0
  122. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +48 -21
  123. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
  124. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
  125. package/src/msg_validators/proposal_validator/proposal_validator.ts +63 -40
  126. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  127. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  128. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  129. package/src/msg_validators/tx_validator/index.ts +1 -0
  130. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  131. package/src/msg_validators/tx_validator/phases_validator.ts +51 -26
  132. package/src/services/encoding.ts +5 -6
  133. package/src/services/libp2p/libp2p_service.ts +20 -17
  134. package/src/services/peer-manager/metrics.ts +7 -0
  135. package/src/services/peer-manager/peer_manager.ts +2 -1
  136. package/src/services/reqresp/reqresp.ts +3 -1
  137. package/src/test-helpers/make-test-p2p-clients.ts +1 -3
  138. package/src/test-helpers/mock-pubsub.ts +3 -6
  139. package/src/test-helpers/reqresp-nodes.ts +3 -6
  140. package/src/testbench/p2p_client_testbench_worker.ts +4 -7
  141. package/src/testbench/worker_client_manager.ts +13 -5
  142. package/src/util.ts +1 -1
  143. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  144. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  145. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  146. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
@@ -3,6 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
4
4
  import { BlockHash } from '@aztec/stdlib/block';
5
5
  import { Gas } from '@aztec/stdlib/gas';
6
+ import { TxHash } from '@aztec/stdlib/tx';
6
7
  import { getFeePayerBalanceDelta } from '../../msg_validators/tx_validator/fee_payer_balance.js';
7
8
  import { getTxPriorityFee } from '../tx_pool/priority.js';
8
9
  import { TxPoolRejectionCode } from './eviction/interfaces.js';
@@ -11,7 +12,9 @@ import { TxPoolRejectionCode } from './eviction/interfaces.js';
11
12
  * Extracts all relevant fields for efficient in-memory storage and querying.
12
13
  * Fr values are captured in closures for zero-cost re-validation.
13
14
  */ export async function buildTxMetaData(tx) {
14
- const txHash = tx.getTxHash().toString();
15
+ const txHashObj = tx.getTxHash();
16
+ const txHash = txHashObj.toString();
17
+ const txHashBigInt = txHashObj.toBigInt();
15
18
  const nullifierFrs = tx.data.getNonEmptyNullifiers();
16
19
  const nullifiers = nullifierFrs.map((n)=>n.toString());
17
20
  const anchorBlockHeaderHashFr = await tx.data.constants.anchorBlockHeader.hash();
@@ -24,6 +27,7 @@ import { TxPoolRejectionCode } from './eviction/interfaces.js';
24
27
  const estimatedSizeBytes = estimateTxMetaDataSize(nullifiers.length);
25
28
  return {
26
29
  txHash,
30
+ txHashBigInt,
27
31
  anchorBlockHeaderHash,
28
32
  priorityFee,
29
33
  feePayer,
@@ -62,14 +66,17 @@ const HEX_STRING_BYTES = 98;
62
66
  const BIGINT_BYTES = 32;
63
67
  const FR_BYTES = 80;
64
68
  // Fixed cost: object shell + txHash + anchorBlockHeaderHash + feePayer (3 hex strings)
65
- // + priorityFee + claimAmount + feeLimit + includeByTimestamp (4 bigints)
69
+ // + txHashBigInt + priorityFee + claimAmount + feeLimit + includeByTimestamp (5 bigints)
66
70
  // + receivedAt (number, 8 bytes) + estimatedSizeBytes (number, 8 bytes)
67
71
  // + data closure object (~OBJECT_OVERHEAD + anchorBlockHeaderHashFr Fr + anchorBlockNumber number)
68
- const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 4 * BIGINT_BYTES + 8 + 8 + OBJECT_OVERHEAD + FR_BYTES + 8;
72
+ const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 5 * BIGINT_BYTES + 8 + 8 + OBJECT_OVERHEAD + FR_BYTES + 8;
69
73
  /** Estimates the in-memory size of a TxMetaData object based on the number of nullifiers. */ function estimateTxMetaDataSize(nullifierCount) {
70
74
  // Per nullifier: one hex string in nullifiers[] + one Fr in the captured nullifierFrs[]
71
75
  return FIXED_METADATA_BYTES + nullifierCount * (HEX_STRING_BYTES + FR_BYTES);
72
76
  }
77
+ /** Converts a txHash bigint back to the canonical 0x-prefixed 64-char hex string. */ export function txHashFromBigInt(value) {
78
+ return TxHash.fromBigInt(value).toString();
79
+ }
73
80
  /**
74
81
  * Compares two priority fees in ascending order.
75
82
  * Returns negative if a < b, positive if a > b, 0 if equal.
@@ -81,9 +88,7 @@ const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 4 * BIGINT
81
88
  * Uses field element comparison for deterministic ordering.
82
89
  * Returns negative if a < b, positive if a > b, 0 if equal.
83
90
  */ export function compareTxHash(a, b) {
84
- const fieldA = Fr.fromHexString(a);
85
- const fieldB = Fr.fromHexString(b);
86
- return fieldA.cmp(fieldB);
91
+ return Fr.cmpAsBigInt(a, b);
87
92
  }
88
93
  /**
89
94
  * Compares two transactions by priority fee, with txHash as tiebreaker.
@@ -94,19 +99,33 @@ const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 4 * BIGINT
94
99
  if (feeComparison !== 0) {
95
100
  return feeComparison;
96
101
  }
97
- return compareTxHash(a.txHash, b.txHash);
102
+ return compareTxHash(a.txHashBigInt, b.txHashBigInt);
103
+ }
104
+ /**
105
+ * Returns the minimum fee required to replace an existing tx with the given price bump percentage.
106
+ * Uses integer arithmetic: `existingFee + existingFee * priceBumpPercentage / 100`.
107
+ */ export function getMinimumPriceBumpFee(existingFee, priceBumpPercentage) {
108
+ const bump = existingFee * priceBumpPercentage / 100n;
109
+ // Ensure the minimum bump is at least 1, so that replacement always requires
110
+ // paying strictly more — even with 0% bump or zero existing fee.
111
+ const effectiveBump = bump > 0n ? bump : 1n;
112
+ return existingFee + effectiveBump;
98
113
  }
99
114
  /**
100
115
  * Checks for nullifier conflicts between an incoming transaction and existing pool state.
101
116
  *
102
117
  * When the incoming tx shares nullifiers with existing pending txs:
103
- * - If the incoming tx has strictly higher priority, mark conflicting txs for eviction
104
- * - If any conflicting tx has equal or higher priority, ignore the incoming tx
118
+ * - If the incoming tx meets or exceeds the required priority, mark conflicting txs for eviction
119
+ * - Otherwise, ignore the incoming tx
120
+ *
121
+ * When `priceBumpPercentage` is provided (RPC path), uses fee-only comparison with the
122
+ * percentage bump instead of `comparePriority`.
105
123
  *
106
124
  * @param incomingMeta - Metadata for the incoming transaction
107
125
  * @param getTxHashByNullifier - Accessor to find which tx uses a nullifier
108
126
  * @param getMetadata - Accessor to get metadata for a tx hash
109
- */ export function checkNullifierConflict(incomingMeta, getTxHashByNullifier, getMetadata) {
127
+ * @param priceBumpPercentage - Optional percentage bump required for fee-based replacement
128
+ */ export function checkNullifierConflict(incomingMeta, getTxHashByNullifier, getMetadata, priceBumpPercentage) {
110
129
  const txHashesToEvict = [];
111
130
  for (const nullifier of incomingMeta.nullifiers){
112
131
  const conflictingHashStr = getTxHashByNullifier(nullifier);
@@ -121,19 +140,22 @@ const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 4 * BIGINT
121
140
  if (!conflictingMeta) {
122
141
  continue;
123
142
  }
124
- // If incoming tx has strictly higher priority, mark for eviction
125
- // Otherwise, ignore incoming tx (ties go to existing tx)
126
- // Use comparePriority for deterministic ordering (includes txHash as tiebreaker)
127
- if (comparePriority(incomingMeta, conflictingMeta) > 0) {
143
+ // When price bump is set (RPC path), require the incoming fee to meet the bumped threshold.
144
+ // Otherwise (P2P path), use full comparePriority with tx hash tiebreaker.
145
+ const isHigherPriority = priceBumpPercentage !== undefined ? incomingMeta.priorityFee >= getMinimumPriceBumpFee(conflictingMeta.priorityFee, priceBumpPercentage) : comparePriority(incomingMeta, conflictingMeta) > 0;
146
+ if (isHigherPriority) {
128
147
  txHashesToEvict.push(conflictingHashStr);
129
148
  } else {
149
+ const minimumFee = priceBumpPercentage !== undefined ? getMinimumPriceBumpFee(conflictingMeta.priorityFee, priceBumpPercentage) : undefined;
130
150
  return {
131
151
  shouldIgnore: true,
132
152
  txHashesToEvict: [],
133
153
  reason: {
134
154
  code: TxPoolRejectionCode.NULLIFIER_CONFLICT,
135
- message: `Nullifier conflict with existing tx ${conflictingHashStr}`,
136
- conflictingTxHash: conflictingHashStr
155
+ message: minimumFee !== undefined ? `Nullifier conflict with existing tx ${conflictingHashStr}. Minimum required fee: ${minimumFee}, got: ${incomingMeta.priorityFee}` : `Nullifier conflict with existing tx ${conflictingHashStr}`,
156
+ conflictingTxHash: conflictingHashStr,
157
+ minimumPriceBumpFee: minimumFee,
158
+ txPriorityFee: minimumFee !== undefined ? incomingMeta.priorityFee : undefined
137
159
  }
138
160
  };
139
161
  }
@@ -162,3 +184,27 @@ const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 4 * BIGINT
162
184
  }
163
185
  };
164
186
  }
187
+ /** Creates a stub TxMetaData for tests. All fields have sensible defaults and can be overridden. */ export function stubTxMetaData(txHash, overrides = {}) {
188
+ const txHashBigInt = Fr.fromHexString(txHash).toBigInt();
189
+ // Normalize to canonical zero-padded hex so txHashFromBigInt(txHashBigInt) === normalizedTxHash
190
+ const normalizedTxHash = txHashFromBigInt(txHashBigInt);
191
+ const expirationTimestamp = overrides.expirationTimestamp ?? 0n;
192
+ return {
193
+ txHash: normalizedTxHash,
194
+ txHashBigInt,
195
+ anchorBlockHeaderHash: overrides.anchorBlockHeaderHash ?? '0x1234',
196
+ priorityFee: overrides.priorityFee ?? 100n,
197
+ feePayer: overrides.feePayer ?? '0xfeepayer',
198
+ claimAmount: overrides.claimAmount ?? 0n,
199
+ feeLimit: overrides.feeLimit ?? 100n,
200
+ nullifiers: overrides.nullifiers ?? [
201
+ `0x${normalizedTxHash.slice(2)}null1`
202
+ ],
203
+ expirationTimestamp,
204
+ receivedAt: 0,
205
+ estimatedSizeBytes: 0,
206
+ data: stubTxMetaValidationData({
207
+ expirationTimestamp
208
+ })
209
+ };
210
+ }
@@ -105,4 +105,4 @@ export declare class TxPoolIndices {
105
105
  /** Gets all mined transactions with their block IDs */
106
106
  getMinedTxs(): [string, L2BlockId][];
107
107
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF9pbmRpY2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF9pbmRpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsS0FBSyxPQUFPLEVBQTZCLE1BQU0sa0JBQWtCLENBQUM7QUFFNUY7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxxQkFBYSxhQUFhOztJQWdCeEI7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQVFwQztJQUVELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBRWxEO0lBRUQsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUUzQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFNRDs7O09BR0c7SUFDRix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FpQnRHO0lBRUQ7Ozs7T0FJRztJQUNGLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQU9qRztJQUVELG9DQUFvQztJQUNuQyxlQUFlLElBQUksU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBRWxEO0lBTUQsb0RBQW9EO0lBQ3BELFVBQVUsQ0FB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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF9pbmRpY2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF9pbmRpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQTJCLEtBQUssVUFBVSxFQUFFLEtBQUssT0FBTyxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBRTNHOzs7Ozs7Ozs7OztHQVdHO0FBQ0gscUJBQWEsYUFBYTs7SUFnQnhCOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FRcEM7SUFFRCxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxVQUFVLEdBQUcsU0FBUyxDQUVsRDtJQUVELEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFM0I7SUFFRCxPQUFPLElBQUksT0FBTyxDQUVqQjtJQUVELFVBQVUsSUFBSSxNQUFNLENBRW5CO0lBTUQ7OztPQUdHO0lBQ0Ysd0JBQXdCLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxLQUFLLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBV3RHO0lBRUQ7Ozs7T0FJRztJQUNGLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQU9qRztJQUVELG9DQUFvQztJQUNuQyxlQUFlLElBQUksU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBRWxEO0lBTUQsb0RBQW9EO0lBQ3BELFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FHakM7SUFFRCxzRUFBc0U7SUFDdEUsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsR0FBRyxJQUFJLENBR3JEO0lBRUQsa0VBQWtFO0lBQ2xFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FFL0I7SUFFRCw4RUFBOEU7SUFDOUUsV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsR0FBRyxJQUFJLENBSXREO0lBRUQsaURBQWlEO0lBQ2pELGFBQWEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FFcEM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQWlCN0Q7SUFFRCxrRUFBa0U7SUFDbEUsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsR0FBRyxJQUFJLENBRTFEO0lBRUQsMERBQTBEO0lBQzFELGlCQUFpQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FFeEQ7SUFFRCx3Q0FBd0M7SUFDeEMsZUFBZSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBSXhDO0lBRUQsNkNBQTZDO0lBQzdDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FTM0I7SUFFRCxxRUFBcUU7SUFDckUsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxJQUFJLENBRS9DO0lBRUQsOEVBQThFO0lBQzlFLG1CQUFtQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUUxQztJQU1ELDBEQUEwRDtJQUMxRCxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLFVBQVUsRUFBRSxDQWFwRDtJQUVELDZDQUE2QztJQUM3QyxpQkFBaUIsSUFBSSxNQUFNLENBRTFCO0lBRUQsd0VBQXdFO0lBQ3hFLHdCQUF3QixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBYWhEO0lBRUQsbURBQW1EO0lBQ25ELDBCQUEwQixJQUFJLFVBQVUsR0FBRyxTQUFTLENBUW5EO0lBRUQsb0NBQW9DO0lBQ3BDLGFBQWEsSUFBSSxVQUFVLEVBQUUsQ0FTNUI7SUFFRCxvREFBb0Q7SUFDcEQsbUJBQW1CLElBQUksTUFBTSxFQUFFLENBRTlCO0lBRUQscUVBQXFFO0lBQ3JFLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FFMUQ7SUFFRCxvQ0FBb0M7SUFDcEMscUJBQXFCLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUUvRDtJQU1ELDBFQUEwRTtJQUMxRSxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxHQUFHLFVBQVUsRUFBRSxDQVFuRDtJQUVELGdFQUFnRTtJQUNoRSxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQVFwRDtJQUVELDhFQUE4RTtJQUM5RSx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLE1BQU0sRUFBRSxDQVF4RDtJQUVELDREQUE0RDtJQUM1RCxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBRWpEO0lBRUQsbUVBQW1FO0lBQ25FLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FTakQ7SUFNRCw2RUFBNkU7SUFDN0UsUUFBUSxJQUFJO1FBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FtQjVGO0lBRUQsMEVBQTBFO0lBQzFFLHFCQUFxQixJQUFJLE1BQU0sQ0FNOUI7SUFFRCx1REFBdUQ7SUFDdkQsV0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBUW5DO0NBa0RGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_indices.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_indices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_pool_indices.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_indices.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { compareFee, compareTxHash } from './tx_metadata.js';
1
+ import { insertIntoSortedArray, removeFromSortedArray } from '@aztec/foundation/array';
2
+ import { comparePriority } from './tx_metadata.js';
2
3
  /**
3
4
  * Manages in-memory indices for the transaction pool.
4
5
  *
@@ -14,7 +15,7 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
14
15
  /** Primary metadata store: txHash -> TxMetaData */ #metadata = new Map();
15
16
  /** Nullifier to txHash index (pending txs only) */ #nullifierToTxHash = new Map();
16
17
  /** Fee payer to txHashes index (pending txs only) */ #feePayerToTxHashes = new Map();
17
- /** Pending txHashes grouped by priority fee */ #pendingByPriority = new Map();
18
+ /** Pending transactions sorted ascending by priority fee, ties broken by txHash */ #pendingByPriority = [];
18
19
  /** Protected transactions: txHash -> slotNumber */ #protectedTransactions = new Map();
19
20
  // ============================================================================
20
21
  // STATE QUERIES
@@ -53,22 +54,13 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
53
54
  * Iterates pending transaction hashes in priority order.
54
55
  * @param order - 'desc' for highest priority first, 'asc' for lowest priority first
55
56
  */ *iteratePendingByPriority(order, filter) {
56
- // Use compareFee from tx_metadata, swap args for descending order
57
- const feeCompareFn = order === 'desc' ? (a, b)=>compareFee(b, a) : compareFee;
58
- const hashCompareFn = order === 'desc' ? (a, b)=>compareTxHash(b, a) : compareTxHash;
59
- const sortedFees = [
60
- ...this.#pendingByPriority.keys()
61
- ].sort(feeCompareFn);
62
- for (const fee of sortedFees){
63
- const hashesAtFee = this.#pendingByPriority.get(fee);
64
- // Use compareTxHash from tx_metadata, swap args for descending order
65
- const sortedHashes = [
66
- ...hashesAtFee
67
- ].sort(hashCompareFn);
68
- for (const hash of sortedHashes){
69
- if (filter === undefined || filter(hash)) {
70
- yield hash;
71
- }
57
+ const arr = this.#pendingByPriority;
58
+ const start = order === 'asc' ? 0 : arr.length - 1;
59
+ const step = order === 'asc' ? 1 : -1;
60
+ const inBounds = order === 'asc' ? (i)=>i < arr.length : (i)=>i >= 0;
61
+ for(let i = start; inBounds(i); i += step){
62
+ if (filter === undefined || filter(arr[i].txHash)) {
63
+ yield arr[i].txHash;
72
64
  }
73
65
  }
74
66
  }
@@ -170,11 +162,7 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
170
162
  return result;
171
163
  }
172
164
  /** Gets the count of pending transactions */ getPendingTxCount() {
173
- let count = 0;
174
- for (const hashes of this.#pendingByPriority.values()){
175
- count += hashes.size;
176
- }
177
- return count;
165
+ return this.#pendingByPriority.length;
178
166
  }
179
167
  /** Gets the lowest priority pending transaction hashes (up to limit) */ getLowestPriorityPending(limit) {
180
168
  if (limit <= 0) {
@@ -200,12 +188,10 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
200
188
  }
201
189
  /** Gets all pending transactions */ getPendingTxs() {
202
190
  const result = [];
203
- for (const hashSet of this.#pendingByPriority.values()){
204
- for (const txHash of hashSet){
205
- const meta = this.#metadata.get(txHash);
206
- if (meta) {
207
- result.push(meta);
208
- }
191
+ for (const entry of this.#pendingByPriority){
192
+ const meta = this.#metadata.get(entry.txHash);
193
+ if (meta) {
194
+ result.push(meta);
209
195
  }
210
196
  }
211
197
  return result;
@@ -322,13 +308,11 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
322
308
  this.#feePayerToTxHashes.set(meta.feePayer, feePayerSet);
323
309
  }
324
310
  feePayerSet.add(meta.txHash);
325
- // Add to priority bucket
326
- let prioritySet = this.#pendingByPriority.get(meta.priorityFee);
327
- if (!prioritySet) {
328
- prioritySet = new Set();
329
- this.#pendingByPriority.set(meta.priorityFee, prioritySet);
330
- }
331
- prioritySet.add(meta.txHash);
311
+ insertIntoSortedArray(this.#pendingByPriority, {
312
+ txHash: meta.txHash,
313
+ priorityFee: meta.priorityFee,
314
+ txHashBigInt: meta.txHashBigInt
315
+ }, comparePriority, false);
332
316
  }
333
317
  #removeFromPendingIndices(meta) {
334
318
  // Remove from nullifier index
@@ -343,13 +327,11 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
343
327
  this.#feePayerToTxHashes.delete(meta.feePayer);
344
328
  }
345
329
  }
346
- // Remove from priority map
347
- const hashSet = this.#pendingByPriority.get(meta.priorityFee);
348
- if (hashSet) {
349
- hashSet.delete(meta.txHash);
350
- if (hashSet.size === 0) {
351
- this.#pendingByPriority.delete(meta.priorityFee);
352
- }
353
- }
330
+ // Remove from priority array
331
+ removeFromSortedArray(this.#pendingByPriority, {
332
+ txHash: meta.txHash,
333
+ priorityFee: meta.priorityFee,
334
+ txHashBigInt: meta.txHashBigInt
335
+ }, comparePriority);
354
336
  }
355
337
  }
@@ -57,4 +57,4 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
57
57
  stop(): Promise<void>;
58
58
  }
59
59
  export {};
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Mi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL3R4X3Bvb2xfdjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFLbkYsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEgsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBR2hEOzs7OztHQUtHO0FBQ0gscUJBQWEsZUFBZ0IsU0FBUSxvQkFBOEQsWUFBVyxRQUFROztJQVNwSCxZQUNFLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsWUFBWSxFQUFFLGlCQUFpQixFQUMvQixJQUFJLEVBQUUsb0JBQW9CLEVBQzFCLFNBQVMsR0FBRSxlQUFzQyxFQUNqRCxNQUFNLEdBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBTSxFQUNwQyxZQUFZLEdBQUUsWUFBaUMsRUFDL0MsR0FBRyxTQUFpQyxFQXlCckM7SUFRRCxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRTtRQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQU8sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBRTNHO0lBRUQsZUFBZSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FFdkQ7SUFFRCxlQUFlLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxHQUFFO1FBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVGO0lBRUQsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUVwRTtJQUVELFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUU7UUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFeEY7SUFJRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFOUM7SUFFRCxjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXBEO0lBRUQsa0JBQWtCLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtRQUFFLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU5RjtJQUVELHFCQUFxQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXZEO0lBRUQsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXREO0lBSUQsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FFbkQ7SUFFRCxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBRTVEO0lBRUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FFN0M7SUFFRCxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FFcEU7SUFFRCxrQkFBa0IsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FFdEM7SUFFRCwwQkFBMEIsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FFOUM7SUFFRCxpQkFBaUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRW5DO0lBRUQsZ0JBQWdCLElBQUksT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FFakQ7SUFFRCxlQUFlLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUVqQztJQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBRTFCO0lBRUQsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUUzRDtJQUVELHdCQUF3QixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBRXpEO0lBSUQsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUszRDtJQUlEOztPQUVHO0lBQ0csS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FvQzNCO0lBRUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLMUI7Q0FDRiJ9
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Mi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL3R4X3Bvb2xfdjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFLbkYsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEgsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBR2hEOzs7OztHQUtHO0FBQ0gscUJBQWEsZUFBZ0IsU0FBUSxvQkFBOEQsWUFBVyxRQUFROztJQVNwSCxZQUNFLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsWUFBWSxFQUFFLGlCQUFpQixFQUMvQixJQUFJLEVBQUUsb0JBQW9CLEVBQzFCLFNBQVMsR0FBRSxlQUFzQyxFQUNqRCxNQUFNLEdBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBTSxFQUNwQyxZQUFZLEdBQUUsWUFBaUMsRUFDL0MsR0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_v2.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_pool_v2.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,9 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
41
41
  this.emit('txs-removed', {
42
42
  txHashes: hashes
43
43
  });
44
+ },
45
+ onTxsMined: (txHashes)=>{
46
+ this.#metrics?.transactionsRemoved(txHashes);
44
47
  }
45
48
  };
46
49
  // Create the implementation
@@ -15,6 +15,7 @@ export interface TxPoolV2Callbacks {
15
15
  source?: string;
16
16
  }) => void;
17
17
  onTxsRemoved: (txHashes: string[] | bigint[]) => void;
18
+ onTxsMined: (txHashes: string[]) => void;
18
19
  }
19
20
  /**
20
21
  * Implementation of TxPoolV2 logic.
@@ -74,4 +75,4 @@ export declare class TxPoolV2Impl {
74
75
  totalMetadataBytes: number;
75
76
  };
76
77
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Ml9pbXBsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF92Ml9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW9CL0QsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUVqQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxjQUFjLEVBQ25CLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFtQixLQUFLLE9BQU8sRUFBMkMsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRzs7R0FFRztBQUNILE1BQU0sV0FBVyxpQkFBaUI7SUFDaEMsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtRQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssSUFBSSxDQUFDO0lBQzNELFlBQVksRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUM7Q0FDdkQ7QUFFRDs7OztHQUlHO0FBQ0gscUJBQWEs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
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Ml9pbXBsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF92Ml9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW9CL0QsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUVqQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxjQUFjLEVBQ25CLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFtQixLQUFLLE9BQU8sRUFBMkMsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRzs7R0FFRztBQUNILE1BQU0sV0FBVyxpQkFBaUI7SUFDaEMsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtRQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssSUFBSSxDQUFDO0lBQzNELFlBQVksRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDdEQsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFF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
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_v2_impl.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_pool_v2_impl.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts"],"names":[],"mappings":"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"}
@@ -128,9 +128,32 @@ import { TxPoolIndices } from './tx_pool_indices.js';
128
128
  const rejected = [];
129
129
  const errors = new Map();
130
130
  const acceptedPending = new Set();
131
+ // Phase 1: Pre-compute all throwable I/O outside the transaction.
132
+ // If any pre-computation throws, the entire call fails before mutations happen.
133
+ const precomputed = new Map();
134
+ const validator = await this.#createTxValidator();
135
+ for (const tx of txs){
136
+ const txHash = tx.getTxHash();
137
+ const txHashStr = txHash.toString();
138
+ const meta = await buildTxMetaData(tx);
139
+ const minedBlockId = await this.#getMinedBlockId(txHash);
140
+ // Validate non-mined txs (mined and pre-protected txs bypass validation inside the transaction)
141
+ let isValid = true;
142
+ if (!minedBlockId) {
143
+ isValid = await this.#validateMeta(meta, validator);
144
+ }
145
+ precomputed.set(txHashStr, {
146
+ meta,
147
+ minedBlockId,
148
+ isValid
149
+ });
150
+ }
151
+ // Phase 2: Apply mutations inside the transaction using only pre-computed results,
152
+ // in-memory reads, and buffered DB writes. Nothing here can throw an unhandled exception.
131
153
  const poolAccess = this.#createPreAddPoolAccess();
132
154
  const preAddContext = opts.feeComparisonOnly !== undefined ? {
133
- feeComparisonOnly: opts.feeComparisonOnly
155
+ feeComparisonOnly: opts.feeComparisonOnly,
156
+ priceBumpPercentage: this.#config.priceBumpPercentage
134
157
  } : undefined;
135
158
  await this.#store.transactionAsync(async ()=>{
136
159
  for (const tx of txs){
@@ -141,28 +164,28 @@ import { TxPoolIndices } from './tx_pool_indices.js';
141
164
  ignored.push(txHash);
142
165
  continue;
143
166
  }
144
- // Check mined status first (applies to all paths)
145
- const minedBlockId = await this.#getMinedBlockId(txHash);
167
+ const { meta, minedBlockId, isValid } = precomputed.get(txHashStr);
146
168
  const preProtectedSlot = this.#indices.getProtectionSlot(txHashStr);
147
169
  if (minedBlockId) {
148
170
  // Already mined - add directly (protection already set if pre-protected)
149
171
  await this.#addTx(tx, {
150
172
  mined: minedBlockId
151
- }, opts);
173
+ }, opts, meta);
152
174
  accepted.push(txHash);
153
175
  } else if (preProtectedSlot !== undefined) {
154
176
  // Pre-protected and not mined - add as protected (bypass validation)
155
177
  await this.#addTx(tx, {
156
178
  protected: preProtectedSlot
157
- }, opts);
179
+ }, opts, meta);
158
180
  accepted.push(txHash);
181
+ } else if (!isValid) {
182
+ // Failed pre-computed validation
183
+ rejected.push(txHash);
159
184
  } else {
160
- // Regular pending tx - validate and run pre-add rules
161
- const result = await this.#tryAddRegularPendingTx(tx, opts, poolAccess, acceptedPending, ignored, errors, preAddContext);
185
+ // Regular pending tx - run pre-add rules using pre-computed metadata
186
+ const result = await this.#tryAddRegularPendingTx(tx, meta, opts, poolAccess, acceptedPending, ignored, errors, preAddContext);
162
187
  if (result.status === 'accepted') {
163
188
  acceptedPending.add(txHashStr);
164
- } else if (result.status === 'rejected') {
165
- rejected.push(txHash);
166
189
  } else {
167
190
  ignored.push(txHash);
168
191
  }
@@ -197,18 +220,10 @@ import { TxPoolIndices } from './tx_pool_indices.js';
197
220
  } : {}
198
221
  };
199
222
  }
200
- /** Validates and adds a regular pending tx. Returns status. */ async #tryAddRegularPendingTx(tx, opts, poolAccess, acceptedPending, ignored, errors, preAddContext) {
201
- const txHash = tx.getTxHash();
202
- const txHashStr = txHash.toString();
203
- // Build metadata and validate using metadata
204
- const meta = await buildTxMetaData(tx);
205
- if (!await this.#validateMeta(meta)) {
206
- return {
207
- status: 'rejected'
208
- };
209
- }
223
+ /** Adds a validated pending tx, running pre-add rules and evicting conflicts. */ async #tryAddRegularPendingTx(tx, precomputedMeta, opts, poolAccess, acceptedPending, ignored, errors, preAddContext) {
224
+ const txHashStr = tx.getTxHash().toString();
210
225
  // Run pre-add rules
211
- const preAddResult = await this.#evictionManager.runPreAddRules(meta, poolAccess, preAddContext);
226
+ const preAddResult = await this.#evictionManager.runPreAddRules(precomputedMeta, poolAccess, preAddContext);
212
227
  if (preAddResult.shouldIgnore) {
213
228
  this.#log.debug(`Ignoring tx ${txHashStr}: ${preAddResult.reason?.message ?? 'unknown reason'}`);
214
229
  if (preAddResult.reason && preAddResult.reason.code !== TxPoolRejectionCode.INTERNAL_ERROR) {
@@ -254,7 +269,7 @@ import { TxPoolIndices } from './tx_pool_indices.js';
254
269
  };
255
270
  }
256
271
  // Add the transaction
257
- await this.#addTx(tx, 'pending', opts);
272
+ await this.#addTx(tx, 'pending', opts, precomputedMeta);
258
273
  return {
259
274
  status: 'accepted'
260
275
  };
@@ -396,6 +411,9 @@ import { TxPoolIndices } from './tx_pool_indices.js';
396
411
  // Step 5: Run post-event eviction rules (inside transaction for atomicity)
397
412
  await this.#evictionManager.evictAfterNewBlock(block.header, nullifiers, feePayers);
398
413
  });
414
+ if (found.length > 0) {
415
+ this.#callbacks.onTxsMined(found.map((m)=>m.txHash));
416
+ }
399
417
  this.#log.info(`Marked ${found.length} txs as mined in block ${blockId.number}`);
400
418
  }
401
419
  async prepareForSlot(slotNumber) {
@@ -623,9 +641,9 @@ import { TxPoolIndices } from './tx_pool_indices.js';
623
641
  /**
624
642
  * Adds a new transaction to the pool with the specified state.
625
643
  * Emits onTxsAdded callback immediately after DB write.
626
- */ async #addTx(tx, state, opts = {}) {
644
+ */ async #addTx(tx, state, opts = {}, precomputedMeta) {
627
645
  const txHashStr = tx.getTxHash().toString();
628
- const meta = await buildTxMetaData(tx);
646
+ const meta = precomputedMeta ?? await buildTxMetaData(tx);
629
647
  meta.receivedAt = this.#dateProvider.now();
630
648
  await this.#txsDB.set(txHashStr, tx.toBuffer());
631
649
  await this.#deletedPool.clearSoftDeleted(txHashStr);
@@ -1,9 +1,11 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import type { BlockProposal, P2PValidator } from '@aztec/stdlib/p2p';
3
- import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
4
- export declare class BlockProposalValidator extends ProposalValidator<BlockProposal> implements P2PValidator<BlockProposal> {
2
+ import type { BlockProposal, P2PValidator, ValidationResult } from '@aztec/stdlib/p2p';
3
+ export declare class BlockProposalValidator implements P2PValidator<BlockProposal> {
4
+ private proposalValidator;
5
5
  constructor(epochCache: EpochCacheInterface, opts: {
6
6
  txsPermitted: boolean;
7
+ maxTxsPerBlock?: number;
7
8
  });
9
+ validate(proposal: BlockProposal): Promise<ValidationResult>;
8
10
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL2Jsb2NrX3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSxzQkFBdUIsU0FBUSxpQkFBaUIsQ0FBQyxhQUFhLENBQUUsWUFBVyxZQUFZLENBQUMsYUFBYSxDQUFDO0lBQ2pILFlBQVksVUFBVSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRTtRQUFFLFlBQVksRUFBRSxPQUFPLENBQUE7S0FBRSxFQUUzRTtDQUNGIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL2Jsb2NrX3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUl2RixxQkFBYSxzQkFBdUIsWUFBVyxZQUFZLENBQUMsYUFBYSxDQUFDO0lBQ3hFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBb0I7SUFFN0MsWUFBWSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFO1FBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQztRQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBRXBHO0lBRUssUUFBUSxDQUFDLFFBQVEsRUFBRSxhQUFhLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBTWpFO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,qBAAa,sBAAuB,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,YAAY,CAAC,aAAa,CAAC;IACjH,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,EAE3E;CACF"}
1
+ {"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIvF,qBAAa,sBAAuB,YAAW,YAAY,CAAC,aAAa,CAAC;IACxE,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAEpG;IAEK,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAMjE;CACF"}
@@ -1,6 +1,14 @@
1
1
  import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
2
- export class BlockProposalValidator extends ProposalValidator {
2
+ export class BlockProposalValidator {
3
+ proposalValidator;
3
4
  constructor(epochCache, opts){
4
- super(epochCache, opts, 'p2p:block_proposal_validator');
5
+ this.proposalValidator = new ProposalValidator(epochCache, opts, 'p2p:block_proposal_validator');
6
+ }
7
+ async validate(proposal) {
8
+ const headerResult = await this.proposalValidator.validate(proposal);
9
+ if (headerResult.result !== 'accept') {
10
+ return headerResult;
11
+ }
12
+ return this.proposalValidator.validateTxs(proposal);
5
13
  }
6
14
  }
@@ -1,9 +1,11 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import type { CheckpointProposal, P2PValidator } from '@aztec/stdlib/p2p';
3
- import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
4
- export declare class CheckpointProposalValidator extends ProposalValidator<CheckpointProposal> implements P2PValidator<CheckpointProposal> {
2
+ import type { CheckpointProposal, P2PValidator, ValidationResult } from '@aztec/stdlib/p2p';
3
+ export declare class CheckpointProposalValidator implements P2PValidator<CheckpointProposal> {
4
+ private proposalValidator;
5
5
  constructor(epochCache: EpochCacheInterface, opts: {
6
6
  txsPermitted: boolean;
7
+ maxTxsPerBlock?: number;
7
8
  });
9
+ validate(proposal: CheckpointProposal): Promise<ValidationResult>;
8
10
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSwyQkFDWCxTQUFRLGlCQUFpQixDQUFDLGtCQUFrQixDQUM1QyxZQUFXLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztJQUUzQyxZQUFZLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7UUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFBO0tBQUUsRUFFM0U7Q0FDRiJ9
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk1RixxQkFBYSwyQkFBNEIsWUFBVyxZQUFZLENBQUMsa0JBQWtCLENBQUM7SUFDbEYsT0FBTyxDQUFDLGlCQUFpQixDQUFvQjtJQUU3QyxZQUFZLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7UUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDO1FBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsRUFFcEc7SUFFSyxRQUFRLENBQUMsUUFBUSxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQVl0RTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,qBAAa,2BACX,SAAQ,iBAAiB,CAAC,kBAAkB,CAC5C,YAAW,YAAY,CAAC,kBAAkB,CAAC;IAE3C,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,EAE3E;CACF"}
1
+ {"version":3,"file":"checkpoint_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI5F,qBAAa,2BAA4B,YAAW,YAAY,CAAC,kBAAkB,CAAC;IAClF,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAEpG;IAEK,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYtE;CACF"}
@@ -1,6 +1,20 @@
1
1
  import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
2
- export class CheckpointProposalValidator extends ProposalValidator {
2
+ export class CheckpointProposalValidator {
3
+ proposalValidator;
3
4
  constructor(epochCache, opts){
4
- super(epochCache, opts, 'p2p:checkpoint_proposal_validator');
5
+ this.proposalValidator = new ProposalValidator(epochCache, opts, 'p2p:checkpoint_proposal_validator');
6
+ }
7
+ async validate(proposal) {
8
+ const headerResult = await this.proposalValidator.validate(proposal);
9
+ if (headerResult.result !== 'accept') {
10
+ return headerResult;
11
+ }
12
+ const blockProposal = proposal.getBlockProposal();
13
+ if (blockProposal) {
14
+ return this.proposalValidator.validateTxs(blockProposal);
15
+ }
16
+ return {
17
+ result: 'accept'
18
+ };
5
19
  }
6
20
  }