@aztec/stdlib 0.0.1-commit.e588bc7e5 → 0.0.1-commit.e5a3663dd

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 (338) hide show
  1. package/dest/abi/authorization_selector.d.ts +3 -6
  2. package/dest/abi/authorization_selector.d.ts.map +1 -1
  3. package/dest/abi/encoder.d.ts +1 -1
  4. package/dest/abi/encoder.d.ts.map +1 -1
  5. package/dest/abi/encoder.js +32 -6
  6. package/dest/abi/event_selector.d.ts +3 -6
  7. package/dest/abi/event_selector.d.ts.map +1 -1
  8. package/dest/abi/function_selector.d.ts +3 -6
  9. package/dest/abi/function_selector.d.ts.map +1 -1
  10. package/dest/abi/function_selector.js +1 -3
  11. package/dest/abi/note_selector.d.ts +3 -6
  12. package/dest/abi/note_selector.d.ts.map +1 -1
  13. package/dest/abi/note_selector.js +1 -3
  14. package/dest/abi/selector.d.ts +2 -2
  15. package/dest/abi/selector.d.ts.map +1 -1
  16. package/dest/abi/selector.js +1 -1
  17. package/dest/avm/revert_code.d.ts +8 -18
  18. package/dest/avm/revert_code.d.ts.map +1 -1
  19. package/dest/avm/revert_code.js +15 -30
  20. package/dest/aztec-address/index.d.ts +3 -6
  21. package/dest/aztec-address/index.d.ts.map +1 -1
  22. package/dest/aztec-address/index.js +2 -4
  23. package/dest/block/attestation_info.d.ts +3 -2
  24. package/dest/block/attestation_info.d.ts.map +1 -1
  25. package/dest/block/attestation_info.js +7 -5
  26. package/dest/block/block_data.d.ts +297 -8
  27. package/dest/block/block_data.d.ts.map +1 -1
  28. package/dest/block/block_data.js +16 -2
  29. package/dest/block/block_hash.d.ts +11 -10
  30. package/dest/block/block_hash.d.ts.map +1 -1
  31. package/dest/block/block_hash.js +10 -9
  32. package/dest/block/block_parameter.d.ts +30 -3
  33. package/dest/block/block_parameter.d.ts.map +1 -1
  34. package/dest/block/block_parameter.js +36 -2
  35. package/dest/block/l2_block_info.d.ts +6 -5
  36. package/dest/block/l2_block_info.d.ts.map +1 -1
  37. package/dest/block/l2_block_info.js +6 -5
  38. package/dest/block/l2_block_source.d.ts +39 -4
  39. package/dest/block/l2_block_source.d.ts.map +1 -1
  40. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  41. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  42. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  43. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  44. package/dest/block/l2_block_stream/l2_tips_store_base.js +1 -1
  45. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  46. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  47. package/dest/block/proposal/attestations_and_signers.js +26 -18
  48. package/dest/block/test/l2_tips_store_test_suite.js +1 -1
  49. package/dest/checkpoint/checkpoint_data.d.ts +7 -1
  50. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  51. package/dest/checkpoint/checkpoint_data.js +2 -0
  52. package/dest/config/chain-config.d.ts +2 -2
  53. package/dest/config/chain-config.d.ts.map +1 -1
  54. package/dest/config/chain-config.js +9 -3
  55. package/dest/config/sequencer-config.d.ts +5 -3
  56. package/dest/config/sequencer-config.d.ts.map +1 -1
  57. package/dest/config/sequencer-config.js +18 -4
  58. package/dest/contract/contract_address.d.ts +1 -1
  59. package/dest/contract/contract_address.js +2 -2
  60. package/dest/contract/private_function.d.ts +1 -1
  61. package/dest/contract/private_function.d.ts.map +1 -1
  62. package/dest/contract/private_function.js +2 -4
  63. package/dest/gas/fee_math.d.ts +49 -0
  64. package/dest/gas/fee_math.d.ts.map +1 -0
  65. package/dest/gas/fee_math.js +80 -0
  66. package/dest/gas/gas_fees.d.ts +5 -1
  67. package/dest/gas/gas_fees.d.ts.map +1 -1
  68. package/dest/gas/gas_fees.js +10 -1
  69. package/dest/gas/gas_settings.d.ts +40 -3
  70. package/dest/gas/gas_settings.d.ts.map +1 -1
  71. package/dest/gas/gas_settings.js +50 -6
  72. package/dest/gas/index.d.ts +2 -1
  73. package/dest/gas/index.d.ts.map +1 -1
  74. package/dest/gas/index.js +1 -0
  75. package/dest/ha-signing/config.d.ts +6 -6
  76. package/dest/ha-signing/config.d.ts.map +1 -1
  77. package/dest/ha-signing/config.js +4 -3
  78. package/dest/ha-signing/index.d.ts +2 -2
  79. package/dest/ha-signing/index.d.ts.map +1 -1
  80. package/dest/ha-signing/index.js +1 -1
  81. package/dest/ha-signing/local_config.d.ts +1 -1
  82. package/dest/ha-signing/local_config.d.ts.map +1 -1
  83. package/dest/ha-signing/local_config.js +2 -2
  84. package/dest/ha-signing/types.d.ts +37 -32
  85. package/dest/ha-signing/types.d.ts.map +1 -1
  86. package/dest/ha-signing/types.js +13 -6
  87. package/dest/hash/hash.d.ts +16 -1
  88. package/dest/hash/hash.d.ts.map +1 -1
  89. package/dest/hash/hash.js +32 -0
  90. package/dest/interfaces/archiver.d.ts +11 -1
  91. package/dest/interfaces/archiver.d.ts.map +1 -1
  92. package/dest/interfaces/archiver.js +10 -4
  93. package/dest/interfaces/aztec-node-admin.d.ts +22 -14
  94. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  95. package/dest/interfaces/aztec-node-admin.js +5 -4
  96. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  97. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  98. package/dest/interfaces/aztec-node-debug.js +18 -0
  99. package/dest/interfaces/aztec-node.d.ts +54 -55
  100. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  101. package/dest/interfaces/aztec-node.js +20 -16
  102. package/dest/interfaces/block_response.d.ts +156 -0
  103. package/dest/interfaces/block_response.d.ts.map +1 -0
  104. package/dest/interfaces/block_response.js +24 -0
  105. package/dest/interfaces/chain_tips.d.ts +304 -0
  106. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  107. package/dest/interfaces/chain_tips.js +11 -0
  108. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  109. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  110. package/dest/interfaces/checkpoint_parameter.js +20 -0
  111. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  112. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  113. package/dest/interfaces/checkpoint_response.js +26 -0
  114. package/dest/interfaces/client.d.ts +7 -1
  115. package/dest/interfaces/client.d.ts.map +1 -1
  116. package/dest/interfaces/client.js +6 -0
  117. package/dest/interfaces/configs.d.ts +12 -2
  118. package/dest/interfaces/configs.d.ts.map +1 -1
  119. package/dest/interfaces/configs.js +3 -1
  120. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  121. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  122. package/dest/interfaces/l1_publish_info.js +26 -0
  123. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  124. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  125. package/dest/interfaces/prover-client.d.ts +1 -1
  126. package/dest/interfaces/prover-client.d.ts.map +1 -1
  127. package/dest/interfaces/prover-client.js +0 -3
  128. package/dest/interfaces/proving-job.d.ts +166 -166
  129. package/dest/interfaces/server.d.ts +6 -1
  130. package/dest/interfaces/server.d.ts.map +1 -1
  131. package/dest/interfaces/server.js +5 -0
  132. package/dest/interfaces/slasher.d.ts +1 -10
  133. package/dest/interfaces/slasher.d.ts.map +1 -1
  134. package/dest/interfaces/slasher.js +0 -2
  135. package/dest/interfaces/validator.d.ts +27 -18
  136. package/dest/interfaces/validator.d.ts.map +1 -1
  137. package/dest/interfaces/validator.js +2 -0
  138. package/dest/l1-contracts/index.d.ts +2 -2
  139. package/dest/l1-contracts/index.d.ts.map +1 -1
  140. package/dest/l1-contracts/index.js +1 -1
  141. package/dest/logs/log_id.d.ts +1 -1
  142. package/dest/logs/log_id.d.ts.map +1 -1
  143. package/dest/logs/log_id.js +1 -2
  144. package/dest/logs/siloed_tag.d.ts +5 -7
  145. package/dest/logs/siloed_tag.d.ts.map +1 -1
  146. package/dest/logs/siloed_tag.js +4 -0
  147. package/dest/logs/tag.d.ts +5 -6
  148. package/dest/logs/tag.d.ts.map +1 -1
  149. package/dest/logs/tag.js +4 -0
  150. package/dest/p2p/block_proposal.d.ts +22 -14
  151. package/dest/p2p/block_proposal.d.ts.map +1 -1
  152. package/dest/p2p/block_proposal.js +45 -40
  153. package/dest/p2p/checkpoint_attestation.d.ts +10 -8
  154. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  155. package/dest/p2p/checkpoint_attestation.js +17 -24
  156. package/dest/p2p/checkpoint_proposal.d.ts +20 -14
  157. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  158. package/dest/p2p/checkpoint_proposal.js +34 -51
  159. package/dest/p2p/consensus_payload.d.ts +18 -7
  160. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  161. package/dest/p2p/consensus_payload.js +31 -19
  162. package/dest/p2p/gossipable.d.ts +4 -4
  163. package/dest/p2p/gossipable.d.ts.map +1 -1
  164. package/dest/p2p/signature_utils.d.ts +28 -19
  165. package/dest/p2p/signature_utils.d.ts.map +1 -1
  166. package/dest/p2p/signature_utils.js +118 -21
  167. package/dest/p2p/signed_txs.d.ts +15 -13
  168. package/dest/p2p/signed_txs.d.ts.map +1 -1
  169. package/dest/p2p/signed_txs.js +26 -24
  170. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  171. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  172. package/dest/parity/parity_base_private_inputs.js +7 -5
  173. package/dest/parity/parity_public_inputs.d.ts +7 -3
  174. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  175. package/dest/parity/parity_public_inputs.js +6 -3
  176. package/dest/rollup/block_headers_hash.d.ts +1 -1
  177. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  178. package/dest/rollup/block_headers_hash.js +8 -2
  179. package/dest/slashing/index.d.ts +2 -3
  180. package/dest/slashing/index.d.ts.map +1 -1
  181. package/dest/slashing/index.js +1 -2
  182. package/dest/slashing/serialization.d.ts +2 -6
  183. package/dest/slashing/serialization.d.ts.map +1 -1
  184. package/dest/slashing/serialization.js +0 -60
  185. package/dest/slashing/types.d.ts +4 -90
  186. package/dest/slashing/types.d.ts.map +1 -1
  187. package/dest/slashing/types.js +0 -14
  188. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  189. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  190. package/dest/slashing/{tally.js → votes.js} +1 -1
  191. package/dest/tests/factories.d.ts +2 -7
  192. package/dest/tests/factories.d.ts.map +1 -1
  193. package/dest/tests/factories.js +9 -19
  194. package/dest/tests/mocks.d.ts +7 -1
  195. package/dest/tests/mocks.d.ts.map +1 -1
  196. package/dest/tests/mocks.js +39 -30
  197. package/dest/timetable/index.d.ts +51 -1
  198. package/dest/timetable/index.d.ts.map +1 -1
  199. package/dest/timetable/index.js +218 -14
  200. package/dest/trees/nullifier_leaf.d.ts +2 -1
  201. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  202. package/dest/trees/nullifier_leaf.js +3 -0
  203. package/dest/tx/block_header.d.ts +2 -2
  204. package/dest/tx/block_header.d.ts.map +1 -1
  205. package/dest/tx/block_header.js +1 -1
  206. package/dest/tx/fee_provider.d.ts +10 -0
  207. package/dest/tx/fee_provider.d.ts.map +1 -0
  208. package/dest/tx/fee_provider.js +1 -0
  209. package/dest/tx/global_variable_builder.d.ts +3 -16
  210. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  211. package/dest/tx/index.d.ts +2 -1
  212. package/dest/tx/index.d.ts.map +1 -1
  213. package/dest/tx/index.js +1 -0
  214. package/dest/tx/indexed_tx_effect.d.ts +1 -1
  215. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  216. package/dest/tx/indexed_tx_effect.js +1 -2
  217. package/dest/tx/profiling.js +4 -4
  218. package/dest/tx/simulated_tx.d.ts +4 -4
  219. package/dest/tx/simulated_tx.d.ts.map +1 -1
  220. package/dest/tx/simulated_tx.js +3 -3
  221. package/dest/tx/tx.d.ts +3 -3
  222. package/dest/tx/tx.d.ts.map +1 -1
  223. package/dest/tx/tx_receipt.d.ts +8 -4
  224. package/dest/tx/tx_receipt.d.ts.map +1 -1
  225. package/dest/tx/tx_receipt.js +8 -15
  226. package/dest/types/shared.d.ts +1 -10
  227. package/dest/types/shared.d.ts.map +1 -1
  228. package/dest/types/shared.js +0 -9
  229. package/dest/vks/verification_key.d.ts +2 -137
  230. package/dest/vks/verification_key.d.ts.map +1 -1
  231. package/dest/vks/verification_key.js +5 -126
  232. package/dest/world-state/genesis_data.d.ts +11 -0
  233. package/dest/world-state/genesis_data.d.ts.map +1 -0
  234. package/dest/world-state/genesis_data.js +4 -0
  235. package/dest/world-state/index.d.ts +2 -1
  236. package/dest/world-state/index.d.ts.map +1 -1
  237. package/dest/world-state/index.js +1 -0
  238. package/dest/world-state/world_state_revision.d.ts +8 -1
  239. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  240. package/dest/world-state/world_state_revision.js +7 -1
  241. package/package.json +8 -8
  242. package/src/abi/authorization_selector.ts +2 -8
  243. package/src/abi/encoder.ts +42 -6
  244. package/src/abi/event_selector.ts +2 -8
  245. package/src/abi/function_selector.ts +3 -12
  246. package/src/abi/note_selector.ts +3 -12
  247. package/src/abi/selector.ts +1 -1
  248. package/src/avm/revert_code.ts +25 -39
  249. package/src/aztec-address/index.ts +4 -10
  250. package/src/block/attestation_info.ts +11 -11
  251. package/src/block/block_data.ts +20 -4
  252. package/src/block/block_hash.ts +21 -14
  253. package/src/block/block_parameter.ts +35 -2
  254. package/src/block/l2_block_info.ts +8 -6
  255. package/src/block/l2_block_source.ts +43 -3
  256. package/src/block/l2_block_stream/interfaces.ts +6 -2
  257. package/src/block/l2_block_stream/l2_tips_store_base.ts +1 -1
  258. package/src/block/proposal/attestations_and_signers.ts +32 -17
  259. package/src/block/test/l2_tips_store_test_suite.ts +1 -1
  260. package/src/checkpoint/checkpoint_data.ts +4 -0
  261. package/src/config/chain-config.ts +9 -4
  262. package/src/config/sequencer-config.ts +34 -6
  263. package/src/contract/contract_address.ts +2 -2
  264. package/src/contract/private_function.ts +3 -1
  265. package/src/gas/README.md +31 -0
  266. package/src/gas/fee_math.ts +120 -0
  267. package/src/gas/gas_fees.ts +17 -4
  268. package/src/gas/gas_settings.ts +65 -12
  269. package/src/gas/index.ts +1 -0
  270. package/src/ha-signing/config.ts +5 -2
  271. package/src/ha-signing/index.ts +3 -1
  272. package/src/ha-signing/local_config.ts +2 -2
  273. package/src/ha-signing/types.ts +48 -34
  274. package/src/hash/hash.ts +27 -0
  275. package/src/interfaces/archiver.ts +21 -3
  276. package/src/interfaces/aztec-node-admin.ts +8 -8
  277. package/src/interfaces/aztec-node-debug.ts +40 -0
  278. package/src/interfaces/aztec-node.ts +120 -95
  279. package/src/interfaces/block_response.ts +79 -0
  280. package/src/interfaces/chain_tips.ts +24 -0
  281. package/src/interfaces/checkpoint_parameter.ts +22 -0
  282. package/src/interfaces/checkpoint_response.ts +84 -0
  283. package/src/interfaces/client.ts +6 -0
  284. package/src/interfaces/configs.ts +8 -1
  285. package/src/interfaces/l1_publish_info.ts +40 -0
  286. package/src/interfaces/merkle_tree_operations.ts +3 -2
  287. package/src/interfaces/prover-client.ts +2 -5
  288. package/src/interfaces/server.ts +5 -0
  289. package/src/interfaces/slasher.ts +0 -6
  290. package/src/interfaces/validator.ts +22 -9
  291. package/src/l1-contracts/index.ts +1 -1
  292. package/src/logs/log_id.ts +1 -2
  293. package/src/logs/siloed_tag.ts +8 -9
  294. package/src/logs/tag.ts +8 -8
  295. package/src/p2p/block_proposal.ts +96 -36
  296. package/src/p2p/checkpoint_attestation.ts +20 -29
  297. package/src/p2p/checkpoint_proposal.ts +88 -71
  298. package/src/p2p/consensus_payload.ts +50 -28
  299. package/src/p2p/gossipable.ts +4 -4
  300. package/src/p2p/signature_utils.ts +110 -25
  301. package/src/p2p/signed_txs.ts +46 -28
  302. package/src/parity/parity_base_private_inputs.ts +10 -4
  303. package/src/parity/parity_public_inputs.ts +9 -2
  304. package/src/rollup/block_headers_hash.ts +11 -2
  305. package/src/slashing/index.ts +1 -2
  306. package/src/slashing/serialization.ts +1 -81
  307. package/src/slashing/types.ts +3 -35
  308. package/src/slashing/{tally.ts → votes.ts} +1 -1
  309. package/src/tests/factories.ts +15 -21
  310. package/src/tests/mocks.ts +63 -39
  311. package/src/timetable/index.ts +308 -13
  312. package/src/trees/nullifier_leaf.ts +4 -0
  313. package/src/tx/block_header.ts +2 -2
  314. package/src/tx/fee_provider.ts +10 -0
  315. package/src/tx/global_variable_builder.ts +2 -18
  316. package/src/tx/index.ts +1 -0
  317. package/src/tx/indexed_tx_effect.ts +1 -2
  318. package/src/tx/profiling.ts +4 -4
  319. package/src/tx/simulated_tx.ts +6 -2
  320. package/src/tx/tx.ts +2 -2
  321. package/src/tx/tx_receipt.ts +11 -14
  322. package/src/types/shared.ts +0 -10
  323. package/src/vks/verification_key.ts +5 -184
  324. package/src/world-state/genesis_data.ts +15 -0
  325. package/src/world-state/index.ts +1 -0
  326. package/src/world-state/world_state_revision.ts +9 -1
  327. package/dest/abi/mocked_keys.d.ts +0 -2
  328. package/dest/abi/mocked_keys.d.ts.map +0 -1
  329. package/dest/abi/mocked_keys.js +0 -1
  330. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  331. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  332. package/dest/l1-contracts/slash_factory.js +0 -158
  333. package/dest/slashing/empire.d.ts +0 -31
  334. package/dest/slashing/empire.d.ts.map +0 -1
  335. package/dest/slashing/empire.js +0 -87
  336. package/src/abi/mocked_keys.ts +0 -2
  337. package/src/l1-contracts/slash_factory.ts +0 -180
  338. package/src/slashing/empire.ts +0 -104
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_proposal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_proposal.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { BlockNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { CheckpointProposalHash, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
2
  import { keccak256 } from '@aztec/foundation/crypto/keccak';
4
- import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
5
3
  import { Fr } from '@aztec/foundation/curves/bn254';
6
4
  import { Signature } from '@aztec/foundation/eth-signature';
7
5
  import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -12,15 +10,9 @@ import { BlockHeader } from '../tx/block_header.js';
12
10
  import { TxHash } from '../tx/index.js';
13
11
  import { BlockProposal } from './block_proposal.js';
14
12
  import { Gossipable } from './gossipable.js';
15
- import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
13
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, getCoordinationSignatureTypedData, readCoordinationSignatureContext, recoverCoordinationSigner, serializeCoordinationSignatureContext } from './signature_utils.js';
16
14
  import { SignedTxs } from './signed_txs.js';
17
15
  import { TopicType } from './topic_type.js';
18
- // REFACTOR(palla): Use a branded type instead of a subclass of Buffer32
19
- export class CheckpointProposalHash extends Buffer32 {
20
- constructor(hash){
21
- super(hash);
22
- }
23
- }
24
16
  /**
25
17
  * A checkpoint proposal is created by the leader of the chain for the last block in a checkpoint.
26
18
  * It includes the aggregated checkpoint header that validators will attest to, plus optionally
@@ -30,14 +22,16 @@ export class CheckpointProposalHash extends Buffer32 {
30
22
  archive;
31
23
  feeAssetPriceModifier;
32
24
  signature;
25
+ signatureContext;
33
26
  lastBlock;
34
27
  static p2pTopic = TopicType.checkpoint_proposal;
35
- sender;
36
- constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */ signature, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
37
- super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.feeAssetPriceModifier = feeAssetPriceModifier, this.signature = signature, this.lastBlock = lastBlock;
28
+ primaryType;
29
+ cachedSender;
30
+ constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */ signature, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
31
+ super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.feeAssetPriceModifier = feeAssetPriceModifier, this.signature = signature, this.signatureContext = signatureContext, this.lastBlock = lastBlock, this.primaryType = 'CheckpointProposal', this.cachedSender = undefined;
38
32
  }
