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

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 (443) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +4 -3
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +4 -4
  4. package/dest/client/factory.d.ts +2 -2
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +8 -8
  7. package/dest/client/index.d.ts +1 -1
  8. package/dest/client/interface.d.ts +18 -3
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +16 -37
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +464 -126
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  19. package/dest/config.d.ts +69 -60
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +23 -14
  22. package/dest/enr/generate-enr.d.ts +1 -1
  23. package/dest/enr/index.d.ts +1 -1
  24. package/dest/errors/attestation-pool.error.d.ts +7 -0
  25. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  26. package/dest/errors/attestation-pool.error.js +12 -0
  27. package/dest/errors/reqresp.error.d.ts +1 -1
  28. package/dest/errors/reqresp.error.d.ts.map +1 -1
  29. package/dest/index.d.ts +1 -1
  30. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +77 -36
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +241 -266
  35. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  36. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +24 -14
  37. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +123 -95
  39. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +18 -12
  40. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  41. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +91 -108
  42. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  44. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  45. package/dest/mem_pools/index.d.ts +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +9 -1
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +37 -10
  49. package/dest/mem_pools/interface.d.ts +3 -4
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +33 -58
  52. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  54. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  55. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  57. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  58. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  60. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  61. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  63. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  66. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  69. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  70. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  72. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  73. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  75. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  76. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  77. package/dest/mem_pools/tx_pool/index.js +0 -1
  78. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  79. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  80. package/dest/mem_pools/tx_pool/priority.js +6 -1
  81. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  82. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  83. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  84. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  85. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  86. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -6
  87. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  88. package/dest/msg_validators/attestation_validator/attestation_validator.js +57 -24
  89. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  90. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  91. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  92. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  93. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  94. package/dest/msg_validators/attestation_validator/index.js +1 -0
  95. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  96. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  97. package/dest/msg_validators/clock_tolerance.js +37 -0
  98. package/dest/msg_validators/index.d.ts +2 -2
  99. package/dest/msg_validators/index.d.ts.map +1 -1
  100. package/dest/msg_validators/index.js +1 -1
  101. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  102. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  104. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  105. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  106. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  107. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  108. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  109. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  110. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  111. package/dest/msg_validators/proposal_validator/index.js +3 -0
  112. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  113. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  114. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  115. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  116. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  117. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  118. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  119. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  120. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  121. package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
  122. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  123. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +4 -3
  124. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  126. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  127. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  129. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +3 -2
  130. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/tx_validator/double_spend_validator.js +3 -2
  132. package/dest/msg_validators/tx_validator/factory.d.ts +10 -4
  133. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/factory.js +22 -12
  135. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  136. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  137. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  138. package/dest/msg_validators/tx_validator/gas_validator.d.ts +3 -2
  139. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/gas_validator.js +11 -16
  141. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  142. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/index.js +1 -0
  144. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  145. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  147. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  148. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/phases_validator.js +6 -4
  150. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  151. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  152. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  153. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  154. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +5 -3
  156. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/timestamp_validator.js +2 -2
  158. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  159. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  161. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  162. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  164. package/dest/services/data_store.d.ts +1 -1
  165. package/dest/services/data_store.d.ts.map +1 -1
  166. package/dest/services/discv5/discV5_service.d.ts +1 -1
  167. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  168. package/dest/services/discv5/discV5_service.js +1 -1
  169. package/dest/services/dummy_service.d.ts +18 -2
  170. package/dest/services/dummy_service.d.ts.map +1 -1
  171. package/dest/services/dummy_service.js +42 -0
  172. package/dest/services/encoding.d.ts +1 -1
  173. package/dest/services/encoding.d.ts.map +1 -1
  174. package/dest/services/encoding.js +7 -6
  175. package/dest/services/gossipsub/scoring.d.ts +1 -1
  176. package/dest/services/index.d.ts +1 -1
  177. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  178. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  179. package/dest/services/libp2p/instrumentation.js +36 -71
  180. package/dest/services/libp2p/libp2p_service.d.ts +48 -81
  181. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  182. package/dest/services/libp2p/libp2p_service.js +926 -193
  183. package/dest/services/peer-manager/interface.d.ts +1 -1
  184. package/dest/services/peer-manager/metrics.d.ts +9 -2
  185. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  186. package/dest/services/peer-manager/metrics.js +39 -16
  187. package/dest/services/peer-manager/peer_manager.d.ts +2 -33
  188. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  189. package/dest/services/peer-manager/peer_manager.js +6 -12
  190. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  191. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  192. package/dest/services/peer-manager/peer_scoring.js +43 -2
  193. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  194. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  195. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  196. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  197. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  198. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  199. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  200. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  201. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  202. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  203. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  204. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  205. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  206. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  207. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  208. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  209. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  210. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  211. package/dest/services/reqresp/config.d.ts +1 -1
  212. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  213. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  214. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  215. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  216. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  217. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  218. package/dest/services/reqresp/constants.d.ts +12 -0
  219. package/dest/services/reqresp/constants.d.ts.map +1 -0
  220. package/dest/services/reqresp/constants.js +7 -0
  221. package/dest/services/reqresp/index.d.ts +1 -1
  222. package/dest/services/reqresp/interface.d.ts +4 -2
  223. package/dest/services/reqresp/interface.d.ts.map +1 -1
  224. package/dest/services/reqresp/interface.js +1 -1
  225. package/dest/services/reqresp/metrics.d.ts +6 -5
  226. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  227. package/dest/services/reqresp/metrics.js +17 -21
  228. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  229. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  230. package/dest/services/reqresp/protocols/auth.js +2 -2
  231. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  232. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  233. package/dest/services/reqresp/protocols/block.js +3 -2
  234. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  235. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  236. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  237. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  238. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  239. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +14 -1
  240. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +17 -7
  241. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  242. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +34 -4
  243. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  244. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  245. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  246. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  247. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  248. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  249. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  250. package/dest/services/reqresp/protocols/status.js +7 -3
  251. package/dest/services/reqresp/protocols/tx.d.ts +2 -3
  252. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  253. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  254. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  255. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  256. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  257. package/dest/services/reqresp/reqresp.d.ts +6 -41
  258. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  259. package/dest/services/reqresp/reqresp.js +460 -46
  260. package/dest/services/reqresp/status.d.ts +2 -2
  261. package/dest/services/reqresp/status.d.ts.map +1 -1
  262. package/dest/services/service.d.ts +19 -3
  263. package/dest/services/service.d.ts.map +1 -1
  264. package/dest/services/tx_collection/config.d.ts +4 -1
  265. package/dest/services/tx_collection/config.d.ts.map +1 -1
  266. package/dest/services/tx_collection/config.js +10 -2
  267. package/dest/services/tx_collection/fast_tx_collection.d.ts +9 -12
  268. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  269. package/dest/services/tx_collection/fast_tx_collection.js +16 -5
  270. package/dest/services/tx_collection/index.d.ts +2 -1
  271. package/dest/services/tx_collection/index.d.ts.map +1 -1
  272. package/dest/services/tx_collection/index.js +1 -0
  273. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  274. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  275. package/dest/services/tx_collection/instrumentation.js +10 -13
  276. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  277. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  278. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  279. package/dest/services/tx_collection/slow_tx_collection.d.ts +4 -5
  280. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  281. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  282. package/dest/services/tx_collection/tx_collection.d.ts +10 -10
  283. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  284. package/dest/services/tx_collection/tx_collection.js +5 -5
  285. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  286. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  287. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  288. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  289. package/dest/services/tx_provider.d.ts +4 -2
  290. package/dest/services/tx_provider.d.ts.map +1 -1
  291. package/dest/services/tx_provider.js +11 -2
  292. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  293. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  294. package/dest/services/tx_provider_instrumentation.js +14 -14
  295. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  296. package/dest/test-helpers/get-ports.d.ts +1 -1
  297. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  298. package/dest/test-helpers/index.d.ts +3 -1
  299. package/dest/test-helpers/index.d.ts.map +1 -1
  300. package/dest/test-helpers/index.js +2 -0
  301. package/dest/test-helpers/make-enrs.d.ts +1 -1
  302. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  303. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  304. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  305. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  306. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  307. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  308. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  309. package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
  310. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  311. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  312. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  313. package/dest/test-helpers/test_tx_provider.js +41 -0
  314. package/dest/test-helpers/testbench-utils.d.ts +156 -0
  315. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  316. package/dest/test-helpers/testbench-utils.js +296 -0
  317. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  318. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  319. package/dest/testbench/p2p_client_testbench_worker.js +218 -120
  320. package/dest/testbench/parse_log_file.d.ts +1 -1
  321. package/dest/testbench/testbench.d.ts +1 -1
  322. package/dest/testbench/worker_client_manager.d.ts +51 -6
  323. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  324. package/dest/testbench/worker_client_manager.js +226 -39
  325. package/dest/types/index.d.ts +1 -1
  326. package/dest/util.d.ts +2 -1
  327. package/dest/util.d.ts.map +1 -1
  328. package/dest/util.js +11 -2
  329. package/dest/versioning.d.ts +1 -1
  330. package/package.json +19 -18
  331. package/src/bootstrap/bootstrap.ts +7 -4
  332. package/src/client/factory.ts +11 -20
  333. package/src/client/interface.ts +20 -2
  334. package/src/client/p2p_client.ts +108 -155
  335. package/src/client/test/tx_proposal_collector/README.md +227 -0
  336. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  337. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  338. package/src/config.ts +36 -20
  339. package/src/errors/attestation-pool.error.ts +13 -0
  340. package/src/mem_pools/attestation_pool/attestation_pool.ts +86 -35
  341. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +243 -278
  342. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +175 -111
  343. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +147 -136
  344. package/src/mem_pools/attestation_pool/mocks.ts +21 -15
  345. package/src/mem_pools/instrumentation.ts +48 -10
  346. package/src/mem_pools/interface.ts +2 -4
  347. package/src/mem_pools/tx_pool/README.md +270 -0
  348. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  349. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  350. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  351. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  352. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  353. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  354. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  355. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  356. package/src/mem_pools/tx_pool/index.ts +0 -1
  357. package/src/mem_pools/tx_pool/priority.ts +8 -1
  358. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  359. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  360. package/src/msg_validators/attestation_validator/attestation_validator.ts +45 -32
  361. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  362. package/src/msg_validators/attestation_validator/index.ts +1 -0
  363. package/src/msg_validators/clock_tolerance.ts +51 -0
  364. package/src/msg_validators/index.ts +1 -1
  365. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  366. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  367. package/src/msg_validators/proposal_validator/index.ts +3 -0
  368. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  369. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  370. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  371. package/src/msg_validators/tx_validator/block_header_validator.ts +8 -5
  372. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  373. package/src/msg_validators/tx_validator/double_spend_validator.ts +4 -3
  374. package/src/msg_validators/tx_validator/factory.ts +67 -25
  375. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  376. package/src/msg_validators/tx_validator/gas_validator.ts +17 -28
  377. package/src/msg_validators/tx_validator/index.ts +1 -0
  378. package/src/msg_validators/tx_validator/metadata_validator.ts +19 -8
  379. package/src/msg_validators/tx_validator/phases_validator.ts +8 -4
  380. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  381. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  382. package/src/msg_validators/tx_validator/timestamp_validator.ts +11 -5
  383. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  384. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  385. package/src/services/discv5/discV5_service.ts +1 -1
  386. package/src/services/dummy_service.ts +51 -0
  387. package/src/services/encoding.ts +6 -5
  388. package/src/services/libp2p/instrumentation.ts +39 -71
  389. package/src/services/libp2p/libp2p_service.ts +628 -194
  390. package/src/services/peer-manager/metrics.ts +44 -16
  391. package/src/services/peer-manager/peer_manager.ts +7 -4
  392. package/src/services/peer-manager/peer_scoring.ts +45 -3
  393. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  394. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  395. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  396. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  397. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  398. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  399. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  400. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  401. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  402. package/src/services/reqresp/constants.ts +14 -0
  403. package/src/services/reqresp/interface.ts +4 -1
  404. package/src/services/reqresp/metrics.ts +36 -27
  405. package/src/services/reqresp/protocols/auth.ts +2 -2
  406. package/src/services/reqresp/protocols/block.ts +3 -2
  407. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  408. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +16 -2
  409. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -5
  410. package/src/services/reqresp/protocols/status.ts +16 -12
  411. package/src/services/reqresp/protocols/tx.ts +1 -2
  412. package/src/services/reqresp/reqresp.ts +66 -19
  413. package/src/services/service.ts +23 -4
  414. package/src/services/tx_collection/config.ts +16 -2
  415. package/src/services/tx_collection/fast_tx_collection.ts +39 -15
  416. package/src/services/tx_collection/index.ts +5 -0
  417. package/src/services/tx_collection/instrumentation.ts +5 -13
  418. package/src/services/tx_collection/proposal_tx_collector.ts +114 -0
  419. package/src/services/tx_collection/slow_tx_collection.ts +5 -4
  420. package/src/services/tx_collection/tx_collection.ts +10 -9
  421. package/src/services/tx_provider.ts +19 -3
  422. package/src/services/tx_provider_instrumentation.ts +24 -14
  423. package/src/test-helpers/index.ts +2 -0
  424. package/src/test-helpers/mock-pubsub.ts +1 -1
  425. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  426. package/src/test-helpers/reqresp-nodes.ts +1 -1
  427. package/src/test-helpers/test_tx_provider.ts +64 -0
  428. package/src/test-helpers/testbench-utils.ts +372 -0
  429. package/src/testbench/p2p_client_testbench_worker.ts +338 -116
  430. package/src/testbench/worker_client_manager.ts +304 -42
  431. package/src/util.ts +12 -2
  432. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  433. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  434. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  435. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  436. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  437. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  438. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  439. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  440. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  441. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  442. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  443. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -0,0 +1,212 @@
