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

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 (263) hide show
  1. package/dest/client/factory.d.ts +2 -2
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +2 -3
  4. package/dest/client/interface.d.ts +18 -5
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +11 -14
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +456 -124
  9. package/dest/config.d.ts +4 -7
  10. package/dest/config.d.ts.map +1 -1
  11. package/dest/config.js +10 -13
  12. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +61 -42
  13. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  14. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  15. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  16. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +239 -265
  17. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +21 -18
  18. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  19. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +114 -109
  20. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +17 -16
  21. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  22. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +89 -128
  23. package/dest/mem_pools/attestation_pool/mocks.d.ts +11 -8
  24. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  26. package/dest/mem_pools/instrumentation.d.ts +7 -1
  27. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  28. package/dest/mem_pools/instrumentation.js +30 -12
  29. package/dest/mem_pools/interface.d.ts +3 -4
  30. package/dest/mem_pools/interface.d.ts.map +1 -1
  31. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +36 -27
  32. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  33. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  34. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +31 -0
  35. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  36. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  37. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +156 -0
  38. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  39. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  40. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  41. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  42. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +115 -0
  43. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  44. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  45. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  46. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  47. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  48. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +76 -0
  49. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  50. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  51. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  52. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  53. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  54. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  55. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  56. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool/index.js +0 -1
  58. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  59. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  60. package/dest/mem_pools/tx_pool/priority.js +6 -1
  61. package/dest/mem_pools/tx_pool/tx_pool.d.ts +8 -4
  62. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  63. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  64. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  65. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +25 -20
  66. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -4
  67. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  68. package/dest/msg_validators/attestation_validator/attestation_validator.js +13 -11
  69. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -5
  70. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  71. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +7 -10
  72. package/dest/msg_validators/index.d.ts +2 -2
  73. package/dest/msg_validators/index.d.ts.map +1 -1
  74. package/dest/msg_validators/index.js +1 -1
  75. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  76. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  77. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  78. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  79. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  80. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  81. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  82. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  83. package/dest/msg_validators/proposal_validator/index.js +3 -0
  84. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  85. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  86. package/dest/msg_validators/{block_proposal_validator/block_proposal_validator.js → proposal_validator/proposal_validator.js} +20 -22
  87. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  88. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  89. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +183 -0
  90. package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
  91. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  92. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
  93. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  94. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  95. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  96. package/dest/msg_validators/tx_validator/factory.d.ts +2 -2
  97. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  98. package/dest/msg_validators/tx_validator/factory.js +1 -1
  99. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  100. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  101. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  102. package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
  103. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  104. package/dest/msg_validators/tx_validator/gas_validator.js +8 -14
  105. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +2 -2
  106. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  108. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  109. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +1 -1
  110. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  111. package/dest/services/dummy_service.d.ts +6 -2
  112. package/dest/services/dummy_service.d.ts.map +1 -1
  113. package/dest/services/dummy_service.js +3 -0
  114. package/dest/services/encoding.d.ts +1 -1
  115. package/dest/services/encoding.d.ts.map +1 -1
  116. package/dest/services/encoding.js +5 -3
  117. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  118. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  119. package/dest/services/libp2p/instrumentation.js +20 -73
  120. package/dest/services/libp2p/libp2p_service.d.ts +30 -13
  121. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  122. package/dest/services/libp2p/libp2p_service.js +703 -149
  123. package/dest/services/peer-manager/metrics.d.ts +6 -1
  124. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  125. package/dest/services/peer-manager/metrics.js +18 -21
  126. package/dest/services/peer-manager/peer_manager.d.ts +2 -2
  127. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  128. package/dest/services/peer-manager/peer_manager.js +4 -12
  129. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  130. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  131. package/dest/services/peer-manager/peer_scoring.js +2 -5
  132. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -1
  133. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  134. package/dest/services/reqresp/constants.d.ts +12 -0
  135. package/dest/services/reqresp/constants.d.ts.map +1 -0
  136. package/dest/services/reqresp/constants.js +7 -0
  137. package/dest/services/reqresp/interface.d.ts +4 -4
  138. package/dest/services/reqresp/interface.d.ts.map +1 -1
  139. package/dest/services/reqresp/interface.js +3 -3
  140. package/dest/services/reqresp/metrics.d.ts +1 -1
  141. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  142. package/dest/services/reqresp/metrics.js +5 -21
  143. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  144. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  145. package/dest/services/reqresp/protocols/auth.js +2 -2
  146. package/dest/services/reqresp/protocols/block.js +1 -1
  147. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
  148. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  149. package/dest/services/reqresp/protocols/block_txs/bitvector.js +7 -0
  150. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +2 -2
  151. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  152. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +1 -1
  153. package/dest/services/reqresp/protocols/status.d.ts +1 -1
  154. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  155. package/dest/services/reqresp/protocols/status.js +4 -1
  156. package/dest/services/reqresp/protocols/tx.d.ts +2 -3
  157. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  158. package/dest/services/reqresp/reqresp.js +402 -24
  159. package/dest/services/service.d.ts +16 -3
  160. package/dest/services/service.d.ts.map +1 -1
  161. package/dest/services/tx_collection/config.js +1 -1
  162. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  163. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  164. package/dest/services/tx_collection/instrumentation.js +4 -14
  165. package/dest/services/tx_collection/slow_tx_collection.d.ts +3 -3
  166. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  167. package/dest/services/tx_collection/tx_collection.d.ts +4 -4
  168. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  169. package/dest/services/tx_collection/tx_collection.js +1 -1
  170. package/dest/services/tx_provider.d.ts +2 -1
  171. package/dest/services/tx_provider.d.ts.map +1 -1
  172. package/dest/services/tx_provider.js +11 -2
  173. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  174. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  175. package/dest/services/tx_provider_instrumentation.js +13 -13
  176. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  177. package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
  178. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  179. package/dest/testbench/p2p_client_testbench_worker.js +28 -12
  180. package/dest/testbench/worker_client_manager.d.ts +1 -1
  181. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  182. package/dest/testbench/worker_client_manager.js +6 -1
  183. package/package.json +16 -16
  184. package/src/client/factory.ts +5 -10
  185. package/src/client/interface.ts +19 -4
  186. package/src/client/p2p_client.ts +92 -147
  187. package/src/config.ts +12 -18
  188. package/src/mem_pools/attestation_pool/attestation_pool.ts +68 -41
  189. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +241 -289
  190. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +163 -141
  191. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +141 -164
  192. package/src/mem_pools/attestation_pool/mocks.ts +21 -15
  193. package/src/mem_pools/instrumentation.ts +38 -14
  194. package/src/mem_pools/interface.ts +2 -4
  195. package/src/mem_pools/tx_pool/README.md +270 -0
  196. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +363 -368
  197. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +131 -0
  198. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +207 -0
  199. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +159 -0
  200. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  201. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +91 -0
  202. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  203. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  204. package/src/mem_pools/tx_pool/index.ts +0 -1
  205. package/src/mem_pools/tx_pool/priority.ts +8 -1
  206. package/src/mem_pools/tx_pool/tx_pool.ts +8 -3
  207. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +18 -13
  208. package/src/msg_validators/attestation_validator/attestation_validator.ts +17 -14
  209. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +9 -12
  210. package/src/msg_validators/index.ts +1 -1
  211. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  212. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  213. package/src/msg_validators/proposal_validator/index.ts +3 -0
  214. package/src/msg_validators/{block_proposal_validator/block_proposal_validator.ts → proposal_validator/proposal_validator.ts} +24 -29
  215. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +206 -0
  216. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  217. package/src/msg_validators/tx_validator/block_header_validator.ts +1 -1
  218. package/src/msg_validators/tx_validator/data_validator.ts +12 -4
  219. package/src/msg_validators/tx_validator/factory.ts +1 -1
  220. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  221. package/src/msg_validators/tx_validator/gas_validator.ts +8 -25
  222. package/src/msg_validators/tx_validator/metadata_validator.ts +13 -5
  223. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  224. package/src/msg_validators/tx_validator/timestamp_validator.ts +3 -1
  225. package/src/services/dummy_service.ts +6 -0
  226. package/src/services/encoding.ts +4 -2
  227. package/src/services/libp2p/instrumentation.ts +19 -73
  228. package/src/services/libp2p/libp2p_service.ts +336 -117
  229. package/src/services/peer-manager/metrics.ts +22 -21
  230. package/src/services/peer-manager/peer_manager.ts +5 -4
  231. package/src/services/peer-manager/peer_scoring.ts +1 -5
  232. package/src/services/reqresp/connection-sampler/connection_sampler.ts +3 -1
  233. package/src/services/reqresp/constants.ts +14 -0
  234. package/src/services/reqresp/interface.ts +3 -3
  235. package/src/services/reqresp/metrics.ts +7 -23
  236. package/src/services/reqresp/protocols/auth.ts +2 -2
  237. package/src/services/reqresp/protocols/block.ts +1 -1
  238. package/src/services/reqresp/protocols/block_txs/bitvector.ts +9 -0
  239. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +1 -1
  240. package/src/services/reqresp/protocols/status.ts +7 -4
  241. package/src/services/reqresp/protocols/tx.ts +1 -2
  242. package/src/services/service.ts +19 -4
  243. package/src/services/tx_collection/config.ts +1 -1
  244. package/src/services/tx_collection/instrumentation.ts +4 -21
  245. package/src/services/tx_collection/slow_tx_collection.ts +2 -2
  246. package/src/services/tx_collection/tx_collection.ts +4 -4
  247. package/src/services/tx_provider.ts +17 -2
  248. package/src/services/tx_provider_instrumentation.ts +18 -14
  249. package/src/test-helpers/mock-pubsub.ts +1 -1
  250. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  251. package/src/test-helpers/reqresp-nodes.ts +1 -1
  252. package/src/testbench/p2p_client_testbench_worker.ts +37 -13
  253. package/src/testbench/worker_client_manager.ts +6 -1
  254. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -81
  255. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  256. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -239
  257. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  258. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  259. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  260. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  261. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  262. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -285
  263. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,8 +1,8 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import { type BlockAttestation, PeerErrorSeverity } from '@aztec/stdlib/p2p';
