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

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 (604) 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 +10 -10
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +45 -19
  7. package/dest/client/index.d.ts +1 -1
  8. package/dest/client/interface.d.ts +61 -33
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +52 -83
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +612 -318
  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 +304 -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 +95 -64
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +42 -21
  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/errors/tx-pool.error.d.ts +8 -0
  30. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  31. package/dest/errors/tx-pool.error.js +9 -0
  32. package/dest/index.d.ts +2 -1
  33. package/dest/index.d.ts.map +1 -1
  34. package/dest/index.js +1 -0
  35. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +114 -57
  36. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  37. package/dest/mem_pools/attestation_pool/attestation_pool.js +441 -3
  38. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  40. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +529 -288
  41. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  42. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  43. package/dest/mem_pools/attestation_pool/index.js +1 -2
  44. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  45. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  46. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  47. package/dest/mem_pools/index.d.ts +3 -2
  48. package/dest/mem_pools/index.d.ts.map +1 -1
  49. package/dest/mem_pools/index.js +1 -1
  50. package/dest/mem_pools/instrumentation.d.ts +9 -1
  51. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  52. package/dest/mem_pools/instrumentation.js +37 -10
  53. package/dest/mem_pools/interface.d.ts +6 -7
  54. package/dest/mem_pools/interface.d.ts.map +1 -1
  55. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +33 -58
  56. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  58. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  59. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  60. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  61. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  62. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  63. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  64. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  65. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  66. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  67. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  68. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  69. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  70. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  71. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  72. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  73. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  74. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  75. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  76. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  77. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  78. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  79. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  80. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  81. package/dest/mem_pools/tx_pool/index.js +0 -1
  82. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  83. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  84. package/dest/mem_pools/tx_pool/priority.js +6 -1
  85. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  86. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  87. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  88. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  89. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  90. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  91. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  93. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  94. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  96. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  97. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  99. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  100. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  102. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  103. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +93 -0
  105. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  106. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  108. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  109. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  111. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +174 -0
  112. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  114. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  115. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  117. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  118. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  119. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  120. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  121. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  122. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  123. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  124. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  125. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +73 -0
  126. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  127. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  128. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  129. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  130. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  131. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  132. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  133. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  134. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  135. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +211 -0
  136. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  137. package/dest/mem_pools/tx_pool_v2/interfaces.js +9 -0
  138. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +119 -0
  139. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  140. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +193 -0
  141. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  142. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  143. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  144. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  145. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  146. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +354 -0
  147. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +60 -0
  148. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  149. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +161 -0
  150. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +77 -0
  151. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  152. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +905 -0
  153. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -6
  154. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/attestation_validator/attestation_validator.js +57 -24
  156. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  157. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  158. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  159. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  160. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  161. package/dest/msg_validators/attestation_validator/index.js +1 -0
  162. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  163. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  164. package/dest/msg_validators/clock_tolerance.js +37 -0
  165. package/dest/msg_validators/index.d.ts +2 -2
  166. package/dest/msg_validators/index.d.ts.map +1 -1
  167. package/dest/msg_validators/index.js +1 -1
  168. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  169. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  170. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  171. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  172. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  173. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  174. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  175. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  176. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  177. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  178. package/dest/msg_validators/proposal_validator/index.js +3 -0
  179. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  180. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  181. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  182. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  183. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  184. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  185. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  186. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  187. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  188. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  189. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  190. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  191. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  192. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  193. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  194. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  195. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  196. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  197. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  198. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  199. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  200. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  201. package/dest/msg_validators/tx_validator/factory.d.ts +120 -6
  202. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  203. package/dest/msg_validators/tx_validator/factory.js +228 -57
  204. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  205. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  206. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  207. package/dest/msg_validators/tx_validator/gas_validator.d.ts +59 -3
  208. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  209. package/dest/msg_validators/tx_validator/gas_validator.js +84 -52
  210. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  211. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  212. package/dest/msg_validators/tx_validator/index.js +2 -0
  213. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  214. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  215. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  216. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  217. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  218. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  219. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  220. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  221. package/dest/msg_validators/tx_validator/phases_validator.js +6 -4
  222. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  223. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  224. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  225. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  226. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  227. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  228. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  229. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  230. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  231. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  232. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  233. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  234. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  235. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  236. package/dest/services/data_store.d.ts +1 -1
  237. package/dest/services/data_store.d.ts.map +1 -1
  238. package/dest/services/data_store.js +10 -6
  239. package/dest/services/discv5/discV5_service.d.ts +1 -1
  240. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  241. package/dest/services/discv5/discV5_service.js +1 -1
  242. package/dest/services/dummy_service.d.ts +28 -4
  243. package/dest/services/dummy_service.d.ts.map +1 -1
  244. package/dest/services/dummy_service.js +49 -1
  245. package/dest/services/encoding.d.ts +3 -3
  246. package/dest/services/encoding.d.ts.map +1 -1
  247. package/dest/services/encoding.js +16 -14
  248. package/dest/services/gossipsub/index.d.ts +3 -0
  249. package/dest/services/gossipsub/index.d.ts.map +1 -0
  250. package/dest/services/gossipsub/index.js +2 -0
  251. package/dest/services/gossipsub/scoring.d.ts +21 -3
  252. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  253. package/dest/services/gossipsub/scoring.js +24 -7
  254. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  255. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  256. package/dest/services/gossipsub/topic_score_params.js +346 -0
  257. package/dest/services/index.d.ts +2 -1
  258. package/dest/services/index.d.ts.map +1 -1
  259. package/dest/services/index.js +1 -0
  260. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  261. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  262. package/dest/services/libp2p/instrumentation.js +36 -71
  263. package/dest/services/libp2p/libp2p_service.d.ts +112 -93
  264. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  265. package/dest/services/libp2p/libp2p_service.js +1158 -342
  266. package/dest/services/peer-manager/interface.d.ts +1 -1
  267. package/dest/services/peer-manager/metrics.d.ts +9 -2
  268. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  269. package/dest/services/peer-manager/metrics.js +39 -16
  270. package/dest/services/peer-manager/peer_manager.d.ts +2 -33
  271. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  272. package/dest/services/peer-manager/peer_manager.js +6 -12
  273. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  274. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  275. package/dest/services/peer-manager/peer_scoring.js +68 -4
  276. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +48 -0
  277. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  278. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +539 -0
  279. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  280. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  281. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  282. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +46 -0
  283. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  284. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  285. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +34 -0
  286. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  287. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +130 -0
  288. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +60 -0
  289. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  290. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +173 -0
  291. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  292. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  293. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  294. package/dest/services/reqresp/config.d.ts +1 -1
  295. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  296. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  297. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  298. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  299. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  300. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  301. package/dest/services/reqresp/constants.d.ts +12 -0
  302. package/dest/services/reqresp/constants.d.ts.map +1 -0
  303. package/dest/services/reqresp/constants.js +7 -0
  304. package/dest/services/reqresp/index.d.ts +1 -1
  305. package/dest/services/reqresp/interface.d.ts +13 -2
  306. package/dest/services/reqresp/interface.d.ts.map +1 -1
  307. package/dest/services/reqresp/interface.js +16 -2
  308. package/dest/services/reqresp/metrics.d.ts +6 -5
  309. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  310. package/dest/services/reqresp/metrics.js +17 -21
  311. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  312. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  313. package/dest/services/reqresp/protocols/auth.js +2 -2
  314. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  315. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  316. package/dest/services/reqresp/protocols/block.js +3 -2
  317. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  318. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  319. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  320. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  321. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  322. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  323. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +30 -9
  324. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  325. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +60 -14
  326. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  327. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  328. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  329. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  330. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  331. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  332. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  333. package/dest/services/reqresp/protocols/status.js +7 -3
  334. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  335. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  336. package/dest/services/reqresp/protocols/tx.js +20 -0
  337. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  338. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  339. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  340. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  341. package/dest/services/reqresp/reqresp.d.ts +6 -41
  342. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  343. package/dest/services/reqresp/reqresp.js +473 -51
  344. package/dest/services/reqresp/status.d.ts +2 -2
  345. package/dest/services/reqresp/status.d.ts.map +1 -1
  346. package/dest/services/service.d.ts +56 -4
  347. package/dest/services/service.d.ts.map +1 -1
  348. package/dest/services/tx_collection/config.d.ts +22 -1
  349. package/dest/services/tx_collection/config.d.ts.map +1 -1
  350. package/dest/services/tx_collection/config.js +56 -2
  351. package/dest/services/tx_collection/fast_tx_collection.d.ts +10 -12
  352. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  353. package/dest/services/tx_collection/fast_tx_collection.js +71 -44
  354. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  355. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  356. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  357. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  358. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  359. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  360. package/dest/services/tx_collection/index.d.ts +3 -1
  361. package/dest/services/tx_collection/index.d.ts.map +1 -1
  362. package/dest/services/tx_collection/index.js +2 -0
  363. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  364. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  365. package/dest/services/tx_collection/instrumentation.js +11 -13
  366. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  367. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  368. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  369. package/dest/services/tx_collection/proposal_tx_collector.d.ts +49 -0
  370. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  371. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  372. package/dest/services/tx_collection/slow_tx_collection.d.ts +9 -6
  373. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  374. package/dest/services/tx_collection/slow_tx_collection.js +61 -26
  375. package/dest/services/tx_collection/tx_collection.d.ts +31 -18
  376. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  377. package/dest/services/tx_collection/tx_collection.js +79 -7
  378. package/dest/services/tx_collection/tx_collection_sink.d.ts +19 -9
  379. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  380. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  381. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  382. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  383. package/dest/services/tx_collection/tx_source.js +19 -2
  384. package/dest/services/tx_file_store/config.d.ts +16 -0
  385. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  386. package/dest/services/tx_file_store/config.js +22 -0
  387. package/dest/services/tx_file_store/index.d.ts +4 -0
  388. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  389. package/dest/services/tx_file_store/index.js +3 -0
  390. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  391. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  392. package/dest/services/tx_file_store/instrumentation.js +29 -0
  393. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  394. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  395. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  396. package/dest/services/tx_provider.d.ts +7 -5
  397. package/dest/services/tx_provider.d.ts.map +1 -1
  398. package/dest/services/tx_provider.js +20 -10
  399. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  400. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  401. package/dest/services/tx_provider_instrumentation.js +14 -14
  402. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  403. package/dest/test-helpers/get-ports.d.ts +1 -1
  404. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  405. package/dest/test-helpers/index.d.ts +3 -1
  406. package/dest/test-helpers/index.d.ts.map +1 -1
  407. package/dest/test-helpers/index.js +2 -0
  408. package/dest/test-helpers/make-enrs.d.ts +1 -1
  409. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  410. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  411. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  412. package/dest/test-helpers/mock-pubsub.d.ts +32 -6
  413. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  414. package/dest/test-helpers/mock-pubsub.js +105 -4
  415. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  416. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  417. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  418. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  419. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  420. package/dest/test-helpers/reqresp-nodes.js +4 -3
  421. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  422. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  423. package/dest/test-helpers/test_tx_provider.js +41 -0
  424. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  425. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  426. package/dest/test-helpers/testbench-utils.js +366 -0
  427. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  428. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  429. package/dest/testbench/p2p_client_testbench_worker.js +225 -127
  430. package/dest/testbench/parse_log_file.d.ts +1 -1
  431. package/dest/testbench/testbench.d.ts +1 -1
  432. package/dest/testbench/worker_client_manager.d.ts +51 -6
  433. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  434. package/dest/testbench/worker_client_manager.js +226 -39
  435. package/dest/types/index.d.ts +1 -1
  436. package/dest/util.d.ts +3 -2
  437. package/dest/util.d.ts.map +1 -1
  438. package/dest/util.js +11 -2
  439. package/dest/versioning.d.ts +1 -1
  440. package/package.json +19 -18
  441. package/src/bootstrap/bootstrap.ts +7 -4
  442. package/src/client/factory.ts +85 -43
  443. package/src/client/interface.ts +74 -34
  444. package/src/client/p2p_client.ts +281 -383
  445. package/src/client/test/tx_proposal_collector/README.md +227 -0
  446. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +345 -0
  447. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  448. package/src/config.ts +77 -30
  449. package/src/errors/attestation-pool.error.ts +13 -0
  450. package/src/errors/tx-pool.error.ts +12 -0
  451. package/src/index.ts +1 -0
  452. package/src/mem_pools/attestation_pool/attestation_pool.ts +514 -58
  453. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +614 -309
  454. package/src/mem_pools/attestation_pool/index.ts +9 -2
  455. package/src/mem_pools/attestation_pool/mocks.ts +22 -15
  456. package/src/mem_pools/index.ts +4 -1
  457. package/src/mem_pools/instrumentation.ts +48 -10
  458. package/src/mem_pools/interface.ts +5 -7
  459. package/src/mem_pools/tx_pool/README.md +270 -0
  460. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  461. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  462. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  463. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  464. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  465. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  466. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  467. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  468. package/src/mem_pools/tx_pool/index.ts +0 -1
  469. package/src/mem_pools/tx_pool/priority.ts +8 -1
  470. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  471. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  472. package/src/mem_pools/tx_pool_v2/README.md +275 -0
  473. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  474. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  475. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  476. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  477. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +121 -0
  478. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  479. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  480. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +209 -0
  481. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  482. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  483. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  484. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +90 -0
  485. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +31 -0
  486. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  487. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  488. package/src/mem_pools/tx_pool_v2/interfaces.ts +242 -0
  489. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +297 -0
  490. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  491. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +444 -0
  492. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +223 -0
  493. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1083 -0
  494. package/src/msg_validators/attestation_validator/attestation_validator.ts +45 -32
  495. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  496. package/src/msg_validators/attestation_validator/index.ts +1 -0
  497. package/src/msg_validators/clock_tolerance.ts +51 -0
  498. package/src/msg_validators/index.ts +1 -1
  499. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  500. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  501. package/src/msg_validators/proposal_validator/index.ts +3 -0
  502. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  503. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  504. package/src/msg_validators/tx_validator/README.md +115 -0
  505. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  506. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  507. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  508. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  509. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  510. package/src/msg_validators/tx_validator/factory.ts +375 -57
  511. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  512. package/src/msg_validators/tx_validator/gas_validator.ts +106 -54
  513. package/src/msg_validators/tx_validator/index.ts +2 -0
  514. package/src/msg_validators/tx_validator/metadata_validator.ts +19 -8
  515. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  516. package/src/msg_validators/tx_validator/phases_validator.ts +8 -4
  517. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  518. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  519. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  520. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  521. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  522. package/src/services/data_store.ts +10 -7
  523. package/src/services/discv5/discV5_service.ts +1 -1
  524. package/src/services/dummy_service.ts +65 -2
  525. package/src/services/encoding.ts +13 -12
  526. package/src/services/gossipsub/README.md +641 -0
  527. package/src/services/gossipsub/index.ts +2 -0
  528. package/src/services/gossipsub/scoring.ts +29 -5
  529. package/src/services/gossipsub/topic_score_params.ts +487 -0
  530. package/src/services/index.ts +1 -0
  531. package/src/services/libp2p/instrumentation.ts +39 -71
  532. package/src/services/libp2p/libp2p_service.ts +883 -364
  533. package/src/services/peer-manager/metrics.ts +44 -16
  534. package/src/services/peer-manager/peer_manager.ts +7 -4
  535. package/src/services/peer-manager/peer_scoring.ts +70 -3
  536. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  537. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +678 -0
  538. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  539. package/src/services/reqresp/batch-tx-requester/interface.ts +53 -0
  540. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +161 -0
  541. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +244 -0
  542. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  543. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  544. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  545. package/src/services/reqresp/constants.ts +14 -0
  546. package/src/services/reqresp/interface.ts +30 -2
  547. package/src/services/reqresp/metrics.ts +36 -27
  548. package/src/services/reqresp/protocols/auth.ts +2 -2
  549. package/src/services/reqresp/protocols/block.ts +3 -2
  550. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  551. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  552. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +75 -10
  553. package/src/services/reqresp/protocols/status.ts +16 -12
  554. package/src/services/reqresp/protocols/tx.ts +23 -2
  555. package/src/services/reqresp/reqresp.ts +82 -23
  556. package/src/services/service.ts +73 -5
  557. package/src/services/tx_collection/config.ts +84 -2
  558. package/src/services/tx_collection/fast_tx_collection.ts +96 -49
  559. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  560. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  561. package/src/services/tx_collection/index.ts +6 -0
  562. package/src/services/tx_collection/instrumentation.ts +11 -13
  563. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  564. package/src/services/tx_collection/proposal_tx_collector.ts +113 -0
  565. package/src/services/tx_collection/slow_tx_collection.ts +70 -36
  566. package/src/services/tx_collection/tx_collection.ts +122 -24
  567. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  568. package/src/services/tx_collection/tx_source.ts +22 -3
  569. package/src/services/tx_file_store/config.ts +37 -0
  570. package/src/services/tx_file_store/index.ts +3 -0
  571. package/src/services/tx_file_store/instrumentation.ts +36 -0
  572. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  573. package/src/services/tx_provider.ts +29 -12
  574. package/src/services/tx_provider_instrumentation.ts +24 -14
  575. package/src/test-helpers/index.ts +2 -0
  576. package/src/test-helpers/make-test-p2p-clients.ts +3 -5
  577. package/src/test-helpers/mock-pubsub.ts +147 -10
  578. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  579. package/src/test-helpers/reqresp-nodes.ts +5 -7
  580. package/src/test-helpers/test_tx_provider.ts +64 -0
  581. package/src/test-helpers/testbench-utils.ts +430 -0
  582. package/src/testbench/p2p_client_testbench_worker.ts +350 -125
  583. package/src/testbench/worker_client_manager.ts +304 -42
  584. package/src/util.ts +19 -3
  585. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -30
  586. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  587. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -190
  588. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -25
  589. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  590. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -197
  591. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  592. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  593. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  594. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  595. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  596. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  597. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  598. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  599. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  600. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -256
  601. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -253
  602. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  603. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  604. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,109 +1,427 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ /**
2
+ * Transaction validator factories for each tx entry point.
3
+ *
4
+ * Unsolicited transactions (gossip and RPC) are fully validated before acceptance.
5
+ * Transactions received via req/resp or block proposals are only checked for
6
+ * well-formedness because we must include them for block re-execution — they may
7
+ * ultimately be invalid, which is caught during block building and reported as
8
+ * part of block validation/attestation. See the README in this directory for the
9
+ * full validation strategy.
10
+ *
11
+ * 1. **Gossip** — full validation in two stages with a pool pre-check in between.
12
+ * Stage 1 (fast): metadata, data, timestamps, double-spend, gas, phases, block header.
13
+ * Pool pre-check: `canAddPendingTx` — skips proof verification if pool would reject.
14
+ * Stage 2 (slow): proof verification.
15
+ * Orchestrated by `handleGossipedTx` in `libp2p_service.ts`.
16
+ *
17
+ * 2. **JSON-RPC** — full validation including all state-dependent checks.
18
+ * Proof verification and fee enforcement are configurable for testing purposes.
19
+ *
20
+ * 3. **Req/resp & block proposals** — well-formedness checks only (metadata, size,
21
+ * data, proof). Stored for re-execution; validity against state is not checked here.
22
+ *
23
+ * 4. **Block building** — re-validates against current state immediately before
24
+ * sequencing. Catches invalid txs that entered via req/resp or block proposals.
25
+ * Proof and data checks are skipped since they were verified on entry.
26
+ *
27
+ * 5. **Pending pool migration** — when unmined txs (e.g. from req/resp or block
28
+ * proposals) are migrated to the pending pool, the pool runs the state-dependent
29
+ * checks they missed: double-spend, block header, gas limits, and timestamps.
30
+ * This runs on every tx potentially entering the pending pool.
31
+ */
32
+ import { BlockNumber } from '@aztec/foundation/branded-types';
33
+ import { Fr } from '@aztec/foundation/curves/bn254';
34
+ import type { LoggerBindings } from '@aztec/foundation/log';
2
35
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
3
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
36
+ import { ProtocolContractAddress, protocolContractsHash } from '@aztec/protocol-contracts';
37
+ import type { BlockHash } from '@aztec/stdlib/block';
4
38
  import type { ContractDataSource } from '@aztec/stdlib/contract';
