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

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 (300) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +1 -1
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/client/factory.d.ts +2 -2
  4. package/dest/client/factory.d.ts.map +1 -1
  5. package/dest/client/factory.js +2 -3
  6. package/dest/client/index.d.ts +1 -1
  7. package/dest/client/interface.d.ts +4 -2
  8. package/dest/client/interface.d.ts.map +1 -1
  9. package/dest/client/p2p_client.d.ts +9 -27
  10. package/dest/client/p2p_client.d.ts.map +1 -1
  11. package/dest/client/p2p_client.js +39 -32
  12. package/dest/config.d.ts +62 -59
  13. package/dest/config.d.ts.map +1 -1
  14. package/dest/config.js +19 -12
  15. package/dest/enr/generate-enr.d.ts +1 -1
  16. package/dest/enr/index.d.ts +1 -1
  17. package/dest/errors/attestation-pool.error.d.ts +7 -0
  18. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  19. package/dest/errors/attestation-pool.error.js +12 -0
  20. package/dest/errors/reqresp.error.d.ts +1 -1
  21. package/dest/errors/reqresp.error.d.ts.map +1 -1
  22. package/dest/index.d.ts +1 -1
  23. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +28 -6
  24. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  26. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  27. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +35 -34
  28. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  29. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +13 -6
  30. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  31. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +41 -18
  32. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +11 -6
  33. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +30 -8
  35. package/dest/mem_pools/attestation_pool/mocks.d.ts +226 -5
  36. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  37. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  38. package/dest/mem_pools/index.d.ts +1 -1
  39. package/dest/mem_pools/instrumentation.d.ts +9 -1
  40. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  41. package/dest/mem_pools/instrumentation.js +38 -2
  42. package/dest/mem_pools/interface.d.ts +3 -4
  43. package/dest/mem_pools/interface.d.ts.map +1 -1
  44. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +30 -60
  45. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +262 -324
  47. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +18 -0
  48. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  49. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +56 -0
  50. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +83 -0
  51. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  52. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +5 -0
  53. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts +15 -0
  54. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts.map +1 -0
  55. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.js +88 -0
  56. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  57. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  58. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  59. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  60. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  61. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +76 -0
  62. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  63. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  64. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  65. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  66. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  67. package/dest/mem_pools/tx_pool/index.js +0 -1
  68. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  69. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  70. package/dest/mem_pools/tx_pool/priority.js +6 -1
  71. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  72. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  73. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  74. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  75. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  76. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -3
  77. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  78. package/dest/msg_validators/attestation_validator/attestation_validator.js +12 -12
  79. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  80. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  81. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
  82. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  83. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  84. package/dest/msg_validators/attestation_validator/index.js +1 -0
  85. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +1 -1
  86. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
  87. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +22 -10
  88. package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
  89. package/dest/msg_validators/index.d.ts +1 -1
  90. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  91. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  92. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  93. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  94. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  95. package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
  96. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  97. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
  98. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  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/double_spend_validator.d.ts +1 -1
  102. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/tx_validator/factory.d.ts +4 -3
  104. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  105. package/dest/msg_validators/tx_validator/factory.js +1 -1
  106. package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
  107. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  108. package/dest/msg_validators/tx_validator/index.d.ts +1 -1
  109. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +2 -2
  110. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  111. package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
  112. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  113. package/dest/msg_validators/tx_validator/phases_validator.js +3 -1
  114. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  115. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  116. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +3 -2
  117. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  118. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
  119. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  120. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
  121. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  122. package/dest/services/data_store.d.ts +1 -1
  123. package/dest/services/data_store.d.ts.map +1 -1
  124. package/dest/services/discv5/discV5_service.d.ts +1 -1
  125. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  126. package/dest/services/dummy_service.d.ts +1 -1
  127. package/dest/services/dummy_service.d.ts.map +1 -1
  128. package/dest/services/encoding.d.ts +1 -1
  129. package/dest/services/encoding.d.ts.map +1 -1
  130. package/dest/services/encoding.js +1 -1
  131. package/dest/services/gossipsub/scoring.d.ts +1 -1
  132. package/dest/services/index.d.ts +1 -1
  133. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  134. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  135. package/dest/services/libp2p/instrumentation.js +9 -2
  136. package/dest/services/libp2p/libp2p_service.d.ts +14 -70
  137. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  138. package/dest/services/libp2p/libp2p_service.js +231 -66
  139. package/dest/services/peer-manager/interface.d.ts +1 -1
  140. package/dest/services/peer-manager/metrics.d.ts +8 -1
  141. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  142. package/dest/services/peer-manager/metrics.js +28 -0
  143. package/dest/services/peer-manager/peer_manager.d.ts +1 -32
  144. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  145. package/dest/services/peer-manager/peer_manager.js +6 -2
  146. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  147. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  148. package/dest/services/peer-manager/peer_scoring.js +40 -2
  149. package/dest/services/reqresp/config.d.ts +1 -1
  150. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
  151. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  152. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
  153. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  154. package/dest/services/reqresp/index.d.ts +1 -1
  155. package/dest/services/reqresp/interface.d.ts +2 -2
  156. package/dest/services/reqresp/interface.d.ts.map +1 -1
  157. package/dest/services/reqresp/interface.js +1 -1
  158. package/dest/services/reqresp/metrics.d.ts +1 -1
  159. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  160. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  161. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  162. package/dest/services/reqresp/protocols/auth.js +2 -2
  163. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  164. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  165. package/dest/services/reqresp/protocols/block.js +3 -2
  166. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
  167. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  168. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  169. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +4 -6
  170. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  171. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +1 -1
  172. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  173. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  174. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  175. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  176. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  177. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  178. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  179. package/dest/services/reqresp/protocols/status.js +4 -3
  180. package/dest/services/reqresp/protocols/tx.d.ts +2 -3
  181. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  182. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  183. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  184. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  185. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  186. package/dest/services/reqresp/reqresp.d.ts +1 -41
  187. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  188. package/dest/services/reqresp/status.d.ts +2 -2
  189. package/dest/services/reqresp/status.d.ts.map +1 -1
  190. package/dest/services/service.d.ts +1 -1
  191. package/dest/services/tx_collection/config.d.ts +1 -1
  192. package/dest/services/tx_collection/config.js +1 -1
  193. package/dest/services/tx_collection/fast_tx_collection.d.ts +4 -9
  194. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  195. package/dest/services/tx_collection/index.d.ts +1 -1
  196. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  197. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  198. package/dest/services/tx_collection/slow_tx_collection.d.ts +6 -7
  199. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  200. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  201. package/dest/services/tx_collection/tx_collection.d.ts +11 -11
  202. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  203. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  204. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  205. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  206. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  207. package/dest/services/tx_provider.d.ts +6 -4
  208. package/dest/services/tx_provider.d.ts.map +1 -1
  209. package/dest/services/tx_provider.js +11 -2
  210. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  211. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  212. package/dest/services/tx_provider_instrumentation.js +14 -1
  213. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  214. package/dest/test-helpers/get-ports.d.ts +1 -1
  215. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  216. package/dest/test-helpers/index.d.ts +1 -1
  217. package/dest/test-helpers/make-enrs.d.ts +1 -1
  218. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  219. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  220. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  221. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  222. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  223. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  224. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  225. package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
  226. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  227. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  228. package/dest/testbench/p2p_client_testbench_worker.js +12 -8
  229. package/dest/testbench/parse_log_file.d.ts +1 -1
  230. package/dest/testbench/testbench.d.ts +1 -1
  231. package/dest/testbench/worker_client_manager.d.ts +1 -1
  232. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  233. package/dest/types/index.d.ts +1 -1
  234. package/dest/util.d.ts +2 -1
  235. package/dest/util.d.ts.map +1 -1
  236. package/dest/util.js +11 -2
  237. package/dest/versioning.d.ts +1 -1
  238. package/package.json +19 -18
  239. package/src/client/factory.ts +5 -10
  240. package/src/client/interface.ts +4 -1
  241. package/src/client/p2p_client.ts +63 -60
  242. package/src/config.ts +28 -17
  243. package/src/errors/attestation-pool.error.ts +13 -0
  244. package/src/mem_pools/attestation_pool/attestation_pool.ts +29 -5
  245. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +47 -34
  246. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +66 -24
  247. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +50 -16
  248. package/src/mem_pools/attestation_pool/mocks.ts +3 -3
  249. package/src/mem_pools/instrumentation.ts +46 -0
  250. package/src/mem_pools/interface.ts +2 -4
  251. package/src/mem_pools/tx_pool/README.md +255 -0
  252. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +314 -373
  253. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +71 -0
  254. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +93 -0
  255. package/src/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.ts +108 -0
  256. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  257. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +91 -0
  258. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  259. package/src/mem_pools/tx_pool/index.ts +0 -1
  260. package/src/mem_pools/tx_pool/priority.ts +8 -1
  261. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  262. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  263. package/src/msg_validators/attestation_validator/attestation_validator.ts +14 -16
  264. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
  265. package/src/msg_validators/attestation_validator/index.ts +1 -0
  266. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +26 -10
  267. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  268. package/src/msg_validators/tx_validator/block_header_validator.ts +1 -1
  269. package/src/msg_validators/tx_validator/factory.ts +3 -2
  270. package/src/msg_validators/tx_validator/metadata_validator.ts +1 -1
  271. package/src/msg_validators/tx_validator/phases_validator.ts +3 -1
  272. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  273. package/src/msg_validators/tx_validator/timestamp_validator.ts +2 -1
  274. package/src/services/encoding.ts +1 -1
  275. package/src/services/libp2p/instrumentation.ts +10 -1
  276. package/src/services/libp2p/libp2p_service.ts +263 -79
  277. package/src/services/peer-manager/metrics.ts +32 -0
  278. package/src/services/peer-manager/peer_manager.ts +6 -2
  279. package/src/services/peer-manager/peer_scoring.ts +46 -3
  280. package/src/services/reqresp/interface.ts +1 -1
  281. package/src/services/reqresp/protocols/auth.ts +2 -2
  282. package/src/services/reqresp/protocols/block.ts +3 -2
  283. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +1 -1
  284. package/src/services/reqresp/protocols/status.ts +9 -8
  285. package/src/services/reqresp/protocols/tx.ts +1 -2
  286. package/src/services/tx_collection/config.ts +1 -1
  287. package/src/services/tx_collection/fast_tx_collection.ts +3 -2
  288. package/src/services/tx_collection/slow_tx_collection.ts +7 -6
  289. package/src/services/tx_collection/tx_collection.ts +10 -9
  290. package/src/services/tx_provider.ts +21 -5
  291. package/src/services/tx_provider_instrumentation.ts +19 -2
  292. package/src/test-helpers/mock-pubsub.ts +1 -1
  293. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  294. package/src/test-helpers/reqresp-nodes.ts +1 -1
  295. package/src/testbench/p2p_client_testbench_worker.ts +10 -6
  296. package/src/util.ts +12 -2
  297. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  298. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  299. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  300. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
