@aztec/stdlib 0.0.1-commit.08c5969dc → 0.0.1-commit.0c875d939

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 (42) hide show
  1. package/dest/checkpoint/checkpoint.d.ts +16 -7
  2. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  3. package/dest/checkpoint/checkpoint.js +19 -9
  4. package/dest/checkpoint/published_checkpoint.d.ts +7 -1
  5. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  6. package/dest/contract/contract_class_id.d.ts +1 -1
  7. package/dest/contract/contract_class_id.d.ts.map +1 -1
  8. package/dest/contract/contract_class_id.js +3 -2
  9. package/dest/interfaces/block-builder.d.ts +2 -2
  10. package/dest/interfaces/block-builder.d.ts.map +1 -1
  11. package/dest/interfaces/proving-job.d.ts +2 -2
  12. package/dest/interfaces/validator.d.ts +2 -2
  13. package/dest/interfaces/validator.d.ts.map +1 -1
  14. package/dest/note/index.d.ts +1 -2
  15. package/dest/note/index.d.ts.map +1 -1
  16. package/dest/note/index.js +0 -1
  17. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  18. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  19. package/dest/p2p/checkpoint_attestation.js +1 -1
  20. package/dest/p2p/checkpoint_proposal.d.ts +10 -5
  21. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  22. package/dest/p2p/checkpoint_proposal.js +20 -15
  23. package/dest/p2p/consensus_payload.d.ts +12 -3
  24. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  25. package/dest/p2p/consensus_payload.js +22 -15
  26. package/dest/tests/mocks.d.ts +4 -1
  27. package/dest/tests/mocks.d.ts.map +1 -1
  28. package/dest/tests/mocks.js +11 -6
  29. package/package.json +9 -9
  30. package/src/checkpoint/checkpoint.ts +27 -11
  31. package/src/contract/contract_class_id.ts +3 -2
  32. package/src/interfaces/block-builder.ts +1 -0
  33. package/src/interfaces/validator.ts +1 -0
  34. package/src/note/index.ts +0 -1
  35. package/src/p2p/checkpoint_attestation.ts +6 -1
  36. package/src/p2p/checkpoint_proposal.ts +35 -13
  37. package/src/p2p/consensus_payload.ts +25 -12
  38. package/src/tests/mocks.ts +18 -7
  39. package/dest/note/notes_filter.d.ts +0 -30
  40. package/dest/note/notes_filter.d.ts.map +0 -1
  41. package/dest/note/notes_filter.js +0 -11
  42. package/src/note/notes_filter.ts +0 -41
@@ -4,7 +4,7 @@ import { keccak256 } from '@aztec/foundation/crypto/keccak';
4
4
  import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
6
  import { Signature } from '@aztec/foundation/eth-signature';
7
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
7
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
8
8
  import { DutyType } from '@aztec/validator-ha-signer/types';
9
9
  import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
10
10
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
@@ -28,12 +28,13 @@ export class CheckpointProposalHash extends Buffer32 {
28
28
  */ export class CheckpointProposal extends Gossipable {
29
29
  checkpointHeader;
30
30
  archive;
31
+ feeAssetPriceModifier;
31
32
  signature;
32
33
  lastBlock;
33
34
  static p2pTopic = TopicType.checkpoint_proposal;
34
35
  sender;
35
- constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive) */ signature, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
36
- super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.signature = signature, this.lastBlock = lastBlock;
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;
37
38
  }
38
39
  generateP2PMessageIdentifier() {
39
40
  return Promise.resolve(new CheckpointProposalHash(keccak256(this.signature.toBuffer())));
@@ -85,17 +86,18 @@ export class CheckpointProposalHash extends Buffer32 {
85
86
  }
86
87
  /**
87
88
  * Get the payload to sign for this checkpoint proposal.
88
- * The signature is over the checkpoint header + archive root (for consensus).
89
+ * The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
89
90
  */ getPayloadToSign(domainSeparator) {
90
91
  return serializeToBuffer([
91
92
  domainSeparator,
92
93
  this.checkpointHeader,
93
- this.archive
94
+ this.archive,
95
+ serializeSignedBigInt(this.feeAssetPriceModifier)
94
96
  ]);
95
97
  }
96
- static async createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payloadSigner) {
98
+ static async createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier, lastBlockInfo, payloadSigner) {
97
99
  // Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
98
- const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, Signature.empty(), undefined);
100
+ const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty());
99
101
  const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
