near_jsonrpc_primitives/types/
sandbox.rs

1use near_primitives::state_record::StateRecord;
2use near_primitives::types::BlockHeightDelta;
3
4#[derive(serde::Deserialize, serde::Serialize, Debug)]
5#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
6pub struct RpcSandboxPatchStateRequest {
7    pub records: Vec<StateRecord>,
8}
9
10#[derive(serde::Deserialize, serde::Serialize, Debug)]
11#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
12pub struct RpcSandboxPatchStateResponse {}
13
14#[derive(thiserror::Error, Debug, Clone, serde::Serialize, serde::Deserialize)]
15#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
16#[serde(tag = "name", content = "info", rename_all = "SCREAMING_SNAKE_CASE")]
17pub enum RpcSandboxPatchStateError {
18    #[error("The node reached its limits. Try again later. More details: {error_message}")]
19    InternalError { error_message: String },
20}
21
22impl From<RpcSandboxPatchStateError> for crate::errors::RpcError {
23    fn from(error: RpcSandboxPatchStateError) -> Self {
24        let error_data = match serde_json::to_value(error) {
25            Ok(value) => value,
26            Err(err) => {
27                return Self::new_internal_error(
28                    None,
29                    format!("Failed to serialize RpcSandboxPatchStateError: {:?}", err),
30                );
31            }
32        };
33        Self::new_internal_or_handler_error(Some(error_data.clone()), error_data)
34    }
35}
36
37#[derive(serde::Deserialize, serde::Serialize)]
38#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
39pub struct RpcSandboxFastForwardRequest {
40    pub delta_height: BlockHeightDelta,
41}
42
43#[derive(serde::Deserialize, serde::Serialize)]
44#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
45pub struct RpcSandboxFastForwardResponse {}
46
47#[derive(thiserror::Error, Debug, Clone, serde::Serialize, serde::Deserialize)]
48#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
49#[serde(tag = "name", content = "info", rename_all = "SCREAMING_SNAKE_CASE")]
50pub enum RpcSandboxFastForwardError {
51    #[error("The node reached its limits. Try again later. More details: {error_message}")]
52    InternalError { error_message: String },
53}
54
55impl From<RpcSandboxFastForwardError> for crate::errors::RpcError {
56    fn from(error: RpcSandboxFastForwardError) -> Self {
57        let error_data = match serde_json::to_value(error) {
58            Ok(value) => value,
59            Err(err) => {
60                return Self::new_internal_error(
61                    None,
62                    format!("Failed to serialize RpcSandboxFastForwardError: {:?}", err),
63                );
64            }
65        };
66        Self::new_internal_or_handler_error(Some(error_data.clone()), error_data)
67    }
68}