From 2ce8cafdbd298304be47143b13ea97688ffc5681 Mon Sep 17 00:00:00 2001 From: Theo Date: Wed, 6 Sep 2023 14:21:12 -0700 Subject: [PATCH] Calculate refund on user side only if no value provided (strictly undefined) --- package.json | 2 +- src/feeOracle.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 49814e1..4c7ed06 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tornado/tornado-oracles", - "version": "3.2.0", + "version": "3.2.1", "description": "Oracles for Tornado-specific transactions & actions", "main": "./lib/index.js", "types": "./lib/index.d.ts", diff --git a/src/feeOracle.ts b/src/feeOracle.ts index 554ab0c..5b15fdc 100644 --- a/src/feeOracle.ts +++ b/src/feeOracle.ts @@ -225,7 +225,7 @@ export abstract class TornadoFeeOracle implements ITornadoFeeOracle { * @param {AvailableTokenSymbols | Uppercase} params.currency Currency symbol * @param {number | HexadecimalStringifiedNumber } params.amount Withdrawal amount in selected currency * @param {number | HexadecimalStringifiedNumber } params.decimals Token (currency) decimals - * @param {BigNumberish} [params.refundInEth=0] Refund in ETH, if withdrawed other tokens on Mainnet (not ETH). Can not be provided, if user-side calculation + * @param {BigNumberish} [params.refundInEth] Refund in ETH, if withdrawed other tokens on Mainnet (not ETH). Can not be provided, if user-side calculation * @param {BigNumberish} [params.tokenPriceInEth] If withdrawing other token on Mainnet or Goerli, need to provide token price in ETH (in WEI) * @param {number} [params.gasLimit] Predefined gas limit, if already calculated (no refetching) * @param {number} [params.gasPrice] Predefined gas price, if already calculated (no refetching) @@ -242,7 +242,7 @@ export abstract class TornadoFeeOracle implements ITornadoFeeOracle { currency, amount, decimals, - refundInEth = 0, + refundInEth, tokenPriceInEth, predefinedGasLimit, predefinedGasPrice, @@ -258,10 +258,10 @@ export abstract class TornadoFeeOracle implements ITornadoFeeOracle { return '0'; } - if (txType === 'user_withdrawal' && !refundInEth) + if (txType === 'user_withdrawal' && refundInEth === undefined) refundInEth = this.calculateRefundInETH(gasPrice, currency.toLowerCase() as InstanceTokenSymbol); - const feeInEth = BigNumber.from(gasCosts).add(refundInEth); + const feeInEth = BigNumber.from(gasCosts).add(refundInEth || 0); return convertETHToToken(feeInEth, decimals, tokenPriceInEth).add(relayerFee).toHexString(); }