Skip to content

Commit dcf2793

Browse files
authored
Fix starknet_getStorageProof dummy impl (#749)
1 parent dd80b3f commit dcf2793

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

crates/starknet-devnet-server/src/api/json_rpc/models.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ pub struct GetStorageProofInput {
5252
pub block_id: BlockId,
5353
pub class_hashes: Option<Vec<Felt>>,
5454
pub contract_addresses: Option<Vec<ContractAddress>>,
55-
pub contract_storage_keys: Option<ContractStorage>,
55+
pub contracts_storage_keys: Option<Vec<ContractStorage>>,
5656
}
5757

5858
#[derive(Deserialize, Clone, Debug)]

tests/integration/general_rpc_tests.rs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
use serde_json::json;
2-
use starknet_rs_core::types::BlockId;
2+
use starknet_rs_core::types::ConfirmedBlockId;
3+
use starknet_rs_providers::Provider;
4+
use starknet_rs_providers::jsonrpc::JsonRpcError;
35

46
use crate::common::background_devnet::BackgroundDevnet;
57
use crate::common::constants::RPC_PATH;
68
use crate::common::errors::RpcError;
79
use crate::common::reqwest_client::PostReqwestSender;
10+
use crate::common::utils::{assert_json_rpc_errors_equal, extract_json_rpc_error};
811

912
#[tokio::test]
1013
async fn rpc_at_root() {
@@ -55,13 +58,14 @@ async fn rpc_returns_invalid_params() {
5558
#[tokio::test]
5659
async fn storage_proof_request_should_always_return_error() {
5760
let devnet = BackgroundDevnet::spawn().await.unwrap();
58-
devnet.create_block().await.unwrap();
61+
62+
let devnet_storage_proof_msg = "Devnet doesn't support storage proofs";
5963

6064
for (req_params, expected_code, expected_msg) in [
6165
(json!({}), -32602, "missing field `block_id`"),
62-
(json!({ "block_id": BlockId::Number(0) }), 42, "Devnet doesn't support storage proofs"),
63-
(json!({ "block_id": "latest" }), 42, "Devnet doesn't support storage proofs"),
64-
(json!({ "block_id": BlockId::Number(5) }), 24, "Block not found"),
66+
(json!({ "block_id": ConfirmedBlockId::Number(0) }), 42, devnet_storage_proof_msg),
67+
(json!({ "block_id": "latest" }), 42, devnet_storage_proof_msg),
68+
(json!({ "block_id": ConfirmedBlockId::Number(5) }), 24, "Block not found"),
6569
] {
6670
let error =
6771
devnet.send_custom_rpc("starknet_getStorageProof", req_params).await.unwrap_err();
@@ -70,4 +74,15 @@ async fn storage_proof_request_should_always_return_error() {
7074
RpcError { code: expected_code.into(), message: expected_msg.into(), data: None }
7175
);
7276
}
77+
78+
// Test with starknet-rs
79+
match devnet.json_rpc_client.get_storage_proof(ConfirmedBlockId::Latest, [], [], []).await {
80+
// Replace when this is accepted: https://github.com/xJonathanLEI/starknet-rs/pull/714
81+
// Err(ProviderError::StarknetError(StarknetError::StorageProofNotSupported)) => (),
82+
Err(e) => assert_json_rpc_errors_equal(
83+
extract_json_rpc_error(e).unwrap(),
84+
JsonRpcError { code: 42, message: devnet_storage_proof_msg.into(), data: None },
85+
),
86+
other => panic!("Unexpected result: {other:?}"),
87+
}
7388
}

0 commit comments

Comments
 (0)