From 4f94dd25950880b72591883e9f9b19d291701e87 Mon Sep 17 00:00:00 2001 From: Rostyslav Tyshko Date: Mon, 2 Dec 2024 00:55:11 +0100 Subject: [PATCH] modilfy utxo struct --- accounts/src/account_core/mod.rs | 4 +++- utxo/src/utxo_core.rs | 12 +++++++++++- utxo/src/utxo_tree.rs | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/accounts/src/account_core/mod.rs b/accounts/src/account_core/mod.rs index a04cc37..f6b0cd2 100644 --- a/accounts/src/account_core/mod.rs +++ b/accounts/src/account_core/mod.rs @@ -83,10 +83,12 @@ impl Account { self.balance = new_balance; } - pub fn add_asset(&mut self, asset: Asset) -> Result<()> { + pub fn add_asset(&mut self, asset: Asset, amount: u128, privacy_flag: bool) -> Result<()> { let payload_with_asset = UTXOPayload { owner: self.address, asset: serde_json::to_vec(&asset)?, + amount, + privacy_flag, }; let asset_utxo = UTXO::create_utxo_from_payload(payload_with_asset); diff --git a/utxo/src/utxo_core.rs b/utxo/src/utxo_core.rs index 834c4c1..44a3a5d 100644 --- a/utxo/src/utxo_core.rs +++ b/utxo/src/utxo_core.rs @@ -6,19 +6,25 @@ use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, Accoun ///Raw asset data pub type Asset = Vec; -#[derive(Debug, PartialEq, Eq, Clone)] +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] ///Container for raw utxo payload pub struct UTXO { pub hash: TreeHashType, pub owner: AccountId, pub nullifier: Option, pub asset: Asset, + // TODO: change to u256 + pub amount: u128, + pub privacy_flag: bool, } #[derive(Debug, Clone, Serialize)] pub struct UTXOPayload { pub owner: AccountId, pub asset: Asset, + // TODO: change to u256 + pub amount: u128, + pub privacy_flag: bool, } impl UTXO { @@ -36,6 +42,8 @@ impl UTXO { owner: payload_with_asset.owner, nullifier: None, asset: payload_with_asset.asset, + amount: payload_with_asset.amount, + privacy_flag: payload_with_asset.privacy_flag, } } @@ -85,6 +93,8 @@ mod tests { name: "Test".to_string(), }) .unwrap(), + amount: 10, + privacy_flag: false, } } diff --git a/utxo/src/utxo_tree.rs b/utxo/src/utxo_tree.rs index b391fc0..89df4f4 100644 --- a/utxo/src/utxo_tree.rs +++ b/utxo/src/utxo_tree.rs @@ -83,6 +83,8 @@ mod tests { UTXOPayload { owner: AccountId::default(), asset: vec![1, 2, 3], + amount: 10, + privacy_flag: false, } }