2
+ import { type CheckpointAttestation, PeerErrorSeverity } from '@aztec/stdlib/p2p';
3
3
  import { type TelemetryClient } from '@aztec/telemetry-client';
4
4
  import type { AttestationPool } from '../../mem_pools/attestation_pool/attestation_pool.js';
5
- import { AttestationValidator } from './attestation_validator.js';
5
+ import { CheckpointAttestationValidator } from './attestation_validator.js';
6
6
  /**
7
7
  * FishermanAttestationValidator extends the base AttestationValidator to add
8
8
  * additional validation for fisherman nodes: verifying that attestations sign
@@ -11,10 +11,10 @@ import { AttestationValidator } from './attestation_validator.js';
11
11
  * handled by LibP2PService based on the fishermanMode config to ensure a better
12
12
  * view of the network.
13
13
  */
14
- export declare class FishermanAttestationValidator extends AttestationValidator {
14
+ export declare class FishermanAttestationValidator extends CheckpointAttestationValidator {
15
15
  private attestationPool;
16
16
  private invalidAttestationCounter;
17
17
  constructor(epochCache: EpochCacheInterface, attestationPool: AttestationPool, telemetryClient: TelemetryClient);
18
- validate(message: BlockAttestation): Promise<PeerErrorSeverity | undefined>;
18
+ validate(message: CheckpointAttestation): Promise<PeerErrorSeverity | undefined>;
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlzaGVybWFuX2F0dGVzdGF0aW9uX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL2F0dGVzdGF0aW9uX3ZhbGlkYXRvci9maXNoZXJtYW5fYXR0ZXN0YXRpb25fdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RSxPQUFPLEVBQXVCLEtBQUssZUFBZSxFQUFhLE1BQU0seUJBQXlCLENBQUM7QUFFL0YsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbEU7Ozs7Ozs7R0FPRztBQUNILHFCQUFhLDZCQUE4QixTQUFRLG9CQUFvQjtJQUtuRSxPQUFPLENBQUMsZUFBZTtJQUp6QixPQUFPLENBQUMseUJBQXlCLENBQUM7SUFFbEMsWUFDRSxVQUFVLEVBQUUsbUJBQW1CLEVBQ3ZCLGVBQWUsRUFBRSxlQUFlLEVBQ3hDLGVBQWUsRUFBRSxlQUFlLEVBVWpDO0lBRWMsUUFBUSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBd0R6RjtDQUNGIn0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlzaGVybWFuX2F0dGVzdGF0aW9uX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL2F0dGVzdGF0aW9uX3ZhbGlkYXRvci9maXNoZXJtYW5fYXR0ZXN0YXRpb25fdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRixPQUFPLEVBQXVCLEtBQUssZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUU7Ozs7Ozs7R0FPRztBQUNILHFCQUFhLDZCQUE4QixTQUFRLDhCQUE4QjtJQUs3RSxPQUFPLENBQUMsZUFBZTtJQUp6QixPQUFPLENBQUMseUJBQXlCLENBQUM7SUFFbEMsWUFDRSxVQUFVLEVBQUUsbUJBQW1CLEVBQ3ZCLGVBQWUsRUFBRSxlQUFlLEVBQ3hDLGVBQWUsRUFBRSxlQUFlLEVBT2pDO0lBRWMsUUFBUSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBd0Q5RjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fisherman_attestation_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/attestation_validator/fisherman_attestation_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAuB,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAE/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;;;GAOG;AACH,qBAAa,6BAA8B,SAAQ,oBAAoB;IAKnE,OAAO,CAAC,eAAe;IAJzB,OAAO,CAAC,yBAAyB,CAAC;IAElC,YACE,UAAU,EAAE,mBAAmB,EACvB,eAAe,EAAE,eAAe,EACxC,eAAe,EAAE,eAAe,EAUjC;IAEc,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAwDzF;CACF"}
1
+ {"version":3,"file":"fisherman_attestation_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/attestation_validator/fisherman_attestation_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E;;;;;;;GAOG;AACH,qBAAa,6BAA8B,SAAQ,8BAA8B;IAK7E,OAAO,CAAC,eAAe;IAJzB,OAAO,CAAC,yBAAyB,CAAC;IAElC,YACE,UAAU,EAAE,mBAAmB,EACvB,eAAe,EAAE,eAAe,EACxC,eAAe,EAAE,eAAe,EAOjC;IAEc,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAwD9F;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
2
- import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
3
- import { AttestationValidator } from './attestation_validator.js';
2
+ import { Attributes, Metrics } from '@aztec/telemetry-client';
3
+ import { CheckpointAttestationValidator } from './attestation_validator.js';
4
4
  /**
5
5
  * FishermanAttestationValidator extends the base AttestationValidator to add
6
6
  * additional validation for fisherman nodes: verifying that attestations sign
@@ -8,17 +8,14 @@ import { AttestationValidator } from './attestation_validator.js';
8
8
  * Invalid attestations are rejected (not propagated), but peer penalization is
9
9
  * handled by LibP2PService based on the fishermanMode config to ensure a better
10
10
  * view of the network.
11
- */ export class FishermanAttestationValidator extends AttestationValidator {
11
+ */ export class FishermanAttestationValidator extends CheckpointAttestationValidator {
12
12
  attestationPool;
13
13
  invalidAttestationCounter;
14
14
  constructor(epochCache, attestationPool, telemetryClient){
15
15
  super(epochCache), this.attestationPool = attestationPool;
16
16
  this.logger = this.logger.createChild('[FISHERMAN]');
17
17
  const meter = telemetryClient.getMeter('FishermanAttestationValidator');
18
- this.invalidAttestationCounter = meter.createUpDownCounter(Metrics.VALIDATOR_INVALID_ATTESTATION_RECEIVED_COUNT, {
19
- description: 'The number of invalid attestations received',
20
- valueType: ValueType.INT
21
- });
18
+ this.invalidAttestationCounter = meter.createUpDownCounter(Metrics.VALIDATOR_INVALID_ATTESTATION_RECEIVED_COUNT);
22
19
  }
23
20
  async validate(message) {
24
21
  // First run the standard validation
@@ -38,17 +35,17 @@ import { AttestationValidator } from './attestation_validator.js';
38
35
  return undefined;
39
36
  }
40
37
  const proposalId = message.archive.toString();
41
- const proposal = await this.attestationPool.getBlockProposal(proposalId);
38
+ const proposal = await this.attestationPool.getCheckpointProposal(proposalId);
42
39
  if (proposal) {
43
40
  // Compare the attestation payload with the proposal payload
44
- if (!message.payload.equals(proposal.payload)) {
41
+ if (!message.payload.equals(proposal)) {
45
42
  this.logger.error(`Attestation payload mismatch for slot ${slotNumberBigInt}! ` + `Attester ${attester.toString()} signed different data than the proposal.`, {
46
43
  slot: slotNumberBigInt.toString(),
47
44
  attester: attester.toString(),
48
45
  proposer: proposer.toString(),
49
46
  proposalArchive: proposal.archive.toString(),
50
47
  attestationArchive: message.archive.toString(),
51
- proposalHeader: proposal.payload.header.hash().toString(),
48
+ proposalHeader: proposal.checkpointHeader.hash().toString(),
52
49
  attestationHeader: message.payload.header.hash().toString()
53
50
  });
54
51
  // Track invalid attestation metric
@@ -1,4 +1,4 @@
1
1
  export * from './tx_validator/index.js';
2
- export * from './block_proposal_validator/index.js';
2
+ export * from './proposal_validator/index.js';
3
3
  export * from './attestation_validator/index.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQyJ9
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/msg_validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/msg_validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export * from './tx_validator/index.js';
2
- export * from './block_proposal_validator/index.js';
2
+ export * from './proposal_validator/index.js';
3
3
  export * from './attestation_validator/index.js';
@@ -0,0 +1,9 @@
1
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import type { BlockProposal, P2PValidator } from '@aztec/stdlib/p2p';
3
+ import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
4
+ export declare class BlockProposalValidator extends ProposalValidator<BlockProposal> implements P2PValidator<BlockProposal> {
5
+ constructor(epochCache: EpochCacheInterface, opts: {
6
+ txsPermitted: boolean;
7
+ });
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL2Jsb2NrX3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSxzQkFBdUIsU0FBUSxpQkFBaUIsQ0FBQyxhQUFhLENBQUUsWUFBVyxZQUFZLENBQUMsYUFBYSxDQUFDO0lBQ2pILFlBQVksVUFBVSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRTtRQUFFLFlBQVksRUFBRSxPQUFPLENBQUE7S0FBRSxFQUUzRTtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,qBAAa,sBAAuB,SAAQ,iBAAiB,CAAC,aAAa,CAAE,YAAW,YAAY,CAAC,aAAa,CAAC;IACjH,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,EAE3E;CACF"}
@@ -0,0 +1,6 @@
1
+ import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
2
+ export class BlockProposalValidator extends ProposalValidator {
3
+ constructor(epochCache, opts){
4
+ super(epochCache, opts, 'p2p:block_proposal_validator');
5
+ }
6
+ }
@@ -0,0 +1,9 @@
1
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import type { CheckpointProposal, P2PValidator } from '@aztec/stdlib/p2p';
3
+ import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
4
+ export declare class CheckpointProposalValidator extends ProposalValidator<CheckpointProposal> implements P2PValidator<CheckpointProposal> {
5
+ constructor(epochCache: EpochCacheInterface, opts: {
6
+ txsPermitted: boolean;
7
+ });
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvY2hlY2twb2ludF9wcm9wb3NhbF92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVoRixxQkFBYSwyQkFDWCxTQUFRLGlCQUFpQixDQUFDLGtCQUFrQixDQUM1QyxZQUFXLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztJQUUzQyxZQUFZLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7UUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFBO0tBQUUsRUFFM0U7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,qBAAa,2BACX,SAAQ,iBAAiB,CAAC,kBAAkB,CAC5C,YAAW,YAAY,CAAC,kBAAkB,CAAC;IAE3C,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,EAE3E;CACF"}
@@ -0,0 +1,6 @@
1
+ import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
2
+ export class CheckpointProposalValidator extends ProposalValidator {
3
+ constructor(epochCache, opts){
4
+ super(epochCache, opts, 'p2p:checkpoint_proposal_validator');
5
+ }
6
+ }
@@ -0,0 +1,4 @@
1
+ export * from './block_proposal_validator.js';
2
+ export * from './checkpoint_proposal_validator.js';
3
+ export * from './proposal_validator.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMseUJBQXlCLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './block_proposal_validator.js';
2
+ export * from './checkpoint_proposal_validator.js';
3
+ export * from './proposal_validator.js';
@@ -0,0 +1,13 @@
1
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import { type Logger } from '@aztec/foundation/log';
3
+ import { BlockProposal, CheckpointProposal, PeerErrorSeverity } from '@aztec/stdlib/p2p';
4
+ export declare abstract class ProposalValidator<TProposal extends BlockProposal | CheckpointProposal> {
5
+ protected epochCache: EpochCacheInterface;
6
+ protected logger: Logger;
7
+ protected txsPermitted: boolean;
8
+ constructor(epochCache: EpochCacheInterface, opts: {
9
+ txsPermitted: boolean;
10
+ }, loggerName: string);
11
+ validate(proposal: TProposal): Promise<PeerErrorSeverity | undefined>;
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvcHJvcG9zYWxfdmFsaWRhdG9yL3Byb3Bvc2FsX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekYsOEJBQXNCLGlCQUFpQixDQUFDLFNBQVMsU0FBUyxhQUFhLEdBQUcsa0JBQWtCO0lBQzFGLFNBQVMsQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDMUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDekIsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7SUFFaEMsWUFBWSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFO1FBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFJL0Y7SUFFWSxRQUFRLENBQUMsUUFBUSxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBMEVqRjtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,8BAAsB,iBAAiB,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB;IAC1F,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAEhC,YAAY,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,EAI/F;IAEY,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA0EjF;CACF"}
@@ -1,43 +1,43 @@
1
- import { NoCommitteeError } from '@aztec/ethereum';
1
+ import { NoCommitteeError } from '@aztec/ethereum/contracts';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
4
- export class BlockProposalValidator {
4
+ export class ProposalValidator {
5
5
  epochCache;
6
6
  logger;
7
7
  txsPermitted;
8
- constructor(epochCache, opts){
8
+ constructor(epochCache, opts, loggerName){
9
9
  this.epochCache = epochCache;
10
10
  this.txsPermitted = opts.txsPermitted;
11
- this.logger = createLogger('p2p:block_proposal_validator');
11
+ this.logger = createLogger(loggerName);
12
12
  }
13
- async validate(block) {
13
+ async validate(proposal) {
14
14
  try {
15
- // Check signature validity first - invalid signatures are a high-severity issue
16
- const proposer = block.getSender();
15
+ // Signature validity
16
+ const proposer = proposal.getSender();
17
17
  if (!proposer) {
18
- this.logger.debug(`Penalizing peer for block proposal with invalid signature`);
18
+ this.logger.debug(`Penalizing peer for proposal with invalid signature`);
19
19
  return PeerErrorSeverity.MidToleranceError;
20
20
  }
21
- // Check if transactions are permitted when the proposal contains transaction hashes
22
- const embeddedTxCount = block.txs?.length ?? 0;
23
- if (!this.txsPermitted && (block.txHashes.length > 0 || embeddedTxCount > 0)) {
24
- this.logger.debug(`Penalizing peer for block proposal with ${block.txHashes.length} transaction(s) when transactions are not permitted`);
21
+ // Transactions permitted check
22
+ const embeddedTxCount = proposal.txs?.length ?? 0;
23
+ if (!this.txsPermitted && (proposal.txHashes.length > 0 || embeddedTxCount > 0)) {
24
+ this.logger.debug(`Penalizing peer for proposal with ${proposal.txHashes.length} transaction(s) when transactions are not permitted`);
25
25
  return PeerErrorSeverity.MidToleranceError;
26
26
  }
27
- // If there are embedded txs, they must be listed in txHashes; if there are no txHashes, there must be no txs
28
- const hashSet = new Set(block.txHashes.map((h)=>h.toString()));
29
- const missingTxHashes = embeddedTxCount > 0 ? block.txs.filter((tx)=>!hashSet.has(tx.getTxHash().toString())).map((tx)=>tx.getTxHash().toString()) : [];
27
+ // Embedded txs must be listed in txHashes
28
+ const hashSet = new Set(proposal.txHashes.map((h)=>h.toString()));
29
+ const missingTxHashes = embeddedTxCount > 0 ? proposal.txs.filter((tx)=>!hashSet.has(tx.getTxHash().toString())).map((tx)=>tx.getTxHash().toString()) : [];
30
30
  if (embeddedTxCount > 0 && missingTxHashes.length > 0) {
31
31
  this.logger.warn('Penalizing peer for embedded transaction(s) not included in txHashes', {
32
32
  embeddedTxCount,
33
- txHashesLength: block.txHashes.length,
33
+ txHashesLength: proposal.txHashes.length,
34
34
  missingTxHashes
35
35
  });
36
36
  return PeerErrorSeverity.MidToleranceError;
37
37
  }
38
+ // Slot and proposer checks
38
39
  const { currentProposer, nextProposer, currentSlot, nextSlot } = await this.epochCache.getProposerAttesterAddressInCurrentOrNextSlot();
39
- // Check that the attestation is for the current or next slot
40
- const slotNumber = block.payload.header.slotNumber;
40
+ const slotNumber = proposal.slotNumber;
41
41
  if (slotNumber !== currentSlot && slotNumber !== nextSlot) {
42
42
  this.logger.debug(`Penalizing peer for invalid slot number ${slotNumber}`, {
43
43
  currentSlot,
@@ -45,7 +45,6 @@ export class BlockProposalValidator {
45
45
  });
46
46
  return PeerErrorSeverity.HighToleranceError;
47
47
  }
48
- // Check that the block proposal is from the current or next proposer
49
48
  if (slotNumber === currentSlot && currentProposer !== undefined && !proposer.equals(currentProposer)) {
50
49
  this.logger.debug(`Penalizing peer for invalid proposer for current slot ${slotNumber}`, {
51
50
  currentProposer,
@@ -63,8 +62,8 @@ export class BlockProposalValidator {
63
62
  return PeerErrorSeverity.MidToleranceError;
64
63
  }
65
64
  // Validate tx hashes for all txs embedded in the proposal
66
- if (!(await Promise.all(block.txs?.map((tx)=>tx.validateTxHash()) ?? [])).every((v)=>v)) {
67
- this.logger.warn(`Penalizing peer for invalid tx hashes in block proposal`, {
65
+ if (!(await Promise.all(proposal.txs?.map((tx)=>tx.validateTxHash()) ?? [])).every((v)=>v)) {
66
+ this.logger.warn(`Penalizing peer for invalid tx hashes in proposal`, {
68
67
  proposer,
69
68
  slotNumber
70
69
  });
@@ -72,7 +71,6 @@ export class BlockProposalValidator {
72
71
  }
73
72
  return undefined;
74
73
  } catch (e) {
75
- // People shouldn't be sending us block proposals if the committee doesn't exist
76
74
  if (e instanceof NoCommitteeError) {
77
75
  return PeerErrorSeverity.LowToleranceError;
78
76
  }
@@ -0,0 +1,23 @@
1
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import type { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
3
+ import type { EthAddress } from '@aztec/foundation/eth-address';
4
+ import { type BlockProposal, type CheckpointProposal, PeerErrorSeverity } from '@aztec/stdlib/p2p';
5
+ import type { TxHash } from '@aztec/stdlib/tx';
6
+ import type { MockProxy } from 'jest-mock-extended';
7
+ export interface ProposalValidatorTestParams<TProposal extends BlockProposal | CheckpointProposal> {
8
+ validatorFactory: (epochCache: EpochCacheInterface, opts: {
9
+ txsPermitted: boolean;
10
+ }) => {
11
+ validate: (proposal: TProposal) => Promise<PeerErrorSeverity | undefined>;
12
+ };
13
+ makeProposal: (options?: any) => Promise<TProposal>;
14
+ makeHeader: (epochNumber: number | bigint, slotNumber: number | bigint, blockNumber: number | bigint) => any;
15
+ getSigner: () => Secp256k1Signer;
16
+ getAddress: (signer?: Secp256k1Signer) => EthAddress;
17
+ getSlot: (slot: number | bigint) => any;
18
+ getTxHashes: (n: number) => TxHash[];
19
+ getTxs: () => any[];
20
+ epochCacheMock: () => MockProxy<EpochCacheInterface>;
21
+ }
22
+ export declare function sharedProposalValidatorTests<TProposal extends BlockProposal | CheckpointProposal>(params: ProposalValidatorTestParams<TProposal>): void;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvcHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25HLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE1BQU0sV0FBVywyQkFBMkIsQ0FBQyxTQUFTLFNBQVMsYUFBYSxHQUFHLGtCQUFrQjtJQUMvRixnQkFBZ0IsRUFBRSxDQUNoQixVQUFVLEVBQUUsbUJBQW1CLEVBQy9CLElBQUksRUFBRTtRQUFFLFlBQVksRUFBRSxPQUFPLENBQUE7S0FBRSxLQUM1QjtRQUFFLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEtBQUssT0FBTyxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFBO0tBQUUsQ0FBQztJQUNuRixZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxLQUFLLEdBQUcsQ0FBQztJQUM3RyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7SUFDakMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxLQUFLLFVBQVUsQ0FBQztJQUNyRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sS0FBSyxHQUFHLENBQUM7SUFDeEMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNyQyxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNwQixjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztDQUN0RDtBQUVELHdCQUFnQiw0QkFBNEIsQ0FBQyxTQUFTLFNBQVMsYUFBYSxHQUFHLGtCQUFrQixFQUMvRixNQUFNLEVBQUUsMkJBQTJCLENBQUMsU0FBUyxDQUFDLFFBcUwvQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal_validator_test_suite.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/proposal_validator_test_suite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,2BAA2B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB;IAC/F,gBAAgB,EAAE,CAChB,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,KAC5B;QAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;KAAE,CAAC;IACnF,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IAC7G,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,UAAU,CAAC;IACrD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC;CACtD;AAED,wBAAgB,4BAA4B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB,EAC/F,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,QAqL/C"}
@@ -0,0 +1,183 @@
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
+ beforeEach(()=>{
8
+ epochCache = epochCacheMock();
9
+ validator = validatorFactory(epochCache, {
10
+ txsPermitted: true
11
+ });
12
+ });
13
+ it('returns high tolerance error if slot number is not current or next slot', async ()=>{
14
+ const header = makeHeader(1, 97, 97);
15
+ const mockProposal = await makeProposal({
16
+ blockHeader: header,
17
+ lastBlockHeader: header
18
+ });
19
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
20
+ currentSlot: getSlot(98),
21
+ nextSlot: getSlot(99),
22
+ currentProposer: getAddress(),
23
+ nextProposer: getAddress()
24
+ });
25
+ const result = await validator.validate(mockProposal);
26
+ expect(result).toBe(PeerErrorSeverity.HighToleranceError);
27
+ });
28
+ it('returns mid tolerance error if proposer is not current proposer for current slot', async ()=>{
29
+ const currentProposer = getSigner();
30
+ const nextProposer = getSigner();
31
+ const invalidProposer = getSigner();
32
+ const header = makeHeader(1, 100, 100);
33
+ const mockProposal = await makeProposal({
34
+ blockHeader: header,
35
+ lastBlockHeader: header,
36
+ signer: invalidProposer
37
+ });
38
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
39
+ currentSlot: getSlot(100),
40
+ nextSlot: getSlot(101),
41
+ currentProposer: getAddress(currentProposer),
42
+ nextProposer: getAddress(nextProposer)
43
+ });
44
+ const result = await validator.validate(mockProposal);
45
+ expect(result).toBe(PeerErrorSeverity.MidToleranceError);
46
+ });
47
+ it('returns mid tolerance error if proposer is not next proposer for next slot', async ()=>{
48
+ const currentProposer = getSigner();
49
+ const nextProposer = getSigner();
50
+ const invalidProposer = getSigner();
51
+ const header = makeHeader(1, 101, 101);
52
+ const mockProposal = await makeProposal({
53
+ blockHeader: header,
54
+ lastBlockHeader: header,
55
+ signer: invalidProposer
56
+ });
57
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
58
+ currentSlot: getSlot(100),
59
+ nextSlot: getSlot(101),
60
+ currentProposer: getAddress(currentProposer),
61
+ nextProposer: getAddress(nextProposer)
62
+ });
63
+ const result = await validator.validate(mockProposal);
64
+ expect(result).toBe(PeerErrorSeverity.MidToleranceError);
65
+ });
66
+ it('returns mid tolerance error if proposer is current proposer but proposal is for next slot', async ()=>{
67
+ const currentProposer = getSigner();
68
+ const nextProposer = getSigner();
69
+ const header = makeHeader(1, 101, 101);
70
+ const mockProposal = await makeProposal({
71
+ blockHeader: header,
72
+ lastBlockHeader: header,
73
+ signer: currentProposer
74
+ });
75
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
76
+ currentSlot: getSlot(100),
77
+ nextSlot: getSlot(101),
78
+ currentProposer: getAddress(currentProposer),
79
+ nextProposer: getAddress(nextProposer)
80
+ });
81
+ const result = await validator.validate(mockProposal);
82
+ expect(result).toBe(PeerErrorSeverity.MidToleranceError);
83
+ });
84
+ it('returns undefined if proposal is valid for current slot and proposer', async ()=>{
85
+ const currentProposer = getSigner();
86
+ const nextProposer = getSigner();
87
+ const header = makeHeader(1, 100, 100);
88
+ const mockProposal = await makeProposal({
89
+ blockHeader: header,
90
+ lastBlockHeader: header,
91
+ signer: currentProposer
92
+ });
93
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
94
+ currentSlot: getSlot(100),
95
+ nextSlot: getSlot(101),
96
+ currentProposer: getAddress(currentProposer),
97
+ nextProposer: getAddress(nextProposer)
98
+ });
99
+ const result = await validator.validate(mockProposal);
100
+ expect(result).toBeUndefined();
101
+ });
102
+ it('returns undefined if proposal is valid for next slot and proposer', async ()=>{
103
+ const currentProposer = getSigner();
104
+ const nextProposer = getSigner();
105
+ const header = makeHeader(1, 101, 101);
106
+ const mockProposal = await makeProposal({
107
+ blockHeader: header,
108
+ lastBlockHeader: header,
109
+ signer: nextProposer
110
+ });
111
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
112
+ currentSlot: getSlot(100),
113
+ nextSlot: getSlot(101),
114
+ currentProposer: getAddress(currentProposer),
115
+ nextProposer: getAddress(nextProposer)
116
+ });
117
+ const result = await validator.validate(mockProposal);
118
+ expect(result).toBeUndefined();
119
+ });
120
+ describe('transaction permission validation', ()=>{
121
+ it('returns mid tolerance error if txs not permitted and proposal contains txHashes', async ()=>{
122
+ const currentProposer = getSigner();
123
+ const validatorWithTxsDisabled = validatorFactory(epochCache, {
124
+ txsPermitted: false
125
+ });
126
+ const header = makeHeader(1, 100, 100);
127
+ const mockProposal = await makeProposal({
128
+ blockHeader: header,
129
+ lastBlockHeader: header,
130
+ signer: currentProposer,
131
+ txHashes: getTxHashes(2)
132
+ });
133
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
134
+ currentSlot: getSlot(100),
135
+ nextSlot: getSlot(101),
136
+ currentProposer: getAddress(currentProposer),
137
+ nextProposer: getAddress()
138
+ });
139
+ const result = await validatorWithTxsDisabled.validate(mockProposal);
140
+ expect(result).toBe(PeerErrorSeverity.MidToleranceError);
141
+ });
142
+ it('returns undefined if txs not permitted but proposal has no txHashes', async ()=>{
143
+ const currentProposer = getSigner();
144
+ const validatorWithTxsDisabled = validatorFactory(epochCache, {
145
+ txsPermitted: false
146
+ });
147
+ const header = makeHeader(1, 100, 100);
148
+ const mockProposal = await makeProposal({
149
+ blockHeader: header,
150
+ lastBlockHeader: header,
151
+ signer: currentProposer,
152
+ txHashes: getTxHashes(0)
153
+ });
154
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
155
+ currentSlot: getSlot(100),
156
+ nextSlot: getSlot(101),
157
+ currentProposer: getAddress(currentProposer),
158
+ nextProposer: getAddress()
159
+ });
160
+ const result = await validatorWithTxsDisabled.validate(mockProposal);
161
+ expect(result).toBeUndefined();
162
+ });
163
+ it('returns undefined if txs permitted and proposal contains txHashes', async ()=>{
164
+ const currentProposer = getSigner();
165
+ const header = makeHeader(1, 100, 100);
166
+ const mockProposal = await makeProposal({
167
+ blockHeader: header,
168
+ lastBlockHeader: header,
169
+ signer: currentProposer,
170
+ txHashes: getTxHashes(2)
171
+ });
172
+ epochCache.getProposerAttesterAddressInCurrentOrNextSlot.mockResolvedValue({
173
+ currentSlot: getSlot(100),
174
+ nextSlot: getSlot(101),
175
+ currentProposer: getAddress(currentProposer),
176
+ nextProposer: getAddress()
177
+ });
178
+ const result = await validator.validate(mockProposal);
179
+ expect(result).toBeUndefined();
180
+ });
181
+ });
182
+ });
183
+ }
@@ -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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZV9jYWNoZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9hcmNoaXZlX2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2hGOzs7R0FHRztBQUNILHFCQUFhLFlBQWEsWUFBVyxhQUFhO0lBR3BDLE9BQU8sQ0FBQyxFQUFFO0lBRnRCLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLFlBQW9CLEVBQUUsRUFBRSx3QkFBd0IsRUFFL0M7SUFFWSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FVOUU7Q0FDRiJ9
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;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
+ {"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,4 +1,4 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { type AnyTx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
3
3
  export interface ArchiveSource {
4
4
  getArchiveIndices: (archives: Fr[]) => Promise<(bigint | undefined)[]>;
@@ -8,4 +8,4 @@ export declare class BlockHeaderTxValidator<T extends AnyTx> implements TxValida
8
8
  constructor(archiveSource: ArchiveSource);
9
9
  validateTx(tx: T): Promise<TxValidationResult>;
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9ibG9ja19oZWFkZXJfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBeUIsS0FBSyxrQkFBa0IsRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhILE1BQU0sV0FBVyxhQUFhO0lBQzVCLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDeEU7QUFFRCxxQkFBYSxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsV0FBVyxDQUFDLENBQUMsQ0FBQzs7SUFJNUUsWUFBWSxhQUFhLEVBQUUsYUFBYSxFQUV2QztJQUVLLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQU9uRDtDQUNGIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyX3ZhbGlkYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9ibG9ja19oZWFkZXJfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBeUIsS0FBSyxrQkFBa0IsRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhILE1BQU0sV0FBVyxhQUFhO0lBQzVCLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDeEU7QUFFRCxxQkFBYSxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFFLFlBQVcsV0FBVyxDQUFDLENBQUMsQ0FBQzs7SUFJNUUsWUFBWSxhQUFhLEVBQUUsYUFBYSxFQUV2QztJQUVLLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQU9uRDtDQUNGIn0=
@@ -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;;IAI5E,YAAY,aAAa,EAAE,aAAa,EAEvC;IAEK,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOnD;CACF"}
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;AAEzD,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,EAEvC;IAEK,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOnD;CACF"}
@@ -3,4 +3,4 @@ export declare class DataTxValidator implements TxValidator<Tx> {
3
3
  #private;
4
4
  validateTx(tx: Tx): Promise<TxValidationResult>;
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvZGF0YV92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQVNMLEVBQUUsRUFDRixLQUFLLGtCQUFrQixFQUN2QixLQUFLLFdBQVcsRUFDakIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixxQkFBYSxlQUFnQixZQUFXLFdBQVcsQ0FBQyxFQUFFLENBQUM7O0lBRy9DLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQU1wRDtDQTJGRiJ9
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV92YWxpZGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvZGF0YV92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQVNMLEVBQUUsRUFDRixLQUFLLGtCQUFrQixFQUN2QixLQUFLLFdBQVcsRUFDakIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixxQkFBYSxlQUFnQixZQUFXLFdBQVcsQ0FBQyxFQUFFLENBQUM7O0lBRy9DLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQU1wRDtDQW1HRiJ9
@@ -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,CAMpD;CA2FF"}
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,CAMpD;CAmGF"}
@@ -1,5 +1,5 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import type { ContractDataSource } from '@aztec/stdlib/contract';
4
4
  import type { GasFees } from '@aztec/stdlib/gas';
5
5
  import type { AllowedElement, ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
@@ -13,4 +13,4 @@ export interface MessageValidator {
13
13
  severity: PeerErrorSeverity;
14
14
  }
15
15
  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[]): Record<string, MessageValidator>[];
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUMsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFDVixjQUFjLEVBQ2QsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYWxELE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsU0FBUyxFQUFFO1FBQ1QsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDakQsQ0FBQztJQUNGLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQztDQUM3QjtBQUVELHdCQUFnQix5QkFBeUIsQ0FDdkMsU0FBUyxFQUFFLE1BQU0sRUFDakIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLHFCQUFxQixFQUFFLEVBQUUsRUFDekIsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RDLGFBQWEsRUFBRSw2QkFBNkIsRUFDNUMsWUFBWSxFQUFFLE9BQU8sRUFDckIsY0FBYyxHQUFFLGNBQWMsRUFBTyxHQUNwQyxNQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0ErRHBDIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21zZ192YWxpZGF0b3JzL3R4X3ZhbGlkYXRvci9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFDVixjQUFjLEVBQ2QsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYWxELE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsU0FBUyxFQUFFO1FBQ1QsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDakQsQ0FBQztJQUNGLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQztDQUM3QjtBQUVELHdCQUFnQix5QkFBeUIsQ0FDdkMsU0FBUyxFQUFFLE1BQU0sRUFDakIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLHFCQUFxQixFQUFFLEVBQUUsRUFDekIsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RDLGFBQWEsRUFBRSw2QkFBNkIsRUFDNUMsWUFBWSxFQUFFLE9BQU8sRUFDckIsY0FBYyxHQUFFLGNBQWMsRUFBTyxHQUNwQyxNQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0ErRHBDIn0=
@@ -1 +1 @@
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,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,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,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;AAGpD,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,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,GACpC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CA+DpC"}
@@ -1,4 +1,4 @@
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
3
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
4
4
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
@@ -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"}