commit e9c7a7907d5588da15b0faebfaeddb667872e639
parent f3855206f93b91d89941dc091b2c013bdff3b0c6
Author: Antoine A <>
Date: Tue, 10 Dec 2024 13:07:27 +0100
update utils
Diffstat:
7 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -308,7 +308,7 @@ dependencies = [
"serde",
"serde_json",
"serde_repr",
- "thiserror 2.0.4",
+ "thiserror 2.0.6",
]
[[package]]
@@ -337,9 +337,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
-version = "1.2.2"
+version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc"
+checksum = "27f657647bcff5394bf56c7317665bbf790a137a50eaaa5c6bfbb9e27a518f2d"
dependencies = [
"shlex",
]
@@ -352,9 +352,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
-version = "0.4.38"
+version = "0.4.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825"
dependencies = [
"android-tzdata",
"iana-time-zone",
@@ -472,7 +472,7 @@ dependencies = [
"serde_with",
"sqlx",
"taler-common",
- "thiserror 2.0.4",
+ "thiserror 2.0.6",
"uri-pack",
"url",
"zeroize",
@@ -862,7 +862,7 @@ dependencies = [
"serde",
"serde_json",
"serde_repr",
- "thiserror 2.0.4",
+ "thiserror 2.0.6",
]
[[package]]
@@ -918,9 +918,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
[[package]]
name = "fastrand"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4"
+checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "fixed-hash"
@@ -1540,9 +1540,9 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]]
name = "js-sys"
-version = "0.3.74"
+version = "0.3.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705"
+checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7"
dependencies = [
"once_cell",
"wasm-bindgen",
@@ -1559,9 +1559,9 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.167"
+version = "0.2.168"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc"
+checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d"
[[package]]
name = "libdeflate-sys"
@@ -2266,15 +2266,15 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
[[package]]
name = "rustix"
-version = "0.38.41"
+version = "0.38.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6"
+checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85"
dependencies = [
"bitflags",
"errno",
"libc",
"linux-raw-sys",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -2869,7 +2869,7 @@ dependencies = [
[[package]]
name = "taler-api"
version = "0.1.0"
-source = "git+https://git.taler.net/taler-rust.git/#0ff83d96b82649f06ee6c3a48090c4f9c646d088"
+source = "git+https://git.taler.net/taler-rust.git/#90d4608cf2f4a73cf13cb252e8892a27fa090e62"
dependencies = [
"axum",
"dashmap",
@@ -2890,7 +2890,7 @@ dependencies = [
[[package]]
name = "taler-common"
version = "0.1.0"
-source = "git+https://git.taler.net/taler-rust.git/#0ff83d96b82649f06ee6c3a48090c4f9c646d088"
+source = "git+https://git.taler.net/taler-rust.git/#90d4608cf2f4a73cf13cb252e8892a27fa090e62"
dependencies = [
"base32",
"fastrand",
@@ -2899,7 +2899,7 @@ dependencies = [
"serde_json",
"serde_with",
"sqlx",
- "thiserror 2.0.4",
+ "thiserror 2.0.6",
"url",
]
@@ -2936,11 +2936,11 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "2.0.4"
+version = "2.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f49a1853cf82743e3b7950f77e0f4d622ca36cf4317cba00c767838bac8d490"
+checksum = "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47"
dependencies = [
- "thiserror-impl 2.0.4",
+ "thiserror-impl 2.0.6",
]
[[package]]
@@ -2956,9 +2956,9 @@ dependencies = [
[[package]]
name = "thiserror-impl"
-version = "2.0.4"
+version = "2.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8381894bb3efe0c4acac3ded651301ceee58a15d47c2e34885ed1908ad667061"
+checksum = "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312"
dependencies = [
"proc-macro2",
"quote",
@@ -3354,7 +3354,7 @@ dependencies = [
"quickcheck",
"quickcheck_macros",
"serde_json",
- "thiserror 2.0.4",
+ "thiserror 2.0.6",
"url",
]
@@ -3436,9 +3436,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
[[package]]
name = "wasm-bindgen"
-version = "0.2.97"
+version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c"
+checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396"
dependencies = [
"cfg-if",
"once_cell",
@@ -3447,13 +3447,12 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.97"
+version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd"
+checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79"
dependencies = [
"bumpalo",
"log",
- "once_cell",
"proc-macro2",
"quote",
"syn 2.0.90",
@@ -3462,9 +3461,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.97"
+version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051"
+checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -3472,9 +3471,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.97"
+version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d"
+checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
dependencies = [
"proc-macro2",
"quote",
@@ -3485,15 +3484,15 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.97"
+version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49"
+checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6"
[[package]]
name = "web-sys"
-version = "0.3.74"
+version = "0.3.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c"
+checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -3730,7 +3729,7 @@ dependencies = [
"sqlx",
"taler-api",
"taler-common",
- "thiserror 2.0.4",
+ "thiserror 2.0.6",
"time",
"tokio",
]
diff --git a/btc-wire/src/loops/worker.rs b/btc-wire/src/loops/worker.rs
@@ -335,7 +335,7 @@ fn sync_chain_incoming_confirmed(
let credit_addr = full.details[0].address.clone().unwrap().assume_checked();
let amount = btc_to_taler(&full.amount, state.currency);
let nb = db.execute("INSERT INTO tx_in (received, amount, reserve_pub, debit_acc, credit_acc) VALUES ($1, ($2, $3)::taler_amount, $4, $5, $6) ON CONFLICT (reserve_pub) DO NOTHING ", &[
- &((full.time * 1000000) as i64), &(amount.decimal.value as i64), &(amount.decimal.fraction as i32), &reserve_pub.as_slice(), &btc_payto_url(&debit_addr).as_ref(), &btc_payto_url(&credit_addr).as_ref()
+ &((full.time * 1000000) as i64), &(amount.decimal.val as i64), &(amount.decimal.frac as i32), &reserve_pub.as_slice(), &btc_payto_url(&debit_addr).as_ref(), &btc_payto_url(&credit_addr).as_ref()
])?;
if nb > 0 {
info!(
@@ -439,7 +439,7 @@ fn sync_chain_debit(
let debit_addr = sender_address(rpc, full)?;
let nb = db.execute(
"INSERT INTO tx_out (created, amount, wtid, debit_acc, credit_acc, exchange_url, status, txid, request_uid) VALUES ($1, ($2, $3)::taler_amount, $4, $5, $6, $7, $8, $9, $10) ON CONFLICT (wtid) DO NOTHING",
- &[&((full.time*1000000) as i64), &(amount.decimal.value as i64), &(amount.decimal.fraction as i32), &wtid.as_slice(), &btc_payto_url(&debit_addr).as_ref(), &btc_payto_url(&credit_addr).as_ref(), &state.base_url.as_ref(), &(DebitStatus::Sent as i16), &id.as_byte_array().as_slice(), &None::<&[u8]>],
+ &[&((full.time*1000000) as i64), &(amount.decimal.val as i64), &(amount.decimal.frac as i32), &wtid.as_slice(), &btc_payto_url(&debit_addr).as_ref(), &btc_payto_url(&credit_addr).as_ref(), &state.base_url.as_ref(), &(DebitStatus::Sent as i16), &id.as_byte_array().as_slice(), &None::<&[u8]>],
)?;
if nb > 0 {
warn!(
diff --git a/btc-wire/src/taler_utils.rs b/btc-wire/src/taler_utils.rs
@@ -16,9 +16,9 @@
//! Utils function to convert taler API types to bitcoin API types
use bitcoin::{Address, Amount as BtcAmount, SignedAmount};
-use common::currency::CurrencyBtc;
use common::taler_common::amount::Amount;
use common::url::Url;
+use common::{currency::CurrencyBtc, taler_common::amount::FRAC_BASE};
use std::str::FromStr;
/// Generate a payto uri from a btc address
@@ -60,6 +60,6 @@ pub fn taler_to_btc(amount: &Amount, currency: CurrencyBtc) -> Result<BtcAmount,
));
}
- let sat = amount.decimal.value * 100_000_000 + amount.decimal.fraction as u64;
+ let sat = amount.decimal.val * FRAC_BASE as u64 + amount.decimal.frac as u64;
Ok(BtcAmount::from_sat(sat))
}
diff --git a/eth-wire/src/loops/worker.rs b/eth-wire/src/loops/worker.rs
@@ -279,7 +279,7 @@ fn sync_chain_incoming_confirmed(
let amount = eth_to_taler(&tx.value, state.currency);
let credit_addr = tx.from.expect("Not coinbase");
let nb = db.execute("INSERT INTO tx_in (received, amount, reserve_pub, debit_acc, credit_acc) VALUES ($1, ($2, $3)::taler_amount, $4, $5, $6) ON CONFLICT (reserve_pub) DO NOTHING ", &[
- &Timestamp::now().as_sql_micros(), &(amount.decimal.value as i64), &(amount.decimal.fraction as i32), &reserve_pub.as_ref(), ð_payto_url(&credit_addr).as_ref(), &state.payto.as_ref()
+ &Timestamp::now().as_sql_micros(), &(amount.decimal.val as i64), &(amount.decimal.frac as i32), &reserve_pub.as_ref(), ð_payto_url(&credit_addr).as_ref(), &state.payto.as_ref()
])?;
if nb > 0 {
info!(
@@ -353,7 +353,7 @@ fn sync_chain_outgoing(tx: &SyncTransaction, db: &mut Client, state: &WireState)
// Else add to database
let nb = db.execute(
"INSERT INTO tx_out (created, amount, wtid, debit_acc, credit_acc, exchange_url, status, txid, request_uid) VALUES ($1, ($2, $3)::taler_amount, $4, $5, $6, $7, $8, $9, $10) ON CONFLICT (wtid) DO NOTHING",
- &[&Timestamp::now().as_sql_micros(), &(amount.decimal.value as i64), &(amount.decimal.fraction as i32), &wtid.as_ref(), ð_payto_url(&state.address).as_ref(), ð_payto_url(&credit_addr).as_ref(), &state.base_url.as_ref(), &(DebitStatus::Sent as i16), &tx.hash.as_ref(), &None::<&[u8]>],
+ &[&Timestamp::now().as_sql_micros(), &(amount.decimal.val as i64), &(amount.decimal.frac as i32), &wtid.as_ref(), ð_payto_url(&state.address).as_ref(), ð_payto_url(&credit_addr).as_ref(), &state.base_url.as_ref(), &(DebitStatus::Sent as i16), &tx.hash.as_ref(), &None::<&[u8]>],
)?;
if nb > 0 {
warn!(
diff --git a/eth-wire/src/taler_util.rs b/eth-wire/src/taler_util.rs
@@ -15,11 +15,15 @@
*/
use std::str::FromStr;
-use common::{currency::CurrencyEth, taler_common::amount::Amount, url::Url};
+use common::{
+ currency::CurrencyEth,
+ taler_common::amount::{Amount, FRAC_BASE},
+ url::Url,
+};
use ethereum_types::{Address, U256};
pub const WEI: u64 = 1_000_000_000_000_000_000;
-pub const TRUNC: u64 = 10_000_000_000;
+pub const TRUNC: u64 = WEI / FRAC_BASE as u64;
/// Generate a payto uri from an eth address
pub fn eth_payto_url(addr: &Address) -> Url {
@@ -53,7 +57,7 @@ pub fn eth_to_taler(amount: &U256, currency: CurrencyEth) -> Amount {
/// Transform a eth amount into a btc amount
pub fn taler_to_eth(amount: &Amount, currency: CurrencyEth) -> Result<U256, String> {
- if (&amount.currency).as_ref() != currency.to_str() {
+ if amount.currency.as_ref() != currency.to_str() {
return Err(format!(
"expected currency {} got {}",
currency.to_str(),
@@ -61,5 +65,5 @@ pub fn taler_to_eth(amount: &Amount, currency: CurrencyEth) -> Result<U256, Stri
));
}
- Ok(U256::from(amount.decimal.value) * WEI + U256::from(amount.decimal.fraction) * TRUNC)
+ Ok(U256::from(amount.decimal.val) * WEI + U256::from(amount.decimal.frac) * TRUNC)
}
diff --git a/instrumentation/src/gateway.rs b/instrumentation/src/gateway.rs
@@ -164,7 +164,7 @@ pub fn api(ctx: TestCtx) {
200
);
// Collision
- request.amount.decimal.fraction += 42;
+ request.amount.decimal.frac += 42;
assert_eq!(
http_code(ureq::post(&format!("{}transfer", ctx.gateway_url)).send_json(&request)),
409
diff --git a/wire-gateway/src/main.rs b/wire-gateway/src/main.rs
@@ -43,10 +43,7 @@ use std::{
time::Duration,
};
use taler_api::{
- db::{
- query_helper::{page, SqlQueryHelper},
- type_helper::SqlTypeHelper,
- },
+ db::{page, BindHelper, TypeHelper},
error::{failure, failure_status, ApiResult},
wire_gateway_api, WireGatewayImpl,
};