39
33
  generateP2PMessageIdentifier() {
40
- return Promise.resolve(new CheckpointProposalHash(keccak256(this.signature.toBuffer())));
34
+ return Promise.resolve(CheckpointProposalHash.fromBuffer(keccak256(this.signature.toBuffer())));
41
35
  }
42
36
  get slotNumber() {
43
37
  return this.checkpointHeader.slotNumber;
@@ -49,7 +43,7 @@ export class CheckpointProposalHash extends Buffer32 {
49
43
  if (!this.lastBlock) {
50
44
  return undefined;
51
45
  }
52
- return new BlockProposal(this.lastBlock.blockHeader, this.lastBlock.indexWithinCheckpoint, this.checkpointHeader.inHash, this.archive, this.lastBlock.txHashes, this.lastBlock.signature, this.lastBlock.signedTxs);
46
+ return new BlockProposal(this.lastBlock.blockHeader, this.lastBlock.indexWithinCheckpoint, this.checkpointHeader.inHash, this.archive, this.lastBlock.txHashes, this.lastBlock.signature, this.signatureContext, this.lastBlock.signedTxs);
53
47
  }
54
48
  toBlockInfo() {
55
49
  if (!this.lastBlock) {
@@ -75,68 +69,54 @@ export class CheckpointProposalHash extends Buffer32 {
75
69
  /**
76
70
  * Get the payload to sign for this checkpoint proposal.
77
71
  * The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
78
- */ getPayloadToSign(domainSeparator) {
72
+ */ getPayloadToSign() {
79
73
  return serializeToBuffer([
80
- domainSeparator,
81
74
  this.checkpointHeader,
82
75
  this.archive,
83
76
  serializeSignedBigInt(this.feeAssetPriceModifier)
84
77
  ]);
85
78
  }
86
- static async createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier, lastBlockInfo, payloadSigner) {
79
+ static async createProposalFromSigner(checkpointHeader, archiveRoot, checkpointNumber, feeAssetPriceModifier, lastBlockProposal, signatureContext, payloadSigner) {
87
80
  // Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
88
- const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty());
89
- const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
81
+ const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty(), signatureContext);
90
82
  const checkpointContext = {
91
83
  slot: checkpointHeader.slotNumber,
92
- blockNumber: lastBlockInfo?.blockHeader?.globalVariables.blockNumber ?? BlockNumber(0),
84
+ checkpointNumber,
93
85
  dutyType: DutyType.CHECKPOINT_PROPOSAL
94
86
  };
95
- if (lastBlockInfo) {
96
- // Sign block proposal before signing checkpoint proposal to ensure HA protection
97
- const lastBlockProposal = await BlockProposal.createProposalFromSigner(lastBlockInfo.blockHeader, lastBlockInfo.indexWithinCheckpoint, checkpointHeader.inHash, archiveRoot, lastBlockInfo.txHashes, lastBlockInfo.txs, payloadSigner);
98
- const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
99
- return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, {
100
- blockHeader: lastBlockInfo.blockHeader,
101
- indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
102
- txHashes: lastBlockInfo.txHashes,
103
- signature: lastBlockProposal.signature,
104
- signedTxs: lastBlockProposal.signedTxs
105
- });
106
- }
107
- const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
108
- return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature);
87
+ const typedData = getCoordinationSignatureTypedData(tempProposal);
88
+ const checkpointSignature = await payloadSigner(typedData, checkpointContext);
89
+ return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, signatureContext, lastBlockProposal);
109
90
  }
