@aztec/p2p 0.0.1-commit.96dac018d → 0.0.1-commit.993d52e

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 (98) hide show
  1. package/dest/client/factory.d.ts +4 -5
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +6 -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 -1
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +1 -2
  10. package/dest/config.d.ts +10 -3
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +11 -1
  13. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  14. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  15. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
  16. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +7 -1
  17. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  18. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +1 -1
  19. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  20. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +8 -6
  21. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +2 -2
  22. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  23. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
  24. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  25. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  26. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  27. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +3 -3
  28. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  29. package/dest/mem_pools/tx_pool_v2/interfaces.js +1 -1
  30. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +30 -7
  31. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  32. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +62 -16
  33. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  34. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  35. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +9 -10
  36. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +1 -1
  37. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  38. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +38 -30
  39. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +2 -1
  40. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  41. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +2 -1
  42. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  43. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +3 -1
  44. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  45. package/dest/msg_validators/proposal_validator/proposal_validator.js +10 -0
  46. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +2 -1
  47. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -1
  48. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +166 -0
  49. package/dest/services/encoding.d.ts +2 -2
  50. package/dest/services/encoding.d.ts.map +1 -1
  51. package/dest/services/encoding.js +7 -7
  52. package/dest/services/libp2p/libp2p_service.d.ts +6 -7
  53. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  54. package/dest/services/libp2p/libp2p_service.js +11 -12
  55. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +1 -1
  56. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  57. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +37 -14
  58. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +11 -17
  59. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  60. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +15 -49
  61. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  62. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  63. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  64. package/dest/test-helpers/mock-pubsub.d.ts +2 -3
  65. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  66. package/dest/test-helpers/mock-pubsub.js +2 -2
  67. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  68. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  69. package/dest/test-helpers/reqresp-nodes.js +2 -2
  70. package/dest/testbench/p2p_client_testbench_worker.js +5 -5
  71. package/package.json +14 -14
  72. package/src/client/factory.ts +9 -14
  73. package/src/client/interface.ts +3 -9
  74. package/src/client/p2p_client.ts +2 -12
  75. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +1 -2
  76. package/src/config.ts +20 -2
  77. package/src/mem_pools/tx_pool_v2/README.md +9 -1
  78. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
  79. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +11 -1
  80. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +15 -6
  81. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +2 -1
  82. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  83. package/src/mem_pools/tx_pool_v2/interfaces.ts +3 -3
  84. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +89 -17
  85. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +11 -11
  86. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +43 -27
  87. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +1 -1
  88. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +1 -1
  89. package/src/msg_validators/proposal_validator/proposal_validator.ts +15 -1
  90. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +144 -1
  91. package/src/services/encoding.ts +5 -6
  92. package/src/services/libp2p/libp2p_service.ts +10 -12
  93. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +42 -14
  94. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +24 -63
  95. package/src/test-helpers/make-test-p2p-clients.ts +0 -2
  96. package/src/test-helpers/mock-pubsub.ts +3 -6
  97. package/src/test-helpers/reqresp-nodes.ts +2 -5
  98. package/src/testbench/p2p_client_testbench_worker.ts +2 -6
@@ -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) {
@@ -246,15 +261,8 @@ import { TxPoolIndices } from './tx_pool_indices.js';
246
261
  }
247
262
  }
248
263
  }
249
- // Randomly drop the transaction for testing purposes (report as accepted so it propagates)
250
- if (this.#config.dropTransactionsProbability > 0 && Math.random() < this.#config.dropTransactionsProbability) {
251
- this.#log.debug(`Dropping tx ${txHashStr} (simulated drop for testing)`);
252
- return {
253
- status: 'accepted'
254
- };
255
- }
256
264
  // Add the transaction
257
- await this.#addTx(tx, 'pending', opts);
265
+ await this.#addTx(tx, 'pending', opts, precomputedMeta);
258
266
  return {
259
267
  status: 'accepted'
260
268
  };
