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

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 (239) 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 +1 -1
  4. package/dest/client/index.d.ts +1 -1
  5. package/dest/client/interface.d.ts +4 -2
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +8 -26
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +22 -16
  10. package/dest/config.d.ts +60 -54
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +11 -1
  13. package/dest/enr/generate-enr.d.ts +1 -1
  14. package/dest/enr/index.d.ts +1 -1
  15. package/dest/errors/attestation-pool.error.d.ts +7 -0
  16. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  17. package/dest/errors/attestation-pool.error.js +12 -0
  18. package/dest/errors/reqresp.error.d.ts +1 -1
  19. package/dest/errors/reqresp.error.d.ts.map +1 -1
  20. package/dest/index.d.ts +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +28 -6
  22. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  24. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +33 -32
  26. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  27. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +13 -6
  28. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  29. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +40 -17
  30. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +11 -6
  31. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +30 -8
  33. package/dest/mem_pools/attestation_pool/mocks.d.ts +224 -3
  34. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  35. package/dest/mem_pools/attestation_pool/mocks.js +1 -1
  36. package/dest/mem_pools/index.d.ts +1 -1
  37. package/dest/mem_pools/instrumentation.d.ts +3 -1
  38. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  39. package/dest/mem_pools/instrumentation.js +11 -2
  40. package/dest/mem_pools/interface.d.ts +1 -1
  41. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +4 -38
  42. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  43. package/dest/mem_pools/tx_pool/index.d.ts +1 -1
  44. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +4 -3
  45. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool/memory_tx_pool.js +1 -0
  47. package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
  48. package/dest/mem_pools/tx_pool/tx_pool.d.ts +4 -3
  49. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  50. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  51. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  52. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +5 -4
  53. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -3
  54. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  55. package/dest/msg_validators/attestation_validator/attestation_validator.js +11 -11
  56. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  57. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  58. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
  59. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  60. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  61. package/dest/msg_validators/attestation_validator/index.js +1 -0
  62. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +1 -1
  63. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
  64. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +21 -9
  65. package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
  66. package/dest/msg_validators/index.d.ts +1 -1
  67. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  68. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  69. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  70. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  71. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  72. package/dest/msg_validators/tx_validator/archive_cache.d.ts +1 -1
  73. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  74. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +1 -1
  75. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  76. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  77. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  78. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
  79. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  80. package/dest/msg_validators/tx_validator/factory.d.ts +3 -2
  81. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  82. package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
  83. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  84. package/dest/msg_validators/tx_validator/index.d.ts +1 -1
  85. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  86. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  87. package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
  88. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  89. package/dest/msg_validators/tx_validator/phases_validator.js +3 -1
  90. package/dest/msg_validators/tx_validator/test_utils.d.ts +1 -1
  91. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +3 -2
  92. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  93. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
  94. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  95. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
  96. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  97. package/dest/services/data_store.d.ts +1 -1
  98. package/dest/services/data_store.d.ts.map +1 -1
  99. package/dest/services/discv5/discV5_service.d.ts +1 -1
  100. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  101. package/dest/services/dummy_service.d.ts +1 -1
  102. package/dest/services/dummy_service.d.ts.map +1 -1
  103. package/dest/services/encoding.d.ts +1 -1
  104. package/dest/services/encoding.d.ts.map +1 -1
  105. package/dest/services/gossipsub/scoring.d.ts +1 -1
  106. package/dest/services/index.d.ts +1 -1
  107. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  108. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  109. package/dest/services/libp2p/instrumentation.js +9 -2
  110. package/dest/services/libp2p/libp2p_service.d.ts +11 -67
  111. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  112. package/dest/services/libp2p/libp2p_service.js +227 -57
  113. package/dest/services/peer-manager/interface.d.ts +1 -1
  114. package/dest/services/peer-manager/metrics.d.ts +3 -1
  115. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  116. package/dest/services/peer-manager/metrics.js +11 -0
  117. package/dest/services/peer-manager/peer_manager.d.ts +1 -32
  118. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  119. package/dest/services/peer-manager/peer_manager.js +2 -0
  120. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  121. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  122. package/dest/services/peer-manager/peer_scoring.js +40 -2
  123. package/dest/services/reqresp/config.d.ts +1 -1
  124. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
  125. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  126. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
  127. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  128. package/dest/services/reqresp/index.d.ts +1 -1
  129. package/dest/services/reqresp/interface.d.ts +1 -1
  130. package/dest/services/reqresp/interface.d.ts.map +1 -1
  131. package/dest/services/reqresp/metrics.d.ts +1 -1
  132. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  133. package/dest/services/reqresp/protocols/auth.d.ts +1 -1
  134. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  135. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  136. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  137. package/dest/services/reqresp/protocols/block.js +2 -1
  138. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
  139. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  140. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  141. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +3 -5
  142. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  143. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  144. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  145. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  146. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  147. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  148. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  149. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  150. package/dest/services/reqresp/protocols/status.js +4 -3
  151. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  152. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  153. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  154. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  155. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  156. package/dest/services/reqresp/reqresp.d.ts +1 -41
  157. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  158. package/dest/services/reqresp/status.d.ts +2 -2
  159. package/dest/services/reqresp/status.d.ts.map +1 -1
  160. package/dest/services/service.d.ts +1 -1
  161. package/dest/services/tx_collection/config.d.ts +1 -1
  162. package/dest/services/tx_collection/fast_tx_collection.d.ts +4 -9
  163. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  164. package/dest/services/tx_collection/index.d.ts +1 -1
  165. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  166. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  167. package/dest/services/tx_collection/slow_tx_collection.d.ts +4 -5
  168. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  169. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  170. package/dest/services/tx_collection/tx_collection.d.ts +9 -9
  171. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  172. package/dest/services/tx_collection/tx_collection.js +1 -1
  173. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  174. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  175. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  176. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  177. package/dest/services/tx_provider.d.ts +5 -4
  178. package/dest/services/tx_provider.d.ts.map +1 -1
  179. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  180. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  181. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  182. package/dest/test-helpers/get-ports.d.ts +1 -1
  183. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  184. package/dest/test-helpers/index.d.ts +1 -1
  185. package/dest/test-helpers/make-enrs.d.ts +1 -1
  186. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  187. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  188. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  189. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  190. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  191. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  192. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  193. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  194. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  195. package/dest/testbench/p2p_client_testbench_worker.js +11 -8
  196. package/dest/testbench/parse_log_file.d.ts +1 -1
  197. package/dest/testbench/testbench.d.ts +1 -1
  198. package/dest/testbench/worker_client_manager.d.ts +1 -1
  199. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  200. package/dest/types/index.d.ts +1 -1
  201. package/dest/util.d.ts +2 -1
  202. package/dest/util.d.ts.map +1 -1
  203. package/dest/util.js +11 -2
  204. package/dest/versioning.d.ts +1 -1
  205. package/package.json +19 -18
  206. package/src/client/interface.ts +4 -1
  207. package/src/client/p2p_client.ts +37 -29
  208. package/src/config.ts +18 -1
  209. package/src/errors/attestation-pool.error.ts +13 -0
  210. package/src/mem_pools/attestation_pool/attestation_pool.ts +29 -5
  211. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +45 -32
  212. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +65 -23
  213. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +50 -16
  214. package/src/mem_pools/attestation_pool/mocks.ts +1 -1
  215. package/src/mem_pools/instrumentation.ts +13 -0
  216. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +7 -6
  217. package/src/mem_pools/tx_pool/memory_tx_pool.ts +8 -6
  218. package/src/mem_pools/tx_pool/tx_pool.ts +3 -2
  219. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +5 -4
  220. package/src/msg_validators/attestation_validator/attestation_validator.ts +13 -15
  221. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
  222. package/src/msg_validators/attestation_validator/index.ts +1 -0
  223. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +25 -9
  224. package/src/msg_validators/tx_validator/factory.ts +2 -1
  225. package/src/msg_validators/tx_validator/phases_validator.ts +3 -1
  226. package/src/msg_validators/tx_validator/timestamp_validator.ts +2 -1
  227. package/src/services/libp2p/instrumentation.ts +10 -1
  228. package/src/services/libp2p/libp2p_service.ts +255 -66
  229. package/src/services/peer-manager/metrics.ts +10 -0
  230. package/src/services/peer-manager/peer_manager.ts +2 -0
  231. package/src/services/peer-manager/peer_scoring.ts +46 -3
  232. package/src/services/reqresp/protocols/block.ts +2 -1
  233. package/src/services/reqresp/protocols/status.ts +9 -8
  234. package/src/services/tx_collection/fast_tx_collection.ts +3 -2
  235. package/src/services/tx_collection/slow_tx_collection.ts +5 -4
  236. package/src/services/tx_collection/tx_collection.ts +9 -8
  237. package/src/services/tx_provider.ts +4 -3
  238. package/src/testbench/p2p_client_testbench_worker.ts +8 -5
  239. package/src/util.ts +12 -2