1
+ import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
2
+ export function sharedProposalValidatorTests(params) {
3
+ const { validatorFactory, makeProposal, makeHeader, getSigner, getAddress, getSlot, getTxHashes, epochCacheMock } = params;
4
+ describe('shared proposal validation logic', ()=>{
5
+ let epochCache;
6
+ let validator;
7
+ const previousSlot = getSlot(99);
8
+ const currentSlot = getSlot(100);
9
+ const nextSlot = getSlot(101);
10
+ function mockGetProposer(currentProposer, nextProposer, previousProposer) {
11
+ epochCache.getProposerAttesterAddressInSlot.mockImplementation((slot)=>{
12
+ if (slot === currentSlot) {
13
+ return Promise.resolve(currentProposer);
14
+ }
15
+ if (slot === nextSlot) {
16
+ return Promise.resolve(nextProposer);
17
+ }
18
+ if (slot === previousSlot && previousProposer) {
19
+ return Promise.resolve(previousProposer);
20
+ }
21
+ throw new Error('Unexpected argument');
22
+ });
23
+ }
24
+ beforeEach(()=>{
25
+ epochCache = epochCacheMock();
26
+ validator = validatorFactory(epochCache, {
27
+ txsPermitted: true
28
+ });
29
+ epochCache.getCurrentAndNextSlot.mockReturnValue({
30
+ currentSlot: currentSlot,
31
+ nextSlot: nextSlot
32
+ });
33
+ });
34
+ it('returns high tolerance error if slot number is not current or next slot (outside clock tolerance)', async ()=>{
35
+ const header = makeHeader(1, 99, 99);
36
+ const mockProposal = await makeProposal({
37
+ blockHeader: header,
38
+ lastBlockHeader: header
39
+ });
40
+ // Mock getEpochAndSlotNow to return time OUTSIDE clock tolerance (1000ms elapsed)
41
+ epochCache.getEpochAndSlotNow.mockReturnValue({
42
+ epoch: 1,
43
+ slot: currentSlot,
44
+ ts: 1000n,
45
+ nowMs: 1001000n
46
+ });
47
+ epochCache.getProposerAttesterAddressInSlot.mockResolvedValue(getAddress());
48
+ const result = await validator.validate(mockProposal);
49
+ expect(result).toEqual({
50
+ result: 'reject',
51
+ severity: PeerErrorSeverity.HighToleranceError
52
+ });
53
+ // Should not try to resolve proposers if base validation fails
54
+ expect(epochCache.getProposerAttesterAddressInSlot).not.toHaveBeenCalled();
55
+ });
56
+ it('returns ignore if previous slot proposal is within clock tolerance', async ()=>{
57
+ const previousProposer = getSigner();
58
+ const header = makeHeader(1, 99, 99);
59
+ const mockProposal = await makeProposal({
60
+ blockHeader: header,
61
+ lastBlockHeader: header,
62
+ signer: previousProposer
63
+ });
64
+ // Mock getEpochAndSlotNow to return time WITHIN clock tolerance (100ms elapsed)
65
+ epochCache.getEpochAndSlotNow.mockReturnValue({
66
+ epoch: 1,
67
+ slot: currentSlot,
68
+ ts: 1000n,
69
+ nowMs: 1000100n
70
+ });
71
+ mockGetProposer(getAddress(), getAddress(), getAddress(previousProposer));
72
+ const result = await validator.validate(mockProposal);
73
+ expect(result).toEqual({
74
+ result: 'ignore'
75
+ });
76
+ });
77
+ it('returns mid tolerance error if proposer is not current proposer for current slot', async ()=>{
78
+ const currentProposer = getSigner();
79
+ const nextProposer = getSigner();
80
+ const invalidProposer = getSigner();
81
+ const header = makeHeader(1, 100, 100);
82
+ const mockProposal = await makeProposal({
83
+ blockHeader: header,
84
+ lastBlockHeader: header,
85
+ signer: invalidProposer
86
+ });
87
+ mockGetProposer(getAddress(currentProposer), getAddress(nextProposer));
88
+ const result = await validator.validate(mockProposal);
89
+ expect(result).toEqual({
90
+ result: 'reject',
91
+ severity: PeerErrorSeverity.MidToleranceError
92
+ });
93
+ });
94
+ it('returns mid tolerance error if proposer is not next proposer for next slot', async ()=>{
95
+ const currentProposer = getSigner();
96
+ const nextProposer = getSigner();
97
+ const invalidProposer = getSigner();
98
+ const header = makeHeader(1, 101, 101);
99
+ const mockProposal = await makeProposal({
100
+ blockHeader: header,
101
+ lastBlockHeader: header,
102
+ signer: invalidProposer
103
+ });
104
+ mockGetProposer(getAddress(currentProposer), getAddress(nextProposer));
105
+ const result = await validator.validate(mockProposal);
106
+ expect(result).toEqual({
107
+ result: 'reject',
108
+ severity: PeerErrorSeverity.MidToleranceError
109
+ });
110
+ });
111
+ it('returns mid tolerance error if proposer is current proposer but proposal is for next slot', async ()=>{
112
+ const currentProposer = getSigner();
113
+ const nextProposer = getSigner();
114
+ const header = makeHeader(1, 101, 101);
115
+ const mockProposal = await makeProposal({
116
+ blockHeader: header,
117
+ lastBlockHeader: header,
118
+ signer: currentProposer
119
+ });
120
+ mockGetProposer(getAddress(currentProposer), getAddress(nextProposer));
121
+ const result = await validator.validate(mockProposal);
122
+ expect(result).toEqual({
123
+ result: 'reject',
124
+ severity: PeerErrorSeverity.MidToleranceError
125
+ });
126
+ });
127
+ it('returns undefined if proposal is valid for current slot and proposer', async ()=>{
128
+ const currentProposer = getSigner();
129
+ const nextProposer = getSigner();
130
+ const header = makeHeader(1, 100, 100);
131
+ const mockProposal = await makeProposal({
132
+ blockHeader: header,
133
+ lastBlockHeader: header,
134
+ signer: currentProposer
135
+ });
136
+ mockGetProposer(getAddress(currentProposer), getAddress(nextProposer));
137
+ const result = await validator.validate(mockProposal);
138
+ expect(result).toEqual({
139
+ result: 'accept'
140
+ });
141
+ });
142
+ it('returns undefined if proposal is valid for next slot and proposer', async ()=>{
143
+ const currentProposer = getSigner();
144
+ const nextProposer = getSigner();
145
+ const header = makeHeader(1, 101, 101);
146
+ const mockProposal = await makeProposal({
147
+ blockHeader: header,
148
+ lastBlockHeader: header,
149
+ signer: nextProposer
150
+ });
151
+ mockGetProposer(getAddress(currentProposer), getAddress(nextProposer));
152
+ const result = await validator.validate(mockProposal);
153
+ expect(result).toEqual({
154
+ result: 'accept'
155
+ });
156
+ });
157
+ describe('transaction permission validation', ()=>{
158
+ it('returns mid tolerance error if txs not permitted and proposal contains txHashes', async ()=>{
159
+ const currentProposer = getSigner();
160
+ const validatorWithTxsDisabled = validatorFactory(epochCache, {
161
+ txsPermitted: false
162
+ });
163
+ const header = makeHeader(1, 100, 100);
164
+ const mockProposal = await makeProposal({
165
+ blockHeader: header,
166
+ lastBlockHeader: header,
167
+ signer: currentProposer,
168
+ txHashes: getTxHashes(2)
169
+ });
170
+ mockGetProposer(getAddress(currentProposer), getAddress());
171
+ const result = await validatorWithTxsDisabled.validate(mockProposal);
172
+ expect(result).toEqual({
173
+ result: 'reject',
174
+ severity: PeerErrorSeverity.MidToleranceError
175
+ });
176
+ });
177
+ it('returns undefined if txs not permitted but proposal has no txHashes', async ()=>{
178
+ const currentProposer = getSigner();
179
+ const validatorWithTxsDisabled = validatorFactory(epochCache, {
180
+ txsPermitted: false
181
+ });
182
+ const header = makeHeader(1, 100, 100);
183
+ const mockProposal = await makeProposal({
184
+ blockHeader: header,
185
+ lastBlockHeader: header,
186
+ signer: currentProposer,
187
+ txHashes: getTxHashes(0)
188
+ });
189
+ mockGetProposer(getAddress(currentProposer), getAddress());
190
+ const result = await validatorWithTxsDisabled.validate(mockProposal);
191
+ expect(result).toEqual({
192
+ result: 'accept'
193
+ });
194
+ });
195
+ it('returns undefined if txs permitted and proposal contains txHashes', async ()=>{
196
+ const currentProposer = getSigner();
197
+ const header = makeHeader(1, 100, 100);
198
+ const mockProposal = await makeProposal({
199
+ blockHeader: header,
200
+ lastBlockHeader: header,
201
+ signer: currentProposer,
202
+ txHashes: getTxHashes(2)
203
+ });
204
+ mockGetProposer(getAddress(currentProposer), getAddress());
205
+ const result = await validator.validate(mockProposal);
206
+ expect(result).toEqual({
207
+ result: 'accept'
208
+ });
209
+ });
210
+ });
211
+ });
212
+ }
@@ -4,4 +4,4 @@ export declare class AggregateTxValidator<T extends Tx | ProcessedTx> implements
4
4
  constructor(...validators: TxValidator<T>[]);
