diff --git a/common/src/transaction.rs b/common/src/transaction.rs index efe55ba..0c43521 100644 --- a/common/src/transaction.rs +++ b/common/src/transaction.rs @@ -66,60 +66,6 @@ impl Transaction { } } -#[derive(Debug, Serialize, Deserialize, Clone)] -///General transaction object -pub struct TransactionPayload { - pub tx_kind: TxKind, - ///Tx input data (public part) - pub execution_input: Vec, - ///Tx output data (public_part) - pub execution_output: Vec, - ///Tx input utxo commitments - pub utxo_commitments_spent_hashes: Vec, - ///Tx output utxo commitments - pub utxo_commitments_created_hashes: Vec, - ///Tx output nullifiers - pub nullifier_created_hashes: Vec, - ///Execution proof (private part) - pub execution_proof_private: String, - ///Encoded blobs of data - pub encoded_data: Vec<(CipherText, Vec, Tag)>, - ///Transaction senders ephemeral pub key - pub ephemeral_pub_key: Vec, - ///Public (Pedersen) commitment - pub commitment: Vec, - ///tweak - pub tweak: Tweak, - ///secret_r - pub secret_r: [u8; 32], - ///Hex-encoded address of a smart contract account called - pub sc_addr: String, - ///Recorded changes in state of smart contract - /// - /// First value represents vector of changes, second is new length of a state - pub state_changes: (serde_json::Value, usize), -} - -impl From for Transaction { - fn from(value: TransactionPayload) -> Self { - Self { - tx_kind: value.tx_kind, - execution_input: value.execution_input, - execution_output: value.execution_output, - utxo_commitments_spent_hashes: value.utxo_commitments_spent_hashes, - utxo_commitments_created_hashes: value.utxo_commitments_created_hashes, - nullifier_created_hashes: value.nullifier_created_hashes, - execution_proof_private: value.execution_proof_private, - encoded_data: value.encoded_data, - ephemeral_pub_key: value.ephemeral_pub_key, - commitment: value.commitment, - tweak: value.tweak, - secret_r: value.secret_r, - sc_addr: value.sc_addr, - state_changes: value.state_changes, - } - } -} #[derive(Debug, Serialize, Deserialize)] pub struct MintMoneyPublicTx { diff --git a/node_core/src/lib.rs b/node_core/src/lib.rs index 49f1285..73775eb 100644 --- a/node_core/src/lib.rs +++ b/node_core/src/lib.rs @@ -8,7 +8,7 @@ use common::ExecutionFailureKind; use accounts::account_core::{Account, AccountAddress}; use anyhow::Result; use chain_storage::NodeChainStore; -use common::transaction::{Transaction, TransactionPayload, TxKind}; +use common::transaction::{Transaction, TxKind}; use config::NodeConfig; use log::info; use sc_core::proofs_circuits::{ @@ -246,7 +246,7 @@ impl NodeCore { let (tweak, secret_r, commitment) = pedersen_commitment_vec(vec_public_info); Ok(( - TransactionPayload { + Transaction { tx_kind: TxKind::Private, execution_input: vec![], execution_output: vec![], @@ -343,7 +343,7 @@ impl NodeCore { let (tweak, secret_r, commitment) = pedersen_commitment_vec(vec_public_info); Ok(( - TransactionPayload { + Transaction { tx_kind: TxKind::Private, execution_input: vec![], execution_output: vec![], @@ -459,7 +459,7 @@ impl NodeCore { let (tweak, secret_r, commitment) = pedersen_commitment_vec(vec_public_info); Ok(( - TransactionPayload { + Transaction { tx_kind: TxKind::Private, execution_input: vec![], execution_output: vec![], @@ -604,7 +604,7 @@ impl NodeCore { let (tweak, secret_r, commitment) = pedersen_commitment_vec(vec_public_info); Ok(( - TransactionPayload { + Transaction { tx_kind: TxKind::Private, execution_input: vec![], execution_output: vec![], @@ -727,7 +727,7 @@ impl NodeCore { let (tweak, secret_r, commitment) = pedersen_commitment_vec(vec_public_info); Ok(( - TransactionPayload { + Transaction { tx_kind: TxKind::Shielded, execution_input: serde_json::to_vec(&ActionData::SendMoneyShieldedTx( SendMoneyShieldedTx { @@ -820,7 +820,7 @@ impl NodeCore { let (tweak, secret_r, commitment) = pedersen_commitment_vec(vec_public_info); - Ok(TransactionPayload { + Ok(Transaction { tx_kind: TxKind::Deshielded, execution_input: serde_json::to_vec(&ActionData::SendMoneyDeshieldedTx( SendMoneyDeshieldedTx { @@ -1459,7 +1459,7 @@ impl NodeCore { let (tweak, secret_r, commitment) = pedersen_commitment_vec(vec_public_info); Ok(( - TransactionPayload { + Transaction { tx_kind: TxKind::Shielded, execution_input: vec![], execution_output: serde_json::to_vec(&publication).unwrap(), diff --git a/sc_core/src/transaction_payloads_tools.rs b/sc_core/src/transaction_payloads_tools.rs index 24ad8f2..4846be1 100644 --- a/sc_core/src/transaction_payloads_tools.rs +++ b/sc_core/src/transaction_payloads_tools.rs @@ -1,6 +1,6 @@ use accounts::account_core::Account; use anyhow::Result; -use common::transaction::{TransactionPayload, TxKind}; +use common::transaction::{Transaction, TxKind}; use rand::thread_rng; use risc0_zkvm::Receipt; use secp256k1_zkp::{CommitmentSecrets, PedersenCommitment, Tweak}; @@ -15,8 +15,8 @@ pub fn create_public_transaction_payload( secret_r: [u8; 32], sc_addr: String, state_changes: (serde_json::Value, usize), -) -> TransactionPayload { - TransactionPayload { +) -> Transaction { + Transaction { tx_kind: TxKind::Public, execution_input, execution_output: vec![],