@aztec/stdlib 0.87.7 → 1.0.0-nightly.20250604
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/abi.d.ts +3 -0
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +38 -0
- package/dest/avm/avm.d.ts +1188 -25
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +31 -14
- package/dest/avm/avm_accumulated_data.d.ts +77 -0
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +67 -0
- package/dest/avm/avm_circuit_public_inputs.d.ts +73 -3
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +19 -9
- package/dest/avm/avm_proving_request.d.ts +572 -0
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/gas.d.ts +7 -0
- package/dest/avm/gas.d.ts.map +1 -0
- package/dest/avm/gas.js +13 -0
- package/dest/avm/index.d.ts +1 -0
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +1 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -2
- package/dest/block/index.d.ts +1 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +3 -2
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +10 -5
- package/dest/block/l2_block_source.d.ts +9 -4
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +1 -0
- package/dest/block/proposal/committee_attestation.d.ts +34 -0
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -0
- package/dest/block/proposal/committee_attestation.js +59 -0
- package/dest/block/proposal/index.d.ts +2 -0
- package/dest/block/proposal/index.d.ts.map +1 -0
- package/dest/block/proposal/index.js +1 -0
- package/dest/block/published_l2_block.d.ts +99 -69
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +38 -12
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/interfaces/archiver.js +2 -2
- package/dest/interfaces/aztec-node.d.ts +3 -8
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +3 -6
- package/dest/interfaces/block-builder.d.ts +41 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +1 -1
- package/dest/interfaces/epoch-prover.d.ts +2 -2
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +14 -0
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +6 -3
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +1 -2
- package/dest/interfaces/proving-job.d.ts +576 -4
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +2 -2
- package/dest/interfaces/server_circuit_prover.d.ts +3 -2
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -1
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -6
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_hint.js +5 -7
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +7 -7
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.js +8 -4
- package/dest/kernel/hints/read_request_hints.d.ts +8 -8
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/index.d.ts +1 -0
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +1 -0
- package/dest/kernel/padded_side_effects.d.ts +26 -0
- package/dest/kernel/padded_side_effects.d.ts.map +1 -0
- package/dest/kernel/padded_side_effects.js +51 -0
- package/dest/kernel/private_kernel_data.d.ts +6 -25
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.js +8 -19
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +7 -4
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +10 -6
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +10 -10
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +8 -3
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +1 -0
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +4 -0
- package/dest/kernel/public_call_request.d.ts +54 -0
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +58 -0
- package/dest/logs/contract_class_log.d.ts +0 -4
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +0 -33
- package/dest/logs/log_with_tx_data.d.ts +13 -3
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +26 -14
- package/dest/logs/private_log.d.ts +1 -0
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +3 -0
- package/dest/logs/public_log.d.ts +1 -0
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +3 -0
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +1 -0
- package/dest/messaging/index.d.ts +1 -0
- package/dest/messaging/index.d.ts.map +1 -1
- package/dest/messaging/index.js +1 -0
- package/dest/messaging/l2_to_l1_membership.d.ts +11 -0
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -0
- package/dest/messaging/l2_to_l1_membership.js +70 -0
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.d.ts +7 -5
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +12 -4
- package/dest/rollup/base_rollup_hints.d.ts +4 -4
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +8 -8
- package/dest/rollup/previous_rollup_block_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_block_data.js +8 -13
- package/dest/rollup/previous_rollup_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_data.js +8 -13
- package/dest/rollup/private_tube_data.d.ts +3 -3
- package/dest/rollup/private_tube_data.d.ts.map +1 -1
- package/dest/rollup/private_tube_data.js +3 -3
- package/dest/rollup/public_tube_data.d.ts +3 -3
- package/dest/rollup/public_tube_data.d.ts.map +1 -1
- package/dest/rollup/public_tube_data.js +3 -3
- package/dest/rollup/root_rollup.d.ts +9 -10
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/root_rollup.js +9 -20
- package/dest/tests/factories.d.ts +2 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +53 -28
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +4 -3
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +2 -5
- package/dest/tx/tx.d.ts +10 -25
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +25 -50
- package/dest/tx/tx_effect.d.ts +1 -1
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +2 -2
- package/dest/tx/tx_hash.d.ts +1 -0
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_hash.js +3 -0
- package/dest/validators/types.d.ts +4 -0
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/vks/index.d.ts +1 -1
- package/dest/vks/index.d.ts.map +1 -1
- package/dest/vks/index.js +1 -1
- package/dest/vks/{vk_witness_data.d.ts → vk_data.d.ts} +8 -8
- package/dest/vks/vk_data.d.ts.map +1 -0
- package/dest/vks/{vk_witness_data.js → vk_data.js} +10 -10
- package/package.json +7 -7
- package/src/abi/abi.ts +37 -0
- package/src/avm/avm.ts +25 -4
- package/src/avm/avm_accumulated_data.ts +93 -0
- package/src/avm/avm_circuit_public_inputs.ts +22 -2
- package/src/avm/gas.ts +26 -0
- package/src/avm/index.ts +1 -0
- package/src/block/body.ts +7 -2
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +8 -3
- package/src/block/l2_block_source.ts +9 -3
- package/src/block/proposal/committee_attestation.ts +70 -0
- package/src/block/proposal/index.ts +1 -0
- package/src/block/published_l2_block.ts +38 -24
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/interfaces/archiver.ts +2 -2
- package/src/interfaces/aztec-node.ts +8 -16
- package/src/interfaces/block-builder.ts +49 -2
- package/src/interfaces/epoch-prover.ts +2 -2
- package/src/interfaces/merkle_tree_operations.ts +20 -0
- package/src/interfaces/p2p.ts +9 -4
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +3 -3
- package/src/kernel/hints/key_validation_hint.ts +4 -6
- package/src/kernel/hints/private_kernel_reset_hints.ts +34 -43
- package/src/kernel/hints/read_request_hints.ts +27 -15
- package/src/kernel/index.ts +1 -0
- package/src/kernel/padded_side_effects.ts +73 -0
- package/src/kernel/private_kernel_data.ts +7 -29
- package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +16 -13
- package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +10 -2
- package/src/kernel/private_to_avm_accumulated_data.ts +9 -0
- package/src/kernel/public_call_request.ts +66 -0
- package/src/logs/contract_class_log.ts +0 -36
- package/src/logs/log_with_tx_data.ts +26 -12
- package/src/logs/private_log.ts +4 -0
- package/src/logs/public_log.ts +4 -0
- package/src/logs/tx_scoped_l2_log.ts +1 -0
- package/src/messaging/index.ts +1 -0
- package/src/messaging/l2_to_l1_membership.ts +113 -0
- package/src/p2p/consensus_payload.ts +3 -1
- package/src/rollup/avm_proof_data.ts +14 -7
- package/src/rollup/base_rollup_hints.ts +4 -4
- package/src/rollup/previous_rollup_block_data.ts +6 -12
- package/src/rollup/previous_rollup_data.ts +6 -12
- package/src/rollup/private_tube_data.ts +4 -4
- package/src/rollup/public_tube_data.ts +4 -4
- package/src/rollup/root_rollup.ts +6 -19
- package/src/tests/factories.ts +80 -43
- package/src/tests/mocks.ts +6 -3
- package/src/tx/processed_tx.ts +4 -5
- package/src/tx/tx.ts +28 -54
- package/src/tx/tx_effect.ts +23 -5
- package/src/tx/tx_hash.ts +4 -0
- package/src/validators/types.ts +2 -0
- package/src/vks/index.ts +1 -1
- package/src/vks/{vk_witness_data.ts → vk_data.ts} +6 -6
- package/dest/vks/vk_witness_data.d.ts.map +0 -1
package/src/interfaces/p2p.ts
CHANGED
|
@@ -44,7 +44,7 @@ export interface P2PApiWithoutAttestations {
|
|
|
44
44
|
getPeers(includePending?: boolean): Promise<PeerInfo[]>;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
export interface
|
|
47
|
+
export interface P2PApiWithAttestations extends P2PApiWithoutAttestations {
|
|
48
48
|
/**
|
|
49
49
|
* Queries the Attestation pool for attestations for the given slot
|
|
50
50
|
*
|
|
@@ -53,13 +53,19 @@ export interface P2PClient extends P2PApiWithoutAttestations {
|
|
|
53
53
|
* @returns BlockAttestations
|
|
54
54
|
*/
|
|
55
55
|
getAttestationsForSlot(slot: bigint, proposalId?: string): Promise<BlockAttestation[]>;
|
|
56
|
+
}
|
|
56
57
|
|
|
58
|
+
export interface P2PClient extends P2PApiWithAttestations {
|
|
57
59
|
/** Manually adds an attestation to the p2p client attestation pool. */
|
|
58
|
-
|
|
60
|
+
addAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
export type P2PApi<T extends P2PClientType = P2PClientType.Full> = T extends P2PClientType.Full
|
|
62
|
-
?
|
|
64
|
+
? P2PApiWithAttestations
|
|
65
|
+
: P2PApiWithoutAttestations;
|
|
66
|
+
|
|
67
|
+
export type P2PApiFull<T extends P2PClientType = P2PClientType.Full> = T extends P2PClientType.Full
|
|
68
|
+
? P2PApiWithAttestations & P2PClient
|
|
63
69
|
: P2PApiWithoutAttestations;
|
|
64
70
|
|
|
65
71
|
export const P2PApiSchema: ApiSchemaFor<P2PApi> = {
|
|
@@ -71,5 +77,4 @@ export const P2PApiSchema: ApiSchemaFor<P2PApi> = {
|
|
|
71
77
|
getPendingTxCount: z.function().returns(schemas.Integer),
|
|
72
78
|
getEncodedEnr: z.function().returns(z.string().optional()),
|
|
73
79
|
getPeers: z.function().args(optional(z.boolean())).returns(z.array(PeerInfoSchema)),
|
|
74
|
-
addAttestation: z.function().args(BlockAttestation.schema).returns(z.void()),
|
|
75
80
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
3
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
4
4
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
5
|
RECURSIVE_PROOF_LENGTH,
|
|
@@ -179,7 +179,7 @@ export type ProvingJobInputsMap = {
|
|
|
179
179
|
export const ProvingJobResult = z.discriminatedUnion('type', [
|
|
180
180
|
z.object({
|
|
181
181
|
type: z.literal(ProvingRequestType.PUBLIC_VM),
|
|
182
|
-
result: schemaForRecursiveProofAndVerificationKey(
|
|
182
|
+
result: schemaForRecursiveProofAndVerificationKey(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
|
|
183
183
|
}),
|
|
184
184
|
z.object({
|
|
185
185
|
type: z.literal(ProvingRequestType.PRIVATE_BASE_ROLLUP),
|
|
@@ -249,7 +249,7 @@ export const ProvingJobResult = z.discriminatedUnion('type', [
|
|
|
249
249
|
]);
|
|
250
250
|
export type ProvingJobResult = z.infer<typeof ProvingJobResult>;
|
|
251
251
|
export type ProvingJobResultsMap = {
|
|
252
|
-
[ProvingRequestType.PUBLIC_VM]: ProofAndVerificationKey<typeof
|
|
252
|
+
[ProvingRequestType.PUBLIC_VM]: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
|
|
253
253
|
[ProvingRequestType.PRIVATE_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
254
254
|
BaseOrMergeRollupPublicInputs,
|
|
255
255
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
3
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
4
4
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
5
|
RECURSIVE_PROOF_LENGTH,
|
|
@@ -149,9 +149,10 @@ export interface ServerCircuitProver {
|
|
|
149
149
|
*/
|
|
150
150
|
getAvmProof(
|
|
151
151
|
inputs: AvmCircuitInputs,
|
|
152
|
+
skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
152
153
|
signal?: AbortSignal,
|
|
153
154
|
epochNumber?: number,
|
|
154
|
-
): Promise<ProofAndVerificationKey<typeof
|
|
155
|
+
): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
|
|
155
156
|
}
|
|
156
157
|
|
|
157
158
|
/**
|
|
@@ -148,9 +148,9 @@ export function findPrivateKernelResetDimensions(
|
|
|
148
148
|
? isEnough
|
|
149
149
|
: // If isInner is true, it's a reset to prevent overflow. The following must be zero because siloing can't be done at the moment.
|
|
150
150
|
(dimensions: PrivateKernelResetDimensions) =>
|
|
151
|
-
dimensions.
|
|
152
|
-
dimensions.
|
|
153
|
-
dimensions.
|
|
151
|
+
dimensions.NOTE_HASH_SILOING === 0 &&
|
|
152
|
+
dimensions.NULLIFIER_SILOING === 0 &&
|
|
153
|
+
dimensions.PRIVATE_LOG_SILOING === 0 &&
|
|
154
154
|
isEnough(dimensions);
|
|
155
155
|
|
|
156
156
|
const options = [
|
|
@@ -5,20 +5,18 @@ export class KeyValidationHint {
|
|
|
5
5
|
constructor(
|
|
6
6
|
/** Master secret key used to derive sk_app and pk_m. */
|
|
7
7
|
public skM: GrumpkinScalar,
|
|
8
|
-
/** Index of the request in the array of hints. */
|
|
9
|
-
public requestIndex: number,
|
|
10
8
|
) {}
|
|
11
9
|
|
|
12
10
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
13
11
|
const reader = BufferReader.asReader(buffer);
|
|
14
|
-
return new KeyValidationHint(reader.readObject(GrumpkinScalar)
|
|
12
|
+
return new KeyValidationHint(reader.readObject(GrumpkinScalar));
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
toBuffer() {
|
|
18
|
-
return serializeToBuffer(this.skM
|
|
16
|
+
return serializeToBuffer(this.skM);
|
|
19
17
|
}
|
|
20
18
|
|
|
21
|
-
static
|
|
22
|
-
return new KeyValidationHint(GrumpkinScalar.zero()
|
|
19
|
+
static empty() {
|
|
20
|
+
return new KeyValidationHint(GrumpkinScalar.zero());
|
|
23
21
|
}
|
|
24
22
|
}
|
|
@@ -10,8 +10,8 @@ export class PrivateKernelResetHints<
|
|
|
10
10
|
NH_RR_SETTLED extends number,
|
|
11
11
|
NLL_RR_PENDING extends number,
|
|
12
12
|
NLL_RR_SETTLED extends number,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
KEY_VALIDATION_HINTS_LEN extends number,
|
|
14
|
+
TRANSIENT_DATA_HINTS_LEN extends number,
|
|
15
15
|
> {
|
|
16
16
|
constructor(
|
|
17
17
|
/**
|
|
@@ -25,11 +25,11 @@ export class PrivateKernelResetHints<
|
|
|
25
25
|
/**
|
|
26
26
|
* Contains hints for key validation request.
|
|
27
27
|
*/
|
|
28
|
-
public keyValidationHints: Tuple<KeyValidationHint,
|
|
28
|
+
public keyValidationHints: Tuple<KeyValidationHint, KEY_VALIDATION_HINTS_LEN>,
|
|
29
29
|
/**
|
|
30
30
|
* Contains hints for the transient note hashes to locate corresponding nullifiers.
|
|
31
31
|
*/
|
|
32
|
-
public transientDataIndexHints: Tuple<TransientDataIndexHint,
|
|
32
|
+
public transientDataIndexHints: Tuple<TransientDataIndexHint, TRANSIENT_DATA_HINTS_LEN>,
|
|
33
33
|
/**
|
|
34
34
|
* The "final" minRevertibleSideEffectCounter of a tx, to split the data for squashing.
|
|
35
35
|
* Not the minRevertibleSideEffectCounter at the point the reset circuit is run.
|
|
@@ -47,39 +47,30 @@ export class PrivateKernelResetHints<
|
|
|
47
47
|
);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
trimToSizes
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
numTransientDataIndexHints: NUM_TRANSIENT_DATA_INDEX_HINTS,
|
|
64
|
-
): PrivateKernelResetHints<
|
|
65
|
-
NEW_NH_RR_PENDING,
|
|
66
|
-
NEW_NH_RR_SETTLED,
|
|
67
|
-
NEW_NLL_RR_PENDING,
|
|
68
|
-
NEW_NLL_RR_SETTLED,
|
|
69
|
-
NEW_KEY_VALIDATION_REQUESTS,
|
|
70
|
-
NUM_TRANSIENT_DATA_INDEX_HINTS
|
|
71
|
-
> {
|
|
50
|
+
trimToSizes(
|
|
51
|
+
numNoteHashReadRequestPending: number,
|
|
52
|
+
numNoteHashReadRequestSettled: number,
|
|
53
|
+
numNullifierReadRequestPending: number,
|
|
54
|
+
numNullifierReadRequestSettled: number,
|
|
55
|
+
numKeyValidationHints: number,
|
|
56
|
+
numTransientDataIndexHints: number,
|
|
57
|
+
) {
|
|
58
|
+
// Noir does not allow empty arrays. So we make the minimum array size 1.
|
|
59
|
+
// There is a constant for each dimension, coded in the circuit that indicates how many hints should be applied.
|
|
60
|
+
// The circuit is selected based on the dimension sizes, not the hint array sizes created here.
|
|
61
|
+
const useSize = (num: number) => Math.max(num, 1);
|
|
62
|
+
|
|
72
63
|
return new PrivateKernelResetHints(
|
|
73
|
-
this.noteHashReadRequestHints.trimToSizes(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
64
|
+
this.noteHashReadRequestHints.trimToSizes(
|
|
65
|
+
useSize(numNoteHashReadRequestPending),
|
|
66
|
+
useSize(numNoteHashReadRequestSettled),
|
|
67
|
+
),
|
|
68
|
+
this.nullifierReadRequestHints.trimToSizes(
|
|
69
|
+
useSize(numNullifierReadRequestPending),
|
|
70
|
+
useSize(numNullifierReadRequestSettled),
|
|
71
|
+
),
|
|
72
|
+
this.keyValidationHints.slice(0, useSize(numKeyValidationHints)),
|
|
73
|
+
this.transientDataIndexHints.slice(0, useSize(numTransientDataIndexHints)),
|
|
83
74
|
this.validationRequestsSplitCounter,
|
|
84
75
|
);
|
|
85
76
|
}
|
|
@@ -93,23 +84,23 @@ export class PrivateKernelResetHints<
|
|
|
93
84
|
NH_RR_SETTLED extends number,
|
|
94
85
|
NLL_RR_PENDING extends number,
|
|
95
86
|
NLL_RR_SETTLED extends number,
|
|
96
|
-
|
|
97
|
-
|
|
87
|
+
KEY_VALIDATION_HINTS_LEN extends number,
|
|
88
|
+
TRANSIENT_DATA_HINTS_LEN extends number,
|
|
98
89
|
>(
|
|
99
90
|
buffer: Buffer | BufferReader,
|
|
100
91
|
numNoteHashReadRequestPending: NH_RR_PENDING,
|
|
101
92
|
numNoteHashReadRequestSettled: NH_RR_SETTLED,
|
|
102
93
|
numNullifierReadRequestPending: NLL_RR_PENDING,
|
|
103
94
|
numNullifierReadRequestSettled: NLL_RR_SETTLED,
|
|
104
|
-
|
|
105
|
-
numTransientDataIndexHints:
|
|
95
|
+
numKeyValidationHints: KEY_VALIDATION_HINTS_LEN,
|
|
96
|
+
numTransientDataIndexHints: TRANSIENT_DATA_HINTS_LEN,
|
|
106
97
|
): PrivateKernelResetHints<
|
|
107
98
|
NH_RR_PENDING,
|
|
108
99
|
NH_RR_SETTLED,
|
|
109
100
|
NLL_RR_PENDING,
|
|
110
101
|
NLL_RR_SETTLED,
|
|
111
|
-
|
|
112
|
-
|
|
102
|
+
KEY_VALIDATION_HINTS_LEN,
|
|
103
|
+
TRANSIENT_DATA_HINTS_LEN
|
|
113
104
|
> {
|
|
114
105
|
const reader = BufferReader.asReader(buffer);
|
|
115
106
|
return new PrivateKernelResetHints(
|
|
@@ -121,7 +112,7 @@ export class PrivateKernelResetHints<
|
|
|
121
112
|
fromBuffer: buf =>
|
|
122
113
|
nullifierReadRequestHintsFromBuffer(buf, numNullifierReadRequestPending, numNullifierReadRequestSettled),
|
|
123
114
|
}),
|
|
124
|
-
reader.readArray(
|
|
115
|
+
reader.readArray(numKeyValidationHints, KeyValidationHint),
|
|
125
116
|
reader.readArray(numTransientDataIndexHints, TransientDataIndexHint),
|
|
126
117
|
reader.readNumber(),
|
|
127
118
|
);
|
|
@@ -94,8 +94,8 @@ export class SettledReadHint<TREE_HEIGHT extends number, LEAF_PREIMAGE extends B
|
|
|
94
94
|
*/
|
|
95
95
|
export class ReadRequestResetHints<
|
|
96
96
|
READ_REQUEST_LEN extends number,
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
PENDING_READ_HINTS_LEN extends number,
|
|
98
|
+
SETTLED_READ_HINTS_LEN extends number,
|
|
99
99
|
TREE_HEIGHT extends number,
|
|
100
100
|
LEAF_PREIMAGE extends Bufferable,
|
|
101
101
|
> {
|
|
@@ -104,23 +104,29 @@ export class ReadRequestResetHints<
|
|
|
104
104
|
/**
|
|
105
105
|
* The hints for read requests reading pending values.
|
|
106
106
|
*/
|
|
107
|
-
public pendingReadHints: Tuple<PendingReadHint,
|
|
107
|
+
public pendingReadHints: Tuple<PendingReadHint, PENDING_READ_HINTS_LEN>,
|
|
108
108
|
/**
|
|
109
109
|
* The hints for read requests reading settled values.
|
|
110
110
|
*/
|
|
111
|
-
public settledReadHints: Tuple<SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>,
|
|
111
|
+
public settledReadHints: Tuple<SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>, SETTLED_READ_HINTS_LEN>,
|
|
112
112
|
) {}
|
|
113
113
|
|
|
114
|
-
trimToSizes<
|
|
115
|
-
numPendingReads:
|
|
116
|
-
numSettledReads:
|
|
117
|
-
): ReadRequestResetHints<
|
|
114
|
+
trimToSizes<NEW_PENDING_READ_HINTS_LEN extends number, NEW_SETTLED_READ_HINTS_LEN extends number>(
|
|
115
|
+
numPendingReads: NEW_PENDING_READ_HINTS_LEN,
|
|
116
|
+
numSettledReads: NEW_SETTLED_READ_HINTS_LEN,
|
|
117
|
+
): ReadRequestResetHints<
|
|
118
|
+
READ_REQUEST_LEN,
|
|
119
|
+
NEW_PENDING_READ_HINTS_LEN,
|
|
120
|
+
NEW_SETTLED_READ_HINTS_LEN,
|
|
121
|
+
TREE_HEIGHT,
|
|
122
|
+
LEAF_PREIMAGE
|
|
123
|
+
> {
|
|
118
124
|
return new ReadRequestResetHints(
|
|
119
125
|
this.readRequestStatuses,
|
|
120
|
-
this.pendingReadHints.slice(0, numPendingReads) as Tuple<PendingReadHint,
|
|
126
|
+
this.pendingReadHints.slice(0, numPendingReads) as Tuple<PendingReadHint, NEW_PENDING_READ_HINTS_LEN>,
|
|
121
127
|
this.settledReadHints.slice(0, numSettledReads) as Tuple<
|
|
122
128
|
SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>,
|
|
123
|
-
|
|
129
|
+
NEW_SETTLED_READ_HINTS_LEN
|
|
124
130
|
>,
|
|
125
131
|
);
|
|
126
132
|
}
|
|
@@ -132,18 +138,24 @@ export class ReadRequestResetHints<
|
|
|
132
138
|
*/
|
|
133
139
|
static fromBuffer<
|
|
134
140
|
READ_REQUEST_LEN extends number,
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
PENDING_READ_HINTS_LEN extends number,
|
|
142
|
+
SETTLED_READ_HINTS_LEN extends number,
|
|
137
143
|
TREE_HEIGHT extends number,
|
|
138
144
|
LEAF_PREIMAGE extends Bufferable,
|
|
139
145
|
>(
|
|
140
146
|
buffer: Buffer | BufferReader,
|
|
141
147
|
readRequestLen: READ_REQUEST_LEN,
|
|
142
|
-
numPendingReads:
|
|
143
|
-
numSettledReads:
|
|
148
|
+
numPendingReads: PENDING_READ_HINTS_LEN,
|
|
149
|
+
numSettledReads: SETTLED_READ_HINTS_LEN,
|
|
144
150
|
treeHeight: TREE_HEIGHT,
|
|
145
151
|
leafPreimageFromBuffer: { fromBuffer: (buffer: BufferReader) => LEAF_PREIMAGE },
|
|
146
|
-
): ReadRequestResetHints<
|
|
152
|
+
): ReadRequestResetHints<
|
|
153
|
+
READ_REQUEST_LEN,
|
|
154
|
+
PENDING_READ_HINTS_LEN,
|
|
155
|
+
SETTLED_READ_HINTS_LEN,
|
|
156
|
+
TREE_HEIGHT,
|
|
157
|
+
LEAF_PREIMAGE
|
|
158
|
+
> {
|
|
147
159
|
const reader = BufferReader.asReader(buffer);
|
|
148
160
|
return new ReadRequestResetHints(
|
|
149
161
|
reader.readArray(readRequestLen, ReadRequestStatus),
|
package/src/kernel/index.ts
CHANGED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX } from '@aztec/constants';
|
|
2
|
+
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
+
|
|
6
|
+
import { PrivateLog } from '../logs/index.js';
|
|
7
|
+
|
|
8
|
+
export class PaddedSideEffects {
|
|
9
|
+
constructor(
|
|
10
|
+
public noteHashes: Tuple<Fr, typeof MAX_NOTE_HASHES_PER_TX>,
|
|
11
|
+
public nullifiers: Tuple<Fr, typeof MAX_NULLIFIERS_PER_TX>,
|
|
12
|
+
public privateLogs: Tuple<PrivateLog, typeof MAX_PRIVATE_LOGS_PER_TX>,
|
|
13
|
+
) {}
|
|
14
|
+
|
|
15
|
+
toBuffer() {
|
|
16
|
+
return serializeToBuffer(this.noteHashes, this.nullifiers, this.privateLogs);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
20
|
+
const reader = BufferReader.asReader(buffer);
|
|
21
|
+
return new PaddedSideEffects(
|
|
22
|
+
reader.readArray(MAX_NOTE_HASHES_PER_TX, Fr),
|
|
23
|
+
reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
|
|
24
|
+
reader.readArray(MAX_PRIVATE_LOGS_PER_TX, PrivateLog),
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static empty() {
|
|
29
|
+
return new PaddedSideEffects(
|
|
30
|
+
makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.zero),
|
|
31
|
+
makeTuple(MAX_NULLIFIERS_PER_TX, Fr.zero),
|
|
32
|
+
makeTuple(MAX_PRIVATE_LOGS_PER_TX, PrivateLog.empty),
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export class PaddedSideEffectAmounts {
|
|
38
|
+
constructor(
|
|
39
|
+
public nonRevertibleNoteHashes: number,
|
|
40
|
+
public revertibleNoteHashes: number,
|
|
41
|
+
public nonRevertibleNullifiers: number,
|
|
42
|
+
public revertibleNullifiers: number,
|
|
43
|
+
public nonRevertiblePrivateLogs: number,
|
|
44
|
+
public revertiblePrivateLogs: number,
|
|
45
|
+
) {}
|
|
46
|
+
|
|
47
|
+
toBuffer() {
|
|
48
|
+
return serializeToBuffer(
|
|
49
|
+
this.nonRevertibleNoteHashes,
|
|
50
|
+
this.revertibleNoteHashes,
|
|
51
|
+
this.nonRevertibleNullifiers,
|
|
52
|
+
this.revertibleNullifiers,
|
|
53
|
+
this.nonRevertiblePrivateLogs,
|
|
54
|
+
this.revertiblePrivateLogs,
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
59
|
+
const reader = BufferReader.asReader(buffer);
|
|
60
|
+
return new PaddedSideEffectAmounts(
|
|
61
|
+
reader.readNumber(),
|
|
62
|
+
reader.readNumber(),
|
|
63
|
+
reader.readNumber(),
|
|
64
|
+
reader.readNumber(),
|
|
65
|
+
reader.readNumber(),
|
|
66
|
+
reader.readNumber(),
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static empty() {
|
|
71
|
+
return new PaddedSideEffectAmounts(0, 0, 0, 0, 0, 0);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
1
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
2
|
|
|
6
|
-
import
|
|
7
|
-
import { VerificationKeyData } from '../vks/verification_key.js';
|
|
3
|
+
import { VkData } from '../vks/index.js';
|
|
8
4
|
import { PrivateKernelCircuitPublicInputs } from './private_kernel_circuit_public_inputs.js';
|
|
9
5
|
|
|
10
6
|
/**
|
|
@@ -19,17 +15,9 @@ export class PrivateKernelData {
|
|
|
19
15
|
*/
|
|
20
16
|
public publicInputs: PrivateKernelCircuitPublicInputs,
|
|
21
17
|
/**
|
|
22
|
-
*
|
|
18
|
+
* The verification key and the witness of the vk in the vk tree.
|
|
23
19
|
*/
|
|
24
|
-
public
|
|
25
|
-
/**
|
|
26
|
-
* Index of the previous kernel's vk in a tree of vks.
|
|
27
|
-
*/
|
|
28
|
-
public vkIndex: UInt32,
|
|
29
|
-
/**
|
|
30
|
-
* Sibling path of the previous kernel's vk in a tree of vks.
|
|
31
|
-
*/
|
|
32
|
-
public vkPath: Tuple<Fr, typeof VK_TREE_HEIGHT>,
|
|
20
|
+
public vkData: VkData,
|
|
33
21
|
) {}
|
|
34
22
|
|
|
35
23
|
/**
|
|
@@ -37,25 +25,15 @@ export class PrivateKernelData {
|
|
|
37
25
|
* @returns The buffer.
|
|
38
26
|
*/
|
|
39
27
|
toBuffer() {
|
|
40
|
-
return serializeToBuffer(this.publicInputs, this.
|
|
28
|
+
return serializeToBuffer(this.publicInputs, this.vkData);
|
|
41
29
|
}
|
|
42
30
|
|
|
43
31
|
static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelData {
|
|
44
32
|
const reader = BufferReader.asReader(buffer);
|
|
45
|
-
return new this(
|
|
46
|
-
reader.readObject(PrivateKernelCircuitPublicInputs),
|
|
47
|
-
reader.readObject(VerificationKeyData),
|
|
48
|
-
reader.readNumber(),
|
|
49
|
-
reader.readArray(VK_TREE_HEIGHT, Fr),
|
|
50
|
-
);
|
|
33
|
+
return new this(reader.readObject(PrivateKernelCircuitPublicInputs), reader.readObject(VkData));
|
|
51
34
|
}
|
|
52
35
|
|
|
53
36
|
static empty(): PrivateKernelData {
|
|
54
|
-
return new PrivateKernelData(
|
|
55
|
-
PrivateKernelCircuitPublicInputs.empty(),
|
|
56
|
-
VerificationKeyData.empty(),
|
|
57
|
-
0,
|
|
58
|
-
makeTuple(VK_TREE_HEIGHT, Fr.zero),
|
|
59
|
-
);
|
|
37
|
+
return new PrivateKernelData(PrivateKernelCircuitPublicInputs.empty(), VkData.empty());
|
|
60
38
|
}
|
|
61
39
|
}
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
8
8
|
|
|
9
9
|
import type { PrivateKernelResetHints } from './hints/private_kernel_reset_hints.js';
|
|
10
|
+
import type { PaddedSideEffects } from './padded_side_effects.js';
|
|
10
11
|
import type { PrivateKernelData } from './private_kernel_data.js';
|
|
11
12
|
import type { PrivateKernelResetDimensions } from './private_kernel_reset_dimensions.js';
|
|
12
13
|
|
|
@@ -15,23 +16,24 @@ export class PrivateKernelResetCircuitPrivateInputsVariants<
|
|
|
15
16
|
NH_RR_SETTLED extends number,
|
|
16
17
|
NLL_RR_PENDING extends number,
|
|
17
18
|
NLL_RR_SETTLED extends number,
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
KEY_VALIDATION_HINTS_LEN extends number,
|
|
20
|
+
TRANSIENT_DATA_HINTS_LEN extends number,
|
|
20
21
|
> {
|
|
21
22
|
constructor(
|
|
22
23
|
public previousKernel: PrivateKernelData,
|
|
24
|
+
public paddedSideEffects: PaddedSideEffects,
|
|
23
25
|
public hints: PrivateKernelResetHints<
|
|
24
26
|
NH_RR_PENDING,
|
|
25
27
|
NH_RR_SETTLED,
|
|
26
28
|
NLL_RR_PENDING,
|
|
27
29
|
NLL_RR_SETTLED,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
KEY_VALIDATION_HINTS_LEN,
|
|
31
|
+
TRANSIENT_DATA_HINTS_LEN
|
|
30
32
|
>,
|
|
31
33
|
) {}
|
|
32
34
|
|
|
33
35
|
toBuffer() {
|
|
34
|
-
return serializeToBuffer(this.previousKernel, this.hints);
|
|
36
|
+
return serializeToBuffer(this.previousKernel, this.paddedSideEffects, this.hints);
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
|
|
@@ -44,6 +46,7 @@ export class PrivateKernelResetCircuitPrivateInputs {
|
|
|
44
46
|
* The previous kernel data
|
|
45
47
|
*/
|
|
46
48
|
public previousKernel: PrivateKernelData,
|
|
49
|
+
public paddedSideEffects: PaddedSideEffects,
|
|
47
50
|
public hints: PrivateKernelResetHints<
|
|
48
51
|
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
49
52
|
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
@@ -60,18 +63,18 @@ export class PrivateKernelResetCircuitPrivateInputs {
|
|
|
60
63
|
* @returns The buffer.
|
|
61
64
|
*/
|
|
62
65
|
toBuffer() {
|
|
63
|
-
return serializeToBuffer(this.previousKernel, this.hints, this.dimensions);
|
|
66
|
+
return serializeToBuffer(this.previousKernel, this.paddedSideEffects, this.hints, this.dimensions);
|
|
64
67
|
}
|
|
65
68
|
|
|
66
69
|
trimToSizes() {
|
|
67
70
|
const hints = this.hints.trimToSizes(
|
|
68
|
-
this.dimensions.
|
|
69
|
-
this.dimensions.
|
|
70
|
-
this.dimensions.
|
|
71
|
-
this.dimensions.
|
|
72
|
-
this.dimensions.
|
|
73
|
-
this.dimensions.
|
|
71
|
+
this.dimensions.NOTE_HASH_PENDING_READ,
|
|
72
|
+
this.dimensions.NOTE_HASH_SETTLED_READ,
|
|
73
|
+
this.dimensions.NULLIFIER_PENDING_READ,
|
|
74
|
+
this.dimensions.NULLIFIER_SETTLED_READ,
|
|
75
|
+
this.dimensions.KEY_VALIDATION,
|
|
76
|
+
this.dimensions.TRANSIENT_DATA_SQUASHING,
|
|
74
77
|
);
|
|
75
|
-
return new PrivateKernelResetCircuitPrivateInputsVariants(this.previousKernel, hints);
|
|
78
|
+
return new PrivateKernelResetCircuitPrivateInputsVariants(this.previousKernel, this.paddedSideEffects, hints);
|
|
76
79
|
}
|
|
77
80
|
}
|
|
@@ -3,28 +3,28 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
3
3
|
|
|
4
4
|
export class PrivateKernelResetDimensions {
|
|
5
5
|
constructor(
|
|
6
|
-
public
|
|
7
|
-
public
|
|
8
|
-
public
|
|
9
|
-
public
|
|
10
|
-
public
|
|
11
|
-
public
|
|
12
|
-
public
|
|
13
|
-
public
|
|
14
|
-
public
|
|
6
|
+
public NOTE_HASH_PENDING_READ: number,
|
|
7
|
+
public NOTE_HASH_SETTLED_READ: number,
|
|
8
|
+
public NULLIFIER_PENDING_READ: number,
|
|
9
|
+
public NULLIFIER_SETTLED_READ: number,
|
|
10
|
+
public KEY_VALIDATION: number,
|
|
11
|
+
public TRANSIENT_DATA_SQUASHING: number,
|
|
12
|
+
public NOTE_HASH_SILOING: number,
|
|
13
|
+
public NULLIFIER_SILOING: number,
|
|
14
|
+
public PRIVATE_LOG_SILOING: number,
|
|
15
15
|
) {}
|
|
16
16
|
|
|
17
17
|
toBuffer() {
|
|
18
18
|
return serializeToBuffer(
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
19
|
+
this.NOTE_HASH_PENDING_READ,
|
|
20
|
+
this.NOTE_HASH_SETTLED_READ,
|
|
21
|
+
this.NULLIFIER_PENDING_READ,
|
|
22
|
+
this.NULLIFIER_SETTLED_READ,
|
|
23
|
+
this.KEY_VALIDATION,
|
|
24
|
+
this.TRANSIENT_DATA_SQUASHING,
|
|
25
|
+
this.NOTE_HASH_SILOING,
|
|
26
|
+
this.NULLIFIER_SILOING,
|
|
27
|
+
this.PRIVATE_LOG_SILOING,
|
|
28
28
|
);
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -57,15 +57,15 @@ export class PrivateKernelResetDimensions {
|
|
|
57
57
|
export type DimensionName = keyof FieldsOf<PrivateKernelResetDimensions>;
|
|
58
58
|
|
|
59
59
|
export const privateKernelResetDimensionNames: DimensionName[] = [
|
|
60
|
-
'
|
|
61
|
-
'
|
|
62
|
-
'
|
|
63
|
-
'
|
|
64
|
-
'
|
|
65
|
-
'
|
|
66
|
-
'
|
|
67
|
-
'
|
|
68
|
-
'
|
|
60
|
+
'NOTE_HASH_PENDING_READ',
|
|
61
|
+
'NOTE_HASH_SETTLED_READ',
|
|
62
|
+
'NULLIFIER_PENDING_READ',
|
|
63
|
+
'NULLIFIER_SETTLED_READ',
|
|
64
|
+
'KEY_VALIDATION',
|
|
65
|
+
'TRANSIENT_DATA_SQUASHING',
|
|
66
|
+
'NOTE_HASH_SILOING',
|
|
67
|
+
'NULLIFIER_SILOING',
|
|
68
|
+
'PRIVATE_LOG_SILOING',
|
|
69
69
|
];
|
|
70
70
|
|
|
71
71
|
export interface DimensionConfig {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
2
2
|
|
|
3
|
+
import { PaddedSideEffectAmounts } from './padded_side_effects.js';
|
|
3
4
|
import { PrivateKernelData } from './private_kernel_data.js';
|
|
4
5
|
import { countAccumulatedItems } from './utils/order_and_comparison.js';
|
|
5
6
|
|
|
@@ -12,6 +13,10 @@ export class PrivateKernelTailCircuitPrivateInputs {
|
|
|
12
13
|
* The previous kernel data
|
|
13
14
|
*/
|
|
14
15
|
public previousKernel: PrivateKernelData,
|
|
16
|
+
/**
|
|
17
|
+
* The number of the padded side effects.
|
|
18
|
+
*/
|
|
19
|
+
public paddedSideEffectAmounts: PaddedSideEffectAmounts,
|
|
15
20
|
) {}
|
|
16
21
|
|
|
17
22
|
isForPublic() {
|
|
@@ -26,7 +31,7 @@ export class PrivateKernelTailCircuitPrivateInputs {
|
|
|
26
31
|
* @returns The buffer.
|
|
27
32
|
*/
|
|
28
33
|
toBuffer() {
|
|
29
|
-
return serializeToBuffer(this.previousKernel);
|
|
34
|
+
return serializeToBuffer(this.previousKernel, this.paddedSideEffectAmounts);
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
/**
|
|
@@ -36,6 +41,9 @@ export class PrivateKernelTailCircuitPrivateInputs {
|
|
|
36
41
|
*/
|
|
37
42
|
static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelTailCircuitPrivateInputs {
|
|
38
43
|
const reader = BufferReader.asReader(buffer);
|
|
39
|
-
return new PrivateKernelTailCircuitPrivateInputs(
|
|
44
|
+
return new PrivateKernelTailCircuitPrivateInputs(
|
|
45
|
+
reader.readObject(PrivateKernelData),
|
|
46
|
+
reader.readObject(PaddedSideEffectAmounts),
|
|
47
|
+
);
|
|
40
48
|
}
|
|
41
49
|
}
|