@@ -623,9 +631,9 @@ import { TxPoolIndices } from './tx_pool_indices.js';
623
631
  /**
624
632
  * Adds a new transaction to the pool with the specified state.
625
633
  * Emits onTxsAdded callback immediately after DB write.
626
- */ async #addTx(tx, state, opts = {}) {
634
+ */ async #addTx(tx, state, opts = {}, precomputedMeta) {
627
635
  const txHashStr = tx.getTxHash().toString();
628
- const meta = await buildTxMetaData(tx);
636
+ const meta = precomputedMeta ?? await buildTxMetaData(tx);
629
637
  meta.receivedAt = this.#dateProvider.now();
630
638
  await this.#txsDB.set(txHashStr, tx.toBuffer());
631
639
  await this.#deletedPool.clearSoftDeleted(txHashStr);
@@ -4,6 +4,7 @@ import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
4
4
  export declare class BlockProposalValidator extends ProposalValidator<BlockProposal> implements P2PValidator<BlockProposal> {
5
5
  constructor(epochCache: EpochCacheInterface, opts: {
6
6
  txsPermitted: boolean;
7
+ maxTxsPerBlock?: number;
7
8
  });
8
9
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL2Jsb2NrX3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSxzQkFBdUIsU0FBUSxpQkFBaUIsQ0FBQyxhQUFhLENBQUUsWUFBVyxZQUFZLENBQUMsYUFBYSxDQUFDO0lBQ2pILFlBQVksVUFBVSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRTtRQUFFLFlBQVksRUFBRSxPQUFPLENBQUE7S0FBRSxFQUUzRTtDQUNGIn0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL2Jsb2NrX3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSxzQkFBdUIsU0FBUSxpQkFBaUIsQ0FBQyxhQUFhLENBQUUsWUFBVyxZQUFZLENBQUMsYUFBYSxDQUFDO0lBQ2pILFlBQVksVUFBVSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRTtRQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7UUFBQyxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxFQUVwRztDQUNGIn0=
@@ -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,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,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAEpG;CACF"}
@@ -4,6 +4,7 @@ import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
4
4
  export declare class CheckpointProposalValidator extends ProposalValidator<CheckpointProposal> implements P2PValidator<CheckpointProposal> {
5
5
  constructor(epochCache: EpochCacheInterface, opts: {
6
6
  txsPermitted: boolean;
7
+ maxTxsPerBlock?: number;
7
8
  });
8
9
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSwyQkFDWCxTQUFRLGlCQUFpQixDQUFDLGtCQUFrQixDQUM1QyxZQUFXLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztJQUUzQyxZQUFZLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7UUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFBO0tBQUUsRUFFM0U7Q0FDRiJ9
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSwyQkFDWCxTQUFRLGlCQUFpQixDQUFDLGtCQUFrQixDQUM1QyxZQUFXLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztJQUUzQyxZQUFZLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7UUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDO1FBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsRUFFcEc7Q0FDRiJ9
@@ -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,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,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAEpG;CACF"}
@@ -5,9 +5,11 @@ export declare abstract class ProposalValidator<TProposal extends BlockProposal
5
5
  protected epochCache: EpochCacheInterface;
6
6
  protected logger: Logger;
7
7
  protected txsPermitted: boolean;
8
+ protected maxTxsPerBlock?: number;
8
9
  constructor(epochCache: EpochCacheInterface, opts: {
9
10
  txsPermitted: boolean;
11
+ maxTxsPerBlock?: number;
10
12
  }, loggerName: string);
11
13
  validate(proposal: TProposal): Promise<ValidationResult>;
12
14
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFxQixLQUFLLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJaEgsOEJBQXNCLGlCQUFpQixDQUFDLFNBQVMsU0FBUyxhQUFhLEdBQUcsa0JBQWtCO0lBQzFGLFNBQVMsQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDMUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDekIsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7SUFFaEMsWUFBWSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFO1FBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFJL0Y7SUFFWSxRQUFRLENBQUMsUUFBUSxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0F3RXBFO0NBQ0YifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFxQixLQUFLLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJaEgsOEJBQXNCLGlCQUFpQixDQUFDLFNBQVMsU0FBUyxhQUFhLEdBQUcsa0JBQWtCO0lBQzFGLFNBQVMsQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDMUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDekIsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7SUFDaEMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVsQyxZQUNFLFVBQVUsRUFBRSxtQkFBbUIsRUFDL0IsSUFBSSxFQUFFO1FBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQztRQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQ3hELFVBQVUsRUFBRSxNQUFNLEVBTW5CO0lBRVksUUFBUSxDQUFDLFFBQVEsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBZ0ZwRTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAqB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIhH,8BAAsB,iBAAiB,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB;IAC1F,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAEhC,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,EAI/F;IAEY,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwEpE;CACF"}
1
+ {"version":3,"file":"proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAqB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIhH,8BAAsB,iBAAiB,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB;IAC1F,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAElC,YACE,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EACxD,UAAU,EAAE,MAAM,EAMnB;IAEY,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgFpE;CACF"}
@@ -6,9 +6,11 @@ export class ProposalValidator {
6
6
  epochCache;
7
7
  logger;
8
8
  txsPermitted;
9
+ maxTxsPerBlock;
9
10
  constructor(epochCache, opts, loggerName){
10
11
  this.epochCache = epochCache;
11
12
  this.txsPermitted = opts.txsPermitted;
13
+ this.maxTxsPerBlock = opts.maxTxsPerBlock;
12
14
  this.logger = createLogger(loggerName);
13
15
  }
14
16
  async validate(proposal) {
@@ -51,6 +53,14 @@ export class ProposalValidator {
51
53
  severity: PeerErrorSeverity.MidToleranceError
52
54
  };
53
55
  }
56
+ // Max txs per block check
57
+ if (this.maxTxsPerBlock !== undefined && proposal.txHashes.length > this.maxTxsPerBlock) {
58
+ this.logger.warn(`Penalizing peer for proposal with ${proposal.txHashes.length} transaction(s) when max is ${this.maxTxsPerBlock}`);
59
+ return {
60
+ result: 'reject',
61
+ severity: PeerErrorSeverity.MidToleranceError
62
+ };
63
+ }
54
64
  // Embedded txs must be listed in txHashes
55
65
  const hashSet = new Set(proposal.txHashes.map((h)=>h.toString()));
56
66
  const missingTxHashes = embeddedTxCount > 0 ? proposal.txs.filter((tx)=>!hashSet.has(tx.getTxHash().toString())).map((tx)=>tx.getTxHash().toString()) : [];
@@ -7,6 +7,7 @@ import type { MockProxy } from 'jest-mock-extended';
7
7
  export interface ProposalValidatorTestParams<TProposal extends BlockProposal | CheckpointProposal> {
8
8
  validatorFactory: (epochCache: EpochCacheInterface, opts: {
9
9
  txsPermitted: boolean;
10
+ maxTxsPerBlock?: number;
10
11
  }) => {
11
12
  validate: (proposal: TProposal) => Promise<ValidationResult>;
12
13
  };
@@ -20,4 +21,4 @@ export interface ProposalValidatorTestParams<TProposal extends BlockProposal | C
20
21
  epochCacheMock: () => MockProxy<EpochCacheInterface>;
21
22
  }
22
23
  export declare function sharedProposalValidatorTests<TProposal extends BlockProposal | CheckpointProposal>(params: ProposalValidatorTestParams<TProposal>): void;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvcHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsS0FBSyxhQUFhLEVBQ2xCLEtBQUssa0JBQWtCLEVBRXZCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxXQUFXLDJCQUEyQixDQUFDLFNBQVMsU0FBUyxhQUFhLEdBQUcsa0JBQWtCO0lBQy9GLGdCQUFnQixFQUFFLENBQ2hCLFVBQVUsRUFBRSxtQkFBbUIsRUFDL0IsSUFBSSxFQUFFO1FBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQTtLQUFFLEtBQzVCO1FBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtLQUFFLENBQUM7SUFDdEUsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sS0FBSyxHQUFHLENBQUM7SUFDN0csU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0lBQ2pDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsS0FBSyxVQUFVLENBQUM7SUFDckQsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLEtBQUssR0FBRyxDQUFDO0lBQ3hDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDckMsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDcEIsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Q0FDdEQ7QUFFRCx3QkFBZ0IsNEJBQTRCLENBQUMsU0FBUyxTQUFTLGFBQWEsR0FBRyxrQkFBa0IsRUFDL0YsTUFBTSxFQUFFLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxRQXdNL0MifQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvcHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsS0FBSyxhQUFhLEVBQ2xCLEtBQUssa0JBQWtCLEVBRXZCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHL0MsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxXQUFXLDJCQUEyQixDQUFDLFNBQVMsU0FBUyxhQUFhLEdBQUcsa0JBQWtCO0lBQy9GLGdCQUFnQixFQUFFLENBQ2hCLFVBQVUsRUFBRSxtQkFBbUIsRUFDL0IsSUFBSSxFQUFFO1FBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQztRQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQ3JEO1FBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtLQUFFLENBQUM7SUFDdEUsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sS0FBSyxHQUFHLENBQUM7SUFDN0csU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0lBQ2pDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsS0FBSyxVQUFVLENBQUM7SUFDckQsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLEtBQUssR0FBRyxDQUFDO0lBQ3hDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDckMsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDcEIsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Q0FDdEQ7QUFFRCx3QkFBZ0IsNEJBQTRCLENBQUMsU0FBUyxTQUFTLGFBQWEsR0FBRyxrQkFBa0IsRUFDL0YsTUFBTSxFQUFFLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxRQXFWL0MifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"proposal_validator_test_suite.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/proposal_validator_test_suite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,2BAA2B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB;IAC/F,gBAAgB,EAAE,CAChB,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,KAC5B;QAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAAE,CAAC;IACtE,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IAC7G,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,UAAU,CAAC;IACrD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC;CACtD;AAED,wBAAgB,4BAA4B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB,EAC/F,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,QAwM/C"}
1
+ {"version":3,"file":"proposal_validator_test_suite.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/proposal_validator_test_suite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,2BAA2B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB;IAC/F,gBAAgB,EAAE,CAChB,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KACrD;QAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAAE,CAAC;IACtE,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IAC7G,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,UAAU,CAAC;IACrD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC;CACtD;AAED,wBAAgB,4BAA4B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB,EAC/F,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,QAqV/C"}
@@ -1,4 +1,6 @@
1
+ import { NoCommitteeError } from '@aztec/ethereum/contracts';
1
2
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
3
+ import { jest } from '@jest/globals';
2
4
  export function sharedProposalValidatorTests(params) {
3
5
  const { validatorFactory, makeProposal, makeHeader, getSigner, getAddress, getSlot, getTxHashes, epochCacheMock } = params;
4
6
  describe('shared proposal validation logic', ()=>{
@@ -74,6 +76,25 @@ export function sharedProposalValidatorTests(params) {
74
76
  result: 'ignore'
75
77
  });
76
78
  });
79
+ it('returns mid tolerance error if proposal has invalid signature', async ()=>{
80
+ const currentProposer = getSigner();
81
+ const header = makeHeader(1, 100, 100);
82
+ const mockProposal = await makeProposal({
83
+ blockHeader: header,
84
+ lastBlockHeader: header,
85
+ signer: currentProposer
86
+ });
87
+ // Override getSender to return undefined (invalid signature)
88
+ jest.spyOn(mockProposal, 'getSender').mockReturnValue(undefined);
89
+ mockGetProposer(getAddress(currentProposer), getAddress());
90
+ const result = await validator.validate(mockProposal);
91
+ expect(result).toEqual({
92
+ result: 'reject',
93
+ severity: PeerErrorSeverity.MidToleranceError
94
+ });
95
+ // Should not try to resolve proposer if signature is invalid
96
+ expect(epochCache.getProposerAttesterAddressInSlot).not.toHaveBeenCalled();
97
+ });
77
98
  it('returns mid tolerance error if proposer is not current proposer for current slot', async ()=>{
78
99
  const currentProposer = getSigner();
79
100
  const nextProposer = getSigner();
@@ -124,6 +145,35 @@ export function sharedProposalValidatorTests(params) {
124
145
  severity: PeerErrorSeverity.MidToleranceError
125
146
  });
126
147
  });
148
+ it('accepts proposal when proposer is undefined (open committee)', async ()=>{
149
+ const currentProposer = getSigner();
150
+ const header = makeHeader(1, 100, 100);
151
+ const mockProposal = await makeProposal({
152
+ blockHeader: header,
153
+ lastBlockHeader: header,
154
+ signer: currentProposer
155
+ });
156
+ epochCache.getProposerAttesterAddressInSlot.mockResolvedValue(undefined);
157
+ const result = await validator.validate(mockProposal);
158
+ expect(result).toEqual({
159
+ result: 'accept'
160
+ });
161
+ });
162
+ it('returns low tolerance error when getProposerAttesterAddressInSlot throws NoCommitteeError', async ()=>{
163
+ const currentProposer = getSigner();
164
+ const header = makeHeader(1, 100, 100);
165
+ const mockProposal = await makeProposal({
166
+ blockHeader: header,
167
+ lastBlockHeader: header,
168
+ signer: currentProposer
169
+ });
170
+ epochCache.getProposerAttesterAddressInSlot.mockRejectedValue(new NoCommitteeError());
171
+ const result = await validator.validate(mockProposal);
172
+ expect(result).toEqual({
173
+ result: 'reject',
174
+ severity: PeerErrorSeverity.LowToleranceError
175
+ });
176
+ });
127
177
  it('returns undefined if proposal is valid for current slot and proposer', async ()=>{
128
178
  const currentProposer = getSigner();
129
179
  const nextProposer = getSigner();
@@ -208,5 +258,121 @@ export function sharedProposalValidatorTests(params) {
208
258
  });
209
259
  });