100
102
  const checkpointContext = {
101
103
  slot: checkpointHeader.slotNumber,
@@ -104,10 +106,10 @@ export class CheckpointProposalHash extends Buffer32 {
104
106
  };
105
107
  const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
106
108
  if (!lastBlockInfo) {
107
- return new CheckpointProposal(checkpointHeader, archiveRoot, checkpointSignature);
109
+ return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature);
108
110
  }
109
111
  const lastBlockProposal = await BlockProposal.createProposalFromSigner(lastBlockInfo.blockHeader, lastBlockInfo.indexWithinCheckpoint, checkpointHeader.inHash, archiveRoot, lastBlockInfo.txHashes, lastBlockInfo.txs, payloadSigner);
110
- return new CheckpointProposal(checkpointHeader, archiveRoot, checkpointSignature, {
112
+ return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, {
111
113
  blockHeader: lastBlockInfo.blockHeader,
112
114
  indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
113
115
  txHashes: lastBlockInfo.txHashes,
@@ -143,6 +145,7 @@ export class CheckpointProposalHash extends Buffer32 {
143
145
  const buffer = [
144
146
  this.checkpointHeader,
145
147
  this.archive,
148
+ serializeSignedBigInt(this.feeAssetPriceModifier),
146
149
  this.signature
147
150
  ];
148
151
  if (this.lastBlock) {
@@ -167,6 +170,7 @@ export class CheckpointProposalHash extends Buffer32 {
167
170
  const reader = BufferReader.asReader(buf);
168
171
  const checkpointHeader = reader.readObject(CheckpointHeader);
169
172
  const archive = reader.readObject(Fr);
173
+ const feeAssetPriceModifier = reader.readInt256();
170
174
  const signature = reader.readObject(Signature);
171
175
  const hasLastBlock = reader.readNumber();
172
176
  if (hasLastBlock) {
@@ -185,7 +189,7 @@ export class CheckpointProposalHash extends Buffer32 {
185
189
  signedTxs = SignedTxs.fromBuffer(reader);
186
190
  }
187
191
  }
188
- return new CheckpointProposal(checkpointHeader, archive, signature, {
192
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, {
189
193
  blockHeader,
190
194
  indexWithinCheckpoint,
191
195
  txHashes,
@@ -193,20 +197,20 @@ export class CheckpointProposalHash extends Buffer32 {
193
197
  signedTxs
194
198
  });
195
199
  }
196
- return new CheckpointProposal(checkpointHeader, archive, signature);
200
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature);
197
201
  }
198
202
  getSize() {
199
- let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 4; /* hasLastBlock flag */
203
+ let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4; /* hasLastBlock flag */
200
204
  if (this.lastBlock) {
201
205
  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);
202
206
  }
203
207
  return size;
204
208
  }
205
209
  static empty() {
206
- return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, Signature.empty());
210
+ return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty());
207
211
  }
208
212
  static random() {
209
- return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), Signature.random(), {
213
+ return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), {
210
214
  blockHeader: BlockHeader.random(),
211
215
  indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
212
216
  txHashes: [
@@ -221,6 +225,7 @@ export class CheckpointProposalHash extends Buffer32 {
221
225
  checkpointHeader: this.checkpointHeader.toInspect(),
222
226
  archive: this.archive.toString(),
223
227
  signature: this.signature.toString(),
228
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
224
229
  lastBlock: this.lastBlock ? {
225
230
  blockHeader: this.lastBlock.blockHeader.toInspect(),
226
231
  indexWithinCheckpoint: this.lastBlock.indexWithinCheckpoint,
@@ -233,6 +238,6 @@ export class CheckpointProposalHash extends Buffer32 {
233
238
  * Returns a copy of this proposal without lastBlock info, as a CheckpointProposalCore.
234
239
  * Used when the lastBlock has been extracted and stored separately.
235
240
  */ toCore() {
236
- return new CheckpointProposal(this.checkpointHeader, this.archive, this.signature);
241
+ return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature);
237
242
  }
238
243
  }
@@ -12,26 +12,34 @@ export declare class ConsensusPayload implements Signable {
12
12
  readonly header: CheckpointHeader;
13
13
  /** The archive root after the block is added */
14
14
  readonly archive: Fr;
15
+ /** The fee asset price modifier in basis points (from oracle) */
16
+ readonly feeAssetPriceModifier: bigint;
15
17
  private size;
16
18
  constructor(
17
19
  /** The proposed block header the attestation is made over */
18
20
  header: CheckpointHeader,
19
21
  /** The archive root after the block is added */
20
- archive: Fr);
22
+ archive: Fr,
23
+ /** The fee asset price modifier in basis points (from oracle) */
24
+ feeAssetPriceModifier?: bigint);
21
25
  static get schema(): z.ZodEffects<z.ZodObject<{
22
26
  header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
23
27
  archive: z.ZodType<Fr, any, string>;
28
+ feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
24
29
  }, "strip", z.ZodTypeAny, {
25
30
  header: CheckpointHeader;
26
31
  archive: Fr;
32
+ feeAssetPriceModifier: bigint;
27
33
  }, {
28
34
  header?: any;
29
35
  archive: string;
36
+ feeAssetPriceModifier: string | number | bigint;
30
37
  }>, ConsensusPayload, {
31
38
  header?: any;
32
39
  archive: string;
40
+ feeAssetPriceModifier: string | number | bigint;
33
41
  }>;
34
- static getFields(fields: FieldsOf<ConsensusPayload>): readonly [CheckpointHeader, Fr];
42
+ static getFields(fields: FieldsOf<ConsensusPayload>): readonly [CheckpointHeader, Fr, bigint];
35
43
  getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
36
44
  toBuffer(): Buffer;
37
45
  equals(other: ConsensusPayload | CheckpointProposal | CheckpointProposalCore): boolean;
@@ -63,7 +71,8 @@ export declare class ConsensusPayload implements Signable {
63
71
  totalManaUsed: bigint;
64
72
  };
65
73
  archive: `0x${string}`;
74
+ feeAssetPriceModifier: string;
66
75
  };
67
76
  toString(): string;
68
77
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3BheWxvYWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY29uc2Vuc3VzX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLCtFQUErRTtBQUMvRSxxQkFBYSxnQkFBaUIsWUFBVyxRQUFRO0lBSTdDLDZEQUE2RDthQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDthQUNoQyxPQUFPLEVBQUUsRUFBRTtJQU43QixPQUFPLENBQUMsSUFBSSxDQUFxQjtJQUVqQztJQUNFLDZEQUE2RDtJQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDtJQUNoQyxPQUFPLEVBQUUsRUFBRSxFQUN6QjtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7T0FPaEI7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsbUNBRWxEO0lBRUQsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLHdCQUF3QixHQUFHLE1BQU0sQ0FrQmxFO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFTSxNQUFNLENBQUMsS0FBSyxFQUFFLGdCQUFnQixHQUFHLGtCQUFrQixHQUFHLHNCQUFzQixHQUFHLE9BQU8sQ0FHNUY7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGdCQUFnQixDQUk5RDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGdCQUFnQixDQUV0RTtJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxnQkFBZ0IsQ0FFOUQ7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUUvQjtJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBRWhDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FPaEI7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFLUjtJQUVELFFBQVEsV0FFUDtDQUNGIn0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3BheWxvYWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY29uc2Vuc3VzX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQTRDLE1BQU0sNkJBQTZCLENBQUM7QUFFckcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLCtFQUErRTtBQUMvRSxxQkFBYSxnQkFBaUIsWUFBVyxRQUFRO0lBSTdDLDZEQUE2RDthQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDthQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7YUFDakQscUJBQXFCLEVBQUUsTUFBTTtJQVIvQyxPQUFPLENBQUMsSUFBSSxDQUFxQjtJQUVqQztJQUNFLDZEQUE2RDtJQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDtJQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7SUFDakQscUJBQXFCLEdBQUUsTUFBVyxFQUNoRDtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDJDQUVsRDtJQUVELGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBa0JsRTtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRU0sTUFBTSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxzQkFBc0IsR0FBRyxPQUFPLENBUTVGO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxnQkFBZ0IsQ0FROUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxnQkFBZ0IsQ0FFdEU7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsZ0JBQWdCLENBRTlEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUVoQztJQUVEOzs7T0FHRztJQUNILE9BQU8sSUFBSSxNQUFNLENBT2hCO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU1SO0lBRUQsUUFBUSxXQUVQO0NBQ0YifQ==
@@ -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,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,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;IAN7B,OAAO,CAAC,IAAI,CAAqB;IAEjC;IACE,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE,EACzB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,mCAElD;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,CAG5F;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAI9D;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;;;;;;;;;;;;;;;;;;MAKR;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,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,6 +1,6 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { schemas } from '@aztec/foundation/schemas';
3
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
  import { hexToBuffer } from '@aztec/foundation/string';
5
5
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
6
6
  import { z } from 'zod';
@@ -8,21 +8,25 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
8
8
  /** Checkpoint consensus payload as signed by validators and verified on L1. */ export class ConsensusPayload {
9
9
  header;
10
10
  archive;
11
+ feeAssetPriceModifier;
11
12
  size;
12
- constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive){
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){
13
14
  this.header = header;
14
15
  this.archive = archive;
16
+ this.feeAssetPriceModifier = feeAssetPriceModifier;
15
17
  }
16
18
  static get schema() {
17
19
  return z.object({
18
20
  header: CheckpointHeader.schema,
19
- archive: schemas.Fr
20
- }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive));
21
+ archive: schemas.Fr,
22
+ feeAssetPriceModifier: schemas.BigInt
23
+ }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier));
21
24
  }
