Skip to content
Open
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
Original file line number Diff line number Diff line change
@@ -1 +1 @@
11
12
59 changes: 22 additions & 37 deletions crates/central_systest_blobs/resources/preconfirmed_block.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"block_number": 6,
"block_number": 13,
"pre_confirmed_block": {
"l1_da_mode": "CALLDATA",
"l1_data_gas_price": {
Expand All @@ -17,16 +17,16 @@
"sequencer_address": "0x1000",
"starknet_version": "0.14.3",
"status": "PRE_CONFIRMED",
"timestamp": 1006,
"timestamp": 1013,
"transaction_receipts": [
{
"actual_fee": "0x158bf1",
"actual_fee": "0xff313",
"events": [
{
"data": [
"0xf99e7cdfbcce0bf14ce17e4c57fd2d12ad1bca5fc8e46a9fbafc36b59a9955",
"0x1000",
"0x158bf1",
"0xff313",
"0x0"
],
"from_address": "0x6bd1d71a2fb67a567618584ca31da288dbc2e1a8421e4045e05f52c19bfab83",
Expand All @@ -38,58 +38,47 @@
"execution_resources": {
"builtin_instance_counter": {
"pedersen_builtin": 4,
"poseidon_builtin": 17,
"poseidon_builtin": 15,
"range_check_builtin": 90
},
"data_availability": {
"l1_data_gas": 0,
"l1_gas": 4095,
"l1_gas": 1652,
"l2_gas": 0
},
"n_memory_holes": 0,
"n_steps": 4403,
"n_steps": 4381,
"total_gas_consumed": {
"l1_data_gas": 0,
"l1_gas": 4646,
"l2_gas": 1407435
"l1_gas": 1652,
"l2_gas": 1043615
}
},
"execution_status": "SUCCEEDED",
"l2_to_l1_messages": [],
"transaction_hash": "0x69baeec4f5fd1665ef711e66f55b891ea8c8427d2cacb2eb39e3b66d320ae0d",
"transaction_hash": "0x4acc6e7cb93683ae3a42ed499788f2d0143e8c3357315e1ecaad4e65f6dd479",
"transaction_index": 0
}
],
"transaction_state_diffs": [
{
"declared_classes": [],
"deployed_contracts": [
{
"address": "0x4021329459ab2dacdd89c397996da9214211fa2abf2cda1bfb8f4cffe6db51f",
"class_hash": "0x4b0dc3014cc21eeeeba97610d8fb3eaf61c428c513a2e9bfcf1b7beb9cb99c0"
}
],
"deployed_contracts": [],
"migrated_compiled_classes": [],
"nonces": {
"0xf99e7cdfbcce0bf14ce17e4c57fd2d12ad1bca5fc8e46a9fbafc36b59a9955": "0x5"
"0xf99e7cdfbcce0bf14ce17e4c57fd2d12ad1bca5fc8e46a9fbafc36b59a9955": "0xc"
},
"old_declared_contracts": [],
"replaced_classes": [],
"storage_diffs": {
"0x4021329459ab2dacdd89c397996da9214211fa2abf2cda1bfb8f4cffe6db51f": [
{
"key": "0x1275130f95dda36bcbb6e9d28796c1d7e10b6e9fd5ed083e0ede4b12f613528",
"value": "0x2"
}
],
"0x6bd1d71a2fb67a567618584ca31da288dbc2e1a8421e4045e05f52c19bfab83": [
{
"key": "0x6fba6554adab51d0272b896b6f41768bd0491e5ad59c39fab38e65767974793",
"value": "0xffffffffffffffffffffffff92bbce2b"
"value": "0xffffffffffffffffffffffff924412b1"
},
{
"key": "0x723973208639b7839ce298f7ffea61e3f9533872defd7abdb91023db4658812",
"value": "0x6d4431d4"
"value": "0x6dbbed4e"
}
]
}
Expand All @@ -100,18 +89,14 @@
"account_deployment_data": [],
"calldata": [
"0x1",
"0xf99e7cdfbcce0bf14ce17e4c57fd2d12ad1bca5fc8e46a9fbafc36b59a9955",
"0x2730079d734ee55315f4f141eaed376bddd8c2133523d223a344c5604e0f7f8",
"0x6",
"0x4b0dc3014cc21eeeeba97610d8fb3eaf61c428c513a2e9bfcf1b7beb9cb99c0",
"0x0",
"0x3d275d3e01ff9dca442ca4aa77b00d6581ad890e3df054932a6851a5166e94d",
"0x4ea6d2b84c4aea3baab8c031143fcd1fdf95debad5f888784f8db17e1c17f4",
"0x2",
"0x1",
"0x1",
"0x0"
"0x4021329459ab2dacdd89c397996da9214211fa2abf2cda1bfb8f4cffe6db51f",
"0x2000"
],
"fee_data_availability_mode": 0,
"nonce": "0x4",
"nonce": "0xb",
"nonce_data_availability_mode": 0,
"paymaster_data": [],
"proof_facts": [],
Expand All @@ -131,11 +116,11 @@
},
"sender_address": "0xf99e7cdfbcce0bf14ce17e4c57fd2d12ad1bca5fc8e46a9fbafc36b59a9955",
"signature": [
"0x24b3b8fc254a82c56f7c592ebaf989fb2551228ac0f8d7fa2b0cb43ea94dc2a",
"0x70feac66dc56daf6857c6a34a4b547ca653a96fb3d674b180ce403684e8dbba"
"0x47fc4402ccfebfe5e1a8af95ee4de99932534b43d9161e7024847382c022926",
"0x71c9ccc594f6d54d88b649a51dc167c3df0423d4a3f95a0e1b85f2560e78588"
],
"tip": "0x0",
"transaction_hash": "0x69baeec4f5fd1665ef711e66f55b891ea8c8427d2cacb2eb39e3b66d320ae0d",
"transaction_hash": "0x4acc6e7cb93683ae3a42ed499788f2d0143e8c3357315e1ecaad4e65f6dd479",
"type": "INVOKE_FUNCTION",
"version": "0x3"
}
Expand Down
83 changes: 68 additions & 15 deletions crates/central_systest_blobs/src/cende_blob_regression_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ use google_cloud_storage::http::objects::get::GetObjectRequest;
use google_cloud_storage::http::objects::upload::{Media, UploadObjectRequest, UploadType};
use google_cloud_storage::http::Error as GcsError;
use mockall::predicate::eq;
use starknet_api::abi::abi_utils::selector_from_name;
use starknet_api::block::{BlockHash, BlockHashAndNumber, BlockInfo, BlockNumber, BlockTimestamp};
use starknet_api::block_hash::block_hash_calculator::{
calculate_block_commitments,
Expand Down Expand Up @@ -858,19 +859,9 @@ async fn test_make_data() {
let mut blob_factory = BlobFactory::new();
let chain_info = OsChainInfo::from(&blob_factory.chain_info).to_hex_map();

// Create the list of transactions to be included in the blobs:
// 1. bootstrap declare of an ERC20 contract.
// 2. bootstrap declare of an account with real validate.
// 3. deploy account (with zero fees).
// 4. deploy ERC20 contract from the account (with zero fees), while minting some tokens to the
// sender account.
// (from this point - all txs include non-zero fees, and no more bootstrap declares)
// 5. declare the test contract.
// 6. deploy the test contract.
// 7. deploy another instance of the test contract.
// TODO(Dori): the rest of the txs.
// 8. invoke the test contract: something with a state change.
// 9. invoke the test contract: test syscalls.
// Create the list of transactions to be included in the blobs.
// Block closing point is arbitrary, although it is preferable not to close after the last tx
// (to ensure the preconfirmed block is not empty).
let erc20_contract = FeatureContract::ERC20(CairoVersion::Cairo1(RunnableCairo1::Casm));
let account_with_real_validate = FeatureContract::AccountWithRealValidate(RunnableCairo1::Casm);
let test_contract = FeatureContract::TestContract(CairoVersion::Cairo1(RunnableCairo1::Casm));
Expand Down Expand Up @@ -900,17 +891,79 @@ async fn test_make_data() {
blob_factory.close_block().await;
blob_factory.make_declare_tx(test_contract, Some(*OPERATOR_ADDRESS));
blob_factory.close_block().await;
let _test_contract_address_0 = blob_factory.make_operator_deploy_tx(
let test_contract_address_0 = blob_factory.make_operator_deploy_tx(
test_contract,
calldata![Felt::ZERO, Felt::ZERO],
true, // charge fee
);
blob_factory.close_block().await;
let _test_contract_address_1 = blob_factory.make_operator_deploy_tx(
let test_contract_address_1 = blob_factory.make_operator_deploy_tx(
test_contract,
calldata![Felt::ONE, Felt::ONE],
true, // charge fee
);
blob_factory.close_block().await;
blob_factory.make_operator_invoke_tx(
test_contract_address_0,
"test_increment",
&[Felt::ZERO; 3],
true, // charge fee
false, // should not revert
);
blob_factory.close_block().await;
blob_factory.make_operator_invoke_tx(
test_contract_address_1,
"test_storage_read_write",
&[Felt::ONE, Felt::TWO],
true, // charge fee
false, // should not revert
);
blob_factory.close_block().await;
blob_factory.make_operator_invoke_tx(
test_contract_address_1,
"test_storage_write",
&[Felt::THREE, Felt::ONE],
true, // charge fee
false, // should not revert
);
blob_factory.close_block().await;
blob_factory.make_operator_invoke_tx(
test_contract_address_0,
"write_and_revert",
&[Felt::from(7u8), Felt::ONE],
true, // charge fee
true, // should revert
);
blob_factory.close_block().await;
blob_factory.make_operator_invoke_tx(
test_contract_address_1,
"test_call_contract",
&[
**test_contract_address_0,
selector_from_name("test_storage_read_write").0,
Felt::TWO,
Felt::from(0x1000),
Felt::from(0x1000),
],
true, // charge fee
false, // should not revert
);
blob_factory.close_block().await;
blob_factory.make_operator_invoke_tx(
test_contract_address_1,
"write_1",
&[Felt::TWO],
true, // charge fee
false, // should not revert
);
blob_factory.close_block().await;
blob_factory.make_operator_invoke_tx(
test_contract_address_0,
"catch_write_revert_panic",
&[**test_contract_address_1, Felt::from(0x2000)],
true, // charge fee
false, // should not revert (inner error is caught)
);
Comment thread
cursor[bot] marked this conversation as resolved.

let (blobs, preconfirmed_block) = blob_factory.finalize().await;
expect_file![CHAIN_INFO_PATH].assert_eq(&serde_json::to_string_pretty(&chain_info).unwrap());
Expand Down
Loading