5
5
  validateTx(tx: T): Promise<TxValidationResult>;
6
6
  }
7
- //# sourceMappingURL=aggregate_tx_validator.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlX3R4X3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9hZ2dyZWdhdGVfdHhfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekYscUJBQWEsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxXQUFXLENBQUUsWUFBVyxXQUFXLENBQUMsQ0FBQyxDQUFDOztJQUVyRixZQUFZLEdBQUcsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQU0xQztJQUVLLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQWtCbkQ7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate_tx_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/aggregate_tx_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzF,qBAAa,oBAAoB,CAAC,CAAC,SAAS,EAAE,GAAG,WAAW,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;gBAEzE,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;IAQrC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAmBrD"}
1
+ {"version":3,"file":"aggregate_tx_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/aggregate_tx_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzF,qBAAa,oBAAoB,CAAC,CAAC,SAAS,EAAE,GAAG,WAAW,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAErF,YAAY,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAM1C;IAEK,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkBnD;CACF"}
@@ -1,3 +1,3 @@
1
1
  import type { AllowedElement } from '@aztec/stdlib/interfaces/server';
2
2
  export declare function getDefaultAllowedSetupFunctions(): Promise<AllowedElement[]>;
3
- //# sourceMappingURL=allowed_public_setup.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb3dlZF9wdWJsaWNfc2V0dXAuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvYWxsb3dlZF9wdWJsaWNfc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHdEUsd0JBQXNCLCtCQUErQixJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQTJCakYifQ==
@@ -1,4 +1,4 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { ArchiveSource } from '@aztec/p2p';
3
3
  import type { MerkleTreeReadOperations } from '@aztec/stdlib/interfaces/server';
