You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docs-developers/docs/resources/migration_notes.md
+145Lines changed: 145 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,151 @@ Aztec is in active development. Each version may introduce breaking changes that
9
9
10
10
## TBD
11
11
12
+
<<<<<<< HEAD
13
+
=======
14
+
### [Aztec.nr] TXE `call_public_incognito` no longer takes a `from` parameter
15
+
16
+
`TestEnvironment::call_public_incognito` previously accepted a `from` address that was silently ignored (the function always uses a null `msg_sender`). The `from` parameter has been removed.
### [Aztec.js]`DeployMethod` address-affecting parameters move to construction time
35
+
36
+
Salt, deployer, and public keys are now passed when the `DeployMethod` is constructed, not on every call to `send` / `simulate` / `request` / `getInstance`. This locks the contract address once it is determined and prevents the silent salt-cache poisoning bug where the address could change between calls.
37
+
38
+
`contractAddressSalt`, `deployer`, and `universalDeploy` have been removed from `DeployOptions`, `RequestDeployOptions`, and `SimulateDeployOptions`. They now live on a new `DeployInstantiationOptions` argument passed at construction. `deployer` and `universalDeploy` are mutually exclusive; passing both throws. `Contract.deployWithPublicKeys` and the generated `MyContract.deployWithPublicKeys(...)` factories have been removed; pass `publicKeys` via the `instantiation` argument of `deploy(...)` instead. The buggy synchronous `address` and `partialAddress` getters have been removed and replaced with `getAddress()` and `getPartialAddress()` (both `async`).
39
+
40
+
The compact form keeps working: `MyContract.deploy(wallet, ...args).send({ from: alice })` deploys with `deployer = alice` and `salt = random()`, exactly as before. The deployer is locked the first time `send` / `simulate` / `profile` is called (from `options.from`, with `NO_FROM` or undefined → universal) and cannot change after that:
41
+
42
+
- Subsequent `send` / `simulate` / `profile` calls with a `from` that would imply a different deployer throw, instead of silently producing a different address.
43
+
- A lock to universal (`AztecAddress.ZERO`) is the only one compatible with any sender, since the universal address does not depend on `from`.
44
+
- A lock to a concrete address only accepts that exact `from` on subsequent calls.
`ContractDeployer.deploy(...)` now takes the instantiation argument as its first parameter (pass `{}` to use defaults and rely on lazy locking from `from`):
100
+
101
+
```diff
102
+
- const cd = new ContractDeployer(artifact, wallet);
103
+
- await cd.deploy(...ctorArgs).send({ from: alice, contractAddressSalt: salt });
104
+
+ const cd = new ContractDeployer(artifact, wallet);
105
+
+ await cd.deploy(ctorArgs, { salt }).send({ from: alice });
106
+
```
107
+
108
+
The synchronous `address` / `partialAddress` getters are gone:
### [aztec-up] Bundled binaries are no longer exposed under bare names on `PATH`
126
+
127
+
The Aztec installer previously placed bundled binaries directly into `$HOME/.aztec/current/bin` under bare names (`forge`, `nargo`, `bb`, `pxe`, ...). Anything with the same name in your own `PATH` was silently shadowed in unrelated projects.
128
+
129
+
Every bundled binary is now exposed only under an `aztec-` prefixed name in `$HOME/.aztec/current/bin`. Bare names are not on `PATH` at all and resolve to your own install (if any).
130
+
131
+
| Was on `PATH`| Now |
132
+
| ------------------ | ------------------------ |
133
+
|`forge`|`aztec-forge`|
134
+
|`cast`|`aztec-cast`|
135
+
|`anvil`|`aztec-anvil`|
136
+
|`chisel`|`aztec-chisel`|
137
+
|`nargo`|`aztec-nargo`|
138
+
|`noir-profiler`|`aztec-noir-profiler`|
139
+
|`bb`|`aztec-bb`|
140
+
|`bb-cli`|`aztec-bb-cli`|
141
+
|`pxe`|`aztec-pxe`|
142
+
|`txe`|`aztec-txe`|
143
+
|`validator-client`|`aztec-validator-client`|
144
+
|`blob-client`|`aztec-blob-client`|
145
+
146
+
`aztec`, `aztec-wallet`, and `aztec-up` keep their existing names.
147
+
148
+
If you relied on a bundled bare-name binary for general use:
149
+
150
+
- For Aztec contract work, prefer `aztec compile` and `aztec test`.
151
+
- For other Noir / Foundry commands, invoke the `aztec-*` symlink directly (e.g. `aztec-nargo fmt`, `aztec-forge build`).
152
+
- Or install Foundry / nargo separately via `foundryup` / `noirup`.
153
+
154
+
If you set `Noir: Nargo Path` in the VS Code Noir extension to `$HOME/.aztec/current/bin/nargo`, change it to `$HOME/.aztec/current/bin/aztec-nargo` (the symlink is a drop-in for `nargo`). See the [Noir VSCode Extension guide](../aztec-nr/installation.md) for details.
155
+
156
+
>>>>>>> 45f7a03ebe (feat: allow setting additional scopes in nr tests (#22968))
12
157
### [PXE]`proveTx` takes an options bag
13
158
14
159
`PXE.proveTx` used to accept `scopes` as a positional argument; it now takes an options bag consistent with `simulateTx` and `profileTx`, and adds an optional `senderForTags` field. Update direct callers:
0 commit comments