22
25
  static getFields(fields) {
23
26
  return [
24
27
  fields.header,
25
- fields.archive
28
+ fields.archive,
29
+ fields.feeAssetPriceModifier
26
30
  ];
27
31
  }
28
32
  getPayloadToSign(domainSeparator) {
@@ -38,7 +42,7 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
38
42
  [
39
43
  archiveRoot,
40
44
  [
41
- 0n
45
+ this.feeAssetPriceModifier
42
46
  ],
43
47
  headerHash
44
48
  ]
@@ -48,29 +52,31 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
48
52
  toBuffer() {
49
53
  return serializeToBuffer([
50
54
  this.header,
51
- this.archive
55
+ this.archive,
56
+ serializeSignedBigInt(this.feeAssetPriceModifier)
52
57
  ]);
53
58
  }
54
59
  equals(other) {
55
60
  const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
56
- return this.header.equals(otherHeader) && this.archive.equals(other.archive);
61
+ const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
62
+ return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier;
57
63
  }
58
64
  static fromBuffer(buf) {
59
65
  const reader = BufferReader.asReader(buf);
60
- const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr));
66
+ const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr), reader.readInt256());
61
67
  return payload;
62
68
  }
63
69
  static fromFields(fields) {
64
- return new ConsensusPayload(fields.header, fields.archive);
70
+ return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier);
65
71
  }