110
91
  /**
111
92
  * Lazily evaluate the sender of the proposal; result is cached.
112
93
  * If there's a lastBlock, also verifies the block proposal sender matches the checkpoint sender.
113
94
  * @returns The sender address, or undefined if signature recovery fails or senders don't match
114
95
  */ getSender() {
115
- if (!this.sender) {
116
- const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.checkpointProposal);
117
- const checkpointSender = tryRecoverAddress(hashed, this.signature);
118
- // If there's a lastBlock, verify the block proposal sender matches
96
+ if (this.cachedSender === undefined) {
97
+ const checkpointSender = recoverCoordinationSigner(this, this.signature);
119
98
  if (checkpointSender && this.lastBlock) {
120
99
  const blockProposal = this.getBlockProposal();
121
100
  const blockSender = blockProposal?.getSender();
122
101
  if (!blockSender || !blockSender.equals(checkpointSender)) {
123
- return undefined; // Sender mismatch - fail
102
+ this.cachedSender = null;
103
+ return undefined;
124
104
  }
125
105
  }
126
- // Cache the sender for later use
127
- this.sender = checkpointSender;
106
+ this.cachedSender = checkpointSender ?? null;
128
107
  }
129
- return this.sender;
108
+ return this.cachedSender ?? undefined;
130
109
  }
