@aztec/pxe 0.40.0 → 0.41.0
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/database/kv_pxe_database.d.ts +1 -1
- package/dest/database/kv_pxe_database.js +2 -2
- package/dest/database/pxe_database.d.ts +5 -5
- package/dest/kernel_oracle/index.d.ts +7 -4
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_oracle/index.js +20 -4
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +17 -17
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.d.ts +3 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.d.ts.map +1 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.js +11 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.d.ts +4 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.d.ts.map +1 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.js +59 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.d.ts +4 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.d.ts.map +1 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_reset_outputs.js +12 -0
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.d.ts +1 -2
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.d.ts.map +1 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.js +7 -53
- package/dest/kernel_prover/private_inputs_builders/index.d.ts +3 -1
- package/dest/kernel_prover/private_inputs_builders/index.d.ts.map +1 -1
- package/dest/kernel_prover/private_inputs_builders/index.js +4 -2
- package/dest/kernel_prover/proving_data_oracle.d.ts +8 -6
- package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
- package/dest/kernel_prover/test/test_circuit_prover.d.ts +2 -1
- package/dest/kernel_prover/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/kernel_prover/test/test_circuit_prover.js +14 -3
- package/dest/note_processor/note_processor.d.ts +2 -1
- package/dest/note_processor/note_processor.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +3 -2
- package/dest/note_processor/produce_note_dao.js +4 -20
- package/dest/pxe_service/create_pxe_service.d.ts +1 -1
- package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/create_pxe_service.js +6 -5
- package/dest/pxe_service/pxe_service.d.ts +5 -4
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +10 -12
- package/dest/pxe_service/test/pxe_test_suite.js +2 -2
- package/dest/simulator/index.d.ts +2 -1
- package/dest/simulator/index.d.ts.map +1 -1
- package/dest/simulator/index.js +1 -1
- package/dest/simulator_oracle/index.d.ts +6 -5
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +7 -8
- package/dest/synchronizer/synchronizer.d.ts +2 -1
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +8 -8
- package/package.json +14 -14
- package/src/database/kv_pxe_database.ts +2 -2
- package/src/database/pxe_database.ts +5 -5
- package/src/kernel_oracle/index.ts +29 -4
- package/src/kernel_prover/kernel_prover.ts +35 -26
- package/src/kernel_prover/private_inputs_builders/build_private_kernel_init_hints.ts +28 -0
- package/src/kernel_prover/private_inputs_builders/build_private_kernel_reset_hints.ts +179 -0
- package/src/kernel_prover/private_inputs_builders/{build_private_kernel_tail_outputs.ts → build_private_kernel_reset_outputs.ts} +14 -3
- package/src/kernel_prover/private_inputs_builders/build_private_kernel_tail_hints.ts +17 -126
- package/src/kernel_prover/private_inputs_builders/index.ts +3 -1
- package/src/kernel_prover/proving_data_oracle.ts +9 -5
- package/src/kernel_prover/test/test_circuit_prover.ts +24 -3
- package/src/note_processor/note_processor.ts +3 -2
- package/src/note_processor/produce_note_dao.ts +3 -19
- package/src/pxe_service/create_pxe_service.ts +9 -6
- package/src/pxe_service/pxe_service.ts +14 -12
- package/src/pxe_service/test/pxe_test_suite.ts +1 -1
- package/src/simulator/index.ts +2 -1
- package/src/simulator_oracle/index.ts +9 -9
- package/src/synchronizer/synchronizer.ts +8 -14
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.d.ts +0 -4
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.d.ts.map +0 -1
- package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.js +0 -10
|
@@ -143,7 +143,7 @@ export const pxeTestSuite = (testName: string, pxeSetup: () => Promise<PXE>) =>
|
|
|
143
143
|
);
|
|
144
144
|
});
|
|
145
145
|
|
|
146
|
-
// Note: Not testing a successful run of `proveTx`, `sendTx`, `getTxReceipt` and `
|
|
146
|
+
// Note: Not testing a successful run of `proveTx`, `sendTx`, `getTxReceipt` and `simulateUnconstrained` here as it requires
|
|
147
147
|
// a larger setup and it's sufficiently tested in the e2e tests.
|
|
148
148
|
|
|
149
149
|
it('throws when getting public storage for non-existent contract', async () => {
|
package/src/simulator/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type AztecNode
|
|
1
|
+
import { type AztecNode } from '@aztec/circuit-types';
|
|
2
|
+
import { type KeyStore } from '@aztec/key-store';
|
|
2
3
|
import { AcirSimulator } from '@aztec/simulator';
|
|
3
4
|
|
|
4
5
|
import { ContractDataOracle } from '../contract_data_oracle/index.js';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type AztecNode,
|
|
3
|
-
type KeyStore,
|
|
4
3
|
type L2Block,
|
|
5
4
|
MerkleTreeId,
|
|
6
5
|
type NoteStatus,
|
|
@@ -14,12 +13,14 @@ import {
|
|
|
14
13
|
type Fr,
|
|
15
14
|
type FunctionSelector,
|
|
16
15
|
type Header,
|
|
16
|
+
type KeyValidationRequest,
|
|
17
17
|
type L1_TO_L2_MSG_TREE_HEIGHT,
|
|
18
18
|
} from '@aztec/circuits.js';
|
|
19
19
|
import { computeL1ToL2MessageNullifier } from '@aztec/circuits.js/hash';
|
|
20
20
|
import { type FunctionArtifact, getFunctionArtifact } from '@aztec/foundation/abi';
|
|
21
21
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
22
|
-
import { type
|
|
22
|
+
import { type KeyStore } from '@aztec/key-store';
|
|
23
|
+
import { type DBOracle, MessageLoadOracleInputs } from '@aztec/simulator';
|
|
23
24
|
import { type ContractInstance } from '@aztec/types/contracts';
|
|
24
25
|
|
|
25
26
|
import { type ContractDataOracle } from '../contract_data_oracle/index.js';
|
|
@@ -37,17 +38,16 @@ export class SimulatorOracle implements DBOracle {
|
|
|
37
38
|
private log = createDebugLogger('aztec:pxe:simulator_oracle'),
|
|
38
39
|
) {}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const appNullifierSecretKey = await this.keyStore.getAppNullifierSecretKey(accountAddress, contractAddress);
|
|
43
|
-
return { masterNullifierPublicKey, appNullifierSecretKey };
|
|
41
|
+
getKeyValidationRequest(pkMHash: Fr, contractAddress: AztecAddress): Promise<KeyValidationRequest> {
|
|
42
|
+
return this.keyStore.getKeyValidationRequest(pkMHash, contractAddress);
|
|
44
43
|
}
|
|
45
44
|
|
|
46
|
-
async getCompleteAddress(
|
|
47
|
-
const completeAddress = await this.db.getCompleteAddress(
|
|
45
|
+
async getCompleteAddress(account: AztecAddress): Promise<CompleteAddress> {
|
|
46
|
+
const completeAddress = await this.db.getCompleteAddress(account);
|
|
48
47
|
if (!completeAddress) {
|
|
49
48
|
throw new Error(
|
|
50
|
-
`No public key registered for address ${
|
|
49
|
+
`No public key registered for address ${account}.
|
|
50
|
+
Register it by calling pxe.registerRecipient(...) or pxe.registerAccount(...).\nSee docs for context: https://docs.aztec.network/developers/debugging/aztecnr-errors#simulation-error-No-public-key-registered-for-address-0x0-Register-it-by-calling-pxeregisterRecipient-or-pxeregisterAccount`,
|
|
51
51
|
);
|
|
52
52
|
}
|
|
53
53
|
return completeAddress;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type AztecNode,
|
|
3
|
-
type KeyStore,
|
|
4
|
-
type L2Block,
|
|
5
|
-
L2BlockL2Logs,
|
|
6
|
-
MerkleTreeId,
|
|
7
|
-
type TxHash,
|
|
8
|
-
} from '@aztec/circuit-types';
|
|
1
|
+
import { type AztecNode, type L2Block, L2BlockL2Logs, MerkleTreeId, type TxHash } from '@aztec/circuit-types';
|
|
9
2
|
import { type NoteProcessorCaughtUpStats } from '@aztec/circuit-types/stats';
|
|
10
3
|
import { type AztecAddress, type Fr, INITIAL_L2_BLOCK_NUM, type PublicKey } from '@aztec/circuits.js';
|
|
11
4
|
import { type SerialQueue } from '@aztec/foundation/fifo';
|
|
12
5
|
import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
|
|
13
6
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
7
|
+
import { type KeyStore } from '@aztec/key-store';
|
|
14
8
|
|
|
15
9
|
import { type DeferredNoteDao } from '../database/deferred_note_dao.js';
|
|
16
10
|
import { type PxeDatabase } from '../database/index.js';
|
|
@@ -105,18 +99,18 @@ export class Synchronizer {
|
|
|
105
99
|
return false;
|
|
106
100
|
}
|
|
107
101
|
|
|
108
|
-
const
|
|
102
|
+
const noteEncryptedLogs = blocks.flatMap(block => block.body.noteEncryptedLogs);
|
|
109
103
|
|
|
110
104
|
// Update latest tree roots from the most recent block
|
|
111
105
|
const latestBlock = blocks[blocks.length - 1];
|
|
112
106
|
await this.setHeaderFromBlock(latestBlock);
|
|
113
107
|
|
|
114
|
-
const logCount = L2BlockL2Logs.getTotalLogCount(
|
|
108
|
+
const logCount = L2BlockL2Logs.getTotalLogCount(noteEncryptedLogs);
|
|
115
109
|
this.log.debug(
|
|
116
110
|
`Forwarding ${logCount} encrypted logs and blocks to ${this.noteProcessors.length} note processors`,
|
|
117
111
|
);
|
|
118
112
|
for (const noteProcessor of this.noteProcessors) {
|
|
119
|
-
await noteProcessor.process(blocks,
|
|
113
|
+
await noteProcessor.process(blocks, noteEncryptedLogs);
|
|
120
114
|
}
|
|
121
115
|
return true;
|
|
122
116
|
} catch (err) {
|
|
@@ -182,9 +176,9 @@ export class Synchronizer {
|
|
|
182
176
|
throw new Error('No blocks in processor catch up mode');
|
|
183
177
|
}
|
|
184
178
|
|
|
185
|
-
const
|
|
179
|
+
const noteEncryptedLogs = blocks.flatMap(block => block.body.noteEncryptedLogs);
|
|
186
180
|
|
|
187
|
-
const logCount = L2BlockL2Logs.getTotalLogCount(
|
|
181
|
+
const logCount = L2BlockL2Logs.getTotalLogCount(noteEncryptedLogs);
|
|
188
182
|
this.log.debug(`Forwarding ${logCount} encrypted logs and blocks to note processors in catch up mode`);
|
|
189
183
|
|
|
190
184
|
for (const noteProcessor of catchUpGroup) {
|
|
@@ -202,7 +196,7 @@ export class Synchronizer {
|
|
|
202
196
|
blocks.length - index
|
|
203
197
|
} blocks`,
|
|
204
198
|
);
|
|
205
|
-
await noteProcessor.process(blocks.slice(index),
|
|
199
|
+
await noteProcessor.process(blocks.slice(index), noteEncryptedLogs.slice(index));
|
|
206
200
|
|
|
207
201
|
if (noteProcessor.status.syncedToBlock === toBlockNumber) {
|
|
208
202
|
// Note processor caught up, move it to `noteProcessors` from `noteProcessorsToCatchUp`.
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, PrivateKernelTailOutputs, ScopedNoteHash, ScopedNullifier } from '@aztec/circuits.js';
|
|
2
|
-
import { type Tuple } from '@aztec/foundation/serialize';
|
|
3
|
-
export declare function buildPrivateKernelTailOutputs(prevNoteHashes: Tuple<ScopedNoteHash, typeof MAX_NEW_NOTE_HASHES_PER_TX>, prevNullifiers: Tuple<ScopedNullifier, typeof MAX_NEW_NULLIFIERS_PER_TX>): PrivateKernelTailOutputs;
|
|
4
|
-
//# sourceMappingURL=build_private_kernel_tail_outputs.d.ts.map
|
package/dest/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build_private_kernel_tail_outputs.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/private_inputs_builders/build_private_kernel_tail_outputs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,0BAA0B,CAAC,EACxE,cAAc,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,yBAAyB,CAAC,4BAiBzE"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, PrivateKernelTailOutputs, ScopedNoteHash, ScopedNullifier, } from '@aztec/circuits.js';
|
|
2
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
|
-
export function buildPrivateKernelTailOutputs(prevNoteHashes, prevNullifiers) {
|
|
4
|
-
// Propagate note hashes that are not linked to a nullifier.
|
|
5
|
-
// Note that note hashes can't link to the first nullifier (counter == 0).
|
|
6
|
-
const noteHashes = padArrayEnd(prevNoteHashes.filter(n => !n.nullifierCounter), ScopedNoteHash.empty(), MAX_NEW_NOTE_HASHES_PER_TX);
|
|
7
|
-
const nullifiers = padArrayEnd(prevNullifiers.filter(n => n.nullifiedNoteHash.isZero()), ScopedNullifier.empty(), MAX_NEW_NULLIFIERS_PER_TX);
|
|
8
|
-
return new PrivateKernelTailOutputs(noteHashes, nullifiers);
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfcHJpdmF0ZV9rZXJuZWxfdGFpbF9vdXRwdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2tlcm5lbF9wcm92ZXIvcHJpdmF0ZV9pbnB1dHNfYnVpbGRlcnMvYnVpbGRfcHJpdmF0ZV9rZXJuZWxfdGFpbF9vdXRwdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLGNBQXdFLEVBQ3hFLGNBQXdFO0lBRXhFLDREQUE0RDtJQUM1RCwwRUFBMEU7SUFDMUUsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUM1QixjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFDL0MsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUN0QiwwQkFBMEIsQ0FDM0IsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FDNUIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUN4RCxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQ3ZCLHlCQUF5QixDQUMxQixDQUFDO0lBRUYsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM5RCxDQUFDIn0=
|