66
72
  static fromCheckpoint(checkpoint) {
67
- return new ConsensusPayload(checkpoint.header, checkpoint.archive.root);
73
+ return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier);
68
74
  }
69
75
  static empty() {
70
- return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO);
76
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n);
71
77
  }
72
78
  static random() {
73
- return new ConsensusPayload(CheckpointHeader.random(), Fr.random());
79
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n);
74
80
  }
75
81
  /**
76
82
  * Get the size of the consensus payload in bytes.
@@ -86,10 +92,11 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
86
92
  toInspect() {
87
93
  return {
88
94
  header: this.header.toInspect(),
89
- archive: this.archive.toString()
95
+ archive: this.archive.toString(),
96
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString()
90
97
  };
91
98
  }
92
99
  toString() {
93
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}}`;
100
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}}`;
94
101
  }
95
102
  }
@@ -104,6 +104,7 @@ export interface MakeConsensusPayloadOptions {
104
104
  archive?: Fr;
105
105
  txHashes?: TxHash[];
106
106
  txs?: Tx[];
107
+ feeAssetPriceModifier?: bigint;
107
108
  }
108
109
  export interface MakeBlockProposalOptions {
109
110
  signer?: Secp256k1Signer;
@@ -118,6 +119,7 @@ export interface MakeCheckpointProposalOptions {
118
119
  signer?: Secp256k1Signer;
119
120
  checkpointHeader?: CheckpointHeader;
120
121
  archiveRoot?: Fr;
122
+ feeAssetPriceModifier?: bigint;
121
123
  /** Options for the lastBlock - if undefined, no lastBlock is included */