131
110
  getPayload() {
132
- return this.getPayloadToSign(SignatureDomainSeparator.checkpointProposal);
111
+ return this.getPayloadToSign();
133
112
  }
134
113
  toBuffer() {
135
114
  const buffer = [
136
115
  this.checkpointHeader,
137
116
  this.archive,
138
117
  serializeSignedBigInt(this.feeAssetPriceModifier),
139
- this.signature
118
+ this.signature,
119
+ serializeCoordinationSignatureContext(this.signatureContext)
140
120
  ];
141
121
  if (this.lastBlock) {
142
122
  buffer.push(1); // hasLastBlock = true
@@ -162,6 +142,7 @@ export class CheckpointProposalHash extends Buffer32 {
162
142
  const archive = reader.readObject(Fr);
163
143
  const feeAssetPriceModifier = reader.readInt256();
164
144
  const signature = reader.readObject(Signature);
145
+ const signatureContext = readCoordinationSignatureContext(reader);
165
146
  const hasLastBlock = reader.readNumber();
166
147
  if (hasLastBlock) {
167
148
  const blockHeader = reader.readObject(BlockHeader);
@@ -179,7 +160,7 @@ export class CheckpointProposalHash extends Buffer32 {
179
160
  signedTxs = SignedTxs.fromBuffer(reader);
180
161
  }
181
162
  }
182
- return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, {
163
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext, {
183
164
  blockHeader,
184
165
  indexWithinCheckpoint,
185
166
  txHashes,
@@ -187,20 +168,20 @@ export class CheckpointProposalHash extends Buffer32 {
187
168
  signedTxs
188
169
  });
189
170
  }
190
- return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature);
171
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext);
191
172
  }