5
39
  import type { GasFees } from '@aztec/stdlib/gas';
6
40
  import type {
7
41
  AllowedElement,
8
42
  ClientProtocolCircuitVerifier,
43
+ MerkleTreeReadOperations,
44
+ PublicProcessorValidator,
9
45
  WorldStateSynchronizer,
10
46
  } from '@aztec/stdlib/interfaces/server';
11
47
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
12
- import { DatabasePublicStateSource, MerkleTreeId } from '@aztec/stdlib/trees';
13
- import type { Tx, TxValidationResult } from '@aztec/stdlib/tx';
48
+ import { DatabasePublicStateSource, MerkleTreeId, type PublicStateSource } from '@aztec/stdlib/trees';
49
+ import type { GlobalVariables, Tx, TxValidationResult, TxValidator } from '@aztec/stdlib/tx';
14
50
  import type { UInt64 } from '@aztec/stdlib/types';
15
51
 
52
+ import type { TxMetaData } from '../../mem_pools/tx_pool_v2/tx_metadata.js';
53
+ import { AggregateTxValidator } from './aggregate_tx_validator.js';
16
54
  import { ArchiveCache } from './archive_cache.js';
17
- import { BlockHeaderTxValidator } from './block_header_validator.js';
55
+ import { type ArchiveSource, BlockHeaderTxValidator } from './block_header_validator.js';
18
56
  import { DataTxValidator } from './data_validator.js';
