Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(avm)!: per function avm run #5421

Merged
merged 1 commit into from
Mar 26, 2024
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
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -983,7 +983,7 @@ jobs:
- *setup_env
- run:
name: "Test"
command: AVM_ENABLED=1 cond_spot_run_compose end-to-end 4 ./scripts/docker-compose.yml TEST=e2e_avm_simulator.test.ts
command: cond_spot_run_compose end-to-end 4 ./scripts/docker-compose.yml TEST=e2e_avm_simulator.test.ts
aztec_manifest_key: end-to-end
<<: *defaults_e2e_test

Expand Down Expand Up @@ -1033,7 +1033,7 @@ jobs:
- *setup_env
- run:
name: "Test"
command: AVM_ENABLED=1 cond_spot_run_compose end-to-end 4 ./scripts/docker-compose.yml TEST=docs_examples_test.ts
command: cond_spot_run_compose end-to-end 4 ./scripts/docker-compose.yml TEST=docs_examples_test.ts
aztec_manifest_key: end-to-end
<<: *defaults_e2e_test

Expand Down
2 changes: 0 additions & 2 deletions build-system/scripts/remote_run_script
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@ ssh -A -F $SSH_CONFIG_PATH $IP "
export ECR_URL=$ECR_URL
export BUILD_SYSTEM_DEBUG=${BUILD_SYSTEM_DEBUG:-}