192
173
  getSize() {
193
- let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4; /* hasLastBlock flag */
174
+ let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4 /* chainId */ + 20 /* rollupAddress */ + 4; /* hasLastBlock flag */
194
175
  if (this.lastBlock) {
195
176
  size += this.lastBlock.blockHeader.getSize() + 4 /* indexWithinCheckpoint */ + this.lastBlock.signature.getSize() + 4 /* txHashes.length */ + this.lastBlock.txHashes.length * TxHash.SIZE + 4 /* hasSignedTxs flag */ + (this.lastBlock.signedTxs ? this.lastBlock.signedTxs.getSize() : 0);
196
177
  }
197
178
  return size;
198
179
  }
199
180
  static empty() {
200
- return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty());
181
+ return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty(), EMPTY_COORDINATION_SIGNATURE_CONTEXT);
201
182
  }
202
183
  static random() {
203
- return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), {
184
+ return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), EMPTY_COORDINATION_SIGNATURE_CONTEXT, {
204
185
  blockHeader: BlockHeader.random(),
205
186
  indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
206
187
  txHashes: [
@@ -216,6 +197,8 @@ export class CheckpointProposalHash extends Buffer32 {
216
197
  archive: this.archive.toString(),
217
198
  signature: this.signature.toString(),
218
199
  feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
200
+ chainId: this.signatureContext.chainId,
201
+ rollupAddress: this.signatureContext.rollupAddress.toString(),
219
202
  lastBlock: this.lastBlock ? {
220
203
  blockHeader: this.lastBlock.blockHeader.toInspect(),
221
204
  indexWithinCheckpoint: this.lastBlock.indexWithinCheckpoint,
@@ -228,6 +211,6 @@ export class CheckpointProposalHash extends Buffer32 {
228
211
  * Returns a copy of this proposal without lastBlock info, as a CheckpointProposalCore.
229
212
  * Used when the lastBlock has been extracted and stored separately.
230
213
  */ toCore() {
231
- return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature);
214
+ return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature, this.signatureContext);
232
215
  }
233
216
  }
@@ -5,7 +5,7 @@ import { z } from 'zod';
5
5
  import type { Checkpoint } from '../checkpoint/checkpoint.js';
6
6
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
7
7
  import type { CheckpointProposal, CheckpointProposalCore } from './checkpoint_proposal.js';
8
- import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
8
+ import { type CoordinationSignatureContext, type CoordinationSignatureType, type Signable } from './signature_utils.js';
9
9
  /** Checkpoint consensus payload as signed by validators and verified on L1. */
10
10
  export declare class ConsensusPayload implements Signable {
11
11
  /** The proposed block header the attestation is made over */
@@ -14,6 +14,9 @@ export declare class ConsensusPayload implements Signable {
14
14
  readonly archive: Fr;
15
15
  /** The fee asset price modifier in basis points (from oracle) */
16
16
  readonly feeAssetPriceModifier: bigint;
17
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
18
+ readonly signatureContext: CoordinationSignatureContext;
19
+ readonly primaryType: CoordinationSignatureType;
17
20
  private size;
18
21
  constructor(
19
22
  /** The proposed block header the attestation is made over */
@@ -21,31 +24,37 @@ export declare class ConsensusPayload implements Signable {
21
24
  /** The archive root after the block is added */
22
25
  archive: Fr,
23
26
  /** The fee asset price modifier in basis points (from oracle) */
24
- feeAssetPriceModifier?: bigint);
27
+ feeAssetPriceModifier: bigint,
28
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
29
+ signatureContext: CoordinationSignatureContext);
25
30
  static get schema(): z.ZodEffects<z.ZodObject<{
26
31
  header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
27
32
  archive: z.ZodType<Fr, any, string>;
28
33
  feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
34
+ signatureContext: import("@aztec/foundation/schemas").ZodFor<CoordinationSignatureContext>;
29
35
  }, "strip", z.ZodTypeAny, {
30
36
  header: CheckpointHeader;
31
37
  archive: Fr;
32
38
  feeAssetPriceModifier: bigint;
39
+ signatureContext: CoordinationSignatureContext;
33
40
  }, {
34
41
  header?: any;
35
42
  archive: string;
36
43
  feeAssetPriceModifier: string | number | bigint;
44
+ signatureContext?: any;
37
45
  }>, ConsensusPayload, {
38
46
  header?: any;
39
47
  archive: string;
40
48
  feeAssetPriceModifier: string | number | bigint;
49
+ signatureContext?: any;
41
50
  }>;
42
- static getFields(fields: FieldsOf<ConsensusPayload>): readonly [CheckpointHeader, Fr, bigint];
43
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
51
+ static getFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>): readonly [CheckpointHeader, Fr, bigint, CoordinationSignatureContext];
52
+ getPayloadToSign(): Buffer;
44
53
  toBuffer(): Buffer;
45
54
  equals(other: ConsensusPayload | CheckpointProposal | CheckpointProposalCore): boolean;
46
55
  static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload;
47
- static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload;
48
- static fromCheckpoint(checkpoint: Checkpoint): ConsensusPayload;
56
+ static fromFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>): ConsensusPayload;
57
+ static fromCheckpoint(checkpoint: Checkpoint, signatureContext: CoordinationSignatureContext): ConsensusPayload;
49
58
  static empty(): ConsensusPayload;
50
59
  static random(): ConsensusPayload;
51
60
  /**
@@ -72,7 +81,9 @@ export declare class ConsensusPayload implements Signable {
72
81
  };
73
82
  archive: `0x${string}`;
74
83
  feeAssetPriceModifier: string;
84
+ chainId: number;
85
+ rollupAddress: `0x${string}`;
75
86
  };
76
87
  toString(): string;
77
88
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3BheWxvYWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY29uc2Vuc3VzX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQTRDLE1BQU0sNkJBQTZCLENBQUM7QUFFckcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLCtFQUErRTtBQUMvRSxxQkFBYSxnQkFBaUIsWUFBVyxRQUFRO0lBSTdDLDZEQUE2RDthQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDthQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7YUFDakQscUJBQXFCLEVBQUUsTUFBTTtJQVIvQyxPQUFPLENBQUMsSUFBSSxDQUFxQjtJQUVqQztJQUNFLDZEQUE2RDtJQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDtJQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7SUFDakQscUJBQXFCLEdBQUUsTUFBVyxFQUNoRDtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDJDQUVsRDtJQUVELGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBa0JsRTtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRU0sTUFBTSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxzQkFBc0IsR0FBRyxPQUFPLENBUTVGO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxnQkFBZ0IsQ0FROUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxnQkFBZ0IsQ0FFdEU7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsZ0JBQWdCLENBRTlEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUVoQztJQUVEOzs7T0FHRztJQUNILE9BQU8sSUFBSSxNQUFNLENBT2hCO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU1SO0lBRUQsUUFBUSxXQUVQO0NBQ0YifQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3BheWxvYWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY29uc2Vuc3VzX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQTRDLE1BQU0sNkJBQTZCLENBQUM7QUFFckcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sRUFDTCxLQUFLLDRCQUE0QixFQUNqQyxLQUFLLHlCQUF5QixFQUU5QixLQUFLLFFBQVEsRUFLZCxNQUFNLHNCQUFzQixDQUFDO0FBRTlCLCtFQUErRTtBQUMvRSxxQkFBYSxnQkFBaUIsWUFBVyxRQUFRO0lBTTdDLDZEQUE2RDthQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDthQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7YUFDakQscUJBQXFCLEVBQUUsTUFBTTtJQUM3Qyw2RUFBNkU7YUFDN0QsZ0JBQWdCLEVBQUUsNEJBQTRCO0lBWmhFLFFBQVEsQ0FBQyxXQUFXLEVBQUUseUJBQXlCLENBQTJCO0lBRTFFLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDO0lBQ0UsNkRBQTZEO0lBQzdDLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEMsZ0RBQWdEO0lBQ2hDLE9BQU8sRUFBRSxFQUFFO0lBQzNCLGlFQUFpRTtJQUNqRCxxQkFBcUIsRUFBRSxNQUFNO0lBQzdDLDZFQUE2RTtJQUM3RCxnQkFBZ0IsRUFBRSw0QkFBNEIsRUFDNUQ7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FTaEI7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsYUFBYSxDQUFDLHlFQUV2RTtJQUVELGdCQUFnQixJQUFJLE1BQU0sQ0FjekI7SUFFRCxRQUFRLElBQUksTUFBTSxDQU9qQjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEdBQUcsa0JBQWtCLEdBQUcsc0JBQXNCLEdBQUcsT0FBTyxDQVM1RjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsZ0JBQWdCLENBTzlEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxHQUFHLGdCQUFnQixDQUUzRjtJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsR0FBRyxnQkFBZ0IsQ0FPOUc7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUUvQjtJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBRWhDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FPaEI7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFRUjtJQUVELFFBQVEsV0FFUDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AAErG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,+EAA+E;AAC/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;aACjD,qBAAqB,EAAE,MAAM;IAR/C,OAAO,CAAC,IAAI,CAAqB;IAEjC;IACE,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;IACjD,qBAAqB,GAAE,MAAW,EAChD;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAElD;IAED,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAkBlE;IAED,QAAQ,IAAI,MAAM,CAEjB;IAEM,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,OAAO,CAQ5F;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAQ9D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAEtE;IAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAE9D;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;IAED,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAEhC;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM,CAOhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;MAMR;IAED,QAAQ,WAEP;CACF"}
1
+ {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AAErG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAE9B,KAAK,QAAQ,EAKd,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,qBAAa,gBAAiB,YAAW,QAAQ;IAM7C,6DAA6D;aAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;aACjD,qBAAqB,EAAE,MAAM;IAC7C,6EAA6E;aAC7D,gBAAgB,EAAE,4BAA4B;IAZhE,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAA2B;IAE1E,OAAO,CAAC,IAAI,CAAqB;IAEjC;IACE,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;IACjD,qBAAqB,EAAE,MAAM;IAC7C,6EAA6E;IAC7D,gBAAgB,EAAE,4BAA4B,EAC5D;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,yEAEvE;IAED,gBAAgB,IAAI,MAAM,CAczB;IAED,QAAQ,IAAI,MAAM,CAOjB;IAEM,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,OAAO,CAS5F;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAO9D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,GAAG,gBAAgB,CAE3F;IAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,4BAA4B,GAAG,gBAAgB,CAO9G;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;IAED,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAEhC;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM,CAOhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;MAQR;IAED,QAAQ,WAEP;CACF"}
@@ -5,40 +5,46 @@ import { hexToBuffer } from '@aztec/foundation/string';
5
5
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
6
6
  import { z } from 'zod';
7
7
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
8
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, coordinationSignatureContextEquals, coordinationSignatureContextSchema, readCoordinationSignatureContext, serializeCoordinationSignatureContext } from './signature_utils.js';
8
9
  /** Checkpoint consensus payload as signed by validators and verified on L1. */ export class ConsensusPayload {
9
10
  header;
10
11
  archive;
11
12
  feeAssetPriceModifier;
13
+ signatureContext;
14
+ primaryType;
12
15
  size;
13
- constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier = 0n){
16
+ constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext){
14
17
  this.header = header;
15
18
  this.archive = archive;
16
19
  this.feeAssetPriceModifier = feeAssetPriceModifier;
20
+ this.signatureContext = signatureContext;
21
+ this.primaryType = 'CheckpointAttestation';
17
22
  }
18
23
  static get schema() {
19
24
  return z.object({
20
25
  header: CheckpointHeader.schema,
21
26
  archive: schemas.Fr,
22
- feeAssetPriceModifier: schemas.BigInt
23
- }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier));
27
+ feeAssetPriceModifier: schemas.BigInt,
28
+ signatureContext: coordinationSignatureContextSchema
29
+ }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier, obj.signatureContext));
24
30
  }
