aboutsummaryrefslogtreecommitdiff
path: root/src/util/amount.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-01-13 18:16:01 +0100
committerChristian Grothoff <christian@grothoff.org>2020-01-13 18:16:01 +0100
commit4d6ef1da29e5c1bf4c2216d9fe0c14dcab0f04cd (patch)
tree8141db7f726c59d21a81fe37846970237a75d892 /src/util/amount.c
parent258ed8617bdcad9f1c278a5fdcff97bcf2e29e54 (diff)
downloadexchange-4d6ef1da29e5c1bf4c2216d9fe0c14dcab0f04cd.tar.xz
eliminate libtalerwire
Diffstat (limited to 'src/util/amount.c')
-rw-r--r--src/util/amount.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/util/amount.c b/src/util/amount.c
index 21410c769..edb9dc060 100644
--- a/src/util/amount.c
+++ b/src/util/amount.c
@@ -672,4 +672,25 @@ TALER_amount_divide (struct TALER_Amount *result,
}
+/**
+ * Round the amount to something that can be
+ * transferred on the wire.
+ *
+ * @param[in,out] amount amount to round down
+ * @return #GNUNET_OK on success, #GNUNET_NO if rounding was unnecessary,
+ * #GNUNET_SYSERR if the amount or currency was invalid
+ */
+int
+TALER_amount_round (struct TALER_Amount *amount)
+{
+ uint32_t delta;
+
+ delta = amount->fraction % (TALER_AMOUNT_FRAC_BASE / 100);
+ if (0 == delta)
+ return GNUNET_NO;
+ amount->fraction -= delta;
+ return GNUNET_OK;
+}
+
+
/* end of amount.c */