@aztec/stdlib 1.0.0-nightly.20250708 → 1.0.0-staging.1
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/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +6 -3
- package/dest/abi/index.d.ts +0 -1
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +0 -1
- package/dest/block/l2_block.d.ts +0 -7
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +0 -8
- package/dest/block/l2_block_stream/l2_block_stream.js +1 -1
- package/dest/gas/gas.d.ts +0 -1
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +0 -3
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +1 -3
- package/dest/interfaces/client.d.ts +0 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +0 -1
- package/dest/interfaces/configs.d.ts +0 -10
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -3
- package/dest/interfaces/proving-job.d.ts +18 -18
- package/dest/interfaces/pxe.d.ts +0 -2
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/server.d.ts +1 -3
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +1 -3
- package/dest/interfaces/tx-collector.d.ts +15 -0
- package/dest/interfaces/tx-collector.d.ts.map +1 -0
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -6
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +20 -18
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +10 -7
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +32 -17
- package/dest/kernel/hints/build_transient_data_hints.d.ts +1 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +8 -7
- package/dest/kernel/hints/index.d.ts +1 -0
- package/dest/kernel/hints/index.d.ts.map +1 -1
- package/dest/kernel/hints/index.js +1 -0
- package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/note_hash_read_request_hints.js +4 -4
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.js +4 -4
- package/dest/kernel/hints/read_request_hints.d.ts +17 -17
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.js +28 -28
- package/dest/kernel/hints/rollup_validation_requests.d.ts +34 -0
- package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -0
- package/dest/kernel/hints/rollup_validation_requests.js +55 -0
- package/dest/kernel/index.d.ts +0 -1
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +0 -1
- package/dest/kernel/private_accumulated_data.d.ts +15 -16
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_accumulated_data.js +3 -3
- package/dest/kernel/private_circuit_public_inputs.d.ts +25 -26
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +15 -33
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +0 -9
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -8
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -10
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +6 -9
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -11
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +18 -20
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +4 -4
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +10 -9
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +11 -11
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +12 -11
- package/dest/kernel/private_validation_requests.d.ts +20 -8
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +21 -9
- package/dest/kernel/utils/order_and_comparison.d.ts +3 -0
- package/dest/kernel/utils/order_and_comparison.d.ts.map +1 -1
- package/dest/kernel/utils/order_and_comparison.js +19 -0
- package/dest/messaging/l2_to_l1_message.d.ts +0 -2
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +0 -7
- package/dest/p2p/block_proposal.d.ts +1 -8
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +8 -21
- package/dest/p2p/consensus_payload.d.ts +11 -3
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -13
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +3 -5
- package/dest/tests/factories.d.ts +2 -0
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +22 -20
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +12 -14
- package/dest/tx/include_by_timestamp.d.ts +54 -0
- package/dest/tx/include_by_timestamp.d.ts.map +1 -0
- package/dest/tx/include_by_timestamp.js +72 -0
- package/dest/tx/index.d.ts +1 -0
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/private_execution_result.d.ts +2 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +11 -11
- package/dest/tx/simulated_tx.js +1 -1
- package/dest/tx/tx.d.ts +2 -7
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +0 -8
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/abi/decoder.ts +6 -3
- package/src/abi/index.ts +0 -1
- package/src/block/l2_block.ts +0 -16
- package/src/block/l2_block_stream/l2_block_stream.ts +1 -1
- package/src/gas/gas.ts +0 -4
- package/src/interfaces/aztec-node-admin.ts +1 -8
- package/src/interfaces/client.ts +0 -1
- package/src/interfaces/configs.ts +0 -6
- package/src/interfaces/pxe.ts +0 -2
- package/src/interfaces/server.ts +1 -3
- package/src/interfaces/tx-collector.ts +17 -0
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +30 -28
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +59 -28
- package/src/kernel/hints/build_transient_data_hints.ts +11 -9
- package/src/kernel/hints/index.ts +1 -0
- package/src/kernel/hints/note_hash_read_request_hints.ts +16 -4
- package/src/kernel/hints/nullifier_read_request_hints.ts +16 -4
- package/src/kernel/hints/read_request_hints.ts +22 -22
- package/src/kernel/hints/rollup_validation_requests.ts +71 -0
- package/src/kernel/index.ts +0 -1
- package/src/kernel/private_accumulated_data.ts +23 -23
- package/src/kernel/private_circuit_public_inputs.ts +68 -92
- package/src/kernel/private_kernel_circuit_public_inputs.ts +1 -9
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +4 -13
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +20 -20
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +7 -7
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +10 -16
- package/src/kernel/private_validation_requests.ts +50 -19
- package/src/kernel/utils/order_and_comparison.ts +25 -0
- package/src/messaging/l2_to_l1_message.ts +0 -9
- package/src/p2p/block_proposal.ts +5 -23
- package/src/p2p/consensus_payload.ts +29 -10
- package/src/p2p/topic_type.ts +1 -3
- package/src/tests/factories.ts +26 -33
- package/src/tests/mocks.ts +9 -7
- package/src/tx/include_by_timestamp.ts +90 -0
- package/src/tx/index.ts +1 -0
- package/src/tx/private_execution_result.ts +9 -11
- package/src/tx/simulated_tx.ts +2 -2
- package/src/tx/tx.ts +1 -14
- package/src/versioning/versioning.ts +3 -0
- package/dest/abi/authorization_selector.d.ts +0 -52
- package/dest/abi/authorization_selector.d.ts.map +0 -1
- package/dest/abi/authorization_selector.js +0 -70
- package/dest/interfaces/tx_provider.d.ts +0 -24
- package/dest/interfaces/tx_provider.d.ts.map +0 -1
- package/dest/kernel/claimed_length_array.d.ts +0 -34
- package/dest/kernel/claimed_length_array.d.ts.map +0 -1
- package/dest/kernel/claimed_length_array.js +0 -58
- package/src/abi/authorization_selector.ts +0 -95
- package/src/interfaces/tx_provider.ts +0 -16
- package/src/kernel/claimed_length_array.ts +0 -104
- /package/dest/interfaces/{tx_provider.js → tx-collector.js} +0 -0
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { MAX_NULLIFIER_READ_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
|
+
import { AztecAddress } from '../../aztec-address/index.js';
|
|
2
4
|
import { siloNullifier } from '../../hash/hash.js';
|
|
5
|
+
import { Nullifier } from '../nullifier.js';
|
|
6
|
+
import { countAccumulatedItems, getNonEmptyItems } from '../utils/order_and_comparison.js';
|
|
3
7
|
import { NullifierReadRequestHintsBuilder } from './nullifier_read_request_hints.js';
|
|
4
|
-
import {
|
|
8
|
+
import { ReadRequest, ScopedReadRequest } from './read_request.js';
|
|
9
|
+
import { PendingReadHint, ReadRequestResetStates, ReadRequestState } from './read_request_hints.js';
|
|
5
10
|
import { ScopedValueCache } from './scoped_value_cache.js';
|
|
6
11
|
export function isValidNullifierReadRequest(readRequest, nullifier) {
|
|
7
12
|
return readRequest.value.equals(nullifier.value) && nullifier.contractAddress.equals(readRequest.contractAddress) && readRequest.counter > nullifier.counter;
|
|
8
13
|
}
|
|
9
|
-
export function
|
|
10
|
-
const
|
|
14
|
+
export function getNullifierReadRequestResetStates(nullifierReadRequests, nullifiers, futureNullifiers) {
|
|
15
|
+
const resetStates = ReadRequestResetStates.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
11
16
|
const nullifierMap = new Map();
|
|
12
|
-
nullifiers
|
|
17
|
+
getNonEmptyItems(nullifiers).forEach((nullifier, index)=>{
|
|
13
18
|
const value = nullifier.value.toBigInt();
|
|
14
19
|
const arr = nullifierMap.get(value) ?? [];
|
|
15
20
|
arr.push({
|
|
@@ -19,26 +24,27 @@ export function getNullifierReadRequestResetActions(nullifierReadRequests, nulli
|
|
|
19
24
|
nullifierMap.set(value, arr);
|
|
20
25
|
});
|
|
21
26
|
const futureNullifiersMap = new ScopedValueCache(futureNullifiers);
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
const numReadRequests = countAccumulatedItems(nullifierReadRequests);
|
|
28
|
+
for(let i = 0; i < numReadRequests; ++i){
|
|
29
|
+
const readRequest = nullifierReadRequests[i];
|
|
24
30
|
const pendingNullifier = nullifierMap.get(readRequest.value.toBigInt())?.find(({ nullifier })=>isValidNullifierReadRequest(readRequest, nullifier));
|
|
25
31
|
if (pendingNullifier !== undefined) {
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
resetStates.states[i] = ReadRequestState.PENDING;
|
|
33
|
+
resetStates.pendingReadHints.push(new PendingReadHint(i, pendingNullifier.index));
|
|
28
34
|
} else if (!futureNullifiersMap.get(readRequest).some((futureNullifier)=>isValidNullifierReadRequest(readRequest, futureNullifier))) {
|
|
29
|
-
|
|
35
|
+
resetStates.states[i] = ReadRequestState.SETTLED;
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
|
-
return
|
|
38
|
+
return resetStates;
|
|
33
39
|
}
|
|
34
|
-
export async function
|
|
40
|
+
export async function buildNullifierReadRequestHintsFromResetStates(oracle, nullifierReadRequests, resetStates, maxPending = MAX_NULLIFIER_READ_REQUESTS_PER_TX, maxSettled = MAX_NULLIFIER_READ_REQUESTS_PER_TX, siloed = false) {
|
|
35
41
|
const builder = new NullifierReadRequestHintsBuilder(maxPending, maxSettled);
|
|
36
|
-
|
|
42
|
+
resetStates.pendingReadHints.forEach((hint)=>{
|
|
37
43
|
builder.addPendingReadRequest(hint.readRequestIndex, hint.pendingValueIndex);
|
|
38
44
|
});
|
|
39
|
-
for(let i = 0; i <
|
|
40
|
-
if (
|
|
41
|
-
const readRequest = nullifierReadRequests
|
|
45
|
+
for(let i = 0; i < resetStates.states.length; i++){
|
|
46
|
+
if (resetStates.states[i] === ReadRequestState.SETTLED) {
|
|
47
|
+
const readRequest = nullifierReadRequests[i];
|
|
42
48
|
const siloedValue = siloed ? readRequest.value : await siloNullifier(readRequest.contractAddress, readRequest.value);
|
|
43
49
|
const membershipWitnessWithPreimage = await oracle.getNullifierMembershipWitness(siloedValue);
|
|
44
50
|
builder.addSettledReadRequest(i, membershipWitnessWithPreimage.membershipWitness, membershipWitnessWithPreimage.leafPreimage);
|
|
@@ -47,6 +53,15 @@ export async function buildNullifierReadRequestHintsFromResetActions(oracle, nul
|
|
|
47
53
|
return builder.toHints();
|
|
48
54
|
}
|
|
49
55
|
export async function buildNullifierReadRequestHints(oracle, nullifierReadRequests, nullifiers, futureNullifiers, maxPending = MAX_NULLIFIER_READ_REQUESTS_PER_TX, maxSettled = MAX_NULLIFIER_READ_REQUESTS_PER_TX, siloed = false) {
|
|
50
|
-
const
|
|
51
|
-
return await
|
|
56
|
+
const resetStates = getNullifierReadRequestResetStates(nullifierReadRequests, nullifiers, futureNullifiers);
|
|
57
|
+
return await buildNullifierReadRequestHintsFromResetStates(oracle, nullifierReadRequests, resetStates, maxPending, maxSettled, siloed);
|
|
58
|
+
}
|
|
59
|
+
export async function buildSiloedNullifierReadRequestHints(oracle, nullifierReadRequests, nullifiers, maxPending = MAX_NULLIFIER_READ_REQUESTS_PER_TX, maxSettled = MAX_NULLIFIER_READ_REQUESTS_PER_TX) {
|
|
60
|
+
// Nullifiers outputted from public kernels are already siloed while read requests are not.
|
|
61
|
+
// Siloing the read request values and set the contract addresses to zero to find the matching nullifier contexts.
|
|
62
|
+
const nonEmptyNullifierReadRequests = getNonEmptyItems(nullifierReadRequests);
|
|
63
|
+
const readRequests = await Promise.all(nonEmptyNullifierReadRequests.map(async (r)=>new ReadRequest(await siloNullifier(r.contractAddress, r.value), r.counter).scope(AztecAddress.ZERO)));
|
|
64
|
+
const siloedReadRequests = padArrayEnd(readRequests, ScopedReadRequest.empty(), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
65
|
+
const scopedNullifiers = nullifiers.map((n)=>new Nullifier(n.value, n.counter, n.noteHash).scope(AztecAddress.ZERO));
|
|
66
|
+
return buildNullifierReadRequestHints(oracle, siloedReadRequests, scopedNullifiers, [], maxPending, maxSettled, true);
|
|
52
67
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
2
|
-
import type { ClaimedLengthArray } from '../claimed_length_array.js';
|
|
3
2
|
import type { ScopedNoteHash } from '../note_hash.js';
|
|
4
3
|
import type { ScopedNullifier } from '../nullifier.js';
|
|
5
4
|
import type { ScopedReadRequest } from './read_request.js';
|
|
6
5
|
import { TransientDataIndexHint } from './transient_data_index_hint.js';
|
|
7
|
-
export declare function buildTransientDataHints<NOTE_HASHES_LEN extends number, NULLIFIERS_LEN extends number>(noteHashes:
|
|
6
|
+
export declare function buildTransientDataHints<NOTE_HASHES_LEN extends number, NULLIFIERS_LEN extends number>(noteHashes: Tuple<ScopedNoteHash, NOTE_HASHES_LEN>, nullifiers: Tuple<ScopedNullifier, NULLIFIERS_LEN>, futureNoteHashReads: ScopedReadRequest[], futureNullifierReads: ScopedReadRequest[], noteHashNullifierCounterMap: Map<number, number>, validationRequestsSplitCounter: number, noteHashesLength?: NOTE_HASHES_LEN, nullifiersLength?: NULLIFIERS_LEN): {
|
|
8
7
|
numTransientData: number;
|
|
9
8
|
hints: Tuple<TransientDataIndexHint, NULLIFIERS_LEN>;
|
|
10
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_transient_data_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_transient_data_hints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"build_transient_data_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_transient_data_hints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,wBAAgB,uBAAuB,CAAC,eAAe,SAAS,MAAM,EAAE,cAAc,SAAS,MAAM,EACnG,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,EAClD,UAAU,EAAE,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,EAClD,mBAAmB,EAAE,iBAAiB,EAAE,EACxC,oBAAoB,EAAE,iBAAiB,EAAE,EACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM,EACtC,gBAAgB,GAAE,eAAsD,EACxE,gBAAgB,GAAE,cAAoD,GACrE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;CAAE,CA2DpF"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
2
|
+
import { countAccumulatedItems } from '../utils/order_and_comparison.js';
|
|
2
3
|
import { isValidNoteHashReadRequest } from './build_note_hash_read_request_hints.js';
|
|
3
4
|
import { isValidNullifierReadRequest } from './build_nullifier_read_request_hints.js';
|
|
4
5
|
import { ScopedValueCache } from './scoped_value_cache.js';
|
|
5
6
|
import { TransientDataIndexHint } from './transient_data_index_hint.js';
|
|
6
|
-
export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashReads, futureNullifierReads, noteHashNullifierCounterMap, validationRequestsSplitCounter) {
|
|
7
|
+
export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashReads, futureNullifierReads, noteHashNullifierCounterMap, validationRequestsSplitCounter, noteHashesLength = noteHashes.length, nullifiersLength = nullifiers.length) {
|
|
7
8
|
const futureNoteHashReadsMap = new ScopedValueCache(futureNoteHashReads);
|
|
8
9
|
const futureNullifierReadsMap = new ScopedValueCache(futureNullifierReads);
|
|
9
10
|
const nullifierIndexMap = new Map();
|
|
10
|
-
nullifiers.
|
|
11
|
+
nullifiers.forEach((n, i)=>nullifierIndexMap.set(n.counter, i));
|
|
11
12
|
const hints = [];
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
const numNoteHashes = countAccumulatedItems(noteHashes);
|
|
14
|
+
for(let noteHashIndex = 0; noteHashIndex < numNoteHashes; noteHashIndex++){
|
|
15
|
+
const noteHash = noteHashes[noteHashIndex];
|
|
14
16
|
const noteHashNullifierCounter = noteHashNullifierCounterMap.get(noteHash.counter);
|
|
15
17
|
// The note hash might not be linked to a nullifier or it might be read in the future
|
|
16
18
|
if (!noteHashNullifierCounter || futureNoteHashReadsMap.get(noteHash).find((read)=>isValidNoteHashReadRequest(read, noteHash))) {
|
|
@@ -21,7 +23,7 @@ export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashRe
|
|
|
21
23
|
if (nullifierIndex === undefined) {
|
|
22
24
|
continue;
|
|
23
25
|
}
|
|
24
|
-
const nullifier = nullifiers
|
|
26
|
+
const nullifier = nullifiers[nullifierIndex];
|
|
25
27
|
// Cannot nullify a non-revertible note hash with a revertible nullifier.
|
|
26
28
|
if (noteHash.counter < validationRequestsSplitCounter && nullifier.counter >= validationRequestsSplitCounter) {
|
|
27
29
|
continue;
|
|
@@ -42,9 +44,8 @@ export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashRe
|
|
|
42
44
|
}
|
|
43
45
|
hints.push(new TransientDataIndexHint(nullifierIndex, noteHashIndex));
|
|
44
46
|
}
|
|
45
|
-
const noActionHint = new TransientDataIndexHint(nullifiers.array.length, noteHashes.array.length);
|
|
46
47
|
return {
|
|
47
48
|
numTransientData: hints.length,
|
|
48
|
-
hints: padArrayEnd(hints,
|
|
49
|
+
hints: padArrayEnd(hints, new TransientDataIndexHint(nullifiersLength, noteHashesLength), nullifiersLength)
|
|
49
50
|
};
|
|
50
51
|
}
|
|
@@ -10,6 +10,7 @@ export * from './key_validation_request_and_generator.js';
|
|
|
10
10
|
export * from './read_request.js';
|
|
11
11
|
export * from './key_validation_request.js';
|
|
12
12
|
export * from './scoped_key_validation_request_and_generator.js';
|
|
13
|
+
export * from './rollup_validation_requests.js';
|
|
13
14
|
export * from './transient_data_index_hint.js';
|
|
14
15
|
export * from './private_kernel_reset_hints.js';
|
|
15
16
|
export * from './tree_leaf_read_request.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kDAAkD,CAAC;AACjE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC"}
|
|
@@ -10,6 +10,7 @@ export * from './key_validation_request_and_generator.js';
|
|
|
10
10
|
export * from './read_request.js';
|
|
11
11
|
export * from './key_validation_request.js';
|
|
12
12
|
export * from './scoped_key_validation_request_and_generator.js';
|
|
13
|
+
export * from './rollup_validation_requests.js';
|
|
13
14
|
export * from './transient_data_index_hint.js';
|
|
14
15
|
export * from './private_kernel_reset_hints.js';
|
|
15
16
|
export * from './tree_leaf_read_request.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_hash_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/note_hash_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,
|
|
1
|
+
{"version":3,"file":"note_hash_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/note_hash_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAEL,qBAAqB,EAItB,MAAM,yBAAyB,CAAC;AAEjC,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,IAAI,qBAAqB,CAC1G,OAAO,kCAAkC,EACzC,OAAO,EACP,OAAO,EACP,OAAO,qBAAqB,EAC5B,iBAAiB,CAClB,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAC/F,MAAM,EAAE,MAAM,GAAG,YAAY,EAC7B,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO,GAClB,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAS5C;AAED,qBAAa,+BAA+B,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM;aAMvE,UAAU,EAAE,OAAO;aACnB,UAAU,EAAE,OAAO;IANrC,OAAO,CAAC,KAAK,CAA6C;IACnD,mBAAmB,SAAK;IACxB,mBAAmB,SAAK;gBAGb,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO;IAWrC,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAIrG,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAYrE,qBAAqB,CACnB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,EAClE,KAAK,EAAE,iBAAiB;IAiB1B,OAAO;CAGR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MAX_NOTE_HASH_READ_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { PendingReadHint,
|
|
4
|
+
import { PendingReadHint, ReadRequestResetHints, ReadRequestState, ReadRequestStatus, SettledReadHint } from './read_request_hints.js';
|
|
5
5
|
export function noteHashReadRequestHintsFromBuffer(buffer, numPending, numSettled) {
|
|
6
6
|
return ReadRequestResetHints.fromBuffer(buffer, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, numPending, numSettled, NOTE_HASH_TREE_HEIGHT, Fr);
|
|
7
7
|
}
|
|
@@ -16,7 +16,7 @@ export class NoteHashReadRequestHintsBuilder {
|
|
|
16
16
|
this.maxSettled = maxSettled;
|
|
17
17
|
this.numPendingReadHints = 0;
|
|
18
18
|
this.numSettledReadHints = 0;
|
|
19
|
-
this.hints = new ReadRequestResetHints(makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
19
|
+
this.hints = new ReadRequestResetHints(makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ReadRequestStatus.nada), makeTuple(maxPending, ()=>PendingReadHint.nada(MAX_NOTE_HASH_READ_REQUESTS_PER_TX)), makeTuple(maxSettled, ()=>SettledReadHint.nada(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT, Fr.zero)));
|
|
20
20
|
}
|
|
21
21
|
static empty(maxPending, maxSettled) {
|
|
22
22
|
return new NoteHashReadRequestHintsBuilder(maxPending, maxSettled).toHints();
|
|
@@ -25,7 +25,7 @@ export class NoteHashReadRequestHintsBuilder {
|
|
|
25
25
|
if (this.numPendingReadHints === this.maxPending) {
|
|
26
26
|
throw new Error('Cannot add more pending read request.');
|
|
27
27
|
}
|
|
28
|
-
this.hints.
|
|
28
|
+
this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(ReadRequestState.PENDING, this.numPendingReadHints);
|
|
29
29
|
this.hints.pendingReadHints[this.numPendingReadHints] = new PendingReadHint(readRequestIndex, noteHashIndex);
|
|
30
30
|
this.numPendingReadHints++;
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ export class NoteHashReadRequestHintsBuilder {
|
|
|
33
33
|
if (this.numSettledReadHints === this.maxSettled) {
|
|
34
34
|
throw new Error('Cannot add more settled read request.');
|
|
35
35
|
}
|
|
36
|
-
this.hints.
|
|
36
|
+
this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(ReadRequestState.SETTLED, this.numSettledReadHints);
|
|
37
37
|
this.hints.settledReadHints[this.numSettledReadHints] = new SettledReadHint(readRequestIndex, membershipWitness, value);
|
|
38
38
|
this.numSettledReadHints++;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullifier_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/nullifier_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,
|
|
1
|
+
{"version":3,"file":"nullifier_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/nullifier_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAEL,qBAAqB,EAItB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,yBAAyB,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,IAAI,qBAAqB,CAC3G,OAAO,kCAAkC,EACzC,OAAO,EACP,OAAO,EACP,OAAO,qBAAqB,EAC5B,gBAAgB,CACjB,CAAC;AAEF,wBAAgB,mCAAmC,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAChG,MAAM,EAAE,MAAM,GAAG,YAAY,EAC7B,eAAe,EAAE,OAAO,EACxB,eAAe,EAAE,OAAO,GACvB,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAS7C;AAED,qBAAa,gCAAgC,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM;aAMxE,UAAU,EAAE,OAAO;aACnB,UAAU,EAAE,OAAO;IANrC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,mBAAmB,CAAK;gBAGd,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO;IAWrC,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAIrG,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAatE,qBAAqB,CACnB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,EAClE,YAAY,EAAE,gBAAgB;IAiBhC,OAAO;CAGR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MAX_NULLIFIER_READ_REQUESTS_PER_TX, NULLIFIER_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { NullifierLeafPreimage } from '../../trees/index.js';
|
|
4
|
-
import { PendingReadHint,
|
|
4
|
+
import { PendingReadHint, ReadRequestResetHints, ReadRequestState, ReadRequestStatus, SettledReadHint } from './read_request_hints.js';
|
|
5
5
|
export function nullifierReadRequestHintsFromBuffer(buffer, numPendingReads, numSettledReads) {
|
|
6
6
|
return ReadRequestResetHints.fromBuffer(buffer, MAX_NULLIFIER_READ_REQUESTS_PER_TX, numPendingReads, numSettledReads, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage);
|
|
7
7
|
}
|
|
@@ -16,7 +16,7 @@ export class NullifierReadRequestHintsBuilder {
|
|
|
16
16
|
this.maxSettled = maxSettled;
|
|
17
17
|
this.numPendingReadHints = 0;
|
|
18
18
|
this.numSettledReadHints = 0;
|
|
19
|
-
this.hints = new ReadRequestResetHints(makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
19
|
+
this.hints = new ReadRequestResetHints(makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ReadRequestStatus.nada), makeTuple(maxPending, ()=>PendingReadHint.nada(MAX_NULLIFIER_READ_REQUESTS_PER_TX)), makeTuple(maxSettled, ()=>SettledReadHint.nada(MAX_NULLIFIER_READ_REQUESTS_PER_TX, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage.empty)));
|
|
20
20
|
}
|
|
21
21
|
static empty(maxPending, maxSettled) {
|
|
22
22
|
return new NullifierReadRequestHintsBuilder(maxPending, maxSettled).toHints();
|
|
@@ -25,7 +25,7 @@ export class NullifierReadRequestHintsBuilder {
|
|
|
25
25
|
if (this.numPendingReadHints === this.maxPending) {
|
|
26
26
|
throw new Error('Cannot add more pending read request.');
|
|
27
27
|
}
|
|
28
|
-
this.hints.
|
|
28
|
+
this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(ReadRequestState.PENDING, this.numPendingReadHints);
|
|
29
29
|
this.hints.pendingReadHints[this.numPendingReadHints] = new PendingReadHint(readRequestIndex, nullifierIndex);
|
|
30
30
|
this.numPendingReadHints++;
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ export class NullifierReadRequestHintsBuilder {
|
|
|
33
33
|
if (this.numSettledReadHints === this.maxSettled) {
|
|
34
34
|
throw new Error('Cannot add more settled read request.');
|
|
35
35
|
}
|
|
36
|
-
this.hints.
|
|
36
|
+
this.hints.readRequestStatuses[readRequestIndex] = new ReadRequestStatus(ReadRequestState.SETTLED, this.numSettledReadHints);
|
|
37
37
|
this.hints.settledReadHints[this.numSettledReadHints] = new SettledReadHint(readRequestIndex, membershipWitness, leafPreimage);
|
|
38
38
|
this.numSettledReadHints++;
|
|
39
39
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { BufferReader, type Bufferable, type Tuple } from '@aztec/foundation/serialize';
|
|
2
2
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
3
|
-
export declare enum
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
export declare enum ReadRequestState {
|
|
4
|
+
NADA = 0,
|
|
5
|
+
PENDING = 1,
|
|
6
|
+
SETTLED = 2
|
|
7
7
|
}
|
|
8
|
-
export declare class
|
|
9
|
-
|
|
8
|
+
export declare class ReadRequestStatus {
|
|
9
|
+
state: ReadRequestState;
|
|
10
10
|
hintIndex: number;
|
|
11
|
-
constructor(
|
|
12
|
-
static
|
|
13
|
-
static
|
|
14
|
-
static
|
|
15
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
11
|
+
constructor(state: ReadRequestState, hintIndex: number);
|
|
12
|
+
static nada(): ReadRequestStatus;
|
|
13
|
+
static pending(hintIndex: number): ReadRequestStatus;
|
|
14
|
+
static settled(hintIndex: number): ReadRequestStatus;
|
|
15
|
+
static fromBuffer(buffer: Buffer | BufferReader): ReadRequestStatus;
|
|
16
16
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
17
17
|
}
|
|
18
18
|
export declare class PendingReadHint {
|
|
@@ -38,7 +38,7 @@ export declare class SettledReadHint<TREE_HEIGHT extends number, LEAF_PREIMAGE e
|
|
|
38
38
|
* Hints for read request reset circuit.
|
|
39
39
|
*/
|
|
40
40
|
export declare class ReadRequestResetHints<READ_REQUEST_LEN extends number, PENDING_READ_HINTS_LEN extends number, SETTLED_READ_HINTS_LEN extends number, TREE_HEIGHT extends number, LEAF_PREIMAGE extends Bufferable> {
|
|
41
|
-
|
|
41
|
+
readRequestStatuses: Tuple<ReadRequestStatus, READ_REQUEST_LEN>;
|
|
42
42
|
/**
|
|
43
43
|
* The hints for read requests reading pending values.
|
|
44
44
|
*/
|
|
@@ -47,7 +47,7 @@ export declare class ReadRequestResetHints<READ_REQUEST_LEN extends number, PEND
|
|
|
47
47
|
* The hints for read requests reading settled values.
|
|
48
48
|
*/
|
|
49
49
|
settledReadHints: Tuple<SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>, SETTLED_READ_HINTS_LEN>;
|
|
50
|
-
constructor(
|
|
50
|
+
constructor(readRequestStatuses: Tuple<ReadRequestStatus, READ_REQUEST_LEN>,
|
|
51
51
|
/**
|
|
52
52
|
* The hints for read requests reading pending values.
|
|
53
53
|
*/
|
|
@@ -67,10 +67,10 @@ export declare class ReadRequestResetHints<READ_REQUEST_LEN extends number, PEND
|
|
|
67
67
|
}): ReadRequestResetHints<READ_REQUEST_LEN, PENDING_READ_HINTS_LEN, SETTLED_READ_HINTS_LEN, TREE_HEIGHT, LEAF_PREIMAGE>;
|
|
68
68
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
69
69
|
}
|
|
70
|
-
export declare class
|
|
71
|
-
|
|
70
|
+
export declare class ReadRequestResetStates<NUM_READS extends number> {
|
|
71
|
+
states: Tuple<ReadRequestState, NUM_READS>;
|
|
72
72
|
pendingReadHints: PendingReadHint[];
|
|
73
|
-
constructor(
|
|
74
|
-
static empty<NUM_READS extends number>(numReads: NUM_READS):
|
|
73
|
+
constructor(states: Tuple<ReadRequestState, NUM_READS>, pendingReadHints: PendingReadHint[]);
|
|
74
|
+
static empty<NUM_READS extends number>(numReads: NUM_READS): ReadRequestResetStates<NUM_READS>;
|
|
75
75
|
}
|
|
76
76
|
//# sourceMappingURL=read_request_hints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/read_request_hints.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAY,
|
|
1
|
+
{"version":3,"file":"read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/read_request_hints.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAY,gBAAgB;IAC1B,IAAI,IAAI;IACR,OAAO,IAAI;IACX,OAAO,IAAI;CACZ;AAED,qBAAa,iBAAiB;IAEnB,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,MAAM;gBADjB,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM;IAG1B,MAAM,CAAC,IAAI;IAIX,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM;IAIhC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM;IAIhC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ;CAGT;AAED,qBAAa,eAAe;IAEjB,gBAAgB,EAAE,MAAM;IACxB,iBAAiB,EAAE,MAAM;gBADzB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM;IAGlC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM;IAIlC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ;CAGT;AAED,qBAAa,eAAe,CAAC,WAAW,SAAS,MAAM,EAAE,aAAa,SAAS,UAAU;IAE9E,gBAAgB,EAAE,MAAM;IACxB,iBAAiB,EAAE,iBAAiB,CAAC,WAAW,CAAC;IACjD,YAAY,EAAE,aAAa;gBAF3B,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,iBAAiB,CAAC,WAAW,CAAC,EACjD,YAAY,EAAE,aAAa;IAGpC,MAAM,CAAC,IAAI,CAAC,WAAW,SAAS,MAAM,EAAE,aAAa,SAAS,UAAU,EACtE,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,WAAW,EACvB,iBAAiB,EAAE,MAAM,aAAa;IAKxC,MAAM,CAAC,UAAU,CAAC,WAAW,SAAS,MAAM,EAAE,aAAa,SAAS,UAAU,EAC5E,MAAM,EAAE,MAAM,GAAG,YAAY,EAC7B,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE;QAAE,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAAA;KAAE,GAChE,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC;IAS9C,QAAQ;CAGT;AAED;;GAEG;AACH,qBAAa,qBAAqB,CAChC,gBAAgB,SAAS,MAAM,EAC/B,sBAAsB,SAAS,MAAM,EACrC,sBAAsB,SAAS,MAAM,EACrC,WAAW,SAAS,MAAM,EAC1B,aAAa,SAAS,UAAU;IAGvB,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IACtE;;OAEG;IACI,gBAAgB,EAAE,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACvE;;OAEG;IACI,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,sBAAsB,CAAC;gBAR5F,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IACtE;;OAEG;IACI,gBAAgB,EAAE,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACvE;;OAEG;IACI,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAGrG,WAAW,CAAC,0BAA0B,SAAS,MAAM,EAAE,0BAA0B,SAAS,MAAM,EAC9F,eAAe,EAAE,0BAA0B,EAC3C,eAAe,EAAE,0BAA0B,GAC1C,qBAAqB,CACtB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,WAAW,EACX,aAAa,CACd;IAWD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CACf,gBAAgB,SAAS,MAAM,EAC/B,sBAAsB,SAAS,MAAM,EACrC,sBAAsB,SAAS,MAAM,EACrC,WAAW,SAAS,MAAM,EAC1B,aAAa,SAAS,UAAU,EAEhC,MAAM,EAAE,MAAM,GAAG,YAAY,EAC7B,cAAc,EAAE,gBAAgB,EAChC,eAAe,EAAE,sBAAsB,EACvC,eAAe,EAAE,sBAAsB,EACvC,UAAU,EAAE,WAAW,EACvB,sBAAsB,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,aAAa,CAAA;KAAE,GAC9E,qBAAqB,CACtB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,aAAa,CACd;IAWD,QAAQ;CAGT;AAED,qBAAa,sBAAsB,CAAC,SAAS,SAAS,MAAM;IAEjD,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC1C,gBAAgB,EAAE,eAAe,EAAE;gBADnC,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAC1C,gBAAgB,EAAE,eAAe,EAAE;IAG5C,MAAM,CAAC,KAAK,CAAC,SAAS,SAAS,MAAM,EAAE,QAAQ,EAAE,SAAS;CAM3D"}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { makeTuple } from '@aztec/foundation/array';
|
|
2
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
3
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
4
|
-
export var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return
|
|
4
|
+
export var ReadRequestState = /*#__PURE__*/ function(ReadRequestState) {
|
|
5
|
+
ReadRequestState[ReadRequestState["NADA"] = 0] = "NADA";
|
|
6
|
+
ReadRequestState[ReadRequestState["PENDING"] = 1] = "PENDING";
|
|
7
|
+
ReadRequestState[ReadRequestState["SETTLED"] = 2] = "SETTLED";
|
|
8
|
+
return ReadRequestState;
|
|
9
9
|
}({});
|
|
10
|
-
export class
|
|
11
|
-
|
|
10
|
+
export class ReadRequestStatus {
|
|
11
|
+
state;
|
|
12
12
|
hintIndex;
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
13
|
+
constructor(state, hintIndex){
|
|
14
|
+
this.state = state;
|
|
15
15
|
this.hintIndex = hintIndex;
|
|
16
16
|
}
|
|
17
|
-
static
|
|
18
|
-
return new
|
|
17
|
+
static nada() {
|
|
18
|
+
return new ReadRequestStatus(0, 0);
|
|
19
19
|
}
|
|
20
|
-
static
|
|
21
|
-
return new
|
|
20
|
+
static pending(hintIndex) {
|
|
21
|
+
return new ReadRequestStatus(1, hintIndex);
|
|
22
22
|
}
|
|
23
|
-
static
|
|
24
|
-
return new
|
|
23
|
+
static settled(hintIndex) {
|
|
24
|
+
return new ReadRequestStatus(2, hintIndex);
|
|
25
25
|
}
|
|
26
26
|
static fromBuffer(buffer) {
|
|
27
27
|
const reader = BufferReader.asReader(buffer);
|
|
28
|
-
return new
|
|
28
|
+
return new ReadRequestStatus(reader.readNumber(), reader.readNumber());
|
|
29
29
|
}
|
|
30
30
|
toBuffer() {
|
|
31
|
-
return serializeToBuffer(this.
|
|
31
|
+
return serializeToBuffer(this.state, this.hintIndex);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
export class PendingReadHint {
|
|
@@ -72,20 +72,20 @@ export class SettledReadHint {
|
|
|
72
72
|
/**
|
|
73
73
|
* Hints for read request reset circuit.
|
|
74
74
|
*/ export class ReadRequestResetHints {
|
|
75
|
-
|
|
75
|
+
readRequestStatuses;
|
|
76
76
|
pendingReadHints;
|
|
77
77
|
settledReadHints;
|
|
78
|
-
constructor(
|
|
78
|
+
constructor(readRequestStatuses, /**
|
|
79
79
|
* The hints for read requests reading pending values.
|
|
80
80
|
*/ pendingReadHints, /**
|
|
81
81
|
* The hints for read requests reading settled values.
|
|
82
82
|
*/ settledReadHints){
|
|
83
|
-
this.
|
|
83
|
+
this.readRequestStatuses = readRequestStatuses;
|
|
84
84
|
this.pendingReadHints = pendingReadHints;
|
|
85
85
|
this.settledReadHints = settledReadHints;
|
|
86
86
|
}
|
|
87
87
|
trimToSizes(numPendingReads, numSettledReads) {
|
|
88
|
-
return new ReadRequestResetHints(this.
|
|
88
|
+
return new ReadRequestResetHints(this.readRequestStatuses, this.pendingReadHints.slice(0, numPendingReads), this.settledReadHints.slice(0, numSettledReads));
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Deserializes from a buffer or reader.
|
|
@@ -93,22 +93,22 @@ export class SettledReadHint {
|
|
|
93
93
|
* @returns The deserialized instance.
|
|
94
94
|
*/ static fromBuffer(buffer, readRequestLen, numPendingReads, numSettledReads, treeHeight, leafPreimageFromBuffer) {
|
|
95
95
|
const reader = BufferReader.asReader(buffer);
|
|
96
|
-
return new ReadRequestResetHints(reader.readArray(readRequestLen,
|
|
96
|
+
return new ReadRequestResetHints(reader.readArray(readRequestLen, ReadRequestStatus), reader.readArray(numPendingReads, PendingReadHint), reader.readArray(numSettledReads, {
|
|
97
97
|
fromBuffer: (r)=>SettledReadHint.fromBuffer(r, treeHeight, leafPreimageFromBuffer)
|
|
98
98
|
}));
|
|
99
99
|
}
|
|
100
100
|
toBuffer() {
|
|
101
|
-
return serializeToBuffer(this.
|
|
101
|
+
return serializeToBuffer(this.readRequestStatuses, this.pendingReadHints, this.settledReadHints);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
export class
|
|
105
|
-
|
|
104
|
+
export class ReadRequestResetStates {
|
|
105
|
+
states;
|
|
106
106
|
pendingReadHints;
|
|
107
|
-
constructor(
|
|
108
|
-
this.
|
|
107
|
+
constructor(states, pendingReadHints){
|
|
108
|
+
this.states = states;
|
|
109
109
|
this.pendingReadHints = pendingReadHints;
|
|
110
110
|
}
|
|
111
111
|
static empty(numReads) {
|
|
112
|
-
return new
|
|
112
|
+
return new ReadRequestResetStates(makeTuple(numReads, ()=>0), []);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
3
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
4
|
+
import { IncludeByTimestamp } from '../../tx/include_by_timestamp.js';
|
|
5
|
+
/**
|
|
6
|
+
* Validation requests directed at the rollup, accumulated during the execution of the transaction.
|
|
7
|
+
*/
|
|
8
|
+
export declare class RollupValidationRequests {
|
|
9
|
+
/** The highest timestamp of a block in which this transaction can still be included. */
|
|
10
|
+
includeByTimestamp: IncludeByTimestamp;
|
|
11
|
+
constructor(
|
|
12
|
+
/** The highest timestamp of a block in which this transaction can still be included. */
|
|
13
|
+
includeByTimestamp: IncludeByTimestamp);
|
|
14
|
+
getSize(): number;
|
|
15
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
16
|
+
toString(): `0x${string}`;
|
|
17
|
+
static getFields(fields: FieldsOf<RollupValidationRequests>): readonly [IncludeByTimestamp];
|
|
18
|
+
static fromFields(fields: Fr[] | FieldReader): RollupValidationRequests;
|
|
19
|
+
toFields(): Fr[];
|
|
20
|
+
/**
|
|
21
|
+
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
22
|
+
* @param buffer - Buffer or reader to read from.
|
|
23
|
+
* @returns Deserialized object.
|
|
24
|
+
*/
|
|
25
|
+
static fromBuffer(buffer: Buffer | BufferReader): RollupValidationRequests;
|
|
26
|
+
/**
|
|
27
|
+
* Deserializes from a string, corresponding to a write in cpp.
|
|
28
|
+
* @param str - String to read from.
|
|
29
|
+
* @returns Deserialized object.
|
|
30
|
+
*/
|
|
31
|
+
static fromString(str: string): RollupValidationRequests;
|
|
32
|
+
static empty(): RollupValidationRequests;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=rollup_validation_requests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup_validation_requests.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/rollup_validation_requests.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE;;GAEG;AACH,qBAAa,wBAAwB;IAEjC,wFAAwF;IACjF,kBAAkB,EAAE,kBAAkB;;IAD7C,wFAAwF;IACjF,kBAAkB,EAAE,kBAAkB;IAG/C,OAAO;IAIP,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC;IAI3D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;IAUhB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,KAAK;CAGb"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ROLLUP_VALIDATION_REQUESTS_LENGTH } from '@aztec/constants';
|
|
2
|
+
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
3
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
4
|
+
import { IncludeByTimestamp } from '../../tx/include_by_timestamp.js';
|
|
5
|
+
/**
|
|
6
|
+
* Validation requests directed at the rollup, accumulated during the execution of the transaction.
|
|
7
|
+
*/ export class RollupValidationRequests {
|
|
8
|
+
includeByTimestamp;
|
|
9
|
+
constructor(/** The highest timestamp of a block in which this transaction can still be included. */ includeByTimestamp){
|
|
10
|
+
this.includeByTimestamp = includeByTimestamp;
|
|
11
|
+
}
|
|
12
|
+
getSize() {
|
|
13
|
+
return this.toBuffer().length;
|
|
14
|
+
}
|
|
15
|
+
toBuffer() {
|
|
16
|
+
return serializeToBuffer(this.includeByTimestamp);
|
|
17
|
+
}
|
|
18
|
+
toString() {
|
|
19
|
+
return bufferToHex(this.toBuffer());
|
|
20
|
+
}
|
|
21
|
+
static getFields(fields) {
|
|
22
|
+
return [
|
|
23
|
+
fields.includeByTimestamp
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
static fromFields(fields) {
|
|
27
|
+
const reader = FieldReader.asReader(fields);
|
|
28
|
+
return new RollupValidationRequests(IncludeByTimestamp.fromFields(reader));
|
|
29
|
+
}
|
|
30
|
+
toFields() {
|
|
31
|
+
const fields = serializeToFields(...RollupValidationRequests.getFields(this));
|
|
32
|
+
if (fields.length !== ROLLUP_VALIDATION_REQUESTS_LENGTH) {
|
|
33
|
+
throw new Error(`Invalid number of fields for RollupValidationRequests. Expected ${ROLLUP_VALIDATION_REQUESTS_LENGTH}, got ${fields.length}`);
|
|
34
|
+
}
|
|
35
|
+
return fields;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
39
|
+
* @param buffer - Buffer or reader to read from.
|
|
40
|
+
* @returns Deserialized object.
|
|
41
|
+
*/ static fromBuffer(buffer) {
|
|
42
|
+
const reader = BufferReader.asReader(buffer);
|
|
43
|
+
return new RollupValidationRequests(reader.readObject(IncludeByTimestamp));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Deserializes from a string, corresponding to a write in cpp.
|
|
47
|
+
* @param str - String to read from.
|
|
48
|
+
* @returns Deserialized object.
|
|
49
|
+
*/ static fromString(str) {
|
|
50
|
+
return RollupValidationRequests.fromBuffer(hexToBuffer(str));
|
|
51
|
+
}
|
|
52
|
+
static empty() {
|
|
53
|
+
return new RollupValidationRequests(IncludeByTimestamp.empty());
|
|
54
|
+
}
|
|
55
|
+
}
|
package/dest/kernel/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC;AACxD,cAAc,qDAAqD,CAAC;AACpE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0BAA0B,CAAC;AACzC,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,cAAc,kDAAkD,CAAC;AACjE,cAAc,sCAAsC,CAAC;AACrD,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC"}
|
package/dest/kernel/index.js
CHANGED