@aztec/p2p 0.0.1-commit.934299a21 → 0.0.1-commit.949a33fd8

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 (366) hide show
  1. package/README.md +129 -3
  2. package/dest/client/factory.d.ts +6 -6
  3. package/dest/client/factory.d.ts.map +1 -1
  4. package/dest/client/factory.js +29 -14
  5. package/dest/client/interface.d.ts +12 -5
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +6 -5
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +47 -39
  10. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +21 -8
  11. package/dest/config.d.ts +128 -100
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +97 -34
  14. package/dest/errors/p2p-service.error.d.ts +9 -0
  15. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  16. package/dest/errors/p2p-service.error.js +10 -0
  17. package/dest/index.d.ts +1 -2
  18. package/dest/index.d.ts.map +1 -1
  19. package/dest/index.js +0 -1
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +7 -5
  21. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  22. package/dest/mem_pools/attestation_pool/attestation_pool.js +16 -9
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +6 -6
  24. package/dest/mem_pools/attestation_pool/mocks.d.ts +1 -1
  25. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  26. package/dest/mem_pools/attestation_pool/mocks.js +6 -4
  27. package/dest/mem_pools/index.d.ts +1 -2
  28. package/dest/mem_pools/index.d.ts.map +1 -1
  29. package/dest/mem_pools/instrumentation.d.ts +4 -2
  30. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  31. package/dest/mem_pools/instrumentation.js +33 -15
  32. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  33. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  34. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +2 -1
  35. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  36. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  37. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
  38. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  39. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  41. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  42. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  43. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  44. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +7 -1
  45. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  47. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +1 -1
  48. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +8 -6
  50. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +2 -2
  51. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  52. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
  53. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  54. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  55. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  56. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +12 -5
  57. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  58. package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
  59. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +44 -12
  60. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  61. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +81 -22
  62. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  63. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  64. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +26 -44
  65. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +4 -2
  66. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  67. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +6 -0
  68. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +2 -1
  69. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  70. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +62 -29
  71. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +9 -3
  72. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  73. package/dest/msg_validators/attestation_validator/attestation_validator.js +37 -12
  74. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -3
  75. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  76. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +2 -2
  77. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  78. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  79. package/dest/msg_validators/clock_tolerance.js +61 -3
  80. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +8 -4
  81. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  82. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  83. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +8 -4
  84. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  85. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  86. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +17 -8
  87. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  88. package/dest/msg_validators/proposal_validator/proposal_validator.js +83 -48
  89. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  90. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  91. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  92. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  93. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  94. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  95. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  96. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  97. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  98. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  99. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  100. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  101. package/dest/msg_validators/tx_validator/data_validator.js +35 -2
  102. package/dest/msg_validators/tx_validator/factory.d.ts +23 -4
  103. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  104. package/dest/msg_validators/tx_validator/factory.js +37 -11
  105. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  106. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  108. package/dest/msg_validators/tx_validator/gas_validator.d.ts +48 -7
  109. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  110. package/dest/msg_validators/tx_validator/gas_validator.js +88 -41
  111. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  112. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  113. package/dest/msg_validators/tx_validator/index.js +1 -0
  114. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  115. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  117. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  118. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  120. package/dest/services/data_store.d.ts +1 -1
  121. package/dest/services/data_store.d.ts.map +1 -1
  122. package/dest/services/data_store.js +5 -5
  123. package/dest/services/dummy_service.d.ts +6 -3
  124. package/dest/services/dummy_service.d.ts.map +1 -1
  125. package/dest/services/dummy_service.js +6 -1
  126. package/dest/services/encoding.d.ts +6 -2
  127. package/dest/services/encoding.d.ts.map +1 -1
  128. package/dest/services/encoding.js +14 -8
  129. package/dest/services/gossipsub/topic_score_params.d.ts +13 -2
  130. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  131. package/dest/services/gossipsub/topic_score_params.js +21 -4
  132. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  133. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  134. package/dest/services/libp2p/instrumentation.js +14 -0
  135. package/dest/services/libp2p/libp2p_service.d.ts +23 -32
  136. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  137. package/dest/services/libp2p/libp2p_service.js +202 -151
  138. package/dest/services/peer-manager/metrics.d.ts +3 -1
  139. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  140. package/dest/services/peer-manager/metrics.js +6 -0
  141. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  142. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  143. package/dest/services/peer-manager/peer_manager.js +39 -11
  144. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  145. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  146. package/dest/services/peer-manager/peer_scoring.js +32 -10
  147. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +11 -8
  148. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  149. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +69 -65
  150. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +3 -2
  151. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  152. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +5 -4
  153. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  154. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +13 -7
  155. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +3 -1
  156. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  157. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +3 -0
  158. package/dest/services/reqresp/config.d.ts +3 -3
  159. package/dest/services/reqresp/config.d.ts.map +1 -1
  160. package/dest/services/reqresp/interface.d.ts +14 -9
  161. package/dest/services/reqresp/interface.d.ts.map +1 -1
  162. package/dest/services/reqresp/interface.js +10 -11
  163. package/dest/services/reqresp/metrics.d.ts +1 -1
  164. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  165. package/dest/services/reqresp/metrics.js +0 -1
  166. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  167. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  168. package/dest/services/reqresp/protocols/index.js +0 -1
  169. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  170. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  171. package/dest/services/reqresp/protocols/tx.js +1 -3
  172. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  173. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  174. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  175. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  176. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  177. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  178. package/dest/services/reqresp/reqresp.d.ts +4 -2
  179. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  180. package/dest/services/reqresp/reqresp.js +30 -12
  181. package/dest/services/service.d.ts +5 -2
  182. package/dest/services/service.d.ts.map +1 -1
  183. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -4
  184. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  185. package/dest/services/tx_collection/fast_tx_collection.js +57 -73
  186. package/dest/services/tx_collection/file_store_tx_source.d.ts +5 -4
  187. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
  188. package/dest/services/tx_collection/file_store_tx_source.js +39 -29
  189. package/dest/services/tx_collection/proposal_tx_collector.d.ts +6 -7
  190. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  191. package/dest/services/tx_collection/proposal_tx_collector.js +4 -4
  192. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  193. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  194. package/dest/services/tx_collection/request_tracker.js +84 -0
  195. package/dest/services/tx_collection/slow_tx_collection.js +1 -1
  196. package/dest/services/tx_collection/tx_collection.d.ts +3 -6
  197. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  198. package/dest/services/tx_collection/tx_source.d.ts +6 -5
  199. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  200. package/dest/services/tx_collection/tx_source.js +9 -7
  201. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  202. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  203. package/dest/test-helpers/make-test-p2p-clients.js +4 -2
  204. package/dest/test-helpers/mock-pubsub.d.ts +12 -5
  205. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  206. package/dest/test-helpers/mock-pubsub.js +37 -12
  207. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  208. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  209. package/dest/test-helpers/reqresp-nodes.js +6 -4
  210. package/dest/test-helpers/testbench-utils.d.ts +1 -1
  211. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  212. package/dest/test-helpers/testbench-utils.js +23 -3
  213. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  214. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  215. package/dest/testbench/p2p_client_testbench_worker.js +78 -21
  216. package/dest/testbench/worker_client_manager.d.ts +10 -1
  217. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  218. package/dest/testbench/worker_client_manager.js +55 -3
  219. package/dest/util.d.ts +1 -1
  220. package/package.json +14 -14
  221. package/src/client/factory.ts +48 -19
  222. package/src/client/interface.ts +12 -10
  223. package/src/client/p2p_client.ts +52 -51
  224. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +22 -11
  225. package/src/config.ts +146 -36
  226. package/src/errors/p2p-service.error.ts +11 -0
  227. package/src/index.ts +0 -1
  228. package/src/mem_pools/attestation_pool/attestation_pool.ts +17 -12
  229. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +6 -6
  230. package/src/mem_pools/attestation_pool/mocks.ts +13 -8
  231. package/src/mem_pools/index.ts +0 -3
  232. package/src/mem_pools/instrumentation.ts +22 -14
  233. package/src/mem_pools/tx_pool_v2/README.md +9 -1
  234. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +2 -1
  235. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
  236. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  237. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  238. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +11 -1
  239. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +3 -3
  240. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +15 -6
  241. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +2 -1
  242. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  243. package/src/mem_pools/tx_pool_v2/interfaces.ts +12 -4
  244. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +121 -27
  245. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +29 -43
  246. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +16 -1
  247. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +70 -26
  248. package/src/msg_validators/attestation_validator/README.md +49 -0
  249. package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -9
  250. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +12 -2
  251. package/src/msg_validators/clock_tolerance.ts +79 -3
  252. package/src/msg_validators/proposal_validator/README.md +123 -0
  253. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +22 -4
  254. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +33 -7
  255. package/src/msg_validators/proposal_validator/proposal_validator.ts +99 -49
  256. package/src/msg_validators/tx_validator/README.md +15 -3
  257. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  258. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  259. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  260. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  261. package/src/msg_validators/tx_validator/data_validator.ts +42 -1
  262. package/src/msg_validators/tx_validator/factory.ts +46 -4
  263. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  264. package/src/msg_validators/tx_validator/gas_validator.ts +121 -39
  265. package/src/msg_validators/tx_validator/index.ts +1 -0
  266. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  267. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  268. package/src/services/data_store.ts +5 -13
  269. package/src/services/dummy_service.ts +8 -2
  270. package/src/services/encoding.ts +14 -7
  271. package/src/services/gossipsub/topic_score_params.ts +36 -4
  272. package/src/services/libp2p/instrumentation.ts +14 -0
  273. package/src/services/libp2p/libp2p_service.ts +206 -164
  274. package/src/services/peer-manager/metrics.ts +7 -0
  275. package/src/services/peer-manager/peer_manager.ts +45 -11
  276. package/src/services/peer-manager/peer_scoring.ts +27 -5
  277. package/src/services/reqresp/README.md +229 -0
  278. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  279. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +64 -69
  280. package/src/services/reqresp/batch-tx-requester/interface.ts +2 -1
  281. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +13 -6
  282. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +5 -0
  283. package/src/services/reqresp/config.ts +2 -2
  284. package/src/services/reqresp/interface.ts +21 -11
  285. package/src/services/reqresp/metrics.ts +0 -1
  286. package/src/services/reqresp/protocols/index.ts +0 -1
  287. package/src/services/reqresp/protocols/tx.ts +1 -3
  288. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  289. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  290. package/src/services/reqresp/reqresp.ts +40 -13
  291. package/src/services/service.ts +6 -1
  292. package/src/services/tx_collection/fast_tx_collection.ts +57 -83
  293. package/src/services/tx_collection/file_store_tx_source.ts +43 -31
  294. package/src/services/tx_collection/proposal_tx_collector.ts +8 -13
  295. package/src/services/tx_collection/request_tracker.ts +127 -0
  296. package/src/services/tx_collection/slow_tx_collection.ts +1 -1
  297. package/src/services/tx_collection/tx_collection.ts +3 -5
  298. package/src/services/tx_collection/tx_source.ts +8 -7
  299. package/src/test-helpers/make-test-p2p-clients.ts +3 -3
  300. package/src/test-helpers/mock-pubsub.ts +37 -11
  301. package/src/test-helpers/reqresp-nodes.ts +7 -8
  302. package/src/test-helpers/testbench-utils.ts +30 -3
  303. package/src/testbench/p2p_client_testbench_worker.ts +77 -21
  304. package/src/testbench/worker_client_manager.ts +68 -6
  305. package/src/util.ts +1 -1
  306. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  307. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  308. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  309. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  310. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  311. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  312. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  313. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  314. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  315. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  316. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  317. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  318. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  319. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  320. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  321. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  322. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  323. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  324. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  325. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  326. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  327. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  328. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  329. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  330. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  331. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  332. package/dest/mem_pools/tx_pool/index.js +0 -2
  333. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  334. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  335. package/dest/mem_pools/tx_pool/priority.js +0 -15
  336. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  337. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  338. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  339. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  340. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  341. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  342. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  343. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  344. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  345. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  346. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  347. package/dest/services/reqresp/protocols/block.js +0 -32
  348. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  349. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  350. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  351. package/src/mem_pools/tx_pool/README.md +0 -270
  352. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  353. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  354. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  355. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  356. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  357. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  358. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  359. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  360. package/src/mem_pools/tx_pool/index.ts +0 -2
  361. package/src/mem_pools/tx_pool/priority.ts +0 -20
  362. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  363. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  364. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  365. package/src/services/reqresp/protocols/block.ts +0 -37
  366. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
