/**
*Submitted for verification at Etherscan.io on 2020-10-05
*/
pragma solidity =0.6.6;
interface IWETH {
function deposit() external payable;
function transfer(address to, uint value) external returns (bool);
function withdraw(uint) external;
}
contract ETHtoBEB {
address public onwer;
address public WETH;
mapping (address=>bool)public senderLooks;
mapping(uint=>uint)public UsersDays;
constructor(address _WETH) public {
onwer = msg.sender;
WETH=_WETH;
}
receive() external payable {
assert(msg.sender == WETH); // only accept ETH via fallback from the WETH contract
}
//Authorized additional address
function AdditionalAddress(address addr)public{
require(onwer==msg.sender,"Not contract administrator");
senderLooks[addr]=true;
}
function CreateContract(uint _lsh)public payable{
UsersDays[_lsh]=msg.value;
IWETH(WETH).deposit{value: msg.value}();
}
function ContractWithdrawal(address to,uint amountETH)public{
require(senderLooks[msg.sender],"No permission to issue additional beb");
IWETH(WETH).withdraw(amountETH);
TransferHelper.safeTransferETH(to, amountETH);
}
function getRecord(uint _lsh)public view returns(uint) {
return UsersDays[_lsh];
}
function getWETH()public view returns(uint) {
return WETH.balance;
}
}
library TransferHelper {
function safeTransferETH(address to, uint value) internal {
(bool success,) = to.call{value:value}(new bytes(0));
require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
}
}
{
"compilationTarget": {
"ETHtoBEB.sol": "ETHtoBEB"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
}
[{"inputs":[{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"AdditionalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"ContractWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lsh","type":"uint256"}],"name":"CreateContract","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"UsersDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lsh","type":"uint256"}],"name":"getRecord","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onwer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"senderLooks","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]