@aztec/stdlib 2.1.0-rc.1 → 2.1.0-rc.11

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 (63) hide show
  1. package/dest/block/attestation_info.d.ts +30 -0
  2. package/dest/block/attestation_info.d.ts.map +1 -0
  3. package/dest/block/attestation_info.js +39 -0
  4. package/dest/block/index.d.ts +1 -0
  5. package/dest/block/index.d.ts.map +1 -1
  6. package/dest/block/index.js +1 -0
  7. package/dest/block/proposal/attestations_and_signers.js +1 -1
  8. package/dest/block/published_l2_block.d.ts +0 -2
  9. package/dest/block/published_l2_block.d.ts.map +1 -1
  10. package/dest/block/published_l2_block.js +0 -6
  11. package/dest/epoch-helpers/index.d.ts +2 -0
  12. package/dest/epoch-helpers/index.d.ts.map +1 -1
  13. package/dest/epoch-helpers/index.js +3 -0
  14. package/dest/file-store/factory.d.ts.map +1 -1
  15. package/dest/file-store/factory.js +18 -0
  16. package/dest/file-store/interface.d.ts +8 -2
  17. package/dest/file-store/interface.d.ts.map +1 -1
  18. package/dest/file-store/s3.d.ts +26 -0
  19. package/dest/file-store/s3.d.ts.map +1 -0
  20. package/dest/file-store/s3.js +252 -0
  21. package/dest/interfaces/aztec-node-admin.d.ts +3 -0
  22. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  23. package/dest/interfaces/configs.d.ts +5 -0
  24. package/dest/interfaces/configs.d.ts.map +1 -1
  25. package/dest/interfaces/configs.js +2 -1
  26. package/dest/interfaces/p2p.d.ts +2 -0
  27. package/dest/interfaces/p2p.d.ts.map +1 -1
  28. package/dest/interfaces/p2p.js +2 -1
  29. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  30. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  31. package/dest/l1-contracts/slash_factory.js +1 -1
  32. package/dest/p2p/block_attestation.d.ts +47 -1
  33. package/dest/p2p/block_attestation.d.ts.map +1 -1
  34. package/dest/p2p/block_attestation.js +43 -9
  35. package/dest/p2p/consensus_payload.js +1 -1
  36. package/dest/p2p/gossipable.d.ts +2 -4
  37. package/dest/p2p/gossipable.d.ts.map +1 -1
  38. package/dest/p2p/gossipable.js +5 -14
  39. package/dest/snapshots/download.d.ts.map +1 -1
  40. package/dest/snapshots/download.js +58 -2
  41. package/dest/snapshots/upload.d.ts.map +1 -1
  42. package/dest/snapshots/upload.js +1 -0
  43. package/dest/tests/mocks.d.ts +3 -1
  44. package/dest/tests/mocks.d.ts.map +1 -1
  45. package/dest/tests/mocks.js +31 -9
  46. package/package.json +10 -9
  47. package/src/block/attestation_info.ts +62 -0
  48. package/src/block/index.ts +1 -0
  49. package/src/block/proposal/attestations_and_signers.ts +1 -1
  50. package/src/block/published_l2_block.ts +0 -11
  51. package/src/epoch-helpers/index.ts +8 -0
  52. package/src/file-store/factory.ts +15 -0
  53. package/src/file-store/interface.ts +8 -2
  54. package/src/file-store/s3.ts +254 -0
  55. package/src/interfaces/configs.ts +3 -0
  56. package/src/interfaces/p2p.ts +4 -0
  57. package/src/l1-contracts/slash_factory.ts +1 -1
  58. package/src/p2p/block_attestation.ts +57 -6
  59. package/src/p2p/consensus_payload.ts +1 -1
  60. package/src/p2p/gossipable.ts +6 -16
  61. package/src/snapshots/download.ts +66 -2
  62. package/src/snapshots/upload.ts +1 -0
  63. package/src/tests/mocks.ts +51 -12
@@ -248,6 +248,8 @@ export const randomDeployedContract = async () => {
248
248
 
249
249
  export interface MakeConsensusPayloadOptions {
250
250
  signer?: Secp256k1Signer;
251
+ attesterSigner?: Secp256k1Signer;
252
+ proposerSigner?: Secp256k1Signer;
251
253
  header?: BlockHeader;
252
254
  archive?: Fr;
253
255
  stateReference?: StateReference;
@@ -296,21 +298,58 @@ export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockP
296
298
 
297
299
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
298
300
  export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): BlockAttestation => {
299
- const { blockNumber, payload, signature } = makeAndSignConsensusPayload(
300
- SignatureDomainSeparator.blockAttestation,
301
- options,
302
- );
303
- return new BlockAttestation(blockNumber, payload, signature);
301
+ const header = options?.header ?? makeHeader(1);
302
+ const {
303
+ signer,
304
+ attesterSigner = signer ?? Secp256k1Signer.random(),
305
+ proposerSigner = signer ?? Secp256k1Signer.random(),
306
+ archive = Fr.random(),
307
+ stateReference = header.state,
308
+ } = options ?? {};
309
+
310
+ const payload = ConsensusPayload.fromFields({
311
+ header: header.toPropose(),
312
+ archive,
313
+ stateReference,
314
+ });
315
+
316
+ // Sign as attester
317
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
318
+ const attestationSignature = attesterSigner.sign(attestationHash);
319
+
320
+ // Sign as proposer
321
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
322
+ const proposerSignature = proposerSigner.sign(proposalHash);
323
+
324
+ return new BlockAttestation(header.globalVariables.blockNumber, payload, attestationSignature, proposerSignature);
304
325
  };
305
326
 
306
- export const makeBlockAttestationFromBlock = (block: L2Block, signer?: Secp256k1Signer): BlockAttestation => {
307
- return makeBlockAttestation({
308
- signer,
309
- header: block.header,
310
- archive: block.archive.root,
311
- stateReference: block.header.state,
312
- txHashes: block.body.txEffects.map(tx => tx.txHash),
327
+ export const makeBlockAttestationFromBlock = (
328
+ block: L2Block,
329
+ attesterSigner?: Secp256k1Signer,
330
+ proposerSigner?: Secp256k1Signer,
331
+ ): BlockAttestation => {
332
+ const header = block.header;
333
+ const archive = block.archive.root;
334
+ const stateReference = block.header.state;
335
+
336
+ const payload = ConsensusPayload.fromFields({
337
+ header: header.toPropose(),
338
+ archive,
339
+ stateReference,
313
340
  });
341
+
342
+ // Sign as attester
343
+ const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
344
+ const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
345
+ const attestationSignature = attestationSigner.sign(attestationHash);
346
+
347
+ // Sign as proposer
348
+ const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
349
+ const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
350
+ const proposerSignature = proposalSignerToUse.sign(proposalHash);
351
+
352
+ return new BlockAttestation(header.globalVariables.blockNumber, payload, attestationSignature, proposerSignature);
314
353
  };
315
354
 
316
355
  export async function randomPublishedL2Block(