19
- import { DoubleSpendTxValidator } from './double_spend_validator.js';
20
- import { GasTxValidator } from './gas_validator.js';
57
+ import { DoubleSpendTxValidator, type NullifierSource } from './double_spend_validator.js';
58
+ import { GasLimitsValidator, GasTxValidator } from './gas_validator.js';
21
59
  import { MetadataTxValidator } from './metadata_validator.js';
60
+ import { NullifierCache } from './nullifier_cache.js';
22
61
  import { PhasesTxValidator } from './phases_validator.js';
62
+ import { SizeTxValidator } from './size_validator.js';
23
63
  import { TimestampTxValidator } from './timestamp_validator.js';
24
64
  import { TxPermittedValidator } from './tx_permitted_validator.js';
25
65
  import { TxProofValidator } from './tx_proof_validator.js';
26
66
 
27
- export interface MessageValidator {
67
+ /**
68
+ * A validator paired with a peer penalty severity.
69
+ * Used for gossip validation where each validator's failure triggers a peer penalization
70
+ * with the associated severity level.
71
+ */
72
+ export interface TransactionValidator {
28
73
  validator: {
29
74
  validateTx(tx: Tx): Promise<TxValidationResult>;
30
75
  };
31
76
  severity: PeerErrorSeverity;
32
77
  }
33
78
 
34
- export function createTxMessageValidators(
79
+ /**
80
+ * First stage of gossip validation — fast checks run before the pool pre-check.
81
+ *
82
+ * If any validator fails, the peer is penalized and the tx is rejected immediately,
83
+ * without consulting the pool or running proof verification.
84
+ *
85
+ * The `doubleSpendValidator` failure is special-cased by the caller (`handleGossipedTx`)
86
+ * to determine severity based on how recently the nullifier appeared.
87
+ */
88
+ export function createFirstStageTxValidationsForGossipedTransactions(
35
89
  timestamp: UInt64,
36
- blockNumber: number,
90
+ blockNumber: BlockNumber,
37
91
  worldStateSynchronizer: WorldStateSynchronizer,
38
92
  gasFees: GasFees,
39
93
  l1ChainId: number,
40
94
  rollupVersion: number,
41
95
  protocolContractsHash: Fr,
42
96
  contractDataSource: ContractDataSource,
43
- proofVerifier: ClientProtocolCircuitVerifier,
44
97
  txsPermitted: boolean,
45
98
  allowedInSetup: AllowedElement[] = [],
46
- ): Record<string, MessageValidator>[] {
99
+ bindings?: LoggerBindings,
100
+ ): Record<string, TransactionValidator> {
47
101
  const merkleTree = worldStateSynchronizer.getCommitted();
48
102
 
49
- return [
50
- {
51
- txsPermittedValidator: {
52
- validator: new TxPermittedValidator(txsPermitted),
53
- severity: PeerErrorSeverity.MidToleranceError,
54
- },
55
- dataValidator: {
56
- validator: new DataTxValidator(),
57
- severity: PeerErrorSeverity.HighToleranceError,
58
- },
59
- metadataValidator: {
60
- validator: new MetadataTxValidator({
103
+ return {
104
+ timestampValidator: {
105
+ validator: new TimestampTxValidator<Tx>(
106
+ {
107
+ timestamp,
108
+ blockNumber,
109
+ },
110
+ bindings,
111
+ ),
112
+ severity: PeerErrorSeverity.HighToleranceError,
113
+ },
114
+ txsPermittedValidator: {
115
+ validator: new TxPermittedValidator(txsPermitted, bindings),
116
+ severity: PeerErrorSeverity.MidToleranceError,
117
+ },
118
+ txSizeValidator: {
119
+ validator: new SizeTxValidator(bindings),
120
+ severity: PeerErrorSeverity.MidToleranceError,
121
+ },
122
+ metadataValidator: {
123
+ validator: new MetadataTxValidator(
124
+ {
61
125
  l1ChainId: new Fr(l1ChainId),
62
126
  rollupVersion: new Fr(rollupVersion),
63
127
  protocolContractsHash,
64
128
  vkTreeRoot: getVKTreeRoot(),
65
- }),
66
- severity: PeerErrorSeverity.HighToleranceError,
67
- },
68
- timestampValidator: {
69
- validator: new TimestampTxValidator<Tx>({
70
- timestamp,
71
- blockNumber,
72
- }),
73
- severity: PeerErrorSeverity.MidToleranceError,
74
- },
75
- doubleSpendValidator: {
76
- validator: new DoubleSpendTxValidator({
129
+ },
130
+ bindings,
131
+ ),
132
+ severity: PeerErrorSeverity.MidToleranceError,
133
+ },
134
+ phasesValidator: {
135
+ validator: new PhasesTxValidator(contractDataSource, allowedInSetup, timestamp, bindings),
136
+ severity: PeerErrorSeverity.MidToleranceError,
137
+ },
138
+ blockHeaderValidator: {
139
+ validator: new BlockHeaderTxValidator(new ArchiveCache(merkleTree), bindings),
140
+ severity: PeerErrorSeverity.HighToleranceError,
141
+ },
142
+ doubleSpendValidator: {
143
+ validator: new DoubleSpendTxValidator(
144
+ {
77
145
  nullifiersExist: async (nullifiers: Buffer[]) => {
78
146
  const merkleTree = worldStateSynchronizer.getCommitted();
79
147
  const indices = await merkleTree.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers);
80
148
  return indices.map(index => index !== undefined);
81
149
  },
82
- }),
83
- severity: PeerErrorSeverity.HighToleranceError,
150
+ },
151
+ bindings,
152
+ ),
153
+ severity: PeerErrorSeverity.MidToleranceError, // This is handled specifically at the point of rejection by considering a recent window where it may have been valid
154
+ },
155
+ gasValidator: {
156
+ validator: new GasTxValidator(
157
+ new DatabasePublicStateSource(merkleTree),
158
+ ProtocolContractAddress.FeeJuice,
159
+ gasFees,
160
+ bindings,
161
+ ),
162
+ severity: PeerErrorSeverity.MidToleranceError,
163
+ },
164
+ dataValidator: {
165
+ validator: new DataTxValidator(bindings),
166
+ severity: PeerErrorSeverity.MidToleranceError,
167
+ },
168
+ };
169
+ }
170
+
171
+ /**
172
+ * Second stage of gossip validation — expensive proof verification.
173
+ *
174
+ * Only runs after the first stage passes AND `canAddPendingTx` confirms the pool would
175
+ * accept the tx. This avoids wasting CPU on proof verification for txs the pool would reject
176
+ * (e.g., duplicates, insufficient balance, pool full).
177
+ */
178
+ export function createSecondStageTxValidationsForGossipedTransactions(
179
+ proofVerifier: ClientProtocolCircuitVerifier,
180
+ bindings?: LoggerBindings,
181
+ ): Record<string, TransactionValidator> {
182
+ return {
183
+ proofValidator: {
184
+ validator: new TxProofValidator(proofVerifier, bindings),
185
+ severity: PeerErrorSeverity.LowToleranceError,
186
+ },
187
+ };
188
+ }
189
+
190
+ /**
191
+ * Well-formedness checks only: metadata, size, data, and proof.
192
+ * Used for req/resp and block proposal txs. These txs must be accepted for block
193
+ * re-execution even though they may be invalid against current state — that is
194
+ * caught later by the block building validator.
195
+ */
196
+ function createTxValidatorForMinimumTxIntegrityChecks(
197
+ verifier: ClientProtocolCircuitVerifier,
198
+ {
199
+ l1ChainId,
200
+ rollupVersion,
201
+ }: {
202
+ l1ChainId: number;
203
+ rollupVersion: number;
204
+ },
205
+ bindings?: LoggerBindings,
206
+ ): TxValidator {
207
+ return new AggregateTxValidator(
208
+ new MetadataTxValidator(
209
+ {
210
+ l1ChainId: new Fr(l1ChainId),
211
+ rollupVersion: new Fr(rollupVersion),
212
+ protocolContractsHash,
213
+ vkTreeRoot: getVKTreeRoot(),
84
214
  },
85
- gasValidator: {
86
- validator: new GasTxValidator(
87
- new DatabasePublicStateSource(merkleTree),
88
- ProtocolContractAddress.FeeJuice,
89
- gasFees,
90
- ),
91
- severity: PeerErrorSeverity.HighToleranceError,
215
+ bindings,
216
+ ),
217
+ new SizeTxValidator(bindings),
218
+ new DataTxValidator(bindings),
219
+ new TxProofValidator(verifier, bindings),
220
+ );
221
+ }
222
+
223
+ /**
224
+ * Validators for txs received via req/resp or filestores.
225
+ * Checks well-formedness only — we must accept these for re-execution even if they
226
+ * are invalid against current state. State-dependent checks happen when the tx
227
+ * enters the pending pool or during block building.
228
+ */
229
+ export function createTxValidatorForReqResponseReceivedTxs(
230
+ verifier: ClientProtocolCircuitVerifier,
231
+ {
232
+ l1ChainId,
233
+ rollupVersion,
234
+ }: {
235
+ l1ChainId: number;
236
+ rollupVersion: number;
237
+ },
238
+ bindings?: LoggerBindings,
239
+ ): TxValidator {
240
+ return createTxValidatorForMinimumTxIntegrityChecks(verifier, { l1ChainId, rollupVersion }, bindings);
241
+ }
242
+
243
+ /**
244
+ * Validators for txs received in block proposals.
245
+ * Same as req/resp — well-formedness only. We must store these for block
246
+ * re-execution; their validity against state is checked during block building.
247
+ */
248
+ export function createTxValidatorForBlockProposalReceivedTxs(
249
+ verifier: ClientProtocolCircuitVerifier,
250
+ {
251
+ l1ChainId,
252
+ rollupVersion,
253
+ }: {
254
+ l1ChainId: number;
255
+ rollupVersion: number;
256
+ },
257
+ bindings?: LoggerBindings,
258
+ ): TxValidator {
259
+ return createTxValidatorForMinimumTxIntegrityChecks(verifier, { l1ChainId, rollupVersion }, bindings);
260
+ }
261
+
262
+ /**
263
+ * Validators for unsolicited txs received over JSON-RPC (from a local wallet/PXE).
264
+ * Full validation — all state-dependent checks are run. Proof verification is optional
265
+ * (can be skipped for testing purposes). Fee enforcement is also optional (skipped for testing/dev).
266
+ * Called from `AztecNodeService.isValidTx()`.
267
+ */
268
+ export function createTxValidatorForAcceptingTxsOverRPC(
269
+ db: MerkleTreeReadOperations,
270
+ contractDataSource: ContractDataSource,
271
+ verifier: ClientProtocolCircuitVerifier | undefined,
272
+ {
273
+ l1ChainId,
274
+ rollupVersion,
275
+ setupAllowList,
276
+ gasFees,
277
+ skipFeeEnforcement,
278
+ timestamp,
279
+ blockNumber,
280
+ txsPermitted,
281
+ }: {
282
+ l1ChainId: number;
283
+ rollupVersion: number;
284
+ setupAllowList: AllowedElement[];
285
+ gasFees: GasFees;
286
+ skipFeeEnforcement?: boolean;
287
+ timestamp: UInt64;
288
+ blockNumber: BlockNumber;
289
+ txsPermitted: boolean;
290
+ },
291
+ bindings?: LoggerBindings,
292
+ ): TxValidator<Tx> {
293
+ const validators: TxValidator<Tx>[] = [
294
+ new TxPermittedValidator(txsPermitted, bindings),
295
+ new TimestampTxValidator(
296
+ {
297
+ timestamp,
298
+ blockNumber,
92
299
  },
93
- phasesValidator: {
94
- validator: new PhasesTxValidator(contractDataSource, allowedInSetup, timestamp),
95
- severity: PeerErrorSeverity.MidToleranceError,
300
+ bindings,
301
+ ),
302
+ new SizeTxValidator(bindings),
303
+ new MetadataTxValidator(
304
+ {
305
+ l1ChainId: new Fr(l1ChainId),
306
+ rollupVersion: new Fr(rollupVersion),
307
+ protocolContractsHash,
308
+ vkTreeRoot: getVKTreeRoot(),
96
309
  },
97
- blockHeaderValidator: {
98
- validator: new BlockHeaderTxValidator(new ArchiveCache(merkleTree)),
99
- severity: PeerErrorSeverity.HighToleranceError,
310
+ bindings,
311
+ ),
312
+ new PhasesTxValidator(contractDataSource, setupAllowList, timestamp, bindings),
313
+ new BlockHeaderTxValidator(new ArchiveCache(db), bindings),
314
+ new DoubleSpendTxValidator(new NullifierCache(db), bindings),
315
+ new DataTxValidator(bindings),
316
+ ];
317
+
318
+ if (!skipFeeEnforcement) {
319
+ validators.push(
320
+ new GasTxValidator(new DatabasePublicStateSource(db), ProtocolContractAddress.FeeJuice, gasFees, bindings),
321
+ );
322
+ }
323
+
324
+ if (verifier) {
325
+ validators.push(new TxProofValidator(verifier, bindings));
326
+ }
327
+
328
+ return new AggregateTxValidator(...validators);
329
+ }
330
+
331
+ /**
332
+ * Validators for txs about to be included in a block by the sequencer.
333
+ * Re-validates against current state. This is where invalid txs that entered via
334
+ * req/resp or block proposals are caught — their invalidity is reported as part
335
+ * of block validation/attestation. Proof and data checks are omitted since they
336
+ * were already verified on entry.
337
+ * Called from `CheckpointBuilder.makeBlockBuilderDeps()`.
338
+ */
339
+ export function createTxValidatorForBlockBuilding(
340
+ db: MerkleTreeReadOperations,
341
+ contractDataSource: ContractDataSource,
342
+ globalVariables: GlobalVariables,
343
+ setupAllowList: AllowedElement[],
344
+ bindings?: LoggerBindings,
345
+ ): PublicProcessorValidator {
346
+ const nullifierCache = new NullifierCache(db);
347
+ const archiveCache = new ArchiveCache(db);
348
+ const publicStateSource = new DatabasePublicStateSource(db);
349
+
350
+ return {
351
+ preprocessValidator: createTxValidatorForValidatingAgainstCurrentState(
352
+ nullifierCache,
353
+ archiveCache,
354
+ publicStateSource,
355
+ contractDataSource,
356
+ globalVariables,
357
+ setupAllowList,
358
+ bindings,
359
+ ),
360
+ nullifierCache,
361
+ };
362
+ }
363
+
364
+ function createTxValidatorForValidatingAgainstCurrentState(
365
+ nullifierSource: NullifierSource,
366
+ archiveSource: ArchiveSource,
367
+ publicStateSource: PublicStateSource,
368
+ contractDataSource: ContractDataSource,
369
+ globalVariables: GlobalVariables,
370
+ setupAllowList: AllowedElement[],
371
+ bindings?: LoggerBindings,
372
+ ): TxValidator<Tx> {
373
+ // We don't include the TxProofValidator nor the DataTxValidator here because they are already checked by the time we get to block building.
374
+ return new AggregateTxValidator(
375
+ new TimestampTxValidator(
376
+ {
377
+ timestamp: globalVariables.timestamp,
378
+ blockNumber: globalVariables.blockNumber,
100
379
  },
380
+ bindings,
381
+ ),
382
+ new PhasesTxValidator(contractDataSource, setupAllowList, globalVariables.timestamp, bindings),
383
+ new BlockHeaderTxValidator(archiveSource, bindings),
384
+ new DoubleSpendTxValidator(nullifierSource, bindings),
385
+ new GasTxValidator(publicStateSource, ProtocolContractAddress.FeeJuice, globalVariables.gasFees, bindings),
386
+ );
387
+ }
388
+
389
+ /**
390
+ * Validators for txs migrating to the pending pool.
391
+ *
392
+ * Txs that arrived via req/resp or block proposals only had well-formedness checks
393
+ * on receipt. When they fail to be mined and are migrated to the pending pool, we
394
+ * run the state-dependent checks they missed: double-spend, block header, gas limits,
395
+ * and timestamp expiry. This is run on EVERY tx potentially entering the pending pool
396
+ * — called inside `TxPoolV2Impl` during `addPendingTxs`, `prepareForSlot` (unprotect),
397
+ * `handlePrunedBlocks` (unmine), and startup hydration.
398
+ *
399
+ * Operates on `TxMetaData` rather than full `Tx` since metadata is pre-built by the pool.
400
+ * Injected into `TxPoolV2` as the `createTxValidator` factory in `TxPoolV2Dependencies`.
401
+ */
402
+ export async function createTxValidatorForTransactionsEnteringPendingTxPool(
403
+ worldStateSynchronizer: WorldStateSynchronizer,
404
+ timestamp: bigint,
405
+ blockNumber: BlockNumber,
406
+ bindings?: LoggerBindings,
407
+ ): Promise<TxValidator<TxMetaData>> {
408
+ await worldStateSynchronizer.syncImmediate();
409
+ const merkleTree = worldStateSynchronizer.getCommitted();
410
+ const nullifierSource: NullifierSource = {
411
+ nullifiersExist: async (nullifiers: Buffer[]) => {
412
+ const indices = await merkleTree.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers);
413
+ return indices.map(index => index !== undefined);
101
414
  },
102
- {
103
- proofValidator: {
104
- validator: new TxProofValidator(proofVerifier),
105
- severity: PeerErrorSeverity.MidToleranceError,
106
- },
415
+ };
416
+ const archiveSource: ArchiveSource = {
417
+ getArchiveIndices: (archives: BlockHash[]) => {
418
+ return merkleTree.findLeafIndices(MerkleTreeId.ARCHIVE, archives);
107
419
  },
108
- ];
420
+ };
421
+ return new AggregateTxValidator<TxMetaData>(
422
+ new GasLimitsValidator<TxMetaData>(bindings),
423
+ new TimestampTxValidator<TxMetaData>({ timestamp, blockNumber }, bindings),
424
+ new DoubleSpendTxValidator<TxMetaData>(nullifierSource, bindings),
425
+ new BlockHeaderTxValidator<TxMetaData>(archiveSource, bindings),
426
+ );
109
427
  }
@@ -0,0 +1,40 @@
1
+ import { getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
2
+ import { FunctionSelector } from '@aztec/stdlib/abi';
3
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import { type Tx, TxExecutionPhase } from '@aztec/stdlib/tx';
5
+
6
+ export type FeePayerBalanceDelta = {
7
+ feeLimit: bigint;
8
+ claimAmount: bigint;
9
+ };
10
+
11
+ const increasePublicBalanceSelectorPromise = FunctionSelector.fromSignature('_increase_public_balance((Field),u128)');
12
+
13
+ export function getTxFeeLimit(tx: Tx): bigint {
14
+ return tx.data.constants.txContext.gasSettings.getFeeLimit().toBigInt();
15
+ }
16
+
17
+ export async function getFeePayerClaimAmount(tx: Tx, feeJuiceAddress: AztecAddress): Promise<bigint> {
18
+ const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
19
+ const increasePublicBalanceSelector = await increasePublicBalanceSelectorPromise;
20
+ const feePayer = tx.data.feePayer;
21
+
22
+ const claimFunctionCall = setupFns.find(
23
+ fn =>
24
+ fn.request.contractAddress.equals(feeJuiceAddress) &&
25
+ fn.request.msgSender.equals(feeJuiceAddress) &&
26
+ fn.calldata.length > 2 &&
27
+ fn.functionSelector.equals(increasePublicBalanceSelector) &&
28
+ fn.args[0].equals(feePayer.toField()) &&
29
+ !fn.request.isStaticCall,
30
+ );
31
+
32
+ return claimFunctionCall ? claimFunctionCall.args[1].toBigInt() : 0n;
33
+ }
34
+
35
+ export async function getFeePayerBalanceDelta(tx: Tx, feeJuiceAddress: AztecAddress): Promise<FeePayerBalanceDelta> {
36
+ return {
37
+ feeLimit: getTxFeeLimit(tx),
38
+ claimAmount: await getFeePayerClaimAmount(tx, feeJuiceAddress),
39
+ };
40
+ }