forked from visoftsolutions/noir_rs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(docs): starting a migration notes section (AztecProtocol#3853)
At the request of many families (I guess this portuguese expression isn't really translatable)... we're replicating the "migration notes" section in Noir docs to help devs keep track of breaking changes --------- Co-authored-by: José Pedro Sousa <[email protected]> Co-authored-by: Josh Crites <[email protected]> Co-authored-by: Rahul Kothari <[email protected]>
- Loading branch information
1 parent
d90afd0
commit 472fdda
Showing
3 changed files
with
117 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
--- | ||
title: Migration notes | ||
description: Read about migration notes from previous versions, which could solve problems while updating | ||
keywords: [sandbox, cli, aztec, notes, migration, updating, upgrading] | ||
--- | ||
|
||
Aztec is in full-speed development. Literally every version breaks compatibility with the previous ones. This page attempts to target errors and difficulties you might encounter when upgrading, and how to resolve them. | ||
|
||
## 0.17.0 | ||
|
||
### [js] New `@aztec/accounts` package | ||
|
||
Before: | ||
|
||
```js | ||
import { getSchnorrAccount } from "@aztec/aztec.js" // previously you would get the default accounts from the `aztec.js` package: | ||
``` | ||
|
||
Now, import them from the new package `@aztec/accounts` | ||
|
||
```js | ||
import { getSchnorrAccount } from "@aztec/accounts" | ||
``` | ||
|
||
### Typed Addresses | ||
Address fields in Aztec.nr now is of type `AztecAddress` as opposed to `Field` | ||
|
||
Before: | ||
```rust | ||
unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, serialized_note: [Field; VALUE_NOTE_LEN]) -> [Field; 4] { | ||
let note_header = NoteHeader::new(_address, nonce, storage_slot); | ||
... | ||
``` | ||
|
||
Now: | ||
```rust | ||
unconstrained fn compute_note_hash_and_nullifier( | ||
contract_address: AztecAddress, | ||
nonce: Field, | ||
storage_slot: Field, | ||
serialized_note: [Field; VALUE_NOTE_LEN] | ||
) -> pub [Field; 4] { | ||
let note_header = NoteHeader::new(contract_address, nonce, storage_slot); | ||
``` | ||
|
||
Similarly, there are changes when using aztec.js to call functions. | ||
|
||
To parse a `AztecAddress` to BigInt, use `.inner` | ||
Before: | ||
```js | ||
const tokenBigInt = await bridge.methods.token().view() | ||
``` | ||
|
||
Now: | ||
```js | ||
const tokenBigInt = (await bridge.methods.token().view()).inner | ||
``` | ||
|
||
### [Aztec.nr] Add `protocol_types` to Nargo.toml | ||
```toml | ||
aztec = { git="https://github.com/AztecProtocol/aztec-packages/", tag="#include_aztec_version", directory="yarn-project/aztec-nr/aztec" } | ||
protocol_types = { git="https://github.com/AztecProtocol/aztec-packages/", tag="#include_aztec_version", directory="yarn-project/noir-protocol-circuits/src/crates/types"} | ||
``` | ||
|
||
### [Aztec.nr] moving compute_address func to AztecAddress | ||
Before: | ||
```rust | ||
let calculated_address = compute_address(pub_key_x, pub_key_y, partial_address); | ||
``` | ||
|
||
Now: | ||
```rust | ||
let calculated_address = AztecAddress::compute(pub_key_x, pub_key_y, partial_address); | ||
``` | ||
|
||
### [Aztec.nr] moving `compute_selector` to FunctionSelector | ||
Before: | ||
```rust | ||
let selector = compute_selector("_initialize((Field))"); | ||
``` | ||
|
||
Now: | ||
```rust | ||
let selector = FunctionSelector::from_signature("_initialize((Field))"); | ||
``` | ||
|
||
### [js] Importing contracts in JS | ||
|
||
Contracts are now imported from a file with the type's name. | ||
|
||
Before: | ||
```js | ||
import { TokenContract } from "@aztec/noir-contracts/types"; | ||
``` | ||
|
||
Now: | ||
```js | ||
import { TokenContract } from "@aztec/noir-contracts/Token"; | ||
``` | ||
|
||
### [Aztec.nr] Aztec example contracts location change in Nargo.toml | ||
|
||
Aztec contracts are now moved outside of the `src` folder, so you need to update your imports. | ||
|
||
Before: | ||
```rust | ||
easy_private_token_contract = {git = "https://github.com/AztecProtocol/aztec-packages/", tag ="v0.16.9", directory = "yarn-project/noir-contracts/src/contracts/easy_private_token_contract"} | ||
``` | ||
|
||
Now, just remove the `src` folder,: | ||
|
||
```rust | ||
easy_private_token_contract = {git = "https://github.com/AztecProtocol/aztec-packages/", tag ="v0.17.0", directory = "yarn-project/noir-contracts/contracts/easy_private_token_contract"} | ||
``` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters