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
-20Lines changed: 0 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,15 +9,6 @@ Aztec is in active development. Each version may introduce breaking changes that
9
9
10
10
## TBD
11
11
12
-
<<<<<<< HEAD
13
-
### [Protocol]`PrivateCircuitPublicInputs` and `PrivateContextInputs` gain a `tx_request_salt` field
14
-
15
-
The init kernel now always injects the protocol nullifier (`H(tx_request)`) as the transaction's first nullifier and binds the entry-point proof to the tx request's salt. To support this, `PrivateCircuitPublicInputs` and `PrivateContextInputs` each carry a new `tx_request_salt` field (set by the framework), and the `first_nullifier_hint` input to the init kernel is removed. This is handled automatically by the framework and PXE; contracts using the standard entrypoint need no changes beyond recompiling against the new protocol circuits.
16
-
17
-
The salt serves two purposes. It keeps `H(tx_request)` (the protocol nullifier) unpredictable, preventing a dictionary attack that guesses the tx-request preimage to recompute the nullifier. It also lets the init kernel bind the proof to a specific tx request: the kernel asserts `tx_request_salt` equals `tx_request.salt`, so a third party holding the proof cannot rebind it to a different request (and thus a different protocol nullifier).
18
-
19
-
Because `tx_request_salt` is now part of the private function's public inputs, an app or account contract can read it. Together with the other public inputs (the call context, `args_hash`, `tx_context`, and the function selector), an entrypoint can reconstruct the full `tx_request` and verify a signature over `tx_request.hash()`, instead of over a separate payload. This lets an account authorize the complete, kernel-checked transaction request rather than just the calls it contains. Building on that, the protocol nullifier can be made to provide a transaction's replay protection and cancellation directly, reducing the number of nullifiers an account needs to emit. This is not done by the standard entrypoint today; see issues #461 (the protocol/design direction) and #462 (the Aztec.nr account-layer work) for the full picture.
20
-
=======
21
12
## 5.0.0
22
13
23
14
### [PXE] Local PXE database is reset on upgrade
@@ -115,7 +106,6 @@ This affects contracts that implement a custom message handler (registered via `
115
106
+ // ...resolved_tx.tx_hash...
116
107
}
117
108
```
118
-
>>>>>>> origin/public-next
119
109
120
110
### [PXE]`pxe.updateContract` removed and `pxe.registerContract` no longer takes an artifact
121
111
@@ -144,10 +134,7 @@ Registering classes and instances are now separate, unvalidated operations. `reg
144
134
145
135
-`pxe.getContractInstance(address)` and `wallet.getContractMetadata(address).instance` now return the contract's **address preimage**, which no longer includes `currentContractClassId`.
146
136
147
-
<<<<<<< HEAD
148
-
=======
149
137
150
-
>>>>>>> origin/public-next
151
138
### [Aztec.js]`AccountWithSecretKey` removed, read account keys from the `AccountManager` or PXE
152
139
153
140
`AccountWithSecretKey` was a thin wrapper that bundled an account's transaction signer with its master secret key, used mainly to print or export the secret. It has been removed, and `AccountManager.getAccount()` now returns the plain `Account` signer. The wrapper's extra methods are no longer available on that value:
@@ -172,8 +159,6 @@ The PXE never receives the seed nor the message-signing and fallback secret keys
172
159
173
160
**Impact**: Importing `AccountWithSecretKey`, or calling `getSecretKey()`/`getEncryptionSecret()` on the result of `getAccount()`, no longer compiles. The signer `getAccount()` returns is otherwise unchanged, and passing a single `Fr` or a `MasterSecretKeys` to `wallet.registerContract` keeps working.
174
161
175
-
<<<<<<< HEAD
176
-
=======
177
162
### [CLI]`aztec-wallet``--secret-key` is renamed to `--signing-key`
178
163
179
164
`aztec-wallet` accounts are now rooted on their signing key rather than on a privacy secret. The `--secret-key` option (on `create-account` and `simulate`) is renamed to `--signing-key`, and the `SECRET_KEY` environment variable to `SIGNING_KEY`. When creating an account, a random signing key is generated by default and the privacy secret is derived from it.
@@ -192,7 +177,6 @@ The PXE never receives the seed nor the message-signing and fallback secret keys
192
177
The transaction bot previously derived its account's signing key from the configured `senderPrivateKey`. That value is now used directly as the signing key, with the privacy secret derived from it.
193
178
194
179
**Impact**: The bot's account address changes for a given `senderPrivateKey`, so the account must be re-funded at its new address.
195
-
>>>>>>> origin/public-next
196
180
197
181
### [PXE] Unconstrained delivery defaults to a non-interactive handshake for external recipients
198
182
@@ -393,17 +377,13 @@ while i > 0 {
393
377
}
394
378
```
395
379
396
-
<<<<<<< HEAD
397
-
## 5.0.0-rc.1
398
-
=======
399
380
### [Protocol]`PrivateCircuitPublicInputs` and `PrivateContextInputs` gain a `tx_request_salt` field
400
381
401
382
The init kernel now always injects the protocol nullifier (`H(tx_request)`) as the transaction's first nullifier and binds the entry-point proof to the tx request's salt. To support this, `PrivateCircuitPublicInputs` and `PrivateContextInputs` each carry a new `tx_request_salt` field (set by the framework), and the `first_nullifier_hint` input to the init kernel is removed. This is handled automatically by the framework and PXE; contracts using the standard entrypoint need no changes beyond recompiling against the new protocol circuits.
402
383
403
384
The salt serves two purposes. It keeps `H(tx_request)` (the protocol nullifier) unpredictable, preventing a dictionary attack that guesses the tx-request preimage to recompute the nullifier. It also lets the init kernel bind the proof to a specific tx request: the kernel asserts `tx_request_salt` equals `tx_request.salt`, so a third party holding the proof cannot rebind it to a different request (and thus a different protocol nullifier).
404
385
405
386
Because `tx_request_salt` is now part of the private function's public inputs, an app or account contract can read it. Together with the other public inputs (the call context, `args_hash`, `tx_context`, and the function selector), an entrypoint can reconstruct the full `tx_request` and verify a signature over `tx_request.hash()`, instead of over a separate payload. This lets an account authorize the complete, kernel-checked transaction request rather than just the calls it contains. Building on that, the protocol nullifier can be made to provide a transaction's replay protection and cancellation directly, reducing the number of nullifiers an account needs to emit. This is not done by the standard entrypoint today; see issues #461 (the protocol/design direction) and #462 (the Aztec.nr account-layer work) for the full picture.
406
-
>>>>>>> origin/public-next
407
387
408
388
### [Aztec.js] Prefunded local network test accounts are now initializerless
0 commit comments