diff --git a/Cargo.lock b/Cargo.lock index 1faf9af..0f2c767 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -999,6 +999,7 @@ name = "common" version = "0.1.0" dependencies = [ "anyhow", + "monotree", "reqwest 0.11.27", "risc0-zkvm", "rpc_primitives", diff --git a/common/Cargo.toml b/common/Cargo.toml index c2cda7d..6fe2228 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -9,6 +9,7 @@ thiserror.workspace = true serde_json.workspace = true serde.workspace = true reqwest.workspace = true +monotree.workspace = true risc0-zkvm = { git = "https://github.com/risc0/risc0.git", branch = "release-1.2" } [dependencies.rpc_primitives] diff --git a/common/src/lib.rs b/common/src/lib.rs index 121c403..0ebfcdf 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -50,6 +50,8 @@ pub enum ExecutionFailureKind { AmountMismatchError, #[error("Sequencer client error: {0:?}")] SequencerClientError(#[from] SequencerClientError), + #[error("Datebase returned error : {0:?}")] + MonoTreeError(#[from] monotree::Errors), } impl ExecutionFailureKind { diff --git a/node_core/src/sequencer_client/mod.rs b/node_core/src/sequencer_client/mod.rs index 8cbf9fd..e68872f 100644 --- a/node_core/src/sequencer_client/mod.rs +++ b/node_core/src/sequencer_client/mod.rs @@ -1,11 +1,7 @@ use accounts::account_core::Account; use anyhow::Result; use common::{SequencerClientError, SequencerRpcError}; -use json::{ - GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse, - RegisterAccountRequest, RegisterAccountResponse, SendTxRequest, SendTxResponse, - SequencerRpcRequest, SequencerRpcResponse, -}; +use json::{SendTxRequest, SendTxResponse, SequencerRpcRequest, SequencerRpcResponse}; use k256::elliptic_curve::group::GroupEncoding; use reqwest::Client; use rpc_primitives::requests::{ diff --git a/node_rpc/src/process.rs b/node_rpc/src/process.rs index 5aa3b20..0168d29 100644 --- a/node_rpc/src/process.rs +++ b/node_rpc/src/process.rs @@ -16,18 +16,21 @@ use rpc_primitives::requests::{ RegisterAccountRequest, RegisterAccountResponse, }; -use crate::types::rpc_structs::{ - ExecuteScenarioMultipleSendRequest, ExecuteScenarioMultipleSendResponse, - ExecuteScenarioSplitRequest, ExecuteScenarioSplitResponse, ExecuteSubscenarioRequest, - ExecuteSubscenarioResponse, ShowAccountPublicBalanceRequest, ShowAccountPublicBalanceResponse, - ShowAccountUTXORequest, ShowAccountUTXOResponse, ShowTransactionRequest, - ShowTransactionResponse, UTXOShortEssentialStruct, WriteDepositPublicBalanceRequest, - WriteDepositPublicBalanceResponse, WriteMintPrivateUTXOMultipleAssetsRequest, - WriteMintPrivateUTXOMultipleAssetsResponse, WriteMintPrivateUTXORequest, - WriteMintPrivateUTXOResponse, WriteSendDeshieldedBalanceRequest, - WriteSendDeshieldedUTXOResponse, WriteSendPrivateUTXORequest, WriteSendPrivateUTXOResponse, - WriteSendShieldedUTXORequest, WriteSendShieldedUTXOResponse, WriteSendSplitUTXOResponse, - WriteSplitUTXORequest, +use crate::types::{ + err_rpc::cast_common_execution_error_into_rpc_error, + rpc_structs::{ + ExecuteScenarioMultipleSendRequest, ExecuteScenarioMultipleSendResponse, + ExecuteScenarioSplitRequest, ExecuteScenarioSplitResponse, ExecuteSubscenarioRequest, + ExecuteSubscenarioResponse, ShowAccountPublicBalanceRequest, + ShowAccountPublicBalanceResponse, ShowAccountUTXORequest, ShowAccountUTXOResponse, + ShowTransactionRequest, ShowTransactionResponse, UTXOShortEssentialStruct, + WriteDepositPublicBalanceRequest, WriteDepositPublicBalanceResponse, + WriteMintPrivateUTXOMultipleAssetsRequest, WriteMintPrivateUTXOMultipleAssetsResponse, + WriteMintPrivateUTXORequest, WriteMintPrivateUTXOResponse, + WriteSendDeshieldedBalanceRequest, WriteSendDeshieldedUTXOResponse, + WriteSendPrivateUTXORequest, WriteSendPrivateUTXOResponse, WriteSendShieldedUTXORequest, + WriteSendShieldedUTXOResponse, WriteSendSplitUTXOResponse, WriteSplitUTXORequest, + }, }; use super::{respond, types::err_rpc::RpcErr, JsonHandler}; diff --git a/node_rpc/src/types/err_rpc.rs b/node_rpc/src/types/err_rpc.rs index 3f44956..9eafb93 100644 --- a/node_rpc/src/types/err_rpc.rs +++ b/node_rpc/src/types/err_rpc.rs @@ -74,5 +74,6 @@ pub fn cast_common_execution_error_into_rpc_error(comm_exec_err: ExecutionFailur ExecutionFailureKind::SequencerClientError(seq_cli_err) => { cast_seq_client_error_into_rpc_error(seq_cli_err) } + ExecutionFailureKind::MonoTreeError(_) => RpcError::new_internal_error(None, &error_string), } }