@aztec/p2p 0.0.1-commit.b655e406 → 0.0.1-commit.c2595eba

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 (444) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +4 -3
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +4 -4
  4. package/dest/client/factory.d.ts +2 -2
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +8 -8
  7. package/dest/client/index.d.ts +1 -1
  8. package/dest/client/interface.d.ts +18 -3
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +16 -37
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +464 -126
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  19. package/dest/config.d.ts +69 -60
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +23 -14
  22. package/dest/enr/generate-enr.d.ts +1 -1
  23. package/dest/enr/index.d.ts +1 -1
  24. package/dest/errors/attestation-pool.error.d.ts +7 -0
  25. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  26. package/dest/errors/attestation-pool.error.js +12 -0
  27. package/dest/errors/reqresp.error.d.ts +1 -1
  28. package/dest/errors/reqresp.error.d.ts.map +1 -1
  29. package/dest/index.d.ts +1 -1
  30. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +77 -36
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +241 -266
  35. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  36. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +24 -14
  37. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +123 -95
  39. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +18 -12
  40. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  41. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +91 -108
  42. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  44. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  45. package/dest/mem_pools/index.d.ts +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +9 -1
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +37 -10
  49. package/dest/mem_pools/interface.d.ts +3 -4
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +33 -58
  52. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  54. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  55. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  57. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  58. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  60. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  61. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  63. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  66. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  69. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  70. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  72. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  73. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  75. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  76. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  77. package/dest/mem_pools/tx_pool/index.js +0 -1
  78. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  79. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  80. package/dest/mem_pools/tx_pool/priority.js +6 -1
  81. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  82. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  83. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  84. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  85. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  86. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -6
  87. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  88. package/dest/msg_validators/attestation_validator/attestation_validator.js +57 -24
  89. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  90. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  91. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  92. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  93. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  94. package/dest/msg_validators/attestation_validator/index.js +1 -0
  95. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  96. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  97. package/dest/msg_validators/clock_tolerance.js +37 -0
  98. package/dest/msg_validators/index.d.ts +2 -2
  99. package/dest/msg_validators/index.d.ts.map +1 -1
  100. package/dest/msg_validators/index.js +1 -1
  101. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  102. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  104. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  105. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  106. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  107. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  108. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  109. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  110. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  111. package/dest/msg_validators/proposal_validator/index.js +3 -0
  112. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  113. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  114. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  115. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  116. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  117. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  118. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  119. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  120. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  121. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  122. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  123. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  124. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +5 -4
  125. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  126. package/dest/msg_validators/tx_validator/block_header_validator.js +3 -2
  127. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  128. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  129. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  130. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +3 -2
  131. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  132. package/dest/msg_validators/tx_validator/double_spend_validator.js +3 -2
  133. package/dest/msg_validators/tx_validator/factory.d.ts +10 -4
  134. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  135. package/dest/msg_validators/tx_validator/factory.js +22 -12
  136. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  137. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  138. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  139. package/dest/msg_validators/tx_validator/gas_validator.d.ts +3 -2
  140. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  141. package/dest/msg_validators/tx_validator/gas_validator.js +11 -16
  142. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  143. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  144. package/dest/msg_validators/tx_validator/index.js +1 -0
  145. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  146. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  147. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  148. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  149. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  150. package/dest/msg_validators/tx_validator/phases_validator.js +6 -4
  151. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  152. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  153. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  154. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  155. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  156. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +5 -3
  157. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  158. package/dest/msg_validators/tx_validator/timestamp_validator.js +2 -2
  159. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  160. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  161. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  162. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  163. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  164. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  165. package/dest/services/data_store.d.ts +1 -1
  166. package/dest/services/data_store.d.ts.map +1 -1
  167. package/dest/services/discv5/discV5_service.d.ts +1 -1
  168. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  169. package/dest/services/discv5/discV5_service.js +1 -1
  170. package/dest/services/dummy_service.d.ts +18 -2
  171. package/dest/services/dummy_service.d.ts.map +1 -1
  172. package/dest/services/dummy_service.js +42 -0
  173. package/dest/services/encoding.d.ts +1 -1
  174. package/dest/services/encoding.d.ts.map +1 -1
  175. package/dest/services/encoding.js +7 -6
  176. package/dest/services/gossipsub/scoring.d.ts +1 -1
  177. package/dest/services/index.d.ts +1 -1
  178. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  179. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  180. package/dest/services/libp2p/instrumentation.js +36 -71
  181. package/dest/services/libp2p/libp2p_service.d.ts +48 -81
  182. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  183. package/dest/services/libp2p/libp2p_service.js +926 -193
  184. package/dest/services/peer-manager/interface.d.ts +1 -1
  185. package/dest/services/peer-manager/metrics.d.ts +9 -2
  186. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  187. package/dest/services/peer-manager/metrics.js +39 -16
  188. package/dest/services/peer-manager/peer_manager.d.ts +2 -33
  189. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  190. package/dest/services/peer-manager/peer_manager.js +6 -12
  191. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  192. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  193. package/dest/services/peer-manager/peer_scoring.js +43 -2
  194. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  195. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  196. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  197. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  198. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  199. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  200. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  201. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  202. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  203. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  204. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  205. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  206. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  207. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  208. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  209. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  210. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  211. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  212. package/dest/services/reqresp/config.d.ts +1 -1
  213. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  214. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  215. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  216. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  217. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  218. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  219. package/dest/services/reqresp/constants.d.ts +12 -0
  220. package/dest/services/reqresp/constants.d.ts.map +1 -0
  221. package/dest/services/reqresp/constants.js +7 -0
  222. package/dest/services/reqresp/index.d.ts +1 -1
  223. package/dest/services/reqresp/interface.d.ts +4 -2
  224. package/dest/services/reqresp/interface.d.ts.map +1 -1
  225. package/dest/services/reqresp/interface.js +1 -1
  226. package/dest/services/reqresp/metrics.d.ts +6 -5
  227. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  228. package/dest/services/reqresp/metrics.js +17 -21
  229. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  230. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  231. package/dest/services/reqresp/protocols/auth.js +2 -2
  232. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  233. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  234. package/dest/services/reqresp/protocols/block.js +3 -2
  235. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  236. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  237. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  238. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  239. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  240. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +14 -1
  241. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +17 -7
  242. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  243. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +34 -4
  244. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  245. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  246. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  247. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  248. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  249. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  250. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  251. package/dest/services/reqresp/protocols/status.js +7 -3
  252. package/dest/services/reqresp/protocols/tx.d.ts +2 -3
  253. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  254. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  255. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  256. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  257. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  258. package/dest/services/reqresp/reqresp.d.ts +6 -41
  259. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  260. package/dest/services/reqresp/reqresp.js +460 -46
  261. package/dest/services/reqresp/status.d.ts +2 -2
  262. package/dest/services/reqresp/status.d.ts.map +1 -1
  263. package/dest/services/service.d.ts +19 -3
  264. package/dest/services/service.d.ts.map +1 -1
  265. package/dest/services/tx_collection/config.d.ts +4 -1
  266. package/dest/services/tx_collection/config.d.ts.map +1 -1
  267. package/dest/services/tx_collection/config.js +10 -2
  268. package/dest/services/tx_collection/fast_tx_collection.d.ts +9 -12
  269. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  270. package/dest/services/tx_collection/fast_tx_collection.js +16 -5
  271. package/dest/services/tx_collection/index.d.ts +2 -1
  272. package/dest/services/tx_collection/index.d.ts.map +1 -1
  273. package/dest/services/tx_collection/index.js +1 -0
  274. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  275. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  276. package/dest/services/tx_collection/instrumentation.js +10 -13
  277. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  278. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  279. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  280. package/dest/services/tx_collection/slow_tx_collection.d.ts +4 -5
  281. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  282. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  283. package/dest/services/tx_collection/tx_collection.d.ts +10 -10
  284. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  285. package/dest/services/tx_collection/tx_collection.js +5 -5
  286. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  287. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  288. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  289. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  290. package/dest/services/tx_provider.d.ts +4 -2
  291. package/dest/services/tx_provider.d.ts.map +1 -1
  292. package/dest/services/tx_provider.js +11 -2
  293. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  294. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  295. package/dest/services/tx_provider_instrumentation.js +14 -14
  296. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  297. package/dest/test-helpers/get-ports.d.ts +1 -1
  298. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  299. package/dest/test-helpers/index.d.ts +3 -1
  300. package/dest/test-helpers/index.d.ts.map +1 -1
  301. package/dest/test-helpers/index.js +2 -0
  302. package/dest/test-helpers/make-enrs.d.ts +1 -1
  303. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  304. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  305. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  306. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  307. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  308. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  309. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  310. package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
  311. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  312. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  313. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  314. package/dest/test-helpers/test_tx_provider.js +41 -0
  315. package/dest/test-helpers/testbench-utils.d.ts +158 -0
  316. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  317. package/dest/test-helpers/testbench-utils.js +297 -0
  318. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  319. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  320. package/dest/testbench/p2p_client_testbench_worker.js +218 -120
  321. package/dest/testbench/parse_log_file.d.ts +1 -1
  322. package/dest/testbench/testbench.d.ts +1 -1
  323. package/dest/testbench/worker_client_manager.d.ts +51 -6
  324. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  325. package/dest/testbench/worker_client_manager.js +226 -39
  326. package/dest/types/index.d.ts +1 -1
  327. package/dest/util.d.ts +2 -1
  328. package/dest/util.d.ts.map +1 -1
  329. package/dest/util.js +11 -2
  330. package/dest/versioning.d.ts +1 -1
  331. package/package.json +19 -18
  332. package/src/bootstrap/bootstrap.ts +7 -4
  333. package/src/client/factory.ts +11 -20
  334. package/src/client/interface.ts +20 -2
  335. package/src/client/p2p_client.ts +108 -155
  336. package/src/client/test/tx_proposal_collector/README.md +227 -0
  337. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  338. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  339. package/src/config.ts +36 -20
  340. package/src/errors/attestation-pool.error.ts +13 -0
  341. package/src/mem_pools/attestation_pool/attestation_pool.ts +86 -35
  342. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +243 -278
  343. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +175 -111
  344. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +147 -136
  345. package/src/mem_pools/attestation_pool/mocks.ts +21 -15
  346. package/src/mem_pools/instrumentation.ts +48 -10
  347. package/src/mem_pools/interface.ts +2 -4
  348. package/src/mem_pools/tx_pool/README.md +270 -0
  349. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  350. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  351. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  352. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  353. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  354. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  355. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  356. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  357. package/src/mem_pools/tx_pool/index.ts +0 -1
  358. package/src/mem_pools/tx_pool/priority.ts +8 -1
  359. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  360. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  361. package/src/msg_validators/attestation_validator/attestation_validator.ts +45 -32
  362. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  363. package/src/msg_validators/attestation_validator/index.ts +1 -0
  364. package/src/msg_validators/clock_tolerance.ts +51 -0
  365. package/src/msg_validators/index.ts +1 -1
  366. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  367. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  368. package/src/msg_validators/proposal_validator/index.ts +3 -0
  369. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  370. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  371. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  372. package/src/msg_validators/tx_validator/block_header_validator.ts +6 -5
  373. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  374. package/src/msg_validators/tx_validator/double_spend_validator.ts +4 -3
  375. package/src/msg_validators/tx_validator/factory.ts +67 -25
  376. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  377. package/src/msg_validators/tx_validator/gas_validator.ts +17 -28
  378. package/src/msg_validators/tx_validator/index.ts +1 -0
  379. package/src/msg_validators/tx_validator/metadata_validator.ts +19 -8
  380. package/src/msg_validators/tx_validator/phases_validator.ts +8 -4
  381. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  382. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  383. package/src/msg_validators/tx_validator/timestamp_validator.ts +11 -5
  384. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  385. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  386. package/src/services/discv5/discV5_service.ts +1 -1
  387. package/src/services/dummy_service.ts +51 -0
  388. package/src/services/encoding.ts +6 -5
  389. package/src/services/libp2p/instrumentation.ts +39 -71
  390. package/src/services/libp2p/libp2p_service.ts +628 -194
  391. package/src/services/peer-manager/metrics.ts +44 -16
  392. package/src/services/peer-manager/peer_manager.ts +7 -4
  393. package/src/services/peer-manager/peer_scoring.ts +45 -3
  394. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  395. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  396. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  397. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  398. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  399. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  400. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  401. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  402. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  403. package/src/services/reqresp/constants.ts +14 -0
  404. package/src/services/reqresp/interface.ts +4 -1
  405. package/src/services/reqresp/metrics.ts +36 -27
  406. package/src/services/reqresp/protocols/auth.ts +2 -2
  407. package/src/services/reqresp/protocols/block.ts +3 -2
  408. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  409. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +16 -2
  410. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -5
  411. package/src/services/reqresp/protocols/status.ts +16 -12
  412. package/src/services/reqresp/protocols/tx.ts +1 -2
  413. package/src/services/reqresp/reqresp.ts +66 -19
  414. package/src/services/service.ts +23 -4
  415. package/src/services/tx_collection/config.ts +16 -2
  416. package/src/services/tx_collection/fast_tx_collection.ts +39 -15
  417. package/src/services/tx_collection/index.ts +5 -0
  418. package/src/services/tx_collection/instrumentation.ts +5 -13
  419. package/src/services/tx_collection/proposal_tx_collector.ts +114 -0
  420. package/src/services/tx_collection/slow_tx_collection.ts +5 -4
  421. package/src/services/tx_collection/tx_collection.ts +10 -9
  422. package/src/services/tx_provider.ts +19 -3
  423. package/src/services/tx_provider_instrumentation.ts +24 -14
  424. package/src/test-helpers/index.ts +2 -0
  425. package/src/test-helpers/mock-pubsub.ts +1 -1
  426. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  427. package/src/test-helpers/reqresp-nodes.ts +1 -1
  428. package/src/test-helpers/test_tx_provider.ts +64 -0
  429. package/src/test-helpers/testbench-utils.ts +374 -0
  430. package/src/testbench/p2p_client_testbench_worker.ts +338 -116
  431. package/src/testbench/worker_client_manager.ts +304 -42
  432. package/src/util.ts +12 -2
  433. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  434. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  435. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  436. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  437. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  438. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  439. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  440. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  441. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  442. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  443. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  444. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,58 +1,93 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { getTelemetryClient } from '@aztec/telemetry-client';
