-
Notifications
You must be signed in to change notification settings - Fork 76
Open
Description
Is there an existing issue?
- I have searched the existing issues
Description of bug
The madara node returns different global contracts and classes trie root for the same height queried at different occasions.-
Steps to reproduce
use starknet::core::types::ConfirmedBlockId;
use starknet::macros::felt;
use starknet::providers::jsonrpc::HttpTransport;
use starknet::providers::sequencer::models::BlockId;
use starknet::providers::{Provider, SequencerGatewayProvider, Url};
#[tokio::main]
async fn main() {
let gateway = SequencerGatewayProvider::new(Url::parse("http://localhost:12346").unwrap(), Url::parse("http://localhost:12346/feeder_gateway").unwrap(), felt!("0x1234"));
let block = gateway.get_block(BlockId::Latest).await.unwrap();
let block_number = block.block_number.unwrap();
let provider = starknet::providers::JsonRpcClient::new(HttpTransport::new(
Url::parse("http://localhost:12345").unwrap(),
));
for i in 0..5 {
let storage_proof = provider
.get_storage_proof(ConfirmedBlockId::Number(block_number), [], [], [])
.await
.unwrap();
println!("{:?}", storage_proof);
std::thread::sleep(std::time::Duration::from_secs(2));
}
}This will print storage proofs with different contracts_tree_root -- even though they are queried for the same block number. Example output:
StorageProof { classes_proof: {}, contracts_proof: ContractsProof { nodes: {}, contract_leaves_data: [] }, contracts_storage_proofs: [], global_roots: GlobalRoots { contracts_tree_root: 0x6676d4e6c50905fddbd41043a84cdda7f7e2cfa35dd12bdb83fa9ecbdf78e88, classes_tree_root: 0x2646752d4b85dcf1b52fbc61efab4557e02b3ac0de448d15475f5be670d3ccd, block_hash: 0x393cd90be464f3dead0462cef461af7ced5bdf8a0524ae91778642fd3297cb9 } }
StorageProof { classes_proof: {}, contracts_proof: ContractsProof { nodes: {}, contract_leaves_data: [] }, contracts_storage_proofs: [], global_roots: GlobalRoots { contracts_tree_root: 0x21e5f02aca50f076bb9cf7cd71af41f7bf0b552e2b16c7e6b18cdebaef75ed5, classes_tree_root: 0x2646752d4b85dcf1b52fbc61efab4557e02b3ac0de448d15475f5be670d3ccd, block_hash: 0x393cd90be464f3dead0462cef461af7ced5bdf8a0524ae91778642fd3297cb9 } }
StorageProof { classes_proof: {}, contracts_proof: ContractsProof { nodes: {}, contract_leaves_data: [] }, contracts_storage_proofs: [], global_roots: GlobalRoots { contracts_tree_root: 0x15c81c33d32e9083da90b09815827bd7842c5c39a38ab0b57617672c9179983, classes_tree_root: 0x2646752d4b85dcf1b52fbc61efab4557e02b3ac0de448d15475f5be670d3ccd, block_hash: 0x393cd90be464f3dead0462cef461af7ced5bdf8a0524ae91778642fd3297cb9 } }
StorageProof { classes_proof: {}, contracts_proof: ContractsProof { nodes: {}, contract_leaves_data: [] }, contracts_storage_proofs: [], global_roots: GlobalRoots { contracts_tree_root: 0x6053ab0450cef4c6938027e09d477c333df162f8df7d53d35daf535ff03334d, classes_tree_root: 0x2646752d4b85dcf1b52fbc61efab4557e02b3ac0de448d15475f5be670d3ccd, block_hash: 0x393cd90be464f3dead0462cef461af7ced5bdf8a0524ae91778642fd3297cb9 } }
StorageProof { classes_proof: {}, contracts_proof: ContractsProof { nodes: {}, contract_leaves_data: [] }, contracts_storage_proofs: [], global_roots: GlobalRoots { contracts_tree_root: 0x59d7119111c75010d075e4aabedc752e9939f0e2025e8622eb80b9b443d1967, classes_tree_root: 0x2646752d4b85dcf1b52fbc61efab4557e02b3ac0de448d15475f5be670d3ccd, block_hash: 0x393cd90be464f3dead0462cef461af7ced5bdf8a0524ae91778642fd3297cb9 } }
I am using madara from commit 2c2d39b
madara \
--base-path madara-test \
--rpc-port 12345 \
--gateway-port 12346 \
--chain-config-override "block_time=1s,pending_block_update_time=1s,chain_id=IBC_SN_DEVNET,latest_protocol_version=0.14.0" \
--devnet \
--devnet-unsafe \
--gateway-enable \
--feeder-gateway-enable \
--rpc-storage-proof-max-distance 300 \
--preset sepolia \
--l1-sync-disabled \
--l2-sync-disabled \
--l1-gas-price 0 \
--blob-gas-price 0Metadata
Metadata
Assignees
Labels
No labels