From 0094ce2e5c3bce33be4a8b00ec8dffa629f670bb Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Fri, 1 Jan 2021 23:31:18 +0800 Subject: [PATCH] style: code style --- __crypto/simple_contract/src/credit.rs | 26 ++----------------- .../src/engine_plugin_credit.rs | 8 ++++-- __crypto/simple_contract/src/main.rs | 1 + 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/__crypto/simple_contract/src/credit.rs b/__crypto/simple_contract/src/credit.rs index 9de6016..70c42ba 100644 --- a/__crypto/simple_contract/src/credit.rs +++ b/__crypto/simple_contract/src/credit.rs @@ -1,6 +1,6 @@ -use std::{collections::HashMap, fs, fs::File}; -use rust_util::XResult; +use std::collections::HashMap; use serde::{Serialize, Deserialize}; +use rust_util::XResult; use crate::tx::Transaction; #[derive(Debug, Serialize, Deserialize)] @@ -21,7 +21,6 @@ impl CreditContract { admin: tx.sender.clone(), credit: HashMap::new(), }; - save_credit_contract(&c, false)?; Ok(c) } @@ -40,7 +39,6 @@ impl CreditContract { Some(cr) => *cr += credit, } self.issue_amount += credit; - save_credit_contract(self, true)?; Ok(()) } @@ -62,7 +60,6 @@ impl CreditContract { } }, } - save_credit_contract(self, true)?; Ok(()) } @@ -77,22 +74,3 @@ impl CreditContract { &self.credit } } - - -// ========================================================================= // -pub fn load_credit_contract(name: &str) -> XResult { - let json = fs::read_to_string(name)?; - serde_json::from_str(&json).map_err(|e| e.into()) -} - -fn save_credit_contract(c: &CreditContract, overwrite: bool) -> XResult<()> { - let name = &c.name; - if !overwrite { - if let Ok(_) = File::open(name) { - return simple_error!("File exists: {}", name); - } - } - information!("Write file: {}", name); - fs::write(name, serde_json::to_string(c)?.as_bytes())?; - Ok(()) -} diff --git a/__crypto/simple_contract/src/engine_plugin_credit.rs b/__crypto/simple_contract/src/engine_plugin_credit.rs index 76ab22a..bf826a9 100644 --- a/__crypto/simple_contract/src/engine_plugin_credit.rs +++ b/__crypto/simple_contract/src/engine_plugin_credit.rs @@ -1,6 +1,7 @@ use serde::{Serialize, Deserialize}; use rust_util::XResult; -use crate::credit::{CreditContract, load_credit_contract}; +use crate::credit::CreditContract; +use crate::credit_util::{save_credit_contract, load_credit_contract}; use crate::tx::{Transaction, TransactionBody}; #[derive(Debug, Serialize, Deserialize)] @@ -49,17 +50,20 @@ impl ContractEngineCredit { match action { "create" => { let params: CreditContractCreateParameters = serde_json::from_str(&tx_body.parameters)?; - CreditContract::new(tx, ¶ms.name, params.credit_limit)?; + let c = CreditContract::new(tx, ¶ms.name, params.credit_limit)?; + save_credit_contract(&c, false)?; }, "issue" => { let params: CreditContractIssueParameters = serde_json::from_str(&tx_body.parameters)?; let mut c = load_credit_contract(¶ms.name)?; c.issue(tx, ¶ms.receiver, params.credit)?; + save_credit_contract(&c, true)?; }, "transfer" => { let params: CreditContractTransferParameters = serde_json::from_str(&tx_body.parameters)?; let mut c =load_credit_contract(¶ms.name)?; c.transfer(tx, ¶ms.receiver, params.credit)?; + save_credit_contract(&c, true)?; }, "query" => { let params: CreditContractQueryParameters = serde_json::from_str(&tx_body.parameters)?; diff --git a/__crypto/simple_contract/src/main.rs b/__crypto/simple_contract/src/main.rs index d422674..5572317 100644 --- a/__crypto/simple_contract/src/main.rs +++ b/__crypto/simple_contract/src/main.rs @@ -3,6 +3,7 @@ mod util; mod tx; mod credit; +mod credit_util; mod engine; mod engine_plugin_credit;