From bbcba3006dcd73a4be3c956683d76c0a43a9587c Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Wed, 8 May 2024 01:52:59 +0000 Subject: [PATCH] chore(contracts): migrate all contracts to use the AVM --- noir-projects/aztec-nr/authwit/src/account.nr | 6 ++-- .../app_subscription_contract/src/main.nr | 6 ++-- .../contracts/auth_contract/src/main.nr | 8 +++--- .../benchmarking_contract/src/main.nr | 4 +-- .../contracts/card_game_contract/src/main.nr | 8 +++--- .../contracts/child_contract/src/main.nr | 14 +++++----- .../contracts/claim_contract/src/main.nr | 2 +- .../crowdfunding_contract/src/main.nr | 4 +-- .../delegated_on_contract/src/main.nr | 2 +- .../contracts/delegator_contract/src/main.nr | 2 +- .../docs_example_contract/src/main.nr | 14 +++++----- .../easy_private_voting_contract/src/main.nr | 6 ++-- .../ecdsa_account_contract/src/main.nr | 4 +-- .../contracts/fpc_contract/src/main.nr | 8 +++--- .../contracts/gas_token_contract/src/main.nr | 10 +++---- .../import_test_contract/src/main.nr | 2 +- .../inclusion_proofs_contract/src/main.nr | 6 ++-- .../key_registry_contract/src/main.nr | 4 +-- .../contracts/lending_contract/src/main.nr | 20 ++++++------- .../contracts/parent_contract/src/main.nr | 8 +++--- .../contracts/price_feed_contract/src/main.nr | 4 +-- .../contracts/reader_contract/src/main.nr | 14 ++++++---- .../schnorr_account_contract/src/main.nr | 4 +-- .../src/main.nr | 4 +-- .../src/main.nr | 4 +-- .../stateful_test_contract/src/main.nr | 6 ++-- .../contracts/test_contract/src/main.nr | 20 ++++++------- .../token_blacklist_contract/src/main.nr | 20 ++++++------- .../token_bridge_contract/src/main.nr | 14 +++++----- .../contracts/token_contract/src/main.nr | 28 +++++++++---------- .../contracts/uniswap_contract/src/main.nr | 10 +++---- .../nargo_fmt/tests/expected/contract.nr | 4 +-- .../tooling/nargo_fmt/tests/input/contract.nr | 4 +-- 33 files changed, 138 insertions(+), 136 deletions(-) diff --git a/noir-projects/aztec-nr/authwit/src/account.nr b/noir-projects/aztec-nr/authwit/src/account.nr index eb926315a65..6ec16a2db48 100644 --- a/noir-projects/aztec-nr/authwit/src/account.nr +++ b/noir-projects/aztec-nr/authwit/src/account.nr @@ -1,4 +1,4 @@ -use dep::aztec::context::{PrivateContext, PublicContext, Context}; +use dep::aztec::context::{AvmContext, PrivateContext, PublicContext, Context}; use dep::aztec::state_vars::{Map, PublicMutable}; use dep::aztec::protocol_types::{address::AztecAddress, abis::function_selector::FunctionSelector, hash::pedersen_hash}; @@ -43,12 +43,12 @@ impl AccountActions { } pub fn public( - context: &mut PublicContext, + context: &mut AvmContext, approved_action_storage_slot: Field, is_valid_impl: fn(&mut PrivateContext, Field) -> bool ) -> Self { AccountActions::init( - Context::public(context), + Context::avm(context), approved_action_storage_slot, is_valid_impl ) diff --git a/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr b/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr index f049473ea57..8e06bf73f00 100644 --- a/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr @@ -58,7 +58,7 @@ contract AppSubscription { payload.execute_calls(&mut context, storage.target_address.read_private()); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor( target_address: AztecAddress, @@ -76,13 +76,13 @@ contract AppSubscription { storage.gas_token_limit_per_tx.initialize(gas_token_limit_per_tx); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn assert_not_expired(expiry_block_number: Field) { assert((context.block_number()) as u64 < expiry_block_number as u64); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn assert_block_number(expiry_block_number: Field) { assert( diff --git a/noir-projects/noir-contracts/contracts/auth_contract/src/main.nr b/noir-projects/noir-contracts/contracts/auth_contract/src/main.nr index 836e01bb41d..373dd17eaa2 100644 --- a/noir-projects/noir-contracts/contracts/auth_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/auth_contract/src/main.nr @@ -16,7 +16,7 @@ contract Auth { // docs:end:shared_mutable_storage } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(admin: AztecAddress) { assert(!admin.is_zero(), "invalid admin"); @@ -26,21 +26,21 @@ contract Auth { } // docs:start:shared_mutable_schedule - #[aztec(public)] + #[aztec(public-vm)] fn set_authorized(authorized: AztecAddress) { assert_eq(storage.admin.read(), context.msg_sender(), "caller is not admin"); storage.authorized.schedule_value_change(authorized); // docs:end:shared_mutable_schedule } - #[aztec(public)] + #[aztec(public-vm)] fn get_authorized() -> AztecAddress { // docs:start:shared_mutable_get_current_public storage.authorized.get_current_value_in_public() // docs:end:shared_mutable_get_current_public } - #[aztec(public)] + #[aztec(public-vm)] fn get_scheduled_authorized() -> AztecAddress { // docs:start:shared_mutable_get_scheduled_public let (scheduled_value, _block_of_change): (AztecAddress, u32) = storage.authorized.get_scheduled_value_in_public(); diff --git a/noir-projects/noir-contracts/contracts/benchmarking_contract/src/main.nr b/noir-projects/noir-contracts/contracts/benchmarking_contract/src/main.nr index a8b9f34d36b..495f89d45b4 100644 --- a/noir-projects/noir-contracts/contracts/benchmarking_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/benchmarking_contract/src/main.nr @@ -37,7 +37,7 @@ contract Benchmarking { } // Reads and writes to public storage and enqueues a call to another public function. - #[aztec(public)] + #[aztec(public-vm)] fn increment_balance(owner: AztecAddress, value: Field) { let current = storage.balances.at(owner).read(); storage.balances.at(owner).write(current + value); @@ -45,7 +45,7 @@ contract Benchmarking { } // Emits a public log. - #[aztec(public)] + #[aztec(public-vm)] fn broadcast(owner: AztecAddress) { context.emit_unencrypted_log(storage.balances.at(owner).read()); } diff --git a/noir-projects/noir-contracts/contracts/card_game_contract/src/main.nr b/noir-projects/noir-contracts/contracts/card_game_contract/src/main.nr index fb37c121fcb..0d2229ebc25 100644 --- a/noir-projects/noir-contracts/contracts/card_game_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/card_game_contract/src/main.nr @@ -43,7 +43,7 @@ contract CardGame { CardGame::at(context.this_address()).on_game_joined(game, player, strength as u32).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn on_game_joined(game: u32, player: AztecAddress, deck_strength: u32) { let game_storage = storage.games.at(game as Field); @@ -54,7 +54,7 @@ contract CardGame { game_storage.write(game_data); } - #[aztec(public)] + #[aztec(public-vm)] fn start_game(game: u32) { let game_storage = storage.games.at(game as Field); @@ -75,7 +75,7 @@ contract CardGame { // docs:end:call_public_function } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn on_card_played(game: u32, player: AztecAddress, card_as_field: Field) { let game_storage = storage.games.at(game as Field); @@ -100,7 +100,7 @@ contract CardGame { CardGame::at(context.this_address()).on_cards_claimed(game, player, pedersen_hash(cards_fields, 0)).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn on_cards_claimed(game: u32, player: AztecAddress, cards_hash: Field) { let game_storage = storage.games.at(game as Field); diff --git a/noir-projects/noir-contracts/contracts/child_contract/src/main.nr b/noir-projects/noir-contracts/contracts/child_contract/src/main.nr index 75cfe1a1673..0f3f7a6c3ff 100644 --- a/noir-projects/noir-contracts/contracts/child_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/child_contract/src/main.nr @@ -29,7 +29,7 @@ contract Child { } // Returns base_value + chain_id + version + block_number + timestamp - #[aztec(public)] + #[aztec(public-vm)] fn pub_get_value(base_value: Field) -> Field { let return_value = base_value + context.chain_id() @@ -41,7 +41,7 @@ contract Child { } // Sets `current_value` to `new_value` - #[aztec(public)] + #[aztec(public-vm)] fn pub_set_value(new_value: Field) -> Field { storage.current_value.write(new_value); context.emit_unencrypted_log(new_value); @@ -69,7 +69,7 @@ contract Child { } // Increments `current_value` by `new_value` - #[aztec(public)] + #[aztec(public-vm)] fn pub_inc_value(new_value: Field) -> Field { let old_value = storage.current_value.read(); storage.current_value.write(old_value + new_value); @@ -79,7 +79,7 @@ contract Child { } // Increments `current_value` by `new_value`. Can only be called from this contract. - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn pub_inc_value_internal(new_value: Field) -> Field { let old_value = storage.current_value.read(); @@ -89,21 +89,21 @@ contract Child { new_value } - #[aztec(public)] + #[aztec(public-vm)] fn set_value_twice_with_nested_first() { let _result = Child::at(context.this_address()).pub_set_value(10).call(&mut context); storage.current_value.write(20); context.emit_unencrypted_log(20); } - #[aztec(public)] + #[aztec(public-vm)] fn set_value_twice_with_nested_last() { storage.current_value.write(20); context.emit_unencrypted_log(20); let _result = Child::at(context.this_address()).pub_set_value(10).call(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] // TODO(6052): The logs emitted are currently in the wrong order as we don't update // counters for nested public calls fn set_value_with_two_nested_calls() { diff --git a/noir-projects/noir-contracts/contracts/claim_contract/src/main.nr b/noir-projects/noir-contracts/contracts/claim_contract/src/main.nr index 090ea87a0a0..f0770b67811 100644 --- a/noir-projects/noir-contracts/contracts/claim_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/claim_contract/src/main.nr @@ -15,7 +15,7 @@ contract Claim { reward_token: SharedImmutable, } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(target_contract: AztecAddress, reward_token: AztecAddress) { storage.target_contract.initialize(target_contract); diff --git a/noir-projects/noir-contracts/contracts/crowdfunding_contract/src/main.nr b/noir-projects/noir-contracts/contracts/crowdfunding_contract/src/main.nr index 38fb7984a38..560c861976f 100644 --- a/noir-projects/noir-contracts/contracts/crowdfunding_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/crowdfunding_contract/src/main.nr @@ -40,7 +40,7 @@ contract Crowdfunding { // docs:start:init // docs:start:init-header // docs:start:init-header-error - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] // this-will-error:init-header-error fn init(donation_token: AztecAddress, operator: AztecAddress, deadline: u64) { @@ -54,7 +54,7 @@ contract Crowdfunding { // docs:start:deadline // docs:start:deadline-header - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _check_deadline() { // docs:end:deadline-header diff --git a/noir-projects/noir-contracts/contracts/delegated_on_contract/src/main.nr b/noir-projects/noir-contracts/contracts/delegated_on_contract/src/main.nr index e6f093e569d..e49166637cb 100644 --- a/noir-projects/noir-contracts/contracts/delegated_on_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/delegated_on_contract/src/main.nr @@ -19,7 +19,7 @@ contract DelegatedOn { new_value } - #[aztec(public)] + #[aztec(public-vm)] fn public_set_value(new_value: Field) -> Field { storage.current_value.write(new_value); new_value diff --git a/noir-projects/noir-contracts/contracts/delegator_contract/src/main.nr b/noir-projects/noir-contracts/contracts/delegator_contract/src/main.nr index b7f7592350a..9bebdf8b0b8 100644 --- a/noir-projects/noir-contracts/contracts/delegator_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/delegator_contract/src/main.nr @@ -25,7 +25,7 @@ contract Delegator { DelegatedOn::at(target_contract).public_set_value(value).delegate_enqueue(&mut context) } - #[aztec(public)] + #[aztec(public-vm)] fn public_delegate_set_value(target_contract: AztecAddress, value: Field) -> Field { DelegatedOn::at(target_contract).public_set_value(value).delegate_call(&mut context) } diff --git a/noir-projects/noir-contracts/contracts/docs_example_contract/src/main.nr b/noir-projects/noir-contracts/contracts/docs_example_contract/src/main.nr index e36efb875bc..1f38f76254c 100644 --- a/noir-projects/noir-contracts/contracts/docs_example_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/docs_example_contract/src/main.nr @@ -92,7 +92,7 @@ contract DocsExample { } } - #[aztec(public)] + #[aztec(public-vm)] fn initialize_shared_immutable(points: u8) { let mut new_leader = Leader { account: context.msg_sender(), points }; storage.shared_immutable.initialize(new_leader); @@ -118,7 +118,7 @@ contract DocsExample { leader } - #[aztec(public)] + #[aztec(public-vm)] fn get_shared_immutable_constrained_public_indirect() -> pub Leader { // This is a public function that calls another public function // and returns the response. @@ -129,12 +129,12 @@ contract DocsExample { leader } - #[aztec(public)] + #[aztec(public-vm)] fn get_shared_immutable_constrained_public() -> pub Leader { storage.shared_immutable.read_public() } - #[aztec(public)] + #[aztec(public-vm)] fn get_shared_immutable_constrained_public_multiple() -> pub [Leader; 5] { let a = storage.shared_immutable.read_public(); [a, a, a, a, a] @@ -149,7 +149,7 @@ contract DocsExample { storage.shared_immutable.read_public() } - #[aztec(public)] + #[aztec(public-vm)] fn initialize_public_immutable(points: u8) { // docs:start:initialize_public_immutable let mut new_leader = Leader { account: context.msg_sender(), points }; @@ -239,12 +239,12 @@ contract DocsExample { 1 } - #[aztec(public)] + #[aztec(public-vm)] fn spend_public_authwit(inner_hash: Field) -> Field { 1 } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn update_leader(account: AztecAddress, points: u8) { let new_leader = Leader { account, points }; diff --git a/noir-projects/noir-contracts/contracts/easy_private_voting_contract/src/main.nr b/noir-projects/noir-contracts/contracts/easy_private_voting_contract/src/main.nr index 6924ca2b328..d70806e3c32 100644 --- a/noir-projects/noir-contracts/contracts/easy_private_voting_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/easy_private_voting_contract/src/main.nr @@ -16,7 +16,7 @@ contract EasyPrivateVoting { // docs:end:storage_struct // docs:start:constructor - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] // annotation to mark function as a constructor fn constructor(admin: AztecAddress) { storage.admin.write(admin); @@ -35,7 +35,7 @@ contract EasyPrivateVoting { // docs:end:cast_vote // docs:start:add_to_tally_public - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn add_to_tally_public(candidate: Field) { assert(storage.vote_ended.read() == false, "Vote has ended"); // assert that vote has not ended @@ -45,7 +45,7 @@ contract EasyPrivateVoting { // docs:end:add_to_tally_public // docs:start:end_vote - #[aztec(public)] + #[aztec(public-vm)] fn end_vote() { assert(storage.admin.read().eq(context.msg_sender()), "Only admin can end votes"); // assert that caller is admin storage.vote_ended.write(true); diff --git a/noir-projects/noir-contracts/contracts/ecdsa_account_contract/src/main.nr b/noir-projects/noir-contracts/contracts/ecdsa_account_contract/src/main.nr index 25f96128b9d..73c73e772b5 100644 --- a/noir-projects/noir-contracts/contracts/ecdsa_account_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/ecdsa_account_contract/src/main.nr @@ -46,7 +46,7 @@ contract EcdsaAccount { actions.spend_private_authwit(inner_hash) } - #[aztec(public)] + #[aztec(public-vm)] fn spend_public_authwit(inner_hash: Field) -> Field { let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl); actions.spend_public_authwit(inner_hash) @@ -58,7 +58,7 @@ contract EcdsaAccount { context.push_new_nullifier(outer_hash, 0); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn approve_public_authwit(outer_hash: Field) { let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl); diff --git a/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr b/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr index f7636711d0e..5874004884f 100644 --- a/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/fpc_contract/src/main.nr @@ -11,7 +11,7 @@ contract FPC { gas_token_address: SharedImmutable, } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(other_asset: AztecAddress, gas_token_address: AztecAddress) { storage.other_asset.initialize(other_asset); @@ -31,13 +31,13 @@ contract FPC { FPC::at(context.this_address()).pay_fee(context.msg_sender(), amount, asset).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn prepare_fee(from: AztecAddress, amount: Field, asset: AztecAddress, nonce: Field) { Token::at(asset).transfer_public(from, context.this_address(), amount, nonce).call(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn pay_fee(refund_address: AztecAddress, amount: Field, asset: AztecAddress) { let refund = GasToken::at(storage.gas_token_address.read_public()).pay_fee(amount).call(&mut context); @@ -45,7 +45,7 @@ contract FPC { Token::at(asset).transfer_public(context.this_address(), refund_address, refund, 0).call(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn pay_fee_with_shielded_rebate(amount: Field, asset: AztecAddress, secret_hash: Field) { let refund = GasToken::at(storage.gas_token_address.read_public()).pay_fee(amount).call(&mut context); diff --git a/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr b/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr index 7ba446c54ed..40932da39c7 100644 --- a/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr @@ -12,13 +12,13 @@ contract GasToken { portal_address: SharedImmutable, } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(portal_address: EthAddress) { storage.portal_address.initialize(portal_address); } - #[aztec(public)] + #[aztec(public-vm)] fn claim_public(to: AztecAddress, amount: Field, secret: Field, leaf_index: Field) { let content_hash = get_bridge_gas_msg_hash(to, amount); @@ -37,7 +37,7 @@ contract GasToken { // TODO(@just-mitch): remove this function before mainnet deployment // convenience function for testing // the true canonical gas token contract will not have this function - #[aztec(public)] + #[aztec(public-vm)] fn mint_public(to: AztecAddress, amount: Field) { let amount = U128::from_integer(amount); let new_balance = storage.balances.at(to).read().add(amount); @@ -45,13 +45,13 @@ contract GasToken { storage.balances.at(to).write(new_balance); } - #[aztec(public)] + #[aztec(public-vm)] fn check_balance(fee_limit: Field) { let fee_limit = U128::from_integer(fee_limit); assert(storage.balances.at(context.msg_sender()).read() >= fee_limit, "Balance too low"); } - #[aztec(public)] + #[aztec(public-vm)] fn pay_fee(fee_limit: Field) -> Field { let fee_limit_u128 = U128::from_integer(fee_limit); let fee = U128::from_integer(calculate_fee(context)); diff --git a/noir-projects/noir-contracts/contracts/import_test_contract/src/main.nr b/noir-projects/noir-contracts/contracts/import_test_contract/src/main.nr index 92636928014..b25bbd15017 100644 --- a/noir-projects/noir-contracts/contracts/import_test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/import_test_contract/src/main.nr @@ -51,7 +51,7 @@ contract ImportTest { // Calls the create_nullifier_public on the Test contract at the target address // Used for testing calling an open function from another open function // See yarn-project/end-to-end/src/e2e_nested_contract.test.ts - #[aztec(public)] + #[aztec(public-vm)] fn pub_call_open_fn(target: AztecAddress) { Test::at(target).create_nullifier_public(1, 2).call(&mut context); } diff --git a/noir-projects/noir-contracts/contracts/inclusion_proofs_contract/src/main.nr b/noir-projects/noir-contracts/contracts/inclusion_proofs_contract/src/main.nr index 3e1112ff07b..5c20b5406ab 100644 --- a/noir-projects/noir-contracts/contracts/inclusion_proofs_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/inclusion_proofs_contract/src/main.nr @@ -33,7 +33,7 @@ contract InclusionProofs { public_unused_value: PublicMutable, } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(public_value: Field) { storage.public_value.write(public_value); @@ -198,13 +198,13 @@ contract InclusionProofs { } } - #[aztec(public)] + #[aztec(public-vm)] fn push_nullifier_public(nullifier: Field) { context.push_new_nullifier(nullifier, 0); } // Proves nullifier existed at latest block - #[aztec(public)] + #[aztec(public-vm)] fn test_nullifier_inclusion_from_public(nullifier: Field) { assert(context.nullifier_exists(nullifier, context.this_address())); } diff --git a/noir-projects/noir-contracts/contracts/key_registry_contract/src/main.nr b/noir-projects/noir-contracts/contracts/key_registry_contract/src/main.nr index f8e62b1e4d7..569d13fb46a 100644 --- a/noir-projects/noir-contracts/contracts/key_registry_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/key_registry_contract/src/main.nr @@ -28,7 +28,7 @@ contract KeyRegistry { tpk_m_y_registry: Map>, } - #[aztec(public)] + #[aztec(public-vm)] fn rotate_nullifier_public_key( address: AztecAddress, new_nullifier_public_key: GrumpkinPoint, @@ -47,7 +47,7 @@ contract KeyRegistry { npk_m_y_registry.schedule_value_change(new_nullifier_public_key.y); } - #[aztec(public)] + #[aztec(public-vm)] fn register( address: AztecAddress, partial_address: PartialAddress, diff --git a/noir-projects/noir-contracts/contracts/lending_contract/src/main.nr b/noir-projects/noir-contracts/contracts/lending_contract/src/main.nr index 80d693340c6..192445ee8aa 100644 --- a/noir-projects/noir-contracts/contracts/lending_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/lending_contract/src/main.nr @@ -41,7 +41,7 @@ contract Lending { fn constructor( ) {} - #[aztec(public)] + #[aztec(public-vm)] fn init( oracle: AztecAddress, loan_to_value: Field, @@ -68,7 +68,7 @@ contract Lending { } // Create a position. - #[aztec(public)] + #[aztec(public-vm)] fn update_accumulator() -> Asset { let asset_loc = storage.assets.at(0); let mut asset: Asset = asset_loc.read(); @@ -111,7 +111,7 @@ contract Lending { ).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] fn deposit_public(amount: Field, nonce: Field, on_behalf_of: Field, collateral_asset: AztecAddress) { let _ = Token::at(collateral_asset).transfer_public(context.msg_sender(), context.this_address(), amount, nonce).call(&mut context); let _ = Lending::at(context.this_address())._deposit( @@ -121,7 +121,7 @@ contract Lending { ).call(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _deposit(owner: AztecAddress, amount: Field, collateral_asset: AztecAddress) { let _asset = Lending::at(context.this_address()).update_accumulator().call(&mut context); @@ -140,12 +140,12 @@ contract Lending { Lending::at(context.this_address())._withdraw(AztecAddress::from_field(on_behalf_of), to, amount).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] fn withdraw_public(to: AztecAddress, amount: Field) { let _ = Lending::at(context.this_address())._withdraw(context.msg_sender(), to, amount).call(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _withdraw(owner: AztecAddress, recipient: AztecAddress, amount: Field) { let asset = Lending::at(context.this_address()).update_accumulator().call(&mut context); @@ -188,12 +188,12 @@ contract Lending { let _ = Lending::at(context.this_address())._borrow(AztecAddress::from_field(on_behalf_of), to, amount).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] fn borrow_public(to: AztecAddress, amount: Field) { let _ = Lending::at(context.this_address())._borrow(context.msg_sender(), to, amount).call(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _borrow(owner: AztecAddress, to: AztecAddress, amount: Field) { let asset = Lending::at(context.this_address()).update_accumulator().call(&mut context); @@ -240,13 +240,13 @@ contract Lending { let _ = Lending::at(context.this_address())._repay(AztecAddress::from_field(on_behalf_of), amount, stable_coin).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] fn repay_public(amount: Field, nonce: Field, owner: AztecAddress, stable_coin: AztecAddress) { let _ = Token::at(stable_coin).burn_public(context.msg_sender(), amount, nonce).call(&mut context); let _ = Lending::at(context.this_address())._repay(owner, amount, stable_coin).call(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _repay(owner: AztecAddress, amount: Field, stable_coin: AztecAddress) { let asset = Lending::at(context.this_address()).update_accumulator().call(&mut context); diff --git a/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr b/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr index fb066de5ad6..f41553a7b5c 100644 --- a/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/parent_contract/src/main.nr @@ -11,7 +11,7 @@ contract Parent { } // Public function to directly call another public function to the target_contract using the selector and value provided - #[aztec(public)] + #[aztec(public-vm)] fn pub_entry_point( target_contract: AztecAddress, target_selector: FunctionSelector, @@ -26,7 +26,7 @@ contract Parent { } // Same as pub_entry_point, but calls the target contract twice, using the return value from the first invocation as the argument for the second. - #[aztec(public)] + #[aztec(public-vm)] fn pub_entry_point_twice( target_contract: AztecAddress, target_selector: FunctionSelector, @@ -183,7 +183,7 @@ contract Parent { } // Public function to directly call another public function to the target_contract using the selector and value provided - #[aztec(public)] + #[aztec(public-vm)] fn public_static_call( target_contract: AztecAddress, target_selector: FunctionSelector, @@ -198,7 +198,7 @@ contract Parent { } // Public function to set a static context and verify correct propagation for nested public calls - #[aztec(public)] + #[aztec(public-vm)] fn public_nested_static_call( target_contract: AztecAddress, target_selector: FunctionSelector, diff --git a/noir-projects/noir-contracts/contracts/price_feed_contract/src/main.nr b/noir-projects/noir-contracts/contracts/price_feed_contract/src/main.nr index c4afaacf753..313b1a6cb92 100644 --- a/noir-projects/noir-contracts/contracts/price_feed_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/price_feed_contract/src/main.nr @@ -11,13 +11,13 @@ contract PriceFeed { assets: Map>, } - #[aztec(public)] + #[aztec(public-vm)] fn set_price(asset_id: Field, price: Field) { let asset = storage.assets.at(asset_id); asset.write(Asset { price: U128::from_integer(price) }); } - #[aztec(public)] + #[aztec(public-vm)] fn get_price(asset_id: Field) -> Asset { storage.assets.at(asset_id).read() } diff --git a/noir-projects/noir-contracts/contracts/reader_contract/src/main.nr b/noir-projects/noir-contracts/contracts/reader_contract/src/main.nr index 0cfbb45b596..1b607f7708b 100644 --- a/noir-projects/noir-contracts/contracts/reader_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/reader_contract/src/main.nr @@ -1,15 +1,17 @@ contract Reader { use dep::aztec::prelude::{AztecAddress, FunctionSelector, Deserialize}; + use dep::aztec::context::gas::GasOpts; + use dep::compressed_string::FieldCompressedString; #[aztec(private)] fn constructor() {} - #[aztec(public)] + #[aztec(public-vm)] fn check_name_public(who: AztecAddress, what: str<31>) { let selector = FunctionSelector::from_signature("public_get_name()"); - let name: FieldCompressedString = context.call_public_function_no_args(who, selector).deserialize_into(); + let name: FieldCompressedString = context.call_public_function(who, selector, &[], GasOpts::default()).deserialize_into(); let _what = FieldCompressedString::from_string(what); assert(name.is_eq(_what)); } @@ -27,10 +29,10 @@ contract Reader { "Reader" } - #[aztec(public)] + #[aztec(public-vm)] fn check_symbol_public(who: AztecAddress, what: str<31>) { let selector = FunctionSelector::from_signature("public_get_symbol()"); - let symbol: FieldCompressedString = context.call_public_function_no_args(who, selector).deserialize_into(); + let symbol: FieldCompressedString = context.call_public_function(who, selector, &[], GasOpts::default()).deserialize_into(); let _what = FieldCompressedString::from_string(what); assert(symbol.is_eq(_what)); } @@ -48,10 +50,10 @@ contract Reader { "RDR" } - #[aztec(public)] + #[aztec(public-vm)] fn check_decimals_public(who: AztecAddress, what: u8) { let selector = FunctionSelector::from_signature("public_get_decimals()"); - let ret: u8 = context.call_public_function_no_args(who, selector).deserialize_into(); + let ret: u8 = context.call_public_function(who, selector, &[], GasOpts::default()).deserialize_into(); assert(ret == what); } diff --git a/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr b/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr index 1ec2152e7c3..24a71576863 100644 --- a/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr @@ -59,7 +59,7 @@ contract SchnorrAccount { actions.spend_private_authwit(inner_hash) } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(noinitcheck)] fn spend_public_authwit(inner_hash: Field) -> Field { let actions = AccountActions::public( @@ -76,7 +76,7 @@ contract SchnorrAccount { context.push_new_nullifier(outer_hash, 0); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] #[aztec(noinitcheck)] fn approve_public_authwit(outer_hash: Field) { diff --git a/noir-projects/noir-contracts/contracts/schnorr_hardcoded_account_contract/src/main.nr b/noir-projects/noir-contracts/contracts/schnorr_hardcoded_account_contract/src/main.nr index a660670a2a5..b48a14e79a3 100644 --- a/noir-projects/noir-contracts/contracts/schnorr_hardcoded_account_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/schnorr_hardcoded_account_contract/src/main.nr @@ -27,7 +27,7 @@ contract SchnorrHardcodedAccount { actions.spend_private_authwit(inner_hash) } - #[aztec(public)] + #[aztec(public-vm)] fn spend_public_authwit(inner_hash: Field) -> Field { let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl); actions.spend_public_authwit(inner_hash) @@ -39,7 +39,7 @@ contract SchnorrHardcodedAccount { context.push_new_nullifier(outer_hash, 0); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn approve_public_authwit(outer_hash: Field) { let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl); diff --git a/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/main.nr b/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/main.nr index bb6aad4b787..126238997ba 100644 --- a/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/main.nr @@ -23,7 +23,7 @@ contract SchnorrSingleKeyAccount { actions.spend_private_authwit(inner_hash) } - #[aztec(public)] + #[aztec(public-vm)] fn spend_public_authwit(inner_hash: Field) -> Field { let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl); actions.spend_public_authwit(inner_hash) @@ -35,7 +35,7 @@ contract SchnorrSingleKeyAccount { context.push_new_nullifier(outer_hash, 0); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn approve_public_authwit(outer_hash: Field) { let actions = AccountActions::public(&mut context, ACCOUNT_ACTIONS_STORAGE_SLOT, is_valid_impl); diff --git a/noir-projects/noir-contracts/contracts/stateful_test_contract/src/main.nr b/noir-projects/noir-contracts/contracts/stateful_test_contract/src/main.nr index db8efde4a25..74cab5f9ce6 100644 --- a/noir-projects/noir-contracts/contracts/stateful_test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/stateful_test_contract/src/main.nr @@ -27,7 +27,7 @@ contract StatefulTest { let _res = context.call_public_function(context.this_address(), selector, [42]); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn public_constructor(owner: AztecAddress, value: Field) { StatefulTest::at(context.this_address()).increment_public_value_no_init_check(owner, value).call(&mut context); @@ -74,13 +74,13 @@ contract StatefulTest { increment(recipient_notes, amount, recipient); } - #[aztec(public)] + #[aztec(public-vm)] fn increment_public_value(owner: AztecAddress, value: Field) { let loc = storage.public_values.at(owner); loc.write(loc.read() + value); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(noinitcheck)] fn increment_public_value_no_init_check(owner: AztecAddress, value: Field) { let loc = storage.public_values.at(owner); diff --git a/noir-projects/noir-contracts/contracts/test_contract/src/main.nr b/noir-projects/noir-contracts/contracts/test_contract/src/main.nr index 1d181a97486..5a6d49df52a 100644 --- a/noir-projects/noir-contracts/contracts/test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/test_contract/src/main.nr @@ -73,7 +73,7 @@ contract Test { } } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn dummy_public_call() {} @@ -191,7 +191,7 @@ contract Test { } // Purely exists for testing - #[aztec(public)] + #[aztec(public-vm)] fn create_l2_to_l1_message_public(amount: Field, secret_hash: Field, portal_address: EthAddress) { // Create a commitment to the amount let note = DummyNote::new(amount, secret_hash); @@ -200,7 +200,7 @@ contract Test { context.message_portal(portal_address, note.get_commitment()); } - #[aztec(public)] + #[aztec(public-vm)] fn create_l2_to_l1_message_arbitrary_recipient_public(content: Field, recipient: EthAddress) { // Public oracle call to emit new commitment. context.message_portal(recipient, content); @@ -213,7 +213,7 @@ contract Test { } // Purely exists for testing - #[aztec(public)] + #[aztec(public-vm)] fn create_nullifier_public(amount: Field, secret_hash: Field) { // Create a commitment to the amount let note = DummyNote::new(amount, secret_hash); @@ -258,14 +258,14 @@ contract Test { } // docs:start:is-time-equal - #[aztec(public)] + #[aztec(public-vm)] fn is_time_equal(time: u64) -> u64 { assert(context.timestamp() == time); time } // docs:end:is-time-equal - #[aztec(public)] + #[aztec(public-vm)] fn emit_unencrypted(value: Field) -> Field { // docs:start:emit_unencrypted context.emit_unencrypted_log(value); @@ -273,7 +273,7 @@ contract Test { 0 } - #[aztec(public)] + #[aztec(public-vm)] fn consume_mint_public_message( to: AztecAddress, amount: Field, @@ -302,7 +302,7 @@ contract Test { ); } - #[aztec(public)] + #[aztec(public-vm)] fn consume_message_from_arbitrary_sender_public( content: Field, secret: Field, @@ -350,7 +350,7 @@ contract Test { EncryptedLogHeader::new(context.this_address()).compute_ciphertext(secret, point) } - #[aztec(public)] + #[aztec(public-vm)] fn assert_public_global_vars( chain_id: Field, version: Field, @@ -377,7 +377,7 @@ contract Test { } // TODO(4840): add AVM opcodes for getting header (members) - //#[aztec(public)] + //#[aztec(public-vm)] //fn assert_header_public(header_hash: Field) { // assert(context.historical_header.hash() == header_hash, "Invalid header hash"); //} diff --git a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr index f2e54e26133..101642403c7 100644 --- a/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/token_blacklist_contract/src/main.nr @@ -32,19 +32,19 @@ contract TokenBlacklist { } // docs:start:constructor - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(admin: AztecAddress) { let admin_roles = UserFlags { is_admin: true, is_minter: false, is_blacklisted: false }; storage.roles.at(admin).schedule_value_change(admin_roles); } - #[aztec(public)] + #[aztec(public-vm)] fn get_roles(user: AztecAddress) -> UserFlags { storage.roles.at(user).get_current_value_in_public() } - #[aztec(public)] + #[aztec(public-vm)] fn update_roles(user: AztecAddress, roles: UserFlags) { let caller_roles = storage.roles.at(context.msg_sender()).get_current_value_in_public(); assert(caller_roles.is_admin, "caller is not admin"); @@ -52,7 +52,7 @@ contract TokenBlacklist { storage.roles.at(user).schedule_value_change(roles); } - #[aztec(public)] + #[aztec(public-vm)] fn mint_public(to: AztecAddress, amount: Field) { let to_roles = storage.roles.at(to).get_current_value_in_public(); assert(!to_roles.is_blacklisted, "Blacklisted: Recipient"); @@ -68,7 +68,7 @@ contract TokenBlacklist { storage.total_supply.write(supply); } - #[aztec(public)] + #[aztec(public-vm)] fn mint_private(amount: Field, secret_hash: Field) { let caller_roles = storage.roles.at(context.msg_sender()).get_current_value_in_public(); assert(caller_roles.is_minter, "caller is not minter"); @@ -81,7 +81,7 @@ contract TokenBlacklist { pending_shields.insert_from_public(&mut note); } - #[aztec(public)] + #[aztec(public-vm)] fn shield(from: AztecAddress, amount: Field, secret_hash: Field, nonce: Field) { let from_roles = storage.roles.at(from).get_current_value_in_public(); assert(!from_roles.is_blacklisted, "Blacklisted: Sender"); @@ -103,7 +103,7 @@ contract TokenBlacklist { pending_shields.insert_from_public(&mut note); } - #[aztec(public)] + #[aztec(public-vm)] fn transfer_public(from: AztecAddress, to: AztecAddress, amount: Field, nonce: Field) { let from_roles = storage.roles.at(from).get_current_value_in_public(); assert(!from_roles.is_blacklisted, "Blacklisted: Sender"); @@ -124,7 +124,7 @@ contract TokenBlacklist { storage.public_balances.at(to).write(to_balance); } - #[aztec(public)] + #[aztec(public-vm)] fn burn_public(from: AztecAddress, amount: Field, nonce: Field) { let from_roles = storage.roles.at(from).get_current_value_in_public(); assert(!from_roles.is_blacklisted, "Blacklisted: Sender"); @@ -224,14 +224,14 @@ contract TokenBlacklist { /// Internal /// - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _increase_public_balance(to: AztecAddress, amount: Field) { let new_balance = storage.public_balances.at(to).read().add(U128::from_integer(amount)); storage.public_balances.at(to).write(new_balance); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _reduce_total_supply(amount: Field) { // Only to be called from burn. diff --git a/noir-projects/noir-contracts/contracts/token_bridge_contract/src/main.nr b/noir-projects/noir-contracts/contracts/token_bridge_contract/src/main.nr index e503e3f691a..f90688900ad 100644 --- a/noir-projects/noir-contracts/contracts/token_bridge_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/token_bridge_contract/src/main.nr @@ -22,7 +22,7 @@ contract TokenBridge { } // Constructs the contract. - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(token: AztecAddress, portal_address: EthAddress) { storage.token.write(token); @@ -35,14 +35,14 @@ contract TokenBridge { storage.portal_address.read_private() } - #[aztec(public)] + #[aztec(public-vm)] fn get_portal_address_public() -> EthAddress { storage.portal_address.read_public() } // docs:start:claim_public // Consumes a L1->L2 message and calls the token contract to mint the appropriate amount publicly - #[aztec(public)] + #[aztec(public-vm)] fn claim_public(to: AztecAddress, amount: Field, secret: Field, message_leaf_index: Field) { let content_hash = get_mint_public_content_hash(to, amount); @@ -62,7 +62,7 @@ contract TokenBridge { // docs:start:exit_to_l1_public // Burns the appropriate amount of tokens and creates a L2 to L1 withdraw message publicly // Requires `msg.sender` to give approval to the bridge to burn tokens on their behalf using witness signatures - #[aztec(public)] + #[aztec(public-vm)] fn exit_to_l1_public( recipient: EthAddress, // ethereum address to withdraw to amount: Field, @@ -138,7 +138,7 @@ contract TokenBridge { // View function that is callable by other contracts. // Unconstrained can't be called by others since it isn't safe. // docs:start:get_token - #[aztec(public)] + #[aztec(public-vm)] fn get_token() -> AztecAddress { storage.token.read() } @@ -156,7 +156,7 @@ contract TokenBridge { // This is a public call as we need to read from public storage. // Also, note that user hashes their secret in private and only sends the hash in public // meaning only user can `redeem_shield` at a later time with their secret. - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _call_mint_on_token(amount: Field, secret_hash: Field) { Token::at(storage.token.read()).mint_private(amount, secret_hash).call(&mut context); @@ -164,7 +164,7 @@ contract TokenBridge { // docs:end:call_mint_on_token // docs:start:assert_token_is_same - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _assert_token_is_same(token: AztecAddress) { assert(storage.token.read().eq(token), "Token address is not the same as seen in storage"); diff --git a/noir-projects/noir-contracts/contracts/token_contract/src/main.nr b/noir-projects/noir-contracts/contracts/token_contract/src/main.nr index e488c5f4f43..8e3f5061248 100644 --- a/noir-projects/noir-contracts/contracts/token_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/token_contract/src/main.nr @@ -52,7 +52,7 @@ contract Token { // docs:end:storage_struct // docs:start:constructor - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(admin: AztecAddress, name: str<31>, symbol: str<31>, decimals: u8) { assert(!admin.is_zero(), "invalid admin"); @@ -67,7 +67,7 @@ contract Token { // docs:end:constructor // docs:start:set_admin - #[aztec(public)] + #[aztec(public-vm)] fn set_admin(new_admin: AztecAddress) { assert(storage.admin.read().eq(context.msg_sender()), "caller is not admin"); // docs:start:write_admin @@ -76,7 +76,7 @@ contract Token { } // docs:end:set_admin - #[aztec(public)] + #[aztec(public-vm)] fn public_get_name() -> pub FieldCompressedString { storage.name.read_public() } @@ -90,7 +90,7 @@ contract Token { storage.name.read_public().to_bytes() } - #[aztec(public)] + #[aztec(public-vm)] fn public_get_symbol() -> pub FieldCompressedString { storage.symbol.read_public() } @@ -104,7 +104,7 @@ contract Token { storage.symbol.read_public().to_bytes() } - #[aztec(public)] + #[aztec(public-vm)] fn public_get_decimals() -> pub u8 { // docs:start:read_decimals_public storage.decimals.read_public() @@ -123,7 +123,7 @@ contract Token { } // docs:start:set_minter - #[aztec(public)] + #[aztec(public-vm)] fn set_minter(minter: AztecAddress, approve: bool) { // docs:start:read_admin assert(storage.admin.read().eq(context.msg_sender()), "caller is not admin"); @@ -135,7 +135,7 @@ contract Token { // docs:end:set_minter // docs:start:mint_public - #[aztec(public)] + #[aztec(public-vm)] fn mint_public(to: AztecAddress, amount: Field) { // docs:start:read_minter assert(storage.minters.at(context.msg_sender()).read(), "caller is not minter"); @@ -150,7 +150,7 @@ contract Token { // docs:end:mint_public // docs:start:mint_private - #[aztec(public)] + #[aztec(public-vm)] fn mint_private(amount: Field, secret_hash: Field) { assert(storage.minters.at(context.msg_sender()).read(), "caller is not minter"); let pending_shields = storage.pending_shields; @@ -170,7 +170,7 @@ contract Token { Token::at(context.this_address()).assert_minter_and_mint(context.msg_sender(), amount).enqueue(&mut context); } - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn assert_minter_and_mint(minter: AztecAddress, amount: Field) { assert(storage.minters.at(minter).read(), "caller is not minter"); @@ -179,7 +179,7 @@ contract Token { } // docs:start:shield - #[aztec(public)] + #[aztec(public-vm)] fn shield(from: AztecAddress, amount: Field, secret_hash: Field, nonce: Field) { if (!from.eq(context.msg_sender())) { // The redeem is only spendable once, so we need to ensure that you cannot insert multiple shields from the same message. @@ -200,7 +200,7 @@ contract Token { // docs:end:shield // docs:start:transfer_public - #[aztec(public)] + #[aztec(public-vm)] fn transfer_public(from: AztecAddress, to: AztecAddress, amount: Field, nonce: Field) { if (!from.eq(context.msg_sender())) { assert_current_call_valid_authwit_public(&mut context, from); @@ -218,7 +218,7 @@ contract Token { // docs:end:transfer_public // docs:start:burn_public - #[aztec(public)] + #[aztec(public-vm)] fn burn_public(from: AztecAddress, amount: Field, nonce: Field) { // docs:start:assert_current_call_valid_authwit_public if (!from.eq(context.msg_sender())) { @@ -312,7 +312,7 @@ contract Token { /// Internal /// // docs:start:increase_public_balance - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _increase_public_balance(to: AztecAddress, amount: Field) { let new_balance = storage.public_balances.at(to).read().add(U128::from_integer(amount)); @@ -321,7 +321,7 @@ contract Token { // docs:end:increase_public_balance // docs:start:reduce_total_supply - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _reduce_total_supply(amount: Field) { // Only to be called from burn. diff --git a/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr b/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr index 9ab011d9e0e..b0599e968ce 100644 --- a/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/uniswap_contract/src/main.nr @@ -28,14 +28,14 @@ contract Uniswap { } // docs:end:uniswap_setup - #[aztec(public)] + #[aztec(public-vm)] #[aztec(initializer)] fn constructor(portal_address: EthAddress) { storage.portal_address.initialize(portal_address); } // docs:start:swap_public - #[aztec(public)] + #[aztec(public-vm)] fn swap_public( sender: AztecAddress, input_asset_bridge: AztecAddress, @@ -157,7 +157,7 @@ contract Uniswap { // Since the token bridge burns funds on behalf of this contract, this contract has to tell the token contract if the signature is valid // implementation is similar to how account contracts validate public approvals. // if valid, it returns the IS_VALID selector which is expected by token contract - #[aztec(public)] + #[aztec(public-vm)] fn spend_public_authwit(inner_hash: Field) -> Field { let message_hash = compute_outer_authwit_hash( context.msg_sender(), @@ -181,7 +181,7 @@ contract Uniswap { // Assume `token` relates to `token_bridge` (ie token_bridge.token == token) // Note that private can't read public return values so created an internal public that handles everything // this method is used for both private and public swaps. - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _approve_bridge_and_exit_input_asset_to_L1( token: AztecAddress, @@ -216,7 +216,7 @@ contract Uniswap { // docs:end:authwit_uniswap_set // docs:start:assert_token_is_same - #[aztec(public)] + #[aztec(public-vm)] #[aztec(internal)] fn _assert_token_is_same(token: AztecAddress, token_bridge: AztecAddress) { assert( diff --git a/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr b/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr index 97a6ebd6b77..1fa7f50a7f5 100644 --- a/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr +++ b/noir/noir-repo/tooling/nargo_fmt/tests/expected/contract.nr @@ -57,7 +57,7 @@ contract Benchmarking { } // Ultrices in iaculis nunc sed augue lacus. - #[aztec(public)] + #[aztec(public-vm)] fn increment_balance(owner: Field, value: Field) { let current = storage.balances.at(owner).read(); storage.balances.at(owner).write(current + value); @@ -69,7 +69,7 @@ contract Benchmarking { } // Est ultricies integer quis auctor elit sed. In nibh mauris cursus mattis molestie a iaculis. - #[aztec(public)] + #[aztec(public-vm)] fn broadcast(owner: Field) { emit_unencrypted_log(&mut context, storage.balances.at(owner).read()); } diff --git a/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr b/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr index 97a6ebd6b77..1fa7f50a7f5 100644 --- a/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr +++ b/noir/noir-repo/tooling/nargo_fmt/tests/input/contract.nr @@ -57,7 +57,7 @@ contract Benchmarking { } // Ultrices in iaculis nunc sed augue lacus. - #[aztec(public)] + #[aztec(public-vm)] fn increment_balance(owner: Field, value: Field) { let current = storage.balances.at(owner).read(); storage.balances.at(owner).write(current + value); @@ -69,7 +69,7 @@ contract Benchmarking { } // Est ultricies integer quis auctor elit sed. In nibh mauris cursus mattis molestie a iaculis. - #[aztec(public)] + #[aztec(public-vm)] fn broadcast(owner: Field) { emit_unencrypted_log(&mut context, storage.balances.at(owner).read()); }