@@ -1,9 +1,13 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { toArray } from '@aztec/foundation/iterable';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
5
6
  import { getTelemetryClient } from '@aztec/telemetry-client';
7
+ import { ProposalSlotCapExceededError } from '../../errors/attestation-pool.error.js';
6
8
  import { PoolInstrumentation, PoolName } from '../instrumentation.js';
9
+ export const MAX_PROPOSALS_PER_SLOT = 5;
10
+ export const ATTESTATION_CAP_BUFFER = 10;
7
11
  export class KvAttestationPool {
8
12
  store;
9
13
  log;
@@ -49,7 +53,7 @@ export class KvAttestationPool {
49
53
  const sender = attestation.getSender();
50
54
  // Skip attestations with invalid signatures
51
55
  if (!sender) {
52
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
56
+ this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber}`, {
53
57
  signature: attestation.signature.toString(),
54
58
  slotNumber,
55
59
  proposalId
@@ -58,9 +62,9 @@ export class KvAttestationPool {
58
62
  }
59
63
  const address = sender.toString();
60
64
  await this.attestations.set(this.getAttestationKey(slotNumber, proposalId, address), attestation.toBuffer());
61
- await this.proposalsForSlot.set(slotNumber.toString(), proposalId.toString());
65
+ await this.proposalsForSlot.set(slotNumber, proposalId.toString());
62
66
  await this.attestationsForProposal.set(this.getProposalKey(slotNumber, proposalId), this.getAttestationKey(slotNumber, proposalId, address));
63
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${address}`, {
67
+ this.log.verbose(`Added attestation for slot ${slotNumber} from ${address}`, {
64
68
  signature: attestation.signature.toString(),
65
69
  slotNumber,
66
70
  address,
@@ -70,8 +74,7 @@ export class KvAttestationPool {
70
74
  });
71
75
  }
72
76
  async getAttestationsForSlot(slot) {
73
- const slotFr = new Fr(slot);
74
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
77
+ const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slot));
75
78
  const attestations = [];
76
79
  for (const proposalId of proposalIds){
77
80
  attestations.push(...await this.getAttestationsForSlotAndProposal(slot, proposalId));
@@ -95,41 +98,41 @@ export class KvAttestationPool {
95
98
  }
96
99
  async deleteAttestationsOlderThan(oldestSlot) {
97
100
  const olderThan = await toArray(this.proposalsForSlot.keysAsync({
98
- end: new Fr(oldestSlot).toString()
101
+ end: oldestSlot
99
102
  }));
100
103
  for (const oldSlot of olderThan){
101
- await this.deleteAttestationsForSlot(BigInt(oldSlot));
104
+ await this.deleteAttestationsForSlot(SlotNumber(oldSlot));
102
105
  }
103
106
  }
104
107
  async deleteAttestationsForSlot(slot) {
105
- const slotFr = new Fr(slot);
106
108
  let numberOfAttestations = 0;
107
109
  await this.store.transactionAsync(async ()=>{
108
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
110
+ const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slot));
109
111
  for (const proposalId of proposalIds){
110
- const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slotFr, proposalId)));
112
+ const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
111
113
  numberOfAttestations += attestations.length;
112
114
  for (const attestation of attestations){
113
115
  await this.attestations.delete(attestation);
114
116
  }
115
117
  await this.proposals.delete(proposalId);
116
- await this.attestationsForProposal.delete(this.getProposalKey(slotFr, proposalId));
118
+ await this.attestationsForProposal.delete(this.getProposalKey(slot, proposalId));
117
119
  }
120
+ // Delete from proposalsForSlot
121
+ await this.proposalsForSlot.delete(slot);
118
122
  this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot}`);
119
123
  });
120
124
  }
121
125
  async deleteAttestationsForSlotAndProposal(slot, proposalId) {
122
126
  let numberOfAttestations = 0;
123
127
  await this.store.transactionAsync(async ()=>{
124
- const slotString = new Fr(slot).toString();
125
128
  const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
126
129
  numberOfAttestations += attestations.length;
127
130
  for (const attestation of attestations){
128
131
  await this.attestations.delete(attestation);
129
132
  }
130
133
  await this.proposals.delete(proposalId);
131
- await this.proposalsForSlot.deleteValue(slotString, proposalId);
132
- await this.attestationsForProposal.delete(this.getProposalKey(slotString, proposalId));
134
+ await this.proposalsForSlot.deleteValue(slot, proposalId);
135
+ await this.attestationsForProposal.delete(this.getProposalKey(slot, proposalId));
133
136
  this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
134
137
  });
135
138
  }
@@ -141,7 +144,7 @@ export class KvAttestationPool {
141
144
  const sender = attestation.getSender();
142
145
  // Skip attestations with invalid signatures
143
146
  if (!sender) {
144
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
147
+ this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber}`);
145
148
  continue;