25
31
  static getFields(fields) {
26
32
  return [
27
33
  fields.header,
28
34
  fields.archive,
29
- fields.feeAssetPriceModifier
35
+ fields.feeAssetPriceModifier,
36
+ fields.signatureContext
30
37
  ];
31
38
  }
32
- getPayloadToSign(domainSeparator) {
33
- const abi = parseAbiParameters('uint8, ' + //domainSeperator
34
- '(' + 'bytes32, ' + // archive
39
+ getPayloadToSign() {
40
+ // Matches the L1 ProposePayload struct in ProposeLib.sol.
41
+ const abi = parseAbiParameters('(' + 'bytes32, ' + // archive
35
42
  '(int256), ' + // oracleInput
36
43
  'bytes32' + // headerHash
37
44
  ')');
38
45
  const archiveRoot = this.archive.toString();
39
46
  const headerHash = this.header.hash().toString();
40
47
  const encodedData = encodeAbiParameters(abi, [
41
- domainSeparator,
42
48
  [
43
49
  archiveRoot,
44
50
  [
@@ -53,30 +59,34 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
53
59
  return serializeToBuffer([
54
60
  this.header,
55
61
  this.archive,
56
- serializeSignedBigInt(this.feeAssetPriceModifier)
62
+ serializeSignedBigInt(this.feeAssetPriceModifier),
63
+ serializeCoordinationSignatureContext(this.signatureContext)
57
64
  ]);
58
65
  }
59
66
  equals(other) {
60
67
  const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
61
68
  const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
62
- return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier;
69
+ return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier && coordinationSignatureContextEquals(this.signatureContext, other.signatureContext);
63
70
  }
64
71
  static fromBuffer(buf) {
65
72
  const reader = BufferReader.asReader(buf);
66
- const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr), reader.readInt256());
67
- return payload;
73
+ const header = reader.readObject(CheckpointHeader);
74
+ const archive = reader.readObject(Fr);
75
+ const feeAssetPriceModifier = reader.readInt256();
76
+ const signatureContext = readCoordinationSignatureContext(reader);
77
+ return new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
68
78
  }
69
79
  static fromFields(fields) {
70
- return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier);
80
+ return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext);
71
81
  }
72
- static fromCheckpoint(checkpoint) {
73
- return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier);
82
+ static fromCheckpoint(checkpoint, signatureContext) {
83
+ return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier, signatureContext);
74
84
  }
75
85
  static empty() {
76
- return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n);
86
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
77
87
  }
