mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
d7a58e88ff
ARB: deploy protocols
55 lines
1.3 KiB
Solidity
55 lines
1.3 KiB
Solidity
//SPDX-License-Identifier: MIT
|
|
pragma solidity 0.8.21;
|
|
|
|
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
|
import { ERC20Burnable } from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
|
|
|
|
contract TestERC20Dec6 is ERC20, ERC20Burnable {
|
|
bool public blocked;
|
|
|
|
bool public noReturnData;
|
|
|
|
constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) {
|
|
blocked = false;
|
|
noReturnData = false;
|
|
}
|
|
|
|
function decimals() public view virtual override returns (uint8) {
|
|
return 6;
|
|
}
|
|
|
|
function blockTransfer(bool blocking) external {
|
|
blocked = blocking;
|
|
}
|
|
|
|
function setNoReturnData(bool noReturn) external {
|
|
noReturnData = noReturn;
|
|
}
|
|
|
|
function mint(address to, uint256 amount) external returns (bool) {
|
|
_mint(to, amount);
|
|
return true;
|
|
}
|
|
|
|
function burn(address from, uint256 amount) external returns (bool) {
|
|
_burn(from, amount);
|
|
return true;
|
|
}
|
|
|
|
function transferFrom(address from, address to, uint256 amount) public override returns (bool ok) {
|
|
if (blocked) {
|
|
return false;
|
|
}
|
|
|
|
super.transferFrom(from, to, amount);
|
|
|
|
if (noReturnData) {
|
|
assembly {
|
|
return(0, 0)
|
|
}
|
|
}
|
|
|
|
ok = true;
|
|
}
|
|
}
|