4
4
  /**
@@ -11,4 +11,4 @@ export declare class ArchiveCache implements ArchiveSource {
11
11
  constructor(db: MerkleTreeReadOperations);
12
12
  getArchiveIndices(archives: Fr[]): Promise<(bigint | undefined)[]>;
13
13
  }
14
- //# sourceMappingURL=archive_cache.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZV9jYWNoZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9hcmNoaXZlX2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2hGOzs7R0FHRztBQUNILHFCQUFhLFlBQWEsWUFBVyxhQUFhO0lBR3BDLE9BQU8sQ0FBQyxFQUFFO0lBRnRCLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLFlBQW9CLEVBQUUsRUFBRSx3QkFBd0IsRUFFL0M7SUFFWSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FVOUU7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"archive_cache.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/archive_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,YAAa,YAAW,aAAa;IAGpC,OAAO,CAAC,EAAE;IAFtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEV,EAAE,EAAE,wBAAwB;IAInC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CAWhF"}
1
+ {"version":3,"file":"archive_cache.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/archive_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,YAAa,YAAW,aAAa;IAGpC,OAAO,CAAC,EAAE;IAFtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,YAAoB,EAAE,EAAE,wBAAwB,EAE/C;IAEY,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAU9E;CACF"}
@@ -1,11 +1,12 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { type LoggerBindings } from '@aztec/foundation/log';
2
3
  import { type AnyTx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
3
4
  export interface ArchiveSource {
4
5
  getArchiveIndices: (archives: Fr[]) => Promise<(bigint | undefined)[]>;
5
6
  }
6
7
  export declare class BlockHeaderTxValidator<T extends AnyTx> implements TxValidator<T> {
7
8
  #private;
8
- constructor(archiveSource: ArchiveSource);
9
+ constructor(archiveSource: ArchiveSource, bindings?: LoggerBindings);
9
10
  validateTx(tx: T): Promise<TxValidationResult>;
10
11
  }
11
- //# sourceMappingURL=block_header_validator.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9ibG9ja19oZWFkZXJfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQXlCLEtBQUssa0JBQWtCLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoSCxNQUFNLFdBQVcsYUFBYTtJQUM1QixpQkFBaUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0NBQ3hFO0FBRUQscUJBQWEsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBRSxZQUFXLFdBQVcsQ0FBQyxDQUFDLENBQUM7O0lBSTVFLFlBQVksYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsRUFBRSxjQUFjLEVBR2xFO0lBRUssVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBU25EO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"block_header_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/block_header_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,KAAK,EAAyB,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhH,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CACxE;AAED,qBAAa,sBAAsB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;gBAIhE,aAAa,EAAE,aAAa;IAIlC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQrD"}
1
+ {"version":3,"file":"block_header_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/block_header_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,KAAK,KAAK,EAAyB,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhH,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CACxE;AAED,qBAAa,sBAAsB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAI5E,YAAY,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,EAGlE;IAEK,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CASnD;CACF"}
@@ -1,14 +1,15 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { TX_ERROR_BLOCK_HEADER } from '@aztec/stdlib/tx';
3
3
  export class BlockHeaderTxValidator {
4
- #log = createLogger('p2p:tx_validator:tx_block_header');
4
+ #log;
5
5
  #archiveSource;
6
- constructor(archiveSource){
6
+ constructor(archiveSource, bindings){
7
7
  this.#archiveSource = archiveSource;
8
+ this.#log = createLogger('p2p:tx_validator:tx_block_header', bindings);
8
9
  }
9
10
  async validateTx(tx) {
10
11
  const [index] = await this.#archiveSource.getArchiveIndices([
11
- await tx.data.constants.anchorBlockHeader.hash()
12
+ (await tx.data.constants.anchorBlockHeader.hash()).toField()
12
13
  ]);
13
14
  if (index === undefined) {
14
15
  this.#log.verbose(`Rejecting tx ${'txHash' in tx ? tx.txHash : tx.hash} for referencing an unknown block header`);
@@ -1,6 +1,8 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import { Tx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
2
3
  export declare class DataTxValidator implements TxValidator<Tx> {
3
4
  #private;
5
+ constructor(bindings?: LoggerBindings);
4
6
  validateTx(tx: Tx): Promise<TxValidationResult>;
5
7
  }
6
- //# sourceMappingURL=data_validator.d.ts.map
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvZGF0YV92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFTTCxFQUFFLEVBQ0YsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxXQUFXLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIscUJBQWEsZUFBZ0IsWUFBVyxXQUFXLENBQUMsRUFBRSxDQUFDOztJQUdyRCxZQUFZLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFFcEM7SUFFSyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FNcEQ7Q0FtR0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"data_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/data_validator.ts"],"names":[],"mappings":"AAGA,OAAO,EASL,EAAE,EACF,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,eAAgB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAG/C,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiGtD"}
1
+ {"version":3,"file":"data_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/data_validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EASL,EAAE,EACF,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,eAAgB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAGrD,YAAY,QAAQ,CAAC,EAAE,cAAc,EAEpC;IAEK,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAMpD;CAmGF"}
@@ -3,7 +3,10 @@ import { createLogger } from '@aztec/foundation/log';
3
3
  import { computeCalldataHash } from '@aztec/stdlib/hash';
4
4
  import { TX_ERROR_CALLDATA_COUNT_MISMATCH, TX_ERROR_CALLDATA_COUNT_TOO_LARGE, TX_ERROR_CONTRACT_CLASS_LOGS, TX_ERROR_CONTRACT_CLASS_LOG_COUNT, TX_ERROR_CONTRACT_CLASS_LOG_LENGTH, TX_ERROR_CONTRACT_CLASS_LOG_SORTING, TX_ERROR_INCORRECT_CALLDATA, TX_ERROR_INCORRECT_HASH, Tx } from '@aztec/stdlib/tx';
5
5
  export class DataTxValidator {
6
- #log = createLogger('p2p:tx_validator:tx_data');
6
+ #log;
7
+ constructor(bindings){
8
+ this.#log = createLogger('p2p:tx_validator:tx_data', bindings);
9
+ }
7
10
  async validateTx(tx) {
8
11
  const reason = await this.#hasCorrectHash(tx) ?? await this.#hasCorrectCalldata(tx) ?? await this.#hasCorrectContractClassLogs(tx);
9
12
  return reason ? {
@@ -1,10 +1,11 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import { type AnyTx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
2
3
  export interface NullifierSource {
3
4
  nullifiersExist: (nullifiers: Buffer[]) => Promise<boolean[]>;
4
5
  }
5
6
  export declare class DoubleSpendTxValidator<T extends AnyTx> implements TxValidator<T> {
6
7
  #private;
7
- constructor(nullifierSource: NullifierSource);
8
+ constructor(nullifierSource: NullifierSource, bindings?: LoggerBindings);
8
9
  validateTx(tx: T): Promise<TxValidationResult>;
9
10
  }
10
- //# sourceMappingURL=double_spend_validator.d.ts.map
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG91YmxlX3NwZW5kX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9kb3VibGVfc3BlbmRfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEVBQ0wsS0FBSyxLQUFLLEVBSVYsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxXQUFXLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsTUFBTSxXQUFXLGVBQWU7SUFDOUIsZUFBZSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0NBQy9EO0FBRUQscUJBQWEsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBRSxZQUFXLFdBQVcsQ0FBQyxDQUFDLENBQUM7O0lBSTVFLFlBQVksZUFBZSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsRUFBRSxjQUFjLEVBR3RFO0lBRUssVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBZ0JuRDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"double_spend_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/double_spend_validator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAIV,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC/D;AAED,qBAAa,sBAAsB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;gBAIhE,eAAe,EAAE,eAAe;IAItC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiBrD"}
1
+ {"version":3,"file":"double_spend_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/double_spend_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,KAAK,KAAK,EAIV,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC/D;AAED,qBAAa,sBAAsB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;IAI5E,YAAY,eAAe,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,cAAc,EAGtE;IAEK,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgBnD;CACF"}
@@ -1,10 +1,11 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { TX_ERROR_DUPLICATE_NULLIFIER_IN_TX, TX_ERROR_EXISTING_NULLIFIER, Tx } from '@aztec/stdlib/tx';
3
3
  export class DoubleSpendTxValidator {
4
- #log = createLogger('p2p:tx_validator:tx_double_spend');
4
+ #log;
5
5
  #nullifierSource;
6
- constructor(nullifierSource){
6
+ constructor(nullifierSource, bindings){
7
7
  this.#nullifierSource = nullifierSource;
8
+ this.#log = createLogger('p2p:tx_validator:tx_double_spend', bindings);
8
9
  }
9
10
  async validateTx(tx) {
10
11
  const nullifiers = tx instanceof Tx ? tx.data.getNonEmptyNullifiers() : tx.txEffect.nullifiers;
@@ -1,9 +1,11 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { LoggerBindings } from '@aztec/foundation/log';
2
4
  import type { ContractDataSource } from '@aztec/stdlib/contract';
3
5
  import type { GasFees } from '@aztec/stdlib/gas';
4
6
  import type { AllowedElement, ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
5
7
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
6
- import type { Tx, TxValidationResult } from '@aztec/stdlib/tx';
8
+ import type { Tx, TxValidationResult, TxValidator } from '@aztec/stdlib/tx';
7
9
  import type { UInt64 } from '@aztec/stdlib/types';
8
10
  export interface MessageValidator {
9
11
  validator: {
@@ -11,5 +13,9 @@ export interface MessageValidator {
11
13
  };
12
14
  severity: PeerErrorSeverity;
13
15
  }
14
- export declare function createTxMessageValidators(timestamp: UInt64, blockNumber: number, worldStateSynchronizer: WorldStateSynchronizer, gasFees: GasFees, l1ChainId: number, rollupVersion: number, protocolContractsHash: Fr, contractDataSource: ContractDataSource, proofVerifier: ClientProtocolCircuitVerifier, txsPermitted: boolean, allowedInSetup?: AllowedElement[]): Record<string, MessageValidator>[];
15
- //# sourceMappingURL=factory.d.ts.map
16
+ export declare function createTxMessageValidators(timestamp: UInt64, blockNumber: BlockNumber, worldStateSynchronizer: WorldStateSynchronizer, gasFees: GasFees, l1ChainId: number, rollupVersion: number, protocolContractsHash: Fr, contractDataSource: ContractDataSource, proofVerifier: ClientProtocolCircuitVerifier, txsPermitted: boolean, allowedInSetup?: AllowedElement[], bindings?: LoggerBindings): Record<string, MessageValidator>[];
17
+ export declare function createTxReqRespValidator(verifier: ClientProtocolCircuitVerifier, { l1ChainId, rollupVersion }: {
18
+ l1ChainId: number;
19
+ rollupVersion: number;
20
+ }, bindings?: LoggerBindings): TxValidator;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFDVixjQUFjLEVBQ2QsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWVsRCxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLFNBQVMsRUFBRTtRQUNULFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBQ2pELENBQUM7SUFDRixRQUFRLEVBQUUsaUJBQWlCLENBQUM7Q0FDN0I7QUFFRCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLHNCQUFzQixFQUFFLHNCQUFzQixFQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUNoQixTQUFTLEVBQUUsTUFBTSxFQUNqQixhQUFhLEVBQUUsTUFBTSxFQUNyQixxQkFBcUIsRUFBRSxFQUFFLEVBQ3pCLGtCQUFrQixFQUFFLGtCQUFrQixFQUN0QyxhQUFhLEVBQUUsNkJBQTZCLEVBQzVDLFlBQVksRUFBRSxPQUFPLEVBQ3JCLGNBQWMsR0FBRSxjQUFjLEVBQU8sRUFDckMsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixNQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0F5RXBDO0FBRUQsd0JBQWdCLHdCQUF3QixDQUN0QyxRQUFRLEVBQUUsNkJBQTZCLEVBQ3ZDLEVBQ0UsU0FBUyxFQUNULGFBQWEsRUFDZCxFQUFFO0lBQ0QsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixhQUFhLEVBQUUsTUFBTSxDQUFDO0NBQ3ZCLEVBQ0QsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixXQUFXLENBZWIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAalD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE;QACT,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACjD,CAAC;IACF,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,EAAE,EACzB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,6BAA6B,EAC5C,YAAY,EAAE,OAAO,EACrB,cAAc,GAAE,cAAc,EAAO,GACpC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CA+DpC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAelD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE;QACT,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACjD,CAAC;IACF,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,EAAE,EACzB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,6BAA6B,EAC5C,YAAY,EAAE,OAAO,EACrB,cAAc,GAAE,cAAc,EAAO,EACrC,QAAQ,CAAC,EAAE,cAAc,GACxB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAyEpC;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,6BAA6B,EACvC,EACE,SAAS,EACT,aAAa,EACd,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,EACD,QAAQ,CAAC,EAAE,cAAc,GACxB,WAAW,CAeb"}
@@ -1,8 +1,9 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
3
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
3
+ import { ProtocolContractAddress, protocolContractsHash } from '@aztec/protocol-contracts';
4
4
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
5
5
  import { DatabasePublicStateSource, MerkleTreeId } from '@aztec/stdlib/trees';
6
+ import { AggregateTxValidator } from './aggregate_tx_validator.js';
6
7
  import { ArchiveCache } from './archive_cache.js';
7
8
  import { BlockHeaderTxValidator } from './block_header_validator.js';
8
9
  import { DataTxValidator } from './data_validator.js';
@@ -10,19 +11,20 @@ import { DoubleSpendTxValidator } from './double_spend_validator.js';
10
11
  import { GasTxValidator } from './gas_validator.js';
11
12
  import { MetadataTxValidator } from './metadata_validator.js';
12
13
  import { PhasesTxValidator } from './phases_validator.js';
14
+ import { SizeTxValidator } from './size_validator.js';
13
15
  import { TimestampTxValidator } from './timestamp_validator.js';
14
16
  import { TxPermittedValidator } from './tx_permitted_validator.js';
15
17
  import { TxProofValidator } from './tx_proof_validator.js';
16
- export function createTxMessageValidators(timestamp, blockNumber, worldStateSynchronizer, gasFees, l1ChainId, rollupVersion, protocolContractsHash, contractDataSource, proofVerifier, txsPermitted, allowedInSetup = []) {
18
+ export function createTxMessageValidators(timestamp, blockNumber, worldStateSynchronizer, gasFees, l1ChainId, rollupVersion, protocolContractsHash, contractDataSource, proofVerifier, txsPermitted, allowedInSetup = [], bindings) {
17
19
  const merkleTree = worldStateSynchronizer.getCommitted();
18
20
  return [
19
21
  {
20
22
  txsPermittedValidator: {
21
- validator: new TxPermittedValidator(txsPermitted),
23
+ validator: new TxPermittedValidator(txsPermitted, bindings),
22
24
  severity: PeerErrorSeverity.MidToleranceError
23
25
  },
24
26
  dataValidator: {
25
- validator: new DataTxValidator(),
27
+ validator: new DataTxValidator(bindings),
26
28
  severity: PeerErrorSeverity.HighToleranceError
27
29
  },
28
30
  metadataValidator: {
@@ -31,14 +33,14 @@ export function createTxMessageValidators(timestamp, blockNumber, worldStateSync
31
33
  rollupVersion: new Fr(rollupVersion),
32
34
  protocolContractsHash,
33
35
  vkTreeRoot: getVKTreeRoot()
34
- }),
36
+ }, bindings),
35
37
  severity: PeerErrorSeverity.HighToleranceError
36
38
  },
37
39
  timestampValidator: {
38
40
  validator: new TimestampTxValidator({
39
41
  timestamp,
40
42
  blockNumber
41
- }),
43
+ }, bindings),
42
44
  severity: PeerErrorSeverity.MidToleranceError
43
45
  },
44
46
  doubleSpendValidator: {
@@ -48,27 +50,35 @@ export function createTxMessageValidators(timestamp, blockNumber, worldStateSync
48
50
  const indices = await merkleTree.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers);
49
51
  return indices.map((index)=>index !== undefined);
50
52
  }
51
- }),
53
+ }, bindings),
52
54
  severity: PeerErrorSeverity.HighToleranceError
53
55
  },
54
56
  gasValidator: {
55
- validator: new GasTxValidator(new DatabasePublicStateSource(merkleTree), ProtocolContractAddress.FeeJuice, gasFees),
57
+ validator: new GasTxValidator(new DatabasePublicStateSource(merkleTree), ProtocolContractAddress.FeeJuice, gasFees, bindings),
56
58
  severity: PeerErrorSeverity.HighToleranceError
57
59
  },
58
60
  phasesValidator: {
59
- validator: new PhasesTxValidator(contractDataSource, allowedInSetup, timestamp),
61
+ validator: new PhasesTxValidator(contractDataSource, allowedInSetup, timestamp, bindings),
60
62
  severity: PeerErrorSeverity.MidToleranceError
61
63
  },
62
64
  blockHeaderValidator: {
63
- validator: new BlockHeaderTxValidator(new ArchiveCache(merkleTree)),
65
+ validator: new BlockHeaderTxValidator(new ArchiveCache(merkleTree), bindings),
64
66
  severity: PeerErrorSeverity.HighToleranceError
65
67
  }
66
68
  },
67
69
  {
68
70
  proofValidator: {
69
- validator: new TxProofValidator(proofVerifier),
71
+ validator: new TxProofValidator(proofVerifier, bindings),
70
72
  severity: PeerErrorSeverity.MidToleranceError
71
73
  }
72
74
  }
73
75
  ];
74
76
  }
77
+ export function createTxReqRespValidator(verifier, { l1ChainId, rollupVersion }, bindings) {
78
+ return new AggregateTxValidator(new MetadataTxValidator({
79
+ l1ChainId: new Fr(l1ChainId),
80
+ rollupVersion: new Fr(rollupVersion),
81
+ protocolContractsHash,
82
+ vkTreeRoot: getVKTreeRoot()
83
+ }, bindings), new SizeTxValidator(bindings), new DataTxValidator(bindings), new TxProofValidator(verifier, bindings));
84
+ }
@@ -0,0 +1,10 @@
1
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+ import { type Tx } from '@aztec/stdlib/tx';
3
+ export type FeePayerBalanceDelta = {
4
+ feeLimit: bigint;
5
+ claimAmount: bigint;
6
+ };
7
+ export declare function getTxFeeLimit(tx: Tx): bigint;
8
+ export declare function getFeePayerClaimAmount(tx: Tx, feeJuiceAddress: AztecAddress): Promise<bigint>;
9
+ export declare function getFeePayerBalanceDelta(tx: Tx, feeJuiceAddress: AztecAddress): Promise<FeePayerBalanceDelta>;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheWVyX2JhbGFuY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvZmVlX3BheWVyX2JhbGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFvQixNQUFNLGtCQUFrQixDQUFDO0FBRTdELE1BQU0sTUFBTSxvQkFBb0IsR0FBRztJQUNqQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLFdBQVcsRUFBRSxNQUFNLENBQUM7Q0FDckIsQ0FBQztBQUlGLHdCQUFnQixhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBRTVDO0FBRUQsd0JBQXNCLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBZ0JuRztBQUVELHdCQUFzQix1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBS2xIIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee_payer_balance.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/fee_payer_balance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,EAAoB,MAAM,kBAAkB,CAAC;AAE7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAE5C;AAED,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBnG;AAED,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAKlH"}
@@ -0,0 +1,20 @@
1
+ import { getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
2
+ import { FunctionSelector } from '@aztec/stdlib/abi';
3
+ import { TxExecutionPhase } from '@aztec/stdlib/tx';
4
+ const increasePublicBalanceSelectorPromise = FunctionSelector.fromSignature('_increase_public_balance((Field),u128)');
5
+ export function getTxFeeLimit(tx) {
6
+ return tx.data.constants.txContext.gasSettings.getFeeLimit().toBigInt();
7
+ }
8
+ export async function getFeePayerClaimAmount(tx, feeJuiceAddress) {
9
+ const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
10
+ const increasePublicBalanceSelector = await increasePublicBalanceSelectorPromise;
11
+ const feePayer = tx.data.feePayer;
12
+ const claimFunctionCall = setupFns.find((fn)=>fn.request.contractAddress.equals(feeJuiceAddress) && fn.request.msgSender.equals(feeJuiceAddress) && fn.calldata.length > 2 && fn.functionSelector.equals(increasePublicBalanceSelector) && fn.args[0].equals(feePayer.toField()) && !fn.request.isStaticCall);
13
+ return claimFunctionCall ? claimFunctionCall.args[1].toBigInt() : 0n;
14
+ }
15
+ export async function getFeePayerBalanceDelta(tx, feeJuiceAddress) {
16
+ return {
17
+ feeLimit: getTxFeeLimit(tx),
18
+ claimAmount: await getFeePayerClaimAmount(tx, feeJuiceAddress)
19
+ };
20
+ }
@@ -1,11 +1,12 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
2
3
  import { GasFees } from '@aztec/stdlib/gas';
3
4
  import type { PublicStateSource } from '@aztec/stdlib/trees';
4
5
  import { type Tx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
5
6
  export declare class GasTxValidator implements TxValidator<Tx> {
6
7
  #private;
7
- constructor(publicDataSource: PublicStateSource, feeJuiceAddress: AztecAddress, gasFees: GasFees);
8
+ constructor(publicDataSource: PublicStateSource, feeJuiceAddress: AztecAddress, gasFees: GasFees, bindings?: LoggerBindings);
8
9
  validateTx(tx: Tx): Promise<TxValidationResult>;
9
10
  validateTxFee(tx: Tx): Promise<TxValidationResult>;
10
11
  }
11
- //# sourceMappingURL=gas_validator.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9nYXNfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQU8sT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBS0wsS0FBSyxFQUFFLEVBQ1AsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxXQUFXLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFJMUIscUJBQWEsY0FBZSxZQUFXLFdBQVcsQ0FBQyxFQUFFLENBQUM7O0lBTXBELFlBQ0UsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQ25DLGVBQWUsRUFBRSxZQUFZLEVBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFNMUI7SUFFSyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FTcEQ7SUFtRFksYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBeUI5RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"gas_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/gas_validator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAO,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAKL,KAAK,EAAE,EAEP,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,cAAe,YAAW,WAAW,CAAC,EAAE,CAAC;;gBAMxC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;IAM1F,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4DxC,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0ChE"}
1
+ {"version":3,"file":"gas_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/gas_validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAO,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAKL,KAAK,EAAE,EACP,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAI1B,qBAAa,cAAe,YAAW,WAAW,CAAC,EAAE,CAAC;;IAMpD,YACE,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,cAAc,EAM1B;IAEK,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CASpD;IAmDY,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyB9D;CACF"}
@@ -1,16 +1,16 @@
1
1
  import { AVM_MAX_PROCESSABLE_L2_GAS, FIXED_DA_GAS, FIXED_L2_GAS } from '@aztec/constants';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
4
- import { getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
5
- import { FunctionSelector } from '@aztec/stdlib/abi';
6
4
  import { Gas } from '@aztec/stdlib/gas';
7
- import { TX_ERROR_GAS_LIMIT_TOO_HIGH, TX_ERROR_INSUFFICIENT_FEE_PAYER_BALANCE, TX_ERROR_INSUFFICIENT_FEE_PER_GAS, TX_ERROR_INSUFFICIENT_GAS_LIMIT, TxExecutionPhase } from '@aztec/stdlib/tx';
5
+ import { TX_ERROR_GAS_LIMIT_TOO_HIGH, TX_ERROR_INSUFFICIENT_FEE_PAYER_BALANCE, TX_ERROR_INSUFFICIENT_FEE_PER_GAS, TX_ERROR_INSUFFICIENT_GAS_LIMIT } from '@aztec/stdlib/tx';
6
+ import { getFeePayerClaimAmount, getTxFeeLimit } from './fee_payer_balance.js';
8
7
  export class GasTxValidator {
9
- #log = createLogger('sequencer:tx_validator:tx_gas');
8
+ #log;
10
9
  #publicDataSource;
11
10
  #feeJuiceAddress;
12
11
  #gasFees;
13
- constructor(publicDataSource, feeJuiceAddress, gasFees){
12
+ constructor(publicDataSource, feeJuiceAddress, gasFees, bindings){
13
+ this.#log = createLogger('sequencer:tx_validator:tx_gas', bindings);
14
14
  this.#publicDataSource = publicDataSource;
15
15
  this.#feeJuiceAddress = feeJuiceAddress;
16
16
  this.#gasFees = gasFees;
@@ -84,22 +84,17 @@ export class GasTxValidator {
84
84
  async validateTxFee(tx) {
85
85
  const feePayer = tx.data.feePayer;
86
86
  // Compute the maximum fee that this tx may pay, based on its gasLimits and maxFeePerGas
87
- const feeLimit = tx.data.constants.txContext.gasSettings.getFeeLimit();
87
+ const feeLimit = getTxFeeLimit(tx);
88
88
  // Read current balance of the feePayer
89
89
  const initialBalance = await this.#publicDataSource.storageRead(this.#feeJuiceAddress, await computeFeePayerBalanceStorageSlot(feePayer));
90
90
  // If there is a claim in this tx that increases the fee payer balance in Fee Juice, add it to balance
91
- const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
92
- const increasePublicBalanceSelector = await FunctionSelector.fromSignature('_increase_public_balance((Field),u128)');
93
- // Arguments of the claim function call:
94
- // - args[0]: Amount recipient.
95
- // - args[1]: Amount being claimed.
96
- const claimFunctionCall = setupFns.find((fn)=>fn.request.contractAddress.equals(this.#feeJuiceAddress) && fn.request.msgSender.equals(this.#feeJuiceAddress) && fn.calldata.length > 2 && fn.functionSelector.equals(increasePublicBalanceSelector) && fn.args[0].equals(feePayer.toField()) && !fn.request.isStaticCall);
97
- const balance = claimFunctionCall ? initialBalance.add(claimFunctionCall.args[1]) : initialBalance;
98
- if (balance.lt(feeLimit)) {
91
+ const claimAmount = await getFeePayerClaimAmount(tx, this.#feeJuiceAddress);
92
+ const balance = initialBalance.toBigInt() + claimAmount;
93
+ if (balance < feeLimit) {
99
94
  this.#log.verbose(`Rejecting transaction due to not enough fee payer balance`, {
100
95
  feePayer,
101
- balance: balance.toBigInt(),
102
- feeLimit: feeLimit.toBigInt()
96
+ balance,
97
+ feeLimit
103
98
  });
104
99
  return {
105
100
  result: 'invalid',
@@ -11,4 +11,5 @@ export * from './allowed_public_setup.js';
11
11
  export * from './archive_cache.js';
12
12
  export * from './tx_permitted_validator.js';
13
13
  export * from './timestamp_validator.js';
14
- //# sourceMappingURL=index.d.ts.map
14
+ export * from './size_validator.js';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDIn0=