@aztec/end-to-end 5.0.0-nightly.20260708 → 5.0.0-nightly.20260710
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/README.md +32 -20
- package/dest/automine/delivery/interactive_handshake_responder.d.ts +48 -0
- package/dest/automine/delivery/interactive_handshake_responder.d.ts.map +1 -0
- package/dest/automine/delivery/interactive_handshake_responder.js +76 -0
- package/dest/automine/delivery/onchain_delivery_harness.d.ts +7 -5
- package/dest/automine/delivery/onchain_delivery_harness.d.ts.map +1 -1
- package/dest/automine/delivery/onchain_delivery_harness.js +22 -4
- package/dest/fixtures/e2e_prover_test.d.ts +1 -1
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +2 -1
- package/dest/fixtures/setup.d.ts +9 -1
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +13 -1
- package/dest/fixtures/standard_contracts_genesis.d.ts +16 -0
- package/dest/fixtures/standard_contracts_genesis.d.ts.map +1 -0
- package/dest/fixtures/standard_contracts_genesis.js +25 -0
- package/dest/p2p/p2p_network.d.ts +1 -1
- package/dest/p2p/p2p_network.d.ts.map +1 -1
- package/dest/p2p/p2p_network.js +2 -1
- package/dest/shared/cross_chain_test_harness.d.ts +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +15 -8
- package/dest/single-node/fees/fees_test.d.ts +5 -3
- package/dest/single-node/fees/fees_test.d.ts.map +1 -1
- package/dest/single-node/fees/fees_test.js +86 -13
- package/dest/single-node/l1-reorgs/setup.d.ts +1 -1
- package/dest/single-node/l1-reorgs/setup.js +1 -1
- package/dest/single-node/single_node_test_context.d.ts +32 -19
- package/dest/single-node/single_node_test_context.d.ts.map +1 -1
- package/dest/single-node/single_node_test_context.js +26 -14
- package/package.json +40 -40
- package/src/automine/delivery/interactive_handshake_responder.ts +125 -0
- package/src/automine/delivery/onchain_delivery_harness.ts +46 -10
- package/src/fixtures/e2e_prover_test.ts +2 -0
- package/src/fixtures/setup.ts +23 -0
- package/src/fixtures/standard_contracts_genesis.ts +28 -0
- package/src/multi-node/README.md +2 -1
- package/src/p2p/p2p_network.ts +2 -0
- package/src/shared/cross_chain_test_harness.ts +11 -13
- package/src/single-node/README.md +15 -9
- package/src/single-node/fees/fees_test.ts +84 -15
- package/src/single-node/l1-reorgs/setup.ts +3 -3
- package/src/single-node/single_node_test_context.ts +27 -14
package/README.md
CHANGED
|
@@ -14,15 +14,21 @@ Run a single test (spawns its own in-process anvil):
|
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
yarn test:e2e src/automine/token/access_control.parallel.test.ts
|
|
17
|
-
yarn test:e2e src/single-node/block-building/block_building.test.ts -t 'rejects double
|
|
17
|
+
yarn test:e2e src/single-node/block-building/block_building.test.ts -t 'rejects a private then private double-spend'
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
Turn up logging with `LOG_LEVEL` (`verbose` is the useful default; `debug:sequencer,archiver` scopes it):
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
LOG_LEVEL=verbose yarn test:e2e src/single-node/proving/
|
|
23
|
+
LOG_LEVEL=verbose yarn test:e2e src/single-node/proving/default_node.test.ts
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
+
Each run spawns anvil on port 8545, so two tests can only run side by side if each gets its own
|
|
27
|
+
`ANVIL_PORT` (p2p tests additionally bind fixed p2p ports and can never run concurrently — see
|
|
28
|
+
[`src/p2p/README.md`](src/p2p/README.md)). To shake flakiness out of a test,
|
|
29
|
+
`scripts/deflaker.sh yarn test:e2e <file>` reruns it up to 100 times and stops at the first failure
|
|
30
|
+
(output lands in `scripts/deflaker.log`).
|
|
31
|
+
|
|
26
32
|
Compose-based tests (those under `src/composed/`) need a running local network — see
|
|
27
33
|
[Compose / HA / web3signer tests](#compose--ha--web3signer-tests).
|
|
28
34
|
|
|
@@ -37,7 +43,7 @@ its environment, so a test file only describes the scenario, not the wiring.
|
|
|
37
43
|
| [`automine/`](src/automine/README.md) | One node, deterministic `AutomineSequencer` — one block per tx, no committee/prover/validator. Fast. | it exercises contract or protocol behavior that doesn't depend on real block-building or consensus (transfers, nested calls, note discovery, tx semantics). | yes |
|
|
38
44
|
| [`single-node/`](src/single-node/README.md) | One node, production sequencer (interval block production), optional prover. | it asserts on sequencer, proving, partial-proof, L1-reorg, recovery, fee, or cross-chain behavior on a single sequencer. | yes |
|
|
39
45
|
| [`multi-node/`](src/multi-node/README.md) | N validators on an in-memory mock-gossip bus. | it needs a committee: consensus, attestations, slashing, governance, or multi-validator block production. | yes |
|
|
40
|
-
| `p2p/` | Real libp2p transport between nodes. | the networking transport itself is under test (gossip, rediscovery, req/resp). |
|
|
46
|
+
| [`p2p/`](src/p2p/README.md) | Real libp2p transport between nodes. | the networking transport itself is under test (gossip, rediscovery, req/resp). | yes |
|
|
41
47
|
| [`infra/`](src/infra/README.md) | Targets a deployed/external network (local anvil or a public testnet). | its concern is deployment or network targeting, not a specific protocol behavior. | yes |
|
|
42
48
|
|
|
43
49
|
A handful of tests live **outside** this package, next to the code they test — see
|
|
@@ -78,7 +84,7 @@ Each category centralizes its environment in a base class. The hierarchy:
|
|
|
78
84
|
(both wrap `fixtures/setup.ts:setup()`), but fixes the automine topology and makes `AUTOMINE_E2E_OPTS`
|
|
79
85
|
the default. Exposes `markProvenAndWarp`, `registerContract`, `applyManualParentChild`.
|
|
80
86
|
- `p2p/p2p_network.ts` → **`P2PNetworkTest`**. Real libp2p; node creation goes through
|
|
81
|
-
`setup_p2p_test.ts`.
|
|
87
|
+
`fixtures/setup_p2p_test.ts`.
|
|
82
88
|
- `infra/` has no shared base — its tests target a network selected by `L1_CHAIN_ID` (local anvil in CI,
|
|
83
89
|
a public testnet with credentials).
|
|
84
90
|
|
|
@@ -91,8 +97,8 @@ Categories expose thin factories over their base's static `setup`, named by what
|
|
|
91
97
|
calls the factory instead of spreading option presets:
|
|
92
98
|
|
|
93
99
|
- `single-node/setup.ts`: `setupWithProver` (fake in-process prover — the single-node default) and
|
|
94
|
-
`setupBlockProducer` (no prover; raises `aztecProofSubmissionEpochs` to `
|
|
95
|
-
aren't pruned, and points the PXE at `syncChainTip: 'proposed'`).
|
|
100
|
+
`setupBlockProducer` (no prover; raises `aztecProofSubmissionEpochs` to `NO_REORG_SUBMISSION_EPOCHS`
|
|
101
|
+
(1024) so unproven blocks aren't pruned, and points the PXE at `syncChainTip: 'proposed'`).
|
|
96
102
|
- `automine` tests call `AutomineTestContext.setup({ numberOfAccounts })` directly.
|
|
97
103
|
|
|
98
104
|
### The harness pattern (domain setup on top of a category)
|
|
@@ -136,15 +142,20 @@ CI splits each `it` in a `.parallel.test.ts` file into its own docker job, runni
|
|
|
136
142
|
|
|
137
143
|
### CI test discovery — `bootstrap.sh`
|
|
138
144
|
|
|
139
|
-
`end-to-end/bootstrap.sh` enumerates tests in two arrays, and a test must
|
|
140
|
-
**won't run in CI**:
|
|
145
|
+
`end-to-end/bootstrap.sh` enumerates tests in two arrays, and a test must resolve through the relevant one
|
|
146
|
+
or it **won't run in CI**:
|
|
141
147
|
|
|
142
|
-
- `test_cmds`
|
|
143
|
-
|
|
148
|
+
- `test_cmds` — the standard run. Covers each category with a recursive glob (e.g.
|
|
149
|
+
`src/automine/!(simulation)/**/*.test.ts`, `src/multi-node/**/*.test.ts`), so a new file or sub-folder
|
|
150
|
+
inside an existing category is picked up automatically; only a new top-level category needs its own glob
|
|
151
|
+
line. Tests with bespoke handling sit outside the globs: the `single-node/prover/` lanes at the top of
|
|
152
|
+
the function (real proofs and custom resources under `CI_FULL`, `FAKE_PROOFS=1` otherwise) and
|
|
153
|
+
`avm_simulator` (below).
|
|
154
|
+
- `compat_test_cmds` — the forward/legacy-compat run (a subset). This one enumerates **single-level leaf
|
|
155
|
+
globs** (e.g. `src/automine/token/*.test.ts`), so a new sub-folder whose tests should run against legacy
|
|
156
|
+
contract artifacts needs its own line here.
|
|
144
157
|
|
|
145
|
-
|
|
146
|
-
globs are not recursive, so every sub-folder is listed explicitly. Folders that organize by behavior get
|
|
147
|
-
one line per leaf. Bespoke handling to be aware of:
|
|
158
|
+
Bespoke handling to be aware of:
|
|
148
159
|
|
|
149
160
|
- **`avm_simulator`** (`automine/simulation/avm_simulator.test.ts`) has a dedicated line in `test_cmds`
|
|
150
161
|
that sets `DUMP_AVM_INPUTS_TO_DIR` (feeds the downstream `avm_check_circuit` job) and is therefore
|
|
@@ -153,8 +164,8 @@ one line per leaf. Bespoke handling to be aware of:
|
|
|
153
164
|
- **`kernelless_simulation`** is excluded from `compat_test_cmds` only.
|
|
154
165
|
|
|
155
166
|
After editing the arrays, confirm every `*.test.ts` resolves through exactly one line (no duplicate, no
|
|
156
|
-
omission
|
|
157
|
-
with the test's `jest.setTimeout`.
|
|
167
|
+
omission — anything excluded via `!(...)` must be matched by its dedicated line). Per-test bash `TIMEOUT`
|
|
168
|
+
overrides live in the `case` block in `test_cmds` and must stay in sync with the test's `jest.setTimeout`.
|
|
158
169
|
|
|
159
170
|
### Flaky tests — `.test_patterns.yml`
|
|
160
171
|
|
|
@@ -190,11 +201,12 @@ These run in their own package's test lane (both packages already run anvil-back
|
|
|
190
201
|
|
|
191
202
|
### Support directories (not test categories)
|
|
192
203
|
|
|
193
|
-
- `fixtures/` — the shared `setup()`, option presets (`fixtures.ts`),
|
|
194
|
-
`
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
204
|
+
- `fixtures/` — the shared `setup()`, option presets (`fixtures.ts`), the named node-level waiters
|
|
205
|
+
(`wait_helpers.ts`), the span instrumentation (`timing.ts` — `testSpan`, zero-cost unless
|
|
206
|
+
`TEST_TIMING_FILE` is set), `l1_to_l2_messaging`, and common utils.
|
|
207
|
+
- `shared/` — shared test bodies, the `CrossChainTestHarness`, and `timing_env.mjs`, a **custom jest
|
|
208
|
+
`testEnvironment`** referenced from this package's `package.json`. `yarn prepare` / the package-json
|
|
209
|
+
check will try to revert it to the default — don't let it.
|
|
198
210
|
- `simulators/` — in-TS reference models (`TokenSimulator`, `LendingSimulator`) used to assert contract
|
|
199
211
|
behavior.
|
|
200
212
|
- `test-wallet/`, `bench/`, `spartan/`, `quality_of_service/`, `forward-compatibility/` — helpers,
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AztecAddress, type CompleteAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { type SchnorrSignature } from '@aztec/foundation/crypto/schnorr';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
5
|
+
import type { CustomRequest } from '@aztec/pxe/config';
|
|
6
|
+
import { type PublicKeys } from '@aztec/stdlib/keys';
|
|
7
|
+
/**
|
|
8
|
+
* The decoded payload of the registry's interactive-handshake signature request. Note it never carries the sender,
|
|
9
|
+
* so the recipient authorizes the handshake without learning who initiated it.
|
|
10
|
+
*/
|
|
11
|
+
export type InteractiveHandshakeRequest = {
|
|
12
|
+
/** The account whose authorization is being requested. */
|
|
13
|
+
recipient: AztecAddress;
|
|
14
|
+
chainId: Fr;
|
|
15
|
+
version: Fr;
|
|
16
|
+
/** The x-coordinate of the handshake's ephemeral public key (its y-coordinate is positive by construction). */
|
|
17
|
+
ephPkX: Fr;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The recipient's signed authorization for an interactive handshake. Mirrors the registry contract's
|
|
21
|
+
* `RecipientSignature` struct field for field.
|
|
22
|
+
*/
|
|
23
|
+
export type RecipientSignature = {
|
|
24
|
+
/** The recipient's master public keys, bound in-circuit to the recipient's address via `partialAddress`. */
|
|
25
|
+
publicKeys: PublicKeys;
|
|
26
|
+
partialAddress: Fr;
|
|
27
|
+
/** The x-coordinate of the recipient's master message-signing public key. */
|
|
28
|
+
mspkX: Fr;
|
|
29
|
+
/** Whether that key's y-coordinate is positive, so the circuit can reconstruct the point from `mspkX`. */
|
|
30
|
+
mspkYIsPositive: boolean;
|
|
31
|
+
/** The schnorr signature over the handshake message. */
|
|
32
|
+
signature: SchnorrSignature;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Parses and validates the registry's interactive-handshake signature request.
|
|
36
|
+
*
|
|
37
|
+
* @throws If the request kind is not {@link INTERACTIVE_HANDSHAKE_REQUEST_KIND}, the issuing contract is not the
|
|
38
|
+
* standard HandshakeRegistry, or the payload does not have the expected shape.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseInteractiveHandshakeRequest(request: CustomRequest): InteractiveHandshakeRequest;
|
|
41
|
+
/**
|
|
42
|
+
* Produces the recipient's signed authorization for an interactive handshake, signing with the master
|
|
43
|
+
* message-signing secret key.
|
|
44
|
+
*/
|
|
45
|
+
export declare function signInteractiveHandshake(request: InteractiveHandshakeRequest, completeAddress: CompleteAddress, masterMessageSigningSecretKey: GrumpkinScalar): Promise<RecipientSignature>;
|
|
46
|
+
/** Serializes a {@link RecipientSignature} to the field layout the registry's in-circuit deserialization expects. */
|
|
47
|
+
export declare function recipientSignatureToFields(recipientSignature: RecipientSignature): Fr[];
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmVfaGFuZHNoYWtlX3Jlc3BvbmRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dG9taW5lL2RlbGl2ZXJ5L2ludGVyYWN0aXZlX2hhbmRzaGFrZV9yZXNwb25kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRy9FLE9BQU8sRUFBVyxLQUFLLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEYsT0FBTyxFQUFNLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBZ0MsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sMkJBQTJCLEdBQUc7SUFDeEMsMERBQTBEO0lBQzFELFNBQVMsRUFBRSxZQUFZLENBQUM7SUFDeEIsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNaLE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDWiwrR0FBK0c7SUFDL0csTUFBTSxFQUFFLEVBQUUsQ0FBQztDQUNaLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFDL0IsNEdBQTRHO0lBQzVHLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUNuQiw2RUFBNkU7SUFDN0UsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNWLDBHQUEwRztJQUMxRyxlQUFlLEVBQUUsT0FBTyxDQUFDO0lBQ3pCLHdEQUF3RDtJQUN4RCxTQUFTLEVBQUUsZ0JBQWdCLENBQUM7Q0FDN0IsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxhQUFhLEdBQUcsMkJBQTJCLENBZXBHO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLHdCQUF3QixDQUM1QyxPQUFPLEVBQUUsMkJBQTJCLEVBQ3BDLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLDZCQUE2QixFQUFFLGNBQWMsR0FDNUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBbUI3QjtBQUVELHFIQUFxSDtBQUNySCx3QkFBZ0IsMEJBQTBCLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEdBQUcsRUFBRSxFQUFFLENBYXZGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive_handshake_responder.d.ts","sourceRoot":"","sources":["../../../src/automine/delivery/interactive_handshake_responder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG/E,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAM,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,OAAO,EAAE,KAAK,UAAU,EAAgC,MAAM,oBAAoB,CAAC;AAEnF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,0DAA0D;IAC1D,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;IACZ,+GAA+G;IAC/G,MAAM,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4GAA4G;IAC5G,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,EAAE,CAAC;IACnB,6EAA6E;IAC7E,KAAK,EAAE,EAAE,CAAC;IACV,0GAA0G;IAC1G,eAAe,EAAE,OAAO,CAAC;IACzB,wDAAwD;IACxD,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,GAAG,2BAA2B,CAepG;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,2BAA2B,EACpC,eAAe,EAAE,eAAe,EAChC,6BAA6B,EAAE,cAAc,GAC5C,OAAO,CAAC,kBAAkB,CAAC,CAmB7B;AAED,qHAAqH;AACrH,wBAAgB,0BAA0B,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,EAAE,EAAE,CAavF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
3
|
+
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
4
|
+
import { Schnorr } from '@aztec/foundation/crypto/schnorr';
|
|
5
|
+
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
6
|
+
import { INTERACTIVE_HANDSHAKE_REQUEST_KIND, STANDARD_HANDSHAKE_REGISTRY_ADDRESS } from '@aztec/standard-contracts/handshake-registry/constants';
|
|
7
|
+
import { derivePublicKeyFromSecretKey } from '@aztec/stdlib/keys';
|
|
8
|
+
/**
|
|
9
|
+
* Parses and validates the registry's interactive-handshake signature request.
|
|
10
|
+
*
|
|
11
|
+
* @throws If the request kind is not {@link INTERACTIVE_HANDSHAKE_REQUEST_KIND}, the issuing contract is not the
|
|
12
|
+
* standard HandshakeRegistry, or the payload does not have the expected shape.
|
|
13
|
+
*/ export function parseInteractiveHandshakeRequest(request) {
|
|
14
|
+
if (!request.kind.equals(INTERACTIVE_HANDSHAKE_REQUEST_KIND)) {
|
|
15
|
+
throw new Error(`Not an interactive-handshake signature request: unexpected kind ${request.kind}`);
|
|
16
|
+
}
|
|
17
|
+
if (!request.contractAddress.equals(STANDARD_HANDSHAKE_REGISTRY_ADDRESS)) {
|
|
18
|
+
throw new Error(`Interactive-handshake signature request issued by ${request.contractAddress}, expected the standard HandshakeRegistry at ${STANDARD_HANDSHAKE_REGISTRY_ADDRESS}`);
|
|
19
|
+
}
|
|
20
|
+
if (request.payload.length !== 4) {
|
|
21
|
+
throw new Error(`Interactive-handshake signature request payload has ${request.payload.length} fields, expected 4`);
|
|
22
|
+
}
|
|
23
|
+
const [recipient, chainId, version, ephPkX] = request.payload;
|
|
24
|
+
return {
|
|
25
|
+
recipient: new AztecAddress(recipient),
|
|
26
|
+
chainId,
|
|
27
|
+
version,
|
|
28
|
+
ephPkX
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Produces the recipient's signed authorization for an interactive handshake, signing with the master
|
|
33
|
+
* message-signing secret key.
|
|
34
|
+
*/ export async function signInteractiveHandshake(request, completeAddress, masterMessageSigningSecretKey) {
|
|
35
|
+
const mspk = await derivePublicKeyFromSecretKey(masterMessageSigningSecretKey);
|
|
36
|
+
const [mspkX, mspkYIsPositive] = mspk.toXAndSign();
|
|
37
|
+
const message = await computeInteractiveHandshakeSignatureMessage({
|
|
38
|
+
chainId: request.chainId,
|
|
39
|
+
version: request.version,
|
|
40
|
+
registry: STANDARD_HANDSHAKE_REGISTRY_ADDRESS,
|
|
41
|
+
ephPkX: request.ephPkX
|
|
42
|
+
});
|
|
43
|
+
const signature = await new Schnorr().constructSignature(message, masterMessageSigningSecretKey);
|
|
44
|
+
return {
|
|
45
|
+
publicKeys: completeAddress.publicKeys,
|
|
46
|
+
partialAddress: completeAddress.partialAddress,
|
|
47
|
+
mspkX,
|
|
48
|
+
mspkYIsPositive,
|
|
49
|
+
signature
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Serializes a {@link RecipientSignature} to the field layout the registry's in-circuit deserialization expects. */ export function recipientSignatureToFields(recipientSignature) {
|
|
53
|
+
const s = Fq.fromBuffer(recipientSignature.signature.s);
|
|
54
|
+
const e = Fq.fromBuffer(recipientSignature.signature.e);
|
|
55
|
+
return [
|
|
56
|
+
...recipientSignature.publicKeys.toFields(),
|
|
57
|
+
recipientSignature.partialAddress,
|
|
58
|
+
recipientSignature.mspkX,
|
|
59
|
+
new Fr(recipientSignature.mspkYIsPositive),
|
|
60
|
+
s.lo,
|
|
61
|
+
s.hi,
|
|
62
|
+
e.lo,
|
|
63
|
+
e.hi
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The message an interactive-handshake authorization signs: the handshake's ephemeral key and chain context under
|
|
68
|
+
* `DomainSeparator.INTERACTIVE_HANDSHAKE_SIGNATURE`, exactly as the registry recomputes it in-circuit.
|
|
69
|
+
*/ function computeInteractiveHandshakeSignatureMessage(args) {
|
|
70
|
+
return poseidon2HashWithSeparator([
|
|
71
|
+
args.chainId,
|
|
72
|
+
args.version,
|
|
73
|
+
args.registry,
|
|
74
|
+
args.ephPkX
|
|
75
|
+
], DomainSeparator.INTERACTIVE_HANDSHAKE_SIGNATURE);
|
|
76
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
1
|
+
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
2
|
+
import type { AztecAddress, CompleteAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
+
import type { ResolveCustomRequest, ResolveTaggingSecretStrategy } from '@aztec/pxe/config';
|
|
3
4
|
import { TestWallet } from '../../test-wallet/test_wallet.js';
|
|
4
|
-
export type
|
|
5
|
+
export type CustomRequestResponder = (recipient: TestWallet, recipientAccount: InitialAccountData, recipientCompleteAddress: CompleteAddress) => ResolveCustomRequest;
|
|
5
6
|
export type Mode = 'constrained' | 'unconstrained';
|
|
6
7
|
export type DeliveryMode = Mode | {
|
|
7
8
|
events: Mode;
|
|
@@ -10,8 +11,9 @@ export type DeliveryMode = Mode | {
|
|
|
10
11
|
export declare function buildMessageDeliveryTest(opts: {
|
|
11
12
|
strategy: string;
|
|
12
13
|
mode: DeliveryMode;
|
|
13
|
-
senderHook:
|
|
14
|
+
senderHook: ResolveTaggingSecretStrategy;
|
|
14
15
|
recipientRegistration?: (recipient: TestWallet, recipientAddress: AztecAddress, sender: AztecAddress) => Promise<void>;
|
|
16
|
+
customRequestResponder?: CustomRequestResponder;
|
|
15
17
|
additionalTests?: () => void;
|
|
16
18
|
}): void;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25jaGFpbl9kZWxpdmVyeV9oYXJuZXNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXV0b21pbmUvZGVsaXZlcnkvb25jaGFpbl9kZWxpdmVyeV9oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUEyQixNQUFNLHlCQUF5QixDQUFDO0FBRzNGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUsvRSxPQUFPLEtBQUssRUFBaUIsb0JBQW9CLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU8zRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJOUQsTUFBTSxNQUFNLHNCQUFzQixHQUFHLENBQ25DLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLGdCQUFnQixFQUFFLGtCQUFrQixFQUNwQyx3QkFBd0IsRUFBRSxlQUFlLEtBQ3RDLG9CQUFvQixDQUFDO0FBRTFCLE1BQU0sTUFBTSxJQUFJLEdBQUcsYUFBYSxHQUFHLGVBQWUsQ0FBQztBQUluRCxNQUFNLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRztJQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFBO0NBQUUsQ0FBQztBQVloRSx3QkFBZ0Isd0JBQXdCLENBQUMsSUFBSSxFQUFFO0lBRzdDLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsSUFBSSxFQUFFLFlBQVksQ0FBQztJQUVuQixVQUFVLEVBQUUsNEJBQTRCLENBQUM7SUFFekMscUJBQXFCLENBQUMsRUFBRSxDQUN0QixTQUFTLEVBQUUsVUFBVSxFQUNyQixnQkFBZ0IsRUFBRSxZQUFZLEVBQzlCLE1BQU0sRUFBRSxZQUFZLEtBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUduQixzQkFBc0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO0lBSWhELGVBQWUsQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDO0NBQzlCLFFBdUpBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onchain_delivery_harness.d.ts","sourceRoot":"","sources":["../../../src/automine/delivery/onchain_delivery_harness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onchain_delivery_harness.d.ts","sourceRoot":"","sources":["../../../src/automine/delivery/onchain_delivery_harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,yBAAyB,CAAC;AAG3F,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAK/E,OAAO,KAAK,EAAiB,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAO3G,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAI9D,MAAM,MAAM,sBAAsB,GAAG,CACnC,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,kBAAkB,EACpC,wBAAwB,EAAE,eAAe,KACtC,oBAAoB,CAAC;AAE1B,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG,eAAe,CAAC;AAInD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC;AAYhE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAG7C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IAEnB,UAAU,EAAE,4BAA4B,CAAC;IAEzC,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,YAAY,EAC9B,MAAM,EAAE,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IAGnB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAIhD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B,QAuJA"}
|
|
@@ -15,7 +15,7 @@ const formatMode = (mode)=>typeof mode === 'string' ? mode : `${mode.events}->${
|
|
|
15
15
|
// Cross-PXE is the meaningful setup: the recipient PXE holds no sender state, so a cell only "discovers" a message if
|
|
16
16
|
// the source truly reached it.
|
|
17
17
|
export function buildMessageDeliveryTest(opts) {
|
|
18
|
-
const { strategy, mode, senderHook, recipientRegistration, additionalTests } = opts;
|
|
18
|
+
const { strategy, mode, senderHook, recipientRegistration, customRequestResponder, additionalTests } = opts;
|
|
19
19
|
const description = `${strategy} x ${formatMode(mode)}`;
|
|
20
20
|
describe(description, ()=>{
|
|
21
21
|
jest.setTimeout(300_000);
|
|
@@ -47,22 +47,35 @@ export function buildMessageDeliveryTest(opts) {
|
|
|
47
47
|
} : mode;
|
|
48
48
|
const sendEvent = (value)=>eventMode === 'constrained' ? contractSender.methods.emit_event(recipient, value) : contractSender.methods.emit_event_unconstrained(recipient, value);
|
|
49
49
|
const sendNote = (value)=>noteMode === 'constrained' ? contractSender.methods.emit_note(recipient, value) : contractSender.methods.emit_note_unconstrained(recipient, value);
|
|
50
|
+
let additionallyFundedAccounts;
|
|
51
|
+
let recipientAccount;
|
|
52
|
+
let customRequestCount = 0;
|
|
50
53
|
beforeAll(async ()=>{
|
|
51
54
|
// The sender PXE holds the sender and carries this cell's tagging-secret-strategy hook. The recipient is funded
|
|
52
55
|
// at genesis here but created and deployed on the isolated recipient PXE below, so it carries no sender state
|
|
53
56
|
// from other cells.
|
|
54
|
-
let additionallyFundedAccounts;
|
|
55
57
|
({ aztecNode, additionallyFundedAccounts, wallet: walletSender, accounts: [sender], teardown: teardownSender } = await setup(1, {
|
|
56
58
|
...AUTOMINE_E2E_OPTS,
|
|
57
59
|
additionallyFundedAccounts: await generateSchnorrAccounts(1, 'schnorr'),
|
|
58
60
|
pxeCreationOptions: {
|
|
59
61
|
hooks: {
|
|
60
|
-
resolveTaggingSecretStrategy: senderHook
|
|
62
|
+
resolveTaggingSecretStrategy: senderHook,
|
|
63
|
+
resolveCustomRequest: async (request)=>{
|
|
64
|
+
if (!customRequestResponder) {
|
|
65
|
+
throw new Error('A custom request arrived but this test cell has no customRequestResponder configured');
|
|
66
|
+
}
|
|
67
|
+
if (!recipientAccount) {
|
|
68
|
+
throw new Error('A custom request arrived before the recipient wallet was created');
|
|
69
|
+
}
|
|
70
|
+
customRequestCount++;
|
|
71
|
+
const respond = customRequestResponder(walletRecipient, additionallyFundedAccounts[0], await recipientAccount.getCompleteAddress());
|
|
72
|
+
return respond(request);
|
|
73
|
+
}
|
|
61
74
|
}
|
|
62
75
|
}
|
|
63
76
|
}));
|
|
64
77
|
({ wallet: walletRecipient, teardown: teardownRecipient } = await setupPXEAndGetWallet(aztecNode, aztecNode, {}, undefined, 'pxe-recipient'));
|
|
65
|
-
|
|
78
|
+
recipientAccount = await walletRecipient.createSchnorrAccount(additionallyFundedAccounts[0].secret, additionallyFundedAccounts[0].salt, additionallyFundedAccounts[0].signingKey);
|
|
66
79
|
await (await recipientAccount.getDeployMethod()).send({
|
|
67
80
|
from: NO_FROM
|
|
68
81
|
});
|
|
@@ -118,6 +131,11 @@ export function buildMessageDeliveryTest(opts) {
|
|
|
118
131
|
it('the recipient PXE reads back the notes delivered by the sender PXE', ()=>{
|
|
119
132
|
expect(readNotes).toEqual(noteValues);
|
|
120
133
|
});
|
|
134
|
+
if (customRequestResponder) {
|
|
135
|
+
it('the custom request hook fires exactly once, on the send that bootstraps the tagging secret', ()=>{
|
|
136
|
+
expect(customRequestCount).toBe(1);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
121
139
|
additionalTests?.();
|
|
122
140
|
});
|
|
123
141
|
}
|
|
@@ -56,4 +56,4 @@ export declare class FullProverTest extends SingleNodeTestContext {
|
|
|
56
56
|
teardown(): Promise<void>;
|
|
57
57
|
private applyMint;
|
|
58
58
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZTJlX3Byb3Zlcl90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZTJlX3Byb3Zlcl90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUEyQixNQUFNLHlCQUF5QixDQUFDO0FBRTNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdEUsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUlsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU10RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLEtBQUssa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFXM0Q7Ozs7Ozs7Ozs7R0FVRztBQUVILHFCQUFhLGNBQWUsU0FBUSxxQkFBcUI7SUFDdkQsTUFBTSxDQUFDLFVBQVUsU0FBVTtJQUMzQixNQUFNLENBQUMsWUFBWSxTQUFTO0lBQzVCLE1BQU0sQ0FBQyxjQUFjLFNBQU87SUFDNUIsTUFBTSxFQUFHLFVBQVUsQ0FBQztJQUNwQixZQUFZLEVBQUcsVUFBVSxDQUFDO0lBQzFCLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBTTtJQUM5QixjQUFjLEVBQUcsa0JBQWtCLEVBQUUsQ0FBQztJQUN0QyxlQUFlLEVBQUcsYUFBYSxDQUFDO0lBQ2hDLHVCQUF1QixFQUFHLDJCQUEyQixDQUFDO0lBQ3RELFFBQVEsRUFBRyxjQUFjLENBQUM7SUFDMUIsU0FBUyxFQUFHLFNBQVMsQ0FBQztJQUN0QixjQUFjLEVBQUcsY0FBYyxDQUFDO0lBQ2hDLFVBQVUsRUFBRyxVQUFVLENBQUM7SUFDeEIsT0FBTyxDQUFDLGdCQUFnQixDQUFxQjtJQUM3QyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQXNCO0lBQzlDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFzQjtJQUNoRCw2RUFBNkU7SUFDN0UsSUFBSSxvQkFBb0IsSUFBSSw2QkFBNkIsR0FBRyxTQUFTLENBRXBFO0lBQ0QsV0FBVyxFQUFHLGFBQWEsQ0FBQztJQUM1QixPQUFPLENBQUMsZUFBZSxDQUFvQjtJQUMzQyxPQUFPLENBQUMsd0JBQXdCLENBQW9CO0lBQzdDLFdBQVcsRUFBRyxnQ0FBZ0MsQ0FBQztJQUMvQyxhQUFhLEVBQUcsVUFBVSxDQUFDO0lBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQVM7SUFDekIsT0FBTyxDQUFDLHNCQUFzQixDQUFTO0lBQ3ZDLE9BQU8sQ0FBQyxRQUFRLENBQWE7SUFDN0IsT0FBTyxDQUFDLFVBQVUsQ0FBVTtJQUU1QixZQUFZLFFBQVEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxVQUFPLEVBT3BHO1lBS2EsY0FBYztJQThCYixLQUFLLENBQUMsSUFBSSxHQUFFLGtCQUF1QixpQkE0SmpEO1lBRWEsWUFBWTtJQVNYLFFBQVEsa0JBZ0J0QjtZQUVhLFNBQVM7Q0FzQ3hCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAIlG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAC5G,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAIlG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAC5G,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAW3D;;;;;;;;;;GAUG;AAEH,qBAAa,cAAe,SAAQ,qBAAqB;IACvD,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,UAAU,CAAC;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,cAAc,EAAG,kBAAkB,EAAE,CAAC;IACtC,eAAe,EAAG,aAAa,CAAC;IAChC,uBAAuB,EAAG,2BAA2B,CAAC;IACtD,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,UAAU,EAAG,UAAU,CAAC;IACxB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,6EAA6E;IAC7E,IAAI,oBAAoB,IAAI,6BAA6B,GAAG,SAAS,CAEpE;IACD,WAAW,EAAG,aAAa,CAAC;IAC5B,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,wBAAwB,CAAoB;IAC7C,WAAW,EAAG,gCAAgC,CAAC;IAC/C,aAAa,EAAG,UAAU,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAU;IAE5B,YAAY,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,UAAO,EAOpG;YAKa,cAAc;IA8Bb,KAAK,CAAC,IAAI,GAAE,kBAAuB,iBA4JjD;YAEa,YAAY;IASX,QAAQ,kBAgBtB;YAEa,SAAS;CAsCxB"}
|
|
@@ -15,6 +15,7 @@ import { SingleNodeTestContext } from '../single-node/single_node_test_context.j
|
|
|
15
15
|
import { getACVMConfig } from './get_acvm_config.js';
|
|
16
16
|
import { getBBConfig } from './get_bb_config.js';
|
|
17
17
|
import { getPrivateKeyFromIndex, getSponsoredFPCAddress, setup, setupPXEAndGetWallet } from './setup.js';
|
|
18
|
+
import { getStandardContractGenesisNullifiers } from './standard_contracts_genesis.js';
|
|
18
19
|
/**
|
|
19
20
|
* Largely taken from the e2e_token_contract test file. We deploy 2 accounts and a token contract.
|
|
20
21
|
* However, we then setup a second PXE with a full prover instance.
|
|
@@ -174,7 +175,7 @@ import { getPrivateKeyFromIndex, getSponsoredFPCAddress, setup, setupPXEAndGetWa
|
|
|
174
175
|
await this.mintFeeJuice(proverNodeSenderAddress);
|
|
175
176
|
this.logger.verbose('Starting prover node');
|
|
176
177
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
177
|
-
const { genesis } = await getGenesisValues(this.context.additionallyFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress), undefined, undefined, this.context.genesis.genesisTimestamp);
|
|
178
|
+
const { genesis } = await getGenesisValues(this.context.additionallyFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress), undefined, undefined, this.context.genesis.genesisTimestamp, await getStandardContractGenesisNullifiers());
|
|
178
179
|
const proverNodeConfig = {
|
|
179
180
|
...config,
|
|
180
181
|
enableProverNode: true,
|
package/dest/fixtures/setup.d.ts
CHANGED
|
@@ -124,6 +124,14 @@ export type SetupOptions<TDeployExtraL1ContractsReturnType = unknown> = {
|
|
|
124
124
|
zkPassportArgs?: ZKPassportArgs;
|
|
125
125
|
/** Whether to fund the sponsored FPC in genesis (defaults to false). */
|
|
126
126
|
fundSponsoredFPC?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Compute extra addresses to fund at genesis from the accounts setup just generated (passed as the
|
|
129
|
+
* argument). Runs after the default accounts are created and before genesis values are computed, so a
|
|
130
|
+
* test can genesis-fund a contract whose address derives from a default account (e.g. an FPC whose
|
|
131
|
+
* admin is the first account) instead of bridging fee juice to it during setup. Each returned address
|
|
132
|
+
* is funded with the same fee juice as an initial account and included in the L1 portal `fundingNeeded`.
|
|
133
|
+
*/
|
|
134
|
+
computeExtraGenesisFundedAddresses?: (defaultAccounts: InitialAccountData[]) => Promise<AztecAddress[]>;
|
|
127
135
|
/** L1 contracts deployment arguments. */
|
|
128
136
|
l1ContractsArgs?: Partial<DeployAztecL1ContractsArgs>;
|
|
129
137
|
/** Wallet minimum fee padding multiplier */
|
|
@@ -266,4 +274,4 @@ export declare function ensureHandshakeRegistryPublished(wallet: Wallet, from: A
|
|
|
266
274
|
*/
|
|
267
275
|
export declare function teardown(context: EndToEndContext | undefined): Promise<void>;
|
|
268
276
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBMkIsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsZ0JBQWdCLEVBQTRDLE1BQU0sbUJBQW1CLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT2xELE9BQU8sRUFDTCxLQUFLLDBCQUEwQixFQUMvQixLQUFLLGdDQUFnQyxFQUNyQyxLQUFLLFFBQVEsRUFDYixLQUFLLGNBQWMsRUFFcEIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUEwQixVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFP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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAA4C,MAAM,mBAAmB,CAAC;AACrH,OAAO,EAAE,YAAY,EAAc,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,QAAQ,EACb,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAA0B,UAAU,EAAe,MAAM,sBAAsB,CAAC;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAe,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAkC,MAAM,yBAAyB,CAAC;AAE/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAgB,MAAM,mBAAmB,CAAC;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,OAAO,EAAE,KAAK,2BAA2B,EAA8C,MAAM,wBAAwB,CAAC;AACtH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAG3B,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAAE,KAAK,KAAK,EAAW,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup.ts"],"names":[],"mappings":"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"}
|
package/dest/fixtures/setup.js
CHANGED
|
@@ -45,6 +45,7 @@ import { MNEMONIC, TEST_MAX_PENDING_TX_POOL_COUNT, TEST_PEER_CHECK_INTERVAL_MS }
|
|
|
45
45
|
import { getACVMConfig } from './get_acvm_config.js';
|
|
46
46
|
import { getBBConfig } from './get_bb_config.js';
|
|
47
47
|
import { isMetricsLoggingRequested, setupMetricsLogger } from './logging.js';
|
|
48
|
+
import { getStandardContractGenesisNullifiers } from './standard_contracts_genesis.js';
|
|
48
49
|
import { testSpan } from './timing.js';
|
|
49
50
|
import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
|
|
50
51
|
export { startAnvil };
|
|
@@ -255,9 +256,20 @@ async function setupInner(numberOfAccounts, opts, pxeOpts, chain) {
|
|
|
255
256
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
256
257
|
addressesToFund.push(sponsoredFPCAddress);
|
|
257
258
|
}
|
|
259
|
+
// Fund any extra addresses whose value depends on the just-generated accounts (e.g. an FPC admin'd
|
|
260
|
+
// by a default account), so a test can genesis-fund them instead of bridging fee juice during setup.
|
|
261
|
+
if (opts.computeExtraGenesisFundedAddresses) {
|
|
262
|
+
addressesToFund.push(...await opts.computeExtraGenesisFundedAddresses(defaultAccounts));
|
|
263
|
+
}
|
|
258
264
|
logger.trace('Generated test accounts to fund at genesis');
|
|
265
|
+
// Preload the standard contracts (AuthRegistry, PublicChecks, HandshakeRegistry) so their `ensure*Published` setup
|
|
266
|
+
// helpers short-circuit their publish txs. The archiver flag seeds the bytecode/instance into every spawned node's
|
|
267
|
+
// contract store; the genesis nullifiers make the AVM's deployment-nullifier check pass when they are called. Both
|
|
268
|
+
// must go together (flag alone would recreate the publish-collision bug), so the flag lives here beside the seeding.
|
|
269
|
+
config.testPreloadStandardContracts = true;
|
|
270
|
+
const standardContractNullifiers = await getStandardContractGenesisNullifiers();
|
|
259
271
|
const genesisTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
260
|
-
const { genesisArchiveRoot, genesis, fundingNeeded } = await getGenesisValues(addressesToFund, opts.initialAccountFeeJuice, opts.genesisPublicData, genesisTimestamp);
|
|
272
|
+
const { genesisArchiveRoot, genesis, fundingNeeded } = await getGenesisValues(addressesToFund, opts.initialAccountFeeJuice, opts.genesisPublicData, genesisTimestamp, standardContractNullifiers);
|
|
261
273
|
logger.trace('Computed genesis values');
|
|
262
274
|
const wasAutomining = await ethCheatCodes.isAutoMining();
|
|
263
275
|
const enableAutomine = opts.automineL1Setup && !wasAutomining && isAnvilTestChain(chain.id);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
/**
|
|
3
|
+
* Computes the genesis nullifiers that pre-publish the standard contracts (AuthRegistry, PublicChecks,
|
|
4
|
+
* HandshakeRegistry) in e2e environments, mirroring the nullifiers their on-chain publish txs would emit. Per contract:
|
|
5
|
+
* - `siloNullifier(ContractClassRegistry, classId)` — the class-registration nullifier that `ContractClassRegistry.publish` pushes.
|
|
6
|
+
* - `siloNullifier(ContractInstanceRegistry, instanceAddress)` — the instance-deployment nullifier that
|
|
7
|
+
* `ContractInstanceRegistry.publish_for_public_execution` pushes, using the contract's real derived address (standard
|
|
8
|
+
* contracts are deployed at artifact-derived addresses, not magic protocol addresses).
|
|
9
|
+
*
|
|
10
|
+
* Seed these into the genesis nullifier tree (as the 5th `getGenesisValues` arg) alongside the archiver's
|
|
11
|
+
* `testPreloadStandardContracts` preload: the store preload makes the `ensure*Published` guards short-circuit, and these
|
|
12
|
+
* nullifiers make the AVM's deployment-nullifier check pass when the contracts are called. Every e2e node genesis that
|
|
13
|
+
* feeds an L1 `genesisArchiveRoot` must seed the same set, or the world-state root diverges from the deployed rollup.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getStandardContractGenesisNullifiers(): Promise<Fr[]>;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmRfY29udHJhY3RzX2dlbmVzaXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zdGFuZGFyZF9jb250cmFjdHNfZ2VuZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUt6RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBc0Isb0NBQW9DLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBUzFFIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard_contracts_genesis.d.ts","sourceRoot":"","sources":["../../src/fixtures/standard_contracts_genesis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAKzD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oCAAoC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAS1E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
2
|
+
import { getPublishableStandardContracts } from '@aztec/standard-contracts';
|
|
3
|
+
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
4
|
+
/**
|
|
5
|
+
* Computes the genesis nullifiers that pre-publish the standard contracts (AuthRegistry, PublicChecks,
|
|
6
|
+
* HandshakeRegistry) in e2e environments, mirroring the nullifiers their on-chain publish txs would emit. Per contract:
|
|
7
|
+
* - `siloNullifier(ContractClassRegistry, classId)` — the class-registration nullifier that `ContractClassRegistry.publish` pushes.
|
|
8
|
+
* - `siloNullifier(ContractInstanceRegistry, instanceAddress)` — the instance-deployment nullifier that
|
|
9
|
+
* `ContractInstanceRegistry.publish_for_public_execution` pushes, using the contract's real derived address (standard
|
|
10
|
+
* contracts are deployed at artifact-derived addresses, not magic protocol addresses).
|
|
11
|
+
*
|
|
12
|
+
* Seed these into the genesis nullifier tree (as the 5th `getGenesisValues` arg) alongside the archiver's
|
|
13
|
+
* `testPreloadStandardContracts` preload: the store preload makes the `ensure*Published` guards short-circuit, and these
|
|
14
|
+
* nullifiers make the AVM's deployment-nullifier check pass when the contracts are called. Every e2e node genesis that
|
|
15
|
+
* feeds an L1 `genesisArchiveRoot` must seed the same set, or the world-state root diverges from the deployed rollup.
|
|
16
|
+
*/ export async function getStandardContractGenesisNullifiers() {
|
|
17
|
+
const classRegistry = ProtocolContractAddress.ContractClassRegistry;
|
|
18
|
+
const instanceRegistry = ProtocolContractAddress.ContractInstanceRegistry;
|
|
19
|
+
const nullifiers = [];
|
|
20
|
+
for (const { contractClass, address } of (await getPublishableStandardContracts())){
|
|
21
|
+
nullifiers.push(await siloNullifier(classRegistry, contractClass.id));
|
|
22
|
+
nullifiers.push(await siloNullifier(instanceRegistry, address.toField()));
|
|
23
|
+
}
|
|
24
|
+
return nullifiers;
|
|
25
|
+
}
|
|
@@ -322,4 +322,4 @@ export declare class P2PNetworkTest {
|
|
|
322
322
|
slashingProposer: SlashingProposerContract | undefined;
|
|
323
323
|
}>;
|
|
324
324
|
}
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX25ldHdvcmsuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvcDJwX25ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFDM0YsT0FBTyxLQUFLLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0UsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLDJCQUEyQixDQUFDO0FBR3JFLE9BQU8sRUFBZSxjQUFjLEVBQUUsS0FBSyx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBSTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBNEIsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbEYsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sRUFBYSxVQUFVLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVE3RCxPQUFPLEVBQUUsS0FBSyxxQkFBcUIsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFPM0UsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUNwQixLQUFLLFlBQVksRUFLbEIsTUFBTSxzQkFBc0IsQ0FBQztBQVE5QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FB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
|