# temp while we transitioning to avm
export AVM_ENABLED=${AVM_ENABLED:-}
source ./remote_initialize
$@
"
8 changes: 4 additions & 4 deletions l1-contracts/src/core/libraries/ConstantsGen.sol
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ library Constants {
uint256 internal constant CONTRACT_STORAGE_READ_LENGTH = 2;
uint256 internal constant CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 2;
uint256 internal constant ETH_ADDRESS_LENGTH = 1;
uint256 internal constant FUNCTION_DATA_LENGTH = 2;
uint256 internal constant FUNCTION_DATA_LENGTH = 3;
uint256 internal constant FUNCTION_LEAF_PREIMAGE_LENGTH = 5;
uint256 internal constant GLOBAL_VARIABLES_LENGTH = 6;
uint256 internal constant HEADER_LENGTH = 20;
Expand All @@ -114,13 +114,13 @@ library Constants {
uint256 internal constant NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH = 4;
uint256 internal constant NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH = 5;
uint256 internal constant PARTIAL_STATE_REFERENCE_LENGTH = 6;
uint256 internal constant PRIVATE_CALL_STACK_ITEM_LENGTH = 210;
uint256 internal constant PRIVATE_CALL_STACK_ITEM_LENGTH = 211;
uint256 internal constant PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 207;
uint256 internal constant PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 198;
uint256 internal constant STATE_REFERENCE_LENGTH = 8;
uint256 internal constant TX_CONTEXT_DATA_LENGTH = 4;
uint256 internal constant TX_REQUEST_LENGTH = 8;
uint256 internal constant ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH = 11;
uint256 internal constant TX_REQUEST_LENGTH = 9;
uint256 internal constant ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH = 12;
uint256 internal constant GET_NOTES_ORACLE_RETURN_LENGTH = 674;
uint256 internal constant NOTE_HASHES_NUM_BYTES_PER_BASE_ROLLUP = 2048;
uint256 internal constant NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP = 2048;
Expand Down
2 changes: 1 addition & 1 deletion noir-projects/noir-contracts/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ $NARGO compile --silence-warnings

echo "Transpiling avm contracts... (only '#[aztec(public-vm)]')"
TRANSPILER=${TRANSPILER:-../../avm-transpiler/target/release/avm-transpiler}
ls target/avm_*.json | parallel -L8 "$TRANSPILER {} {}"
ls target/avm_*.json | parallel "$TRANSPILER {} {}"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should I mark this PR as breaking change? Anything special that I should do @Maddiaa0 ?

Copy link
Member

Choose a reason for hiding this comment

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

As it changes the abi yes i think so we should mark it

Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ use crate::{
struct FunctionData {
selector : FunctionSelector,
is_private : bool,
// Remove once the AVM is fully operational.
is_transpiled: bool,
}

impl Eq for FunctionData {
fn eq(self, other: Self) -> bool {
self.selector.eq(other.selector) &
self.is_private == other.is_private
(self.is_private == other.is_private) &
(self.is_transpiled == other.is_transpiled)
}
}

Expand All @@ -24,6 +27,7 @@ impl Serialize<FUNCTION_DATA_LENGTH> for FunctionData {
[
self.selector.to_field(),
self.is_private as Field,
self.is_transpiled as Field,
]
}
}
Expand All @@ -33,6 +37,7 @@ impl Deserialize<FUNCTION_DATA_LENGTH> for FunctionData {
Self {
selector: FunctionSelector::from_field(serialized[0]),
is_private: serialized[1] as bool,
is_transpiled: serialized[2] as bool,
}
}
}
Expand All @@ -57,6 +62,6 @@ fn empty_hash() {
let hash = data.hash();

// Value from function_data.test.ts "computes empty item hash" test
let test_data_empty_hash = 0x27b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed;
let test_data_empty_hash = 0x066e6cdc4a6ba5e4781deda650b0be6c12f975f064fc38df72c1060716759b17;
assert_eq(hash, test_data_empty_hash);
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,6 @@ fn empty_hash() {
let hash = item.hash();

// Value from private_call_stack_item.test.ts "computes empty item hash" test
let test_data_empty_hash = 0x13f518365c690d1b96d31454afed495ad29fe530939caf7189dd44f9bd63ef89;
let test_data_empty_hash = 0x06b381be873c42defb570287e3ba23900175838afb6047a27c7dce1f653b4ac5;
assert_eq(hash, test_data_empty_hash);
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ mod tests {
#[test]
fn compute_call_stack_item_request_hash() {
let contract_address = AztecAddress::from_field(1);
let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };
let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false, is_transpiled: false };

let mut public_inputs: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();
public_inputs.new_note_hashes[0] = SideEffect{
Expand All @@ -69,14 +69,14 @@ mod tests {
let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: true, function_data };

// Value from public_call_stack_item.test.ts "Computes a callstack item request hash" test
let test_data_call_stack_item_request_hash = 0x141bbf6bc30f0a19640983354528288239b68edd5c1edd9955a007801230d7b6;
let test_data_call_stack_item_request_hash = 0x09bd19d3ebcda705ab1ed598db287340aed3efda0ad3bbbf3296737bda731fa9;
assert_eq(call_stack_item.hash(), test_data_call_stack_item_request_hash);
}

#[test]
fn compute_call_stack_item_hash() {
let contract_address = AztecAddress::from_field(1);
let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };
let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false, is_transpiled: false };

let mut public_inputs: PublicCircuitPublicInputs = dep::std::unsafe::zeroed();
public_inputs.new_note_hashes[0] = SideEffect{
Expand All @@ -87,7 +87,7 @@ mod tests {
let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: false, function_data };

// Value from public_call_stack_item.test.ts "Computes a callstack item hash" test
let test_data_call_stack_item_hash = 0x05e9e448563aa811c209cc557136ac56b55f9f2f31ee54d41b697389fd45dc1c;
let test_data_call_stack_item_hash = 0x1fe20dd657d73941763bf8437471ac000be6efcb046895014b1a84b5aaf55905;
assert_eq(call_stack_item.hash(), test_data_call_stack_item_hash);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ global CONTRACT_INSTANCE_LENGTH: u64 = 6;
global CONTRACT_STORAGE_READ_LENGTH: u64 = 2;
global CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH: u64 = 2;
global ETH_ADDRESS_LENGTH = 1;
global FUNCTION_DATA_LENGTH: u64 = 2;
global FUNCTION_DATA_LENGTH: u64 = 3;
global FUNCTION_LEAF_PREIMAGE_LENGTH: u64 = 5;
global GLOBAL_VARIABLES_LENGTH: u64 = 6;
global HEADER_LENGTH: u64 = 20; // 2 for last_archive, 4 for content commitment, 8 for state reference, 6 for global vars
Expand All @@ -165,7 +165,7 @@ global MAX_BLOCK_NUMBER_LENGTH: u64 = 2; // 1 for the option flag, 1 for the val
global NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH = 4;
global NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH = 5;
global PARTIAL_STATE_REFERENCE_LENGTH: u64 = 6;
global PRIVATE_CALL_STACK_ITEM_LENGTH: u64 = 210;
global PRIVATE_CALL_STACK_ITEM_LENGTH: u64 = 211;
// Change this ONLY if you have changed the PrivateCircuitPublicInputs structure.
// In other words, if the structure/size of the public inputs of a function call changes then we should change this
// constant as well PRIVATE_CALL_STACK_ITEM_LENGTH
Expand All @@ -174,9 +174,9 @@ global PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH: u64 = 207;
global PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH: u64 = 198;
global STATE_REFERENCE_LENGTH: u64 = 8; // 2 for snap + 8 for partial
global TX_CONTEXT_DATA_LENGTH: u64 = 4;
global TX_REQUEST_LENGTH: u64 = 8; // 2 + TX_CONTEXT_DATA_LENGTH + FUNCTION_DATA_LENGTH
global TX_REQUEST_LENGTH: u64 = 9; // 2 + TX_CONTEXT_DATA_LENGTH + FUNCTION_DATA_LENGTH

global ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH: Field = 11; // 2 + FUNCTION_DATA_LENGTH + CALL_CONTEXT_LENGTH
global ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH: Field = 12; // 2 + FUNCTION_DATA_LENGTH + CALL_CONTEXT_LENGTH
global GET_NOTES_ORACLE_RETURN_LENGTH: u64 = 674;
global NOTE_HASHES_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;
global NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP: Field = 2048;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ global default_private_function = ContractFunction {
data: FunctionData {
selector: FunctionSelector { inner: 1010101 },
is_private: true,
is_transpiled: false,
},
vk_hash: 0,
acir_hash: 1111,
Expand All @@ -34,6 +35,7 @@ global default_public_function = ContractFunction {
data: FunctionData {
selector: FunctionSelector { inner: 3030303 },
is_private: false,
is_transpiled: false,
},
vk_hash: 0,
acir_hash: 3333,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ mod tests {
origin: AztecAddress::from_field(1),
args_hash: 3,
tx_context: TxContext { is_fee_payment_tx: false, is_rebate_payment_tx: false, chain_id: 0, version: 0 },
function_data: FunctionData { selector: FunctionSelector::from_u32(2), is_private: true }
function_data: FunctionData { selector: FunctionSelector::from_u32(2), is_private: true, is_transpiled: false }
};
// Value from tx_request.test.ts "compute hash" test
let test_data_tx_request_hash = 0x20af6f595c396494f1177fa196d17e98d55a2416b28c262b76e78a36d6c01daa;
let test_data_tx_request_hash = 0x08e435f993536fd7a9d6faabfc03a18c4314a54d3d90d15a15275fcfe77bc5a3;
assert(tx_request.hash() == test_data_tx_request_hash);
}
}
8 changes: 4 additions & 4 deletions yarn-project/circuits.js/src/constants.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ export const CONTRACT_INSTANCE_LENGTH = 6;
export const CONTRACT_STORAGE_READ_LENGTH = 2;
export const CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 2;
export const ETH_ADDRESS_LENGTH = 1;
export const FUNCTION_DATA_LENGTH = 2;
export const FUNCTION_DATA_LENGTH = 3;
export const FUNCTION_LEAF_PREIMAGE_LENGTH = 5;
export const GLOBAL_VARIABLES_LENGTH = 6;
export const HEADER_LENGTH = 20;
Expand All @@ -99,13 +99,13 @@ export const MAX_BLOCK_NUMBER_LENGTH = 2;
export const NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH = 4;
export const NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH = 5;
export const PARTIAL_STATE_REFERENCE_LENGTH = 6;
export const PRIVATE_CALL_STACK_ITEM_LENGTH = 210;
export const PRIVATE_CALL_STACK_ITEM_LENGTH = 211;
export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 207;
export const PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH = 198;
export const STATE_REFERENCE_LENGTH = 8;
export const TX_CONTEXT_DATA_LENGTH = 4;
export const TX_REQUEST_LENGTH = 8;
export const ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH = 11;
export const TX_REQUEST_LENGTH = 9;
export const ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH = 12;
export const GET_NOTES_ORACLE_RETURN_LENGTH = 674;
export const NOTE_HASHES_NUM_BYTES_PER_BASE_ROLLUP = 2048;
export const NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP = 2048;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`FunctionData computes empty inputs hash 1`] = `Fr<0x27b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed>`;
exports[`FunctionData computes empty inputs hash 1`] = `Fr<0x066e6cdc4a6ba5e4781deda650b0be6c12f975f064fc38df72c1060716759b17>`;
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`PrivateCallStackItem computes empty item hash 1`] = `Fr<0x13f518365c690d1b96d31454afed495ad29fe530939caf7189dd44f9bd63ef89>`;
exports[`PrivateCallStackItem computes empty item hash 1`] = `Fr<0x06b381be873c42defb570287e3ba23900175838afb6047a27c7dce1f653b4ac5>`;

exports[`PrivateCallStackItem computes hash 1`] = `Fr<0x1b1f2424b9b38679cd1520ad44392630ac60f1efd1e73e5a0682d999fdee5f91>`;
exports[`PrivateCallStackItem computes hash 1`] = `Fr<0x22654b49c43ac7bb9abc1a84d46ba1a6c67a9d354b9b4c5aba2496e82f03315f>`;
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`PublicCallStackItem Computes a callstack item hash 1`] = `"0x05e9e448563aa811c209cc557136ac56b55f9f2f31ee54d41b697389fd45dc1c"`;
exports[`PublicCallStackItem Computes a callstack item hash 1`] = `"0x1fe20dd657d73941763bf8437471ac000be6efcb046895014b1a84b5aaf55905"`;

