@aztec/stdlib 4.0.0-nightly.20260108 → 4.0.0-nightly.20260110
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.
- package/dest/abi/contract_artifact.d.ts +2 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +1 -1
- package/dest/block/l2_block.d.ts +1 -1
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +4 -2
- package/dest/block/l2_block_code_to_purge.d.ts +2 -3
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +2 -8
- package/dest/block/l2_block_header.d.ts +8 -12
- package/dest/block/l2_block_header.d.ts.map +1 -1
- package/dest/block/l2_block_header.js +22 -17
- package/dest/interfaces/aztec-node.d.ts +7 -6
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +2 -2
- package/dest/interfaces/proving-job.d.ts +4 -4
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -7
- package/dest/interfaces/server_circuit_prover.d.ts +4 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/messaging/in_hash.d.ts +4 -2
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +158 -42
- package/dest/messaging/out_hash.d.ts +2 -1
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +13 -4
- package/dest/p2p/block_attestation.d.ts +3 -6
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.d.ts +3 -6
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.d.ts +11 -12
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +26 -18
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +6 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts +8 -3
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +6 -3
- package/dest/tests/factories.d.ts +3 -7
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +6 -11
- package/dest/tests/mocks.d.ts +5 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +5 -6
- package/dest/tx/index.d.ts +1 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- package/package.json +8 -8
- package/src/abi/contract_artifact.ts +10 -10
- package/src/block/l2_block.ts +3 -2
- package/src/block/l2_block_code_to_purge.ts +3 -11
- package/src/block/l2_block_header.ts +26 -17
- package/src/interfaces/aztec-node.ts +9 -6
- package/src/interfaces/proving-job.ts +2 -11
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/messaging/in_hash.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +176 -52
- package/src/messaging/out_hash.ts +17 -7
- package/src/rollup/checkpoint_header.ts +30 -20
- package/src/rollup/checkpoint_rollup_public_inputs.ts +6 -0
- package/src/rollup/root_rollup_public_inputs.ts +6 -0
- package/src/tests/factories.ts +11 -15
- package/src/tests/mocks.ts +20 -14
- package/src/tx/index.ts +0 -1
- package/dest/tx/content_commitment.d.ts +0 -49
- package/dest/tx/content_commitment.d.ts.map +0 -1
- package/dest/tx/content_commitment.js +0 -90
- package/src/tx/content_commitment.ts +0 -113
package/src/tests/mocks.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
MAX_NULLIFIERS_PER_TX,
|
|
7
7
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
8
8
|
} from '@aztec/constants';
|
|
9
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
9
|
+
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
10
10
|
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
11
11
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
12
12
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
@@ -16,6 +16,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
16
16
|
|
|
17
17
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
18
18
|
import { PublicTxEffect } from '../avm/avm.js';
|
|
19
|
+
import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
|
|
19
20
|
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
20
21
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
21
22
|
import { RevertCode } from '../avm/revert_code.js';
|
|
@@ -202,6 +203,7 @@ export async function mockProcessedTx({
|
|
|
202
203
|
// The default gasUsed is the tx overhead.
|
|
203
204
|
gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
|
|
204
205
|
privateOnly = false,
|
|
206
|
+
avmAccumulatedData,
|
|
205
207
|
...mockTxOpts
|
|
206
208
|
}: {
|
|
207
209
|
seed?: number;
|
|
@@ -213,6 +215,7 @@ export async function mockProcessedTx({
|
|
|
213
215
|
protocolContracts?: ProtocolContracts;
|
|
214
216
|
feePaymentPublicDataWrite?: PublicDataWrite;
|
|
215
217
|
privateOnly?: boolean;
|
|
218
|
+
avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
|
|
216
219
|
} & Parameters<typeof mockTx>[1] = {}) {
|
|
217
220
|
seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
|
|
218
221
|
anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
|
|
@@ -292,19 +295,22 @@ export async function mockProcessedTx({
|
|
|
292
295
|
avmOutput.previousRevertibleAccumulatedDataArrayLengths =
|
|
293
296
|
avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
|
|
294
297
|
// Assign final data emitted from avm.
|
|
295
|
-
avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
|
|
296
|
-
avmOutput.accumulatedData.nullifiers =
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
298
|
+
avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
|
|
299
|
+
avmOutput.accumulatedData.nullifiers =
|
|
300
|
+
avmAccumulatedData?.nullifiers ??
|
|
301
|
+
padArrayEnd(
|
|
302
|
+
nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
|
|
303
|
+
Fr.ZERO,
|
|
304
|
+
MAX_NULLIFIERS_PER_TX,
|
|
305
|
+
);
|
|
306
|
+
avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
|
|
307
|
+
avmOutput.accumulatedData.publicDataWrites =
|
|
308
|
+
avmAccumulatedData?.publicDataWrites ??
|
|
309
|
+
makeTuple(
|
|
310
|
+
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
311
|
+
i => (i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10))),
|
|
312
|
+
seed + 0x2000,
|
|
313
|
+
);
|
|
308
314
|
avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
|
|
309
315
|
avmOutput.gasSettings = gasSettings;
|
|
310
316
|
// Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
|
package/src/tx/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './block_header.js';
|
|
2
2
|
export * from './call_context.js';
|
|
3
3
|
export * from './global_variables.js';
|
|
4
|
-
export * from './content_commitment.js';
|
|
5
4
|
export * from './state_reference.js';
|
|
6
5
|
export * from './partial_state_reference.js';
|
|
7
6
|
export * from './function_data.js';
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { ViemContentCommitment } from '@aztec/ethereum/contracts';
|
|
2
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
-
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
|
-
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
export declare class ContentCommitment {
|
|
7
|
-
blobsHash: Fr;
|
|
8
|
-
inHash: Fr;
|
|
9
|
-
outHash: Fr;
|
|
10
|
-
constructor(blobsHash: Fr, inHash: Fr, outHash: Fr);
|
|
11
|
-
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
12
|
-
blobsHash: z.ZodType<Fr, any, string>;
|
|
13
|
-
inHash: z.ZodType<Fr, any, string>;
|
|
14
|
-
outHash: z.ZodType<Fr, any, string>;
|
|
15
|
-
}, "strip", z.ZodTypeAny, {
|
|
16
|
-
blobsHash: Fr;
|
|
17
|
-
inHash: Fr;
|
|
18
|
-
outHash: Fr;
|
|
19
|
-
}, {
|
|
20
|
-
blobsHash: string;
|
|
21
|
-
inHash: string;
|
|
22
|
-
outHash: string;
|
|
23
|
-
}>, ContentCommitment, {
|
|
24
|
-
blobsHash: string;
|
|
25
|
-
inHash: string;
|
|
26
|
-
outHash: string;
|
|
27
|
-
}>;
|
|
28
|
-
static getFields(fields: FieldsOf<ContentCommitment>): readonly [Fr, Fr, Fr];
|
|
29
|
-
static from(fields: FieldsOf<ContentCommitment>): ContentCommitment;
|
|
30
|
-
getSize(): number;
|
|
31
|
-
toBuffer(): Buffer<ArrayBufferLike>;
|
|
32
|
-
static fromBuffer(buffer: Buffer | BufferReader): ContentCommitment;
|
|
33
|
-
toInspect(): {
|
|
34
|
-
blobsHash: `0x${string}`;
|
|
35
|
-
inHash: `0x${string}`;
|
|
36
|
-
outHash: `0x${string}`;
|
|
37
|
-
};
|
|
38
|
-
toViem(): ViemContentCommitment;
|
|
39
|
-
static fromViem(contentCommitment: ViemContentCommitment): ContentCommitment;
|
|
40
|
-
toFields(): Fr[];
|
|
41
|
-
static fromFields(fields: Fr[] | FieldReader): ContentCommitment;
|
|
42
|
-
static random(overrides?: Partial<FieldsOf<ContentCommitment>>): ContentCommitment;
|
|
43
|
-
static empty(): ContentCommitment;
|
|
44
|
-
isEmpty(): boolean;
|
|
45
|
-
toString(): string;
|
|
46
|
-
static fromString(str: string): ContentCommitment;
|
|
47
|
-
equals(other: this): boolean;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudF9jb21taXRtZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvY29udGVudF9jb21taXRtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIscUJBQWEsaUJBQWlCO0lBRW5CLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7SUFDVixPQUFPLEVBQUUsRUFBRTtJQUhwQixZQUNTLFNBQVMsRUFBRSxFQUFFLEVBQ2IsTUFBTSxFQUFFLEVBQUUsRUFDVixPQUFPLEVBQUUsRUFBRSxFQUNoQjtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHlCQUVuRDtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFFOUM7SUFFRCxPQUFPLFdBRU47SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxpQkFBaUIsQ0FJbEU7SUFFRCxTQUFTOzs7O01BTVI7SUFFRCxNQUFNLElBQUkscUJBQXFCLENBTTlCO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIscUJBTXZEO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLGlCQUFpQixDQUcvRDtJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBTSxHQUFHLGlCQUFpQixDQU9yRjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksaUJBQWlCLENBRWhDO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFTSxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FHaEQ7SUFFTSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxPQUFPLENBSWxDO0NBQ0YifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content_commitment.d.ts","sourceRoot":"","sources":["../../src/tx/content_commitment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,iBAAiB;IAEnB,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IAHpB,YACS,SAAS,EAAE,EAAE,EACb,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,EAAE,EAChB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,yBAEnD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,qBAE9C;IAED,OAAO,WAEN;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAIlE;IAED,SAAS;;;;MAMR;IAED,MAAM,IAAI,qBAAqB,CAM9B;IAED,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,qBAMvD;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,iBAAiB,CAG/D;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAM,GAAG,iBAAiB,CAOrF;IAED,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAEhC;IAED,OAAO,IAAI,OAAO,CAEjB;IAEM,QAAQ,IAAI,MAAM,CAExB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAGhD;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAIlC;CACF"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import { schemas } from '@aztec/foundation/schemas';
|
|
3
|
-
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
4
|
-
import { bufferToHex } from '@aztec/foundation/string';
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
export class ContentCommitment {
|
|
7
|
-
blobsHash;
|
|
8
|
-
inHash;
|
|
9
|
-
outHash;
|
|
10
|
-
constructor(blobsHash, inHash, outHash){
|
|
11
|
-
this.blobsHash = blobsHash;
|
|
12
|
-
this.inHash = inHash;
|
|
13
|
-
this.outHash = outHash;
|
|
14
|
-
}
|
|
15
|
-
static get schema() {
|
|
16
|
-
return z.object({
|
|
17
|
-
blobsHash: schemas.Fr,
|
|
18
|
-
inHash: schemas.Fr,
|
|
19
|
-
outHash: schemas.Fr
|
|
20
|
-
}).transform(({ blobsHash, inHash, outHash })=>new ContentCommitment(blobsHash, inHash, outHash));
|
|
21
|
-
}
|
|
22
|
-
static getFields(fields) {
|
|
23
|
-
return [
|
|
24
|
-
fields.blobsHash,
|
|
25
|
-
fields.inHash,
|
|
26
|
-
fields.outHash
|
|
27
|
-
];
|
|
28
|
-
}
|
|
29
|
-
static from(fields) {
|
|
30
|
-
return new ContentCommitment(...ContentCommitment.getFields(fields));
|
|
31
|
-
}
|
|
32
|
-
getSize() {
|
|
33
|
-
return this.toBuffer().length;
|
|
34
|
-
}
|
|
35
|
-
toBuffer() {
|
|
36
|
-
return serializeToBuffer(...ContentCommitment.getFields(this));
|
|
37
|
-
}
|
|
38
|
-
static fromBuffer(buffer) {
|
|
39
|
-
const reader = BufferReader.asReader(buffer);
|
|
40
|
-
return new ContentCommitment(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr));
|
|
41
|
-
}
|
|
42
|
-
toInspect() {
|
|
43
|
-
return {
|
|
44
|
-
blobsHash: this.blobsHash.toString(),
|
|
45
|
-
inHash: this.inHash.toString(),
|
|
46
|
-
outHash: this.outHash.toString()
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
toViem() {
|
|
50
|
-
return {
|
|
51
|
-
blobsHash: this.blobsHash.toString(),
|
|
52
|
-
inHash: this.inHash.toString(),
|
|
53
|
-
outHash: this.outHash.toString()
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
static fromViem(contentCommitment) {
|
|
57
|
-
return new ContentCommitment(Fr.fromString(contentCommitment.blobsHash), Fr.fromString(contentCommitment.inHash), Fr.fromString(contentCommitment.outHash));
|
|
58
|
-
}
|
|
59
|
-
toFields() {
|
|
60
|
-
return serializeToFields(...ContentCommitment.getFields(this));
|
|
61
|
-
}
|
|
62
|
-
static fromFields(fields) {
|
|
63
|
-
const reader = FieldReader.asReader(fields);
|
|
64
|
-
return new ContentCommitment(reader.readField(), reader.readField(), reader.readField());
|
|
65
|
-
}
|
|
66
|
-
static random(overrides = {}) {
|
|
67
|
-
return ContentCommitment.from({
|
|
68
|
-
blobsHash: Fr.random(),
|
|
69
|
-
inHash: Fr.random(),
|
|
70
|
-
outHash: Fr.random(),
|
|
71
|
-
...overrides
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
static empty() {
|
|
75
|
-
return new ContentCommitment(Fr.zero(), Fr.zero(), Fr.zero());
|
|
76
|
-
}
|
|
77
|
-
isEmpty() {
|
|
78
|
-
return this.blobsHash.isZero() && this.inHash.isZero() && this.outHash.isZero();
|
|
79
|
-
}
|
|
80
|
-
toString() {
|
|
81
|
-
return bufferToHex(this.toBuffer());
|
|
82
|
-
}
|
|
83
|
-
static fromString(str) {
|
|
84
|
-
const buffer = Buffer.from(str.replace(/^0x/i, ''), 'hex');
|
|
85
|
-
return ContentCommitment.fromBuffer(buffer);
|
|
86
|
-
}
|
|
87
|
-
equals(other) {
|
|
88
|
-
return this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.outHash.equals(other.outHash);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import type { ViemContentCommitment } from '@aztec/ethereum/contracts';
|
|
2
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
-
import { schemas } from '@aztec/foundation/schemas';
|
|
4
|
-
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
5
|
-
import { bufferToHex } from '@aztec/foundation/string';
|
|
6
|
-
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
|
-
|
|
8
|
-
import { z } from 'zod';
|
|
9
|
-
|
|
10
|
-
export class ContentCommitment {
|
|
11
|
-
constructor(
|
|
12
|
-
public blobsHash: Fr,
|
|
13
|
-
public inHash: Fr,
|
|
14
|
-
public outHash: Fr,
|
|
15
|
-
) {}
|
|
16
|
-
|
|
17
|
-
static get schema() {
|
|
18
|
-
return z
|
|
19
|
-
.object({
|
|
20
|
-
blobsHash: schemas.Fr,
|
|
21
|
-
inHash: schemas.Fr,
|
|
22
|
-
outHash: schemas.Fr,
|
|
23
|
-
})
|
|
24
|
-
.transform(({ blobsHash, inHash, outHash }) => new ContentCommitment(blobsHash, inHash, outHash));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
static getFields(fields: FieldsOf<ContentCommitment>) {
|
|
28
|
-
return [fields.blobsHash, fields.inHash, fields.outHash] as const;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
static from(fields: FieldsOf<ContentCommitment>) {
|
|
32
|
-
return new ContentCommitment(...ContentCommitment.getFields(fields));
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
getSize() {
|
|
36
|
-
return this.toBuffer().length;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
toBuffer() {
|
|
40
|
-
return serializeToBuffer(...ContentCommitment.getFields(this));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
static fromBuffer(buffer: Buffer | BufferReader): ContentCommitment {
|
|
44
|
-
const reader = BufferReader.asReader(buffer);
|
|
45
|
-
|
|
46
|
-
return new ContentCommitment(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
toInspect() {
|
|
50
|
-
return {
|
|
51
|
-
blobsHash: this.blobsHash.toString(),
|
|
52
|
-
inHash: this.inHash.toString(),
|
|
53
|
-
outHash: this.outHash.toString(),
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
toViem(): ViemContentCommitment {
|
|
58
|
-
return {
|
|
59
|
-
blobsHash: this.blobsHash.toString(),
|
|
60
|
-
inHash: this.inHash.toString(),
|
|
61
|
-
outHash: this.outHash.toString(),
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
static fromViem(contentCommitment: ViemContentCommitment) {
|
|
66
|
-
return new ContentCommitment(
|
|
67
|
-
Fr.fromString(contentCommitment.blobsHash),
|
|
68
|
-
Fr.fromString(contentCommitment.inHash),
|
|
69
|
-
Fr.fromString(contentCommitment.outHash),
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
toFields(): Fr[] {
|
|
74
|
-
return serializeToFields(...ContentCommitment.getFields(this));
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
static fromFields(fields: Fr[] | FieldReader): ContentCommitment {
|
|
78
|
-
const reader = FieldReader.asReader(fields);
|
|
79
|
-
return new ContentCommitment(reader.readField(), reader.readField(), reader.readField());
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
static random(overrides: Partial<FieldsOf<ContentCommitment>> = {}): ContentCommitment {
|
|
83
|
-
return ContentCommitment.from({
|
|
84
|
-
blobsHash: Fr.random(),
|
|
85
|
-
inHash: Fr.random(),
|
|
86
|
-
outHash: Fr.random(),
|
|
87
|
-
...overrides,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
static empty(): ContentCommitment {
|
|
92
|
-
return new ContentCommitment(Fr.zero(), Fr.zero(), Fr.zero());
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
isEmpty(): boolean {
|
|
96
|
-
return this.blobsHash.isZero() && this.inHash.isZero() && this.outHash.isZero();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
public toString(): string {
|
|
100
|
-
return bufferToHex(this.toBuffer());
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
static fromString(str: string): ContentCommitment {
|
|
104
|
-
const buffer = Buffer.from(str.replace(/^0x/i, ''), 'hex');
|
|
105
|
-
return ContentCommitment.fromBuffer(buffer);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
public equals(other: this): boolean {
|
|
109
|
-
return (
|
|
110
|
-
this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.outHash.equals(other.outHash)
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
}
|