210
260
  });
261
+ describe('embedded tx validation', ()=>{
262
+ it('returns mid tolerance error if embedded txs are not listed in txHashes', async ()=>{
263
+ const currentProposer = getSigner();
264
+ const txHashes = getTxHashes(2);
265
+ const header = makeHeader(1, 100, 100);
266
+ const mockProposal = await makeProposal({
267
+ blockHeader: header,
268
+ lastBlockHeader: header,
269
+ signer: currentProposer,
270
+ txHashes
271
+ });
272
+ // Create a fake tx whose hash is NOT in txHashes
273
+ const fakeTxHash = getTxHashes(1)[0];
274
+ const fakeTx = {
275
+ getTxHash: ()=>fakeTxHash,
276
+ validateTxHash: ()=>Promise.resolve(true)
277
+ };
278
+ Object.defineProperty(mockProposal, 'txs', {
279
+ get: ()=>[
280
+ fakeTx
281
+ ],
282
+ configurable: true
283
+ });
284
+ mockGetProposer(getAddress(currentProposer), getAddress());
285
+ const result = await validator.validate(mockProposal);
286
+ expect(result).toEqual({
287
+ result: 'reject',
288
+ severity: PeerErrorSeverity.MidToleranceError
289
+ });
290
+ });
291
+ it('returns low tolerance error if embedded tx has invalid tx hash', async ()=>{
292
+ const currentProposer = getSigner();
293
+ const txHashes = getTxHashes(2);
294
+ const header = makeHeader(1, 100, 100);
295
+ const mockProposal = await makeProposal({
296
+ blockHeader: header,
297
+ lastBlockHeader: header,
298
+ signer: currentProposer,
299
+ txHashes
300
+ });
301
+ // Create a fake tx whose hash IS in txHashes but validateTxHash returns false
302
+ const fakeTx = {
303
+ getTxHash: ()=>txHashes[0],
304
+ validateTxHash: ()=>Promise.resolve(false)
305
+ };
306
+ Object.defineProperty(mockProposal, 'txs', {
307
+ get: ()=>[
308
+ fakeTx
309
+ ],
310
+ configurable: true
311
+ });
312
+ mockGetProposer(getAddress(currentProposer), getAddress());
313
+ const result = await validator.validate(mockProposal);
314
+ expect(result).toEqual({
315
+ result: 'reject',
316
+ severity: PeerErrorSeverity.LowToleranceError
317
+ });
318
+ });
319
+ });
320
+ describe('maxTxsPerBlock validation', ()=>{
321
+ it('rejects proposal when txHashes exceed maxTxsPerBlock', async ()=>{
322
+ const validatorWithMaxTxs = validatorFactory(epochCache, {
323
+ txsPermitted: true,
324
+ maxTxsPerBlock: 2
325
+ });
326
+ const currentProposer = getSigner();
327
+ const header = makeHeader(1, 100, 100);
328
+ const mockProposal = await makeProposal({
329
+ blockHeader: header,
330
+ lastBlockHeader: header,
331
+ signer: currentProposer,
332
+ txHashes: getTxHashes(3)
333
+ });
334
+ mockGetProposer(getAddress(currentProposer), getAddress());
335
+ const result = await validatorWithMaxTxs.validate(mockProposal);
336
+ expect(result).toEqual({
337
+ result: 'reject',
338
+ severity: PeerErrorSeverity.MidToleranceError
339
+ });
340
+ });
341
+ it('accepts proposal when txHashes count equals maxTxsPerBlock', async ()=>{
342
+ const validatorWithMaxTxs = validatorFactory(epochCache, {
343
+ txsPermitted: true,
344
+ maxTxsPerBlock: 2
345
+ });
346
+ const currentProposer = getSigner();
347
+ const header = makeHeader(1, 100, 100);
348
+ const mockProposal = await makeProposal({
349
+ blockHeader: header,
350
+ lastBlockHeader: header,
351
+ signer: currentProposer,
352
+ txHashes: getTxHashes(2)
353
+ });
354
+ mockGetProposer(getAddress(currentProposer), getAddress());
355
+ const result = await validatorWithMaxTxs.validate(mockProposal);
356
+ expect(result).toEqual({
357
+ result: 'accept'
358
+ });
359
+ });
360
+ it('accepts proposal when maxTxsPerBlock is not set (unlimited)', async ()=>{
361
+ // Default validator has no maxTxsPerBlock
362
+ const currentProposer = getSigner();
363
+ const header = makeHeader(1, 100, 100);
364
+ const mockProposal = await makeProposal({
365
+ blockHeader: header,
366
+ lastBlockHeader: header,
367
+ signer: currentProposer,
368
+ txHashes: getTxHashes(10)
369
+ });
370
+ mockGetProposer(getAddress(currentProposer), getAddress());
371
+ const result = await validator.validate(mockProposal);
372
+ expect(result).toEqual({
373
+ result: 'accept'
374
+ });
375
+ });
376
+ });
211
377
  });
212
378
  }
@@ -17,7 +17,7 @@ export declare function msgIdToStrFn(msgId: Uint8Array): string;
17
17
  * @param message - The libp2p message
18
18
  * @returns The message identifier
19
19
  */
20
- export declare function getMsgIdFn(message: Message): Buffer<ArrayBuffer>;
20
+ export declare function getMsgIdFn({ topic, data }: Message): Promise<Uint8Array>;
21
21
  /**
22
22
  * Snappy transform for libp2p gossipsub
23
23
  */
@@ -47,4 +47,4 @@ export declare function readSnappyPreamble(data: Uint8Array): {
47
47
  decompressedSize: number;
48
48
  bytesRead: number;
49
49
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQWtCLFNBQVMsRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRixPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWFqRDs7O0dBR0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FLdkQ7QUFFRCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUl0RDtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyx1QkFLMUM7QUFjRDs7R0FFRztBQUNILHFCQUFhLGVBQWdCLFlBQVcsYUFBYTtJQUVqRCxPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxNQUFNO0lBSGhCLFlBQ1UsVUFBVSxHQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFxQixFQUN6RCxnQkFBZ0IsR0FBRSxNQUFrQixFQUNwQyxNQUFNLHlDQUF1QyxFQUNuRDtJQUdKLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsR0FBRyxVQUFVLENBRy9EO0lBRU0sb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQVkvRjtJQUdELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsR0FBRyxVQUFVLENBRWpFO0lBRU0scUJBQXFCLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBS2pEO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHO0lBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBbUNwRyJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWtCLFNBQVMsRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRixPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWNqRDs7O0dBR0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FLdkQ7QUFFRCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUl0RDtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUk5RTtBQWNEOztHQUVHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxhQUFhO0lBRWpELE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFIaEIsWUFDVSxVQUFVLEdBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQXFCLEVBQ3pELGdCQUFnQixHQUFFLE1BQWtCLEVBQ3BDLE1BQU0seUNBQXVDLEVBQ25EO0lBR0osZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxHQUFHLFVBQVUsQ0FHL0Q7SUFFTSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBWS9GO0lBR0QsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxHQUFHLFVBQVUsQ0FFakU7SUFFTSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FLakQ7Q0FDRjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUc7SUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FtQ3BHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/services/encoding.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,SAAS,EAAsB,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAajD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAItD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,uBAK1C;AAcD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IAEjD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IAHhB,YACU,UAAU,GAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAqB,EACzD,gBAAgB,GAAE,MAAkB,EACpC,MAAM,yCAAuC,EACnD;IAGJ,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAG/D;IAEM,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAY/F;IAGD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAEjE;IAEM,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmCpG"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/services/encoding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,SAAS,EAAsB,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAcjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAItD;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAI9E;AAcD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IAEjD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IAHhB,YACU,UAAU,GAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAqB,EACzD,gBAAgB,GAAE,MAAkB,EACpC,MAAM,yCAAuC,EACnD;IAGJ,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAG/D;IAEM,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAY/F;IAGD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAEjE;IAEM,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmCpG"}
@@ -1,7 +1,7 @@
1
1
  // Taken from lodestar: https://github.com/ChainSafe/lodestar