exports[`PublicCallStackItem Computes a callstack item request hash 1`] = `"0x141bbf6bc30f0a19640983354528288239b68edd5c1edd9955a007801230d7b6"`;
exports[`PublicCallStackItem Computes a callstack item request hash 1`] = `"0x09bd19d3ebcda705ab1ed598db287340aed3efda0ad3bbbf3296737bda731fa9"`;

exports[`PublicCallStackItem computes hash 1`] = `Fr<0x0a9961096ae423e5c4bc1175bb191b8c2b2ad63feda7ce5599842909c09d9973>`;
exports[`PublicCallStackItem computes hash 1`] = `Fr<0x131efdeaaf1e936042e5e5a24a8546863bbddfc70b8e6bdd6df457595df30577>`;
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`TxRequest compute hash 1`] = `"0x20af6f595c396494f1177fa196d17e98d55a2416b28c262b76e78a36d6c01daa"`;
exports[`TxRequest compute hash 1`] = `"0x08e435f993536fd7a9d6faabfc03a18c4314a54d3d90d15a15275fcfe77bc5a3"`;
15 changes: 11 additions & 4 deletions yarn-project/circuits.js/src/structs/function_data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,18 @@ export class FunctionData {
public selector: FunctionSelector,
/** Indicates whether the function is private or public. */
public isPrivate: boolean,
/**
* Transitional: whether the function is an AVM function.
* Remove when the AVM is fully operational.
*/
public isTranspiled: boolean = false,
) {}

