文件 1 的 1:BzzExchange.sol
pragma solidity =0.6.6;
interface IBzzExchange {
function mint(uint256 _amount, uint256 _maxCollateralSpend) external returns (bool success);
function mintTo(uint256 _amount, uint256 _maxCollateralSpend, address _to) external returns (bool success);
function redeem(uint256 _amount, uint256 _minCollateralReward) external returns (bool success);
}
interface IERC20 {
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function balanceOf(address account) external view returns (uint256);
function approve(address spender, uint value) external returns (bool);
}
contract BzzExchangeBot {
IBzzExchange public immutable bzzExchange;
IERC20 internal bzz_;
IERC20 internal dai_;
uint256 public amount;
address public owner;
modifier onlyOwner {
require(msg.sender == owner);
_;
}
constructor() public {
owner = msg.sender;
bzzExchange = IBzzExchange(0x4F32Ab778e85C4aD0CEad54f8f82F5Ee74d46904);
dai_ = IERC20(0x6B175474E89094C44Da98b954EedeAC495271d0F);
bzz_ = IERC20(0x19062190B1925b5b6689D7073fDfC8c2976EF8Cb);
dai_.approve(address(0x4F32Ab778e85C4aD0CEad54f8f82F5Ee74d46904), 115792089237316195423570985008687907853269984665640564039457584007913129639935);
bzz_.approve(address(0x4F32Ab778e85C4aD0CEad54f8f82F5Ee74d46904), 115792089237316195423570985008687907853269984665640564039457584007913129639935);
}
receive() external payable {
amount += msg.value;
}
function bzzExchangeBuyAndSell(uint256 _amount, uint256 _max, bool _direct) public onlyOwner {
if (_direct == true) {
bzzExchange.mintTo(_amount, _max, address(this));
} else {
bzzExchange.redeem(_amount, _max);
}
}
function withdrawToken(IERC20 token) public onlyOwner {
token.transfer(msg.sender, token.balanceOf(address(this)));
}
function transferOwnership(address newOwner) onlyOwner public {
if (newOwner != address(0)) {
owner = newOwner;
}
}
function withdraw() onlyOwner public {
msg.sender.transfer(amount);
amount = 0;
}
}
{
"compilationTarget": {
"contracts/BzzExchange.sol": "BzzExchangeBot"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}