diff --git a/src/bin/darkfid.rs b/src/bin/darkfid.rs index 9704fc7ce..02db8d983 100644 --- a/src/bin/darkfid.rs +++ b/src/bin/darkfid.rs @@ -155,7 +155,7 @@ impl Darkfid { let mut data_vec: Vec = Vec::new(); if let Some(symbol) = self.drk_tokenlist.clone().symbol_from_id(id)? { - let decimals = decimals(&symbol, &self.sol_tokenlist)?; + let decimals = decimals(network, &symbol, &self.sol_tokenlist)?; for amount in balances.values() { let amount = encode_base10(amount.clone(), decimals); data_vec.push(amount); @@ -352,7 +352,7 @@ impl Darkfid { let amount = amount.as_str().unwrap(); - let decimals = match decimals(token, &self.sol_tokenlist) { + let decimals = match decimals(network, token, &self.sol_tokenlist) { Ok(d) => d, Err(e) => { return JsonResult::Err(jsonerr(InternalError, Some(e.to_string()), id)); @@ -402,10 +402,13 @@ impl Darkfid { let cashier_public: jubjub::SubgroupPoint = deserialize(&bs58::decode(cashier_public).into_vec()?)?; + let decimals: usize = 8; + let amount = decode_base10(&amount.to_string(), decimals, true)?; + self.client .lock() .await - .transfer(token_id.clone(), cashier_public, amount_in_apo) + .transfer(token_id.clone(), cashier_public, amount) .await?; Ok(()) @@ -468,20 +471,6 @@ impl Darkfid { } let amount = amount.unwrap(); - let decimals = match decimals(token, &self.sol_tokenlist) { - Ok(d) => d, - Err(e) => { - return JsonResult::Err(jsonerr(InternalError, Some(e.to_string()), id)); - } - }; - - let amount_in_apo = match decode_base10(&amount, decimals, true) { - Ok(a) => a, - Err(e) => { - return JsonResult::Err(jsonerr(InternalError, Some(e.to_string()), id)); - } - }; - let token_id: &jubjub::Fr; // get the id for the token @@ -495,10 +484,13 @@ impl Darkfid { let drk_address = bs58::decode(&address).into_vec()?; let drk_address: jubjub::SubgroupPoint = deserialize(&drk_address)?; + let decimals: usize = 8; + let amount = decode_base10(&amount, decimals, true)?; + self.client .lock() .await - .transfer(token_id.clone(), drk_address, amount_in_apo) + .transfer(token_id.clone(), drk_address, amount) .await?; Ok(())