Fix ERC777 potential reentrancy issues (#2483)

This commit is contained in:
Francisco Giordano
2021-01-26 10:57:18 -03:00
committed by GitHub
parent c2c08af16d
commit 3b4c951838
5 changed files with 50 additions and 2 deletions

View File

@ -6,6 +6,8 @@ import "../utils/Context.sol";
import "../token/ERC777/ERC777.sol";
contract ERC777Mock is Context, ERC777 {
event BeforeTokenTransfer();
constructor(
address initialHolder,
uint256 initialBalance,
@ -28,4 +30,8 @@ contract ERC777Mock is Context, ERC777 {
function approveInternal(address holder, address spender, uint256 value) public {
_approve(holder, spender, value);
}
function _beforeTokenTransfer(address, address, address, uint256) internal override {
emit BeforeTokenTransfer();
}
}

View File

@ -34,6 +34,9 @@ contract ERC777SenderRecipientMock is Context, IERC777Sender, IERC777Recipient,
uint256 toBalance
);
// Emitted in ERC777Mock. Here for easier decoding
event BeforeTokenTransfer();
bool private _shouldRevertSend;
bool private _shouldRevertReceive;