3
+ import { ProposalSlotCapExceededError } from '../../errors/attestation-pool.error.js';
3
4
  import { PoolInstrumentation, PoolName } from '../instrumentation.js';
5
+ import { ATTESTATION_CAP_BUFFER, MAX_PROPOSALS_PER_SLOT } from './kv_attestation_pool.js';
4
6
  export class InMemoryAttestationPool {
5
7
  log;
6
8
  metrics;
7
- attestations;
8
9
  proposals;
10
+ // Checkpoint attestations
11
+ // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
12
+ checkpointAttestations;
13
+ checkpointProposals;
9
14
  constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')){
10
15
  this.log = log;
11
16
  this.poolStats = ()=>{
12
17
  return Promise.resolve({
13
- itemCount: this.attestations.size
18
+ itemCount: this.checkpointAttestations.size
14
19
  });
15
20
  };
16
- this.attestations = new Map();
17
21
  this.proposals = new Map();
22
+ this.checkpointAttestations = new Map();
23
+ this.checkpointProposals = new Map();
18
24
  this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL, this.poolStats);
19
25
  }
20
26
  poolStats;
21
27
  isEmpty() {
22
- return Promise.resolve(this.attestations.size === 0);
28
+ return Promise.resolve(this.checkpointAttestations.size === 0 && this.proposals.size === 0);
23
29
  }
