This commit is contained in:
Rostyslav Tyshko 2025-02-07 15:17:55 -05:00
parent bfb79e38d6
commit 818f58e2f9
2 changed files with 32 additions and 36 deletions

View File

@ -474,7 +474,9 @@ impl NodeCore {
.viewing_secret_key .viewing_secret_key
.to_bytes() .to_bytes()
.to_vec(), .to_vec(),
).map_err(|err| anyhow!("{:?}", err)).map_err(ExecutionFailureKind::write_error)?, )
.map_err(|err| anyhow!("{:?}", err))
.map_err(ExecutionFailureKind::write_error)?,
generator_blinding_factor: Tweak::new(&mut thread_rng()), generator_blinding_factor: Tweak::new(&mut thread_rng()),
}; };
@ -780,10 +782,7 @@ impl NodeCore {
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap(); let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
acc.utxo_tree acc.utxo_tree.get_item(new_utxo_hash)?.unwrap().clone()
.get_item(new_utxo_hash)?
.unwrap()
.clone()
}; };
new_utxo.log(); new_utxo.log();
@ -960,10 +959,7 @@ impl NodeCore {
let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap(); let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap();
acc.log(); acc.log();
acc.utxo_tree acc.utxo_tree.get_item(new_utxo_hash)?.unwrap().clone()
.get_item(new_utxo_hash)?
.unwrap()
.clone()
}; };
new_utxo.log(); new_utxo.log();
info!( info!(
@ -1003,10 +999,7 @@ impl NodeCore {
let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap(); let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap();
acc.log(); acc.log();
acc.utxo_tree acc.utxo_tree.get_item(new_utxo_hash)?.unwrap().clone()
.get_item(new_utxo_hash)?
.unwrap()
.clone()
}; };
new_utxo.log(); new_utxo.log();
info!( info!(
@ -1051,11 +1044,7 @@ impl NodeCore {
let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap(); let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap();
acc.log(); acc.log();
let new_utxo = acc let new_utxo = acc.utxo_tree.get_item(new_utxo_hash)?.unwrap().clone();
.utxo_tree
.get_item(new_utxo_hash)?
.unwrap()
.clone();
new_utxo.log(); new_utxo.log();
info!( info!(
@ -1075,11 +1064,7 @@ impl NodeCore {
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap(); let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
acc.log(); acc.log();
let new_utxo = acc let new_utxo = acc.utxo_tree.get_item(new_utxo_hash)?.unwrap().clone();
.utxo_tree
.get_item(new_utxo_hash)?
.unwrap()
.clone();
new_utxo.log(); new_utxo.log();
info!( info!(

View File

@ -56,7 +56,10 @@ pub fn prove_mint_utxo(
let digest: UTXOPayload = receipt.journal.decode()?; let digest: UTXOPayload = receipt.journal.decode()?;
Ok((UTXO::create_utxo_from_payload(digest).map_err(ExecutionFailureKind::write_error)?, receipt)) Ok((
UTXO::create_utxo_from_payload(digest).map_err(ExecutionFailureKind::write_error)?,
receipt,
))
} }
pub fn prove_send_utxo( pub fn prove_send_utxo(
@ -96,7 +99,8 @@ pub fn prove_send_utxo(
digest digest
.into_iter() .into_iter()
.map(|(payload, addr)| (UTXO::create_utxo_from_payload(payload).map(|sel| (sel, addr)))) .map(|(payload, addr)| (UTXO::create_utxo_from_payload(payload).map(|sel| (sel, addr))))
.collect::<anyhow::Result<Vec<(UTXO, [u8; 32])>>>().map_err(ExecutionFailureKind::write_error)?, .collect::<anyhow::Result<Vec<(UTXO, [u8; 32])>>>()
.map_err(ExecutionFailureKind::write_error)?,
receipt, receipt,
)) ))
} }
@ -144,12 +148,14 @@ pub fn prove_send_utxo_multiple_assets_one_receiver(
.0 .0
.into_iter() .into_iter()
.map(|payload| UTXO::create_utxo_from_payload(payload)) .map(|payload| UTXO::create_utxo_from_payload(payload))
.collect::<anyhow::Result<Vec<UTXO>>>().map_err(ExecutionFailureKind::write_error)?, .collect::<anyhow::Result<Vec<UTXO>>>()
.map_err(ExecutionFailureKind::write_error)?,
digest digest
.1 .1
.into_iter() .into_iter()
.map(|payload| UTXO::create_utxo_from_payload(payload)) .map(|payload| UTXO::create_utxo_from_payload(payload))
.collect::<anyhow::Result<Vec<UTXO>>>().map_err(ExecutionFailureKind::write_error)?, .collect::<anyhow::Result<Vec<UTXO>>>()
.map_err(ExecutionFailureKind::write_error)?,
receipt, receipt,
)) ))
} }
@ -170,7 +176,8 @@ pub fn prove_send_utxo_shielded(
asset: vec![], asset: vec![],
amount, amount,
privacy_flag: true, privacy_flag: true,
}).map_err(ExecutionFailureKind::write_error)?; })
.map_err(ExecutionFailureKind::write_error)?;
let utxo_payload = temp_utxo_to_spend.into_payload(); let utxo_payload = temp_utxo_to_spend.into_payload();
let mut builder = ExecutorEnv::builder(); let mut builder = ExecutorEnv::builder();
@ -199,7 +206,8 @@ pub fn prove_send_utxo_shielded(
digest digest
.into_iter() .into_iter()
.map(|(payload, addr)| (UTXO::create_utxo_from_payload(payload).map(|sel| (sel, addr)))) .map(|(payload, addr)| (UTXO::create_utxo_from_payload(payload).map(|sel| (sel, addr))))
.collect::<anyhow::Result<Vec<(UTXO, [u8; 32])>>>().map_err(ExecutionFailureKind::write_error)?, .collect::<anyhow::Result<Vec<(UTXO, [u8; 32])>>>()
.map_err(ExecutionFailureKind::write_error)?,
receipt, receipt,
)) ))
} }
@ -280,7 +288,8 @@ pub fn prove_mint_utxo_multiple_assets(
digest digest
.into_iter() .into_iter()
.map(UTXO::create_utxo_from_payload) .map(UTXO::create_utxo_from_payload)
.collect::<anyhow::Result<Vec<UTXO>>>().map_err(ExecutionFailureKind::write_error)?, .collect::<anyhow::Result<Vec<UTXO>>>()
.map_err(ExecutionFailureKind::write_error)?,
receipt, receipt,
)) ))
} }
@ -319,8 +328,7 @@ pub fn execute_send_utxo(
let receipt = executor.execute(env, test_methods::SEND_UTXO_ELF)?; let receipt = executor.execute(env, test_methods::SEND_UTXO_ELF)?;
let digest: (UTXOPayload, Vec<(UTXOPayload, AccountAddress)>) = let digest: (UTXOPayload, Vec<(UTXOPayload, AccountAddress)>) = receipt.journal.decode()?;
receipt.journal.decode()?;
Ok(( Ok((
UTXO::create_utxo_from_payload(digest.0)?, UTXO::create_utxo_from_payload(digest.0)?,
@ -328,11 +336,15 @@ pub fn execute_send_utxo(
.1 .1
.into_iter() .into_iter()
.map(|(payload, addr)| (UTXO::create_utxo_from_payload(payload).map(|sel| (sel, addr)))) .map(|(payload, addr)| (UTXO::create_utxo_from_payload(payload).map(|sel| (sel, addr))))
.collect::<anyhow::Result<Vec<(UTXO, [u8; 32])>>>().map_err(ExecutionFailureKind::write_error)?, .collect::<anyhow::Result<Vec<(UTXO, [u8; 32])>>>()
.map_err(ExecutionFailureKind::write_error)?,
)) ))
} }
pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> anyhow::Result<(u64, Receipt)> { pub fn prove<T: serde::ser::Serialize>(
input_vec: Vec<T>,
elf: &[u8],
) -> anyhow::Result<(u64, Receipt)> {
let mut builder = ExecutorEnv::builder(); let mut builder = ExecutorEnv::builder();
for input in input_vec { for input in input_vec {
@ -372,8 +384,7 @@ pub fn execute<T: serde::ser::Serialize + for<'de> serde::Deserialize<'de>>(
} }
pub fn verify(receipt: Receipt, image_id: impl Into<Digest>) -> anyhow::Result<()> { pub fn verify(receipt: Receipt, image_id: impl Into<Digest>) -> anyhow::Result<()> {
Ok(receipt Ok(receipt.verify(image_id)?)
.verify(image_id)?)
} }
#[cfg(test)] #[cfg(test)]