mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 14:48:08 -05:00
made Asset type to handle drk cli inputs
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -3885,9 +3885,9 @@ checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sha2"
|
name = "sha2"
|
||||||
version = "0.9.6"
|
version = "0.9.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9204c41a1597a8c5af23c82d1c921cb01ec0a4c59e07a9c7306062829a3903f3"
|
checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"block-buffer 0.9.0",
|
"block-buffer 0.9.0",
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ zcash_proofs = "0.5.0"
|
|||||||
#bench-utils = { git = "https://github.com/scipr-lab/zexe", features = ["print-trace"]}
|
#bench-utils = { git = "https://github.com/scipr-lab/zexe", features = ["print-trace"]}
|
||||||
rand = "0.7.3"
|
rand = "0.7.3"
|
||||||
rand_core = "0.5.1"
|
rand_core = "0.5.1"
|
||||||
sha2 = "0.9.1"
|
sha2 = "0.9.8"
|
||||||
rand_xorshift = "0.2"
|
rand_xorshift = "0.2"
|
||||||
blake2s_simd = "0.5"
|
blake2s_simd = "0.5"
|
||||||
blake2b_simd = "0.5.11"
|
blake2b_simd = "0.5.11"
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
//use super::cli_config::DrkCliConfig;
|
//use super::cli_config::DrkCliConfig;
|
||||||
use crate::Result;
|
use crate::Result;
|
||||||
|
|
||||||
|
use blake2b_simd::Params;
|
||||||
use clap::{App, Arg};
|
use clap::{App, Arg};
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
|
use crate::serial;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
fn amount_f64(v: String) -> std::result::Result<(), String> {
|
fn amount_f64(v: String) -> std::result::Result<(), String> {
|
||||||
@@ -16,7 +18,7 @@ fn amount_f64(v: String) -> std::result::Result<(), String> {
|
|||||||
|
|
||||||
#[derive(Deserialize, Debug)]
|
#[derive(Deserialize, Debug)]
|
||||||
pub struct TransferParams {
|
pub struct TransferParams {
|
||||||
pub asset: String,
|
pub asset: Asset,
|
||||||
pub pub_key: String,
|
pub pub_key: String,
|
||||||
pub amount: f64,
|
pub amount: f64,
|
||||||
}
|
}
|
||||||
@@ -24,7 +26,7 @@ pub struct TransferParams {
|
|||||||
impl TransferParams {
|
impl TransferParams {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self {
|
Self {
|
||||||
asset: String::new(),
|
asset: Asset::new(),
|
||||||
pub_key: String::new(),
|
pub_key: String::new(),
|
||||||
amount: 0.0,
|
amount: 0.0,
|
||||||
}
|
}
|
||||||
@@ -32,20 +34,20 @@ impl TransferParams {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub struct Deposit {
|
pub struct Deposit {
|
||||||
pub asset: String,
|
pub asset: Asset,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Deposit {
|
impl Deposit {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self {
|
Self {
|
||||||
asset: String::new(),
|
asset: Asset::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Debug)]
|
#[derive(Deserialize, Debug)]
|
||||||
pub struct WithdrawParams {
|
pub struct WithdrawParams {
|
||||||
pub asset: String,
|
pub asset: Asset,
|
||||||
pub pub_key: String,
|
pub pub_key: String,
|
||||||
pub amount: f64,
|
pub amount: f64,
|
||||||
}
|
}
|
||||||
@@ -53,13 +55,36 @@ pub struct WithdrawParams {
|
|||||||
impl WithdrawParams {
|
impl WithdrawParams {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self {
|
Self {
|
||||||
asset: String::new(),
|
asset: Asset::new(),
|
||||||
pub_key: String::new(),
|
pub_key: String::new(),
|
||||||
amount: 0.0,
|
amount: 0.0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize, Debug)]
|
||||||
|
pub struct Asset {
|
||||||
|
pub ticker: String,
|
||||||
|
pub id: Vec<u8>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Asset {
|
||||||
|
pub fn new() -> Self {
|
||||||
|
Self {
|
||||||
|
ticker: String::new(),
|
||||||
|
id: Vec::new(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn id_hash(&self, ticker: &String) -> Result<Vec<u8>> {
|
||||||
|
let mut hasher = Params::new().hash_length(64).to_state();
|
||||||
|
hasher.update(ticker.as_bytes());
|
||||||
|
let result = hasher.finalize();
|
||||||
|
let scalar = jubjub::Fr::from_bytes_wide(result.as_array());
|
||||||
|
let id = serial::serialize(&scalar);
|
||||||
|
Ok(id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub struct DrkCli {
|
pub struct DrkCli {
|
||||||
pub verbose: bool,
|
pub verbose: bool,
|
||||||
pub wallet: bool,
|
pub wallet: bool,
|
||||||
@@ -218,7 +243,8 @@ impl DrkCli {
|
|||||||
Some(deposit_sub) => {
|
Some(deposit_sub) => {
|
||||||
let mut dep = Deposit::new();
|
let mut dep = Deposit::new();
|
||||||
if let Some(asset) = deposit_sub.value_of("asset") {
|
if let Some(asset) = deposit_sub.value_of("asset") {
|
||||||
dep.asset = asset.to_string();
|
dep.asset.ticker = asset.to_string();
|
||||||
|
dep.asset.id = dep.asset.id_hash(&dep.asset.ticker)?;
|
||||||
}
|
}
|
||||||
deposit = Some(dep);
|
deposit = Some(dep);
|
||||||
}
|
}
|
||||||
@@ -230,7 +256,8 @@ impl DrkCli {
|
|||||||
Some(transfer_sub) => {
|
Some(transfer_sub) => {
|
||||||
let mut trn = TransferParams::new();
|
let mut trn = TransferParams::new();
|
||||||
if let Some(asset) = transfer_sub.value_of("asset") {
|
if let Some(asset) = transfer_sub.value_of("asset") {
|
||||||
trn.asset = asset.to_string();
|
trn.asset.ticker = asset.to_string();
|
||||||
|
trn.asset.id = trn.asset.id_hash(&trn.asset.ticker)?;
|
||||||
}
|
}
|
||||||
if let Some(address) = transfer_sub.value_of("address") {
|
if let Some(address) = transfer_sub.value_of("address") {
|
||||||
trn.pub_key = address.to_string();
|
trn.pub_key = address.to_string();
|
||||||
@@ -248,7 +275,8 @@ impl DrkCli {
|
|||||||
Some(withdraw_sub) => {
|
Some(withdraw_sub) => {
|
||||||
let mut wdraw = WithdrawParams::new();
|
let mut wdraw = WithdrawParams::new();
|
||||||
if let Some(asset) = withdraw_sub.value_of("asset") {
|
if let Some(asset) = withdraw_sub.value_of("asset") {
|
||||||
wdraw.asset = asset.to_string();
|
wdraw.asset.ticker = asset.to_string();
|
||||||
|
wdraw.asset.id = wdraw.asset.id_hash(&wdraw.asset.ticker)?;
|
||||||
}
|
}
|
||||||
if let Some(address) = withdraw_sub.value_of("address") {
|
if let Some(address) = withdraw_sub.value_of("address") {
|
||||||
wdraw.pub_key = address.to_string();
|
wdraw.pub_key = address.to_string();
|
||||||
|
|||||||
Reference in New Issue
Block a user