146
149
  }
147
150
  const address = sender.toString();
@@ -183,8 +186,28 @@ export class KvAttestationPool {
183
186
  }
184
187
  async addBlockProposal(blockProposal) {
185
188
  await this.store.transactionAsync(async ()=>{
186
- await this.proposalsForSlot.set(blockProposal.slotNumber.toString(), blockProposal.archive.toString());
187
- await this.proposals.set(blockProposal.payload.archive.toString(), blockProposal.toBuffer());
189
+ const slotKey = blockProposal.slotNumber;
190
+ const proposalId = blockProposal.archive.toString();
191
+ if (!await this.canAddProposal(blockProposal)) {
192
+ throw new ProposalSlotCapExceededError(`Maximum proposals per slot reached: slot=${slotKey} cap=${MAX_PROPOSALS_PER_SLOT} proposal=${proposalId}`);
193
+ }
194
+ await this.proposalsForSlot.set(slotKey, proposalId);
195
+ // Always update the stored proposal buffer so re-adds overwrite with latest data
196
+ await this.proposals.set(proposalId, blockProposal.toBuffer());
188
197
  });
189
198
  }
199
+ async hasReachedProposalCap(slot) {
200
+ const uniqueProposalCount = await this.proposalsForSlot.getValueCountAsync(slot);
201
+ return uniqueProposalCount >= MAX_PROPOSALS_PER_SLOT;
202
+ }
203
+ async hasReachedAttestationCap(slot, proposalId, committeeSize) {
204
+ const limit = committeeSize + ATTESTATION_CAP_BUFFER;
205
+ return await this.attestationsForProposal.getValueCountAsync(this.getProposalKey(slot, proposalId)) >= limit;
206
+ }
207
+ async canAddProposal(block) {
208
+ return await this.proposals.hasAsync(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber);
209
+ }
210
+ async canAddAttestation(attestation, committeeSize) {
211
+ return await this.hasAttestation(attestation) || !await this.hasReachedAttestationCap(attestation.payload.header.slotNumber, attestation.archive.toString(), committeeSize);
212
+ }
190
213
  }