78
88
  static random() {
79
- return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n);
89
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
80
90
  }
81
91
  /**
82
92
  * Get the size of the consensus payload in bytes.
@@ -93,10 +103,12 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
93
103
  return {
94
104
  header: this.header.toInspect(),
95
105
  archive: this.archive.toString(),
96
- feeAssetPriceModifier: this.feeAssetPriceModifier.toString()
106
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
107
+ chainId: this.signatureContext.chainId,
108
+ rollupAddress: this.signatureContext.rollupAddress.toString()
97
109
  };
98
110
  }
99
111
  toString() {
100
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}}`;
112
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}, chainId: ${this.signatureContext.chainId}, rollupAddress: ${this.signatureContext.rollupAddress.toString()}`;
101
113
  }
102
114
  }
@@ -1,4 +1,4 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { BaseBuffer32 } from '@aztec/foundation/buffer';
2
2
  import type { TopicType } from './topic_type.js';
3
3
  export declare class P2PMessage {
4
4
  readonly payload: Buffer;
@@ -22,8 +22,8 @@ export declare abstract class Gossipable {
22
22
  * A digest of the message information **used for logging only**.
23
23
  * The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
24
24
  */
25
- p2pMessageLoggingIdentifier(): Promise<Buffer32>;
26
- abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
25
+ p2pMessageLoggingIdentifier(): Promise<BaseBuffer32>;
26
+ abstract generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
27
27
  abstract toBuffer(): Buffer;
28
28
  toMessage(): Buffer;
29
29
  /**
@@ -32,4 +32,4 @@ export declare abstract class Gossipable {
32
32
  */
33
33
  abstract getSize(): number;
34
34
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUF1QjtJQUN2QywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQU1yRDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd4RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUEyQjtJQUMzQywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQU16RDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAMrD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,YAAY,CAAC,CAMzD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
@@ -1,24 +1,33 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- export declare enum SignatureDomainSeparator {
3
- blockProposal = 0,
4
- checkpointAttestation = 1,
5
- attestationsAndSigners = 2,
6
- checkpointProposal = 3,
7
- signedTxs = 4
8
- }
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { Signature } from '@aztec/foundation/eth-signature';
4
+ import { type BufferReader } from '@aztec/foundation/serialize';
5
+ import { type TypedDataDefinition } from 'viem';
6
+ import type { ZodFor } from '../schemas/index.js';
7
+ export type CoordinationSignatureType = 'BlockProposal' | 'CheckpointProposal' | 'CheckpointAttestation' | 'AttestationsAndSigners' | 'SignedTxs';
8
+ export type CoordinationSignatureContext = {
9
+ chainId: number;
10
+ rollupAddress: EthAddress;
11
+ };
12
+ export declare const EMPTY_COORDINATION_SIGNATURE_CONTEXT: CoordinationSignatureContext;
13
+ export declare const coordinationSignatureContextSchema: ZodFor<CoordinationSignatureContext>;
9
14
  export interface Signable {
10
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
15
+ readonly primaryType: CoordinationSignatureType;
16
+ readonly signatureContext: CoordinationSignatureContext;
17
+ getPayloadToSign(): Buffer;
11
18
  }
