pragma solidity 0.6.0;
contract EthWithdraw {
modifier onlyEthAutoHotWallet(
address _address
)
{
require(
ethAutoHotWallet == _address,
"is not ethAutoHotWallet!"
);
_;
}
modifier onlyEthManualHotWallet(
address _address
)
{
require(
ethManualHotWallet == _address,
"is not ethManualHotWallet!"
);
_;
}
// Auto
address public ethAutoHotWallet = 0xa8b7c3ee3ed9b2e201ff30B1BDA982d0c958CD77;
// Manual
address public ethManualHotWallet = 0xb25E62E56cF0d0aC6AB5CE74E182261Cab15a779;
mapping(bytes32 => bool) public _txExist;
function withdraw(
bytes32 _drkTxHash,
address payable _receiver
)
public
payable
onlyEthAutoHotWallet(msg.sender)
{
require(!_txExist[_drkTxHash], "already withdrawn!");
_txExist[_drkTxHash] = true;
_receiver.transfer(msg.value);
}
function manualWithdraw(
bytes32 _drkTxHash,
address payable _receiver
)
public
payable
onlyEthManualHotWallet(msg.sender)
{
require(!_txExist[_drkTxHash], "already withdrawn!");
_txExist[_drkTxHash] = true;
_receiver.transfer(msg.value);
}
}
{
"compilationTarget": {
"browser/Draken/EthWithdraw.sol": "EthWithdraw"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
}
[{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_txExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethAutoHotWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethManualHotWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_drkTxHash","type":"bytes32"},{"internalType":"address payable","name":"_receiver","type":"address"}],"name":"manualWithdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_drkTxHash","type":"bytes32"},{"internalType":"address payable","name":"_receiver","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]