static fromAbi(abi: FunctionAbi | ContractFunctionDao): FunctionData {
return new FunctionData(
FunctionSelector.fromNameAndParameters(abi.name, abi.parameters),
abi.functionType === FunctionType.SECRET,
abi.isTranspiled ?? false,
);
}

Expand All @@ -27,11 +33,11 @@ export class FunctionData {
* @returns The buffer.
*/
toBuffer(): Buffer {
return serializeToBuffer(this.selector, this.isPrivate);
return serializeToBuffer(this.selector, this.isPrivate, this.isTranspiled);
}

toFields(): Fr[] {
const fields = [this.selector.toField(), new Fr(this.isPrivate)];
const fields = [this.selector.toField(), new Fr(this.isPrivate), new Fr(this.isTranspiled)];
if (fields.length !== FUNCTION_DATA_LENGTH) {
throw new Error(
`Invalid number of fields for FunctionData. Expected ${FUNCTION_DATA_LENGTH}, got ${fields.length}`,
Expand Down Expand Up @@ -67,16 +73,17 @@ export class FunctionData {
*/
static fromBuffer(buffer: Buffer | BufferReader): FunctionData {
const reader = BufferReader.asReader(buffer);
return new FunctionData(reader.readObject(FunctionSelector), reader.readBoolean());
return new FunctionData(reader.readObject(FunctionSelector), reader.readBoolean(), reader.readBoolean());
}

static fromFields(fields: Fr[] | FieldReader): FunctionData {
const reader = FieldReader.asReader(fields);

const selector = FunctionSelector.fromFields(reader);
const isPrivate = reader.readBoolean();
const isTranspiled = reader.readBoolean();

return new FunctionData(selector, isPrivate);
return new FunctionData(selector, isPrivate, isTranspiled);
}

hash(): Fr {
Expand Down
13 changes: 4 additions & 9 deletions yarn-project/end-to-end/Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ E2E_TEST_LOCAL:
FUNCTION
ARG test
ARG compose_file=./scripts/docker-compose.yml
ARG avm_enabled=""
ARG enable_gas=""
LOCALLY
ENV AVM_ENABLED=$avm_enabled
ENV ENABLE_GAS=$enable_gas
ENV TEST=$test.test.ts
# Locally, we do not use WITH DOCKER as we have had issues with earthly copying big images
Expand All @@ -22,10 +20,8 @@ E2E_TEST_REMOTE:
FUNCTION
ARG test
ARG compose_file=./scripts/docker-compose.yml
ARG avm_enabled=""
ARG enable_gas=""
FROM earthly/dind:alpine-3.19-docker-25.0.2-r0
ENV AVM_ENABLED=$avm_enabled
ENV ENABLE_GAS=$enable_gas
ENV TEST=$test.test.ts
COPY $compose_file $compose_file
Expand All @@ -42,14 +38,13 @@ E2E_TEST:
FUNCTION
ARG test
ARG compose_file=./scripts/docker-compose.yml
ARG avm_enabled=""
ARG enable_gas=""
ARG e2e_remote=false
LOCALLY
IF [ $e2e_remote = true ]
DO +E2E_TEST_REMOTE --test=$test --compose_file=$compose_file --avm_enabled=$avm_enabled --enable_gas=$enable_gas
DO +E2E_TEST_REMOTE --test=$test --compose_file=$compose_file --enable_gas=$enable_gas
ELSE
DO +E2E_TEST_LOCAL --test=$test --compose_file=$compose_file --avm_enabled=$avm_enabled --enable_gas=$enable_gas
DO +E2E_TEST_LOCAL --test=$test --compose_file=$compose_file --enable_gas=$enable_gas
END

# we could use a parameterized target, but these just print cleaner in earthly log
Expand Down Expand Up @@ -143,7 +138,7 @@ e2e-card-game:

e2e-avm-simulator:
ARG e2e_remote=false
DO +E2E_TEST --test=e2e_avm_simulator --avm_enabled=1 --e2e_remote=$e2e_remote
DO +E2E_TEST --test=e2e_avm_simulator --e2e_remote=$e2e_remote

e2e-fees:
ARG e2e_remote=false
Expand All @@ -163,7 +158,7 @@ cli-docs-sandbox:

e2e-docs-examples:
ARG e2e_remote=false
DO +E2E_TEST --test=docs_examples --avm_enabled=1 --e2e_remote=$e2e_remote
DO +E2E_TEST --test=docs_examples --e2e_remote=$e2e_remote

# all:
# for stability, instead of an 'all' target in Earthly, use `make all`
1 change: 0 additions & 1 deletion yarn-project/end-to-end/scripts/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ services:
WS_BLOCK_CHECK_INTERVAL_MS: 50
PXE_BLOCK_POLLING_INTERVAL_MS: 50
ARCHIVER_VIEM_POLLING_INTERVAL_MS: 500
AVM_ENABLED: ${AVM_ENABLED:-}
ENABLE_GAS: ${ENABLE_GAS:-}
expose:
- '8080'
Expand Down
3 changes: 1 addition & 2 deletions yarn-project/end-to-end/src/e2e_avm_simulator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ import { jest } from '@jest/globals';

import { setup } from './fixtures/utils.js';

process.env.AVM_ENABLED = 'absofrigginlutely';
const TIMEOUT = 100_000;

describe('e2e_nested_contract', () => {
describe('e2e_avm_simulator', () => {
jest.setTimeout(TIMEOUT);

let wallet: Wallet;
Expand Down
4 changes: 4 additions & 0 deletions yarn-project/foundation/src/abi/abi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,10 @@ export interface FunctionAbi {
* Whether the function is flagged as an initializer.
*/
isInitializer: boolean;
/**
* Transitional: whether the function is an AVM function.
*/
isTranspiled?: boolean;
}

/**
Expand Down
Loading
Loading