@@ -1,3 +1,4 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
2
3
  import { type TelemetryClient } from '@aztec/telemetry-client';
3
4
  import type { AttestationPool } from './attestation_pool.js';
@@ -10,16 +11,20 @@ export declare class InMemoryAttestationPool implements AttestationPool {
10
11
  constructor(telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
11
12
  private poolStats;
12
13
  isEmpty(): Promise<boolean>;
13
- getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
14
- getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
14
+ getAttestationsForSlot(slot: SlotNumber): Promise<BlockAttestation[]>;
15
+ getAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<BlockAttestation[]>;
15
16
  addAttestations(attestations: BlockAttestation[]): Promise<void>;
16
- deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
17
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
18
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
17
+ deleteAttestationsOlderThan(oldestSlot: SlotNumber): Promise<void>;
18
+ deleteAttestationsForSlot(slot: SlotNumber): Promise<void>;
19
+ deleteAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<void>;
19
20
  deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
20
21
  hasAttestation(attestation: BlockAttestation): Promise<boolean>;
21
22
  addBlockProposal(blockProposal: BlockProposal): Promise<void>;
22
23
  getBlockProposal(id: string): Promise<BlockProposal | undefined>;
23
24
  hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
25
+ hasReachedProposalCap(slot: SlotNumber): Promise<boolean>;
26
+ hasReachedAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
27
+ canAddProposal(block: BlockProposal): Promise<boolean>;
28
+ canAddAttestation(attestation: BlockAttestation, committeeSize: number): Promise<boolean>;
24
29
  }
25
- //# sourceMappingURL=memory_attestation_pool.d.ts.map
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tZW1vcnlfYXR0ZXN0YXRpb25fcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFHbkYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHN0QscUJBQWEsdUJBQXdCLFlBQVcsZUFBZTs7SUFZM0QsT0FBTyxDQUFDLEdBQUc7SUFYYixPQUFPLENBQUMsT0FBTyxDQUF3QztJQUd2RCxPQUFPLENBQUMsWUFBWSxDQUdsQjtJQUNGLE9BQU8sQ0FBQyxTQUFTLENBQTZCO0lBRTlDLFlBQ0UsU0FBUyxHQUFFLGVBQXNDLEVBQ3pDLEdBQUcseUNBQXVDLEVBS25EO0lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FJZjtJQUVLLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWpDO0lBRU0sc0JBQXNCLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQU0zRTtJQUVNLGlDQUFpQyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQVMxRztJQUVNLGVBQWUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBK0J0RTtJQWNZLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1COUU7SUFFTSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnQmhFO0lBRU0sb0NBQW9DLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjL0Y7SUFFTSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBc0J6RTtJQUVNLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQXFCckU7SUFFTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FRbkU7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBRXRFO0lBRU0sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc5RTtJQUVNLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUkvRDtJQUVNLHdCQUF3QixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FJN0c7SUFFWSxjQUFjLENBQUMsS0FBSyxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRWxFO0lBRVksaUJBQWlCLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVNyRztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,uBAAwB,YAAW,eAAe;;IAQ3D,OAAO,CAAC,GAAG;IAPb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgG;IACpH,OAAO,CAAC,SAAS,CAA6B;gBAG5C,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAuC;IAOpD,OAAO,CAAC,SAAS,CAIf;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQjE,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWhG,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C1D,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpE,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnE,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/D,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAIhE,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAIhF"}
1
+ {"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,qBAAa,uBAAwB,YAAW,eAAe;;IAY3D,OAAO,CAAC,GAAG;IAXb,OAAO,CAAC,OAAO,CAAwC;IAGvD,OAAO,CAAC,YAAY,CAGlB;IACF,OAAO,CAAC,SAAS,CAA6B;IAE9C,YACE,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAuC,EAKnD;IAED,OAAO,CAAC,SAAS,CAIf;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAEjC;IAEM,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAM3E;IAEM,iCAAiC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAS1G;IAEM,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BtE;IAcY,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9E;IAEM,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE;IAEM,oCAAoC,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc/F;IAEM,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBzE;IAEM,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBrE;IAEM,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnE;IAEM,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEtE;IAEM,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9E;IAEM,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/D;IAEM,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7G;IAEY,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE;IAEY,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrG;CACF"}
@@ -1,9 +1,11 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { getTelemetryClient } from '@aztec/telemetry-client';
3
3
  import { PoolInstrumentation, PoolName } from '../instrumentation.js';
4
+ import { ATTESTATION_CAP_BUFFER, MAX_PROPOSALS_PER_SLOT } from './kv_attestation_pool.js';
4
5
  export class InMemoryAttestationPool {
5
6
  log;
6
7
  metrics;
8
+ // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
7
9
  attestations;
8
10
  proposals;
9
11
  constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')){
@@ -42,17 +44,17 @@ export class InMemoryAttestationPool {
42
44
  const sender = attestation.getSender();
43
45
  // Skip attestations with invalid signatures
44
46
  if (!sender) {
45
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
47
+ this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber}`, {
46
48
  signature: attestation.signature.toString(),
47
49
  slotNumber,
48
50
  proposalId
49
51
  });
50
52
  continue;
51
53
  }
52
- const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber.toBigInt());
54
+ const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber);
53
55
  const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
54
56
  proposalAttestationMap.set(sender.toString(), attestation);
55
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${sender}`, {
57
+ this.log.verbose(`Added attestation for slot ${slotNumber} from ${sender}`, {
56
58
  signature: attestation.signature.toString(),
57
59
  slotNumber,
58
60
  address: sender,
@@ -117,7 +119,7 @@ export class InMemoryAttestationPool {
117
119
  deleteAttestations(attestations) {
118
120
  for (const attestation of attestations){
119
121
  const slotNumber = attestation.payload.header.slotNumber;
120
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
122
+ const slotAttestationMap = this.attestations.get(slotNumber);
121
123
  if (slotAttestationMap) {
122
124
  const proposalId = attestation.archive.toString();
123
125
  const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
@@ -125,7 +127,7 @@ export class InMemoryAttestationPool {
125
127
  const sender = attestation.getSender();
126
128
  // Skip attestations with invalid signatures
127
129
  if (!sender) {
128
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
130
+ this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber}`);
129
131
  continue;
130
132
  }
131
133
  proposalAttestationMap.delete(sender.toString());
@@ -143,7 +145,7 @@ export class InMemoryAttestationPool {
143
145
  if (!sender) {
144
146
  return Promise.resolve(false);
145
147
  }
146
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
148
+ const slotAttestationMap = this.attestations.get(slotNumber);
147
149
  if (!slotAttestationMap) {
148
150
  return Promise.resolve(false);
149
151
  }
@@ -156,7 +158,7 @@ export class InMemoryAttestationPool {
156
158
  addBlockProposal(blockProposal) {
157
159
  // We initialize slot-proposal mapping if it does not exist
158
160
  // 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());
161
+ const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber);
160
162
  slotProposalMapping.set(blockProposal.payload.archive.toString(), new Map());
161
163
  this.proposals.set(blockProposal.payload.archive.toString(), blockProposal);
162
164
  return Promise.resolve();
@@ -168,6 +170,25 @@ export class InMemoryAttestationPool {
168
170
  const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
169
171
  return Promise.resolve(this.proposals.has(id));
170
172
  }
173
+ hasReachedProposalCap(slot) {
174
+ const slotAttestationMap = this.attestations.get(slot);
175
+ const proposalCount = slotAttestationMap?.size ?? 0;
176
+ return Promise.resolve(proposalCount >= MAX_PROPOSALS_PER_SLOT);
177
+ }
178
+ hasReachedAttestationCap(slot, proposalId, committeeSize) {
179
+ const limit = committeeSize + ATTESTATION_CAP_BUFFER;
180
+ const count = this.attestations.get(slot)?.get(proposalId)?.size ?? 0;
181
+ return Promise.resolve(limit <= 0 || count >= limit);
182
+ }
183
+ async canAddProposal(block) {
184
+ return this.proposals.has(block.archive.toString()) || !await this.hasReachedProposalCap(block.slotNumber);
185
+ }
186
+ async canAddAttestation(attestation, committeeSize) {
187
+ const sender = attestation.getSender();
188
+ const slot = attestation.payload.header.slotNumber;
189
+ const pid = attestation.archive.toString();
190
+ return !!sender && ((this.attestations.get(slot)?.get(pid)?.has(sender.toString()) ?? false) || !await this.hasReachedAttestationCap(slot, pid, committeeSize));
191
+ }
171
192
  }
172
193
  /**
173
194
  * Get Slot or Default
@@ -176,7 +197,8 @@ export class InMemoryAttestationPool {
176
197
  * @param map - The map to fetch from
177
198
  * @param slot - The slot to fetch
178
199
  * @returns The slot mapping
179
- */ function getSlotOrDefault(map, slot) {
200
+ */ function getSlotOrDefault(// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
201
+ map, slot) {
180
202
  if (!map.has(slot)) {
181
203
  map.set(slot, new Map());
182
204
  }
@@ -1,13 +1,234 @@
1
- import type { Secp256k1Signer } from '@aztec/foundation/crypto';
2
- import { Fr } from '@aztec/foundation/fields';
1
+ import type { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { BlockAttestation } from '@aztec/stdlib/p2p';
4
- import { type LocalAccount } from 'viem/accounts';
5
4
  /** Generate Account
6
5
  *
7
6
  * Create a random signer
8
7
  * @returns A random viem signer
9
8
  */
10
- export declare const generateAccount: () => LocalAccount;
9
+ export declare const generateAccount: () => {
10
+ address: `0x${string}`;
11
+ nonceManager?: import("viem/accounts").NonceManager | undefined;
12
+ sign?: ((parameters: {
13
+ hash: `0x${string}`;
14
+ }) => Promise<`0x${string}`>) | undefined;
15
+ signAuthorization?: ((parameters: import("viem").AuthorizationRequest) => Promise<import("viem/accounts").SignAuthorizationReturnType>) | undefined;
16
+ signMessage: ({ message }: {
17
+ message: import("viem").SignableMessage;
18
+ }) => Promise<`0x${string}`>;
19
+ 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?: {
20
+ serializer?: serializer | undefined;
21
+ } | undefined) => Promise<`0x${string}`>;
22
+ signTypedData: <const typedData extends Record<string, unknown> | {
23
+ [x: string]: readonly import("viem").TypedDataParameter[];
24
+ [x: `address[${string}]`]: undefined;
25
+ [x: `bool[${string}]`]: undefined;
26
+ [x: `bytes10[${string}]`]: undefined;
27
+ [x: `bytes11[${string}]`]: undefined;
28
+ [x: `bytes12[${string}]`]: undefined;
29
+ [x: `bytes13[${string}]`]: undefined;
30
+ [x: `bytes14[${string}]`]: undefined;
31
+ [x: `bytes15[${string}]`]: undefined;
32
+ [x: `bytes16[${string}]`]: undefined;
33
+ [x: `bytes17[${string}]`]: undefined;
34
+ [x: `bytes18[${string}]`]: undefined;
35
+ [x: `bytes19[${string}]`]: undefined;
36
+ [x: `bytes1[${string}]`]: undefined;
37
+ [x: `bytes20[${string}]`]: undefined;
38
+ [x: `bytes21[${string}]`]: undefined;
39
+ [x: `bytes22[${string}]`]: undefined;
40
+ [x: `bytes23[${string}]`]: undefined;
41
+ [x: `bytes24[${string}]`]: undefined;
42
+ [x: `bytes25[${string}]`]: undefined;
43
+ [x: `bytes26[${string}]`]: undefined;
44
+ [x: `bytes27[${string}]`]: undefined;
45
+ [x: `bytes28[${string}]`]: undefined;
46
+ [x: `bytes29[${string}]`]: undefined;
47
+ [x: `bytes2[${string}]`]: undefined;
48
+ [x: `bytes30[${string}]`]: undefined;
49
+ [x: `bytes31[${string}]`]: undefined;
50
+ [x: `bytes32[${string}]`]: undefined;
51
+ [x: `bytes3[${string}]`]: undefined;
52
+ [x: `bytes4[${string}]`]: undefined;
53
+ [x: `bytes5[${string}]`]: undefined;
54
+ [x: `bytes6[${string}]`]: undefined;
55
+ [x: `bytes7[${string}]`]: undefined;
56
+ [x: `bytes8[${string}]`]: undefined;
57
+ [x: `bytes9[${string}]`]: undefined;
58
+ [x: `bytes[${string}]`]: undefined;
59
+ [x: `function[${string}]`]: undefined;
60
+ [x: `int104[${string}]`]: undefined;
61
+ [x: `int112[${string}]`]: undefined;
62
+ [x: `int120[${string}]`]: undefined;
63
+ [x: `int128[${string}]`]: undefined;
64
+ [x: `int136[${string}]`]: undefined;
65
+ [x: `int144[${string}]`]: undefined;
66
+ [x: `int152[${string}]`]: undefined;
67
+ [x: `int160[${string}]`]: undefined;
68
+ [x: `int168[${string}]`]: undefined;
69
+ [x: `int16[${string}]`]: undefined;
70
+ [x: `int176[${string}]`]: undefined;
71
+ [x: `int184[${string}]`]: undefined;
72
+ [x: `int192[${string}]`]: undefined;
73
+ [x: `int200[${string}]`]: undefined;
74
+ [x: `int208[${string}]`]: undefined;
75
+ [x: `int216[${string}]`]: undefined;
76
+ [x: `int224[${string}]`]: undefined;
77
+ [x: `int232[${string}]`]: undefined;
78
+ [x: `int240[${string}]`]: undefined;
79
+ [x: `int248[${string}]`]: undefined;
80
+ [x: `int24[${string}]`]: undefined;
81
+ [x: `int256[${string}]`]: undefined;
82
+ [x: `int32[${string}]`]: undefined;
83
+ [x: `int40[${string}]`]: undefined;
84
+ [x: `int48[${string}]`]: undefined;
85
+ [x: `int56[${string}]`]: undefined;
86
+ [x: `int64[${string}]`]: undefined;
87
+ [x: `int72[${string}]`]: undefined;
88
+ [x: `int80[${string}]`]: undefined;
89
+ [x: `int88[${string}]`]: undefined;
90
+ [x: `int8[${string}]`]: undefined;
91
+ [x: `int96[${string}]`]: undefined;
92
+ [x: `int[${string}]`]: undefined;
93
+ [x: `string[${string}]`]: undefined;
94
+ [x: `uint104[${string}]`]: undefined;
95
+ [x: `uint112[${string}]`]: undefined;
96
+ [x: `uint120[${string}]`]: undefined;
97
+ [x: `uint128[${string}]`]: undefined;
98
+ [x: `uint136[${string}]`]: undefined;
99
+ [x: `uint144[${string}]`]: undefined;
100
+ [x: `uint152[${string}]`]: undefined;
101
+ [x: `uint160[${string}]`]: undefined;
102
+ [x: `uint168[${string}]`]: undefined;
103
+ [x: `uint16[${string}]`]: undefined;
104
+ [x: `uint176[${string}]`]: undefined;
105
+ [x: `uint184[${string}]`]: undefined;
106
+ [x: `uint192[${string}]`]: undefined;
107
+ [x: `uint200[${string}]`]: undefined;
108
+ [x: `uint208[${string}]`]: undefined;
109
+ [x: `uint216[${string}]`]: undefined;
110
+ [x: `uint224[${string}]`]: undefined;
111
+ [x: `uint232[${string}]`]: undefined;
112
+ [x: `uint240[${string}]`]: undefined;
113
+ [x: `uint248[${string}]`]: undefined;
114
+ [x: `uint24[${string}]`]: undefined;
115
+ [x: `uint256[${string}]`]: undefined;
116
+ [x: `uint32[${string}]`]: undefined;
117
+ [x: `uint40[${string}]`]: undefined;
118
+ [x: `uint48[${string}]`]: undefined;
119
+ [x: `uint56[${string}]`]: undefined;
120
+ [x: `uint64[${string}]`]: undefined;
121
+ [x: `uint72[${string}]`]: undefined;
122
+ [x: `uint80[${string}]`]: undefined;
123
+ [x: `uint88[${string}]`]: undefined;
124
+ [x: `uint8[${string}]`]: undefined;
125
+ [x: `uint96[${string}]`]: undefined;
126
+ [x: `uint[${string}]`]: undefined;
127
+ address?: undefined;
128
+ bool?: undefined;
129
+ bytes?: undefined;
130
+ bytes1?: undefined;
131
+ bytes10?: undefined;
132
+ bytes11?: undefined;
133
+ bytes12?: undefined;
134
+ bytes13?: undefined;
135
+ bytes14?: undefined;
136
+ bytes15?: undefined;
137
+ bytes16?: undefined;
138
+ bytes17?: undefined;
139
+ bytes18?: undefined;
140
+ bytes19?: undefined;
141
+ bytes2?: undefined;
142
+ bytes20?: undefined;
143
+ bytes21?: undefined;
144
+ bytes22?: undefined;
145
+ bytes23?: undefined;
146
+ bytes24?: undefined;
147
+ bytes25?: undefined;
148
+ bytes26?: undefined;
149
+ bytes27?: undefined;
150
+ bytes28?: undefined;
151
+ bytes29?: undefined;
152
+ bytes3?: undefined;
153
+ bytes30?: undefined;
154
+ bytes31?: undefined;
155
+ bytes32?: undefined;
156
+ bytes4?: undefined;
157
+ bytes5?: undefined;
158
+ bytes6?: undefined;
159
+ bytes7?: undefined;
160
+ bytes8?: undefined;
161
+ bytes9?: undefined;
162
+ int104?: undefined;
163
+ int112?: undefined;
164
+ int120?: undefined;
165
+ int128?: undefined;
166
+ int136?: undefined;
167
+ int144?: undefined;
168
+ int152?: undefined;
169
+ int16?: undefined;
170
+ int160?: undefined;
171
+ int168?: undefined;
172
+ int176?: undefined;
173
+ int184?: undefined;
174
+ int192?: undefined;
175
+ int200?: undefined;
176
+ int208?: undefined;
177
+ int216?: undefined;
178
+ int224?: undefined;
179
+ int232?: undefined;
180
+ int24?: undefined;
181
+ int240?: undefined;
182
+ int248?: undefined;
183
+ int256?: undefined;
184
+ int32?: undefined;
185
+ int40?: undefined;
186
+ int48?: undefined;
187
+ int56?: undefined;
188
+ int64?: undefined;
189
+ int72?: undefined;
190
+ int8?: undefined;
191
+ int80?: undefined;
192
+ int88?: undefined;
193
+ int96?: undefined;
194
+ string?: undefined;
195
+ uint104?: undefined;
196
+ uint112?: undefined;
197
+ uint120?: undefined;
198
+ uint128?: undefined;
199
+ uint136?: undefined;
200
+ uint144?: undefined;
201
+ uint152?: undefined;
202
+ uint16?: undefined;
203
+ uint160?: undefined;
204
+ uint168?: undefined;
205
+ uint176?: undefined;
206
+ uint184?: undefined;
207
+ uint192?: undefined;
208
+ uint200?: undefined;
209
+ uint208?: undefined;
210
+ uint216?: undefined;
211
+ uint224?: undefined;
212
+ uint232?: undefined;
213
+ uint24?: undefined;
214
+ uint240?: undefined;
215
+ uint248?: undefined;
216
+ uint256?: undefined;
217
+ uint32?: undefined;
218
+ uint40?: undefined;
219
+ uint48?: undefined;
220
+ uint56?: undefined;
221
+ uint64?: undefined;
222
+ uint72?: undefined;
223
+ uint8?: undefined;
224
+ uint80?: undefined;
225
+ uint88?: undefined;
226
+ uint96?: undefined;
227
+ }, primaryType extends "EIP712Domain" | keyof typedData = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>;
228
+ publicKey: `0x${string}`;
229
+ source: string;
230
+ type: "local";
231
+ };
11
232
  /** Mock Attestation
12
233
  *
13
234
  * @param signer A viem signer to create a signature
@@ -15,4 +236,4 @@ export declare const generateAccount: () => LocalAccount;
15
236
  * @returns A Block Attestation
16
237
  */
17
238
  export declare const mockAttestation: (signer: Secp256k1Signer, slot?: number, archive?: Fr) => BlockAttestation;
18
- //# sourceMappingURL=mocks.d.ts.map
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUNMLGdCQUFnQixFQUlqQixNQUFNLG1CQUFtQixDQUFDO0FBSzNCOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBRzNCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSxlQUFlLDRFQWdCM0IsQ0FBQyJ9
@@ -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":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EACL,gBAAgB,EAIjB,MAAM,mBAAmB,CAAC;AAK3B;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,4EAgB3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BlockAttestation, ConsensusPayload, SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '@aztec/stdlib/p2p';
3
3
  import { makeL2BlockHeader } from '@aztec/stdlib/testing';
4
4
  import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
@@ -18,7 +18,7 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
18
18
  */ export const mockAttestation = (signer, slot = 0, archive = Fr.random())=>{
19
19
  // Use arbitrary numbers for all other than slot
20
20
  const header = makeL2BlockHeader(1, 2, slot);
21
- const payload = new ConsensusPayload(header.toCheckpointHeader(), archive, header.state);
21
+ const payload = new ConsensusPayload(header.toCheckpointHeader(), archive);
22
22
  const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
23
23
  const attestationSignature = signer.sign(attestationHash);
24
24
  const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBRXJCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQWtDRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFtQjFELE9BQU8sQ0FBQyxTQUFTO0lBbEJuQix1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLGdCQUFnQixDQUFrQjtJQUMxQyxPQUFPLENBQUMsZ0JBQWdCLENBQWdCO0lBQ3hDLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsVUFBVSxDQUFZO0lBQzlCLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFZO0lBRTlCLE9BQU8sQ0FBQyxTQUFTLENBQWM7SUFFL0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQVE7SUFFckIsT0FBTyxDQUFDLGdCQUFnQixDQUFrRDtJQUUxRSxZQUNFLFNBQVMsRUFBRSxlQUFlLEVBQzFCLElBQUksRUFBRSxRQUFRLEVBQ04sU0FBUyxFQUFFLGlCQUFpQixFQUNwQyxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUFpQzVCO0lBRU0sVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLFFBRXZDO0lBRU0scUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFekM7SUFFTSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLFFBSzFDO0lBRU0sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBWXJFO0lBRUQsT0FBTyxDQUFDLFlBQVksQ0FZbEI7Q0FDSCJ9
@@ -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,EAErB,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,EAiC5B;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"}