From 8e4956891c3fe1b5a2fed43cb5a43859c128acc8 Mon Sep 17 00:00:00 2001 From: Oleksandr Pravdyvyi Date: Wed, 16 Apr 2025 16:17:53 +0300 Subject: [PATCH] fix: refactor 1 --- Cargo.lock | 41 +++++++------------ Cargo.toml | 1 - accounts/Cargo.toml | 6 +-- accounts/src/account_core/mod.rs | 2 +- accounts/src/key_management/mod.rs | 2 +- accounts/src/key_management/secret_holders.rs | 2 +- common/Cargo.toml | 11 ++++- {storage => common}/src/block.rs | 0 {storage => common}/src/commitment.rs | 0 .../src/commitments_sparse_merkle_tree.rs | 0 common/src/lib.rs | 17 +++++++- .../src/merkle_tree_public/hasher.rs | 0 .../src/merkle_tree_public/merkle_tree.rs | 0 .../src/merkle_tree_public/mod.rs | 0 .../src/merkle_tree_public/tree_leav_item.rs | 0 {storage => common}/src/nullifier.rs | 0 .../src/nullifier_sparse_merkle_tree.rs | 0 .../src/rpc_primitives}/errors.rs | 0 .../src/rpc_primitives}/message.rs | 0 .../src/rpc_primitives/mod.rs | 0 .../src/rpc_primitives}/parser.rs | 2 +- .../src/rpc_primitives}/requests.rs | 13 +++--- {storage => common}/src/transaction.rs | 0 {storage => common}/src/utxo_commitment.rs | 0 core_primitives/Cargo.toml | 3 ++ core_primitives/src/utxo.rs | 2 +- node_core/Cargo.toml | 3 -- node_core/src/executions/de.rs | 8 ++-- node_core/src/executions/private_exec.rs | 8 ++-- node_core/src/executions/se.rs | 8 ++-- node_core/src/lib.rs | 2 +- node_core/src/sequencer_client/json.rs | 2 +- node_core/src/sequencer_client/mod.rs | 10 ++--- node_core/src/storage/block_store.rs | 5 ++- node_core/src/storage/mod.rs | 6 +-- node_core/src/storage/public_context.rs | 2 +- node_rpc/Cargo.toml | 3 -- node_rpc/src/lib.rs | 4 +- node_rpc/src/net_utils.rs | 4 +- node_rpc/src/process.rs | 6 +-- node_rpc/src/types/err_rpc.rs | 2 +- node_rpc/src/types/rpc_structs.rs | 10 ++--- node_runner/Cargo.toml | 4 +- node_runner/src/lib.rs | 2 +- rpc_primitives/Cargo.toml | 17 -------- sc_core/src/proofs_circuits.rs | 8 ++-- sc_core/src/transaction_payloads_tools.rs | 2 +- sc_core/src/utxo_manipulator.rs | 2 +- sequencer_core/Cargo.toml | 3 ++ sequencer_core/src/lib.rs | 14 +++---- .../accounts_store.rs | 0 .../block_store.rs | 3 +- .../mod.rs | 4 +- sequencer_core/src/transaction_mempool.rs | 8 +++- sequencer_rpc/Cargo.toml | 4 +- sequencer_rpc/src/lib.rs | 2 +- sequencer_rpc/src/net_utils.rs | 4 +- sequencer_rpc/src/process.rs | 11 +++-- sequencer_rpc/src/types/err_rpc.rs | 2 +- sequencer_runner/Cargo.toml | 4 +- sequencer_runner/src/lib.rs | 2 +- storage/Cargo.toml | 9 +--- storage/src/lib.rs | 14 +------ utxo/Cargo.toml | 4 +- utxo/src/utxo_core.rs | 3 +- utxo/src/utxo_tree.rs | 5 ++- zkvm/Cargo.toml | 3 -- 67 files changed, 151 insertions(+), 168 deletions(-) rename {storage => common}/src/block.rs (100%) rename {storage => common}/src/commitment.rs (100%) rename {storage => common}/src/commitments_sparse_merkle_tree.rs (100%) rename {storage => common}/src/merkle_tree_public/hasher.rs (100%) rename {storage => common}/src/merkle_tree_public/merkle_tree.rs (100%) rename {storage => common}/src/merkle_tree_public/mod.rs (100%) rename {storage => common}/src/merkle_tree_public/tree_leav_item.rs (100%) rename {storage => common}/src/nullifier.rs (100%) rename {storage => common}/src/nullifier_sparse_merkle_tree.rs (100%) rename {rpc_primitives/src => common/src/rpc_primitives}/errors.rs (100%) rename {rpc_primitives/src => common/src/rpc_primitives}/message.rs (100%) rename rpc_primitives/src/lib.rs => common/src/rpc_primitives/mod.rs (100%) rename {rpc_primitives/src => common/src/rpc_primitives}/parser.rs (95%) rename {rpc_primitives/src => common/src/rpc_primitives}/requests.rs (87%) rename {storage => common}/src/transaction.rs (100%) rename {storage => common}/src/utxo_commitment.rs (100%) delete mode 100644 rpc_primitives/Cargo.toml rename sequencer_core/src/{sequecer_store => sequencer_store}/accounts_store.rs (100%) rename sequencer_core/src/{sequecer_store => sequencer_store}/block_store.rs (95%) rename sequencer_core/src/{sequecer_store => sequencer_store}/mod.rs (99%) diff --git a/Cargo.lock b/Cargo.lock index d4522c0..d8f0a14 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,6 +8,7 @@ version = "0.1.0" dependencies = [ "aes-gcm", "anyhow", + "common", "elliptic-curve", "env_logger", "hex", @@ -17,7 +18,6 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "storage", "utxo", ] @@ -1078,12 +1078,17 @@ name = "common" version = "0.1.0" dependencies = [ "anyhow", + "elliptic-curve", + "hex", + "log", "monotree", "reqwest 0.11.27", "risc0-zkvm", - "rpc_primitives", + "rs_merkle", + "secp256k1-zkp", "serde", "serde_json", + "sha2 0.10.8", "thiserror 1.0.69", ] @@ -1150,6 +1155,7 @@ name = "core_primitives" version = "0.1.0" dependencies = [ "anyhow", + "common", "elliptic-curve", "env_logger", "log", @@ -3110,7 +3116,6 @@ dependencies = [ "rand 0.8.5", "reqwest 0.11.27", "risc0-zkvm", - "rpc_primitives", "sc_core", "secp256k1-zkp", "serde", @@ -3141,7 +3146,6 @@ dependencies = [ "log", "networking", "node_core", - "rpc_primitives", "serde", "serde_json", "storage", @@ -3160,13 +3164,13 @@ dependencies = [ "actix-web", "anyhow", "clap", + "common", "consensus", "env_logger", "log", "networking", "node_core", "node_rpc", - "rpc_primitives", "serde", "serde_json", "storage", @@ -4368,19 +4372,6 @@ dependencies = [ "librocksdb-sys", ] -[[package]] -name = "rpc_primitives" -version = "0.1.0" -dependencies = [ - "anyhow", - "env_logger", - "log", - "sequencer_core", - "serde", - "serde_json", - "storage", -] - [[package]] name = "rrs-lib" version = "0.1.0" @@ -4680,6 +4671,7 @@ version = "0.1.0" dependencies = [ "accounts", "anyhow", + "common", "elliptic-curve", "env_logger", "k256", @@ -4700,6 +4692,7 @@ dependencies = [ "actix-cors", "actix-web", "anyhow", + "common", "consensus", "env_logger", "futures", @@ -4707,7 +4700,6 @@ dependencies = [ "log", "mempool", "networking", - "rpc_primitives", "sequencer_core", "serde", "serde_json", @@ -4723,12 +4715,12 @@ dependencies = [ "actix-web", "anyhow", "clap", + "common", "consensus", "env_logger", "log", "mempool", "networking", - "rpc_primitives", "sequencer_core", "sequencer_rpc", "serde", @@ -4969,18 +4961,14 @@ name = "storage" version = "0.1.0" dependencies = [ "anyhow", - "elliptic-curve", + "common", "env_logger", "hex", "log", "lru", - "monotree", "rocksdb", - "rs_merkle", - "secp256k1-zkp", "serde", "serde_json", - "sha2 0.10.8", "thiserror 1.0.69", ] @@ -5522,6 +5510,7 @@ name = "utxo" version = "0.1.0" dependencies = [ "anyhow", + "common", "env_logger", "hex", "log", @@ -5529,7 +5518,6 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "storage", ] [[package]] @@ -6238,7 +6226,6 @@ dependencies = [ "risc0-zkvm", "serde", "serde_json", - "storage", "test-methods", "thiserror 1.0.69", "utxo", diff --git a/Cargo.toml b/Cargo.toml index f20532c..9ed0234 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,6 @@ members = [ "zkvm", "node_core", "sequencer_core", - "rpc_primitives", "common", "sc_core", "core_primitives", diff --git a/accounts/Cargo.toml b/accounts/Cargo.toml index f82ff26..e7e9708 100644 --- a/accounts/Cargo.toml +++ b/accounts/Cargo.toml @@ -16,8 +16,8 @@ elliptic-curve.workspace = true hex.workspace = true aes-gcm.workspace = true -[dependencies.storage] -path = "../storage" - [dependencies.utxo] path = "../utxo" + +[dependencies.common] +path = "../common" diff --git a/accounts/src/account_core/mod.rs b/accounts/src/account_core/mod.rs index 1bedd55..2d3417c 100644 --- a/accounts/src/account_core/mod.rs +++ b/accounts/src/account_core/mod.rs @@ -1,10 +1,10 @@ use std::collections::HashMap; use anyhow::Result; +use common::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, transaction::Tag}; use k256::AffinePoint; use log::info; use serde::Serialize; -use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, transaction::Tag}; use utxo::{ utxo_core::{UTXOPayload, UTXO}, utxo_tree::UTXOSparseMerkleTree, diff --git a/accounts/src/key_management/mod.rs b/accounts/src/key_management/mod.rs index 5de3db2..8025d50 100644 --- a/accounts/src/key_management/mod.rs +++ b/accounts/src/key_management/mod.rs @@ -1,10 +1,10 @@ use aes_gcm::{aead::Aead, Aes256Gcm, Key, KeyInit}; +use common::merkle_tree_public::TreeHashType; use constants_types::{CipherText, Nonce}; use ephemeral_key_holder::EphemeralKeyHolder; use k256::AffinePoint; use log::info; use secret_holders::{SeedHolder, TopSecretKeyHolder, UTXOSecretKeyHolder}; -use storage::merkle_tree_public::TreeHashType; use crate::account_core::PublicKey; diff --git a/accounts/src/key_management/secret_holders.rs b/accounts/src/key_management/secret_holders.rs index bd4a9e5..7ae67a7 100644 --- a/accounts/src/key_management/secret_holders.rs +++ b/accounts/src/key_management/secret_holders.rs @@ -1,8 +1,8 @@ +use common::merkle_tree_public::TreeHashType; use elliptic_curve::PrimeField; use k256::{AffinePoint, FieldBytes, Scalar}; use rand::{rngs::OsRng, RngCore}; use sha2::{digest::FixedOutput, Digest}; -use storage::merkle_tree_public::TreeHashType; use super::constants_types::{NULLIFIER_SECRET_CONST, VIEVING_SECRET_CONST}; diff --git a/common/Cargo.toml b/common/Cargo.toml index b4a1a3b..f3327ea 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -12,5 +12,12 @@ reqwest.workspace = true monotree.workspace = true risc0-zkvm = { git = "https://github.com/risc0/risc0.git", branch = "release-2.0" } -[dependencies.rpc_primitives] -path = "../rpc_primitives" +rs_merkle.workspace = true +sha2.workspace = true +log.workspace = true +elliptic-curve.workspace = true +hex.workspace = true + +[dependencies.secp256k1-zkp] +workspace = true +features = ["std", "rand-std", "rand", "serde", "global-context"] diff --git a/storage/src/block.rs b/common/src/block.rs similarity index 100% rename from storage/src/block.rs rename to common/src/block.rs diff --git a/storage/src/commitment.rs b/common/src/commitment.rs similarity index 100% rename from storage/src/commitment.rs rename to common/src/commitment.rs diff --git a/storage/src/commitments_sparse_merkle_tree.rs b/common/src/commitments_sparse_merkle_tree.rs similarity index 100% rename from storage/src/commitments_sparse_merkle_tree.rs rename to common/src/commitments_sparse_merkle_tree.rs diff --git a/common/src/lib.rs b/common/src/lib.rs index 16ff638..a13fdd4 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -1,6 +1,21 @@ -use rpc_primitives::errors::RpcError; +use merkle_tree_public::TreeHashType; use serde::Deserialize; +pub mod block; +pub mod commitment; +pub mod commitments_sparse_merkle_tree; +pub mod merkle_tree_public; +pub mod nullifier; +pub mod nullifier_sparse_merkle_tree; +pub mod rpc_primitives; +pub mod transaction; +pub mod utxo_commitment; + +use rpc_primitives::errors::RpcError; + +///Account id on blockchain +pub type AccountId = TreeHashType; + #[derive(Debug, Clone, Deserialize)] pub struct SequencerRpcError { pub jsonrpc: String, diff --git a/storage/src/merkle_tree_public/hasher.rs b/common/src/merkle_tree_public/hasher.rs similarity index 100% rename from storage/src/merkle_tree_public/hasher.rs rename to common/src/merkle_tree_public/hasher.rs diff --git a/storage/src/merkle_tree_public/merkle_tree.rs b/common/src/merkle_tree_public/merkle_tree.rs similarity index 100% rename from storage/src/merkle_tree_public/merkle_tree.rs rename to common/src/merkle_tree_public/merkle_tree.rs diff --git a/storage/src/merkle_tree_public/mod.rs b/common/src/merkle_tree_public/mod.rs similarity index 100% rename from storage/src/merkle_tree_public/mod.rs rename to common/src/merkle_tree_public/mod.rs diff --git a/storage/src/merkle_tree_public/tree_leav_item.rs b/common/src/merkle_tree_public/tree_leav_item.rs similarity index 100% rename from storage/src/merkle_tree_public/tree_leav_item.rs rename to common/src/merkle_tree_public/tree_leav_item.rs diff --git a/storage/src/nullifier.rs b/common/src/nullifier.rs similarity index 100% rename from storage/src/nullifier.rs rename to common/src/nullifier.rs diff --git a/storage/src/nullifier_sparse_merkle_tree.rs b/common/src/nullifier_sparse_merkle_tree.rs similarity index 100% rename from storage/src/nullifier_sparse_merkle_tree.rs rename to common/src/nullifier_sparse_merkle_tree.rs diff --git a/rpc_primitives/src/errors.rs b/common/src/rpc_primitives/errors.rs similarity index 100% rename from rpc_primitives/src/errors.rs rename to common/src/rpc_primitives/errors.rs diff --git a/rpc_primitives/src/message.rs b/common/src/rpc_primitives/message.rs similarity index 100% rename from rpc_primitives/src/message.rs rename to common/src/rpc_primitives/message.rs diff --git a/rpc_primitives/src/lib.rs b/common/src/rpc_primitives/mod.rs similarity index 100% rename from rpc_primitives/src/lib.rs rename to common/src/rpc_primitives/mod.rs diff --git a/rpc_primitives/src/parser.rs b/common/src/rpc_primitives/parser.rs similarity index 95% rename from rpc_primitives/src/parser.rs rename to common/src/rpc_primitives/parser.rs index fd50ea2..983e2f6 100644 --- a/rpc_primitives/src/parser.rs +++ b/common/src/rpc_primitives/parser.rs @@ -1,7 +1,7 @@ use serde::de::DeserializeOwned; use serde_json::Value; -use crate::errors::RpcParseError; +use super::errors::RpcParseError; pub trait RpcRequest: Sized { fn parse(value: Option) -> Result; diff --git a/rpc_primitives/src/requests.rs b/common/src/rpc_primitives/requests.rs similarity index 87% rename from rpc_primitives/src/requests.rs rename to common/src/rpc_primitives/requests.rs index b5f0beb..92e0abe 100644 --- a/rpc_primitives/src/requests.rs +++ b/common/src/rpc_primitives/requests.rs @@ -1,11 +1,12 @@ -use crate::errors::RpcParseError; +use crate::block::Block; use crate::parse_request; -use crate::parser::parse_params; -use crate::parser::RpcRequest; -use sequencer_core::transaction_mempool::TransactionMempool; +use crate::transaction::Transaction; + +use super::errors::RpcParseError; +use super::parser::parse_params; +use super::parser::RpcRequest; use serde::{Deserialize, Serialize}; use serde_json::Value; -use storage::block::Block; #[derive(Serialize, Deserialize, Debug)] pub struct HelloRequest {} @@ -19,7 +20,7 @@ pub struct RegisterAccountRequest { #[derive(Serialize, Deserialize, Debug)] pub struct SendTxRequest { - pub transaction: TransactionMempool, + pub transaction: Transaction, ///Nullifier Root, UTXO Commitment Root, Pub Tx Root pub tx_roots: [[u8; 32]; 3], } diff --git a/storage/src/transaction.rs b/common/src/transaction.rs similarity index 100% rename from storage/src/transaction.rs rename to common/src/transaction.rs diff --git a/storage/src/utxo_commitment.rs b/common/src/utxo_commitment.rs similarity index 100% rename from storage/src/utxo_commitment.rs rename to common/src/utxo_commitment.rs diff --git a/core_primitives/Cargo.toml b/core_primitives/Cargo.toml index 39885b2..510dfd7 100644 --- a/core_primitives/Cargo.toml +++ b/core_primitives/Cargo.toml @@ -22,3 +22,6 @@ path = "../storage" [dependencies.sequencer_core] path = "../sequencer_core" + +[dependencies.common] +path = "../common" diff --git a/core_primitives/src/utxo.rs b/core_primitives/src/utxo.rs index 78c799e..e931df6 100644 --- a/core_primitives/src/utxo.rs +++ b/core_primitives/src/utxo.rs @@ -1,5 +1,5 @@ +use common::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId}; use serde::{Deserialize, Serialize}; -use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId}; ///Raw asset data pub type Asset = Vec; diff --git a/node_core/Cargo.toml b/node_core/Cargo.toml index c9c0968..d948e79 100644 --- a/node_core/Cargo.toml +++ b/node_core/Cargo.toml @@ -38,9 +38,6 @@ path = "../utxo" [dependencies.zkvm] path = "../zkvm" -[dependencies.rpc_primitives] -path = "../rpc_primitives" - [dependencies.common] path = "../common" diff --git a/node_core/src/executions/de.rs b/node_core/src/executions/de.rs index a4ee490..f73ba85 100644 --- a/node_core/src/executions/de.rs +++ b/node_core/src/executions/de.rs @@ -1,14 +1,14 @@ use bincode; +use common::{ + commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, + nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, +}; use k256::Scalar; use monotree::hasher::Blake3; use monotree::{Hasher, Monotree}; use rand::thread_rng; use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1}; use sha2::{Digest, Sha256}; -use storage::{ - commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, - nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, -}; use utxo::utxo_core::UTXO; #[allow(unused)] diff --git a/node_core/src/executions/private_exec.rs b/node_core/src/executions/private_exec.rs index 1919617..2e06c86 100644 --- a/node_core/src/executions/private_exec.rs +++ b/node_core/src/executions/private_exec.rs @@ -1,12 +1,12 @@ use bincode; +use common::{ + commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, + nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, +}; use k256::Scalar; use monotree::hasher::Blake3; use monotree::{Hasher, Monotree}; use sha2::{Digest, Sha256}; -use storage::{ - commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, - nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, -}; use utxo::utxo_core::UTXO; fn hash(input: &[u8]) -> Vec { diff --git a/node_core/src/executions/se.rs b/node_core/src/executions/se.rs index 71d88cc..d37fee5 100644 --- a/node_core/src/executions/se.rs +++ b/node_core/src/executions/se.rs @@ -1,14 +1,14 @@ use bincode; +use common::{ + commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, + nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, +}; use k256::Scalar; use monotree::hasher::Blake3; use monotree::{Hasher, Monotree}; use rand::thread_rng; use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1}; use sha2::{Digest, Sha256}; -use storage::{ - commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, - nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, -}; use utxo::utxo_core::UTXO; #[allow(unused)] diff --git a/node_core/src/lib.rs b/node_core/src/lib.rs index c008469..5668d77 100644 --- a/node_core/src/lib.rs +++ b/node_core/src/lib.rs @@ -5,9 +5,9 @@ use std::sync::{ use common::ExecutionFailureKind; -use ::storage::transaction::{Transaction, TransactionPayload, TxKind}; use accounts::account_core::{Account, AccountAddress}; use anyhow::Result; +use common::transaction::{Transaction, TransactionPayload, TxKind}; use config::NodeConfig; use executions::private_exec::{generate_commitments, generate_nullifiers}; use log::info; diff --git a/node_core/src/sequencer_client/json.rs b/node_core/src/sequencer_client/json.rs index 5bfeb35..0c5373b 100644 --- a/node_core/src/sequencer_client/json.rs +++ b/node_core/src/sequencer_client/json.rs @@ -1,5 +1,5 @@ +use common::transaction::Transaction; use serde::{Deserialize, Serialize}; -use storage::transaction::Transaction; //Requests diff --git a/node_core/src/sequencer_client/mod.rs b/node_core/src/sequencer_client/mod.rs index e68872f..bc40a3a 100644 --- a/node_core/src/sequencer_client/mod.rs +++ b/node_core/src/sequencer_client/mod.rs @@ -1,15 +1,15 @@ use accounts::account_core::Account; use anyhow::Result; +use common::rpc_primitives::requests::{ + GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse, + RegisterAccountRequest, RegisterAccountResponse, +}; +use common::transaction::Transaction; use common::{SequencerClientError, SequencerRpcError}; use json::{SendTxRequest, SendTxResponse, SequencerRpcRequest, SequencerRpcResponse}; use k256::elliptic_curve::group::GroupEncoding; use reqwest::Client; -use rpc_primitives::requests::{ - GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse, - RegisterAccountRequest, RegisterAccountResponse, -}; use serde_json::Value; -use storage::transaction::Transaction; use crate::config::NodeConfig; diff --git a/node_core/src/storage/block_store.rs b/node_core/src/storage/block_store.rs index 33aa8ab..df71795 100644 --- a/node_core/src/storage/block_store.rs +++ b/node_core/src/storage/block_store.rs @@ -1,8 +1,9 @@ use std::path::Path; use anyhow::{anyhow, Result}; +use common::block::Block; use storage::sc_db_utils::DataBlob; -use storage::{block::Block, RocksDBIO}; +use storage::RocksDBIO; pub struct NodeBlockStore { dbio: RocksDBIO, @@ -51,7 +52,7 @@ impl NodeBlockStore { #[cfg(test)] mod tests { use super::*; - use storage::block::{Block, Data}; + use common::block::Data; use tempfile::tempdir; fn create_genesis_block() -> Block { diff --git a/node_core/src/storage/mod.rs b/node_core/src/storage/mod.rs index 51d00f2..f1a9b0a 100644 --- a/node_core/src/storage/mod.rs +++ b/node_core/src/storage/mod.rs @@ -6,15 +6,15 @@ use std::{ use accounts::account_core::{Account, AccountAddress}; use anyhow::Result; use block_store::NodeBlockStore; -use k256::AffinePoint; -use public_context::PublicSCContext; -use storage::{ +use common::{ block::Block, merkle_tree_public::merkle_tree::{PublicTransactionMerkleTree, UTXOCommitmentsMerkleTree}, nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, utxo_commitment::UTXOCommitment, }; +use k256::AffinePoint; +use public_context::PublicSCContext; use utxo::utxo_core::UTXO; use crate::ActionData; diff --git a/node_core/src/storage/public_context.rs b/node_core/src/storage/public_context.rs index 957241f..889cb70 100644 --- a/node_core/src/storage/public_context.rs +++ b/node_core/src/storage/public_context.rs @@ -1,8 +1,8 @@ use std::collections::BTreeMap; use accounts::account_core::{AccountAddress, AccountPublicMask}; +use common::merkle_tree_public::TreeHashType; use serde::{ser::SerializeStruct, Serialize}; -use storage::merkle_tree_public::TreeHashType; ///Strucutre, representing context, given to a smart contract on a call pub struct PublicSCContext { diff --git a/node_rpc/Cargo.toml b/node_rpc/Cargo.toml index bba8368..25c5365 100644 --- a/node_rpc/Cargo.toml +++ b/node_rpc/Cargo.toml @@ -41,8 +41,5 @@ path = "../zkvm" [dependencies.node_core] path = "../node_core" -[dependencies.rpc_primitives] -path = "../rpc_primitives" - [dependencies.common] path = "../common" diff --git a/node_rpc/src/lib.rs b/node_rpc/src/lib.rs index 5262f9d..e4475fc 100644 --- a/node_rpc/src/lib.rs +++ b/node_rpc/src/lib.rs @@ -4,11 +4,11 @@ pub mod types; use std::sync::Arc; -use node_core::{config::NodeConfig, NodeCore}; -use rpc_primitives::{ +use common::rpc_primitives::{ errors::{RpcError, RpcErrorKind}, RpcPollingConfig, }; +use node_core::{config::NodeConfig, NodeCore}; use serde::Serialize; use serde_json::Value; diff --git a/node_rpc/src/net_utils.rs b/node_rpc/src/net_utils.rs index f4182c4..6d68b26 100644 --- a/node_rpc/src/net_utils.rs +++ b/node_rpc/src/net_utils.rs @@ -7,10 +7,10 @@ use futures::Future; use futures::FutureExt; use log::info; +use common::rpc_primitives::message::Message; +use common::rpc_primitives::RpcConfig; use node_core::config::NodeConfig; use node_core::NodeCore; -use rpc_primitives::message::Message; -use rpc_primitives::RpcConfig; use tokio::sync::Mutex; use super::JsonHandler; diff --git a/node_rpc/src/process.rs b/node_rpc/src/process.rs index 0168d29..2e4a236 100644 --- a/node_rpc/src/process.rs +++ b/node_rpc/src/process.rs @@ -4,14 +4,14 @@ use actix_web::Error as HttpError; use node_core::generate_commitments_helper; use serde_json::Value; -use rpc_primitives::{ +use common::rpc_primitives::{ errors::RpcError, message::{Message, Request}, parser::RpcRequest, }; -use storage::transaction::ActionData; +use common::transaction::ActionData; -use rpc_primitives::requests::{ +use common::rpc_primitives::requests::{ GetBlockDataRequest, GetBlockDataResponse, GetLastBlockRequest, GetLastBlockResponse, RegisterAccountRequest, RegisterAccountResponse, }; diff --git a/node_rpc/src/types/err_rpc.rs b/node_rpc/src/types/err_rpc.rs index 22e9d29..e1ace1f 100644 --- a/node_rpc/src/types/err_rpc.rs +++ b/node_rpc/src/types/err_rpc.rs @@ -1,7 +1,7 @@ use common::{ExecutionFailureKind, SequencerClientError}; use log::debug; -use rpc_primitives::errors::{RpcError, RpcParseError}; +use common::rpc_primitives::errors::{RpcError, RpcParseError}; pub struct RpcErr(pub RpcError); diff --git a/node_rpc/src/types/rpc_structs.rs b/node_rpc/src/types/rpc_structs.rs index 6d7d8a3..7418de1 100644 --- a/node_rpc/src/types/rpc_structs.rs +++ b/node_rpc/src/types/rpc_structs.rs @@ -1,10 +1,10 @@ -use rpc_primitives::errors::RpcParseError; -use rpc_primitives::parse_request; -use rpc_primitives::parser::parse_params; -use rpc_primitives::parser::RpcRequest; +use common::parse_request; +use common::rpc_primitives::errors::RpcParseError; +use common::rpc_primitives::parser::parse_params; +use common::rpc_primitives::parser::RpcRequest; +use common::transaction::TxKind; use serde::{Deserialize, Serialize}; use serde_json::Value; -use storage::transaction::TxKind; #[derive(Serialize, Deserialize, Debug)] pub struct ExecuteSubscenarioRequest { diff --git a/node_runner/Cargo.toml b/node_runner/Cargo.toml index c38f24f..6fe6fa4 100644 --- a/node_runner/Cargo.toml +++ b/node_runner/Cargo.toml @@ -45,5 +45,5 @@ path = "../node_rpc" [dependencies.node_core] path = "../node_core" -[dependencies.rpc_primitives] -path = "../rpc_primitives" +[dependencies.common] +path = "../common" diff --git a/node_runner/src/lib.rs b/node_runner/src/lib.rs index 0bdaeb9..cbede4e 100644 --- a/node_runner/src/lib.rs +++ b/node_runner/src/lib.rs @@ -2,12 +2,12 @@ use std::{path::PathBuf, sync::Arc}; use anyhow::Result; use clap::Parser; +use common::rpc_primitives::RpcConfig; use consensus::ConsensusManager; use log::info; use networking::peer_manager::PeerManager; use node_core::NodeCore; use node_rpc::new_http_server; -use rpc_primitives::RpcConfig; use tokio::sync::Mutex; pub mod config; diff --git a/rpc_primitives/Cargo.toml b/rpc_primitives/Cargo.toml deleted file mode 100644 index 15bbfd1..0000000 --- a/rpc_primitives/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "rpc_primitives" -version = "0.1.0" -edition = "2021" - -[dependencies] -anyhow.workspace = true -serde_json.workspace = true -env_logger.workspace = true -log.workspace = true -serde.workspace = true - -[dependencies.storage] -path = "../storage" - -[dependencies.sequencer_core] -path = "../sequencer_core" diff --git a/sc_core/src/proofs_circuits.rs b/sc_core/src/proofs_circuits.rs index 6b2b367..2072e55 100644 --- a/sc_core/src/proofs_circuits.rs +++ b/sc_core/src/proofs_circuits.rs @@ -1,14 +1,14 @@ use bincode; +use common::{ + commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, + nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, +}; use k256::Scalar; use monotree::hasher::Blake3; use monotree::{Hasher, Monotree}; use rand::{thread_rng, RngCore}; use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1}; use sha2::{Digest, Sha256}; -use storage::{ - commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree, - nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, -}; use utxo::utxo_core::UTXO; fn hash(input: &[u8]) -> Vec { diff --git a/sc_core/src/transaction_payloads_tools.rs b/sc_core/src/transaction_payloads_tools.rs index c84cc6f..7e0f019 100644 --- a/sc_core/src/transaction_payloads_tools.rs +++ b/sc_core/src/transaction_payloads_tools.rs @@ -1,9 +1,9 @@ use accounts::account_core::Account; use anyhow::Result; +use common::transaction::{TransactionPayload, TxKind}; use rand::thread_rng; use risc0_zkvm::Receipt; use secp256k1_zkp::{CommitmentSecrets, PedersenCommitment, Tweak}; -use storage::transaction::{TransactionPayload, TxKind}; use utxo::utxo_core::UTXO; use crate::proofs_circuits::{commit, generate_nullifiers, tag_random}; diff --git a/sc_core/src/utxo_manipulator.rs b/sc_core/src/utxo_manipulator.rs index b59c129..8bc0e32 100644 --- a/sc_core/src/utxo_manipulator.rs +++ b/sc_core/src/utxo_manipulator.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use storage::nullifier::UTXONullifier; +use common::nullifier::UTXONullifier; use utxo::utxo_core::{UTXOPayload, UTXO}; pub fn utxo_change_owner( diff --git a/sequencer_core/Cargo.toml b/sequencer_core/Cargo.toml index 730684a..06df7c5 100644 --- a/sequencer_core/Cargo.toml +++ b/sequencer_core/Cargo.toml @@ -22,6 +22,9 @@ path = "../mempool" [dependencies.accounts] path = "../accounts" +[dependencies.common] +path = "../common" + [dependencies.secp256k1-zkp] workspace = true features = ["std", "rand-std", "rand", "serde", "global-context"] diff --git a/sequencer_core/src/lib.rs b/sequencer_core/src/lib.rs index 01b0dd9..36571e2 100644 --- a/sequencer_core/src/lib.rs +++ b/sequencer_core/src/lib.rs @@ -1,21 +1,21 @@ use std::fmt::Display; use anyhow::Result; -use config::SequencerConfig; -use mempool::MemPool; -use sequecer_store::{accounts_store::AccountPublicData, SequecerChainStore}; -use serde::{Deserialize, Serialize}; -use storage::{ +use common::{ block::{Block, HashableBlockData}, merkle_tree_public::TreeHashType, nullifier::UTXONullifier, transaction::{Transaction, TxKind}, utxo_commitment::UTXOCommitment, }; +use config::SequencerConfig; +use mempool::MemPool; +use sequencer_store::{accounts_store::AccountPublicData, SequecerChainStore}; +use serde::{Deserialize, Serialize}; use transaction_mempool::TransactionMempool; pub mod config; -pub mod sequecer_store; +pub mod sequencer_store; pub mod transaction_mempool; pub struct SequencerCore { @@ -262,9 +262,9 @@ mod tests { use super::*; use std::{fmt::format, path::PathBuf}; + use common::transaction::{Transaction, TxKind}; use rand::Rng; use secp256k1_zkp::Tweak; - use storage::transaction::{Transaction, TxKind}; use transaction_mempool::TransactionMempool; fn setup_sequencer_config() -> SequencerConfig { diff --git a/sequencer_core/src/sequecer_store/accounts_store.rs b/sequencer_core/src/sequencer_store/accounts_store.rs similarity index 100% rename from sequencer_core/src/sequecer_store/accounts_store.rs rename to sequencer_core/src/sequencer_store/accounts_store.rs diff --git a/sequencer_core/src/sequecer_store/block_store.rs b/sequencer_core/src/sequencer_store/block_store.rs similarity index 95% rename from sequencer_core/src/sequecer_store/block_store.rs rename to sequencer_core/src/sequencer_store/block_store.rs index e4e3493..8c556a3 100644 --- a/sequencer_core/src/sequecer_store/block_store.rs +++ b/sequencer_core/src/sequencer_store/block_store.rs @@ -1,7 +1,8 @@ use std::path::Path; use anyhow::Result; -use storage::{block::Block, RocksDBIO}; +use common::block::Block; +use storage::RocksDBIO; pub struct SequecerBlockStore { dbio: RocksDBIO, diff --git a/sequencer_core/src/sequecer_store/mod.rs b/sequencer_core/src/sequencer_store/mod.rs similarity index 99% rename from sequencer_core/src/sequecer_store/mod.rs rename to sequencer_core/src/sequencer_store/mod.rs index a057192..fd09d93 100644 --- a/sequencer_core/src/sequecer_store/mod.rs +++ b/sequencer_core/src/sequencer_store/mod.rs @@ -2,12 +2,12 @@ use std::path::Path; use accounts_store::SequencerAccountsStore; use block_store::SequecerBlockStore; -use rand::{rngs::OsRng, RngCore}; -use storage::{ +use common::{ block::{Block, HashableBlockData}, merkle_tree_public::merkle_tree::{PublicTransactionMerkleTree, UTXOCommitmentsMerkleTree}, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, }; +use rand::{rngs::OsRng, RngCore}; pub mod accounts_store; pub mod block_store; diff --git a/sequencer_core/src/transaction_mempool.rs b/sequencer_core/src/transaction_mempool.rs index 30a3993..8c0d720 100644 --- a/sequencer_core/src/transaction_mempool.rs +++ b/sequencer_core/src/transaction_mempool.rs @@ -1,12 +1,18 @@ +use common::{merkle_tree_public::TreeHashType, transaction::Transaction}; use mempool::mempoolitem::MemPoolItem; use serde::{Deserialize, Serialize}; -use storage::{merkle_tree_public::TreeHashType, transaction::Transaction}; #[derive(Debug, Clone)] pub struct TransactionMempool { pub tx: Transaction, } +impl From for TransactionMempool { + fn from(value: Transaction) -> Self { + Self { tx: value } + } +} + impl Serialize for TransactionMempool { fn serialize(&self, serializer: S) -> Result where diff --git a/sequencer_rpc/Cargo.toml b/sequencer_rpc/Cargo.toml index 78df1ed..d3b2e4f 100644 --- a/sequencer_rpc/Cargo.toml +++ b/sequencer_rpc/Cargo.toml @@ -32,5 +32,5 @@ path = "../sequencer_core" [dependencies.storage] path = "../storage" -[dependencies.rpc_primitives] -path = "../rpc_primitives" +[dependencies.common] +path = "../common" diff --git a/sequencer_rpc/src/lib.rs b/sequencer_rpc/src/lib.rs index 066bdc5..1112dbd 100644 --- a/sequencer_rpc/src/lib.rs +++ b/sequencer_rpc/src/lib.rs @@ -4,7 +4,7 @@ pub mod types; use std::sync::Arc; -use rpc_primitives::{ +use common::rpc_primitives::{ errors::{RpcError, RpcErrorKind}, RpcPollingConfig, }; diff --git a/sequencer_rpc/src/net_utils.rs b/sequencer_rpc/src/net_utils.rs index 429bcde..e33a284 100644 --- a/sequencer_rpc/src/net_utils.rs +++ b/sequencer_rpc/src/net_utils.rs @@ -7,8 +7,8 @@ use futures::Future; use futures::FutureExt; use log::info; -use rpc_primitives::message::Message; -use rpc_primitives::RpcConfig; +use common::rpc_primitives::message::Message; +use common::rpc_primitives::RpcConfig; use sequencer_core::SequencerCore; use tokio::sync::Mutex; diff --git a/sequencer_rpc/src/process.rs b/sequencer_rpc/src/process.rs index b89960c..fff428b 100644 --- a/sequencer_rpc/src/process.rs +++ b/sequencer_rpc/src/process.rs @@ -1,14 +1,14 @@ use actix_web::Error as HttpError; -use sequencer_core::sequecer_store::accounts_store::AccountPublicData; +use sequencer_core::sequencer_store::accounts_store::AccountPublicData; use serde_json::Value; -use rpc_primitives::{ +use common::rpc_primitives::{ errors::RpcError, message::{Message, Request}, parser::RpcRequest, }; -use rpc_primitives::requests::{ +use common::rpc_primitives::requests::{ GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse, GetLastBlockRequest, GetLastBlockResponse, HelloRequest, HelloResponse, RegisterAccountRequest, RegisterAccountResponse, SendTxRequest, SendTxResponse, @@ -70,7 +70,10 @@ impl JsonHandler { { let mut state = self.sequencer_state.lock().await; - state.push_tx_into_mempool_pre_check(send_tx_req.transaction, send_tx_req.tx_roots)?; + state.push_tx_into_mempool_pre_check( + send_tx_req.transaction.into(), + send_tx_req.tx_roots, + )?; } let helperstruct = SendTxResponse { diff --git a/sequencer_rpc/src/types/err_rpc.rs b/sequencer_rpc/src/types/err_rpc.rs index aef675c..a8759fc 100644 --- a/sequencer_rpc/src/types/err_rpc.rs +++ b/sequencer_rpc/src/types/err_rpc.rs @@ -1,6 +1,6 @@ use log::debug; -use rpc_primitives::errors::{RpcError, RpcParseError}; +use common::rpc_primitives::errors::{RpcError, RpcParseError}; use sequencer_core::TransactionMalformationErrorKind; pub struct RpcErr(pub RpcError); diff --git a/sequencer_runner/Cargo.toml b/sequencer_runner/Cargo.toml index a574359..286ee76 100644 --- a/sequencer_runner/Cargo.toml +++ b/sequencer_runner/Cargo.toml @@ -34,5 +34,5 @@ path = "../sequencer_rpc" [dependencies.sequencer_core] path = "../sequencer_core" -[dependencies.rpc_primitives] -path = "../rpc_primitives" +[dependencies.common] +path = "../common" diff --git a/sequencer_runner/src/lib.rs b/sequencer_runner/src/lib.rs index a222583..6c3e214 100644 --- a/sequencer_runner/src/lib.rs +++ b/sequencer_runner/src/lib.rs @@ -2,8 +2,8 @@ use std::{path::PathBuf, sync::Arc}; use anyhow::Result; use clap::Parser; +use common::rpc_primitives::RpcConfig; use log::info; -use rpc_primitives::RpcConfig; use sequencer_core::SequencerCore; use sequencer_rpc::new_http_server; use tokio::sync::Mutex; diff --git a/storage/Cargo.toml b/storage/Cargo.toml index 4455cbf..c4fd3a9 100644 --- a/storage/Cargo.toml +++ b/storage/Cargo.toml @@ -11,14 +11,9 @@ log.workspace = true serde.workspace = true lru.workspace = true thiserror.workspace = true -elliptic-curve.workspace = true hex.workspace = true rocksdb.workspace = true -rs_merkle.workspace = true -sha2.workspace = true -monotree.workspace = true -[dependencies.secp256k1-zkp] -workspace = true -features = ["std", "rand-std", "rand", "serde", "global-context"] +[dependencies.common] +path = "../common" diff --git a/storage/src/lib.rs b/storage/src/lib.rs index 184c897..fd0b585 100644 --- a/storage/src/lib.rs +++ b/storage/src/lib.rs @@ -1,27 +1,15 @@ use std::{path::Path, sync::Arc}; -use block::Block; +use common::block::Block; use error::DbError; use log::warn; -use merkle_tree_public::TreeHashType; use rocksdb::{ BoundColumnFamily, ColumnFamilyDescriptor, DBWithThreadMode, MultiThreaded, Options, }; use sc_db_utils::{produce_blob_from_fit_vec, DataBlob, DataBlobChangeVariant}; -pub mod block; -pub mod commitment; -pub mod commitments_sparse_merkle_tree; pub mod error; -pub mod merkle_tree_public; -pub mod nullifier; -pub mod nullifier_sparse_merkle_tree; pub mod sc_db_utils; -pub mod transaction; -pub mod utxo_commitment; - -///Account id on blockchain -pub type AccountId = TreeHashType; ///Maximal size of stored blocks in base /// diff --git a/utxo/Cargo.toml b/utxo/Cargo.toml index cfee505..9b99cf9 100644 --- a/utxo/Cargo.toml +++ b/utxo/Cargo.toml @@ -13,5 +13,5 @@ monotree.workspace = true sha2.workspace = true hex.workspace = true -[dependencies.storage] -path = "../storage" +[dependencies.common] +path = "../common" diff --git a/utxo/src/utxo_core.rs b/utxo/src/utxo_core.rs index c2e0fce..a4777b3 100644 --- a/utxo/src/utxo_core.rs +++ b/utxo/src/utxo_core.rs @@ -1,8 +1,8 @@ use anyhow::Result; +use common::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId}; use log::info; use serde::{Deserialize, Serialize}; use sha2::{digest::FixedOutput, Digest}; -use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId}; ///Raw asset data pub type Asset = Vec; @@ -87,7 +87,6 @@ impl UTXO { #[cfg(test)] mod tests { use super::*; - use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId}; #[derive(Serialize, Deserialize, PartialEq, Debug)] struct TestAsset { diff --git a/utxo/src/utxo_tree.rs b/utxo/src/utxo_tree.rs index f711e64..3c0c603 100644 --- a/utxo/src/utxo_tree.rs +++ b/utxo/src/utxo_tree.rs @@ -1,9 +1,9 @@ use std::collections::HashMap; +use common::merkle_tree_public::TreeHashType; use monotree::database::MemoryDB; use monotree::hasher::Blake3; use monotree::{Hasher, Monotree, Proof}; -use storage::merkle_tree_public::TreeHashType; use crate::utxo_core::UTXO; @@ -75,9 +75,10 @@ impl Default for UTXOSparseMerkleTree { #[cfg(test)] mod tests { + use common::AccountId; + use super::*; use crate::utxo_core::{UTXOPayload, UTXO}; - use storage::{merkle_tree_public::TreeHashType, AccountId}; fn sample_utxo_payload() -> UTXOPayload { UTXOPayload { diff --git a/zkvm/Cargo.toml b/zkvm/Cargo.toml index 5f127e4..f384a56 100644 --- a/zkvm/Cargo.toml +++ b/zkvm/Cargo.toml @@ -17,9 +17,6 @@ test-methods = { path = "test_methods" } [dependencies.accounts] path = "../accounts" -[dependencies.storage] -path = "../storage" - [dependencies.utxo] path = "../utxo"