Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into meshi/merge-main-v0.1…
Browse files Browse the repository at this point in the history
…3.2-into-main-1725348388
  • Loading branch information
meship-starkware committed Sep 5, 2024
2 parents 3a9697e + 9745223 commit 81f0f8c
Show file tree
Hide file tree
Showing 66 changed files with 1,073 additions and 794 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/committer_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
- 'Cargo.toml'
- 'Cargo.lock'
- 'crates/committer_cli/**'
- 'crates/starknet_api/**'
- 'crates/starknet_committer/**'
- 'crates/starknet_patricia/**'

Expand All @@ -27,6 +28,7 @@ on:
- 'Cargo.toml'
- 'Cargo.lock'
- 'crates/committer_cli/**'
- 'crates/starknet_api/**'
- 'crates/starknet_committer/**'
- 'crates/starknet_patricia/**'

Expand Down
83 changes: 57 additions & 26 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,30 @@ jobs:
TITLE: ${{ github.event.pull_request.title }}
run: echo "$TITLE" | commitlint --verbose

code_style:
format:
runs-on: starkware-ubuntu-20-04-medium
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master # TODO(Nimrod, 15/8/2024): Use stable toolchain.
with:
components: rustfmt
toolchain: nightly-2024-04-29
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "v0-rust-ubuntu-20.04"
- run: scripts/rust_fmt.sh --check

clippy:
runs-on: starkware-ubuntu-20-04-medium
steps:
# Enviorment setup.
- uses: actions/checkout@v4
- uses: Noelware/setup-protoc@1.1.0
- uses: baptiste0928/cargo-install@v3
- uses: ./.github/actions/install_rust
with:
crate: taplo-cli
version: '0.9.0'
locked: true
components: clippy
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "v0-rust-ubuntu-20.04"

# Setup pypy and link to the location expected by .cargo/config.toml.
- uses: actions/setup-python@v5
Expand All @@ -75,27 +88,12 @@ jobs:
RUSTDOCFLAGS: "-D warnings"
steps:
- uses: actions/checkout@v4
# Install rust components.
- uses: ./.github/actions/install_rust
- uses: Swatinem/rust-cache@v2
- uses: Noelware/setup-protoc@1.1.0
with:
components: rustfmt, clippy

# Run tests.
- name: "Run rustfmt and clippy"
run: scripts/rust_fmt.sh --check
- name: "Run clippy"
run: scripts/clippy.sh
- name: "Run cargo doc"
run: cargo doc --workspace -r --document-private-items --no-deps
- name: "Run taplo"
run: scripts/taplo.sh
- name: "Run cargo check"
env:
RUSTDOCFLAGS: "-D warnings"
run: cargo check --workspace -r --all-features
- name: Run Machete (detect unused dependencies)
uses: bnjbvr/cargo-machete@main

version: ${{env.PROTOC_VERSION}}
- run: cargo doc --workspace -r --document-private-items --no-deps

run-workspace-tests:
runs-on: starkware-ubuntu-latest-small
Expand Down Expand Up @@ -146,6 +144,39 @@ jobs:
env:
SEED: 0

taplo:
runs-on: starkware-ubuntu-latest-small
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install_rust
- uses: Swatinem/rust-cache@v2
- uses: baptiste0928/cargo-install@v3
with:
crate: taplo-cli
version: "0.9.0"
locked: true
- run: scripts/taplo.sh

machete:
runs-on: starkware-ubuntu-latest-small
steps:
- uses: actions/checkout@v4
- name: Run Machete (detect unused dependencies)
uses: bnjbvr/cargo-machete@main

check:
runs-on: starkware-ubuntu-latest-small
env:
RUSTDOCFLAGS: "-D warnings"
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/install_rust
- uses: Swatinem/rust-cache@v2
- uses: Noelware/setup-protoc@1.1.0
with:
version: ${{env.PROTOC_VERSION}}
- run: cargo check --workspace -r --all-features

