Skip to content

Commit 2e78e36

Browse files
committed
chored(build): improve dependencies
- reverse core -> ledger dep - remove ledger dep from p2p
1 parent 83114e6 commit 2e78e36

File tree

8 files changed

+69
-60
lines changed

8 files changed

+69
-60
lines changed

Cargo.lock

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ edition = "2021"
55
license = "Apache-2.0"
66

77
[dependencies]
8-
serde = "1.0.147"
8+
serde = { version = "1.0.147", features = ["rc"] }
99
slab = { version = "0.4.7", features = ["serde"] }
1010
tracing = { version = "0.1", features = ["std"] }
1111
sha2 = "0.10.6"
@@ -14,4 +14,3 @@ tokio = { version = "1.26", features = ["sync"] }
1414

1515
mina-hasher = { workspace = true }
1616
mina-p2p-messages = { workspace = true }
17-
ledger = { workspace = true }

core/src/snark/snark.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use std::sync::Arc;
22

3-
use ledger::scan_state::scan_state::transaction_snark::work::Work;
43
use mina_p2p_messages::binprot::{
54
self,
65
macros::{BinProtRead, BinProtWrite},
@@ -102,12 +101,3 @@ impl From<&Snark> for NetworkPoolSnarkPoolDiffVersionedStableV2AddSolvedWork1 {
102101
}
103102
}
104103

105-
impl From<&Snark> for Work {
106-
fn from(value: &Snark) -> Self {
107-
Self {
108-
prover: (&value.snarker).into(),
109-
fee: (&value.fee).into(),
110-
proofs: (&*value.proofs).into(),
111-
}
112-
}
113-
}

core/src/snark/snark_job_id.rs

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
use std::str::FromStr;
22

3-
use ledger::scan_state::scan_state::{
4-
transaction_snark::{OneOrTwo, Statement},
5-
AvailableJobMessage,
6-
};
73
use mina_p2p_messages::binprot::{
84
self,
95
macros::{BinProtRead, BinProtWrite},
@@ -110,39 +106,6 @@ impl<'de> Deserialize<'de> for LedgerHashTransition {
110106
}
111107
}
112108