122
124
  lastBlock?: {
123
125
  blockHeader?: BlockHeader;
@@ -135,6 +137,7 @@ export declare const makeCheckpointProposal: (options?: MakeCheckpointProposalOp
135
137
  export type MakeCheckpointAttestationOptions = {
136
138
  header?: CheckpointHeader;
137
139
  archive?: Fr;
140
+ feeAssetPriceModifier?: bigint;
138
141
  attesterSigner?: Secp256k1Signer;
139
142
  proposerSigner?: Secp256k1Signer;
140
143
  signer?: Secp256k1Signer;
@@ -159,4 +162,4 @@ export declare const makeCheckpointAttestationFromBlock: (block: L2Block, attest
159
162
  export declare function randomPublishedL2Block(l2BlockNumber: number, opts?: {
160
163
  signers?: Secp256k1Signer[];
161
164
  }): Promise<CheckpointedL2Block>;
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVd4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZUFBZSxFQUlmLGlCQUFpQixFQUNqQixFQUFFLEVBSUgsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFlMUMsZUFBTyxNQUFNLFlBQVksY0FBZ0MsQ0FBQztBQUUxRCxlQUFPLE1BQU0sTUFBTTs7Ozs7Ozs7Ozs7Ozs7OztpQkFrR2xCLENBQUM7QUFFRixlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs2QkFDb0YsQ0FBQztBQUVqSCxnREFBZ0Q7QUFDaEQsd0JBQXNCLGVBQWUsQ0FBQyxFQUNwQyxJQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLEVBQUUsRUFDRixPQUFpQixFQUNqQixPQUFpQixFQUNqQixXQUF5RSxFQUN6RSxVQUFvQixFQUNwQixpQkFBdUQsRUFDdkQsZUFBeUMsRUFDekMsaUJBQWtELEVBQ2xELFFBQVEsRUFDUix5QkFBeUIsRUFFekIsT0FBZ0UsRUFDaEUsV0FBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLEdBQUcsVUFBVSxFQUNkLEdBQUU7SUFDRCxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDZCxpQkFBaUIsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUNoQyxFQUFFLENBQUMsRUFBRSx3QkFBd0IsQ0FBQztJQUM5QixXQUFXLENBQUMsRUFBRSxXQUFXLENBQUM7SUFDMUIsZUFBZSxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQ2xDLGlCQUFpQixDQUFDLEVBQUUsc0JBQXNCLENBQUM7SUFDM0MsaUJBQWlCLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUN0Qyx5QkFBeUIsQ0FBQyxFQUFFLGVBQWUsQ0FBQztJQUM1QyxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDdEIsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztDQUM1RCxHQUFHLFVBQVUsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBTSx3REF1SXBDO0FBbUJELGVBQU8sTUFBTSxlQUFlLGdEQWdCM0IsQ0FBQztBQUVGLHdCQUFnQixrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBRWxFO0FBRUQsd0JBQXNCLHlCQUF5QixDQUM3QyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsRUFDRSxnQkFBaUMsRUFDakMsU0FBYSxFQUNiLE1BQU0sRUFDTixjQUFrQixFQUNsQixpQkFBcUIsRUFDckIsZ0JBQTZCLEVBQzdCLGVBQWUsRUFDZixVQUFVLEVBQ1YsR0FBRyxPQUFPLEVBQ1gsR0FBRTtJQUNELGdCQUFnQixDQUFDLEVBQUUsV0FBVyxDQUFDO0lBQy9CLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNuQixjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDM0IsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9GLGVBQWUsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ25CLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNyQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDbEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTTs7OztHQTBDckQ7QUFFRCxlQUFPLE1BQU0sc0JBQXNCLHdCQVVqQyxDQUFDO0FBRUgsZUFBTyxNQUFNLGlDQUFpQzs7OEVBYTdDLENBQUM7QUFFRixlQUFPLE1BQU0sc0JBQXNCOzs7RUFJbEMsQ0FBQztBQUVGLE1BQU0sV0FBVywyQkFBMkI7SUFDMUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQ3pCLGNBQWMsQ0FBQyxFQUFFLGVBQWUsQ0FBQztJQUNqQyxjQUFjLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDakMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDMUIsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2IsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7Q0FDWjtBQUVELE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQ3pCLFdBQVcsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUMxQixxQkFBcUIsQ0FBQyxFQUFFLHFCQUFxQixDQUFDO0lBQzlDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNaLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNqQixRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztDQUNaO0FBRUQsTUFBTSxXQUFXLDZCQUE2QjtJQUM1QyxNQUFNLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDekIsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUNwQyxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDakIseUVBQXlFO0lBQ3pFLFNBQVMsQ0FBQyxFQUFFO1FBQ1YsV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDO1FBQzFCLHFCQUFxQixDQUFDLEVBQUUscUJBQXFCLENBQUM7UUFDOUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDcEIsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7S0FDWixDQUFDO0NBQ0g7QUFxQkQsZUFBTyxNQUFNLDBDQUEwQyxrR0FTdEQsQ0FBQztBQUVGLGVBQU8sTUFBTSxpQkFBaUIsNEVBa0I3QixDQUFDO0FBRUYsZUFBTyxNQUFNLHNCQUFzQixzRkFtQmxDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sTUFBTSxnQ0FBZ0MsR0FBRztJQUM3QyxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUMxQixPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDYixjQUFjLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDakMsY0FBYyxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsQ0FBQztDQUMxQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxlQUFPLE1BQU0seUJBQXlCLHVFQTBCckMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsZUFBTyxNQUFNLHFDQUFxQyx1R0FnQmpELENBQUM7QUFFRjs7R0FFRztBQUNILGVBQU8sTUFBTSx1Q0FBdUMsK0lBU25ELENBQUM7QUFFRjs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sa0NBQWtDLHVJQWU5QyxDQUFDO0FBRUYsd0JBQXNCLHNCQUFzQixDQUMxQyxhQUFhLEVBQUUsTUFBTSxFQUNyQixJQUFJLEdBQUU7SUFBRSxPQUFPLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQTtDQUFPLEdBQ3pDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQXdCOUIifQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
@@ -298,10 +298,11 @@ export const randomDeployedContract = async ()=>{
298
298
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
299
299
  const makeAndSignConsensusPayload = (domainSeparator, options)=>{
300
300
  const header = options?.header ?? makeCheckpointHeader(1);
301
- const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
301
+ const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
302
302
  const payload = ConsensusPayload.fromFields({
303
303
  header,
304
- archive
304
+ archive,
305
+ feeAssetPriceModifier
305
306
  });
306
307
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
307
308
  const signature = signer.sign(hash);
@@ -336,6 +337,7 @@ export const makeCheckpointProposal = (options)=>{
336
337
  const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
337
338
  const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
338
339
  const archiveRoot = options?.archiveRoot ?? Fr.random();
340
+ const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
339
341
  const signer = options?.signer ?? Secp256k1Signer.random();
340
342
  // Build lastBlock info if provided
341
343
  const lastBlockInfo = options?.lastBlock ? {
@@ -351,15 +353,16 @@ export const makeCheckpointProposal = (options)=>{
351
353
  ].map(()=>TxHash.random()),
352
354
  txs: options.lastBlock.txs
353
355
  } : undefined;
354
- return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, (payload)=>Promise.resolve(signer.signMessage(payload)));
356
+ return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier, lastBlockInfo, (payload)=>Promise.resolve(signer.signMessage(payload)));
355
357
  };
356
358
  /**
357
359
  * Create a checkpoint attestation for testing
358
360
  */ export const makeCheckpointAttestation = (options = {})=>{
359
361
  const header = options.header ?? makeCheckpointHeader(1);
360
362
  const archive = options.archive ?? Fr.random();
363
+ const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
361
364
  const { signer, attesterSigner = signer, proposerSigner = signer } = options;
362
- const payload = new ConsensusPayload(header, archive);
365
+ const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
363
366
  // Sign as attester
364
367
  const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
365
368
  const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
@@ -367,7 +370,7 @@ export const makeCheckpointProposal = (options)=>{
367
370
  // Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
368
371
  // This is different from ConsensusPayload's format (ABI encoding)
369
372
  const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
370
- const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
373
+ const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
371
374
  const proposalHash = getHashedSignaturePayloadEthSignedMessage(tempProposal, SignatureDomainSeparator.checkpointProposal);
372
375
  const proposerSignature = proposalSignerToUse.sign(proposalHash);
373
376
  return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
@@ -375,7 +378,7 @@ export const makeCheckpointProposal = (options)=>{
375
378
  /**
376
379
  * Create a checkpoint attestation from a checkpoint proposal
377
380
  */ export const makeCheckpointAttestationFromProposal = (proposal, attesterSigner)=>{
378
- const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
381
+ const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
379
382
  // Sign as attester
380
383
  const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
381
384
  const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
@@ -388,9 +391,11 @@ export const makeCheckpointProposal = (options)=>{
388
391
  */ export const makeCheckpointAttestationFromCheckpoint = (checkpoint, attesterSigner, proposerSigner)=>{
389
392
  const header = checkpoint.header;
390
393
  const archive = checkpoint.archive.root;
394
+ const feeAssetPriceModifier = checkpoint.feeAssetPriceModifier;
391
395
  return makeCheckpointAttestation({
392
396
  header,
393
397
  archive,
398
+ feeAssetPriceModifier,
394
399
  attesterSigner,
395
400
  proposerSigner
396
401
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "0.0.1-commit.08c5969dc",
3
+ "version": "0.0.1-commit.0c875d939",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -90,14 +90,14 @@
90
90
  },
91
91
  "dependencies": {
92
92
  "@aws-sdk/client-s3": "^3.892.0",
93
- "@aztec/bb.js": "0.0.1-commit.08c5969dc",
94
- "@aztec/blob-lib": "0.0.1-commit.08c5969dc",
95
- "@aztec/constants": "0.0.1-commit.08c5969dc",
96
- "@aztec/ethereum": "0.0.1-commit.08c5969dc",
97
- "@aztec/foundation": "0.0.1-commit.08c5969dc",
98
- "@aztec/l1-artifacts": "0.0.1-commit.08c5969dc",
99
- "@aztec/noir-noirc_abi": "0.0.1-commit.08c5969dc",
100
- "@aztec/validator-ha-signer": "0.0.1-commit.08c5969dc",
93
+ "@aztec/bb.js": "0.0.1-commit.0c875d939",
94
+ "@aztec/blob-lib": "0.0.1-commit.0c875d939",
95
+ "@aztec/constants": "0.0.1-commit.0c875d939",
96
+ "@aztec/ethereum": "0.0.1-commit.0c875d939",
97
+ "@aztec/foundation": "0.0.1-commit.0c875d939",
98
+ "@aztec/l1-artifacts": "0.0.1-commit.0c875d939",
99
+ "@aztec/noir-noirc_abi": "0.0.1-commit.0c875d939",
100
+ "@aztec/validator-ha-signer": "0.0.1-commit.0c875d939",
101
101
  "@google-cloud/storage": "^7.15.0",
102
102
  "axios": "^1.12.0",
103
103
  "json-stringify-deterministic": "1.0.12",
@@ -8,7 +8,7 @@ import {
8
8
  } from '@aztec/foundation/branded-types';
9
9
  import { sum } from '@aztec/foundation/collection';
10
10
  import { Fr } from '@aztec/foundation/curves/bn254';
11
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
11
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
12
12
  import type { FieldsOf } from '@aztec/foundation/types';
13
13
 
14
14
  import { z } from 'zod';
@@ -17,6 +17,7 @@ import { L2Block } from '../block/l2_block.js';
17
17
  import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
18
18
  import { computeCheckpointOutHash } from '../messaging/out_hash.js';
19
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
20
+ import { schemas } from '../schemas/schemas.js';
20
21
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
21
22
  import type { CheckpointInfo } from './checkpoint_info.js';
22
23
 
@@ -32,6 +33,8 @@ export class Checkpoint {
32
33
  public blocks: L2Block[],
33
34
  /** Number of the checkpoint. */
34
35
  public number: CheckpointNumber,
36
+ /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */
37
+ public feeAssetPriceModifier: bigint = 0n,
35
38
  ) {}
36
39
 
37
40
  get slot(): SlotNumber {
@@ -45,8 +48,12 @@ export class Checkpoint {
45
48
  header: CheckpointHeader.schema,
46
49
  blocks: z.array(L2Block.schema),
47
50
  number: CheckpointNumberSchema,
51
+ feeAssetPriceModifier: schemas.BigInt,
48
52
  })
49
- .transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
53
+ .transform(
54
+ ({ archive, header, blocks, number, feeAssetPriceModifier }) =>
55
+ new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier),
56
+ );
50
57
  }
51
58
 
52
59
  static from(fields: FieldsOfCheckpoint) {
@@ -54,21 +61,28 @@ export class Checkpoint {
54
61
  }
55
62
 
56
63
  static getFields(fields: FieldsOfCheckpoint) {
57
- return [fields.archive, fields.header, fields.blocks, fields.number] as const;
64
+ return [fields.archive, fields.header, fields.blocks, fields.number, fields.feeAssetPriceModifier] as const;
58
65
  }
59
66
 
60
67
  static fromBuffer(buf: Buffer | BufferReader) {
61
68
  const reader = BufferReader.asReader(buf);
62
- return new Checkpoint(
63
- reader.readObject(AppendOnlyTreeSnapshot),
64
- reader.readObject(CheckpointHeader),
65
- reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT),
66
- CheckpointNumber(reader.readNumber()),
67
- );
69
+ const archive = reader.readObject(AppendOnlyTreeSnapshot);
70
+ const header = reader.readObject(CheckpointHeader);
71
+ const blocks = reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT);
72
+ const number = CheckpointNumber(reader.readNumber());
73
+ const feeAssetPriceModifier = reader.readInt256();
74
+ return new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier);
68
75
  }
69
76
 
70
77
  public toBuffer() {
71
- return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number);
78
+ return serializeToBuffer(
79
+ this.archive,
80
+ this.header,
81
+ this.blocks.length,
82
+ this.blocks,
83
+ this.number,
84
+ serializeSignedBigInt(this.feeAssetPriceModifier),
85
+ );
72
86
  }
73
87
 
74
88
  public toBlobFields(): Fr[] {
@@ -129,11 +143,13 @@ export class Checkpoint {
129
143
  numBlocks = 1,
130
144
  startBlockNumber = 1,
131
145
  previousArchive,
146
+ feeAssetPriceModifier = 0n,
132
147
  ...options
133
148
  }: {
134
149
  numBlocks?: number;
135
150
  startBlockNumber?: number;
136
151
  previousArchive?: AppendOnlyTreeSnapshot;
152
+ feeAssetPriceModifier?: bigint;
137
153
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
138
154
  Partial<Parameters<typeof L2Block.random>[1]> = {},
139
155
  ) {
@@ -153,6 +169,6 @@ export class Checkpoint {
153
169
  blocks.push(block);
154
170
  }
155
171
 
156
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
172
+ return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber, feeAssetPriceModifier);
157
173
  }
158
174
  }
@@ -60,7 +60,7 @@ export type ContractClassIdPreimage = {
60
60
  };
61
61
 
62
62
  export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
63
- // Encode the buffer into field elements (chunked into 32 bytes each)
63
+ // Encode the buffer into field elements (chunked into 31 bytes each)
64
64
  // The first element is the length of the bytecode (in bytes)
65
65
  const [bytecodeLengthAsField, ...bytecodeAsFields] = bufferAsFields(
66
66
  packedBytecode,
@@ -72,5 +72,6 @@ export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
72
72
 
73
73
  // NOTE: hash the bytecode here only up to the actual length of the bytecode.
74
74
  // We do not hash the entire max bytecode length!
75
- return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), GeneratorIndex.PUBLIC_BYTECODE);
75
+ const sep = BigInt(GeneratorIndex.PUBLIC_BYTECODE) + (bytecodeLengthAsField.toBigInt() << 32n);
76
+ return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), new Fr(sep).toNumber());
76
77
  }
@@ -98,6 +98,7 @@ export interface ICheckpointsBuilder {
98
98
  startCheckpoint(
99
99
  checkpointNumber: CheckpointNumber,
100
100
  constants: CheckpointGlobalVariables,
101
+ feeAssetPriceModifier: bigint,
101
102
  l1ToL2Messages: Fr[],
102
103
  previousCheckpointOutHashes: Fr[],
103
104
  fork: MerkleTreeWriteOperations,
@@ -121,6 +121,7 @@ export interface Validator {
121
121
  createCheckpointProposal(
122
122
  checkpointHeader: CheckpointHeader,
123
123
  archive: Fr,
124
+ feeAssetPriceModifier: bigint,
124
125
  lastBlockInfo: CreateCheckpointProposalLastBlockData | undefined,
125
126
  proposerAddress: EthAddress | undefined,
126
127
  options: CheckpointProposalOptions,
package/src/note/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './comparator.js';
2
2
  export * from './note_dao.js';
3
- export * from './notes_filter.js';
4
3
  export * from './note_status.js';
5
4
  export * from './note.js';
@@ -96,7 +96,12 @@ export class CheckpointAttestation extends Gossipable {
96
96
  // Create a temporary CheckpointProposal to recover the proposer address.
97
97
  // We need to use CheckpointProposal because it has a different getPayloadToSign()
98
98
  // implementation than ConsensusPayload (uses serializeToBuffer vs ABI encoding).
99
- const proposal = new CheckpointProposal(this.payload.header, this.payload.archive, this.proposerSignature);
99
+ const proposal = new CheckpointProposal(
100
+ this.payload.header,
101
+ this.payload.archive,
102
+ this.payload.feeAssetPriceModifier,
103
+ this.proposerSignature,
104
+ );
100
105
  // Cache the proposer for later use
101
106
  this.proposer = proposal.getSender();
102
107
  }