| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | // SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "../utils/Context.sol";import "../token/ERC777/ERC777.sol";contract ERC777Mock is Context, ERC777 {    event BeforeTokenTransfer();    constructor(        address initialHolder,        uint256 initialBalance,        string memory name,        string memory symbol,        address[] memory defaultOperators    ) ERC777(name, symbol, defaultOperators) {        _mint(initialHolder, initialBalance, "", "");    }    function mintInternal(        address to,        uint256 amount,        bytes memory userData,        bytes memory operatorData    ) public {        _mint(to, amount, userData, operatorData);    }    function mintInternalExtended(        address to,        uint256 amount,        bytes memory userData,        bytes memory operatorData,        bool requireReceptionAck    ) public {        _mint(to, amount, userData, operatorData, requireReceptionAck);    }    function approveInternal(        address holder,        address spender,        uint256 value    ) public {        _approve(holder, spender, value);    }    function _beforeTokenTransfer(        address,        address,        address,        uint256    ) internal override {        emit BeforeTokenTransfer();    }}
 |