Skip to content

Commit d2d5f6f

Browse files
authored
Remove blockifier testing feature; use VersionedConstants 0.13.2 (#690)
* Improve scripts/install_foundry.sh
1 parent a3ca720 commit d2d5f6f

File tree

6 files changed

+32
-44
lines changed

6 files changed

+32
-44
lines changed

Cargo.lock

Lines changed: 0 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/starknet-devnet-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ description = "Starknet core logic for devnet"
1212
workspace = true
1313

1414
[dependencies]
15-
blockifier = { workspace = true, features = ["testing"] }
15+
blockifier = { workspace = true }
1616
cairo-lang-starknet-classes = { workspace = true }
1717
clap = { workspace = true }
1818
ethers = { workspace = true }

crates/starknet-devnet-core/src/transactions.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,18 +268,20 @@ impl StarknetTransaction {
268268

269269
#[cfg(test)]
270270
mod tests {
271+
use blockifier::state::cached_state::CachedState;
271272
use blockifier::transaction::objects::TransactionExecutionInfo;
272273
use starknet_rs_core::types::{TransactionExecutionStatus, TransactionFinalityStatus};
273274
use starknet_types::rpc::transactions::{TransactionTrace, TransactionWithHash};
274275

275276
use super::{StarknetTransaction, StarknetTransactions};
276277
use crate::starknet::transaction_trace::create_trace;
278+
use crate::state::state_readers::DictState;
277279
use crate::traits::HashIdentifiedMut;
278280
use crate::utils::test_utils::dummy_declare_transaction_v1;
279281

280282
fn dummy_trace(tx: &TransactionWithHash) -> TransactionTrace {
281283
create_trace(
282-
&mut Default::default(),
284+
&mut CachedState::<DictState>::new(Default::default()),
283285
tx.get_type(),
284286
&Default::default(),
285287
Default::default(),

crates/starknet-devnet-core/src/utils.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use blockifier::bouncer::{BouncerConfig, BouncerWeights, BuiltinCount};
2-
use blockifier::versioned_constants::VersionedConstants;
2+
use blockifier::versioned_constants::{StarknetVersion, VersionedConstants};
33
use serde_json::Value;
44
use starknet_rs_core::types::contract::CompiledClass;
55
use starknet_rs_core::types::Felt;
@@ -40,7 +40,7 @@ pub(crate) fn get_storage_var_address(
4040
}
4141

4242
pub(crate) fn get_versioned_constants() -> VersionedConstants {
43-
VersionedConstants::create_for_testing()
43+
VersionedConstants::get(StarknetVersion::V0_13_2).clone()
4444
}
4545

4646
/// Values not present here: https://docs.starknet.io/tools/limits-and-triggers/

scripts/install_foundry.sh

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
#!/bin/bash
22

3+
# If foundryup becomes buggy, consider switching to directly downloading binary from GitHub tag:
4+
# git_asset="https://github.com/foundry-rs/foundry/releases/download/$foundry_version/foundry_nightly_linux_amd64.tar.gz"
5+
# foundry_bin="$HOME/.foundry/bin"
6+
# mkdir -p "$foundry_bin"
7+
# curl -L "$git_asset" | tar -xvz -C "$foundry_bin"
8+
# export PATH="$PATH:$HOME/$foundry_bin"
9+
310
set -eu
411

12+
foundry_version="nightly-5b7e4cb3c882b28f3c32ba580de27ce7381f415a"
13+
14+
echo "Installing foundry $foundry_version"
15+
516
echo "Installing foundryup"
617
curl -L https://foundry.paradigm.xyz | bash || echo "As expected, received a non-zero exit code"
718

@@ -13,7 +24,7 @@ if [ -n "$CIRCLE_BRANCH" ]; then
1324
fi
1425

1526
echo "Installing foundry"
16-
foundryup --install nightly-5b7e4cb3c882b28f3c32ba580de27ce7381f415a
27+
foundryup --install "$foundry_version"
1728

1829
# assert it works
1930
anvil --version

tests/integration/test_gas_modification.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ use starknet_core::constants::DEVNET_DEFAULT_GAS_PRICE;
55
use starknet_rs_accounts::{Account, AccountError, ExecutionEncoding, SingleOwnerAccount};
66
use starknet_rs_core::chain_id::SEPOLIA;
77
use starknet_rs_core::types::{Felt, ResourcePrice, StarknetError};
8-
use starknet_rs_providers::ProviderError;
8+
use starknet_rs_core::utils::cairo_short_string_to_felt;
9+
use starknet_rs_providers::{Provider, ProviderError};
910
use starknet_rs_signers::Signer;
1011

1112
use crate::common::background_devnet::BackgroundDevnet;
@@ -47,14 +48,15 @@ impl SetGasPrice for BackgroundDevnet {
4748
/// 1. Execute simulateTransactions with a declare transaction and check gas fees.
4849
/// 2. Set the gas values.
4950
/// 3. Execute simulateTransactions again and check gas fees.
50-
async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: &str) {
51+
/// Chain ID assertion justified in: https://github.com/0xSpaceShard/starknet-devnet-rs/pull/551#discussion_r1682755696
52+
async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: Felt) {
5153
// get account
5254
let (signer, account_address) = devnet.get_first_predeployed_account().await;
5355
let account = SingleOwnerAccount::new(
5456
devnet.clone_provider(),
5557
signer.clone(),
5658
account_address,
57-
Felt::from_hex_unchecked(expected_chain_id),
59+
expected_chain_id,
5860
ExecutionEncoding::New,
5961
);
6062

@@ -93,7 +95,7 @@ async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: &str) {
9395
})
9496
};
9597

96-
let chain_id = &devnet.send_custom_rpc("starknet_chainId", json!({})).await.unwrap();
98+
let chain_id = devnet.json_rpc_client.chain_id().await.unwrap();
9799
assert_eq!(chain_id, expected_chain_id);
98100

99101
let params_skip_fee_charge = get_params(&["SKIP_FEE_CHARGE"]);
@@ -109,7 +111,7 @@ async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: &str) {
109111
resp_no_flags["fee_estimation"]["data_gas_price"],
110112
to_hex_felt(&DEVNET_DEFAULT_GAS_PRICE)
111113
);
112-
assert_eq!(resp_no_flags["fee_estimation"]["overall_fee"], "0x7398c659d800");
114+
assert_eq!(resp_no_flags["fee_estimation"]["overall_fee"], "0xa7275ca6d3000");
113115

114116
let params_skip_validation_and_fee_charge = get_params(&["SKIP_VALIDATE", "SKIP_FEE_CHARGE"]);
115117
let resp_skip_validation = &devnet
@@ -127,7 +129,7 @@ async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: &str) {
127129
resp_skip_validation["fee_estimation"]["data_gas_price"],
128130
to_hex_felt(&DEVNET_DEFAULT_GAS_PRICE)
129131
);
130-
assert_eq!(resp_skip_validation["fee_estimation"]["overall_fee"], "0x736a356c0800");
132+
assert_eq!(resp_skip_validation["fee_estimation"]["overall_fee"], "0xa7247397f6000");
131133

132134
assert_difference_if_validation(
133135
resp_no_flags,
@@ -148,7 +150,7 @@ async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: &str) {
148150

149151
assert_eq!(gas_response, &gas_request);
150152

151-
let chain_id = &devnet.send_custom_rpc("starknet_chainId", json!({})).await.unwrap();
153+
let chain_id = devnet.json_rpc_client.chain_id().await.unwrap();
152154
assert_eq!(chain_id, expected_chain_id);
153155

154156
let resp_no_flags = &devnet
@@ -158,7 +160,7 @@ async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: &str) {
158160

159161
assert_eq!(resp_no_flags["fee_estimation"]["gas_price"], to_hex_felt(&wei_price));
160162
assert_eq!(resp_no_flags["fee_estimation"]["data_gas_price"], to_hex_felt(&wei_price_data));
161-
assert_eq!(resp_no_flags["fee_estimation"]["overall_fee"], "0x261b37abed7125c0000");
163+
assert_eq!(resp_no_flags["fee_estimation"]["overall_fee"], "0x38008384ec45ab780000");
162164

163165
let resp_skip_validation = &devnet
164166
.send_custom_rpc("starknet_simulateTransactions", params_skip_validation_and_fee_charge)
@@ -169,7 +171,7 @@ async fn set_gas_scenario(devnet: BackgroundDevnet, expected_chain_id: &str) {
169171
resp_skip_validation["fee_estimation"]["data_gas_price"],
170172
to_hex_felt(&wei_price_data)
171173
);
172-
assert_eq!(resp_skip_validation["fee_estimation"]["overall_fee"], "0x260b9ade6354d540000");
174+
assert_eq!(resp_skip_validation["fee_estimation"]["overall_fee"], "0x37ff89b813a3e6700000");
173175

174176
assert_difference_if_validation(
175177
resp_no_flags,
@@ -184,7 +186,7 @@ async fn set_gas() {
184186
let devnet = BackgroundDevnet::spawn().await.expect("Could not start Devnet");
185187

186188
// Testnet gas modification test scenario
187-
set_gas_scenario(devnet, &SEPOLIA.to_hex_string()).await;
189+
set_gas_scenario(devnet, SEPOLIA).await;
188190
}
189191

190192
#[tokio::test]
@@ -194,7 +196,8 @@ async fn set_gas_fork() {
194196
let fork_devnet = BackgroundDevnet::spawn_with_additional_args(&cli_args).await.unwrap();
195197

196198
// Sepolia fork gas modification test scenario
197-
set_gas_scenario(fork_devnet, "0x534e5f494e544547524154494f4e5f5345504f4c4941").await;
199+
set_gas_scenario(fork_devnet, cairo_short_string_to_felt("SN_INTEGRATION_SEPOLIA").unwrap())
200+
.await;
198201
}
199202

200203
#[tokio::test]

0 commit comments

Comments
 (0)