113-
impl From<&OneOrTwo<AvailableJobMessage>> for SnarkJobId {
114-
fn from(value: &OneOrTwo<AvailableJobMessage>) -> Self {
115-
let (first, second) = match value {
116-
OneOrTwo::One(j) => (j, j),
117-
OneOrTwo::Two((j1, j2)) => (j1, j2),
118-
};
119-
120-
let source = match first {
121-
AvailableJobMessage::Base(base) => &base.statement.0.source,
122-
AvailableJobMessage::Merge { left, .. } => &left.0 .0.statement.source,
123-
};
124-
let target = match second {
125-
AvailableJobMessage::Base(base) => &base.statement.0.target,
126-
AvailableJobMessage::Merge { right, .. } => &right.0 .0.statement.target,
127-
};
128-
129-
(source, target).into()
130-
}
131-
}
132-
133-
impl From<&OneOrTwo<Statement<()>>> for SnarkJobId {
134-
fn from(value: &OneOrTwo<Statement<()>>) -> Self {
135-
let (source, target): (
136-
MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
137-
MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
138-
) = match value {
139-
OneOrTwo::One(stmt) => ((&stmt.source).into(), (&stmt.target).into()),
140-
OneOrTwo::Two((stmt1, stmt2)) => ((&stmt1.source).into(), (&stmt2.target).into()),
141-
};
142-
(&source, &target).into()
143-
}
144-
}
145-
146109
impl From<&TransactionSnarkWorkTStableV2Proofs> for SnarkJobId {
147110
fn from(value: &TransactionSnarkWorkTStableV2Proofs) -> Self {
148111
let (first, second) = match value {

ledger/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ crate-type = ["staticlib", "cdylib", "lib"]
1616
# https://stackoverflow.com/a/73023306
1717

1818
[dependencies]
19+
openmina-core = { path = "../core" }
1920
mina-hasher = { workspace = true }
2021
mina-signer = { workspace = true }
2122
mina-curves = { workspace = true }

ledger/src/scan_state/scan_state.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use mina_p2p_messages::{
1515
},
1616
};
1717
use mina_signer::CompressedPubKey;
18+
use openmina_core::snark::SnarkJobId;
1819
use sha2::Sha256;
1920

2021
use crate::{
@@ -529,6 +530,16 @@ pub mod transaction_snark {
529530

530531
pub type Checked = Work;
531532

533+
impl From<&openmina_core::snark::Snark> for Work {
534+
fn from(value: &openmina_core::snark::Snark) -> Self {
535+
Self {
536+
prover: (&value.snarker).into(),
537+
fee: (&value.fee).into(),
538+
proofs: (&*value.proofs).into(),
539+
}
540+
}
541+
}
542+
532543
impl Work {
533544
pub fn statement(&self) -> Statement {
534545
self.proofs.map(|p| {
@@ -2604,3 +2615,36 @@ impl TransactionsOrdered<Arc<TransactionWithWitness>> {
26042615
pub enum Pass {
26052616
FirstPassLedgerHash(Fp),
26062617
}
2618+
2619+
impl From<&OneOrTwo<AvailableJobMessage>> for SnarkJobId {
2620+
fn from(value: &OneOrTwo<AvailableJobMessage>) -> Self {
2621+
let (first, second) = match value {
2622+
OneOrTwo::One(j) => (j, j),
2623+
OneOrTwo::Two((j1, j2)) => (j1, j2),
2624+
};
2625+
2626+
let source = match first {
2627+
AvailableJobMessage::Base(base) => &base.statement.0.source,
2628+
AvailableJobMessage::Merge { left, .. } => &left.0 .0.statement.source,
2629+
};
2630+
let target = match second {
2631+
AvailableJobMessage::Base(base) => &base.statement.0.target,
2632+
AvailableJobMessage::Merge { right, .. } => &right.0 .0.statement.target,
2633+
};
2634+
2635+
(source, target).into()
2636+
}
2637+
}
2638+
2639+
impl From<&OneOrTwo<Statement<()>>> for SnarkJobId {
2640+
fn from(value: &OneOrTwo<Statement<()>>) -> Self {
2641+
let (source, target): (
2642+
mina_p2p_messages::v2::MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
2643+
mina_p2p_messages::v2::MinaStateBlockchainStateValueStableV2LedgerProofStatementSource,
2644+
) = match value {
2645+
OneOrTwo::One(stmt) => ((&stmt.source).into(), (&stmt.target).into()),
2646+
OneOrTwo::Two((stmt1, stmt2)) => ((&stmt1.source).into(), (&stmt2.target).into()),
2647+
};
2648+
(&source, &target).into()
2649+
}
2650+
}

p2p/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,8 @@ reqwest = { version = "0.11.22" }
2929

3030
redux = { git = "https://github.com/openmina/redux-rs.git", branch="feat/global-time", features = ["serde"] }
3131
mina-p2p-messages = { workspace = true }
32-
ledger = { workspace = true }
3332

3433
openmina-core = { path = "../core" }
35-
snark = { path = "../snark" }
3634

3735
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
3836
tokio = { version = "1.26", features = ["rt"] }

p2p/src/channels/rpc/mod.rs

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ use std::{sync::Arc, time::Duration};
1414

1515
use binprot_derive::{BinProtRead, BinProtWrite};
1616
use mina_p2p_messages::v2::{
17-
LedgerHash, MinaBasePendingCoinbaseStableV2, MinaBaseStateBodyHashStableV1,
18-
MinaLedgerSyncLedgerAnswerStableV2, MinaLedgerSyncLedgerQueryStableV1,
19-
MinaStateProtocolStateValueStableV2, StateHash, TransactionSnarkScanStateStableV2,
17+
LedgerHash, MerkleAddressBinableArgStableV1, MinaBasePendingCoinbaseStableV2,
18+
MinaBaseStateBodyHashStableV1, MinaLedgerSyncLedgerAnswerStableV2,
19+
MinaLedgerSyncLedgerQueryStableV1, MinaStateProtocolStateValueStableV2, StateHash,
20+
TransactionSnarkScanStateStableV2,
2021
};
2122
use openmina_core::{
2223
block::ArcBlock,
@@ -108,15 +109,30 @@ impl Default for P2pRpcRequest {
108109
}
109110
}
110111

112+
fn to_binary(bytes: &[u8]) -> String {
113+
bytes
114+
.into_iter()
115+
.copied()
116+
.map(|byte| {
117+
(0..8)
118+
.into_iter()
119+
.map(|b| byte & (1 << (7 - b)) != 0)
120+
.map(|b| if b { '1' } else { '0' })
121+
.collect::<String>()
122+
})
123+
.collect()
124+
}
125+
111126
impl std::fmt::Display for P2pRpcRequest {
112127
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
113128
write!(f, "{:?}", self.kind())?;
114129
match self {
115130
Self::BestTipWithProof => Ok(()),
116131
Self::LedgerQuery(ledger_hash, query) => {
117-
let addr_to_str = |addr| {
118-
let addr = ledger::Address::from(addr);
119-
format!("depth: {}, addr: {}", addr.length(), addr.to_string())
132+
let addr_to_str = |addr: &MerkleAddressBinableArgStableV1| {
133+
let depth = &addr.0 .0;
134+
let bits = to_binary(&addr.1[..(*depth as usize)]);
135+
format!("depth: {depth}, addr: {bits}")
120136
};
121137

122138
match query {

0 commit comments

Comments
 (0)