fix: refactor 1

This commit is contained in:
Oleksandr Pravdyvyi 2025-04-16 16:17:53 +03:00
parent 46361868ed
commit 8e4956891c
67 changed files with 151 additions and 168 deletions

41
Cargo.lock generated
View File

@ -8,6 +8,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"aes-gcm", "aes-gcm",
"anyhow", "anyhow",
"common",
"elliptic-curve", "elliptic-curve",
"env_logger", "env_logger",
"hex", "hex",
@ -17,7 +18,6 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"sha2 0.10.8", "sha2 0.10.8",
"storage",
"utxo", "utxo",
] ]
@ -1078,12 +1078,17 @@ name = "common"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"elliptic-curve",
"hex",
"log",
"monotree", "monotree",
"reqwest 0.11.27", "reqwest 0.11.27",
"risc0-zkvm", "risc0-zkvm",
"rpc_primitives", "rs_merkle",
"secp256k1-zkp",
"serde", "serde",
"serde_json", "serde_json",
"sha2 0.10.8",
"thiserror 1.0.69", "thiserror 1.0.69",
] ]
@ -1150,6 +1155,7 @@ name = "core_primitives"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common",
"elliptic-curve", "elliptic-curve",
"env_logger", "env_logger",
"log", "log",
@ -3110,7 +3116,6 @@ dependencies = [
"rand 0.8.5", "rand 0.8.5",
"reqwest 0.11.27", "reqwest 0.11.27",
"risc0-zkvm", "risc0-zkvm",
"rpc_primitives",
"sc_core", "sc_core",
"secp256k1-zkp", "secp256k1-zkp",
"serde", "serde",
@ -3141,7 +3146,6 @@ dependencies = [
"log", "log",
"networking", "networking",
"node_core", "node_core",
"rpc_primitives",
"serde", "serde",
"serde_json", "serde_json",
"storage", "storage",
@ -3160,13 +3164,13 @@ dependencies = [
"actix-web", "actix-web",
"anyhow", "anyhow",
"clap", "clap",
"common",
"consensus", "consensus",
"env_logger", "env_logger",
"log", "log",
"networking", "networking",
"node_core", "node_core",
"node_rpc", "node_rpc",
"rpc_primitives",
"serde", "serde",
"serde_json", "serde_json",
"storage", "storage",
@ -4368,19 +4372,6 @@ dependencies = [
"librocksdb-sys", "librocksdb-sys",
] ]
[[package]]
name = "rpc_primitives"
version = "0.1.0"
dependencies = [
"anyhow",
"env_logger",
"log",
"sequencer_core",
"serde",
"serde_json",
"storage",
]
[[package]] [[package]]
name = "rrs-lib" name = "rrs-lib"
version = "0.1.0" version = "0.1.0"
@ -4680,6 +4671,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"accounts", "accounts",
"anyhow", "anyhow",
"common",
"elliptic-curve", "elliptic-curve",
"env_logger", "env_logger",
"k256", "k256",
@ -4700,6 +4692,7 @@ dependencies = [
"actix-cors", "actix-cors",
"actix-web", "actix-web",
"anyhow", "anyhow",
"common",
"consensus", "consensus",
"env_logger", "env_logger",
"futures", "futures",
@ -4707,7 +4700,6 @@ dependencies = [
"log", "log",
"mempool", "mempool",
"networking", "networking",
"rpc_primitives",
"sequencer_core", "sequencer_core",
"serde", "serde",
"serde_json", "serde_json",
@ -4723,12 +4715,12 @@ dependencies = [
"actix-web", "actix-web",
"anyhow", "anyhow",
"clap", "clap",
"common",
"consensus", "consensus",
"env_logger", "env_logger",
"log", "log",
"mempool", "mempool",
"networking", "networking",
"rpc_primitives",
"sequencer_core", "sequencer_core",
"sequencer_rpc", "sequencer_rpc",
"serde", "serde",
@ -4969,18 +4961,14 @@ name = "storage"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"elliptic-curve", "common",
"env_logger", "env_logger",
"hex", "hex",
"log", "log",
"lru", "lru",
"monotree",
"rocksdb", "rocksdb",
"rs_merkle",
"secp256k1-zkp",
"serde", "serde",
"serde_json", "serde_json",
"sha2 0.10.8",
"thiserror 1.0.69", "thiserror 1.0.69",
] ]
@ -5522,6 +5510,7 @@ name = "utxo"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"common",
"env_logger", "env_logger",
"hex", "hex",
"log", "log",
@ -5529,7 +5518,6 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"sha2 0.10.8", "sha2 0.10.8",
"storage",
] ]
[[package]] [[package]]
@ -6238,7 +6226,6 @@ dependencies = [
"risc0-zkvm", "risc0-zkvm",
"serde", "serde",
"serde_json", "serde_json",
"storage",
"test-methods", "test-methods",
"thiserror 1.0.69", "thiserror 1.0.69",
"utxo", "utxo",

View File

@ -15,7 +15,6 @@ members = [
"zkvm", "zkvm",
"node_core", "node_core",
"sequencer_core", "sequencer_core",
"rpc_primitives",
"common", "common",
"sc_core", "sc_core",
"core_primitives", "core_primitives",

View File

@ -16,8 +16,8 @@ elliptic-curve.workspace = true
hex.workspace = true hex.workspace = true
aes-gcm.workspace = true aes-gcm.workspace = true
[dependencies.storage]
path = "../storage"
[dependencies.utxo] [dependencies.utxo]
path = "../utxo" path = "../utxo"
[dependencies.common]
path = "../common"

View File

@ -1,10 +1,10 @@
use std::collections::HashMap; use std::collections::HashMap;
use anyhow::Result; use anyhow::Result;
use common::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, transaction::Tag};
use k256::AffinePoint; use k256::AffinePoint;
use log::info; use log::info;
use serde::Serialize; use serde::Serialize;
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, transaction::Tag};
use utxo::{ use utxo::{
utxo_core::{UTXOPayload, UTXO}, utxo_core::{UTXOPayload, UTXO},
utxo_tree::UTXOSparseMerkleTree, utxo_tree::UTXOSparseMerkleTree,

View File

@ -1,10 +1,10 @@
use aes_gcm::{aead::Aead, Aes256Gcm, Key, KeyInit}; use aes_gcm::{aead::Aead, Aes256Gcm, Key, KeyInit};
use common::merkle_tree_public::TreeHashType;
use constants_types::{CipherText, Nonce}; use constants_types::{CipherText, Nonce};
use ephemeral_key_holder::EphemeralKeyHolder; use ephemeral_key_holder::EphemeralKeyHolder;
use k256::AffinePoint; use k256::AffinePoint;
use log::info; use log::info;
use secret_holders::{SeedHolder, TopSecretKeyHolder, UTXOSecretKeyHolder}; use secret_holders::{SeedHolder, TopSecretKeyHolder, UTXOSecretKeyHolder};
use storage::merkle_tree_public::TreeHashType;
use crate::account_core::PublicKey; use crate::account_core::PublicKey;

View File

@ -1,8 +1,8 @@
use common::merkle_tree_public::TreeHashType;
use elliptic_curve::PrimeField; use elliptic_curve::PrimeField;
use k256::{AffinePoint, FieldBytes, Scalar}; use k256::{AffinePoint, FieldBytes, Scalar};
use rand::{rngs::OsRng, RngCore}; use rand::{rngs::OsRng, RngCore};
use sha2::{digest::FixedOutput, Digest}; use sha2::{digest::FixedOutput, Digest};
use storage::merkle_tree_public::TreeHashType;
use super::constants_types::{NULLIFIER_SECRET_CONST, VIEVING_SECRET_CONST}; use super::constants_types::{NULLIFIER_SECRET_CONST, VIEVING_SECRET_CONST};

View File

@ -12,5 +12,12 @@ reqwest.workspace = true
monotree.workspace = true monotree.workspace = true
risc0-zkvm = { git = "https://github.com/risc0/risc0.git", branch = "release-2.0" } risc0-zkvm = { git = "https://github.com/risc0/risc0.git", branch = "release-2.0" }
[dependencies.rpc_primitives] rs_merkle.workspace = true
path = "../rpc_primitives" 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"]

View File

@ -1,6 +1,21 @@
use rpc_primitives::errors::RpcError; use merkle_tree_public::TreeHashType;
use serde::Deserialize; 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)] #[derive(Debug, Clone, Deserialize)]
pub struct SequencerRpcError { pub struct SequencerRpcError {
pub jsonrpc: String, pub jsonrpc: String,

View File

@ -1,7 +1,7 @@
use serde::de::DeserializeOwned; use serde::de::DeserializeOwned;
use serde_json::Value; use serde_json::Value;
use crate::errors::RpcParseError; use super::errors::RpcParseError;
pub trait RpcRequest: Sized { pub trait RpcRequest: Sized {
fn parse(value: Option<Value>) -> Result<Self, RpcParseError>; fn parse(value: Option<Value>) -> Result<Self, RpcParseError>;

View File

@ -1,11 +1,12 @@
use crate::errors::RpcParseError; use crate::block::Block;
use crate::parse_request; use crate::parse_request;
use crate::parser::parse_params; use crate::transaction::Transaction;
use crate::parser::RpcRequest;
use sequencer_core::transaction_mempool::TransactionMempool; use super::errors::RpcParseError;
use super::parser::parse_params;
use super::parser::RpcRequest;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::Value; use serde_json::Value;
use storage::block::Block;
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]
pub struct HelloRequest {} pub struct HelloRequest {}
@ -19,7 +20,7 @@ pub struct RegisterAccountRequest {
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]
pub struct SendTxRequest { pub struct SendTxRequest {
pub transaction: TransactionMempool, pub transaction: Transaction,
///Nullifier Root, UTXO Commitment Root, Pub Tx Root ///Nullifier Root, UTXO Commitment Root, Pub Tx Root
pub tx_roots: [[u8; 32]; 3], pub tx_roots: [[u8; 32]; 3],
} }

View File

@ -22,3 +22,6 @@ path = "../storage"
[dependencies.sequencer_core] [dependencies.sequencer_core]
path = "../sequencer_core" path = "../sequencer_core"
[dependencies.common]
path = "../common"

View File

@ -1,5 +1,5 @@
use common::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId};
///Raw asset data ///Raw asset data
pub type Asset = Vec<u8>; pub type Asset = Vec<u8>;

View File

@ -38,9 +38,6 @@ path = "../utxo"
[dependencies.zkvm] [dependencies.zkvm]
path = "../zkvm" path = "../zkvm"
[dependencies.rpc_primitives]
path = "../rpc_primitives"
[dependencies.common] [dependencies.common]
path = "../common" path = "../common"

View File

@ -1,14 +1,14 @@
use bincode; use bincode;
use common::{
commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree,
nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree,
};
use k256::Scalar; use k256::Scalar;
use monotree::hasher::Blake3; use monotree::hasher::Blake3;
use monotree::{Hasher, Monotree}; use monotree::{Hasher, Monotree};
use rand::thread_rng; use rand::thread_rng;
use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1}; use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1};
use sha2::{Digest, Sha256}; 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; use utxo::utxo_core::UTXO;
#[allow(unused)] #[allow(unused)]

View File

@ -1,12 +1,12 @@
use bincode; use bincode;
use common::{
commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree,
nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree,
};
use k256::Scalar; use k256::Scalar;
use monotree::hasher::Blake3; use monotree::hasher::Blake3;
use monotree::{Hasher, Monotree}; use monotree::{Hasher, Monotree};
use sha2::{Digest, Sha256}; 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; use utxo::utxo_core::UTXO;
fn hash(input: &[u8]) -> Vec<u8> { fn hash(input: &[u8]) -> Vec<u8> {

View File

@ -1,14 +1,14 @@
use bincode; use bincode;
use common::{
commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree,
nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree,
};
use k256::Scalar; use k256::Scalar;
use monotree::hasher::Blake3; use monotree::hasher::Blake3;
use monotree::{Hasher, Monotree}; use monotree::{Hasher, Monotree};
use rand::thread_rng; use rand::thread_rng;
use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1}; use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1};
use sha2::{Digest, Sha256}; 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; use utxo::utxo_core::UTXO;
#[allow(unused)] #[allow(unused)]

View File

@ -5,9 +5,9 @@ use std::sync::{
use common::ExecutionFailureKind; use common::ExecutionFailureKind;
use ::storage::transaction::{Transaction, TransactionPayload, TxKind};
use accounts::account_core::{Account, AccountAddress}; use accounts::account_core::{Account, AccountAddress};
use anyhow::Result; use anyhow::Result;
use common::transaction::{Transaction, TransactionPayload, TxKind};
use config::NodeConfig; use config::NodeConfig;
use executions::private_exec::{generate_commitments, generate_nullifiers}; use executions::private_exec::{generate_commitments, generate_nullifiers};
use log::info; use log::info;

View File

@ -1,5 +1,5 @@
use common::transaction::Transaction;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use storage::transaction::Transaction;
//Requests //Requests

View File

@ -1,15 +1,15 @@
use accounts::account_core::Account; use accounts::account_core::Account;
use anyhow::Result; use anyhow::Result;
use common::rpc_primitives::requests::{
GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse,
RegisterAccountRequest, RegisterAccountResponse,
};
use common::transaction::Transaction;
use common::{SequencerClientError, SequencerRpcError}; use common::{SequencerClientError, SequencerRpcError};
use json::{SendTxRequest, SendTxResponse, SequencerRpcRequest, SequencerRpcResponse}; use json::{SendTxRequest, SendTxResponse, SequencerRpcRequest, SequencerRpcResponse};
use k256::elliptic_curve::group::GroupEncoding; use k256::elliptic_curve::group::GroupEncoding;
use reqwest::Client; use reqwest::Client;
use rpc_primitives::requests::{
GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse,
RegisterAccountRequest, RegisterAccountResponse,
};
use serde_json::Value; use serde_json::Value;
use storage::transaction::Transaction;
use crate::config::NodeConfig; use crate::config::NodeConfig;

View File

@ -1,8 +1,9 @@
use std::path::Path; use std::path::Path;
use anyhow::{anyhow, Result}; use anyhow::{anyhow, Result};
use common::block::Block;
use storage::sc_db_utils::DataBlob; use storage::sc_db_utils::DataBlob;
use storage::{block::Block, RocksDBIO}; use storage::RocksDBIO;
pub struct NodeBlockStore { pub struct NodeBlockStore {
dbio: RocksDBIO, dbio: RocksDBIO,
@ -51,7 +52,7 @@ impl NodeBlockStore {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use storage::block::{Block, Data}; use common::block::Data;
use tempfile::tempdir; use tempfile::tempdir;
fn create_genesis_block() -> Block { fn create_genesis_block() -> Block {

View File

@ -6,15 +6,15 @@ use std::{
use accounts::account_core::{Account, AccountAddress}; use accounts::account_core::{Account, AccountAddress};
use anyhow::Result; use anyhow::Result;
use block_store::NodeBlockStore; use block_store::NodeBlockStore;
use k256::AffinePoint; use common::{
use public_context::PublicSCContext;
use storage::{
block::Block, block::Block,
merkle_tree_public::merkle_tree::{PublicTransactionMerkleTree, UTXOCommitmentsMerkleTree}, merkle_tree_public::merkle_tree::{PublicTransactionMerkleTree, UTXOCommitmentsMerkleTree},
nullifier::UTXONullifier, nullifier::UTXONullifier,
nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree,
utxo_commitment::UTXOCommitment, utxo_commitment::UTXOCommitment,
}; };
use k256::AffinePoint;
use public_context::PublicSCContext;
use utxo::utxo_core::UTXO; use utxo::utxo_core::UTXO;
use crate::ActionData; use crate::ActionData;

View File

@ -1,8 +1,8 @@
use std::collections::BTreeMap; use std::collections::BTreeMap;
use accounts::account_core::{AccountAddress, AccountPublicMask}; use accounts::account_core::{AccountAddress, AccountPublicMask};
use common::merkle_tree_public::TreeHashType;
use serde::{ser::SerializeStruct, Serialize}; use serde::{ser::SerializeStruct, Serialize};
use storage::merkle_tree_public::TreeHashType;
///Strucutre, representing context, given to a smart contract on a call ///Strucutre, representing context, given to a smart contract on a call
pub struct PublicSCContext { pub struct PublicSCContext {

View File

@ -41,8 +41,5 @@ path = "../zkvm"
[dependencies.node_core] [dependencies.node_core]
path = "../node_core" path = "../node_core"
[dependencies.rpc_primitives]
path = "../rpc_primitives"
[dependencies.common] [dependencies.common]
path = "../common" path = "../common"

View File

@ -4,11 +4,11 @@ pub mod types;
use std::sync::Arc; use std::sync::Arc;
use node_core::{config::NodeConfig, NodeCore}; use common::rpc_primitives::{
use rpc_primitives::{
errors::{RpcError, RpcErrorKind}, errors::{RpcError, RpcErrorKind},
RpcPollingConfig, RpcPollingConfig,
}; };
use node_core::{config::NodeConfig, NodeCore};
use serde::Serialize; use serde::Serialize;
use serde_json::Value; use serde_json::Value;

View File

@ -7,10 +7,10 @@ use futures::Future;
use futures::FutureExt; use futures::FutureExt;
use log::info; use log::info;
use common::rpc_primitives::message::Message;
use common::rpc_primitives::RpcConfig;
use node_core::config::NodeConfig; use node_core::config::NodeConfig;
use node_core::NodeCore; use node_core::NodeCore;
use rpc_primitives::message::Message;
use rpc_primitives::RpcConfig;
use tokio::sync::Mutex; use tokio::sync::Mutex;
use super::JsonHandler; use super::JsonHandler;

View File

@ -4,14 +4,14 @@ use actix_web::Error as HttpError;
use node_core::generate_commitments_helper; use node_core::generate_commitments_helper;
use serde_json::Value; use serde_json::Value;
use rpc_primitives::{ use common::rpc_primitives::{
errors::RpcError, errors::RpcError,
message::{Message, Request}, message::{Message, Request},
parser::RpcRequest, parser::RpcRequest,
}; };
use storage::transaction::ActionData; use common::transaction::ActionData;
use rpc_primitives::requests::{ use common::rpc_primitives::requests::{
GetBlockDataRequest, GetBlockDataResponse, GetLastBlockRequest, GetLastBlockResponse, GetBlockDataRequest, GetBlockDataResponse, GetLastBlockRequest, GetLastBlockResponse,
RegisterAccountRequest, RegisterAccountResponse, RegisterAccountRequest, RegisterAccountResponse,
}; };

View File

@ -1,7 +1,7 @@
use common::{ExecutionFailureKind, SequencerClientError}; use common::{ExecutionFailureKind, SequencerClientError};
use log::debug; use log::debug;
use rpc_primitives::errors::{RpcError, RpcParseError}; use common::rpc_primitives::errors::{RpcError, RpcParseError};
pub struct RpcErr(pub RpcError); pub struct RpcErr(pub RpcError);

View File

@ -1,10 +1,10 @@
use rpc_primitives::errors::RpcParseError; use common::parse_request;
use rpc_primitives::parse_request; use common::rpc_primitives::errors::RpcParseError;
use rpc_primitives::parser::parse_params; use common::rpc_primitives::parser::parse_params;
use rpc_primitives::parser::RpcRequest; use common::rpc_primitives::parser::RpcRequest;
use common::transaction::TxKind;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::Value; use serde_json::Value;
use storage::transaction::TxKind;
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]
pub struct ExecuteSubscenarioRequest { pub struct ExecuteSubscenarioRequest {

View File

@ -45,5 +45,5 @@ path = "../node_rpc"
[dependencies.node_core] [dependencies.node_core]
path = "../node_core" path = "../node_core"
[dependencies.rpc_primitives] [dependencies.common]
path = "../rpc_primitives" path = "../common"

View File

@ -2,12 +2,12 @@ use std::{path::PathBuf, sync::Arc};
use anyhow::Result; use anyhow::Result;
use clap::Parser; use clap::Parser;
use common::rpc_primitives::RpcConfig;
use consensus::ConsensusManager; use consensus::ConsensusManager;
use log::info; use log::info;
use networking::peer_manager::PeerManager; use networking::peer_manager::PeerManager;
use node_core::NodeCore; use node_core::NodeCore;
use node_rpc::new_http_server; use node_rpc::new_http_server;
use rpc_primitives::RpcConfig;
use tokio::sync::Mutex; use tokio::sync::Mutex;
pub mod config; pub mod config;

View File

@ -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"

View File

@ -1,14 +1,14 @@
use bincode; use bincode;
use common::{
commitment::Commitment, commitments_sparse_merkle_tree::CommitmentsSparseMerkleTree,
nullifier::UTXONullifier, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree,
};
use k256::Scalar; use k256::Scalar;
use monotree::hasher::Blake3; use monotree::hasher::Blake3;
use monotree::{Hasher, Monotree}; use monotree::{Hasher, Monotree};
use rand::{thread_rng, RngCore}; use rand::{thread_rng, RngCore};
use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1}; use secp256k1_zkp::{CommitmentSecrets, Generator, PedersenCommitment, Tag, Tweak, SECP256K1};
use sha2::{Digest, Sha256}; 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; use utxo::utxo_core::UTXO;
fn hash(input: &[u8]) -> Vec<u8> { fn hash(input: &[u8]) -> Vec<u8> {

View File

@ -1,9 +1,9 @@
use accounts::account_core::Account; use accounts::account_core::Account;
use anyhow::Result; use anyhow::Result;
use common::transaction::{TransactionPayload, TxKind};
use rand::thread_rng; use rand::thread_rng;
use risc0_zkvm::Receipt; use risc0_zkvm::Receipt;
use secp256k1_zkp::{CommitmentSecrets, PedersenCommitment, Tweak}; use secp256k1_zkp::{CommitmentSecrets, PedersenCommitment, Tweak};
use storage::transaction::{TransactionPayload, TxKind};
use utxo::utxo_core::UTXO; use utxo::utxo_core::UTXO;
use crate::proofs_circuits::{commit, generate_nullifiers, tag_random}; use crate::proofs_circuits::{commit, generate_nullifiers, tag_random};

View File

@ -1,5 +1,5 @@
use anyhow::Result; use anyhow::Result;
use storage::nullifier::UTXONullifier; use common::nullifier::UTXONullifier;
use utxo::utxo_core::{UTXOPayload, UTXO}; use utxo::utxo_core::{UTXOPayload, UTXO};
pub fn utxo_change_owner( pub fn utxo_change_owner(

View File

@ -22,6 +22,9 @@ path = "../mempool"
[dependencies.accounts] [dependencies.accounts]
path = "../accounts" path = "../accounts"
[dependencies.common]
path = "../common"
[dependencies.secp256k1-zkp] [dependencies.secp256k1-zkp]
workspace = true workspace = true
features = ["std", "rand-std", "rand", "serde", "global-context"] features = ["std", "rand-std", "rand", "serde", "global-context"]

View File

@ -1,21 +1,21 @@
use std::fmt::Display; use std::fmt::Display;
use anyhow::Result; use anyhow::Result;
use config::SequencerConfig; use common::{
use mempool::MemPool;
use sequecer_store::{accounts_store::AccountPublicData, SequecerChainStore};
use serde::{Deserialize, Serialize};
use storage::{
block::{Block, HashableBlockData}, block::{Block, HashableBlockData},
merkle_tree_public::TreeHashType, merkle_tree_public::TreeHashType,
nullifier::UTXONullifier, nullifier::UTXONullifier,
transaction::{Transaction, TxKind}, transaction::{Transaction, TxKind},
utxo_commitment::UTXOCommitment, utxo_commitment::UTXOCommitment,
}; };
use config::SequencerConfig;
use mempool::MemPool;
use sequencer_store::{accounts_store::AccountPublicData, SequecerChainStore};
use serde::{Deserialize, Serialize};
use transaction_mempool::TransactionMempool; use transaction_mempool::TransactionMempool;
pub mod config; pub mod config;
pub mod sequecer_store; pub mod sequencer_store;
pub mod transaction_mempool; pub mod transaction_mempool;
pub struct SequencerCore { pub struct SequencerCore {
@ -262,9 +262,9 @@ mod tests {
use super::*; use super::*;
use std::{fmt::format, path::PathBuf}; use std::{fmt::format, path::PathBuf};
use common::transaction::{Transaction, TxKind};
use rand::Rng; use rand::Rng;
use secp256k1_zkp::Tweak; use secp256k1_zkp::Tweak;
use storage::transaction::{Transaction, TxKind};
use transaction_mempool::TransactionMempool; use transaction_mempool::TransactionMempool;
fn setup_sequencer_config() -> SequencerConfig { fn setup_sequencer_config() -> SequencerConfig {

View File

@ -1,7 +1,8 @@
use std::path::Path; use std::path::Path;
use anyhow::Result; use anyhow::Result;
use storage::{block::Block, RocksDBIO}; use common::block::Block;
use storage::RocksDBIO;
pub struct SequecerBlockStore { pub struct SequecerBlockStore {
dbio: RocksDBIO, dbio: RocksDBIO,

View File

@ -2,12 +2,12 @@ use std::path::Path;
use accounts_store::SequencerAccountsStore; use accounts_store::SequencerAccountsStore;
use block_store::SequecerBlockStore; use block_store::SequecerBlockStore;
use rand::{rngs::OsRng, RngCore}; use common::{
use storage::{
block::{Block, HashableBlockData}, block::{Block, HashableBlockData},
merkle_tree_public::merkle_tree::{PublicTransactionMerkleTree, UTXOCommitmentsMerkleTree}, merkle_tree_public::merkle_tree::{PublicTransactionMerkleTree, UTXOCommitmentsMerkleTree},
nullifier_sparse_merkle_tree::NullifierSparseMerkleTree, nullifier_sparse_merkle_tree::NullifierSparseMerkleTree,
}; };
use rand::{rngs::OsRng, RngCore};
pub mod accounts_store; pub mod accounts_store;
pub mod block_store; pub mod block_store;

View File

@ -1,12 +1,18 @@
use common::{merkle_tree_public::TreeHashType, transaction::Transaction};
use mempool::mempoolitem::MemPoolItem; use mempool::mempoolitem::MemPoolItem;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use storage::{merkle_tree_public::TreeHashType, transaction::Transaction};
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct TransactionMempool { pub struct TransactionMempool {
pub tx: Transaction, pub tx: Transaction,
} }
impl From<Transaction> for TransactionMempool {
fn from(value: Transaction) -> Self {
Self { tx: value }
}
}
impl Serialize for TransactionMempool { impl Serialize for TransactionMempool {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where where

View File

@ -32,5 +32,5 @@ path = "../sequencer_core"
[dependencies.storage] [dependencies.storage]
path = "../storage" path = "../storage"
[dependencies.rpc_primitives] [dependencies.common]
path = "../rpc_primitives" path = "../common"

View File

@ -4,7 +4,7 @@ pub mod types;
use std::sync::Arc; use std::sync::Arc;
use rpc_primitives::{ use common::rpc_primitives::{
errors::{RpcError, RpcErrorKind}, errors::{RpcError, RpcErrorKind},
RpcPollingConfig, RpcPollingConfig,
}; };

View File

@ -7,8 +7,8 @@ use futures::Future;
use futures::FutureExt; use futures::FutureExt;
use log::info; use log::info;
use rpc_primitives::message::Message; use common::rpc_primitives::message::Message;
use rpc_primitives::RpcConfig; use common::rpc_primitives::RpcConfig;
use sequencer_core::SequencerCore; use sequencer_core::SequencerCore;
use tokio::sync::Mutex; use tokio::sync::Mutex;

View File

@ -1,14 +1,14 @@
use actix_web::Error as HttpError; 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 serde_json::Value;
use rpc_primitives::{ use common::rpc_primitives::{
errors::RpcError, errors::RpcError,
message::{Message, Request}, message::{Message, Request},
parser::RpcRequest, parser::RpcRequest,
}; };
use rpc_primitives::requests::{ use common::rpc_primitives::requests::{
GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse, GetBlockDataRequest, GetBlockDataResponse, GetGenesisIdRequest, GetGenesisIdResponse,
GetLastBlockRequest, GetLastBlockResponse, HelloRequest, HelloResponse, RegisterAccountRequest, GetLastBlockRequest, GetLastBlockResponse, HelloRequest, HelloResponse, RegisterAccountRequest,
RegisterAccountResponse, SendTxRequest, SendTxResponse, RegisterAccountResponse, SendTxRequest, SendTxResponse,
@ -70,7 +70,10 @@ impl JsonHandler {
{ {
let mut state = self.sequencer_state.lock().await; 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 { let helperstruct = SendTxResponse {

View File

@ -1,6 +1,6 @@
use log::debug; use log::debug;
use rpc_primitives::errors::{RpcError, RpcParseError}; use common::rpc_primitives::errors::{RpcError, RpcParseError};
use sequencer_core::TransactionMalformationErrorKind; use sequencer_core::TransactionMalformationErrorKind;
pub struct RpcErr(pub RpcError); pub struct RpcErr(pub RpcError);

View File

@ -34,5 +34,5 @@ path = "../sequencer_rpc"
[dependencies.sequencer_core] [dependencies.sequencer_core]
path = "../sequencer_core" path = "../sequencer_core"
[dependencies.rpc_primitives] [dependencies.common]
path = "../rpc_primitives" path = "../common"

View File

@ -2,8 +2,8 @@ use std::{path::PathBuf, sync::Arc};
use anyhow::Result; use anyhow::Result;
use clap::Parser; use clap::Parser;
use common::rpc_primitives::RpcConfig;
use log::info; use log::info;
use rpc_primitives::RpcConfig;
use sequencer_core::SequencerCore; use sequencer_core::SequencerCore;
use sequencer_rpc::new_http_server; use sequencer_rpc::new_http_server;
use tokio::sync::Mutex; use tokio::sync::Mutex;

View File

@ -11,14 +11,9 @@ log.workspace = true
serde.workspace = true serde.workspace = true
lru.workspace = true lru.workspace = true
thiserror.workspace = true thiserror.workspace = true
elliptic-curve.workspace = true
hex.workspace = true hex.workspace = true
rocksdb.workspace = true rocksdb.workspace = true
rs_merkle.workspace = true
sha2.workspace = true
monotree.workspace = true
[dependencies.secp256k1-zkp] [dependencies.common]
workspace = true path = "../common"
features = ["std", "rand-std", "rand", "serde", "global-context"]

View File

@ -1,27 +1,15 @@
use std::{path::Path, sync::Arc}; use std::{path::Path, sync::Arc};
use block::Block; use common::block::Block;
use error::DbError; use error::DbError;
use log::warn; use log::warn;
use merkle_tree_public::TreeHashType;
use rocksdb::{ use rocksdb::{
BoundColumnFamily, ColumnFamilyDescriptor, DBWithThreadMode, MultiThreaded, Options, BoundColumnFamily, ColumnFamilyDescriptor, DBWithThreadMode, MultiThreaded, Options,
}; };
use sc_db_utils::{produce_blob_from_fit_vec, DataBlob, DataBlobChangeVariant}; 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 error;
pub mod merkle_tree_public;
pub mod nullifier;
pub mod nullifier_sparse_merkle_tree;
pub mod sc_db_utils; 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 ///Maximal size of stored blocks in base
/// ///

View File

@ -13,5 +13,5 @@ monotree.workspace = true
sha2.workspace = true sha2.workspace = true
hex.workspace = true hex.workspace = true
[dependencies.storage] [dependencies.common]
path = "../storage" path = "../common"

View File

@ -1,8 +1,8 @@
use anyhow::Result; use anyhow::Result;
use common::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId};
use log::info; use log::info;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use sha2::{digest::FixedOutput, Digest}; use sha2::{digest::FixedOutput, Digest};
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId};
///Raw asset data ///Raw asset data
pub type Asset = Vec<u8>; pub type Asset = Vec<u8>;
@ -87,7 +87,6 @@ impl UTXO {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId};
#[derive(Serialize, Deserialize, PartialEq, Debug)] #[derive(Serialize, Deserialize, PartialEq, Debug)]
struct TestAsset { struct TestAsset {

View File

@ -1,9 +1,9 @@
use std::collections::HashMap; use std::collections::HashMap;
use common::merkle_tree_public::TreeHashType;
use monotree::database::MemoryDB; use monotree::database::MemoryDB;
use monotree::hasher::Blake3; use monotree::hasher::Blake3;
use monotree::{Hasher, Monotree, Proof}; use monotree::{Hasher, Monotree, Proof};
use storage::merkle_tree_public::TreeHashType;
use crate::utxo_core::UTXO; use crate::utxo_core::UTXO;
@ -75,9 +75,10 @@ impl Default for UTXOSparseMerkleTree {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use common::AccountId;
use super::*; use super::*;
use crate::utxo_core::{UTXOPayload, UTXO}; use crate::utxo_core::{UTXOPayload, UTXO};
use storage::{merkle_tree_public::TreeHashType, AccountId};
fn sample_utxo_payload() -> UTXOPayload { fn sample_utxo_payload() -> UTXOPayload {
UTXOPayload { UTXOPayload {

View File

@ -17,9 +17,6 @@ test-methods = { path = "test_methods" }
[dependencies.accounts] [dependencies.accounts]
path = "../accounts" path = "../accounts"
[dependencies.storage]
path = "../storage"
[dependencies.utxo] [dependencies.utxo]
path = "../utxo" path = "../utxo"