Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions avm-transpiler/src/transpile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -934,8 +934,8 @@ fn handle_getter_instruction(
VERSION,
BLOCKNUMBER,
TIMESTAMP,
BASEFEEPERL2GAS,
BASEFEEPERDAGAS,
MINFEEPERL2GAS,
MINFEEPERDAGAS,
ISSTATICCALL,
L2GASLEFT,
DAGASLEFT,
Expand All @@ -954,8 +954,8 @@ fn handle_getter_instruction(
let var_idx = match function {
"avmOpcodeAddress" => EnvironmentVariable::ADDRESS,
"avmOpcodeSender" => EnvironmentVariable::SENDER,
"avmOpcodeBaseFeePerL2Gas" => EnvironmentVariable::BASEFEEPERL2GAS,
"avmOpcodeBaseFeePerDaGas" => EnvironmentVariable::BASEFEEPERDAGAS,
"avmOpcodeMinFeePerL2Gas" => EnvironmentVariable::MINFEEPERL2GAS,
"avmOpcodeMinFeePerDaGas" => EnvironmentVariable::MINFEEPERDAGAS,
"avmOpcodeTransactionFee" => EnvironmentVariable::TRANSACTIONFEE,
"avmOpcodeChainId" => EnvironmentVariable::CHAINID,
"avmOpcodeVersion" => EnvironmentVariable::VERSION,
Expand Down
14 changes: 7 additions & 7 deletions barretenberg/cpp/pil/vm2/opcodes/get_env_var.pil
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ include "../public_inputs.pil";
* - VERSION
* - BLOCKNUMBER
* - TIMESTAMP
* - BASEFEEPERL2GAS
* - BASEFEEPERDAGAS
* - MINFEEPERL2GAS
* - MINFEEPERDAGAS
*
* Note that the lookup to public inputs pulls 2 values (col0 and col1)
* because { baseFeePerDaGas, baseFeePerL2Gas } is in 1 row spanning 2 columns.
* because { minFeePerDaGas, minFeePerL2Gas } is in 1 row spanning 2 columns.
* This means that while nearly all globalVariables will come from public inputs col0,
* baseFeePerL2Gas will come from col1. But for now, they share one lookup.
* minFeePerL2Gas will come from col1. But for now, they share one lookup.
*
* If memberEnum is out of range, or if some other error occurs in an earlier temporality group
* (e.g. address resolution or out-of-gas errors), all of this virtual gadget's selectors should
Expand All @@ -55,8 +55,8 @@ include "../public_inputs.pil";
* | 4 | version | 0 | 1 | 0 | VERSION_ROW_IDX | 0 | 0 | 0 | 0 | 0 | 0 | 0 | FF |
* | 5 | blockNumber | 0 | 1 | 0 | BLOCK_NUM_ROW_IDX | 0 | 0 | 0 | 0 | 0 | 0 | 0 | U32 |
* | 6 | timestamp | 0 | 1 | 0 | TIMESTAMP_ROW_IDX | 0 | 0 | 0 | 0 | 0 | 0 | 0 | U64 |
* | 7 | baseFeePerL2Gas | 0 | 0 | 1 | GAS_FEES_ROW_IDX | 0 | 0 | 0 | 1 | 0 | 0 | 0 | U128 |
* | 8 | baseFeePerDaGas | 0 | 1 | 0 | GAS_FEES_ROW_IDX | 0 | 0 | 0 | 0 | 0 | 0 | 0 | u128 |
* | 7 | minFeePerL2Gas | 0 | 0 | 1 | GAS_FEES_ROW_IDX | 0 | 0 | 0 | 1 | 0 | 0 | 0 | U128 |
* | 8 | minFeePerDaGas | 0 | 1 | 0 | GAS_FEES_ROW_IDX | 0 | 0 | 0 | 0 | 0 | 0 | 0 | u128 |
* | 9 | isStaticCall | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | U1 |
* | 10 | l2GasLeft | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | U32 |
* | 11 | daGasLeft | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | U32 |
Expand Down Expand Up @@ -113,7 +113,7 @@ namespace execution; // this is a virtual gadget that shares rows with the execu
} in public_inputs.sel {
precomputed.clk, public_inputs.cols[0]
};
// Read from PI col1 instead for baseFeePerL2Gas
// Read from PI col1 instead for minFeePerL2Gas
#[READ_FROM_PUBLIC_INPUTS_COL1]
sel_envvar_pi_lookup_col1 {
envvar_pi_row_idx, value_from_pi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@ struct GETENVVAR_Instruction {
AddressRef result_address;
// msgpack cannot pack enum classes, so we pack that as a uint8_t
// 0 -> ADDRESS, 1 -> SENDER, 2 -> TRANSACTIONFEE, 3 -> CHAINID, 4 -> VERSION, 5 -> BLOCKNUMBER, 6 -> TIMESTAMP,
// 7 -> BASEFEEPERDAGAS, 8 -> BASEFEEPERL2GAS, 9 -> ISSTATICCALL, 10 -> L2GASLEFT, 11 -> DAGASLEFT
// 7 -> MINFEEPERDAGAS, 8 -> MINFEEPERL2GAS, 9 -> ISSTATICCALL, 10 -> L2GASLEFT, 11 -> DAGASLEFT
uint8_t type;
MSGPACK_FIELDS(result_address, type);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ enum class EnvironmentVariable : uint8_t {
VERSION = 4,
BLOCKNUMBER = 5,
TIMESTAMP = 6,
BASEFEEPERL2GAS = 7,
BASEFEEPERDAGAS = 8,
MINFEEPERL2GAS = 7,
MINFEEPERDAGAS = 8,
ISSTATICCALL = 9,
L2GASLEFT = 10,
DAGASLEFT = 11,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ TEST(GetEnvVarConstrainingTest, ComplexTraceWithAllEnumsAndInteractions)
{ C::execution_mem_tag_reg_0_, static_cast<uint8_t>(ValueTag::U64) } },
// fee_per_l2_gas
{ { C::execution_sel, 1 },
{ C::execution_rop_1_, static_cast<uint8_t>(EnvironmentVariable::BASEFEEPERL2GAS) },
{ C::execution_rop_1_, static_cast<uint8_t>(EnvironmentVariable::MINFEEPERL2GAS) },
{ C::execution_sel_should_execute_opcode, 1 },
// Do it! No prior error
{ C::execution_sel_execute_get_env_var, 1 },
Expand All @@ -436,7 +436,7 @@ TEST(GetEnvVarConstrainingTest, ComplexTraceWithAllEnumsAndInteractions)
{ C::execution_mem_tag_reg_0_, static_cast<uint8_t>(ValueTag::U128) } },
// fee_per_da_gas
{ { C::execution_sel, 1 },
{ C::execution_rop_1_, static_cast<uint8_t>(EnvironmentVariable::BASEFEEPERDAGAS) },
{ C::execution_rop_1_, static_cast<uint8_t>(EnvironmentVariable::MINFEEPERDAGAS) },
{ C::execution_sel_should_execute_opcode, 1 },
// Do it! No prior error
{ C::execution_sel_execute_get_env_var, 1 },
Expand Down Expand Up @@ -637,7 +637,7 @@ TEST(GetEnvVarConstrainingTest, NegativeInteractionTestsPICol1)
auto test_public_inputs = PublicInputsBuilder().rand_global_variables().build();
TestTraceContainer trace({
{ { C::execution_sel, 1 },
{ C::execution_rop_1_, static_cast<uint8_t>(EnvironmentVariable::BASEFEEPERL2GAS) },
{ C::execution_rop_1_, static_cast<uint8_t>(EnvironmentVariable::MINFEEPERL2GAS) },
{ C::execution_sel_should_execute_opcode, 1 },
// from precomputed table
{ C::execution_sel_opcode_error, 0 }, // valid enum
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -474,10 +474,10 @@ void Execution::get_env_var(ContextInterface& context, MemoryAddress dst_addr, u
case EnvironmentVariable::TIMESTAMP:
result = MemoryValue::from<uint64_t>(context.get_globals().timestamp);
break;
case EnvironmentVariable::BASEFEEPERL2GAS:
case EnvironmentVariable::MINFEEPERL2GAS:
result = MemoryValue::from<uint128_t>(context.get_globals().gas_fees.fee_per_l2_gas);
break;
case EnvironmentVariable::BASEFEEPERDAGAS:
case EnvironmentVariable::MINFEEPERDAGAS:
result = MemoryValue::from<uint128_t>(context.get_globals().gas_fees.fee_per_da_gas);
break;
case EnvironmentVariable::ISSTATICCALL:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,12 @@ GetEnvVarSpec::Table GetEnvVarSpec::get_table(uint8_t envvar)
table.envvar_pi_row_idx = AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_TIMESTAMP_ROW_IDX;
table.out_tag = static_cast<uint8_t>(ValueTag::U64);
return table;
case EnvironmentVariable::BASEFEEPERL2GAS:
case EnvironmentVariable::MINFEEPERL2GAS:
table.envvar_pi_lookup_col1 = true; // Only case where we lookup from col1
table.envvar_pi_row_idx = AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX;
table.out_tag = static_cast<uint8_t>(ValueTag::U128);
return table;
case EnvironmentVariable::BASEFEEPERDAGAS:
case EnvironmentVariable::MINFEEPERDAGAS:
table.envvar_pi_lookup_col0 = true;
table.envvar_pi_row_idx = AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX;
table.out_tag = static_cast<uint8_t>(ValueTag::U128);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ TEST(GetEnvVarTracegenTest, FeePerL2GasEnvironmentVariable)
ExecutionTraceBuilder builder;

Operand envvar_enum =
Operand::from_tag(ValueTag::U8, static_cast<uint8_t>(EnvironmentVariable::BASEFEEPERL2GAS)); // enum value
Operand::from_tag(ValueTag::U8, static_cast<uint8_t>(EnvironmentVariable::MINFEEPERL2GAS)); // enum value

uint128_t fee_per_l2_gas = 42;
MemoryValue output = MemoryValue::from_tag(ValueTag::U128, fee_per_l2_gas);
Expand Down Expand Up @@ -237,7 +237,7 @@ TEST(GetEnvVarTracegenTest, FeePerDaGasEnvironmentVariable)
ExecutionTraceBuilder builder;

Operand envvar_enum =
Operand::from_tag(ValueTag::U8, static_cast<uint8_t>(EnvironmentVariable::BASEFEEPERDAGAS)); // enum value
Operand::from_tag(ValueTag::U8, static_cast<uint8_t>(EnvironmentVariable::MINFEEPERDAGAS)); // enum value

uint128_t fee_per_da_gas = 42;
MemoryValue output = MemoryValue::from_tag(ValueTag::U128, fee_per_da_gas);
Expand Down
2 changes: 1 addition & 1 deletion barretenberg/docs/versions.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[
"v4.0.0-nightly.20260107",
"v3.0.0-nightly.20260106",
"v0.87.0"
]
2 changes: 1 addition & 1 deletion boxes/boxes/vanilla/app/embedded-wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export class EmbeddedWallet extends BaseWallet {
): Promise<FeeOptions> {
const maxFeesPerGas =
gasSettings?.maxFeesPerGas ??
(await this.aztecNode.getCurrentBaseFees()).mul(1 + this.baseFeePadding);
(await this.aztecNode.getCurrentMinFees()).mul(1 + this.minFeePadding);
let walletFeePaymentMethod;
let accountFeePaymentMethodOptions;
// The transaction does not include a fee payment method, so we set a default
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags: [migration, updating, sandbox, local network]

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.

## 3.0.0-devnet.20251212
## TBD
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this intentional?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No not really. This was the update_changelog claude skill I believe.


### [Aztec node, archiver] Deprecated `getPrivateLogs`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,9 +208,48 @@ const isDevnet = process.env.NODE_URL?.includes("devnet");
const nodeUrl = process.env.NODE_URL || "http://localhost:8080";
```

## Devnet Information
## Devnet information

For complete Devnet technical details including RPC endpoints, contract addresses, and network configuration, see the [Networks page](/networks#devnet).
## RPC

https://next.devnet.aztec-labs.com

## Packages Versions / Github Tag

3.0.0-devnet.20251212

## Network Configuration

- **l1ChainId**: 11155111
- **rollupVersion**: 1647720761
<!-- cspell:disable-next-line -->
- **enr**: enr:-N24QOknmfktIHJYBqePfUaRLt1NQttmjTJdHE22yEerFtjONWD3_AAcf9vuj0YbMYbnZVKt1AW4a-DvepWbsUbmAu0HhWF6dGVjsTAwLTExMTU1MTExLTVkODRiNjRiLTE2NDc3MjA3NjEtMjM0OGIxMmUtMTk1ODg2ZWSCaWSCdjSCaXCEI-Y9PYlzZWNwMjU2azGhAnE-dCLZNTZIKiFJsu_mi7QYlgndx1lvKCnVu-75zEoig3RjcIKd0IN1ZHCCndCDdmVylTMuMC4wLWRldm5ldC4yMDI1MTIxMg

## Migration Notes

[Migration Notes](./docs/resources/migration_notes.md)

## L1 Contract Addresses

- **registryAddress**: `0x548ed380440c3eef42f222ceda1d6770b8999f8c`
- **rollupAddress**: `0x5d84b64b0b2f468df065d8cf01fff88a73238a13`
- **inboxAddress**: `0x8ea98d35d7712ca236ac7a2b2f47d9fb5c9154e8`
- **outboxAddress**: `0x6628f5648dcee4ee4c3262ed35a995039cadb669`
- **feeJuiceAddress**: `0x543a5f9ae03f0551ee236edf51987133fb3da3e2`
- **stakingAssetAddress**: `0x3dae418ad4dbd49e00215d24079a10ac3bc9ef4f`
- **feeJuicePortalAddress**: `0x5eee7cb811f638b70fe1a04d2318530c55d7bd87`
- **coinIssuerAddress**: `0xe4805eda5e880355ff4ded78dcf38ae6077b5dba`
- **rewardDistributorAddress**: `0x9417a0ee4fc66079a32aa7103b2a3d2dc2606dbd`
- **governanceProposerAddress**: `0x7c5f4cec86ef9a920a8fd03d5a01059e32fccb9a`
- **governanceAddress**: `0x26af139c092172e5a4ab9a9d7ddeed41c1d68bc7`
- **gseAddress**: `0xc5cb82799169bb08a20ede20e5b57f337c735ac4`

## Protocol Contract Addresses

- **classRegistry**: `0x0000000000000000000000000000000000000000000000000000000000000003`
- **feeJuice**: `0x0000000000000000000000000000000000000000000000000000000000000005`
- **instanceRegistry**: `0x0000000000000000000000000000000000000000000000000000000000000002`
- **multiCallEntrypoint**: `0x0000000000000000000000000000000000000000000000000000000000000004`

## Next Steps

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ This guide shows you how to connect your application to the Aztec local network
### Install the Aztec.js package

```bash
yarn add @aztec/aztec.js@4.0.0-nightly.20260107
yarn add @aztec/aztec.js@3.0.0-nightly.20260106
```

## Create a Node Client
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ This guide walks you through creating and deploying a new account contract in Az
## Install dependencies

```bash
yarn add @aztec/aztec.js@4.0.0-nightly.20260107 @aztec/accounts@4.0.0-nightly.20260107
yarn add @aztec/aztec.js@3.0.0-nightly.20260106 @aztec/accounts@3.0.0-nightly.20260106
```

## Create account keys
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ LOG_LEVEL="info;debug:simulator:client_execution_context;debug:simulator:client_

| Error | Solution |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Aztec dependency not found` | Add to Nargo.toml: `aztec = { git="https://github.com/AztecProtocol/aztec-packages/", tag="v4.0.0-nightly.20260107", directory="noir-projects/aztec-nr/aztec" }` |
| `Aztec dependency not found` | Add to Nargo.toml: `aztec = { git="https://github.com/AztecProtocol/aztec-packages/", tag="v3.0.0-nightly.20260106", directory="noir-projects/aztec-nr/aztec" }` |
| `Public state writes only supported in public functions` | Move state writes to public functions |
| `Unknown contract 0x0` | Call `wallet.registerContract(...)` to register contract |
| `No public key registered for address` | Call `wallet.registerSender(...)` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Import the trait:
```rust title="history_import" showLineNumbers
use dep::aztec::history::note_inclusion::ProveNoteInclusion;
```
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v4.0.0-nightly.20260107/noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L5-L7" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L5-L7</a></sub></sup>
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v3.0.0-nightly.20260106/noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L5-L7" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L5-L7</a></sub></sup>


Prove a note exists in the note hash tree:
Expand All @@ -42,7 +42,7 @@ Prove a note exists in the note hash tree:
let header = self.context.get_anchor_block_header();
header.prove_note_inclusion(proof_retrieved_note);
```
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v4.0.0-nightly.20260107/noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L55-L58" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L55-L58</a></sub></sup>
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v3.0.0-nightly.20260106/noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L55-L58" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/claim_contract/src/main.nr#L55-L58</a></sub></sup>


## Prove note validity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ let notes = nfts.at(from).pop_notes(NoteGetterOptions::new()
.set_limit(1));
assert(notes.len() == 1, "NFT not found when transferring");
```
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v4.0.0-nightly.20260107/noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L252-L257" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L252-L257</a></sub></sup>
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v3.0.0-nightly.20260106/noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L252-L257" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L252-L257</a></sub></sup>


## Filter notes by properties
Expand Down Expand Up @@ -121,7 +121,7 @@ pub fn filter_notes_min_sum(
selected
}
```
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v4.0.0-nightly.20260107/noir-projects/noir-contracts/contracts/test/pending_note_hashes_contract/src/filter.nr#L11-L29" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/test/pending_note_hashes_contract/src/filter.nr#L11-L29</a></sub></sup>
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v3.0.0-nightly.20260106/noir-projects/noir-contracts/contracts/test/pending_note_hashes_contract/src/filter.nr#L11-L29" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/test/pending_note_hashes_contract/src/filter.nr#L11-L29</a></sub></sup>


Then use it with `NoteGetterOptions`:
Expand Down Expand Up @@ -181,7 +181,7 @@ unconstrained fn get_private_nfts(
(owned_nft_ids, page_limit_reached)
}
```
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v4.0.0-nightly.20260107/noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L297-L317" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L297-L317</a></sub></sup>
> <sup><sub><a href="https://github.com/AztecProtocol/aztec-packages/blob/v3.0.0-nightly.20260106/noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L297-L317" target="_blank" rel="noopener noreferrer">Source code: noir-projects/noir-contracts/contracts/app/nft_contract/src/main.nr#L297-L317</a></sub></sup>


:::tip Viewer vs Getter
Expand Down
Loading
Loading