package/dest/config.js CHANGED
@@ -1,15 +1,35 @@
1
- import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
1
+ import { bigintConfigHelper, booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { dataConfigMappings } from '@aztec/kv-store/config';
4
3
  import { FunctionSelector } from '@aztec/stdlib/abi/function-selector';
5
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
5
  import { chainConfigMappings, sharedSequencerConfigMappings } from '@aztec/stdlib/config';
6
+ import { dataConfigMappings } from '@aztec/stdlib/kv-store';
7
7
  import { batchTxRequesterConfigMappings } from './services/reqresp/batch-tx-requester/config.js';
8
8
  import { p2pReqRespConfigMappings } from './services/reqresp/config.js';
9
9
  import { txCollectionConfigMappings } from './services/tx_collection/config.js';
10
10
  import { txFileStoreConfigMappings } from './services/tx_file_store/config.js';
11
11
  export const DEFAULT_P2P_PORT = 40400;
12
12
  export const p2pConfigMappings = {
13
+ validateMaxTxsPerBlock: {
14
+ env: 'VALIDATOR_MAX_TX_PER_BLOCK',
15
+ description: 'Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set.',
16
+ ...optionalNumberConfigHelper()
17
+ },
18
+ validateMaxTxsPerCheckpoint: {
19
+ env: 'VALIDATOR_MAX_TX_PER_CHECKPOINT',
20
+ description: 'Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set.',
21
+ ...optionalNumberConfigHelper()
22
+ },
23
+ validateMaxL2BlockGas: {
24
+ env: 'VALIDATOR_MAX_L2_BLOCK_GAS',
25
+ description: 'Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected.',
26
+ ...optionalNumberConfigHelper()
27
+ },
28
+ validateMaxDABlockGas: {
29
+ env: 'VALIDATOR_MAX_DA_BLOCK_GAS',
30
+ description: 'Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected.',
31
+ ...optionalNumberConfigHelper()
32
+ },
13
33
  p2pEnabled: {
14
34
  env: 'P2P_ENABLED',
15
35
  description: 'A flag dictating whether the P2P subsystem should be enabled.',
@@ -40,6 +60,11 @@ export const p2pConfigMappings = {
40
60
  description: 'The frequency in which to check for new peers.',
41
61
  ...numberConfigHelper(30_000)
42
62
  },
63
+ peerFailedBanTimeMs: {
64
+ env: 'P2P_PEER_FAILED_BAN_TIME_MS',
65
+ description: 'How long to ban a peer after it fails maximum dial attempts.',
66
+ ...numberConfigHelper(5 * 60 * 1000)
67
+ },
43
68
  l2QueueSize: {
44
69
  env: 'P2P_L2_QUEUE_SIZE',
45
70
  description: 'Size of queue of L2 blocks to store.',
@@ -131,7 +156,7 @@ export const p2pConfigMappings = {
131
156
  gossipsubMcacheLength: {
132
157
  env: 'P2P_GOSSIPSUB_MCACHE_LENGTH',
133
158
  description: 'The number of gossipsub interval message cache windows to keep.',
134
- ...numberConfigHelper(6)
159
+ ...numberConfigHelper(12)
135
160
  },
136
161
  gossipsubMcacheGossip: {
137
162
  env: 'P2P_GOSSIPSUB_MCACHE_GOSSIP',
@@ -203,14 +228,14 @@ export const p2pConfigMappings = {
203
228
  },
204
229
  p2pStoreMapSizeKb: {
205
230
  env: 'P2P_STORE_MAP_SIZE_KB',
206
- parseEnv: (val)=>val ? +val : undefined,
231
+ ...optionalNumberConfigHelper(),
207
232
  description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.'
208
233
  },
209
- txPublicSetupAllowList: {
234
+ txPublicSetupAllowListExtend: {
210
235
  env: 'TX_PUBLIC_SETUP_ALLOWLIST',
211
236
  parseEnv: (val)=>parseAllowList(val),
212
- description: 'The list of functions calls allowed to run in setup',
213
- printDefault: ()=>'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee'
237
+ description: 'Additional entries to extend the default setup allow list. Format: I:address:selector[:flags],C:classId:selector[:flags]. Flags: os (onlySelf), rn (rejectNullMsgSender), cl=N (calldataLength), joined with +.',
238
+ printDefault: ()=>'Default: AuthRegistry._set_authorized, AuthRegistry.set_authorized, FeeJuice._increase_public_balance'
214
239
  },
215
240
  maxPendingTxCount: {
216
241
  env: 'P2P_MAX_PENDING_TX_COUNT',
@@ -259,6 +284,11 @@ export const p2pConfigMappings = {
259
284
  description: 'Alters the format of p2p messages to include things like broadcast timestamp FOR TESTING ONLY',
260
285
  ...booleanConfigHelper(false)
261
286
  },
287
+ l1PublishingTime: {
288
+ env: 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT',
289
+ description: 'How much time (in seconds) we allow in the slot for publishing the L1 tx (defaults to 1 L1 slot).',
290
+ ...optionalNumberConfigHelper()
291
+ },
262
292
  fishermanMode: {
263
293
  env: 'FISHERMAN_MODE',
264
294
  description: 'Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus.',
@@ -268,11 +298,20 @@ export const p2pConfigMappings = {
268
298
  description: 'Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only).',
269
299
  ...booleanConfigHelper(false)
270
300
  },
301
+ skipIncomingProposals: {
302
+ description: 'Drop incoming block and checkpoint proposals at the libp2p dispatch layer (for testing only)',
303
+ ...booleanConfigHelper(false)
304
+ },
271
305
  minTxPoolAgeMs: {
272
306
  env: 'P2P_MIN_TX_POOL_AGE_MS',
273
307
  description: 'Minimum age (ms) a transaction must have been in the pool before it is eligible for block building.',
274
308
  ...numberConfigHelper(2_000)
275
309
  },
310
+ priceBumpPercentage: {
311
+ env: 'P2P_RPC_PRICE_BUMP_PERCENTAGE',
312
+ description: 'Minimum percentage fee increase required to replace an existing tx via RPC. Even at 0%, replacement still requires paying at least 1 unit more.',
313
+ ...bigintConfigHelper(10n)
314
+ },
276
315
  ...sharedSequencerConfigMappings,
277
316
  ...p2pReqRespConfigMappings,
278
317
  ...batchTxRequesterConfigMappings,
@@ -307,13 +346,37 @@ export const bootnodeConfigMappings = pickConfigMappings({
307
346
  ...dataConfigMappings,
308
347
  ...chainConfigMappings
309
348
  }, bootnodeConfigKeys);
349
+ /**
350
+ * Parses a `+`-separated flags string into validation properties for an allow list entry.
351
+ * Supported flags: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
352
+ */ function parseFlags(flags, entry) {
353
+ const result = {};
354
+ for (const flag of flags.split('+')){
355
+ if (flag === 'os') {
356
+ result.onlySelf = true;
357
+ } else if (flag === 'rn') {
358
+ result.rejectNullMsgSender = true;
359
+ } else if (flag.startsWith('cl=')) {
360
+ const n = parseInt(flag.slice(3), 10);
361
+ if (isNaN(n) || n < 0) {
362
+ throw new Error(`Invalid allow list entry "${entry}": invalid calldataLength in flag "${flag}". Expected a non-negative integer.`);
363
+ }
364
+ result.calldataLength = n;
365
+ } else {
366
+ throw new Error(`Invalid allow list entry "${entry}": unknown flag "${flag}". Supported flags: os, rn, cl=N.`);
367
+ }
368
+ }
369
+ return result;
370
+ }
310
371
  /**
311
372
  * Parses a string to a list of allowed elements.
312
- * Each encoded is expected to be of one of the following formats
313
- * `I:${address}`
314
- * `I:${address}:${selector}`
315
- * `C:${classId}`
316
- * `C:${classId}:${selector}`
373
+ * Each entry is expected to be of one of the following formats:
374
+ * `I:${address}:${selector}` — instance (contract address) with function selector
375
+ * `C:${classId}:${selector}` — class with function selector
376
+ *
377
+ * An optional flags segment can be appended after the selector:
378
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
379
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
317
380
  *
318
381
  * @param value The string to parse
319
382
  * @returns A list of allowed elements
@@ -323,30 +386,30 @@ export const bootnodeConfigMappings = pickConfigMappings({
323
386
  return entries;
324
387
  }
325
388
  for (const val of value.split(',')){
326
- const [typeString, identifierString, selectorString] = val.split(':');
327
- const selector = selectorString !== undefined ? FunctionSelector.fromString(selectorString) : undefined;
389
+ const trimmed = val.trim();
390
+ if (!trimmed) {
391
+ continue;
392
+ }
393
+ const [typeString, identifierString, selectorString, flagsString] = trimmed.split(':');
394
+ if (!selectorString) {
395
+ throw new Error(`Invalid allow list entry "${trimmed}": selector is required. Expected format: I:address:selector or C:classId:selector`);
396
+ }
397
+ const selector = FunctionSelector.fromString(selectorString);
398
+ const flags = flagsString ? parseFlags(flagsString, trimmed) : {};
328
399
  if (typeString === 'I') {
329
- if (selector) {
330
- entries.push({
331
- address: AztecAddress.fromString(identifierString),
332
- selector
333
- });
334
- } else {
335
- entries.push({
336
- address: AztecAddress.fromString(identifierString)
337
- });
338
- }
400
+ entries.push({
401
+ address: AztecAddress.fromString(identifierString),
402
+ selector,
403
+ ...flags
404
+ });
339
405
  } else if (typeString === 'C') {
340
- if (selector) {
341
- entries.push({
342
- classId: Fr.fromHexString(identifierString),
343
- selector
344
- });
345
- } else {
346
- entries.push({
347
- classId: Fr.fromHexString(identifierString)
348
- });
349
- }
406
+ entries.push({
407
+ classId: Fr.fromHexString(identifierString),
408
+ selector,
409
+ ...flags
410
+ });
411
+ } else {
412
+ throw new Error(`Invalid allow list entry "${trimmed}": unknown type "${typeString}". Expected "I" (instance) or "C" (class).`);
350
413
  }
351
414
  }
352
415
  return entries;
@@ -0,0 +1,9 @@
1
+ /** Checkpoint Proposal Received Callback Not Registered Error
2
+ *
3
+ * Error triggered if the allNodesCheckpointReceivedCallback is not registered
4
+ * @category Errors
5
+ */
6
+ export declare class CheckpointProposalReceivedCallbackNotRegisteredError extends Error {
7
+ constructor();
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwLXNlcnZpY2UuZXJyb3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvcDJwLXNlcnZpY2UuZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILHFCQUFhLG9EQUFxRCxTQUFRLEtBQUs7SUFDN0UsY0FHQztDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p2p-service.error.d.ts","sourceRoot":"","sources":["../../src/errors/p2p-service.error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,oDAAqD,SAAQ,KAAK;IAC7E,cAGC;CACF"}
@@ -0,0 +1,10 @@
1
+ /** Checkpoint Proposal Received Callback Not Registered Error
2
+ *
3
+ * Error triggered if the allNodesCheckpointReceivedCallback is not registered
4
+ * @category Errors
5
+ */ export class CheckpointProposalReceivedCallbackNotRegisteredError extends Error {
6
+ constructor(){
7
+ super('FATAL (allNodesCheckpointReceivedCallback): All nodes should register a checkpoint proposal handler');
8
+ this.name = 'CheckpointProposalReceivedCallbackNotRegisteredError';
9
+ }
10
+ }
package/dest/index.d.ts CHANGED
@@ -5,8 +5,7 @@ export * from './client/index.js';
5
5
  export * from './enr/index.js';
6
6
  export * from './config.js';
7
7
  export * from './mem_pools/attestation_pool/index.js';
8
- export * from './mem_pools/tx_pool/index.js';
9
8
  export * from './mem_pools/tx_pool_v2/index.js';
10
9
  export * from './msg_validators/index.js';
11
10
  export * from './services/index.js';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQkFBcUIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
package/dest/index.js CHANGED
@@ -4,7 +4,6 @@ export * from './client/index.js';
4
4
  export * from './enr/index.js';
5
5
  export * from './config.js';
6
6
  export * from './mem_pools/attestation_pool/index.js';
7
- export * from './mem_pools/tx_pool/index.js';
8
7
  export * from './mem_pools/tx_pool_v2/index.js';
9
8
  export * from './msg_validators/index.js';
10
9
  export * from './services/index.js';
@@ -14,10 +14,10 @@ export type TryAddResult = {
14
14
  * - tryAddCheckpointAttestation: attestations by this signer for this slot */
15
15
  count: number;
16
16
  };
17
- export declare const MAX_CHECKPOINT_PROPOSALS_PER_SLOT = 5;
18
- export declare const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
17
+ export declare const MAX_CHECKPOINT_PROPOSALS_PER_SLOT = 2;
18
+ export declare const MAX_BLOCK_PROPOSALS_PER_POSITION = 2;
19
19
  /** Maximum attestations a single signer can make per slot before being rejected. */
20
- export declare const MAX_ATTESTATIONS_PER_SLOT_AND_SIGNER = 3;
20
+ export declare const MAX_ATTESTATIONS_PER_SLOT_AND_SIGNER = 2;
21
21
  /** Public API interface for attestation pools. Used for typing mocks and test implementations. */
22
22
  export type AttestationPoolApi = Pick<AttestationPool, 'tryAddBlockProposal' | 'getBlockProposal' | 'tryAddCheckpointProposal' | 'getCheckpointProposal' | 'addOwnCheckpointAttestations' | 'tryAddCheckpointAttestation' | 'deleteOlderThan' | 'getCheckpointAttestationsForSlot' | 'getCheckpointAttestationsForSlotAndProposal' | 'hasBlockProposalsForSlot' | 'isEmpty'>;
23
23
  /**
@@ -52,7 +52,9 @@ export declare class AttestationPool {
52
52
  private static readonly INDEX_BITS;
53
53
  /** Maximum indexWithinCheckpoint value (2^10 - 1 = 1023). */
54
54
  private static readonly MAX_INDEX;
55
- /** Creates a position key for block proposals: (slot << 10) | indexWithinCheckpoint. */
55
+ /** Creates a position key for block proposals: slot * 1024 + indexWithinCheckpoint.
56
+ * Uses multiplication instead of bit-shift to avoid 32-bit signed integer overflow
57
+ * (bit-shift overflows after slot ~2^21, roughly 278 days of uptime). */
56
58
  private getBlockPositionKey;
57
59
  /**
58
60
  * Attempts to add a block proposal to the pool.
@@ -149,4 +151,4 @@ export declare class AttestationPool {
149
151
  }
150
152
  /** Creates an AttestationPool backed by a temporary store for testing. */
151
153
  export declare function createTestAttestationPool(telemetry?: TelemetryClient): Promise<AttestationPool>;
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlwRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUVyQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRiw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixpQ0FBaUM7SUFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNmLDZDQUE2QztJQUM3QyxhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCOzs7bUZBRytFO0lBQy9FLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLGlDQUFpQyxJQUFJLENBQUM7QUFDbkQsZUFBTyxNQUFNLGdDQUFnQyxJQUFJLENBQUM7QUFDbEQsb0ZBQW9GO0FBQ3BGLGVBQU8sTUFBTSxvQ0FBb0MsSUFBSSxDQUFDO0FBRXRELGtHQUFrRztBQUNsRyxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUNuQyxlQUFlLEVBQ2IscUJBQXFCLEdBQ3JCLGtCQUFrQixHQUNsQiwwQkFBMEIsR0FDMUIsdUJBQXVCLEdBQ3ZCLDhCQUE4QixHQUM5Qiw2QkFBNkIsR0FDN0IsaUJBQWlCLEdBQ2pCLGtDQUFrQyxHQUNsQyw2Q0FBNkMsR0FDN0MsMEJBQTBCLEdBQzFCLFNBQVMsQ0FDWixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFlO0lBMEJ4QixPQUFPLENBQUMsS0FBSztJQUViLE9BQU8sQ0FBQyxHQUFHO0lBM0JiLE9BQU8sQ0FBQyxPQUFPLENBQTZDO0lBSTVELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBZ0M7SUFHOUQsT0FBTyxDQUFDLG1CQUFtQixDQUFnQztJQUkzRCxPQUFPLENBQUMsMEJBQTBCLENBQXFDO0lBR3ZFLE9BQU8sQ0FBQyxjQUFjLENBQWdDO0lBSXRELE9BQU8sQ0FBQyw2QkFBNkIsQ0FBcUM7SUFJMUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFxQztJQUVuRixZQUNVLEtBQUssRUFBRSxpQkFBaUIsRUFDaEMsU0FBUyxHQUFFLGVBQXNDLEVBQ3pDLEdBQUcseUNBQXlDLEVBZXJEO0lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FJZjtJQUVGLHlDQUF5QztJQUM1QixPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVF2QztJQUVELE9BQU8sQ0FBQyxjQUFjO0lBWXRCLE9BQU8sQ0FBQyxpQkFBaUI7SUFJekIsMkVBQTJFO0lBQzNFLE9BQU8sQ0FBQyw2QkFBNkI7SUFLckMseUZBQXlGO0lBQ3pGLE9BQU8sQ0FBQyxpQ0FBaUM7SUFLekMsZ0hBQWdIO0lBQ2hILE9BQU8sQ0FBQyxnQkFBZ0I7SUFLeEIsMEVBQTBFO0lBQzFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBTTtJQUN4Qyw2REFBNkQ7SUFDN0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUF5QztJQUUxRSx3RkFBd0Y7SUFDeEYsT0FBTyxDQUFDLG1CQUFtQjtJQVMzQjs7Ozs7Ozs7OztPQVVHO0lBQ1UsbUJBQW1CLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBc0NwRjtJQUVELDRGQUE0RjtJQUM1RixPQUFPLENBQUMsZ0NBQWdDO1lBUzFCLGdCQUFnQjtJQVU5Qjs7Ozs7O09BTUc7SUFDVSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBVzVFO0lBRUQseUVBQXlFO0lBQzVELHdCQUF3QixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUl4RTtJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ1Usd0JBQXdCLENBQUMsUUFBUSxFQUFFLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0EyQjdGO1lBR2EscUJBQXFCO0lBUW5DOzs7Ozs7OztPQVFHO0lBQ1UscUJBQXFCLENBQUMsRUFBRSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxDQUFDLENBVzFGO0lBRUQ7OztPQUdHO0lBQ1UsNEJBQTRCLENBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWdDOUY7SUFFRDs7Ozs7T0FLRztJQUNVLGdDQUFnQyxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FTaEc7SUFFRDs7Ozs7O09BTUc7SUFDVSwyQ0FBMkMsQ0FDdEQsSUFBSSxFQUFFLFVBQVUsRUFDaEIsVUFBVSxFQUFFLE1BQU0sR0FDakIsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FTbEM7SUFFRDs7OztPQUlHO0lBQ1UsZUFBZSxDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1EbEU7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNVLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBOERsRztZQUdhLGdDQUFnQztDQUkvQztBQUVELDBFQUEwRTtBQUMxRSx3QkFBc0IseUJBQXlCLENBQUMsU0FBUyxDQUFDLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FJckcifQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlwRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUVyQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRiw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixpQ0FBaUM7SUFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNmLDZDQUE2QztJQUM3QyxhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCOzs7bUZBRytFO0lBQy9FLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLGlDQUFpQyxJQUFJLENBQUM7QUFDbkQsZUFBTyxNQUFNLGdDQUFnQyxJQUFJLENBQUM7QUFDbEQsb0ZBQW9GO0FBQ3BGLGVBQU8sTUFBTSxvQ0FBb0MsSUFBSSxDQUFDO0FBRXRELGtHQUFrRztBQUNsRyxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUNuQyxlQUFlLEVBQ2IscUJBQXFCLEdBQ3JCLGtCQUFrQixHQUNsQiwwQkFBMEIsR0FDMUIsdUJBQXVCLEdBQ3ZCLDhCQUE4QixHQUM5Qiw2QkFBNkIsR0FDN0IsaUJBQWlCLEdBQ2pCLGtDQUFrQyxHQUNsQyw2Q0FBNkMsR0FDN0MsMEJBQTBCLEdBQzFCLFNBQVMsQ0FDWixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFlO0lBMEJ4QixPQUFP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
@@ -1 +1 @@
1
- {"version":3,"file":"attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/attestation_pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/attestation_pool.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ import { createLogger } from '@aztec/foundation/log';
4
4
  import { BlockProposal, CheckpointAttestation, CheckpointProposal } from '@aztec/stdlib/p2p';
5
5
  import { getTelemetryClient } from '@aztec/telemetry-client';
6
6
  import { PoolInstrumentation, PoolName } from '../instrumentation.js';
7
- export const MAX_CHECKPOINT_PROPOSALS_PER_SLOT = 5;
8
- export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
9
- /** Maximum attestations a single signer can make per slot before being rejected. */ export const MAX_ATTESTATIONS_PER_SLOT_AND_SIGNER = 3;
7
+ export const MAX_CHECKPOINT_PROPOSALS_PER_SLOT = 2;
8
+ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 2;
9
+ /** Maximum attestations a single signer can make per slot before being rejected. */ export const MAX_ATTESTATIONS_PER_SLOT_AND_SIGNER = 2;
10
10
  /**
11
11
  * Pool for storing attestations and proposals collected by a validator.
12
12
  *
@@ -89,11 +89,13 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
89
89
  }
90
90
  /** Number of bits reserved for indexWithinCheckpoint in position keys. */ static INDEX_BITS = 10;
91
91
  /** Maximum indexWithinCheckpoint value (2^10 - 1 = 1023). */ static MAX_INDEX = (1 << AttestationPool.INDEX_BITS) - 1;
92
- /** Creates a position key for block proposals: (slot << 10) | indexWithinCheckpoint. */ getBlockPositionKey(slot, indexWithinCheckpoint) {
92
+ /** Creates a position key for block proposals: slot * 1024 + indexWithinCheckpoint.
93
+ * Uses multiplication instead of bit-shift to avoid 32-bit signed integer overflow
94
+ * (bit-shift overflows after slot ~2^21, roughly 278 days of uptime). */ getBlockPositionKey(slot, indexWithinCheckpoint) {
93
95
  if (indexWithinCheckpoint > AttestationPool.MAX_INDEX) {
94
96
  throw new Error(`Value for indexWithinCheckpoint ${indexWithinCheckpoint} exceeds maximum ${AttestationPool.MAX_INDEX}`);
95
97
  }
96
- return slot << AttestationPool.INDEX_BITS | indexWithinCheckpoint;
98
+ return slot * (1 << AttestationPool.INDEX_BITS) + indexWithinCheckpoint;
97
99
  }
98
100
  /**
99
101
  * Attempts to add a block proposal to the pool.
@@ -190,7 +192,7 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
190
192
  * @param proposal - The checkpoint proposal core to add
191
193
  * @returns Result indicating whether the proposal was added and duplicate detection info
192
194
  */ async tryAddCheckpointProposal(proposal) {
193
- return await this.store.transactionAsync(async ()=>{
195
+ const result = await this.store.transactionAsync(async ()=>{
194
196
  const proposalId = proposal.archive.toString();
195
197
  // Check if already exists
196
198
  const alreadyExists = await this.checkpointProposals.hasAsync(proposalId);
@@ -223,6 +225,7 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
223
225
  count: count + 1
224
226
  };
225
227
  });
228
+ return result;
226
229
  }
227
230
  /** Internal method - must be called within a transaction. */ async addCheckpointProposal(proposal) {
228
231
  const slotKey = proposal.slotNumber;
@@ -256,7 +259,7 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
256
259
  await this.store.transactionAsync(async ()=>{
257
260
  for (const attestation of attestations){
258
261
  const slotNumber = attestation.payload.header.slotNumber;
259
- const proposalId = attestation.archive;
262
+ const proposalId = attestation.archive.toString();
260
263
  const sender = attestation.getSender();
261
264
  // Skip attestations with invalid signatures
262
265
  if (!sender) {
@@ -268,7 +271,9 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
268
271
  continue;
269
272
  }
270
273
  const address = sender.toString();
271
- await this.checkpointAttestations.set(this.getAttestationKey(slotNumber, proposalId, address), attestation.toBuffer());
274
+ const ownKey = this.getAttestationKey(slotNumber, proposalId, address);
275
+ await this.checkpointAttestations.set(ownKey, attestation.toBuffer());
276
+ this.metrics.trackMempoolItemAdded(ownKey);
272
277
  this.log.debug(`Added own checkpoint attestation for slot ${slotNumber} from ${address}`, {
273
278
  signature: attestation.signature.toString(),
274
279
  slotNumber,
@@ -321,6 +326,7 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
321
326
  end: attestationEndKey
322
327
  })){
323
328
  await this.checkpointAttestations.delete(key);
329
+ this.metrics.trackMempoolItemRemoved(key);
324
330
  numberOfAttestations++;
325
331
  }
326
332
  // Clean up per-signer-per-slot index. Keys are formatted as `${Fr(slot).toString()}-${signerAddress}`.
@@ -345,7 +351,7 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
345
351
  }
346
352
  // Delete block proposals for slots < oldestSlot, using blockProposalsForSlotAndIndex as index
347
353
  // Key format: (slot << INDEX_BITS) | indexWithinCheckpoint
348
- const blockPositionEndKey = oldestSlot << AttestationPool.INDEX_BITS;
354
+ const blockPositionEndKey = oldestSlot * (1 << AttestationPool.INDEX_BITS);
349
355
  for await (const positionKey of this.blockProposalsForSlotAndIndex.keysAsync({
350
356
  end: blockPositionEndKey
351
357
  })){
@@ -415,6 +421,7 @@ export const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
415
421
  }
416
422
  // Add the attestation
417
423
  await this.checkpointAttestations.set(key, attestation.toBuffer());
424
+ this.metrics.trackMempoolItemAdded(key);
418
425
  // Track this attestation in the per-signer-per-slot index for duplicate detection
419
426
  const slotSignerKey = this.getSlotSignerKey(slotNumber, signerAddress);
420
427
  await this.checkpointAttestationsPerSlotAndSigner.set(slotSignerKey, proposalId);
@@ -367,11 +367,11 @@ export function describeAttestationPool(getAttestationPool) {
367
367
  const proposal2 = await mockBlockProposalWithIndex(signers[1], slotNumber, indexWithinCheckpoint);
368
368
  const result2 = await ap.tryAddBlockProposal(proposal2);
369
369
  expect(result2.count).toBe(2);
370
- // Add a third proposal for same position
370
+ // Third proposal for same position should be rejected (cap is 2)
371
371
  const proposal3 = await mockBlockProposalWithIndex(signers[2], slotNumber, indexWithinCheckpoint);
372
372
  const result3 = await ap.tryAddBlockProposal(proposal3);
373
- expect(result3.added).toBe(true);
374
- expect(result3.count).toBe(3);
373
+ expect(result3.added).toBe(false);
374
+ expect(result3.count).toBe(2);
375
375
  });
376
376
  it('should return added=false when exceeding capacity', async ()=>{
377
377
  const slotNumber = 100;
@@ -537,11 +537,11 @@ export function describeAttestationPool(getAttestationPool) {
537
537
  const proposal2 = await mockCheckpointProposalCoreForPool(signers[1], slotNumber);
538
538
  const result2 = await ap.tryAddCheckpointProposal(proposal2);
539
539
  expect(result2.count).toBe(2);
540
- // Add a third proposal for same slot
540
+ // Third proposal for same slot should be rejected (cap is 2)
541
541
  const proposal3 = await mockCheckpointProposalCoreForPool(signers[2], slotNumber);
542
542
  const result3 = await ap.tryAddCheckpointProposal(proposal3);
543
- expect(result3.added).toBe(true);
544
- expect(result3.count).toBe(3);
543
+ expect(result3.added).toBe(false);
544
+ expect(result3.count).toBe(2);
545
545
  });
546
546
  it('should not count attestations as proposals for duplicate detection', async ()=>{
547
547
  const slotNumber = 100;
@@ -239,4 +239,4 @@ export declare const generateAccount: () => {
239
239
  * @returns A Checkpoint Attestation
240
240
  */
241
241
  export declare const mockCheckpointAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr, header?: CheckpointHeader | undefined, feeAssetPriceModifier?: bigint) => CheckpointAttestation;
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUNMLHFCQUFxQixFQUl0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXhEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBRzNCLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHlCQUF5Qix3SkFvQnJDLENBQUMifQ==
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUNMLHFCQUFxQixFQUl0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBS3hEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBRzNCLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHlCQUF5Qix3SkF3QnJDLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EACL,qBAAqB,EAItB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,wJAoBrC,CAAC"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EACL,qBAAqB,EAItB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAKxD;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,wJAwBrC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { SlotNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { CheckpointAttestation, ConsensusPayload, SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '@aztec/stdlib/p2p';
3
+ import { CheckpointAttestation, CheckpointProposal, ConsensusPayload, getHashedSignaturePayloadTypedData } from '@aztec/stdlib/p2p';
4
4
  import { CheckpointHeader } from '@aztec/stdlib/rollup';
5
+ import { TEST_COORDINATION_SIGNATURE_CONTEXT } from '@aztec/stdlib/testing';
5
6
  import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
6
7
  /** Generate Account
7
8
  *
@@ -22,10 +23,11 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
22
23
  header = header ?? CheckpointHeader.random({
23
24
  slotNumber: SlotNumber(slot)
24
25
  });
25
- const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
26
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
26
+ const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier, TEST_COORDINATION_SIGNATURE_CONTEXT);
27
+ const attestationHash = getHashedSignaturePayloadTypedData(payload);
27
28
  const attestationSignature = signer.sign(attestationHash);
28
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointProposal);
29
+ const proposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, attestationSignature, TEST_COORDINATION_SIGNATURE_CONTEXT);
30
+ const proposalHash = getHashedSignaturePayloadTypedData(proposal);
29
31
  const proposerSignature = signer.sign(proposalHash);
30
32
  return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
31
33
  };
@@ -1,5 +1,4 @@
1
1
  export { AttestationPool, type AttestationPoolApi } from './attestation_pool/attestation_pool.js';
2
2
  export { type MemPools } from './interface.js';
3
- export { type TxPool } from './tx_pool/tx_pool.js';
4
3
  export { type TxPoolV2, type TxPoolV2Config, type TxPoolV2Events, type AddTxsResult } from './tx_pool_v2/index.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1fcG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEcsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLEtBQUssY0FBYyxFQUFFLEtBQUssY0FBYyxFQUFFLEtBQUssWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUMifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1fcG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEcsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLEtBQUssY0FBYyxFQUFFLEtBQUssY0FBYyxFQUFFLEtBQUssWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mem_pools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAClG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mem_pools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAClG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -23,12 +23,14 @@ export declare class PoolInstrumentation<PoolObject extends Gossipable> {
23
23
  private dbMetrics;
24
24
  private defaultAttributes;
25
25
  private meter;
26
- private txAddedTimestamp;
26
+ private mempoolItemAddedTimestamp;
27
27
  constructor(telemetry: TelemetryClient, name: PoolName, poolStats: PoolStatsCallback, dbStats?: LmdbStatsCallback);
28
28
  recordSize(poolObject: PoolObject): void;
29
29
  incrementAddedObjects(count: number): void;
30
30
  transactionsAdded(transactions: Tx[]): void;
31
31
  transactionsRemoved(hashes: Iterable<bigint> | Iterable<string>): void;
32
+ trackMempoolItemAdded(key: bigint | string): void;
33
+ trackMempoolItemRemoved(key: bigint | string): void;
32
34
  private observeStats;
33
35
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQWtDRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFtQjFELE9BQU8sQ0FBQyxTQUFTO0lBbEJuQix1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLGdCQUFnQixDQUFrQjtJQUMxQyxPQUFPLENBQUMsZ0JBQWdCLENBQWdCO0lBQ3hDLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsVUFBVSxDQUFZO0lBQzlCLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFZO0lBRTlCLE9BQU8sQ0FBQyxTQUFTLENBQWM7SUFFL0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQVE7SUFFckIsT0FBTyxDQUFDLGdCQUFnQixDQUFrRDtJQUUxRSxZQUNFLFNBQVMsRUFBRSxlQUFlLEVBQzFCLElBQUksRUFBRSxRQUFRLEVBQ04sU0FBUyxFQUFFLGlCQUFpQixFQUNwQyxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUF3QjVCO0lBRU0sVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLFFBRXZDO0lBRU0scUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFekM7SUFFTSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLFFBSzFDO0lBRU0sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBWXJFO0lBRUQsT0FBTyxDQUFDLFlBQVksQ0FZbEI7Q0FDSCJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQWtDRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFtQjFELE9BQU8sQ0FBQyxTQUFTO0lBbEJuQix1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLGdCQUFnQixDQUFrQjtJQUMxQyxPQUFPLENBQUMsZ0JBQWdCLENBQWdCO0lBQ3hDLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsVUFBVSxDQUFZO0lBQzlCLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFZO0lBRTlCLE9BQU8sQ0FBQyxTQUFTLENBQWM7SUFFL0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQVE7SUFFckIsT0FBTyxDQUFDLHlCQUF5QixDQUFvRTtJQUVyRyxZQUNFLFNBQVMsRUFBRSxlQUFlLEVBQzFCLElBQUksRUFBRSxRQUFRLEVBQ04sU0FBUyxFQUFFLGlCQUFpQixFQUNwQyxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUE0QjVCO0lBRU0sVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLFFBRXZDO0lBRU0scUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFekM7SUFFTSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLFFBRTFDO0lBRU0sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBSXJFO0lBRU0scUJBQXFCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUV2RDtJQUVNLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FTekQ7SUFFRCxPQUFPLENBQUMsWUFBWSxDQVlsQjtDQUNIIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AAkCD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,mBAAmB,CAAC,UAAU,SAAS,UAAU;IAmB1D,OAAO,CAAC,SAAS;IAlBnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAC9B,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,gBAAgB,CAAkD;IAE1E,YACE,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB,EAwB5B;IAEM,UAAU,CAAC,UAAU,EAAE,UAAU,QAEvC;IAEM,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAEzC;IAEM,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,QAK1C;IAEM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAYrE;IAED,OAAO,CAAC,YAAY,CAYlB;CACH"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AAkCD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,mBAAmB,CAAC,UAAU,SAAS,UAAU;IAmB1D,OAAO,CAAC,SAAS;IAlBnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAC9B,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,yBAAyB,CAAoE;IAErG,YACE,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB,EA4B5B;IAEM,UAAU,CAAC,UAAU,EAAE,UAAU,QAEvC;IAEM,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAEzC;IAEM,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,QAE1C;IAEM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAIrE;IAEM,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvD;IAEM,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASzD;IAED,OAAO,CAAC,YAAY,CAYlB;CACH"}
@@ -37,10 +37,10 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
37
37
  dbMetrics;
38
38
  defaultAttributes;
39
39
  meter;
40
- txAddedTimestamp;
40
+ mempoolItemAddedTimestamp;
41
41
  constructor(telemetry, name, poolStats, dbStats){
42
42
  this.poolStats = poolStats;
43
- this.txAddedTimestamp = new Map();
43
+ this.mempoolItemAddedTimestamp = new Map();
44
44
  this.observeStats = async (observer)=>{
45
45
  const { itemCount } = await this.poolStats();
46
46
  if (typeof itemCount === 'number') {
@@ -65,7 +65,23 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
65
65
  [Attributes.DB_DATA_TYPE]: 'tx-pool'
66
66
  }, dbStats);
67
67
  this.addObjectCounter = createUpDownCounterWithDefault(this.meter, metricsLabels.itemsAdded);
68
- this.minedDelay = this.meter.createHistogram(metricsLabels.itemMinedDelay);
68
+ this.minedDelay = this.meter.createHistogram(metricsLabels.itemMinedDelay, {
69
+ advice: {
70
+ explicitBucketBoundaries: [
71
+ 100,
72
+ 500,
73
+ 1000,
74
+ 5000,
75
+ 10000,
76
+ 30000,
77
+ 60000,
78
+ 300000,
79
+ 600000,
80
+ 1800000,
81
+ 3600000
82
+ ]
83
+ }
84
+ });
69
85
  this.meter.addBatchObservableCallback(this.observeStats, [
70
86
  this.objectsInMempool
71
87
  ]);
@@ -77,21 +93,23 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
77
93
  this.addObjectCounter.add(count);
78
94
  }
79
95
  transactionsAdded(transactions) {
80
- const timestamp = Date.now();
81
- for (const transaction of transactions){
82
- this.txAddedTimestamp.set(transaction.txHash.toBigInt(), timestamp);
83
- }
96
+ transactions.forEach((tx)=>this.trackMempoolItemAdded(tx.txHash.toBigInt()));
84
97
  }
85
98
  transactionsRemoved(hashes) {
86
- const timestamp = Date.now();
87
99
  for (const hash of hashes){
88
- const key = BigInt(hash);
89
- const addedAt = this.txAddedTimestamp.get(key);
90
- if (addedAt !== undefined) {
91
- this.txAddedTimestamp.delete(key);
92
- if (addedAt < timestamp) {
93
- this.minedDelay.record(timestamp - addedAt);
94
- }
100
+ this.trackMempoolItemRemoved(BigInt(hash));
101
+ }
102
+ }
103
+ trackMempoolItemAdded(key) {
104
+ this.mempoolItemAddedTimestamp.set(key, Date.now());
105
+ }
106
+ trackMempoolItemRemoved(key) {
107
+ const timestamp = Date.now();
108
+ const addedAt = this.mempoolItemAddedTimestamp.get(key);
109
+ if (addedAt !== undefined) {
110
+ this.mempoolItemAddedTimestamp.delete(key);
111
+ if (addedAt < timestamp) {
112
+ this.minedDelay.record(timestamp - addedAt);
95
113
  }
96
114
  }
97
115
  }
@@ -14,4 +14,4 @@ export declare class FeePayerBalanceEvictionRule implements EvictionRule {
14
14
  private evictForFeePayers;
15
15
  private getEvictionsForFeePayer;
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheWVyX2JhbGFuY2VfZXZpY3Rpb25fcnVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2ZlZV9wYXllcl9iYWxhbmNlX2V2aWN0aW9uX3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUk5RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7O0dBR0c7QUFDSCxxQkFBYSwyQkFBNEIsWUFBVyxZQUFZO0lBTWxELE9BQU8sQ0FBQyxVQUFVO0lBTDlCLFNBQWdCLElBQUksNkJBQTZCO0lBQ2pELFNBQWdCLE1BQU0sdUJBQXVCO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQWtFO0lBRTdFLFlBQW9CLFVBQVUsRUFBRSxzQkFBc0IsRUFBSTtJQUVwRCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FnQ25GO1lBRWEsaUJBQWlCO1lBeUJqQix1QkFBdUI7Q0FzQ3RDIn0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheWVyX2JhbGFuY2VfZXZpY3Rpb25fcnVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2ZlZV9wYXllcl9iYWxhbmNlX2V2aWN0aW9uX3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUk5RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7O0dBR0c7QUFDSCxxQkFBYSwyQkFBNEIsWUFBVyxZQUFZO0lBTWxELE9BQU8sQ0FBQyxVQUFVO0lBTDlCLFNBQWdCLElBQUksNkJBQTZCO0lBQ2pELFNBQWdCLE1BQU0sdUJBQXVCO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQWtFO0lBRTdFLFlBQW9CLFVBQVUsRUFBRSxzQkFBc0IsRUFBSTtJQUVwRCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FpQ25GO1lBRWEsaUJBQWlCO1lBeUJqQix1QkFBdUI7Q0FzQ3RDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fee_payer_balance_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,YAAY;IAMlD,OAAO,CAAC,UAAU;IAL9B,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,MAAM,uBAAuB;IAE7C,OAAO,CAAC,GAAG,CAAkE;IAE7E,YAAoB,UAAU,EAAE,sBAAsB,EAAI;IAEpD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAgCnF;YAEa,iBAAiB;YAyBjB,uBAAuB;CAsCtC"}
1
+ {"version":3,"file":"fee_payer_balance_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,YAAY;IAMlD,OAAO,CAAC,UAAU;IAL9B,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,MAAM,uBAAuB;IAE7C,OAAO,CAAC,GAAG,CAAkE;IAE7E,YAAoB,UAAU,EAAE,sBAAsB,EAAI;IAEpD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiCnF;YAEa,iBAAiB;YAyBjB,uBAAuB;CAsCtC"}