function setPool(Pool calldata p) public returns (bytes32 poolId) {
...
uint256 currentBalance = pools[poolId].poolBalance;
if (p.poolBalance > currentBalance) {
IERC20(p.loanToken).transferFrom(
p.lender,
address(this),
p.poolBalance - currentBalance
);
} else if (p.poolBalance < currentBalance) {
IERC20(p.loanToken).transfer(
p.lender,
currentBalance - p.poolBalance
);
}
emit PoolBalanceUpdated(poolId, p.poolBalance);
...
}
It should only emit when balance is changed.
function setPool(Pool calldata p) public returns (bytes32 poolId) {
...
uint256 currentBalance = pools[poolId].poolBalance;
if (p.poolBalance > currentBalance) {
IERC20(p.loanToken).transferFrom(
p.lender,
address(this),
p.poolBalance - currentBalance
);
+ emit PoolBalanceUpdated(poolId, p.poolBalance);
} else if (p.poolBalance < currentBalance) {
IERC20(p.loanToken).transfer(
p.lender,
currentBalance - p.poolBalance
);
+ emit PoolBalanceUpdated(poolId, p.poolBalance);
}
- emit PoolBalanceUpdated(poolId, p.poolBalance);
...
}