style: code style
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
use std::{collections::HashMap, fs, fs::File};
|
use std::collections::HashMap;
|
||||||
use rust_util::XResult;
|
|
||||||
use serde::{Serialize, Deserialize};
|
use serde::{Serialize, Deserialize};
|
||||||
|
use rust_util::XResult;
|
||||||
use crate::tx::Transaction;
|
use crate::tx::Transaction;
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
@@ -21,7 +21,6 @@ impl CreditContract {
|
|||||||
admin: tx.sender.clone(),
|
admin: tx.sender.clone(),
|
||||||
credit: HashMap::new(),
|
credit: HashMap::new(),
|
||||||
};
|
};
|
||||||
save_credit_contract(&c, false)?;
|
|
||||||
Ok(c)
|
Ok(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +39,6 @@ impl CreditContract {
|
|||||||
Some(cr) => *cr += credit,
|
Some(cr) => *cr += credit,
|
||||||
}
|
}
|
||||||
self.issue_amount += credit;
|
self.issue_amount += credit;
|
||||||
save_credit_contract(self, true)?;
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +60,6 @@ impl CreditContract {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
save_credit_contract(self, true)?;
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,22 +74,3 @@ impl CreditContract {
|
|||||||
&self.credit
|
&self.credit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ========================================================================= //
|
|
||||||
pub fn load_credit_contract(name: &str) -> XResult<CreditContract> {
|
|
||||||
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(())
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use serde::{Serialize, Deserialize};
|
use serde::{Serialize, Deserialize};
|
||||||
use rust_util::XResult;
|
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};
|
use crate::tx::{Transaction, TransactionBody};
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
@@ -49,17 +50,20 @@ impl ContractEngineCredit {
|
|||||||
match action {
|
match action {
|
||||||
"create" => {
|
"create" => {
|
||||||
let params: CreditContractCreateParameters = serde_json::from_str(&tx_body.parameters)?;
|
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" => {
|
"issue" => {
|
||||||
let params: CreditContractIssueParameters = serde_json::from_str(&tx_body.parameters)?;
|
let params: CreditContractIssueParameters = serde_json::from_str(&tx_body.parameters)?;
|
||||||
let mut c = load_credit_contract(¶ms.name)?;
|
let mut c = load_credit_contract(¶ms.name)?;
|
||||||
c.issue(tx, ¶ms.receiver, params.credit)?;
|
c.issue(tx, ¶ms.receiver, params.credit)?;
|
||||||
|
save_credit_contract(&c, true)?;
|
||||||
},
|
},
|
||||||
"transfer" => {
|
"transfer" => {
|
||||||
let params: CreditContractTransferParameters = serde_json::from_str(&tx_body.parameters)?;
|
let params: CreditContractTransferParameters = serde_json::from_str(&tx_body.parameters)?;
|
||||||
let mut c =load_credit_contract(¶ms.name)?;
|
let mut c =load_credit_contract(¶ms.name)?;
|
||||||
c.transfer(tx, ¶ms.receiver, params.credit)?;
|
c.transfer(tx, ¶ms.receiver, params.credit)?;
|
||||||
|
save_credit_contract(&c, true)?;
|
||||||
},
|
},
|
||||||
"query" => {
|
"query" => {
|
||||||
let params: CreditContractQueryParameters = serde_json::from_str(&tx_body.parameters)?;
|
let params: CreditContractQueryParameters = serde_json::from_str(&tx_body.parameters)?;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
mod util;
|
mod util;
|
||||||
mod tx;
|
mod tx;
|
||||||
mod credit;
|
mod credit;
|
||||||
|
mod credit_util;
|
||||||
mod engine;
|
mod engine;
|
||||||
mod engine_plugin_credit;
|
mod engine_plugin_credit;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user