unc_jsonrpc_primitives/types/
sandbox.rs

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