19
+ export declare function coordinationSignatureContextEquals(a: CoordinationSignatureContext, b: CoordinationSignatureContext): boolean;
20
+ export declare function serializeCoordinationSignatureContext(ctx: CoordinationSignatureContext): Buffer;
21
+ export declare function readCoordinationSignatureContext(reader: BufferReader): CoordinationSignatureContext;
12
22
  /**
13
- * Get the hashed payload for the signature of the `Signable`
14
- * @param s - The `Signable` to sign
15
- * @returns The hashed payload for the signature of the `Signable`
16
- */
17
- export declare function getHashedSignaturePayload(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
18
- /**
19
- * Get the hashed payload for the signature of the `Signable` as an Ethereum signed message EIP-712
20
- * @param s - the `Signable` to sign
21
- * @returns The hashed payload for the signature of the `Signable` as an Ethereum signed message
23
+ * Returns true if the signable carries a context matching the node's expected context.
24
+ * Use this at the P2P ingress boundary to reject foreign-chain messages cheaply before
25
+ * performing any signature recovery.
22
26
  */
23
- export declare function getHashedSignaturePayloadEthSignedMessage(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJcEQsb0JBQVksd0JBQXdCO0lBQ2xDLGFBQWEsSUFBSTtJQUNqQixxQkFBcUIsSUFBSTtJQUN6QixzQkFBc0IsSUFBSTtJQUMxQixrQkFBa0IsSUFBSTtJQUN0QixTQUFTLElBQUk7Q0FDZDtBQUVELE1BQU0sV0FBVyxRQUFRO0lBQ3ZCLGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBQUM7Q0FDckU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixHQUFHLFFBQVEsQ0FFMUc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlDQUF5QyxDQUN2RCxDQUFDLEVBQUUsUUFBUSxFQUNYLGVBQWUsRUFBRSx3QkFBd0IsR0FDeEMsUUFBUSxDQUdWIn0=
27
+ export declare function hasValidSignatureContext(signable: Signable, expected: CoordinationSignatureContext): boolean;
28
+ export declare function getCoordinationSignatureTypedDataForPayloadHash(payloadHash: Buffer32, type: CoordinationSignatureType, context: CoordinationSignatureContext): TypedDataDefinition;
29
+ export declare function getCoordinationSignatureTypedData(signable: Signable): TypedDataDefinition;
30
+ export declare function getHashedSignaturePayloadTypedData(signable: Signable): Buffer32;
31
+ export declare function recoverCoordinationSigner(signable: Signable, signature: Signature): EthAddress | undefined;
32
+ export declare function getHashedSignaturePayload(s: Signable): Buffer32;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRixPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFHL0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsTUFBTSxNQUFNLHlCQUF5QixHQUNqQyxlQUFlLEdBQ2Ysb0JBQW9CLEdBQ3BCLHVCQUF1QixHQUN2Qix3QkFBd0IsR0FDeEIsV0FBVyxDQUFDO0FBRWhCLE1BQU0sTUFBTSw0QkFBNEIsR0FBRztJQUN6QyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLGFBQWEsRUFBRSxVQUFVLENBQUM7Q0FDM0IsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQ0FBb0MsRUFBRSw0QkFHbEQsQ0FBQztBQUVGLGVBQU8sTUFBTSxrQ0FBa0MsRUFBRSxNQUFNLENBQUMsNEJBQTRCLENBR2xGLENBQUM7QUFFSCxNQUFNLFdBQVcsUUFBUTtJQUN2QixRQUFRLENBQUMsV0FBVyxFQUFFLHlCQUF5QixDQUFDO0lBQ2hELFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQztJQUN4RCxnQkFBZ0IsSUFBSSxNQUFNLENBQUM7Q0FDNUI7QUFFRCx3QkFBZ0Isa0NBQWtDLENBQ2hELENBQUMsRUFBRSw0QkFBNEIsRUFDL0IsQ0FBQyxFQUFFLDRCQUE0QixHQUM5QixPQUFPLENBRVQ7QUFFRCx3QkFBZ0IscUNBQXFDLENBQUMsR0FBRyxFQUFFLDRCQUE0QixHQUFHLE1BQU0sQ0FFL0Y7QUFFRCx3QkFBZ0IsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLFlBQVksR0FBRyw0QkFBNEIsQ0FJbkc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixHQUFHLE9BQU8sQ0FFNUc7QUFxQkQsd0JBQWdCLCtDQUErQyxDQUM3RCxXQUFXLEVBQUUsUUFBUSxFQUNyQixJQUFJLEVBQUUseUJBQXlCLEVBQy9CLE9BQU8sRUFBRSw0QkFBNEIsR0FDcEMsbUJBQW1CLENBY3JCO0FBRUQsd0JBQWdCLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsbUJBQW1CLENBR3pGO0FBRUQsd0JBQWdCLGtDQUFrQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsUUFBUSxDQUUvRTtBQUVELHdCQUFnQix5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FHMUc7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRS9EIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD,oBAAY,wBAAwB;IAClC,aAAa,IAAI;IACjB,qBAAqB,IAAI;IACzB,sBAAsB,IAAI;IAC1B,kBAAkB,IAAI;IACtB,SAAS,IAAI;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAAC;CACrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,wBAAwB,GAAG,QAAQ,CAE1G;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,CAAC,EAAE,QAAQ,EACX,eAAe,EAAE,wBAAwB,GACxC,QAAQ,CAGV"}
1
+ {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,MAAM,CAAC;AAG/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,WAAW,CAAC;AAEhB,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,4BAGlD,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,4BAA4B,CAGlF,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IACxD,gBAAgB,IAAI,MAAM,CAAC;CAC5B;AAED,wBAAgB,kCAAkC,CAChD,CAAC,EAAE,4BAA4B,EAC/B,CAAC,EAAE,4BAA4B,GAC9B,OAAO,CAET;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,4BAA4B,GAAG,MAAM,CAE/F;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,4BAA4B,CAInG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAE5G;AAqBD,wBAAgB,+CAA+C,CAC7D,WAAW,EAAE,QAAQ,EACrB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,4BAA4B,GACpC,mBAAmB,CAcrB;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,CAGzF;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAG1G;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE/D"}