Skip to content

Commit

Permalink
update(Ticket/TwabLib): enforce passing uint208 too TwabLib from Tick…
Browse files Browse the repository at this point in the history
…et (#183)

* update(Ticket): cast amounts to uint208 when calling TwabLib

* update(Ticket): cast amounts to uint208 when calling TwabLib
  • Loading branch information
kamescg committed Oct 6, 2021
1 parent de7640a commit b19486a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
12 changes: 6 additions & 6 deletions contracts/Ticket.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ pragma solidity 0.8.6;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/math/SafeCast.sol";

import "./libraries/ExtendedSafeCastLib.sol";
import "./libraries/TwabLib.sol";
import "./interfaces/ITicket.sol";
import "./ControlledToken.sol";
Expand All @@ -21,7 +21,7 @@ import "./ControlledToken.sol";
*/
contract Ticket is ControlledToken, ITicket {
using SafeERC20 for IERC20;
using SafeCast for uint256;
using ExtendedSafeCastLib for uint256;

// solhint-disable-next-line var-name-mixedcase
bytes32 private immutable _DELEGATE_TYPEHASH =
Expand Down Expand Up @@ -330,7 +330,7 @@ contract Ticket is ControlledToken, ITicket {
TwabLib.AccountDetails memory accountDetails,
ObservationLib.Observation memory twab,
bool isNew
) = TwabLib.increaseBalance(_account, _amount, uint32(block.timestamp));
) = TwabLib.increaseBalance(_account, _amount.toUint208(), uint32(block.timestamp));

_account.details = accountDetails;

Expand Down Expand Up @@ -360,7 +360,7 @@ contract Ticket is ControlledToken, ITicket {
bool isNew
) = TwabLib.decreaseBalance(
_account,
_amount,
_amount.toUint208(),
"ERC20: burn amount exceeds balance",
uint32(block.timestamp)
);
Expand All @@ -385,7 +385,7 @@ contract Ticket is ControlledToken, ITicket {
bool tsIsNew
) = TwabLib.decreaseBalance(
totalSupplyTwab,
_amount,
_amount.toUint208(),
"Ticket/burn-amount-exceeds-total-supply-twab",
uint32(block.timestamp)
);
Expand All @@ -408,7 +408,7 @@ contract Ticket is ControlledToken, ITicket {
TwabLib.AccountDetails memory accountDetails,
ObservationLib.Observation memory _totalSupply,
bool tsIsNew
) = TwabLib.increaseBalance(totalSupplyTwab, _amount, uint32(block.timestamp));
) = TwabLib.increaseBalance(totalSupplyTwab, _amount.toUint208(), uint32(block.timestamp));

totalSupplyTwab.details = accountDetails;

Expand Down
8 changes: 4 additions & 4 deletions contracts/libraries/TwabLib.sol
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ library TwabLib {
/// @return isNew Whether the TWAB is new
function increaseBalance(
Account storage _account,
uint256 _amount,
uint208 _amount,
uint32 _currentTime
)
internal
Expand All @@ -81,7 +81,7 @@ library TwabLib {
{
AccountDetails memory _accountDetails = _account.details;
(accountDetails, twab, isNew) = _nextTwab(_account.twabs, _accountDetails, _currentTime);
accountDetails.balance = (_accountDetails.balance + _amount).toUint208();
accountDetails.balance = _accountDetails.balance + _amount;
}

/** @notice Calculates the next TWAB checkpoint for an account with a decreasing balance.
Expand All @@ -97,7 +97,7 @@ library TwabLib {
*/
function decreaseBalance(
Account storage _account,
uint256 _amount,
uint208 _amount,
string memory _revertMessage,
uint32 _currentTime
)
Expand All @@ -113,7 +113,7 @@ library TwabLib {
require(_accountDetails.balance >= _amount, _revertMessage);

(accountDetails, twab, isNew) = _nextTwab(_account.twabs, _accountDetails, _currentTime);
accountDetails.balance = (_accountDetails.balance - _amount).toUint208();
accountDetails.balance = _accountDetails.balance - _amount;
}

/** @notice Calculates the average balance held by a user for a given time frame.
Expand Down
4 changes: 2 additions & 2 deletions contracts/test/TwabLibraryExposed.sol
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ contract TwabLibExposed {
bool isNew
)
{
(accountDetails, twab, isNew) = TwabLib.increaseBalance(account, _amount, _currentTime);
(accountDetails, twab, isNew) = TwabLib.increaseBalance(account, uint208(_amount), _currentTime);
account.details = accountDetails;
emit Updated(accountDetails, twab, isNew);
}
Expand All @@ -63,7 +63,7 @@ contract TwabLibExposed {
{
(accountDetails, twab, isNew) = TwabLib.decreaseBalance(
account,
_amount,
uint208(_amount),
_revertMessage,
_currentTime
);
Expand Down

0 comments on commit b19486a

Please sign in to comment.