From eb053692e85af63e907d3ef5839fe849900f334d Mon Sep 17 00:00:00 2001 From: Shriya Tyagi Date: Wed, 14 Feb 2024 23:29:59 +0400 Subject: [PATCH 1/5] feat: fix payback in spark and aave v3 --- contracts/mainnet/connectors/aave/v3/main.sol | 22 ++++++++++++++---- contracts/mainnet/connectors/spark/main.sol | 23 +++++++++++++++---- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/contracts/mainnet/connectors/aave/v3/main.sol b/contracts/mainnet/connectors/aave/v3/main.sol index 91422a6e..afcf8a6b 100644 --- a/contracts/mainnet/connectors/aave/v3/main.sol +++ b/contracts/mainnet/connectors/aave/v3/main.sol @@ -263,7 +263,13 @@ abstract contract AaveResolver is Events, Helpers { TokenInterface tokenContract = TokenInterface(_token); - _amt = _amt == uint256(-1) ? getPaybackBalance(_token, rateMode) : _amt; + if (_amt == uint256(-1)) { + uint256 _amtDSA = isEth + ? address(this).balance + : tokenContract.balanceOf(address(this)); + uint256 _amtDebt = getPaybackBalance(_token, rateMode); + _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); @@ -351,9 +357,17 @@ abstract contract AaveResolver is Events, Helpers { TokenInterface tokenContract = TokenInterface(_token); - _amt = _amt == uint256(-1) - ? getOnBehalfOfPaybackBalance(_token, rateMode, onBehalfOf) - : _amt; + if (_amt == uint256(-1)) { + uint256 _amtDSA = isEth + ? address(this).balance + : tokenContract.balanceOf(address(this)); + uint256 _amtDebt = getOnBehalfOfPaybackBalance( + _token, + rateMode, + onBehalfOf + ); + _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); diff --git a/contracts/mainnet/connectors/spark/main.sol b/contracts/mainnet/connectors/spark/main.sol index 6295641d..7422a8b3 100644 --- a/contracts/mainnet/connectors/spark/main.sol +++ b/contracts/mainnet/connectors/spark/main.sol @@ -262,7 +262,14 @@ abstract contract SparkConnector is Events, Helpers { address _token = isEth ? wethAddr : token; TokenInterface tokenContract = TokenInterface(_token); - _amt = _amt == uint256(-1) ? getPaybackBalance(_token, rateMode) : _amt; + + if (_amt == uint256(-1)) { + uint256 _amtDSA = isEth + ? address(this).balance + : tokenContract.balanceOf(address(this)); + uint256 _amtDebt = getPaybackBalance(_token, rateMode); + _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); @@ -350,9 +357,17 @@ abstract contract SparkConnector is Events, Helpers { TokenInterface tokenContract = TokenInterface(_token); - _amt = _amt == uint256(-1) - ? getOnBehalfOfPaybackBalance(_token, rateMode, onBehalfOf) - : _amt; + if (_amt == uint256(-1)) { + uint256 _amtDSA = isEth + ? address(this).balance + : tokenContract.balanceOf(address(this)); + uint256 _amtDebt = getOnBehalfOfPaybackBalance( + _token, + rateMode, + onBehalfOf + ); + _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); From 94ac69910979d47e862716e0bf3584ec3a91ac11 Mon Sep 17 00:00:00 2001 From: Shriya Tyagi <47134275+shriyatyagii@users.noreply.github.com> Date: Thu, 15 Feb 2024 04:53:54 +0530 Subject: [PATCH 2/5] Update contracts/mainnet/connectors/aave/v3/main.sol Co-authored-by: Thrilok kumar --- contracts/mainnet/connectors/aave/v3/main.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/aave/v3/main.sol b/contracts/mainnet/connectors/aave/v3/main.sol index afcf8a6b..9975c5ab 100644 --- a/contracts/mainnet/connectors/aave/v3/main.sol +++ b/contracts/mainnet/connectors/aave/v3/main.sol @@ -366,7 +366,7 @@ abstract contract AaveResolver is Events, Helpers { rateMode, onBehalfOf ); - _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + _amt = _amtDSA > _amtDebt ? _amtDebt : _amtDSA; } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); From 79d7a4aaa832e6b75682d34057c195d5cf4de93c Mon Sep 17 00:00:00 2001 From: Shriya Tyagi <47134275+shriyatyagii@users.noreply.github.com> Date: Thu, 15 Feb 2024 04:54:03 +0530 Subject: [PATCH 3/5] Update contracts/mainnet/connectors/spark/main.sol Co-authored-by: Thrilok kumar --- contracts/mainnet/connectors/spark/main.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/spark/main.sol b/contracts/mainnet/connectors/spark/main.sol index 7422a8b3..91bd52e1 100644 --- a/contracts/mainnet/connectors/spark/main.sol +++ b/contracts/mainnet/connectors/spark/main.sol @@ -366,7 +366,7 @@ abstract contract SparkConnector is Events, Helpers { rateMode, onBehalfOf ); - _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + _amt = amtDSA > _amtDebt ? _amtDebt : _amtDSA; } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); From 749e78a335b01ebd6efbd8fe0239a2c8a76e2d1c Mon Sep 17 00:00:00 2001 From: Shriya Tyagi Date: Thu, 15 Feb 2024 03:26:32 +0400 Subject: [PATCH 4/5] feat: minor fix --- contracts/mainnet/connectors/aave/v3/main.sol | 4 ++-- contracts/mainnet/connectors/spark/main.sol | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/mainnet/connectors/aave/v3/main.sol b/contracts/mainnet/connectors/aave/v3/main.sol index 9975c5ab..34ca4d75 100644 --- a/contracts/mainnet/connectors/aave/v3/main.sol +++ b/contracts/mainnet/connectors/aave/v3/main.sol @@ -268,7 +268,7 @@ abstract contract AaveResolver is Events, Helpers { ? address(this).balance : tokenContract.balanceOf(address(this)); uint256 _amtDebt = getPaybackBalance(_token, rateMode); - _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + _amt = _amtDSA > _amtDebt ? _amtDebt : _amtDSA; } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); @@ -531,5 +531,5 @@ abstract contract AaveResolver is Events, Helpers { } contract ConnectV2AaveV3 is AaveResolver { - string public constant name = "AaveV3-v1.1"; + string public constant name = "AaveV3-v1.2"; } diff --git a/contracts/mainnet/connectors/spark/main.sol b/contracts/mainnet/connectors/spark/main.sol index 91bd52e1..035df7cb 100644 --- a/contracts/mainnet/connectors/spark/main.sol +++ b/contracts/mainnet/connectors/spark/main.sol @@ -268,7 +268,7 @@ abstract contract SparkConnector is Events, Helpers { ? address(this).balance : tokenContract.balanceOf(address(this)); uint256 _amtDebt = getPaybackBalance(_token, rateMode); - _amt = _amtDSA <= _amtDebt ? _amtDSA : _amtDebt; + _amt = _amtDSA > _amtDebt ? _amtDebt : _amtDSA; } if (isEth) convertEthToWeth(isEth, tokenContract, _amt); @@ -526,5 +526,5 @@ abstract contract SparkConnector is Events, Helpers { } contract ConnectV2Spark is SparkConnector { - string public constant name = "Spark-v1.0"; + string public constant name = "Spark-v1.1"; } From ece247dbdf76e69a83a9c32f6b8573ebc88da9ec Mon Sep 17 00:00:00 2001 From: Shriya Tyagi Date: Thu, 15 Feb 2024 03:40:48 +0400 Subject: [PATCH 5/5] feat: minor fix --- contracts/mainnet/connectors/spark/main.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/mainnet/connectors/spark/main.sol b/contracts/mainnet/connectors/spark/main.sol index 035df7cb..cd61ba3a 100644 --- a/contracts/mainnet/connectors/spark/main.sol +++ b/contracts/mainnet/connectors/spark/main.sol @@ -366,7 +366,7 @@ abstract contract SparkConnector is Events, Helpers { rateMode, onBehalfOf ); - _amt = amtDSA > _amtDebt ? _amtDebt : _amtDSA; + _amt = _amtDSA > _amtDebt ? _amtDebt : _amtDSA; } if (isEth) convertEthToWeth(isEth, tokenContract, _amt);