aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-util/src/amounts.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src/amounts.ts')
-rw-r--r--packages/taler-util/src/amounts.ts11
1 files changed, 11 insertions, 0 deletions
diff --git a/packages/taler-util/src/amounts.ts b/packages/taler-util/src/amounts.ts
index 505a68f46..98cd4ad62 100644
--- a/packages/taler-util/src/amounts.ts
+++ b/packages/taler-util/src/amounts.ts
@@ -129,6 +129,17 @@ export class Amounts {
return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));
}
+ static sumOrZero(currency: string, amounts: AmountLike[]): Result {
+ if (amounts.length <= 0) {
+ return {
+ amount: Amounts.getZero(currency),
+ saturated: false,
+ };
+ }
+ const jsonAmounts = amounts.map((x) => Amounts.jsonifyAmount(x));
+ return Amounts.add(jsonAmounts[0], ...jsonAmounts.slice(1));
+ }
+
/**
* Add two amounts. Return the result and whether
* the addition overflowed. The overflow is always handled