@@ -67,4 +67,4 @@ export declare function createBootstrapNodeFromPrivateKey(privateKey: string, po
67
67
  */
68
68
  export declare function getBootstrapNodeEnr(privateKey: string, port: number): Promise<SignableENR>;
69
69
  export declare function createBootstrapNode(port: number, telemetry?: TelemetryClient, chainConfig?: ChainConfig): Promise<BootstrapNode>;
70
- //# sourceMappingURL=reqresp-nodes.d.ts.map
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTXJELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBT25GLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSww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
@@ -1 +1 @@
1
- {"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=p2p_client_testbench_worker.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudF90ZXN0YmVuY2hfd29ya2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3AycF9jbGllbnRfdGVzdGJlbmNoX3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Used when running testbench commands
5
5
  */ import { MockL2BlockSource } from '@aztec/archiver/test';
6
+ import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
6
7
  import { EthAddress } from '@aztec/foundation/eth-address';
7
8
  import { createLogger } from '@aztec/foundation/log';
8
9
  import { sleep } from '@aztec/foundation/sleep';
@@ -54,7 +55,9 @@ function mockAttestationPool() {
54
55
  addBlockProposal: ()=>Promise.resolve(),
55
56
  getBlockProposal: ()=>Promise.resolve(undefined),
56
57
  hasBlockProposal: ()=>Promise.resolve(false),
57
- hasAttestation: ()=>Promise.resolve(false)
58
+ hasAttestation: ()=>Promise.resolve(false),
59
+ canAddProposal: ()=>Promise.resolve(true),
60
+ canAddAttestation: ()=>Promise.resolve(true)
58
61
  };
59
62
  }
60
63
  function mockEpochCache() {
@@ -62,24 +65,24 @@ function mockEpochCache() {
62
65
  getCommittee: ()=>Promise.resolve({
63
66
  committee: [],
64
67
  seed: 1n,
65
- epoch: 0n
68
+ epoch: EpochNumber.ZERO
66
69
  }),
67
70
  getProposerIndexEncoding: ()=>'0x',
68
71
  getEpochAndSlotNow: ()=>({
69
- epoch: 0n,
70
- slot: 0n,
72
+ epoch: EpochNumber.ZERO,
73
+ slot: SlotNumber.ZERO,
71
74
  ts: 0n
72
75
  }),
73
76
  computeProposerIndex: ()=>0n,
74
77
  getProposerAttesterAddressInCurrentOrNextSlot: ()=>Promise.resolve({
75
78
  currentProposer: EthAddress.ZERO,
76
79
  nextProposer: EthAddress.ZERO,
77
- currentSlot: 0n,
78
- nextSlot: 0n
80
+ currentSlot: SlotNumber.ZERO,
81
+ nextSlot: SlotNumber.ZERO
79
82
  }),
80
83
  getEpochAndSlotInNextL1Slot: ()=>({
81
- epoch: 0n,
82
- slot: 0n,
84
+ epoch: EpochNumber.ZERO,
85
+ slot: SlotNumber.ZERO,
83
86
  ts: 0n,
84
87
  now: 0n
85
88
  }),
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=parse_log_file.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfbG9nX2ZpbGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0YmVuY2gvcGFyc2VfbG9nX2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=testbench.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGJlbmNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3Rlc3RiZW5jaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -48,4 +48,4 @@ declare class WorkerClientManager {
48
48
  cleanup(): Promise<void>;
49
49
  }
50
50
  export { WorkerClientManager, testChainConfig };
51
- //# sourceMappingURL=worker_client_manager.d.ts.map
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX2NsaWVudF9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3dvcmtlcl9jbGllbnRfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFJeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQVFuRSxRQUFBLE1BQU0sZUFBZSxFQUFFLFdBTXRCLENBQUM7QUFFRixjQUFNLG1CQUFtQjtJQUNoQixTQUFTLEVBQUUsWUFBWSxFQUFFLENBQU07SUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDakMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFNO0lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBTTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFxQjtJQUN0QyxPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBZ0I7SUFFL0MsWUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBR3hEO0lBRUQsT0FBTyxTQUtOO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBaUIxQjs7T0FFRztJQUNILE9BQU8sQ0FBQyxrQkFBa0I7SUFvRDFCOzs7Ozs7T0FNRztJQUNHLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxNQUFNLHFCQXlDOUM7SUFFRCw0QkFBNEIsU0FFM0I7SUFFRCxrQ0FBa0MsV0FFakM7SUFFRDs7Ozs7T0FLRztJQUNHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQTRDcEQ7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxnQkFBZ0I7SUFzQ3hCOztPQUVHO0lBQ0csT0FBTyxrQkFnQ1o7Q0FDRjtBQUVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAQnE,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,cAAM,mBAAmB;IAChB,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,KAAK,EAAE,MAAM,EAAE,CAAM;IAC5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,uBAAuB,CAAgB;gBAEnC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;IAKzD,OAAO;IAOP;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoD1B;;;;;;OAMG;IACG,iBAAiB,CAAC,eAAe,EAAE,MAAM;IA2C/C,4BAA4B;IAI5B,kCAAkC;IAIlC;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IA8CrD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACG,OAAO;CAiCd;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAQnE,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,cAAM,mBAAmB;IAChB,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,KAAK,EAAE,MAAM,EAAE,CAAM;IAC5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,YAAY,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAGxD;IAED,OAAO,SAKN;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoD1B;;;;;;OAMG;IACG,iBAAiB,CAAC,eAAe,EAAE,MAAM,qBAyC9C;IAED,4BAA4B,SAE3B;IAED,kCAAkC,WAEjC;IAED;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBA4CpD;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACG,OAAO,kBAgCZ;CACF;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC"}
@@ -31,4 +31,4 @@ export declare enum GossipSubEvent {
31
31
  */
32
32
  export declare const AZTEC_ENR_KEY = "aztec";
33
33
  export declare const AZTEC_ENR_CLIENT_VERSION_KEY = "ver";
34
- //# sourceMappingURL=index.d.ts.map
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7cURBRXFEO0FBRXJEOztHQUVHO0FBQ0gsb0JBQVksU0FBUztJQUNuQixVQUFVLG9CQUFvQjtJQUM5QixTQUFTLGlCQUFpQjtJQUMxQixZQUFZLG9CQUFvQjtDQUNqQztBQUVEOztHQUVHO0FBQ0gsb0JBQVksV0FBVztJQUNyQixVQUFVLGVBQWU7SUFDekIsU0FBUyxhQUFhO0lBQ3RCLGlCQUFpQixxQkFBcUI7Q0FDdkM7QUFFRDs7R0FFRztBQUNILG9CQUFZLGNBQWM7SUFDeEIsT0FBTyxzQkFBc0I7Q0FDOUI7QUFFRDs7cURBRXFEO0FBRXJEOztHQUVHO0FBQ0gsZUFBTyxNQUFNLGFBQWEsVUFBVSxDQUFDO0FBQ3JDLGVBQU8sTUFBTSw0QkFBNEIsUUFBUSxDQUFDIn0=
package/dest/util.d.ts CHANGED
@@ -35,6 +35,7 @@ export declare function convertToMultiaddr(address: string, port: number, protoc
35
35
  * Queries the public IP address of the machine.
36
36
  */
37
37
  export declare function getPublicIp(): Promise<string>;
38
+ export declare function isValidIpAddress(address: string): boolean;
38
39
  export declare function resolveAddressIfNecessary(address: string, port: string): Promise<string>;
39
40
  export declare function configureP2PClientAddresses(_config: P2PConfig & DataStoreConfig): Promise<P2PConfig & DataStoreConfig>;
40
41
  /**
@@ -57,4 +58,4 @@ export declare function getPeerIdPrivateKey(config: {
57
58
  * @returns The peer ID.
58
59
  */
59
60
  export declare function createLibP2PPeerIdFromPrivateKey(privateKey: string): Promise<PeerId>;
60
- //# sourceMappingURL=util.d.ts.map
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBYyxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJcEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSXJDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUk3QyxNQUFNLFdBQVcsWUFBYSxTQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLE9BQU8sR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQ3hGLFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJLENBQ1YsU0FBUyxFQUNULGtCQUFrQixHQUFHLHFCQUFxQixHQUFHLFNBQVMsR0FBRyxXQUFXLEdBQUcsK0JBQStCLEdBQUcsUUFBUSxDQUNsSCxHQUFHO1lBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FBRSxDQUFDO0tBQ2xELENBQUM7Q0FDSDtBQUVELE1BQU0sTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzlCLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDbkIsTUFBTSxFQUFFLFNBQVMsQ0FBQztJQUNsQixVQUFVLEVBQUU7UUFDVixpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztLQUN0QyxDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7NkNBTzZDO0FBQzdDLHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUcsTUFBTSxDQU9qRztBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLFdBQVcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBUW5EO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUd6RDtBQUVELHdCQUFzQix5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQVc5RjtBQWNELHdCQUFzQiwyQkFBMkIsQ0FDL0MsT0FBTyxFQUFFLFNBQVMsR0FBRyxlQUFlLEdBQ25DLE9BQU8sQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLENBbUJ0QztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLG1CQUFtQixDQUN2QyxNQUFNLEVBQUU7SUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUFDLG9CQUFvQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFBO0NBQUUsRUFDekcsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0EyRDlCO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FTMUYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxF,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CACV,SAAS,EACT,kBAAkB,GAAG,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,+BAA+B,GAAG,QAAQ,CAClH,GAAG;YAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;KAClD,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE;QACV,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;6CAO6C;AAC7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAOjG;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAInD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9F;AAcD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GACnC,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC,CAmBtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE;IAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACzG,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CA2D9B;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxF,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CACV,SAAS,EACT,kBAAkB,GAAG,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,+BAA+B,GAAG,QAAQ,CAClH,GAAG;YAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;KAClD,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE;QACV,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;6CAO6C;AAC7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAOjG;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAQnD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9F;AAcD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GACnC,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC,CAmBtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE;IAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACzG,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CA2D9B;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F"}
package/dest/util.js CHANGED
@@ -3,6 +3,7 @@ import { generateKeyPair, marshalPrivateKey, unmarshalPrivateKey } from '@libp2p
3
3
  import { createFromPrivKey } from '@libp2p/peer-id-factory';
4
4
  import { resolve } from 'dns/promises';
5
5
  import { promises as fs } from 'fs';
6
+ import net from 'net';
6
7
  import path from 'path';
7
8
  const PEER_ID_DATA_DIR_FILE = 'p2p-private-key';
8
9
  /**
@@ -22,9 +23,17 @@ const PEER_ID_DATA_DIR_FILE = 'p2p-private-key';
22
23
  /**
23
24
  * Queries the public IP address of the machine.
24
25
  */ export async function getPublicIp() {
25
- const resp = await fetch('http://checkip.amazonaws.com/');
26
+ const resp = await fetch('https://checkip.amazonaws.com/');
26
27
  const text = await resp.text();
27
- return text.trim();
28
+ const address = text.trim();
29
+ if (!isValidIpAddress(address)) {
30
+ throw new Error(`Received invalid IP address from checkip service: ${address}`);
31
+ }
32
+ return address;
33
+ }
34
+ export function isValidIpAddress(address) {
35
+ const netType = net.isIP(address);
36
+ return netType === 4;
28
37
  }
29
38
  export async function resolveAddressIfNecessary(address, port) {
30
39
  const multiaddrPrefix = addressToMultiAddressType(address);
@@ -9,4 +9,4 @@ export declare function setAztecEnrKey(enr: SignableENR, config: ChainConfig, us
9
9
  export declare function setAztecClientVersionEnrKey(enr: SignableENR, clientVersion: string): void;
10
10
  /** Checks the given value from an ENR record against the expected versions. */
11
11
  export declare function checkAztecEnrVersion(enrValue: Buffer, expectedVersions: ComponentsVersions): void;
12
- //# sourceMappingURL=versioning.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZlcnNpb25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFTdEQscUVBQXFFO0FBQ3JFLHdCQUFnQixXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsc0JBRTlDO0FBRUQsaUVBQWlFO0FBQ2pFLHdCQUFnQixjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsVUFBYyxzQkFLNUY7QUFFRCxtREFBbUQ7QUFDbkQsd0JBQWdCLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sUUFJbEY7QUFFRCwrRUFBK0U7QUFDL0Usd0JBQWdCLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLFFBVTFGIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/p2p",
3
- "version": "0.0.1-commit.b655e406",
3
+ "version": "0.0.1-commit.d3ec352c",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -19,12 +19,12 @@
19
19
  "tsconfig": "./tsconfig.json"
20
20
  },
21
21
  "scripts": {
22
- "build": "yarn clean && tsc -b",
23
- "build:dev": "tsc -b --watch",
22
+ "build": "yarn clean && ../scripts/tsc.sh",
23
+ "build:dev": "../scripts/tsc.sh --watch",
24
24
  "clean": "rm -rf ./dest .tsbuildinfo",
25
25
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
26
26
  "start": "node ./dest",
27
- "start:dev": "tsc-watch -p tsconfig.json --onSuccess 'yarn start'"
27
+ "start:dev": "concurrently -k \"tsgo -b -w\" \"nodemon --watch dest --exec yarn start\""
28
28
  },
29
29
  "inherits": [
30
30
  "../package.common.json"
@@ -67,17 +67,17 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/constants": "0.0.1-commit.b655e406",
71
- "@aztec/epoch-cache": "0.0.1-commit.b655e406",
72
- "@aztec/ethereum": "0.0.1-commit.b655e406",
73
- "@aztec/foundation": "0.0.1-commit.b655e406",
74
- "@aztec/kv-store": "0.0.1-commit.b655e406",
75
- "@aztec/noir-contracts.js": "0.0.1-commit.b655e406",
76
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.b655e406",
77
- "@aztec/protocol-contracts": "0.0.1-commit.b655e406",
78
- "@aztec/simulator": "0.0.1-commit.b655e406",
79
- "@aztec/stdlib": "0.0.1-commit.b655e406",
80
- "@aztec/telemetry-client": "0.0.1-commit.b655e406",
70
+ "@aztec/constants": "0.0.1-commit.d3ec352c",
71
+ "@aztec/epoch-cache": "0.0.1-commit.d3ec352c",
72
+ "@aztec/ethereum": "0.0.1-commit.d3ec352c",
73
+ "@aztec/foundation": "0.0.1-commit.d3ec352c",
74
+ "@aztec/kv-store": "0.0.1-commit.d3ec352c",
75
+ "@aztec/noir-contracts.js": "0.0.1-commit.d3ec352c",
76
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.d3ec352c",
77
+ "@aztec/protocol-contracts": "0.0.1-commit.d3ec352c",
78
+ "@aztec/simulator": "0.0.1-commit.d3ec352c",
79
+ "@aztec/stdlib": "0.0.1-commit.d3ec352c",
80
+ "@aztec/telemetry-client": "0.0.1-commit.d3ec352c",
81
81
  "@chainsafe/libp2p-gossipsub": "13.0.0",
82
82
  "@chainsafe/libp2p-noise": "^15.0.0",
83
83
  "@chainsafe/libp2p-yamux": "^6.0.2",
@@ -104,11 +104,12 @@
104
104
  "xxhash-wasm": "^1.1.0"
105
105
  },
106
106
  "devDependencies": {
107
- "@aztec/archiver": "0.0.1-commit.b655e406",
108
- "@aztec/world-state": "0.0.1-commit.b655e406",
107
+ "@aztec/archiver": "0.0.1-commit.d3ec352c",
108
+ "@aztec/world-state": "0.0.1-commit.d3ec352c",
109
109
  "@jest/globals": "^30.0.0",
110
110
  "@types/jest": "^30.0.0",
111
111
  "@types/node": "^22.15.17",
112
+ "@typescript/native-preview": "7.0.0-dev.20251126.1",
112
113
  "get-port": "^7.1.0",
113
114
  "it-drain": "^3.0.5",
114
115
  "it-length": "^3.0.6",
@@ -117,7 +118,7 @@
117
118
  "ts-node": "^10.9.1",
118
119
  "typescript": "^5.3.3",
119
120
  "uint8arrays": "^5.0.3",
120
- "viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
121
+ "viem": "npm:@aztec/viem@2.38.2"
121
122
  },
122
123
  "files": [
123
124
  "dest",
@@ -1,6 +1,6 @@
1
1
  import type { EthAddress, L2BlockId } from '@aztec/stdlib/block';
2
2
  import type { P2PApiFull } from '@aztec/stdlib/interfaces/server';
3
- import type { BlockProposal, P2PClientType } from '@aztec/stdlib/p2p';
3
+ import type { BlockAttestation, BlockProposal, P2PClientType } from '@aztec/stdlib/p2p';
4
4
  import type { Tx, TxHash } from '@aztec/stdlib/tx';
5
5
 
6
6
  import type { PeerId } from '@libp2p/interface';
@@ -50,6 +50,9 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
50
50
  */
51
51
  broadcastProposal(proposal: BlockProposal): Promise<void>;
52
52
 
53
+ /** Broadcasts block attestations to other peers. */
54
+ broadcastAttestations(attestations: BlockAttestation[]): Promise<void>;
55
+
53
56
  /**
54
57
  * Registers a callback from the validator client that determines how to behave when
55
58
  * foreign block proposals are received
@@ -1,4 +1,5 @@
1
- import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
1
+ import { GENESIS_BLOCK_HEADER_HASH, INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
3
  import { createLogger } from '@aztec/foundation/log';
3
4
  import { DateProvider } from '@aztec/foundation/timer';
4
5
  import type { AztecAsyncKVStore, AztecAsyncMap, AztecAsyncSingleton } from '@aztec/kv-store';
@@ -62,10 +63,10 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
62
63
  private provenBlockNumberAtStart = -1;
63
64
  private finalizedBlockNumberAtStart = -1;
64
65
 
65
- private synchedBlockHashes: AztecAsyncMap<number, string>;
66
- private synchedLatestBlockNumber: AztecAsyncSingleton<number>;
67
- private synchedProvenBlockNumber: AztecAsyncSingleton<number>;
68
- private synchedFinalizedBlockNumber: AztecAsyncSingleton<number>;
66
+ private synchedBlockHashes: AztecAsyncMap<BlockNumber, string>;
67
+ private synchedLatestBlockNumber: AztecAsyncSingleton<BlockNumber>;
68
+ private synchedProvenBlockNumber: AztecAsyncSingleton<BlockNumber>;
69
+ private synchedFinalizedBlockNumber: AztecAsyncSingleton<BlockNumber>;
69
70
  private synchedLatestSlot: AztecAsyncSingleton<bigint>;
70
71
 
71
72
  private txPool: TxPool;
@@ -121,14 +122,14 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
121
122
  this.log.debug(`Received block proposal from ${sender.toString()}`);
122
123
  // TODO(palla/txs): Need to subtract validatorReexecuteDeadlineMs from this deadline (see ValidatorClient.getReexecutionDeadline)
123
124
  const constants = this.txCollection.getConstants();
124
- const nextSlotTimestampSeconds = Number(getTimestampForSlot(block.slotNumber.toBigInt() + 1n, constants));
125
+ const nextSlotTimestampSeconds = Number(getTimestampForSlot(SlotNumber(block.slotNumber + 1), constants));
125
126
  const deadline = new Date(nextSlotTimestampSeconds * 1000);
126
127
  const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.payload.header.lastArchiveRoot);
127
128
  if (!parentBlock) {
128
129
  this.log.debug(`Cannot collect txs for proposal as parent block not found`);
129
130
  return;
130
131
  }
131
- const blockNumber = parentBlock.getBlockNumber() + 1;
132
+ const blockNumber = BlockNumber(parentBlock.getBlockNumber() + 1);
132
133
  await this.txProvider.getTxsForBlockProposal(block, blockNumber, { pinnedPeer: sender, deadline });
133
134
  return undefined;
134
135
  });
@@ -162,7 +163,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
162
163
  return Promise.resolve(this.p2pService.getPeers(includePending));
163
164
  }
164
165
 
165
- public getL2BlockHash(number: number): Promise<string | undefined> {
166
+ public getL2BlockHash(number: BlockNumber): Promise<string | undefined> {
166
167
  return this.synchedBlockHashes.getAsync(number);
167
168
  }
168
169
 
@@ -203,10 +204,12 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
203
204
  }
204
205
  }
205
206
 
207
+ const genesisHash = GENESIS_BLOCK_HEADER_HASH.toString();
208
+
206
209
  return {
207
- latest: { hash: latestBlockHash!, number: latestBlockNumber },
208
- proven: { hash: provenBlockHash!, number: provenBlockNumber },
209
- finalized: { hash: finalizedBlockHash!, number: finalizedBlockNumber },
210
+ latest: { hash: latestBlockHash ?? genesisHash, number: latestBlockNumber },
211
+ proven: { hash: provenBlockHash ?? genesisHash, number: provenBlockNumber },
212
+ finalized: { hash: finalizedBlockHash ?? genesisHash, number: finalizedBlockNumber },
210
213
  };
211
214
  }
212
215
 
@@ -219,7 +222,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
219
222
  case 'chain-finalized': {
220
223
  // TODO (alexg): I think we can prune the block hashes map here
221
224
  await this.setBlockHash(event.block);
222
- const from = (await this.getSyncedFinalizedBlockNum()) + 1;
225
+ const from = BlockNumber((await this.getSyncedFinalizedBlockNum()) + 1);
223
226
  const limit = event.block.number - from + 1;
224
227
  if (limit > 0) {
225
228
  await this.handleFinalizedL2Blocks(await this.l2BlockSource.getBlocks(from, limit));
@@ -284,7 +287,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
284
287
  (this.attestationPool === undefined || (await this.attestationPool?.isEmpty()))
285
288
  ) {
286
289
  // if mempools are empty, we don't care about syncing prior blocks
287
- this.initBlockStream(this.latestBlockNumberAtStart);
290
+ this.initBlockStream(BlockNumber(this.latestBlockNumberAtStart));
288
291
  this.setCurrentState(P2PClientState.RUNNING);
289
292
  this.syncPromise = Promise.resolve();
290
293
  await this.p2pService.start();
@@ -332,7 +335,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
332
335
  return this.p2pService.addReqRespSubProtocol(subProtocol, handler, validator);
333
336
  }
334
337
 
335
- private initBlockStream(startingBlock?: number) {
338
+ private initBlockStream(startingBlock?: BlockNumber) {
336
339
  if (!this.blockStream) {
337
340
  const { blockRequestBatchSize: batchSize, blockCheckIntervalMS: pollIntervalMS } = this.config;
338
341
  this.blockStream = new TraceableL2BlockStream(
@@ -371,16 +374,21 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
371
374
  }
372
375
 
373
376
  @trackSpan('p2pClient.broadcastProposal', async proposal => ({
374
- [Attributes.SLOT_NUMBER]: proposal.slotNumber.toNumber(),
377
+ [Attributes.SLOT_NUMBER]: proposal.slotNumber,
375
378
  [Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
376
- [Attributes.P2P_ID]: (await proposal.p2pMessageIdentifier()).toString(),
379
+ [Attributes.P2P_ID]: (await proposal.p2pMessageLoggingIdentifier()).toString(),
377
380
  }))
378
381
  public broadcastProposal(proposal: BlockProposal): Promise<void> {
379
- this.log.verbose(`Broadcasting proposal for slot ${proposal.slotNumber.toNumber()} to peers`);
382
+ this.log.verbose(`Broadcasting proposal for slot ${proposal.slotNumber} to peers`);
380
383
  return this.p2pService.propagate(proposal);
381
384
  }
382
385
 
383
- public async getAttestationsForSlot(slot: bigint, proposalId?: string): Promise<BlockAttestation[]> {
386
+ public async broadcastAttestations(attestations: BlockAttestation[]): Promise<void> {
387
+ this.log.verbose(`Broadcasting ${attestations.length} attestations to peers`);
388
+ await Promise.all(attestations.map(att => this.p2pService.propagate(att)));
389
+ }
390
+
391
+ public async getAttestationsForSlot(slot: SlotNumber, proposalId?: string): Promise<BlockAttestation[]> {
384
392
  return (
385
393
  (await (proposalId
386
394
  ? this.attestationPool?.getAttestationsForSlotAndProposal(slot, proposalId)
@@ -643,20 +651,20 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
643
651
  * Public function to check the latest block number that the P2P client is synced to.
644
652
  * @returns Block number of latest L2 Block we've synced with.
645
653
  */
646
- public async getSyncedLatestBlockNum(): Promise<number> {
647
- return (await this.synchedLatestBlockNumber.getAsync()) ?? INITIAL_L2_BLOCK_NUM - 1;
654
+ public async getSyncedLatestBlockNum(): Promise<BlockNumber> {
655
+ return (await this.synchedLatestBlockNumber.getAsync()) ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
648
656
  }
649
657
 
650
658
  /**
651
659
  * Public function to check the latest proven block number that the P2P client is synced to.
652
660
  * @returns Block number of latest proven L2 Block we've synced with.
653
661
  */
654
- public async getSyncedProvenBlockNum(): Promise<number> {
655
- return (await this.synchedProvenBlockNumber.getAsync()) ?? INITIAL_L2_BLOCK_NUM - 1;
662
+ public async getSyncedProvenBlockNum(): Promise<BlockNumber> {
663
+ return (await this.synchedProvenBlockNumber.getAsync()) ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
656
664
  }
657
665
 
658
- public async getSyncedFinalizedBlockNum(): Promise<number> {
659
- return (await this.synchedFinalizedBlockNumber.getAsync()) ?? INITIAL_L2_BLOCK_NUM - 1;
666
+ public async getSyncedFinalizedBlockNum(): Promise<BlockNumber> {
667
+ return (await this.synchedFinalizedBlockNumber.getAsync()) ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
660
668
  }
661
669
 
662
670
  /** Returns latest L2 slot for which we have seen an L2 block. */
@@ -672,7 +680,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
672
680
  const blockNumber = await this.getSyncedLatestBlockNum();
673
681
  const blockHash =
674
682
  blockNumber === 0
675
- ? ''
683
+ ? GENESIS_BLOCK_HEADER_HASH.toString()
676
684
  : await this.l2BlockSource
677
685
  .getBlockHeader(blockNumber)
678
686
  .then(header => header?.hash())
@@ -680,8 +688,8 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
680
688
 
681
689
  return {
682
690
  state: this.currentState,
683
- syncedToL2Block: { number: blockNumber, hash: blockHash },
684
- } as P2PSyncState;
691
+ syncedToL2Block: { number: blockNumber, hash: blockHash! },
692
+ };
685
693
  }
686
694
 
687
695
  /**
@@ -721,7 +729,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
721
729
  );
722
730
 
723
731
  await this.synchedLatestBlockNumber.set(lastBlock.number);
724
- await this.synchedLatestSlot.set(lastBlock.header.getSlot());
732
+ await this.synchedLatestSlot.set(BigInt(lastBlock.header.getSlot()));
725
733
  this.log.verbose(`Synched to latest block ${lastBlock.number}`);
726
734
  await this.startServiceIfSynched();
727
735
  }
@@ -786,7 +794,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
786
794
  * Updates the tx pool after a chain prune.
787
795
  * @param latestBlock - The block number the chain was pruned to.
788
796
  */
789
- private async handlePruneL2Blocks(latestBlock: number): Promise<void> {
797
+ private async handlePruneL2Blocks(latestBlock: BlockNumber): Promise<void> {
790
798
  const txsToDelete = new Map<string, TxHash>();
791
799
  const minedTxs = await this.txPool.getMinedTxHashes();
792
800
 
package/src/config.ts CHANGED
@@ -164,6 +164,12 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
164
164
 
165
165
  /** Whether to delete transactions from the pool after a reorg instead of moving them back to pending. */
166
166
  txPoolDeleteTxsAfterReorg: boolean;
167
+
168
+ /** Alters the format of p2p messages to include things like broadcast timestamp FOR TESTING ONLY */
169
+ debugP2PInstrumentMessages: boolean;
170
+
171
+ /** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
172
+ fishermanMode: boolean;
167
173
  }
168
174
 
169
175
  export const DEFAULT_P2P_PORT = 40400;
@@ -406,7 +412,7 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
406
412
  },
407
413
  dropTransactionsProbability: {
408
414
  env: 'P2P_DROP_TX_CHANCE',
409
- description: 'The probability that a transaction is discarded. - For testing purposes only',
415
+ description: 'The probability that a transaction is discarded (0 - 1). - For testing purposes only',
410
416
  ...floatConfigHelper(0),
411
417
  },
412
418
  disableTransactions: {
@@ -420,6 +426,17 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
420
426
  description: 'Whether to delete transactions from the pool after a reorg instead of moving them back to pending.',
421
427
  ...booleanConfigHelper(false),
422
428
  },
429
+ debugP2PInstrumentMessages: {
430
+ env: 'DEBUG_P2P_INSTRUMENT_MESSAGES',
431
+ description: 'Alters the format of p2p messages to include things like broadcast timestamp FOR TESTING ONLY',
432
+ ...booleanConfigHelper(false),
433
+ },
434
+ fishermanMode: {
435
+ env: 'FISHERMAN_MODE',
436
+ description:
437
+ 'Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus.',
438
+ ...booleanConfigHelper(false),
439
+ },
423
440
  ...p2pReqRespConfigMappings,
424
441
  ...chainConfigMappings,
425
442
  ...txCollectionConfigMappings,
@@ -0,0 +1,13 @@
1
+ export class AttestationPoolError extends Error {
2
+ constructor(message?: string) {
3
+ super(message);
4
+ this.name = 'AttestationPoolError';
5
+ }
6
+ }
7
+
8
+ export class ProposalSlotCapExceededError extends AttestationPoolError {
9
+ constructor(message?: string) {
10
+ super(message);
11
+ this.name = 'ProposalSlotCapExceededError';
12
+ }
13
+ }
@@ -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
 
3
4
  /**
@@ -51,7 +52,7 @@ export interface AttestationPool {
51
52
  *
52
53
  * @param slot - The oldest slot to keep.
53
54
  */
54
- deleteAttestationsOlderThan(slot: bigint): Promise<void>;
55
+ deleteAttestationsOlderThan(slot: SlotNumber): Promise<void>;
55
56
 
56
57
  /**
57
58
  * Delete Attestations for slot
@@ -60,7 +61,7 @@ export interface AttestationPool {
60
61
  *
61
62
  * @param slot - The slot to delete.
62
63
  */
63
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
64
+ deleteAttestationsForSlot(slot: SlotNumber): Promise<void>;
64
65
 
65
66
  /**
66
67
  * Delete Attestations for slot and proposal
@@ -70,7 +71,7 @@ export interface AttestationPool {
70
71
  * @param slot - The slot to delete.
71
72
  * @param proposalId - The proposal to delete.
72
73
  */
73
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
74
+ deleteAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<void>;
74
75
 
75
76
  /**
76
77
  * Get all Attestations for all proposals for a given slot
@@ -80,7 +81,7 @@ export interface AttestationPool {
80
81
  * @param slot - The slot to query
81
82
  * @return BlockAttestations
82
83
  */
83
- getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
84
+ getAttestationsForSlot(slot: SlotNumber): Promise<BlockAttestation[]>;
84
85
 
85
86
  /**
86
87
  * Get Attestations for slot and given proposal
@@ -91,7 +92,7 @@ export interface AttestationPool {
91
92
  * @param proposalId - The proposal to query
92
93
  * @return BlockAttestations
93
94
  */
94
- getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
95
+ getAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<BlockAttestation[]>;
95
96
 
96
97
  /**
97
98
  * Check if a specific attestation exists in the pool
@@ -101,6 +102,29 @@ export interface AttestationPool {
101
102
  */
102
103
  hasAttestation(attestation: BlockAttestation): Promise<boolean>;
103
104
 
105
+ /**
106
+ * Returns whether adding this proposal is permitted at current capacity:
107
+ * - True if the proposal already exists, allow overwrite to keep parity with tests.
108
+ * - True if the slot is below the proposal cap.
109
+ * - False if the slot is at/above cap and this would be a new unique proposal.
110
+ *
111
+ * @param block - The block proposal to check
112
+ * @returns True if the proposal can be added (or already exists), false otherwise.
113
+ */
114
+ canAddProposal(block: BlockProposal): Promise<boolean>;
115
+
116
+ /**
117
+ * Returns whether an attestation would be accepted for (slot, proposalId):
118
+ * - True if the attestation already exists for this sender.
119
+ * - True if the attestation cap for (slot, proposalId) has not been reached.
120
+ * - False if the cap is reached and this attestation would be a new unique entry.
121
+ *
122
+ * @param attestation - The attestation to check
123
+ * @param committeeSize - Committee size for the attestation's slot, implementation may add a small buffer
124
+ * @returns True if the attestation can be added, false otherwise.
125
+ */
126
+ canAddAttestation(attestation: BlockAttestation, committeeSize: number): Promise<boolean>;
127
+
104
128
  /** Returns whether the pool is empty. */
105
129
  isEmpty(): Promise<boolean>;
106
130
  }