More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 682 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 12535193 | 1347 days ago | IN | 0 ETH | 0.00128482 | ||||
Withdraw | 12532890 | 1347 days ago | IN | 0 ETH | 0.00185356 | ||||
Withdraw | 12532568 | 1347 days ago | IN | 0 ETH | 0.00204028 | ||||
Withdraw | 12532383 | 1347 days ago | IN | 0 ETH | 0.00183454 | ||||
Withdraw | 12530635 | 1347 days ago | IN | 0 ETH | 0.00264523 | ||||
Withdraw | 12530168 | 1347 days ago | IN | 0 ETH | 0.00361557 | ||||
Withdraw | 12529984 | 1347 days ago | IN | 0 ETH | 0.00392563 | ||||
Withdraw | 12529730 | 1347 days ago | IN | 0 ETH | 0.00274348 | ||||
Withdraw | 12529493 | 1348 days ago | IN | 0 ETH | 0.00188987 | ||||
Withdraw | 12528852 | 1348 days ago | IN | 0 ETH | 0.00151156 | ||||
Withdraw | 12528737 | 1348 days ago | IN | 0 ETH | 0.00176088 | ||||
Withdraw | 12528734 | 1348 days ago | IN | 0 ETH | 0.00136062 | ||||
Withdraw | 12528681 | 1348 days ago | IN | 0 ETH | 0.0013753 | ||||
Withdraw | 12528646 | 1348 days ago | IN | 0 ETH | 0.00143598 | ||||
Withdraw | 12528163 | 1348 days ago | IN | 0 ETH | 0.00166271 | ||||
Withdraw | 12527899 | 1348 days ago | IN | 0 ETH | 0.0015119 | ||||
Withdraw | 12527777 | 1348 days ago | IN | 0 ETH | 0.00181428 | ||||
Withdraw | 12527773 | 1348 days ago | IN | 0 ETH | 0.00174624 | ||||
Withdraw | 12527595 | 1348 days ago | IN | 0 ETH | 0.00196502 | ||||
Withdraw | 12527582 | 1348 days ago | IN | 0 ETH | 0.00166335 | ||||
Withdraw | 12526920 | 1348 days ago | IN | 0 ETH | 0.00158749 | ||||
Withdraw | 12526910 | 1348 days ago | IN | 0 ETH | 0.00187857 | ||||
Withdraw | 12526812 | 1348 days ago | IN | 0 ETH | 0.0021317 | ||||
Withdraw | 12526484 | 1348 days ago | IN | 0 ETH | 0.00173896 | ||||
Withdraw | 12526280 | 1348 days ago | IN | 0 ETH | 0.00296569 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Withdraw
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity Multiple files format)
pragma solidity ^0.5.8; import "./IERC20.sol"; import "./SafeMath.sol"; import "./ReentrancyGuard.sol"; import "./TransferHelper.sol"; import "./IWithdraw.sol"; import "./ECDSA.sol"; contract Owned { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } contract Withdraw is IWithdraw, ReentrancyGuard, Owned { IERC20 private tokenAddr; using TransferHelper for address; using SafeMath for uint256; using ECDSA for bytes32; string public name; bool public stop_status = false; mapping(uint256 => bool) usedNonce; modifier withdraw_status { require(stop_status == false, "WITHDRAW:STOP"); _; } constructor(address _tokenAddr, address _owner) public { tokenAddr = IERC20(_tokenAddr); name = "ADAO-WITHDRAW"; owner = _owner; } function verifySign( uint256 amount, uint256 nonce, address userAddr, bytes memory signature ) public view returns (bool) { address recoverAddr = keccak256(abi.encode(userAddr, amount, nonce, this)) .toEthSignedMessageHash() .recover(signature); require(recoverAddr == owner, "WITHDRAW:SIGN_FAILURE"); require(!usedNonce[nonce], "WITHDRAW:NONCE_USED"); return true; } function withdraw( uint256 amount, uint256 nonce, bytes memory signature ) public nonReentrant withdraw_status returns (bool) { verifySign(amount, nonce, msg.sender, signature); usedNonce[nonce] = true; require( address(tokenAddr).safeTransfer(msg.sender, amount), "WITHDRAW:INSUFFICIENT_CONTRACT_BALANCE" ); emit WithdrawEvent(msg.sender, amount, nonce); return true; } function stop() public nonReentrant onlyOwner { stop_status = true; } function draw(uint256 amount, address toAddr) public nonReentrant onlyOwner { require( address(tokenAddr).safeTransfer(toAddr, amount), "WITHDRAW:INSUFFICIENT_CONTRACT_BALANCE" ); emit DrawEvent(toAddr, amount); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.5.8; /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * * These functions can be used to verify that a message was signed by the holder * of the private keys of a given address. */ library ECDSA { /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature`. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { // Check the signature length if (signature.length != 65) { revert("ECDSA: invalid signature length"); } // Divide the signature in r, s and v variables bytes32 r; bytes32 s; uint8 v; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. // solhint-disable-next-line no-inline-assembly assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } return recover(hash, v, r, s); } /** * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ function recover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most // signatures from current libraries generate a unique signature with an s-value in the lower half order. // // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept // these malleable signatures as well. require( uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "ECDSA: invalid signature 's' value" ); require(v == 27 || v == 28, "ECDSA: invalid signature 'v' value"); // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); require(signer != address(0), "ECDSA: invalid signature"); return signer; } /** * @dev Returns an Ethereum Signed Message, created from a `hash`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { // 32 is the length in bytes of hash, // enforced by the type signature above return keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", hash) ); } /** * @dev Returns an Ethereum Signed Typed Data, created from a * `domainSeparator` and a `structHash`. This produces hash corresponding * to the one signed with the * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] * JSON-RPC method as part of EIP-712. * * See {recover}. */ function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { return keccak256( abi.encodePacked("\x19\x01", domainSeparator, structHash) ); } }
pragma solidity ^0.5.8; /** * @title ERC20 interface */ interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); }
pragma solidity ^0.5.8; contract IWithdraw { event WithdrawEvent(address indexed user, uint256 indexed amount, uint256 indexed nonce); event DrawEvent(address indexed user, uint256 indexed amount); function verifySign(uint256 amount, uint256 nonce, address userAddr, bytes memory signature) public view returns (bool); function withdraw(uint256 amount, uint256 nonce, bytes memory signature) public returns (bool); }
pragma solidity ^0.5.8; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. * * _Since v2.5.0:_ this module is now much more gas efficient, given net gas * metering changes introduced in the Istanbul hardfork. */ contract ReentrancyGuard { bool private _notEntered; constructor () internal { // Storing an initial non-zero value makes deployment a bit more // expensive, but in exchange the refund on every call to nonReentrant // will be lower in amount. Since refunds are capped to a percetange of // the total transaction's gas, it is best to keep them low in cases // like this one, to increase the likelihood of the full refund coming // into effect. _notEntered = true; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_notEntered, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _notEntered = false; _; // By storing the original value once again, a refund is triggered (see _notEntered = true; } }
pragma solidity ^0.5.8; /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath#mul: OVERFLOW"); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath#div: DIVISION_BY_ZERO"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath#sub: UNDERFLOW"); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath#add: OVERFLOW"); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath#mod: DIVISION_BY_ZERO"); return a % b; } }
pragma solidity ^0.5.8; // helper methods for interacting with ERC20 tokens that do not consistently return true/false library TransferHelper { function safeTransfer(address token, address to, uint value) internal returns (bool){ // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); return (success && (data.length == 0 || abi.decode(data, (bool)))); } function safeTransferFrom(address token, address from, address to, uint value) internal returns (bool){ // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); return (success && (data.length == 0 || abi.decode(data, (bool)))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DrawEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"WithdrawEvent","type":"event"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"toAddr","type":"address"}],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stop_status","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"userAddr","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verifySign","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526004805460ff1916905534801561001a57600080fd5b50604051610eb4380380610eb48339818101604052604081101561003d57600080fd5b5080516020918201516000805460ff19166001179055600280546001600160a01b0384166001600160a01b031990911617905560408051808201909152600d8082526c4144414f2d574954484452415760981b91909401908152919290916100a891600391906100d5565b50600080546001600160a01b0390921661010002610100600160a81b031990921691909117905550610170565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011657805160ff1916838001178555610143565b82800160010185558215610143579182015b82811115610143578251825591602001919060010190610128565b5061014f929150610153565b5090565b61016d91905b8082111561014f5760008155600101610159565b90565b610d358061017f6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b146102ba578063b702a879146102de578063b8461dd01461030a578063d4ee1d9014610312578063f2fde38b1461031a5761009e565b806306fdde03146100a357806307da68f5146101205780634d4144fe1461012a578063744fb6ca1461020057806379ba5097146102b2575b600080fd5b6100ab610340565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101286103ce565b005b6101ec6004803603608081101561014057600080fd5b8135916020810135916001600160a01b03604083013516919081019060808101606082013564010000000081111561017757600080fd5b82018360208201111561018957600080fd5b803590602001918460018302840111640100000000831117156101ab57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610469945050505050565b604080519115158252519081900360200190f35b6101ec6004803603606081101561021657600080fd5b81359160208101359181019060608101604082013564010000000081111561023d57600080fd5b82018360208201111561024f57600080fd5b8035906020019184600183028401116401000000008311171561027157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105af945050505050565b61012861071d565b6102c26107a9565b604080516001600160a01b039092168252519081900360200190f35b610128600480360360408110156102f457600080fd5b50803590602001356001600160a01b03166107bd565b6101ec6108d8565b6102c26108e1565b6101286004803603602081101561033057600080fd5b50356001600160a01b03166108f0565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103c65780601f1061039b576101008083540402835291602001916103c6565b820191906000526020600020905b8154815290600101906020018083116103a957829003601f168201915b505050505081565b60005460ff16610425576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff19169081905561010090046001600160a01b0316331461044a57600080fd5b60048054600160ff199182168117909255600080549091169091179055565b6000806104e7836104db8689893060405160200180856001600160a01b03166001600160a01b03168152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012061092e565b9063ffffffff61097f16565b6000549091506001600160a01b038083166101009092041614610549576040805162461bcd60e51b815260206004820152601560248201527457495448445241573a5349474e5f4641494c55524560581b604482015290519081900360640190fd5b60008581526005602052604090205460ff16156105a3576040805162461bcd60e51b815260206004820152601360248201527215d2551211149055ce9393d390d157d554d151606a1b604482015290519081900360640190fd5b50600195945050505050565b6000805460ff16610607576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff1916905560045460ff1615610659576040805162461bcd60e51b815260206004820152600d60248201526c057495448445241573a53544f5609c1b604482015290519081900360640190fd5b61066584843385610469565b506000838152600560205260409020805460ff1916600117905560025461069c906001600160a01b0316338663ffffffff6109ff16565b6106d75760405162461bcd60e51b8152600401808060200182810382526026815260200180610cdb6026913960400191505060405180910390fd5b6040518390859033907f5bb95829671915ece371da722f91d5371159095dcabf2f75cd6c53facb7e1bab90600090a45060016000805460ff191660011790559392505050565b6001546001600160a01b0316331461073457600080fd5b600154600080546040516001600160a01b0393841693610100909204909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001805460008054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b0319169055565b60005461010090046001600160a01b031681565b60005460ff16610814576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff19169081905561010090046001600160a01b0316331461083957600080fd5b600254610856906001600160a01b0316828463ffffffff6109ff16565b6108915760405162461bcd60e51b8152600401808060200182810382526026815260200180610cdb6026913960400191505060405180910390fd5b60405182906001600160a01b038316907f8bc9aa758a91996a40c295edcd22bdc4f4e6a30043908c4bae108ece8d9a0ead90600090a350506000805460ff19166001179055565b60045460ff1681565b6001546001600160a01b031681565b60005461010090046001600160a01b0316331461090c57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146109d7576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6109f586828585610b1c565b9695505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485946060948a16939092909182918083835b60208310610a7e5780518252601f199092019160209182019101610a5f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ae0576040519150601f19603f3d011682016040523d82523d6000602084013e610ae5565b606091505b50915091508180156109f55750805115806109f55750808060200190516020811015610b1057600080fd5b50519695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610b7d5760405162461bcd60e51b8152600401808060200182810382526022815260200180610c976022913960400191505060405180910390fd5b8360ff16601b1480610b9257508360ff16601c145b610bcd5760405162461bcd60e51b8152600401808060200182810382526022815260200180610cb96022913960400191505060405180910390fd5b604080516000808252602080830180855289905260ff88168385015260608301879052608083018690529251909260019260a080820193601f1981019281900390910190855afa158015610c25573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610c8d576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c756557495448445241573a494e53554646494349454e545f434f4e54524143545f42414c414e4345a265627a7a723158206b1af78817e2fd76460c20573c332e6d34eaec64b8cda1a3411ce05e5805612264736f6c6343000511003200000000000000000000000071fbc1d795fcfbca43a3ebf6de0101952f31a4100000000000000000000000002f53c0e5b28b6066eb1989740f0470cd6af4655b
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b146102ba578063b702a879146102de578063b8461dd01461030a578063d4ee1d9014610312578063f2fde38b1461031a5761009e565b806306fdde03146100a357806307da68f5146101205780634d4144fe1461012a578063744fb6ca1461020057806379ba5097146102b2575b600080fd5b6100ab610340565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101286103ce565b005b6101ec6004803603608081101561014057600080fd5b8135916020810135916001600160a01b03604083013516919081019060808101606082013564010000000081111561017757600080fd5b82018360208201111561018957600080fd5b803590602001918460018302840111640100000000831117156101ab57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610469945050505050565b604080519115158252519081900360200190f35b6101ec6004803603606081101561021657600080fd5b81359160208101359181019060608101604082013564010000000081111561023d57600080fd5b82018360208201111561024f57600080fd5b8035906020019184600183028401116401000000008311171561027157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105af945050505050565b61012861071d565b6102c26107a9565b604080516001600160a01b039092168252519081900360200190f35b610128600480360360408110156102f457600080fd5b50803590602001356001600160a01b03166107bd565b6101ec6108d8565b6102c26108e1565b6101286004803603602081101561033057600080fd5b50356001600160a01b03166108f0565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103c65780601f1061039b576101008083540402835291602001916103c6565b820191906000526020600020905b8154815290600101906020018083116103a957829003601f168201915b505050505081565b60005460ff16610425576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff19169081905561010090046001600160a01b0316331461044a57600080fd5b60048054600160ff199182168117909255600080549091169091179055565b6000806104e7836104db8689893060405160200180856001600160a01b03166001600160a01b03168152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019450505050506040516020818303038152906040528051906020012061092e565b9063ffffffff61097f16565b6000549091506001600160a01b038083166101009092041614610549576040805162461bcd60e51b815260206004820152601560248201527457495448445241573a5349474e5f4641494c55524560581b604482015290519081900360640190fd5b60008581526005602052604090205460ff16156105a3576040805162461bcd60e51b815260206004820152601360248201527215d2551211149055ce9393d390d157d554d151606a1b604482015290519081900360640190fd5b50600195945050505050565b6000805460ff16610607576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff1916905560045460ff1615610659576040805162461bcd60e51b815260206004820152600d60248201526c057495448445241573a53544f5609c1b604482015290519081900360640190fd5b61066584843385610469565b506000838152600560205260409020805460ff1916600117905560025461069c906001600160a01b0316338663ffffffff6109ff16565b6106d75760405162461bcd60e51b8152600401808060200182810382526026815260200180610cdb6026913960400191505060405180910390fd5b6040518390859033907f5bb95829671915ece371da722f91d5371159095dcabf2f75cd6c53facb7e1bab90600090a45060016000805460ff191660011790559392505050565b6001546001600160a01b0316331461073457600080fd5b600154600080546040516001600160a01b0393841693610100909204909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001805460008054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b0319169055565b60005461010090046001600160a01b031681565b60005460ff16610814576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff19169081905561010090046001600160a01b0316331461083957600080fd5b600254610856906001600160a01b0316828463ffffffff6109ff16565b6108915760405162461bcd60e51b8152600401808060200182810382526026815260200180610cdb6026913960400191505060405180910390fd5b60405182906001600160a01b038316907f8bc9aa758a91996a40c295edcd22bdc4f4e6a30043908c4bae108ece8d9a0ead90600090a350506000805460ff19166001179055565b60045460ff1681565b6001546001600160a01b031681565b60005461010090046001600160a01b0316331461090c57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146109d7576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6109f586828585610b1c565b9695505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485946060948a16939092909182918083835b60208310610a7e5780518252601f199092019160209182019101610a5f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ae0576040519150601f19603f3d011682016040523d82523d6000602084013e610ae5565b606091505b50915091508180156109f55750805115806109f55750808060200190516020811015610b1057600080fd5b50519695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610b7d5760405162461bcd60e51b8152600401808060200182810382526022815260200180610c976022913960400191505060405180910390fd5b8360ff16601b1480610b9257508360ff16601c145b610bcd5760405162461bcd60e51b8152600401808060200182810382526022815260200180610cb96022913960400191505060405180910390fd5b604080516000808252602080830180855289905260ff88168385015260608301879052608083018690529251909260019260a080820193601f1981019281900390910190855afa158015610c25573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610c8d576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c756557495448445241573a494e53554646494349454e545f434f4e54524143545f42414c414e4345a265627a7a723158206b1af78817e2fd76460c20573c332e6d34eaec64b8cda1a3411ce05e5805612264736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000071fbc1d795fcfbca43a3ebf6de0101952f31a4100000000000000000000000002f53c0e5b28b6066eb1989740f0470cd6af4655b
-----Decoded View---------------
Arg [0] : _tokenAddr (address): 0x71fbC1d795FcfBcA43A3ebF6de0101952f31a410
Arg [1] : _owner (address): 0x2f53C0e5B28B6066eB1989740F0470Cd6aF4655B
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000071fbc1d795fcfbca43a3ebf6de0101952f31a410
Arg [1] : 0000000000000000000000002f53c0e5b28b6066eb1989740f0470cd6af4655b
Deployed Bytecode Sourcemap
721:1913:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;721:1913:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;911:18:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2252:81;;;:::i;:::-;;1283:483;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1283:483:6;;;;;;;;-1:-1:-1;;;;;1283:483:6;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1283:483:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1283:483:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1283:483:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1283:483:6;;-1:-1:-1;1283:483:6;;-1:-1:-1;;;;;1283:483:6:i;:::-;;;;;;;;;;;;;;;;;;1772:474;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1772:474:6;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1772:474:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1772:474:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1772:474:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1772:474:6;;-1:-1:-1;1772:474:6;;-1:-1:-1;;;;;1772:474:6:i;526:191::-;;;:::i;206:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;206:20:6;;;;;;;;;;;;;;2339:293;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2339:293:6;;;;;;-1:-1:-1;;;;;2339:293:6;;:::i;935:31::-;;;:::i;232:23::-;;;:::i;420:100::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;420:100:6;-1:-1:-1;;;;;420:100:6;;:::i;911:18::-;;;;;;;;;;;;;;;-1:-1:-1;;911:18:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2252:81::-;1931:11:3;;;;1923:55;;;;;-1:-1:-1;;;1923:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;2066:5;2052:19;;-1:-1:-1;;2052:19:3;;;;;;390:5:6;;-1:-1:-1;;;;;390:5:6;376:10;:19;368:28;;;;;;2308:11;:18;;2322:4;-1:-1:-1;;2308:18:6;;;;;;;;-1:-1:-1;2172:18:3;;;;;;;;;;2252:81:6:o;1283:483::-;1435:4;1451:19;1485:130;1605:9;1485:94;1506:8;1516:6;1524:5;1531:4;1495:41;;;;;;-1:-1:-1;;;;;1495:41:6;-1:-1:-1;;;;;1495:41:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1495:41:6;-1:-1:-1;;;;;1495:41:6;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1495:41:6;;;1485:52;;;;;;:92;:94::i;:::-;:119;:130;:119;:130;:::i;:::-;1648:5;;1451:164;;-1:-1:-1;;;;;;1633:20:6;;;1648:5;;;;;1633:20;1625:54;;;;;-1:-1:-1;;;1625:54:6;;;;;;;;;;;;-1:-1:-1;;;1625:54:6;;;;;;;;;;;;;;;1698:16;;;;:9;:16;;;;;;;;1697:17;1689:49;;;;;-1:-1:-1;;;1689:49:6;;;;;;;;;;;;-1:-1:-1;;;1689:49:6;;;;;;;;;;;;;;;-1:-1:-1;1755:4:6;;1283:483;-1:-1:-1;;;;;1283:483:6:o;1772:474::-;1920:4;1931:11:3;;;;1923:55;;;;;-1:-1:-1;;;1923:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;2066:5;2052:19;;-1:-1:-1;;2052:19:3;;;1057:11:6;;2052:19:3;1057:11:6;:20;1049:46;;;;;-1:-1:-1;;;1049:46:6;;;;;;;;;;;;-1:-1:-1;;;1049:46:6;;;;;;;;;;;;;;;1936:48;1947:6;1955:5;1962:10;1974:9;1936:10;:48::i;:::-;-1:-1:-1;1994:16:6;;;;:9;:16;;;;;:23;;-1:-1:-1;;1994:23:6;2013:4;1994:23;;;2056:9;;2048:51;;-1:-1:-1;;;;;2056:9:6;2080:10;2092:6;2048:51;:31;:51;:::i;:::-;2027:136;;;;-1:-1:-1;;;2027:136:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:40;;2212:5;;2204:6;;2192:10;;2178:40;;;;;-1:-1:-1;2235:4:6;2172:11:3;:18;;-1:-1:-1;;2172:18:3;2186:4;2172:18;;;1772:474:6;;-1:-1:-1;;;1772:474:6:o;526:191::-;592:8;;-1:-1:-1;;;;;592:8:6;578:10;:22;570:31;;;;;;644:8;;;637:5;;616:37;;-1:-1:-1;;;;;644:8:6;;;;;637:5;;;;;;;616:37;;;671:8;;;;663:16;;-1:-1:-1;;;;;;663:16:6;671:8;-1:-1:-1;;;;;671:8:6;;663:16;;;;-1:-1:-1;;;;;;689:21:6;;;526:191::o;206:20::-;;;;;;-1:-1:-1;;;;;206:20:6;;:::o;2339:293::-;1931:11:3;;;;1923:55;;;;;-1:-1:-1;;;1923:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;2066:5;2052:19;;-1:-1:-1;;2052:19:3;;;;;;390:5:6;;-1:-1:-1;;;;;390:5:6;376:10;:19;368:28;;;;;;2482:9;;2474:47;;-1:-1:-1;;;;;2482:9:6;2506:6;2514;2474:47;:31;:47;:::i;:::-;2453:132;;;;-1:-1:-1;;;2453:132:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2600:25;;2618:6;;-1:-1:-1;;;;;2600:25:6;;;;;;;;-1:-1:-1;;2172:11:3;:18;;-1:-1:-1;;2172:18:3;2186:4;2172:18;;;2339:293:6:o;935:31::-;;;;;;:::o;232:23::-;;;-1:-1:-1;;;;;232:23:6;;:::o;420:100::-;390:5;;;;;-1:-1:-1;;;;;390:5:6;376:10;:19;368:28;;;;;;493:8;:20;;-1:-1:-1;;;;;;493:20:6;-1:-1:-1;;;;;493:20:6;;;;;;;;;;420:100::o;3757:335:0:-;4013:58;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4013:58:0;;;;;;;3986:99;;;;;;3757:335::o;1064:768::-;1166:7;1231:9;:16;1251:2;1231:22;1227:94;;1269:41;;;-1:-1:-1;;;1269:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1227:94;1671:4;1656:20;;1650:27;1716:4;1701:20;;1695:27;1769:4;1754:20;;1748:27;1387:9;1740:36;1803:22;1811:4;1740:36;1650:27;1695;1803:7;:22::i;:::-;1796:29;1064:768;-1:-1:-1;;;;;;1064:768:0:o;156:340:5:-;365:45;;;-1:-1:-1;;;;;365:45:5;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;365:45:5;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;354:57:5;;;;235:4;;;;333:17;;354:10;;;365:45;;354:57;;;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;354:57:5;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;318:93:5;;;;430:7;:57;;;;-1:-1:-1;442:11:5;;:16;;:44;;;473:4;462:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;462:24:5;422:66;156:340;-1:-1:-1;;;;;;156:340:5:o;1965:1502:0:-;2088:7;3032:66;3002:96;;;2981:177;;;;-1:-1:-1;;;2981:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3176:1;:7;;3181:2;3176:7;:18;;;;3187:1;:7;;3192:2;3187:7;3176:18;3168:65;;;;-1:-1:-1;;;3168:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3345:24;;;3328:14;3345:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3328:14;;3345:24;;;;;;;-1:-1:-1;;3345:24:0;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3345:24:0;;-1:-1:-1;;3345:24:0;;;-1:-1:-1;;;;;;;3387:20:0;;3379:57;;;;;-1:-1:-1;;;3379:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3454:6;1965:1502;-1:-1:-1;;;;;1965:1502:0:o
Swarm Source
bzzr://6b1af78817e2fd76460c20573c332e6d34eaec64b8cda1a3411ce05e58056122
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.