24
- getAttestationsForSlot(slot) {
25
- return Promise.resolve(Array.from(this.attestations.get(slot)?.values() ?? []).flatMap((proposalAttestationMap)=>Array.from(proposalAttestationMap.values())));
30
+ addBlockProposal(blockProposal) {
31
+ // Strip signedTxs before storing to avoid holding full tx data in memory
32
+ this.proposals.set(blockProposal.archive.toString(), blockProposal.withoutSignedTxs());
33
+ return Promise.resolve();
26
34
  }
27
- getAttestationsForSlotAndProposal(slot, proposalId) {
28
- const slotAttestationMap = this.attestations.get(slot);
29
- if (slotAttestationMap) {
30
- const proposalAttestationMap = slotAttestationMap.get(proposalId);
31
- if (proposalAttestationMap) {
32
- return Promise.resolve(Array.from(proposalAttestationMap.values()));
33
- }
35
+ getBlockProposal(id) {
36
+ return Promise.resolve(this.proposals.get(id));
37
+ }
38
+ hasBlockProposal(idOrProposal) {
39
+ const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.archive.toString();
40
+ return Promise.resolve(this.proposals.has(id));
41
+ }
42
+ canAddProposal(_block) {
43
+ // TODO(palla/mbps): See when to allow
44
+ return Promise.resolve(true);
45
+ }
46
+ // Checkpoint attestation methods
47
+ async addCheckpointProposal(proposal) {
48
+ if (!await this.canAddCheckpointProposal(proposal)) {
49
+ throw new ProposalSlotCapExceededError(`Maximum checkpoint proposals per slot reached: slot=${proposal.slotNumber} cap=${MAX_PROPOSALS_PER_SLOT} proposal=${proposal.archive.toString()}`);
34
50
  }
35
- return Promise.resolve([]);
51
+ // Extract and validate the block proposal if present
52
+ const blockProposal = proposal.getBlockProposal();
53
+ if (blockProposal && !await this.canAddProposal(blockProposal)) {
54
+ throw new ProposalSlotCapExceededError(`Maximum block proposals per slot reached when extracting from checkpoint: slot=${proposal.slotNumber} proposal=${blockProposal.archive.toString()}`);
55
+ }
56
+ const slotProposalMapping = getCheckpointSlotOrDefault(this.checkpointAttestations, proposal.slotNumber);
57
+ slotProposalMapping.set(proposal.archive.toString(), new Map());
58
+ // Store the checkpoint proposal as core (without lastBlock) to avoid duplication
59
+ this.checkpointProposals.set(proposal.archive.toString(), proposal.toCore());
60
+ // Store the extracted block proposal separately
61
+ if (blockProposal) {
62
+ this.proposals.set(blockProposal.archive.toString(), blockProposal.withoutSignedTxs());
63
+ }
64
+ return Promise.resolve();
36
65
  }
37
- addAttestations(attestations) {
66
+ getCheckpointProposal(id) {
67
+ return Promise.resolve(this.checkpointProposals.get(id));
68
+ }
69
+ hasCheckpointProposal(idOrProposal) {
70
+ const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.archive.toString();
71
+ return Promise.resolve(this.checkpointProposals.has(id));
72
+ }
73
+ addCheckpointAttestations(attestations) {
38
74
  for (const attestation of attestations){
39
- // Perf: order and group by slot before insertion
40
75
  const slotNumber = attestation.payload.header.slotNumber;
41
76
  const proposalId = attestation.archive.toString();
42
77
  const sender = attestation.getSender();
43
78
  // Skip attestations with invalid signatures
44
79
  if (!sender) {
45
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
80
+ this.log.warn(`Skipping checkpoint attestation with invalid signature for slot ${slotNumber}`, {
46
81
  signature: attestation.signature.toString(),
47
82
  slotNumber,
48
83
  proposalId
49
84
  });
50
85
  continue;
51
86
  }
52
- const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber.toBigInt());
53
- const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
87
+ const slotAttestationMap = getCheckpointSlotOrDefault(this.checkpointAttestations, slotNumber);
88
+ const proposalAttestationMap = getCheckpointProposalOrDefault(slotAttestationMap, proposalId);
54
89
  proposalAttestationMap.set(sender.toString(), attestation);
55
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${sender}`, {
90
+ this.log.verbose(`Added checkpoint attestation for slot ${slotNumber} from ${sender}`, {
56
91
  signature: attestation.signature.toString(),
57
92
  slotNumber,
58
93
  address: sender,
@@ -61,22 +96,22 @@ export class InMemoryAttestationPool {
61
96
  }
62
97
  return Promise.resolve();
63
98
  }
64
- #getNumberOfAttestationsInSlot(slot) {
65
- let total = 0;
66
- const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
99
+ getCheckpointAttestationsForSlot(slot) {
100
+ return Promise.resolve(Array.from(this.checkpointAttestations.get(slot)?.values() ?? []).flatMap((proposalAttestationMap)=>Array.from(proposalAttestationMap.values())));
101
+ }
102
+ getCheckpointAttestationsForSlotAndProposal(slot, proposalId) {
103
+ const slotAttestationMap = this.checkpointAttestations.get(slot);
67
104
  if (slotAttestationMap) {
68
- for (const proposalAttestationMap of slotAttestationMap.values() ?? []){
69
- total += proposalAttestationMap.size;
105
+ const proposalAttestationMap = slotAttestationMap.get(proposalId);
106
+ if (proposalAttestationMap) {
107
+ return Promise.resolve(Array.from(proposalAttestationMap.values()));
70
108
  }
71
109
  }
72
- return total;
110
+ return Promise.resolve([]);
73
111
  }
74
- async deleteAttestationsOlderThan(oldestSlot) {
112
+ deleteCheckpointAttestationsOlderThan(oldestSlot) {
75
113
  const olderThan = [];
76
- // Entries are iterated in insertion order, so we can break as soon as we find a slot that is older than the oldestSlot.
77
- // Note: this will only prune correctly if attestations are added in order of rising slot, it is important that we do not allow
78
- // insertion of attestations that are old. #(https://github.com/AztecProtocol/aztec-packages/issues/10322)
79
- const slots = this.attestations.keys();
114
+ const slots = this.checkpointAttestations.keys();
80
115
  for (const slot of slots){
81
116
  if (slot < oldestSlot) {
82
117
  olderThan.push(slot);
@@ -85,57 +120,32 @@ export class InMemoryAttestationPool {
85
120
  }
86
121
  }
87
122
  for (const oldSlot of olderThan){
88
- await this.deleteAttestationsForSlot(oldSlot);
123
+ const proposalIds = this.checkpointAttestations.get(oldSlot)?.keys();
124
+ proposalIds?.forEach((proposalId)=>this.checkpointProposals.delete(proposalId));
125
+ this.checkpointAttestations.delete(oldSlot);
89
126
  }
90
127
  return Promise.resolve();
91
128
  }
92
- deleteAttestationsForSlot(slot) {
93
- // We count the number of attestations we are removing
94
- const numberOfAttestations = this.#getNumberOfAttestationsInSlot(slot);
95
- const proposalIdsToDelete = this.attestations.get(slot)?.keys();
96
- let proposalIdsToDeleteCount = 0;
97
- proposalIdsToDelete?.forEach((proposalId)=>{
98
- this.proposals.delete(proposalId);
99
- proposalIdsToDeleteCount++;
100
- });
101
- this.attestations.delete(slot);
102
- this.log.verbose(`Removed ${numberOfAttestations} attestations and ${proposalIdsToDeleteCount} proposals for slot ${slot}`);
103
- return Promise.resolve();
129
+ hasReachedCheckpointProposalCap(slot) {
130
+ const slotAttestationMap = this.checkpointAttestations.get(slot);
131
+ const proposalCount = slotAttestationMap?.size ?? 0;
132
+ return Promise.resolve(proposalCount >= MAX_PROPOSALS_PER_SLOT);
104
133
  }
105
- deleteAttestationsForSlotAndProposal(slot, proposalId) {
106
- const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
107
- if (slotAttestationMap) {
108
- if (slotAttestationMap.has(proposalId)) {
109
- const numberOfAttestations = slotAttestationMap.get(proposalId)?.size ?? 0;
110
- slotAttestationMap.delete(proposalId);
111
- this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
112
- }
113
- }
114
- this.proposals.delete(proposalId);
115
- return Promise.resolve();
134
+ hasReachedCheckpointAttestationCap(slot, proposalId, committeeSize) {
135
+ const limit = committeeSize + ATTESTATION_CAP_BUFFER;
136
+ const count = this.checkpointAttestations.get(slot)?.get(proposalId)?.size ?? 0;
137
+ return Promise.resolve(limit <= 0 || count >= limit);
116
138
  }
117
- deleteAttestations(attestations) {
118
- for (const attestation of attestations){
119
- const slotNumber = attestation.payload.header.slotNumber;
120
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
121
- if (slotAttestationMap) {
122
- const proposalId = attestation.archive.toString();
123
- const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
124
- if (proposalAttestationMap) {
125
- const sender = attestation.getSender();
126
- // Skip attestations with invalid signatures
127
- if (!sender) {
128
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
129
- continue;
130
- }
131
- proposalAttestationMap.delete(sender.toString());
132
- this.log.debug(`Deleted attestation for slot ${slotNumber} from ${sender}`);
133
- }
134
- }
135
- }
136
- return Promise.resolve();
139
+ async canAddCheckpointProposal(proposal) {
140
+ return this.checkpointProposals.has(proposal.archive.toString()) || !await this.hasReachedCheckpointProposalCap(proposal.slotNumber);
137
141
  }
138
- hasAttestation(attestation) {
142
+ async canAddCheckpointAttestation(attestation, committeeSize) {
143
+ const sender = attestation.getSender();
144
+ const slot = attestation.payload.header.slotNumber;
145
+ const pid = attestation.archive.toString();
146
+ return !!sender && ((this.checkpointAttestations.get(slot)?.get(pid)?.has(sender.toString()) ?? false) || !await this.hasReachedCheckpointAttestationCap(slot, pid, committeeSize));
147
+ }
148
+ hasCheckpointAttestation(attestation) {
139
149
  const slotNumber = attestation.payload.header.slotNumber;
140
150
  const proposalId = attestation.archive.toString();
141
151
  const sender = attestation.getSender();
@@ -143,7 +153,7 @@ export class InMemoryAttestationPool {
143
153
  if (!sender) {
144
154
  return Promise.resolve(false);
145
155
  }
146
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
156
+ const slotAttestationMap = this.checkpointAttestations.get(slotNumber);
147
157
  if (!slotAttestationMap) {
148
158
  return Promise.resolve(false);
149
159
  }
@@ -153,43 +163,16 @@ export class InMemoryAttestationPool {
153
163
  }
154
164
  return Promise.resolve(proposalAttestationMap.has(sender.toString()));
155
165
  }
156
- addBlockProposal(blockProposal) {
157
- // We initialize slot-proposal mapping if it does not exist
158
- // This is important to ensure we can delete this proposal if there were not attestations for it
159
- const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber.toBigInt());
160
- slotProposalMapping.set(blockProposal.payload.archive.toString(), new Map());
161
- this.proposals.set(blockProposal.payload.archive.toString(), blockProposal);
162
- return Promise.resolve();
163
- }
164
- getBlockProposal(id) {
165
- return Promise.resolve(this.proposals.get(id));
166
- }
167
- hasBlockProposal(idOrProposal) {
168
- const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
169
- return Promise.resolve(this.proposals.has(id));
170
- }
171
166
  }
172
- /**
173
- * Get Slot or Default
174
- *
175
- * Fetch the slot mapping, if it does not exist, then create a mapping and return it
176
- * @param map - The map to fetch from
177
- * @param slot - The slot to fetch
178
- * @returns The slot mapping
179
- */ function getSlotOrDefault(map, slot) {
167
+ // Checkpoint attestation helper functions
168
+ function getCheckpointSlotOrDefault(// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
169
+ map, slot) {
180
170
  if (!map.has(slot)) {
181
171
  map.set(slot, new Map());
182
172
  }
183
173
  return map.get(slot);
184
174
  }
185
- /**
186
- * Get Proposal or Default
187
- *
188
- * Fetch the proposal mapping, if it does not exist, then create a mapping and return it
189
- * @param map - The map to fetch from
190
- * @param proposalId - The proposal id to fetch
191
- * @returns The proposal mapping
192
- */ function getProposalOrDefault(map, proposalId) {
175
+ function getCheckpointProposalOrDefault(map, proposalId) {
193
176
  if (!map.has(proposalId)) {
194
177
  map.set(proposalId, new Map());
195
178
  }
@@ -1,18 +1,242 @@
1
- import type { Secp256k1Signer } from '@aztec/foundation/crypto';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { BlockAttestation } from '@aztec/stdlib/p2p';
4
- import { type LocalAccount } from 'viem/accounts';
1
+ import type { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { CheckpointAttestation } from '@aztec/stdlib/p2p';
4
+ import { CheckpointHeader } from '@aztec/stdlib/rollup';
5
5
  /** Generate Account
6
6
  *
7
7
  * Create a random signer
8
8
  * @returns A random viem signer
9
9
  */
10
- export declare const generateAccount: () => LocalAccount;
11
- /** Mock Attestation
10
+ export declare const generateAccount: () => {
11
+ address: `0x${string}`;
12
+ nonceManager?: import("viem/accounts").NonceManager | undefined;
13
+ sign?: ((parameters: {
14
+ hash: `0x${string}`;
15
+ }) => Promise<`0x${string}`>) | undefined;
16
+ signAuthorization?: ((parameters: import("viem").AuthorizationRequest) => Promise<import("viem/accounts").SignAuthorizationReturnType>) | undefined;
17
+ signMessage: ({ message }: {
18
+ message: import("viem").SignableMessage;
19
+ }) => Promise<`0x${string}`>;
20
+ signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
21
+ serializer?: serializer | undefined;
22
+ } | undefined) => Promise<`0x${string}`>;
23
+ signTypedData: <const typedData extends Record<string, unknown> | {
24
+ [x: string]: readonly import("viem").TypedDataParameter[];
25
+ [x: `address[${string}]`]: undefined;
26
+ [x: `bool[${string}]`]: undefined;
27
+ [x: `bytes10[${string}]`]: undefined;
28
+ [x: `bytes11[${string}]`]: undefined;
29
+ [x: `bytes12[${string}]`]: undefined;
30
+ [x: `bytes13[${string}]`]: undefined;
31
+ [x: `bytes14[${string}]`]: undefined;
32
+ [x: `bytes15[${string}]`]: undefined;
33
+ [x: `bytes16[${string}]`]: undefined;
34
+ [x: `bytes17[${string}]`]: undefined;
35
+ [x: `bytes18[${string}]`]: undefined;
36
+ [x: `bytes19[${string}]`]: undefined;
37
+ [x: `bytes1[${string}]`]: undefined;
38
+ [x: `bytes20[${string}]`]: undefined;
39
+ [x: `bytes21[${string}]`]: undefined;
40
+ [x: `bytes22[${string}]`]: undefined;
41
+ [x: `bytes23[${string}]`]: undefined;
42
+ [x: `bytes24[${string}]`]: undefined;
43
+ [x: `bytes25[${string}]`]: undefined;
44
+ [x: `bytes26[${string}]`]: undefined;
45
+ [x: `bytes27[${string}]`]: undefined;
46
+ [x: `bytes28[${string}]`]: undefined;
47
+ [x: `bytes29[${string}]`]: undefined;
48
+ [x: `bytes2[${string}]`]: undefined;
49
+ [x: `bytes30[${string}]`]: undefined;
50
+ [x: `bytes31[${string}]`]: undefined;
51
+ [x: `bytes32[${string}]`]: undefined;
52
+ [x: `bytes3[${string}]`]: undefined;
53
+ [x: `bytes4[${string}]`]: undefined;
54
+ [x: `bytes5[${string}]`]: undefined;
55
+ [x: `bytes6[${string}]`]: undefined;
56
+ [x: `bytes7[${string}]`]: undefined;
57
+ [x: `bytes8[${string}]`]: undefined;
58
+ [x: `bytes9[${string}]`]: undefined;
59
+ [x: `bytes[${string}]`]: undefined;
60
+ [x: `function[${string}]`]: undefined;
61
+ [x: `int104[${string}]`]: undefined;
62
+ [x: `int112[${string}]`]: undefined;
63
+ [x: `int120[${string}]`]: undefined;
64
+ [x: `int128[${string}]`]: undefined;
65
+ [x: `int136[${string}]`]: undefined;
66
+ [x: `int144[${string}]`]: undefined;
67
+ [x: `int152[${string}]`]: undefined;
68
+ [x: `int160[${string}]`]: undefined;
69
+ [x: `int168[${string}]`]: undefined;
70
+ [x: `int16[${string}]`]: undefined;
71
+ [x: `int176[${string}]`]: undefined;
72
+ [x: `int184[${string}]`]: undefined;
73
+ [x: `int192[${string}]`]: undefined;
74
+ [x: `int200[${string}]`]: undefined;
75
+ [x: `int208[${string}]`]: undefined;
76
+ [x: `int216[${string}]`]: undefined;
77
+ [x: `int224[${string}]`]: undefined;
78
+ [x: `int232[${string}]`]: undefined;
79
+ [x: `int240[${string}]`]: undefined;
80
+ [x: `int248[${string}]`]: undefined;
81
+ [x: `int24[${string}]`]: undefined;
82
+ [x: `int256[${string}]`]: undefined;
83
+ [x: `int32[${string}]`]: undefined;
84
+ [x: `int40[${string}]`]: undefined;
85
+ [x: `int48[${string}]`]: undefined;
86
+ [x: `int56[${string}]`]: undefined;
87
+ [x: `int64[${string}]`]: undefined;
88
+ [x: `int72[${string}]`]: undefined;
89
+ [x: `int80[${string}]`]: undefined;
90
+ [x: `int88[${string}]`]: undefined;
91
+ [x: `int8[${string}]`]: undefined;
92
+ [x: `int96[${string}]`]: undefined;
93
+ [x: `int[${string}]`]: undefined;
94
+ [x: `string[${string}]`]: undefined;
95
+ [x: `uint104[${string}]`]: undefined;
96
+ [x: `uint112[${string}]`]: undefined;
97
+ [x: `uint120[${string}]`]: undefined;
98
+ [x: `uint128[${string}]`]: undefined;
99
+ [x: `uint136[${string}]`]: undefined;
100
+ [x: `uint144[${string}]`]: undefined;
101
+ [x: `uint152[${string}]`]: undefined;
102
+ [x: `uint160[${string}]`]: undefined;
103
+ [x: `uint168[${string}]`]: undefined;
104
+ [x: `uint16[${string}]`]: undefined;
105
+ [x: `uint176[${string}]`]: undefined;
106
+ [x: `uint184[${string}]`]: undefined;
107
+ [x: `uint192[${string}]`]: undefined;
108
+ [x: `uint200[${string}]`]: undefined;
109
+ [x: `uint208[${string}]`]: undefined;
110
+ [x: `uint216[${string}]`]: undefined;
111
+ [x: `uint224[${string}]`]: undefined;
112
+ [x: `uint232[${string}]`]: undefined;
113
+ [x: `uint240[${string}]`]: undefined;
114
+ [x: `uint248[${string}]`]: undefined;
115
+ [x: `uint24[${string}]`]: undefined;
116
+ [x: `uint256[${string}]`]: undefined;
117
+ [x: `uint32[${string}]`]: undefined;
118
+ [x: `uint40[${string}]`]: undefined;
119
+ [x: `uint48[${string}]`]: undefined;
120
+ [x: `uint56[${string}]`]: undefined;
121
+ [x: `uint64[${string}]`]: undefined;
122
+ [x: `uint72[${string}]`]: undefined;
123
+ [x: `uint80[${string}]`]: undefined;
124
+ [x: `uint88[${string}]`]: undefined;
125
+ [x: `uint8[${string}]`]: undefined;
126
+ [x: `uint96[${string}]`]: undefined;
127
+ [x: `uint[${string}]`]: undefined;
128
+ address?: undefined;
129
+ bool?: undefined;
130
+ bytes?: undefined;
131
+ bytes1?: undefined;
132
+ bytes10?: undefined;
133
+ bytes11?: undefined;
134
+ bytes12?: undefined;
135
+ bytes13?: undefined;
136
+ bytes14?: undefined;
137
+ bytes15?: undefined;
138
+ bytes16?: undefined;
139
+ bytes17?: undefined;
140
+ bytes18?: undefined;
141
+ bytes19?: undefined;
142
+ bytes2?: undefined;
143
+ bytes20?: undefined;
144
+ bytes21?: undefined;
145
+ bytes22?: undefined;
146
+ bytes23?: undefined;
147
+ bytes24?: undefined;
148
+ bytes25?: undefined;
149
+ bytes26?: undefined;
150
+ bytes27?: undefined;
151
+ bytes28?: undefined;
152
+ bytes29?: undefined;
153
+ bytes3?: undefined;
154
+ bytes30?: undefined;
155
+ bytes31?: undefined;
156
+ bytes32?: undefined;
157
+ bytes4?: undefined;
158
+ bytes5?: undefined;
159
+ bytes6?: undefined;
160
+ bytes7?: undefined;
161
+ bytes8?: undefined;
162
+ bytes9?: undefined;
163
+ int104?: undefined;
164
+ int112?: undefined;
165
+ int120?: undefined;
166
+ int128?: undefined;
167
+ int136?: undefined;
168
+ int144?: undefined;
169
+ int152?: undefined;
170
+ int16?: undefined;
171
+ int160?: undefined;
172
+ int168?: undefined;
173
+ int176?: undefined;
174
+ int184?: undefined;
175
+ int192?: undefined;
176
+ int200?: undefined;
177
+ int208?: undefined;
178
+ int216?: undefined;
179
+ int224?: undefined;
180
+ int232?: undefined;
181
+ int24?: undefined;
182
+ int240?: undefined;
183
+ int248?: undefined;
184
+ int256?: undefined;
185
+ int32?: undefined;
186
+ int40?: undefined;
187
+ int48?: undefined;
188
+ int56?: undefined;
189
+ int64?: undefined;
190
+ int72?: undefined;
191
+ int8?: undefined;
192
+ int80?: undefined;
193
+ int88?: undefined;
194
+ int96?: undefined;
195
+ string?: undefined;
196
+ uint104?: undefined;
197
+ uint112?: undefined;
198
+ uint120?: undefined;
199
+ uint128?: undefined;
200
+ uint136?: undefined;
201
+ uint144?: undefined;
202
+ uint152?: undefined;
203
+ uint16?: undefined;
204
+ uint160?: undefined;
205
+ uint168?: undefined;
206
+ uint176?: undefined;
207
+ uint184?: undefined;
208
+ uint192?: undefined;
209
+ uint200?: undefined;
210
+ uint208?: undefined;
211
+ uint216?: undefined;
212
+ uint224?: undefined;
213
+ uint232?: undefined;
214
+ uint24?: undefined;
215
+ uint240?: undefined;
216
+ uint248?: undefined;
217
+ uint256?: undefined;
218
+ uint32?: undefined;
219
+ uint40?: undefined;
220
+ uint48?: undefined;
221
+ uint56?: undefined;
222
+ uint64?: undefined;
223
+ uint72?: undefined;
224
+ uint8?: undefined;
225
+ uint80?: undefined;
226
+ uint88?: undefined;
227
+ uint96?: undefined;
228
+ }, primaryType extends "EIP712Domain" | keyof typedData = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>;
229
+ publicKey: `0x${string}`;
230
+ source: string;
231
+ type: "local";
232
+ };
233
+ /** Mock Checkpoint Attestation
12
234
  *
13
- * @param signer A viem signer to create a signature
235
+ * @param signer A Secp256k1Signer to create a signature
14
236
  * @param slot The slot number the attestation is for
15
- * @returns A Block Attestation
237
+ * @param archive The archive root (defaults to random)
238
+ * @param header The checkpoint header (defaults to random with given slot)
239
+ * @returns A Checkpoint Attestation
16
240
  */
17
- export declare const mockAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr) => BlockAttestation;
18
- //# sourceMappingURL=mocks.d.ts.map
241
+ export declare const mockCheckpointAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr, header?: CheckpointHeader | undefined) => CheckpointAttestation;
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUNMLHFCQUFxQixFQUl0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXhEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBRzNCLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHlCQUF5Qix3SEFtQnJDLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAIjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,KAAK,YAAY,EAA2C,MAAM,eAAe,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,YAGlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,eAAe,EACvB,OAAM,MAAU,EAChB,UAAS,EAAgB,KACxB,gBAYF,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;AAIxD;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,wHAmBrC,CAAC"}
@@ -1,6 +1,7 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { BlockAttestation, ConsensusPayload, SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '@aztec/stdlib/p2p';
3
- import { makeL2BlockHeader } from '@aztec/stdlib/testing';
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { CheckpointAttestation, ConsensusPayload, SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '@aztec/stdlib/p2p';
4
+ import { CheckpointHeader } from '@aztec/stdlib/rollup';
4
5
  import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
5
6
  /** Generate Account
6
7
  *
@@ -10,18 +11,21 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
10
11
  const privateKey = generatePrivateKey();
11
12
  return privateKeyToAccount(privateKey);
12
13
  };
13
- /** Mock Attestation
14
+ /** Mock Checkpoint Attestation
14
15
  *
15
- * @param signer A viem signer to create a signature
16
+ * @param signer A Secp256k1Signer to create a signature
16
17
  * @param slot The slot number the attestation is for
17
- * @returns A Block Attestation
18
- */ export const mockAttestation = (signer, slot = 0, archive = Fr.random())=>{
19
- // Use arbitrary numbers for all other than slot
20
- const header = makeL2BlockHeader(1, 2, slot);
21
- const payload = new ConsensusPayload(header.toCheckpointHeader(), archive, header.state);
22
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
18
+ * @param archive The archive root (defaults to random)
19
+ * @param header The checkpoint header (defaults to random with given slot)
20
+ * @returns A Checkpoint Attestation
21
+ */ export const mockCheckpointAttestation = (signer, slot = 0, archive = Fr.random(), header)=>{
22
+ header = header ?? CheckpointHeader.random({
23
+ slotNumber: SlotNumber(slot)
24
+ });
25
+ const payload = new ConsensusPayload(header, archive);
26
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
23
27
  const attestationSignature = signer.sign(attestationHash);
24
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
28
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointProposal);
25
29
  const proposerSignature = signer.sign(proposalHash);
26
- return new BlockAttestation(payload, attestationSignature, proposerSignature);
30
+ return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
27
31
  };
@@ -1,4 +1,4 @@
1
1
  export { type AttestationPool } from './attestation_pool/attestation_pool.js';
2
2
  export { type MemPools } from './interface.js';
3
3
  export { type TxPool } from './tx_pool/tx_pool.js';
4
- //# sourceMappingURL=index.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1fcG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUMifQ==
@@ -1,4 +1,5 @@
1
1
  import type { Gossipable } from '@aztec/stdlib/p2p';
2
+ import type { Tx } from '@aztec/stdlib/tx';
2
3
  import { type LmdbStatsCallback, type TelemetryClient } from '@aztec/telemetry-client';
3
4
  export declare enum PoolName {
4
5
  TX_POOL = "TxPool",
@@ -14,13 +15,20 @@ export declare class PoolInstrumentation<PoolObject extends Gossipable> {
14
15
  private poolStats;
15
16
  /** The number of txs in the mempool */
16
17
  private objectsInMempool;
18
+ private addObjectCounter;
17
19
  /** Tracks tx size */
18
20
  private objectSize;
21
+ /** Track delay between transaction added and evicted */
22
+ private minedDelay;
19
23
  private dbMetrics;
20
24
  private defaultAttributes;
21
25
  private meter;
26
+ private txAddedTimestamp;
22
27
  constructor(telemetry: TelemetryClient, name: PoolName, poolStats: PoolStatsCallback, dbStats?: LmdbStatsCallback);
23
28
  recordSize(poolObject: PoolObject): void;
29
+ incrementAddedObjects(count: number): void;
30
+ transactionsAdded(transactions: Tx[]): void;
31
+ transactionsRemoved(hashes: Iterable<bigint> | Iterable<string>): void;
24
32
  private observeStats;
25
33
  }
26
- //# sourceMappingURL=instrumentation.d.ts.map
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQWtDRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFtQjFELE9BQU8sQ0FBQyxTQUFTO0lBbEJuQix1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLGdCQUFnQixDQUFrQjtJQUMxQyxPQUFPLENBQUMsZ0JBQWdCLENBQWdCO0lBQ3hDLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsVUFBVSxDQUFZO0lBQzlCLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFZO0lBRTlCLE9BQU8sQ0FBQyxTQUFTLENBQWM7SUFFL0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQVE7SUFFckIsT0FBTyxDQUFDLGdCQUFnQixDQUFrRDtJQUUxRSxZQUNFLFNBQVMsRUFBRSxlQUFlLEVBQzFCLElBQUksRUFBRSxRQUFRLEVBQ04sU0FBUyxFQUFFLGlCQUFpQixFQUNwQyxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUF3QjVCO0lBRU0sVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLFFBRXZDO0lBRU0scUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFekM7SUFFTSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLFFBSzFDO0lBRU0sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBWXJFO0lBRUQsT0FBTyxDQUFDLFlBQVksQ0FZbEI7Q0FDSCJ9
@@ -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,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AA4BD,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;IAc1D,OAAO,CAAC,SAAS;IAbnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;gBAGnB,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB;IA2BtB,UAAU,CAAC,UAAU,EAAE,UAAU;IAIxC,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,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"}