Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 184 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Batch | 20217124 | 22 hrs ago | IN | 0 ETH | 0.00030633 | ||||
Withdraw Batch | 20217088 | 22 hrs ago | IN | 0 ETH | 0.00029327 | ||||
Withdraw Batch | 20216022 | 25 hrs ago | IN | 0 ETH | 0.00024263 | ||||
Withdraw Batch | 20215593 | 27 hrs ago | IN | 0 ETH | 0.00046066 | ||||
Withdraw Batch | 20215317 | 28 hrs ago | IN | 0 ETH | 0.00027352 | ||||
Withdraw Batch | 20214591 | 30 hrs ago | IN | 0 ETH | 0.00034818 | ||||
Withdraw Batch | 20214378 | 31 hrs ago | IN | 0 ETH | 0.00102198 | ||||
Withdraw Batch | 20213864 | 33 hrs ago | IN | 0 ETH | 0.00119134 | ||||
Withdraw Batch | 20212708 | 37 hrs ago | IN | 0 ETH | 0.00087992 | ||||
Withdraw Batch | 20212050 | 39 hrs ago | IN | 0 ETH | 0.00092305 | ||||
Withdraw Batch | 20195944 | 3 days ago | IN | 0 ETH | 0.00026755 | ||||
Withdraw Batch | 20194142 | 4 days ago | IN | 0 ETH | 0.00015347 | ||||
Withdraw Batch | 20178773 | 6 days ago | IN | 0 ETH | 0.00060631 | ||||
Withdraw Batch | 20143713 | 11 days ago | IN | 0 ETH | 0.00038252 | ||||
Withdraw Batch | 20142648 | 11 days ago | IN | 0 ETH | 0.0006153 | ||||
Withdraw Batch | 20134923 | 12 days ago | IN | 0 ETH | 0.00083759 | ||||
Withdraw Batch | 20130901 | 12 days ago | IN | 0 ETH | 0.00049589 | ||||
Withdraw Batch | 20128265 | 13 days ago | IN | 0 ETH | 0.00067721 | ||||
Withdraw Batch | 20108978 | 16 days ago | IN | 0 ETH | 0.00046922 | ||||
Withdraw Batch | 20108923 | 16 days ago | IN | 0 ETH | 0.00045692 | ||||
Withdraw Batch | 20106927 | 16 days ago | IN | 0 ETH | 0.00062324 | ||||
Withdraw Batch | 20104039 | 16 days ago | IN | 0 ETH | 0.00056773 | ||||
Withdraw Batch | 20100590 | 17 days ago | IN | 0 ETH | 0.00042769 | ||||
Withdraw Batch | 20100442 | 17 days ago | IN | 0 ETH | 0.00036849 | ||||
Withdraw Batch | 20079077 | 20 days ago | IN | 0 ETH | 0.00107759 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
RRLootContract
Compiler Version
v0.8.12+commit.f00d7308
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.12; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "./interface/IERC20_USDT.sol"; contract RRLootContract is Ownable { uint256 public withdrawCoolDown = 1 hours; address public secret; address public usdtAddress; mapping(bytes => bool) private usedSignatures; mapping(address => uint256) public lastWithdraw; event Deposit(address token, uint256 amount, address sender); event WithdrawBatch(address[] tokens, address to, uint256[] amounts); event WithdrawETH(uint256 amount, address recipient, address sender); event WithdrawERC20(address token, uint256 amount, address recipient, address sender); constructor(address _signer, address _usdtAddress) { secret = _signer; usdtAddress = _usdtAddress; } function setSecret(address _secret) external onlyOwner { secret = _secret; } function setUsdtAddress(address _usdtAddress) external onlyOwner { usdtAddress = _usdtAddress; } function depositERC20(address _token, uint256 _amount) external { require(_amount > 0, "depositERC20: Amount must be greater than zero"); require( IERC20(_token).allowance(msg.sender, address(this)) >= _amount, "depositERC20: Allowance not sufficient" ); require( IERC20(_token).balanceOf(msg.sender) >= _amount, "depositERC20: You don't have enough balance" ); IERC20(_token).transferFrom(msg.sender, address(this), _amount); emit Deposit(_token, _amount, msg.sender); } function depositETH() external payable { require(msg.value > 0, "depositETH: Invalid Ether deposit amount"); emit Deposit(address(0), msg.value, msg.sender); } function withdrawBatch( address[] memory _tokens, uint256[] memory _amounts, uint256 _timeout, bytes calldata _signature ) external { require(_timeout > block.timestamp, "withdrawBatch: Signature is expired"); require( !usedSignatures[_signature], "withdrawBatch: Signature already used" ); require( lastWithdraw[msg.sender] + withdrawCoolDown < block.timestamp, "withdrawBatch: Withdrawal is too soon" ); require( _tokens.length == _amounts.length, "withdrawBatch: Invalid _tokens or _amounts length" ); require( _verifyHashSignature( keccak256(abi.encode(msg.sender, _tokens, _amounts, _timeout)), _signature ), "withdrawBatch: Signature is invalid" ); usedSignatures[_signature] = true; lastWithdraw[msg.sender] = block.timestamp; withdrawAllTokens(_tokens, _amounts); emit WithdrawBatch(_tokens, msg.sender, _amounts); } function withdrawAllTokens( address[] memory _tokens, uint256[] memory _amounts ) internal { for (uint256 i = 0; i < _tokens.length; i++) { address token = _tokens[i]; uint256 tokenBalance = _amounts[i]; if (tokenBalance > 0) { if (token == address(0)) { payable(msg.sender).transfer(tokenBalance); } else { if (token == usdtAddress) { IERC20_USDT(token).transfer(msg.sender, tokenBalance); } else { IERC20(token).transfer(msg.sender, tokenBalance); } } } } } /// EMERGENCY FUNCTIONS /// @notice Emergency function to withdraw ETH function emergencyWithdrawETH() external onlyOwner { uint256 contractBalance = address(this).balance; payable(msg.sender).transfer(contractBalance); emit WithdrawETH(contractBalance, msg.sender, msg.sender); } /// @notice Emergency function to withdraw ERC20 tokens /// @param token Address of the ERC20 token function emergencyWithdrawERC20(address token) external onlyOwner { uint256 contractBalance = IERC20(token).balanceOf(address(this)); require( contractBalance > 0, "emergencyWithdrawERC20: No tokens to withdraw" ); if (token == usdtAddress) { IERC20_USDT(token).transfer(msg.sender, contractBalance); } else { IERC20(token).transfer(msg.sender, contractBalance); } emit WithdrawERC20(token, contractBalance, msg.sender, msg.sender); } function _verifyHashSignature( bytes32 freshHash, bytes memory signature ) internal view returns (bool) { bytes32 hash = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", freshHash) ); bytes32 r; bytes32 s; uint8 v; if (signature.length != 65) { return false; } assembly { r := mload(add(signature, 32)) s := mload(add(signature, 64)) v := byte(0, mload(add(signature, 96))) } if (v < 27) { v += 27; } address signer = address(0); if (v == 27 || v == 28) { // solium-disable-next-line arg-overflow signer = ecrecover(hash, v, r, s); } return secret == signer; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC20_USDT { function transferFrom(address from, address to, uint value) external; function transfer(address to, uint value) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "london", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"address","name":"_usdtAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"tokens","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"WithdrawERC20","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"WithdrawETH","type":"event"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"emergencyWithdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secret","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_secret","type":"address"}],"name":"setSecret","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_usdtAddress","type":"address"}],"name":"setUsdtAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"uint256","name":"_timeout","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawCoolDown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052610e106001553480156200001757600080fd5b50604051620015b1380380620015b18339810160408190526200003a91620000e4565b620000453362000077565b600280546001600160a01b039384166001600160a01b031991821617909155600380549290931691161790556200011c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000df57600080fd5b919050565b60008060408385031215620000f857600080fd5b6200010383620000c7565b91506200011360208401620000c7565b90509250929050565b611485806200012c6000396000f3fe6080604052600436106100dd5760003560e01c806397feb9261161007f578063d1efd30d11610059578063d1efd30d14610236578063e9a7484c14610256578063f2fde38b14610276578063f6326fb31461029657600080fd5b806397feb926146101d65780639ab4a445146101f6578063bcf6a79e1461021657600080fd5b8063624d7b72116100bb578063624d7b721461014d578063715018a61461017a578063845360171461018f5780638da5cb5b146101a457600080fd5b80630cb46b75146100e257806340c442de1461010457806346e27cdd14610124575b600080fd5b3480156100ee57600080fd5b506101026100fd366004611026565b61029e565b005b34801561011057600080fd5b5061010261011f366004611026565b6102c8565b34801561013057600080fd5b5061013a60015481565b6040519081526020015b60405180910390f35b34801561015957600080fd5b5061013a610168366004611026565b60056020526000908152604090205481565b34801561018657600080fd5b506101026104ee565b34801561019b57600080fd5b50610102610502565b3480156101b057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610144565b3480156101e257600080fd5b506101026101f1366004611048565b61057c565b34801561020257600080fd5b506003546101be906001600160a01b031681565b34801561022257600080fd5b50610102610231366004611191565b61083d565b34801561024257600080fd5b506002546101be906001600160a01b031681565b34801561026257600080fd5b50610102610271366004611026565b610b50565b34801561028257600080fd5b50610102610291366004611026565b610b7a565b610102610bf3565b6102a6610c95565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6102d0610c95565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190611286565b9050600081116103a85760405162461bcd60e51b815260206004820152602d60248201527f656d657267656e6379576974686472617745524332303a204e6f20746f6b656e60448201526c7320746f20776974686472617760981b60648201526084015b60405180910390fd5b6003546001600160a01b03838116911614156104235760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401600060405180830381600087803b15801561040657600080fd5b505af115801561041a573d6000803e3d6000fd5b50505050610496565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610470573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610494919061129f565b505b604080516001600160a01b0384168152602081018390523391810182905260608101919091527f76258fe94fcafc5366d7fd71cfe770504f5471904cfd3bfaa98a6dab60f96bc5906080015b60405180910390a15050565b6104f6610c95565b6105006000610cef565b565b61050a610c95565b6040514790339082156108fc029083906000818181858888f19350505050158015610539573d6000803e3d6000fd5b506040805182815233602082018190528183015290517f4c46bd413bdc12128078ae2ee4625145577bcb84a29696605d14ef279ae72c609181900360600190a150565b600081116105e35760405162461bcd60e51b815260206004820152602e60248201527f6465706f73697445524332303a20416d6f756e74206d7573742062652067726560448201526d61746572207468616e207a65726f60901b606482015260840161039f565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190611286565b10156106b05760405162461bcd60e51b815260206004820152602660248201527f6465706f73697445524332303a20416c6c6f77616e6365206e6f7420737566666044820152651a58da595b9d60d21b606482015260840161039f565b6040516370a0823160e01b815233600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190611286565b101561077c5760405162461bcd60e51b815260206004820152602b60248201527f6465706f73697445524332303a20596f7520646f6e2774206861766520656e6f60448201526a7567682062616c616e636560a81b606482015260840161039f565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af11580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f3919061129f565b50604080516001600160a01b03841681526020810183905233918101919091527fe31c7b8d08ee7db0afa68782e1028ef92305caeea8626633ad44d413e30f6b2f906060016104e2565b4283116108985760405162461bcd60e51b815260206004820152602360248201527f776974686472617742617463683a205369676e617475726520697320657870696044820152621c995960ea1b606482015260840161039f565b600482826040516108aa9291906112c1565b9081526040519081900360200190205460ff16156109185760405162461bcd60e51b815260206004820152602560248201527f776974686472617742617463683a205369676e617475726520616c7265616479604482015264081d5cd95960da1b606482015260840161039f565b600154336000908152600560205260409020544291610936916112e7565b106109915760405162461bcd60e51b815260206004820152602560248201527f776974686472617742617463683a205769746864726177616c20697320746f6f6044820152641039b7b7b760d91b606482015260840161039f565b83518551146109fc5760405162461bcd60e51b815260206004820152603160248201527f776974686472617742617463683a20496e76616c6964205f746f6b656e73206f6044820152700e440bec2dadeeadce8e640d8cadccee8d607b1b606482015260840161039f565b610a6833868686604051602001610a169493929190611373565b6040516020818303038152906040528051906020012083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d3f92505050565b610ac05760405162461bcd60e51b815260206004820152602360248201527f776974686472617742617463683a205369676e617475726520697320696e76616044820152621b1a5960ea1b606482015260840161039f565b600160048383604051610ad49291906112c1565b9081526040805160209281900383019020805460ff191693151593909317909255336000908152600590915220429055610b0e8585610e70565b7ff17d7a82a4baba39799481b0056ff3520f08268139506711f487e7eb3e4a9f8a853386604051610b41939291906113bb565b60405180910390a15050505050565b610b58610c95565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610b82610c95565b6001600160a01b038116610be75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039f565b610bf081610cef565b50565b60003411610c545760405162461bcd60e51b815260206004820152602860248201527f6465706f7369744554483a20496e76616c6964204574686572206465706f73696044820152671d08185b5bdd5b9d60c21b606482015260840161039f565b6040805160008152346020820152338183015290517fe31c7b8d08ee7db0afa68782e1028ef92305caeea8626633ad44d413e30f6b2f9181900360600190a1565b6000546001600160a01b031633146105005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018390526000908190605c0160405160208183030381529060405280519060200120905060008060008551604114610daa576000945050505050610e6a565b50505060208301516040840151606085015160001a601b811015610dd657610dd3601b826113f9565b90505b60008160ff16601b1480610ded57508160ff16601c145b15610e525760408051600081526020810180835287905260ff841691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa158015610e45573d6000803e3d6000fd5b5050506020604051035190505b6002546001600160a01b039081169116149450505050505b92915050565b60005b8251811015611005576000838281518110610e9057610e9061141e565b602002602001015190506000838381518110610eae57610eae61141e565b602002602001015190506000811115610ff0576001600160a01b038216610f0257604051339082156108fc029083906000818181858888f19350505050158015610efc573d6000803e3d6000fd5b50610ff0565b6003546001600160a01b0383811691161415610f7d5760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401600060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b50505050610ff0565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee919061129f565b505b50508080610ffd90611434565b915050610e73565b505050565b80356001600160a01b038116811461102157600080fd5b919050565b60006020828403121561103857600080fd5b6110418261100a565b9392505050565b6000806040838503121561105b57600080fd5b6110648361100a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156110b1576110b1611072565b604052919050565b600067ffffffffffffffff8211156110d3576110d3611072565b5060051b60200190565b600082601f8301126110ee57600080fd5b813560206111036110fe836110b9565b611088565b82815260059290921b8401810191818101908684111561112257600080fd5b8286015b8481101561113d5780358352918301918301611126565b509695505050505050565b60008083601f84011261115a57600080fd5b50813567ffffffffffffffff81111561117257600080fd5b60208301915083602082850101111561118a57600080fd5b9250929050565b6000806000806000608086880312156111a957600080fd5b853567ffffffffffffffff808211156111c157600080fd5b818801915088601f8301126111d557600080fd5b813560206111e56110fe836110b9565b82815260059290921b8401810191818101908c84111561120457600080fd5b948201945b838610156112295761121a8661100a565b82529482019490820190611209565b9950508901359250508082111561123f57600080fd5b61124b89838a016110dd565b955060408801359450606088013591508082111561126857600080fd5b5061127588828901611148565b969995985093965092949392505050565b60006020828403121561129857600080fd5b5051919050565b6000602082840312156112b157600080fd5b8151801515811461104157600080fd5b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156112fa576112fa6112d1565b500190565b600081518084526020808501945080840160005b838110156113385781516001600160a01b031687529582019590820190600101611313565b509495945050505050565b600081518084526020808501945080840160005b8381101561133857815187529582019590820190600101611357565b6001600160a01b0385168152608060208201819052600090611397908301866112ff565b82810360408401526113a98186611343565b91505082606083015295945050505050565b6060815260006113ce60608301866112ff565b6001600160a01b038516602084015282810360408401526113ef8185611343565b9695505050505050565b600060ff821660ff84168060ff03821115611416576114166112d1565b019392505050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611448576114486112d1565b506001019056fea264697066735822122098618d95d50fcdb855c26d86f33d78532ebbd0ce7f9b551d340f055e2e1ad5aa64736f6c634300080c00330000000000000000000000007c8f6808778ba76841d3700cada31206c438f49d000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Deployed Bytecode
0x6080604052600436106100dd5760003560e01c806397feb9261161007f578063d1efd30d11610059578063d1efd30d14610236578063e9a7484c14610256578063f2fde38b14610276578063f6326fb31461029657600080fd5b806397feb926146101d65780639ab4a445146101f6578063bcf6a79e1461021657600080fd5b8063624d7b72116100bb578063624d7b721461014d578063715018a61461017a578063845360171461018f5780638da5cb5b146101a457600080fd5b80630cb46b75146100e257806340c442de1461010457806346e27cdd14610124575b600080fd5b3480156100ee57600080fd5b506101026100fd366004611026565b61029e565b005b34801561011057600080fd5b5061010261011f366004611026565b6102c8565b34801561013057600080fd5b5061013a60015481565b6040519081526020015b60405180910390f35b34801561015957600080fd5b5061013a610168366004611026565b60056020526000908152604090205481565b34801561018657600080fd5b506101026104ee565b34801561019b57600080fd5b50610102610502565b3480156101b057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610144565b3480156101e257600080fd5b506101026101f1366004611048565b61057c565b34801561020257600080fd5b506003546101be906001600160a01b031681565b34801561022257600080fd5b50610102610231366004611191565b61083d565b34801561024257600080fd5b506002546101be906001600160a01b031681565b34801561026257600080fd5b50610102610271366004611026565b610b50565b34801561028257600080fd5b50610102610291366004611026565b610b7a565b610102610bf3565b6102a6610c95565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6102d0610c95565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190611286565b9050600081116103a85760405162461bcd60e51b815260206004820152602d60248201527f656d657267656e6379576974686472617745524332303a204e6f20746f6b656e60448201526c7320746f20776974686472617760981b60648201526084015b60405180910390fd5b6003546001600160a01b03838116911614156104235760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401600060405180830381600087803b15801561040657600080fd5b505af115801561041a573d6000803e3d6000fd5b50505050610496565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610470573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610494919061129f565b505b604080516001600160a01b0384168152602081018390523391810182905260608101919091527f76258fe94fcafc5366d7fd71cfe770504f5471904cfd3bfaa98a6dab60f96bc5906080015b60405180910390a15050565b6104f6610c95565b6105006000610cef565b565b61050a610c95565b6040514790339082156108fc029083906000818181858888f19350505050158015610539573d6000803e3d6000fd5b506040805182815233602082018190528183015290517f4c46bd413bdc12128078ae2ee4625145577bcb84a29696605d14ef279ae72c609181900360600190a150565b600081116105e35760405162461bcd60e51b815260206004820152602e60248201527f6465706f73697445524332303a20416d6f756e74206d7573742062652067726560448201526d61746572207468616e207a65726f60901b606482015260840161039f565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190611286565b10156106b05760405162461bcd60e51b815260206004820152602660248201527f6465706f73697445524332303a20416c6c6f77616e6365206e6f7420737566666044820152651a58da595b9d60d21b606482015260840161039f565b6040516370a0823160e01b815233600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190611286565b101561077c5760405162461bcd60e51b815260206004820152602b60248201527f6465706f73697445524332303a20596f7520646f6e2774206861766520656e6f60448201526a7567682062616c616e636560a81b606482015260840161039f565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af11580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f3919061129f565b50604080516001600160a01b03841681526020810183905233918101919091527fe31c7b8d08ee7db0afa68782e1028ef92305caeea8626633ad44d413e30f6b2f906060016104e2565b4283116108985760405162461bcd60e51b815260206004820152602360248201527f776974686472617742617463683a205369676e617475726520697320657870696044820152621c995960ea1b606482015260840161039f565b600482826040516108aa9291906112c1565b9081526040519081900360200190205460ff16156109185760405162461bcd60e51b815260206004820152602560248201527f776974686472617742617463683a205369676e617475726520616c7265616479604482015264081d5cd95960da1b606482015260840161039f565b600154336000908152600560205260409020544291610936916112e7565b106109915760405162461bcd60e51b815260206004820152602560248201527f776974686472617742617463683a205769746864726177616c20697320746f6f6044820152641039b7b7b760d91b606482015260840161039f565b83518551146109fc5760405162461bcd60e51b815260206004820152603160248201527f776974686472617742617463683a20496e76616c6964205f746f6b656e73206f6044820152700e440bec2dadeeadce8e640d8cadccee8d607b1b606482015260840161039f565b610a6833868686604051602001610a169493929190611373565b6040516020818303038152906040528051906020012083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d3f92505050565b610ac05760405162461bcd60e51b815260206004820152602360248201527f776974686472617742617463683a205369676e617475726520697320696e76616044820152621b1a5960ea1b606482015260840161039f565b600160048383604051610ad49291906112c1565b9081526040805160209281900383019020805460ff191693151593909317909255336000908152600590915220429055610b0e8585610e70565b7ff17d7a82a4baba39799481b0056ff3520f08268139506711f487e7eb3e4a9f8a853386604051610b41939291906113bb565b60405180910390a15050505050565b610b58610c95565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610b82610c95565b6001600160a01b038116610be75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039f565b610bf081610cef565b50565b60003411610c545760405162461bcd60e51b815260206004820152602860248201527f6465706f7369744554483a20496e76616c6964204574686572206465706f73696044820152671d08185b5bdd5b9d60c21b606482015260840161039f565b6040805160008152346020820152338183015290517fe31c7b8d08ee7db0afa68782e1028ef92305caeea8626633ad44d413e30f6b2f9181900360600190a1565b6000546001600160a01b031633146105005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018390526000908190605c0160405160208183030381529060405280519060200120905060008060008551604114610daa576000945050505050610e6a565b50505060208301516040840151606085015160001a601b811015610dd657610dd3601b826113f9565b90505b60008160ff16601b1480610ded57508160ff16601c145b15610e525760408051600081526020810180835287905260ff841691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa158015610e45573d6000803e3d6000fd5b5050506020604051035190505b6002546001600160a01b039081169116149450505050505b92915050565b60005b8251811015611005576000838281518110610e9057610e9061141e565b602002602001015190506000838381518110610eae57610eae61141e565b602002602001015190506000811115610ff0576001600160a01b038216610f0257604051339082156108fc029083906000818181858888f19350505050158015610efc573d6000803e3d6000fd5b50610ff0565b6003546001600160a01b0383811691161415610f7d5760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401600060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b50505050610ff0565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee919061129f565b505b50508080610ffd90611434565b915050610e73565b505050565b80356001600160a01b038116811461102157600080fd5b919050565b60006020828403121561103857600080fd5b6110418261100a565b9392505050565b6000806040838503121561105b57600080fd5b6110648361100a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156110b1576110b1611072565b604052919050565b600067ffffffffffffffff8211156110d3576110d3611072565b5060051b60200190565b600082601f8301126110ee57600080fd5b813560206111036110fe836110b9565b611088565b82815260059290921b8401810191818101908684111561112257600080fd5b8286015b8481101561113d5780358352918301918301611126565b509695505050505050565b60008083601f84011261115a57600080fd5b50813567ffffffffffffffff81111561117257600080fd5b60208301915083602082850101111561118a57600080fd5b9250929050565b6000806000806000608086880312156111a957600080fd5b853567ffffffffffffffff808211156111c157600080fd5b818801915088601f8301126111d557600080fd5b813560206111e56110fe836110b9565b82815260059290921b8401810191818101908c84111561120457600080fd5b948201945b838610156112295761121a8661100a565b82529482019490820190611209565b9950508901359250508082111561123f57600080fd5b61124b89838a016110dd565b955060408801359450606088013591508082111561126857600080fd5b5061127588828901611148565b969995985093965092949392505050565b60006020828403121561129857600080fd5b5051919050565b6000602082840312156112b157600080fd5b8151801515811461104157600080fd5b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156112fa576112fa6112d1565b500190565b600081518084526020808501945080840160005b838110156113385781516001600160a01b031687529582019590820190600101611313565b509495945050505050565b600081518084526020808501945080840160005b8381101561133857815187529582019590820190600101611357565b6001600160a01b0385168152608060208201819052600090611397908301866112ff565b82810360408401526113a98186611343565b91505082606083015295945050505050565b6060815260006113ce60608301866112ff565b6001600160a01b038516602084015282810360408401526113ef8185611343565b9695505050505050565b600060ff821660ff84168060ff03821115611416576114166112d1565b019392505050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611448576114486112d1565b506001019056fea264697066735822122098618d95d50fcdb855c26d86f33d78532ebbd0ce7f9b551d340f055e2e1ad5aa64736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007c8f6808778ba76841d3700cada31206c438f49d000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
-----Decoded View---------------
Arg [0] : _signer (address): 0x7C8F6808778bA76841d3700Cada31206c438f49D
Arg [1] : _usdtAddress (address): 0xdAC17F958D2ee523a2206206994597C13D831ec7
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007c8f6808778ba76841d3700cada31206c438f49d
Arg [1] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.