merge-gatekeeper:
runs-on: starkware-ubuntu-latest-small
# Restrict permissions of the GITHUB_TOKEN.
Expand Down Expand Up @@ -239,4 +270,4 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
fail_ci_if_error: true
version: "v0.1.15"
version: "v0.1.15"
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 14 additions & 14 deletions crates/blockifier/resources/versioned_constants.json
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@
"os_resources": {
"execute_syscalls": {
"CallContract": {
"n_steps": 827,
"n_steps": 860,
"builtin_instance_counter": {
"range_check_builtin": 15
},
Expand All @@ -215,7 +215,7 @@
"n_memory_holes": 0
},
"Deploy": {
"n_steps": 1099,
"n_steps": 1128,
"builtin_instance_counter": {
"pedersen_builtin": 7,
"range_check_builtin": 18
Expand Down Expand Up @@ -294,7 +294,7 @@
"n_memory_holes": 0
},
"LibraryCall": {
"n_steps": 818,
"n_steps": 836,
"builtin_instance_counter": {
"range_check_builtin": 15
},
Expand All @@ -308,7 +308,7 @@
"n_memory_holes": 0
},
"ReplaceClass": {
"n_steps": 98,
"n_steps": 104,
"builtin_instance_counter": {
"range_check_builtin": 1
},
Expand Down Expand Up @@ -400,14 +400,14 @@
"n_memory_holes": 0
},
"StorageRead": {
"n_steps": 87,
"n_steps": 89,
"builtin_instance_counter": {
"range_check_builtin": 1
},
"n_memory_holes": 0
},
"StorageWrite": {
"n_steps": 89,
"n_steps": 93,
"builtin_instance_counter": {
"range_check_builtin": 1
},
Expand All @@ -418,7 +418,7 @@
"Declare": {
"deprecated_resources": {
"constant": {
"n_steps": 3099,
"n_steps": 3161,
"builtin_instance_counter": {
"pedersen_builtin": 16,
"range_check_builtin": 56,
Expand All @@ -434,7 +434,7 @@
},
"resources": {
"constant": {
"n_steps": 3231,
"n_steps": 3293,
"builtin_instance_counter": {
"pedersen_builtin": 4,
"range_check_builtin": 64,
Expand All @@ -452,7 +452,7 @@
"DeployAccount": {
"deprecated_resources": {
"constant": {
"n_steps": 4020,
"n_steps": 4114,
"builtin_instance_counter": {
"pedersen_builtin": 23,
"range_check_builtin": 72
Expand All @@ -469,7 +469,7 @@
},
"resources": {
"constant": {
"n_steps": 4169,
"n_steps": 4263,
"builtin_instance_counter": {
"pedersen_builtin": 11,
"range_check_builtin": 80,
Expand All @@ -489,7 +489,7 @@
"InvokeFunction": {
"deprecated_resources": {
"constant": {
"n_steps": 3769,
"n_steps": 3854,
"builtin_instance_counter": {
"pedersen_builtin": 14,
"range_check_builtin": 69
Expand All @@ -506,7 +506,7 @@
},
"resources": {
"constant": {
"n_steps": 3942,
"n_steps": 4027,
"builtin_instance_counter": {
"pedersen_builtin": 4,
"range_check_builtin": 77,
Expand All @@ -526,7 +526,7 @@
"L1Handler": {
"deprecated_resources": {
"constant": {
"n_steps": 1234,
"n_steps": 1257,
"builtin_instance_counter": {
"pedersen_builtin": 11,
"range_check_builtin": 16
Expand Down Expand Up @@ -616,4 +616,4 @@
100
]
}
}
}
12 changes: 3 additions & 9 deletions crates/blockifier/src/blockifier/stateful_validator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@ use crate::state::cached_state::CachedState;
use crate::state::errors::StateError;
use crate::state::state_api::StateReader;
use crate::transaction::account_transaction::AccountTransaction;
use crate::transaction::errors::{
TransactionExecutionError,
TransactionInfoCreationError,
TransactionPreValidationError,
};
use crate::transaction::errors::{TransactionExecutionError, TransactionPreValidationError};
use crate::transaction::transaction_execution::Transaction;
use crate::transaction::transactions::ValidatableTransaction;

Expand All @@ -40,8 +36,6 @@ pub enum StatefulValidatorError {
TransactionExecutorError(#[from] TransactionExecutorError),
#[error(transparent)]
TransactionPreValidationError(#[from] TransactionPreValidationError),
#[error(transparent)]
TransactionCreationError(#[from] TransactionInfoCreationError),
}

pub type StatefulValidatorResult<T> = Result<T, StatefulValidatorError>;
Expand Down Expand Up @@ -71,7 +65,7 @@ impl<S: StateReader> StatefulValidator<S> {
return Ok(());
}

let tx_context = self.tx_executor.block_context.to_tx_context(&tx)?;
let tx_context = self.tx_executor.block_context.to_tx_context(&tx);
self.perform_pre_validation_stage(&tx, &tx_context)?;

if skip_validate {
Expand Down Expand Up @@ -118,7 +112,7 @@ impl<S: StateReader> StatefulValidator<S> {
mut remaining_gas: u64,
) -> StatefulValidatorResult<(Option<CallInfo>, TransactionReceipt)> {
let mut execution_resources = ExecutionResources::default();
let tx_context = Arc::new(self.tx_executor.block_context.to_tx_context(tx)?);
let tx_context = Arc::new(self.tx_executor.block_context.to_tx_context(tx));

let limit_steps_by_resources = true;
let validate_call_info = tx.validate_tx(
Expand Down
6 changes: 3 additions & 3 deletions crates/blockifier/src/blockifier/stateful_validator_test.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use assert_matches::assert_matches;
use rstest::rstest;
use starknet_api::transaction::{DeprecatedResourceBoundsMapping, Fee, TransactionVersion};
use starknet_api::transaction::{Fee, TransactionVersion, ValidResourceBounds};

use crate::blockifier::stateful_validator::StatefulValidator;
use crate::context::BlockContext;
Expand Down Expand Up @@ -33,7 +33,7 @@ fn test_transaction_validator(
#[case] validate_constructor: bool,
#[case] tx_version: TransactionVersion,
block_context: BlockContext,
max_resource_bounds: DeprecatedResourceBoundsMapping,
max_resource_bounds: ValidResourceBounds,
#[values(CairoVersion::Cairo0, CairoVersion::Cairo1)] cairo_version: CairoVersion,
) {
let chain_info = &block_context.chain_info;
Expand Down Expand Up @@ -75,7 +75,7 @@ fn test_transaction_validator(
}

#[rstest]
fn test_transaction_validator_skip_validate(max_resource_bounds: DeprecatedResourceBoundsMapping) {
fn test_transaction_validator_skip_validate(max_resource_bounds: ValidResourceBounds) {
let block_context = BlockContext::create_for_testing();
let faulty_account = FeatureContract::FaultyAccount(CairoVersion::Cairo1);
let state = test_state(&block_context.chain_info, BALANCE, &[(faulty_account, 1)]);
Expand Down
4 changes: 2 additions & 2 deletions crates/blockifier/src/concurrency/fee_utils_test.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use num_bigint::BigUint;
use rstest::rstest;
use starknet_api::felt;
use starknet_api::transaction::{DeprecatedResourceBoundsMapping, Fee};
use starknet_api::transaction::{Fee, ValidResourceBounds};
use starknet_types_core::felt::Felt;

use crate::concurrency::fee_utils::{add_fee_to_sequencer_balance, fill_sequencer_balance_reads};
Expand All @@ -19,7 +19,7 @@ use crate::transaction::test_utils::{account_invoke_tx, block_context, max_resou
#[rstest]
pub fn test_fill_sequencer_balance_reads(
block_context: BlockContext,
max_resource_bounds: DeprecatedResourceBoundsMapping,
max_resource_bounds: ValidResourceBounds,
#[values(CairoVersion::Cairo0, CairoVersion::Cairo1)] erc20_version: CairoVersion,
) {
let account = FeatureContract::AccountWithoutValidations(CairoVersion::Cairo1);
Expand Down
8 changes: 4 additions & 4 deletions crates/blockifier/src/concurrency/versioned_state_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use starknet_api::core::{
Nonce,
PatriciaKey,
};
use starknet_api::transaction::{Calldata, ContractAddressSalt, DeprecatedResourceBoundsMapping};
use starknet_api::transaction::{Calldata, ContractAddressSalt, ValidResourceBounds};
use starknet_api::{calldata, class_hash, contract_address, felt, patricia_key};

use crate::abi::abi_utils::{get_fee_token_var_address, get_storage_var_address};
Expand Down Expand Up @@ -201,7 +201,7 @@ fn test_versioned_state_proxy() {

#[rstest]
// Test parallel execution of two transactions that use the same versioned state.
fn test_run_parallel_txs(max_resource_bounds: DeprecatedResourceBoundsMapping) {
fn test_run_parallel_txs(max_resource_bounds: ValidResourceBounds) {
let block_context = BlockContext::create_for_account_testing();
let chain_info = &block_context.chain_info;
let zero_bounds = true;
Expand Down Expand Up @@ -233,7 +233,7 @@ fn test_run_parallel_txs(max_resource_bounds: DeprecatedResourceBoundsMapping) {
&mut NonceManager::default(),
);
let account_tx_1 = AccountTransaction::DeployAccount(deploy_account_tx_1);
let enforce_fee = account_tx_1.create_tx_info().unwrap().enforce_fee();
let enforce_fee = account_tx_1.create_tx_info().enforce_fee();

let class_hash = grindy_account.get_class_hash();
let ctor_storage_arg = felt!(1_u8);
Expand All @@ -248,7 +248,7 @@ fn test_run_parallel_txs(max_resource_bounds: DeprecatedResourceBoundsMapping) {
let deploy_account_tx_2 = deploy_account_tx(deploy_tx_args, nonce_manager);
let account_address = deploy_account_tx_2.contract_address();
let account_tx_2 = AccountTransaction::DeployAccount(deploy_account_tx_2);
let tx_context = block_context.to_tx_context(&account_tx_2).unwrap();
let tx_context = block_context.to_tx_context(&account_tx_2);
let fee_type = tx_context.tx_info.fee_type();

let deployed_account_balance_key = get_fee_token_var_address(account_address);
Expand Down
5 changes: 1 addition & 4 deletions crates/blockifier/src/concurrency/worker_logic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -230,10 +230,7 @@ impl<'a, S: StateReader> WorkerExecutor<'a, S> {
&mut execution_output.as_mut().expect(EXECUTION_OUTPUTS_UNWRAP_ERROR).result;

if let Ok(tx_execution_info) = tx_result.as_mut() {
let tx_context = self
.block_context
.to_tx_context(&self.chunk[tx_index])
.expect("Failed to create tx context.");
let tx_context = self.block_context.to_tx_context(&self.chunk[tx_index]);
// Add the deleted sequencer balance key to the storage keys.
let concurrency_mode = true;
tx_state_changes_keys.update_sequencer_key_in_storage(
Expand Down
Loading

0 comments on commit 81f0f8c

Please sign in to comment.