2
- import { sha256 } from '@aztec/foundation/crypto/sha256';
3
2
  import { createLogger } from '@aztec/foundation/log';
4
3
  import { MAX_TX_SIZE_KB, TopicType, getTopicFromString } from '@aztec/stdlib/p2p';
4
+ import { webcrypto } from 'node:crypto';
5
5
  import { compressSync, uncompressSync } from 'snappy';
6
6
  import xxhashFactory from 'xxhash-wasm';
7
7
  // Load WASM
@@ -32,13 +32,13 @@ export function msgIdToStrFn(msgId) {
32
32
  *
33
33
  * @param message - The libp2p message
34
34
  * @returns The message identifier
35
- */ export function getMsgIdFn(message) {
36
- const { topic } = message;
37
- const vec = [
35
+ */ export async function getMsgIdFn({ topic, data }) {
36
+ const buffer = Buffer.concat([
38
37
  Buffer.from(topic),
39
- message.data
40
- ];
41
- return sha256(Buffer.concat(vec)).subarray(0, 20);
38
+ data
39
+ ]);
40
+ const hash = await webcrypto.subtle.digest('SHA-256', buffer);
41
+ return Buffer.from(hash.slice(0, 20));
42
42
  }
43
43
  const DefaultMaxSizesKb = {
44
44
  [TopicType.tx]: MAX_TX_SIZE_KB,
@@ -6,7 +6,7 @@ import type { AztecAsyncKVStore } from '@aztec/kv-store';
6
6
  import type { EthAddress, L2Block, L2BlockSource } from '@aztec/stdlib/block';
7
7
  import type { ContractDataSource } from '@aztec/stdlib/contract';
8
8
  import type { ClientProtocolCircuitVerifier, PeerInfo, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
9
- import { BlockProposal, CheckpointAttestation, CheckpointProposal, type CheckpointProposalCore, type Gossipable, P2PClientType, type ValidationResult as P2PValidationResult, TopicType } from '@aztec/stdlib/p2p';
9
+ import { BlockProposal, CheckpointAttestation, CheckpointProposal, type CheckpointProposalCore, type Gossipable, type ValidationResult as P2PValidationResult, TopicType } from '@aztec/stdlib/p2p';
10
10
  import { Tx, type TxValidator } from '@aztec/stdlib/tx';
11
11
  import type { UInt64 } from '@aztec/stdlib/types';
12
12
  import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
@@ -33,8 +33,7 @@ type ReceivedMessageValidationResult<T, M = undefined> = {
33
33
  /**
34
34
  * Lib P2P implementation of the P2PService interface.
35
35
  */
36
- export declare class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends WithTracer implements P2PService {
37
- private clientType;
36
+ export declare class LibP2PService extends WithTracer implements P2PService {
38
37
  private config;
39
38
  protected node: PubSubLibp2p;
40
39
  private peerDiscoveryService;
@@ -73,7 +72,7 @@ export declare class LibP2PService<T extends P2PClientType = P2PClientType.Full>
73
72
  private instrumentation;
74
73
  private telemetry;
75
74
  protected logger: Logger;
76
- constructor(clientType: T, config: P2PConfig, node: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, reqresp: ReqRespInterface, peerManager: PeerManagerInterface, mempools: MemPools, archiver: L2BlockSource & ContractDataSource, epochCache: EpochCacheInterface, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, telemetry: TelemetryClient, logger?: Logger);
75
+ constructor(config: P2PConfig, node: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, reqresp: ReqRespInterface, peerManager: PeerManagerInterface, mempools: MemPools, archiver: L2BlockSource & ContractDataSource, epochCache: EpochCacheInterface, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, telemetry: TelemetryClient, logger?: Logger);
77
76
  updateConfig(config: Partial<P2PReqRespConfig>): void;
78
77
  /**
79
78
  * Creates an instance of the LibP2P service.
@@ -81,7 +80,7 @@ export declare class LibP2PService<T extends P2PClientType = P2PClientType.Full>
81
80
  * @param txPool - The transaction pool to be accessed by the service.
82
81
  * @returns The new service.
83
82
  */
84
- static new<T extends P2PClientType>(clientType: T, config: P2PConfig, peerId: PeerId, deps: {
83
+ static new(config: P2PConfig, peerId: PeerId, deps: {
85
84
  mempools: MemPools;
86
85
  l2BlockSource: L2BlockSource & ContractDataSource;
87
86
  epochCache: EpochCacheInterface;
@@ -91,7 +90,7 @@ export declare class LibP2PService<T extends P2PClientType = P2PClientType.Full>
91
90
  telemetry: TelemetryClient;
92
91
  logger: Logger;
93
92
  packageVersion: string;
94
- }): Promise<LibP2PService<T>>;
93
+ }): Promise<LibP2PService>;
95
94
  /**
96
95
  * Starts the LibP2P service.
97
96
  * @returns An empty promise.
@@ -248,4 +247,4 @@ export declare class LibP2PService<T extends P2PClientType = P2PClientType.Full>
248
247
  private stopLibP2P;
249
248
  }
250
249
  export {};
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9saWJwMnAvbGlicDJwX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBNkMsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2SCxPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyxVQUFVLEVBQ2YsYUFBYSxFQUViLEtBQUssZ0JBQWdCLElBQUksbUJBQW1CLEVBRTVDLFNBQVMsRUFJVixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBRSxFQUFFLEVBQXdDLEtBQUssV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUlMLEtBQUssZUFBZSxFQUNwQixVQUFVLEVBRVgsTUFBTSx5QkFBeUIsQ0FBQztB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
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9saWJwMnAvbGlicDJwX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBNkMsTUFBTSx1QkFBdUIsQ0FBQztBQUcvRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2SCxPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyxVQUFVLEVBRWYsS0FBSyxnQkFBZ0IsSUFBSSxtQkFBbUIsRUFFNUMsU0FBUyxFQUlWLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFFLEVBQUUsRUFBd0MsS0FBSyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBSUwsS0FBSyxlQUFlLEVBQ3BCLFVBQVUsRUFFWCxNQUFNLHlCQUF5QixDQUFDO0FBY2pDLE9BQU8s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
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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"}