Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,550 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Buy Prime Rights | 12623755 | 1328 days ago | IN | 0.1 ETH | 0.0003623 | ||||
Withdraw Ether | 10565455 | 1645 days ago | IN | 0 ETH | 0.00182658 | ||||
Buy Prime Rights | 10459965 | 1661 days ago | IN | 0.1 ETH | 0.00079076 | ||||
Buy Prime Rights | 10459866 | 1661 days ago | IN | 0.1 ETH | 0.00128873 | ||||
Buy Prime Rights | 10445429 | 1664 days ago | IN | 0.1 ETH | 0.00228057 | ||||
Buy Prime Rights | 10442996 | 1664 days ago | IN | 0.1 ETH | 0.00113168 | ||||
Buy Prime Rights | 10431755 | 1666 days ago | IN | 0.1 ETH | 0.00121662 | ||||
Buy Prime Rights | 10430407 | 1666 days ago | IN | 0.1 ETH | 0.00083104 | ||||
Buy Prime Rights | 10425801 | 1667 days ago | IN | 0.1 ETH | 0.00180928 | ||||
Buy Prime Rights | 10412717 | 1669 days ago | IN | 0.1 ETH | 0.00248828 | ||||
Buy Prime Rights | 10410739 | 1669 days ago | IN | 0.1 ETH | 0.00237652 | ||||
Buy Prime Rights | 10403710 | 1670 days ago | IN | 0.1 ETH | 0.00158345 | ||||
Buy Prime Rights | 10389121 | 1672 days ago | IN | 0.1 ETH | 0.00095569 | ||||
Buy Prime Rights | 10379310 | 1674 days ago | IN | 0.1 ETH | 0.00124752 | ||||
Buy Prime Rights | 10376942 | 1674 days ago | IN | 0.1 ETH | 0.0003395 | ||||
Buy Prime Rights | 10368397 | 1676 days ago | IN | 0.1 ETH | 0.00174467 | ||||
Buy Prime Rights | 10366178 | 1676 days ago | IN | 0.1 ETH | 0.00367588 | ||||
Buy Prime Rights | 10363093 | 1676 days ago | IN | 0.1 ETH | 0.0010388 | ||||
Buy Prime Rights | 10362162 | 1677 days ago | IN | 0.1 ETH | 0.00214973 | ||||
Buy Prime Rights | 10354572 | 1678 days ago | IN | 0.1 ETH | 0.00113881 | ||||
Buy Prime Rights | 10331727 | 1681 days ago | IN | 0.1 ETH | 0.0009873 | ||||
Buy Prime Rights | 10331727 | 1681 days ago | IN | 0.1 ETH | 0.00033936 | ||||
Buy Prime Rights | 10323293 | 1683 days ago | IN | 0.1 ETH | 0.0020776 | ||||
Buy Prime Rights | 10321656 | 1683 days ago | IN | 0.1 ETH | 0.0028276 | ||||
Buy Prime Rights | 10314198 | 1684 days ago | IN | 0.1 ETH | 0.00175311 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
10565455 | 1645 days ago | 15.2 ETH | ||||
9936493 | 1743 days ago | 0.1 ETH | ||||
9776326 | 1767 days ago | 15.7 ETH | ||||
9769403 | 1768 days ago | 0.1 ETH | ||||
9711937 | 1777 days ago | 0.1 ETH | ||||
9648915 | 1787 days ago | 0.1 ETH | ||||
9552577 | 1802 days ago | 0.1 ETH | ||||
9548972 | 1802 days ago | 0.1 ETH | ||||
9461253 | 1816 days ago | 0.1 ETH | ||||
9378177 | 1829 days ago | 28 ETH | ||||
9301660 | 1840 days ago | 0.1 ETH | ||||
9253695 | 1848 days ago | 0.1 ETH | ||||
9157361 | 1864 days ago | 0.1 ETH | ||||
9120385 | 1872 days ago | 0.1 ETH | ||||
8997214 | 1894 days ago | 20.1 ETH | ||||
8874042 | 1914 days ago | 0.1 ETH | ||||
8830874 | 1921 days ago | 0.1 ETH | ||||
8810871 | 1924 days ago | 0.1 ETH | ||||
8757262 | 1933 days ago | 65.9 ETH | ||||
8732150 | 1937 days ago | 0.1 ETH | ||||
8696849 | 1942 days ago | 0.1 ETH | ||||
8594596 | 1958 days ago | 0.1 ETH | ||||
8594371 | 1959 days ago | 0.1 ETH | ||||
8443731 | 1982 days ago | 0.1 ETH | ||||
8293109 | 2005 days ago | 0.1 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MCHPrime
Compiler Version
v0.5.2+commit.1df8f40c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-02-04 */ pragma solidity ^0.5.2; // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/ownership/Ownable.sol /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @return the address of the owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner()); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns (bool) { return msg.sender == _owner; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/token/ERC20/IERC20.sol /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ 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); } // File: contracts/lib/github.com/contract-library/contract-library-0.0.4/contracts/ownership/Withdrawable.sol contract Withdrawable is Ownable { function withdrawEther() external onlyOwner { msg.sender.transfer(address(this).balance); } function withdrawToken(IERC20 _token) external onlyOwner { require(_token.transfer(msg.sender, _token.balanceOf(address(this)))); } } // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/access/Roles.sol /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev give an account access to this role */ function add(Role storage role, address account) internal { require(account != address(0)); require(!has(role, account)); role.bearer[account] = true; } /** * @dev remove an account's access to this role */ function remove(Role storage role, address account) internal { require(account != address(0)); require(has(role, account)); role.bearer[account] = false; } /** * @dev check if an account has this role * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0)); return role.bearer[account]; } } // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/access/roles/PauserRole.sol contract PauserRole { using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(msg.sender); } modifier onlyPauser() { require(isPauser(msg.sender)); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyPauser { _addPauser(account); } function renouncePauser() public { _removePauser(msg.sender); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/lifecycle/Pausable.sol /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is PauserRole { event Paused(address account); event Unpaused(address account); bool private _paused; constructor () internal { _paused = false; } /** * @return true if the contract is paused, false otherwise. */ function paused() public view returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!_paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(_paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyPauser whenNotPaused { _paused = true; emit Paused(msg.sender); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyPauser whenPaused { _paused = false; emit Unpaused(msg.sender); } } // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/math/SafeMath.sol /** * @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); 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); 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); 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); 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); return a % b; } } // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/utils/ReentrancyGuard.sol /** * @title Helps contracts guard against reentrancy attacks. * @author Remco Bloemen <remco@2π.com>, Eenae <[email protected]> * @dev If you mark a function `nonReentrant`, you should also * mark it `external`. */ contract ReentrancyGuard { /// @dev counter to allow mutex lock with only one SSTORE operation uint256 private _guardCounter; constructor () internal { // The counter starts at one to prevent changing it from zero to a non-zero // value, which is a more expensive operation. _guardCounter = 1; } /** * @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() { _guardCounter += 1; uint256 localCounter = _guardCounter; _; require(localCounter == _guardCounter); } } // File: contracts/lib/github.com/contract-library/contract-library-0.0.4/contracts/DJTBase.sol contract DJTBase is Withdrawable, Pausable, ReentrancyGuard { using SafeMath for uint256; } // File: contracts/lib/github.com/contract-library/contract-library-0.0.4/contracts/access/roles/OperatorRole.sol contract OperatorRole { using Roles for Roles.Role; event OperatorAdded(address indexed account); event OperatorRemoved(address indexed account); Roles.Role private operators; constructor() public { operators.add(msg.sender); } modifier onlyOperator() { require(isOperator(msg.sender)); _; } function isOperator(address account) public view returns (bool) { return operators.has(account); } function addOperator(address account) public onlyOperator() { operators.add(account); emit OperatorAdded(account); } function removeOperator(address account) public onlyOperator() { operators.remove(account); emit OperatorRemoved(account); } } // File: contracts/lib/github.com/OpenZeppelin/openzeppelin-solidity-2.1.2/contracts/cryptography/ECDSA.sol /** * @title Elliptic curve signature operations * @dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d * TODO Remove this library once solidity supports passing a signature to ecrecover. * See https://github.com/ethereum/solidity/issues/864 */ library ECDSA { /** * @dev Recover signer address from a message by using their signature * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. * @param signature bytes signature, the signature is generated using web3.eth.sign() */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { bytes32 r; bytes32 s; uint8 v; // Check the signature length if (signature.length != 65) { return (address(0)); } // Divide the signature in r, s and v variables // 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))) } // Version of signature should be 27 or 28, but 0 and 1 are also possible versions if (v < 27) { v += 27; } // If the version is correct return the signer address if (v != 27 && v != 28) { return (address(0)); } else { return ecrecover(hash, v, r, s); } } /** * toEthSignedMessageHash * @dev prefix a bytes32 value with "\x19Ethereum Signed Message:" * and hash the result */ 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)); } } // File: contracts/MCHPrime.sol contract MCHPrime is OperatorRole, DJTBase { uint128 public primeFee; uint256 public primeTerm; uint256 public allowedUpdateBuffer; mapping(address => uint256) public addressToExpiredAt; address public validater; event PrimeFeeUpdated( uint128 PrimeFeeUpdated ); event PrimeTermAdded( address user, uint256 expiredAt, uint256 at ); event PrimeTermUpdated( uint256 primeTerm ); event AllowedUpdateBufferUpdated( uint256 allowedUpdateBuffer ); event ExpiredAtUpdated( address user, uint256 expiredAt, uint256 at ); constructor() public { primeFee = 0.1 ether; primeTerm = 30 days; allowedUpdateBuffer = 5 days; } function setValidater(address _varidater) external onlyOwner() { validater = _varidater; } function updatePrimeFee(uint128 _newPrimeFee) external onlyOwner() { primeFee = _newPrimeFee; emit PrimeFeeUpdated( primeFee ); } function updatePrimeTerm(uint256 _newPrimeTerm) external onlyOwner() { primeTerm = _newPrimeTerm; emit PrimeTermUpdated( primeTerm ); } function updateAllowedUpdateBuffer(uint256 _newAllowedUpdateBuffer) external onlyOwner() { allowedUpdateBuffer = _newAllowedUpdateBuffer; emit AllowedUpdateBufferUpdated( allowedUpdateBuffer ); } function updateExpiredAt(address _user, uint256 _expiredAt) external onlyOperator() { addressToExpiredAt[_user] = _expiredAt; emit ExpiredAtUpdated( _user, _expiredAt, block.timestamp ); } function buyPrimeRights(bytes calldata _signature) external whenNotPaused() payable { require(msg.value == primeFee, "not enough eth"); require(canUpdateNow(msg.sender), "unable to update"); require(validateSig(_signature, bytes32(uint256(msg.sender))), "invalid signature"); uint256 _now = block.timestamp; uint256 expiredAt = addressToExpiredAt[msg.sender]; if (expiredAt <= _now) { addressToExpiredAt[msg.sender] = _now.add(primeTerm); } else if(expiredAt <= _now.add(allowedUpdateBuffer)) { addressToExpiredAt[msg.sender] = expiredAt.add(primeTerm); } emit PrimeTermAdded( msg.sender, addressToExpiredAt[msg.sender], _now ); } function canUpdateNow(address _user) public view returns (bool) { uint256 _now = block.timestamp; uint256 expiredAt = addressToExpiredAt[_user]; // expired user or new user if (expiredAt <= _now) { return true; } // user who are able to extend their PrimeTerm if (expiredAt <= _now.add(allowedUpdateBuffer)) { return true; } return false; } function validateSig(bytes memory _signature, bytes32 _message) private view returns (bool) { require(validater != address(0)); address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(_message), _signature); return (signer == validater); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_newPrimeFee","type":"uint128"}],"name":"updatePrimeFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_signature","type":"bytes"}],"name":"buyPrimeRights","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newPrimeTerm","type":"uint256"}],"name":"updatePrimeTerm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addressToExpiredAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allowedUpdateBuffer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAllowedUpdateBuffer","type":"uint256"}],"name":"updateAllowedUpdateBuffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isOperator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"},{"name":"_expiredAt","type":"uint256"}],"name":"updateExpiredAt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"canUpdateNow","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"primeFee","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_varidater","type":"address"}],"name":"setValidater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"primeTerm","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"validater","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"PrimeFeeUpdated","type":"uint128"}],"name":"PrimeFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"expiredAt","type":"uint256"},{"indexed":false,"name":"at","type":"uint256"}],"name":"PrimeTermAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"primeTerm","type":"uint256"}],"name":"PrimeTermUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"allowedUpdateBuffer","type":"uint256"}],"name":"AllowedUpdateBufferUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"expiredAt","type":"uint256"},{"indexed":false,"name":"at","type":"uint256"}],"name":"ExpiredAtUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"OperatorRemoved","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b50620000363360006200018c6401000000000262001939179091906401000000009004565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36200010e336200024f640100000000026401000000009004565b6000600360006101000a81548160ff021916908315150217905550600160048190555067016345785d8a0000600560006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555062278d00600681905550620697806007819055506200034e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620001c957600080fd5b620001e48282620002b9640100000000026401000000009004565b151515620001f157600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620002738160026200018c6401000000000262001939179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002f757600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611cfc806200035e6000396000f3fe6080604052600436106101b9576000357c01000000000000000000000000000000000000000000000000000000009004806382dc1ec411610109578063ac8a584a116100a7578063c14e50ce11610081578063c14e50ce146107db578063c512d5d01461082c578063d95b18eb14610857578063f2fde38b146108ae576101b9565b8063ac8a584a146106d2578063adfc982114610723578063af823d411461078c576101b9565b806389ad3220116100e357806389ad3220146105a05780638da5cb5b146105fb5780638f32d59b146106525780639870d7fe14610681576101b9565b806382dc1ec4146104e75780638456cb5914610538578063894760691461054f576101b9565b80635c975abb116101765780636d70f7ae116101505780636d70f7ae146104395780636ef8d66d146104a2578063715018a6146104b95780637362377b146104d0576101b9565b80635c975abb146103a457806360c7f35a146103d35780636a334655146103fe576101b9565b80632a695c14146101be5780632a916b431461020b5780633f4ba83a146102845780633f5b009a1461029b57806346fbf68e146102d657806348bc2bb31461033f575b600080fd5b3480156101ca57600080fd5b50610209600480360360208110156101e157600080fd5b8101908080356fffffffffffffffffffffffffffffffff1690602001909291905050506108ff565b005b6102826004803603602081101561022157600080fd5b810190808035906020019064010000000081111561023e57600080fd5b82018360208201111561025057600080fd5b8035906020019184600183028401116401000000008311171561027257600080fd5b90919293919293905050506109c7565b005b34801561029057600080fd5b50610299610dc0565b005b3480156102a757600080fd5b506102d4600480360360208110156102be57600080fd5b8101908080359060200190929190505050610e6f565b005b3480156102e257600080fd5b50610325600480360360208110156102f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec5565b604051808215151515815260200191505060405180910390f35b34801561034b57600080fd5b5061038e6004803603602081101561036257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee2565b6040518082815260200191505060405180910390f35b3480156103b057600080fd5b506103b9610efa565b604051808215151515815260200191505060405180910390f35b3480156103df57600080fd5b506103e8610f11565b6040518082815260200191505060405180910390f35b34801561040a57600080fd5b506104376004803603602081101561042157600080fd5b8101908080359060200190929190505050610f17565b005b34801561044557600080fd5b506104886004803603602081101561045c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f6d565b604051808215151515815260200191505060405180910390f35b3480156104ae57600080fd5b506104b7610f8a565b005b3480156104c557600080fd5b506104ce610f95565b005b3480156104dc57600080fd5b506104e5611069565b005b3480156104f357600080fd5b506105366004803603602081101561050a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b005b34801561054457600080fd5b5061054d6110fc565b005b34801561055b57600080fd5b5061059e6004803603602081101561057257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ac565b005b3480156105ac57600080fd5b506105f9600480360360408110156105c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137e565b005b34801561060757600080fd5b5061061061144d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065e57600080fd5b50610667611477565b604051808215151515815260200191505060405180910390f35b34801561068d57600080fd5b506106d0600480360360208110156106a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114cf565b005b3480156106de57600080fd5b50610721600480360360208110156106f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061153d565b005b34801561072f57600080fd5b506107726004803603602081101561074657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115ab565b604051808215151515815260200191505060405180910390f35b34801561079857600080fd5b506107a161163d565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107e757600080fd5b5061082a600480360360208110156107fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165f565b005b34801561083857600080fd5b506108416116b6565b6040518082815260200191505060405180910390f35b34801561086357600080fd5b5061086c6116bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108ba57600080fd5b506108fd600480360360208110156108d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e2565b005b610907611477565b151561091257600080fd5b80600560006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507ffed96b0c64f9aaf4e519749bad60634447e9796f423a5e659d0a282eaf6117bb600560009054906101000a90046fffffffffffffffffffffffffffffffff1660405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900460ff161515156109e357600080fd5b600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634141515610a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f7420656e6f7567682065746800000000000000000000000000000000000081525060200191505060405180910390fd5b610a93336115ab565b1515610b07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f756e61626c6520746f207570646174650000000000000000000000000000000081525060200191505060405180910390fd5b610b6e82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050503373ffffffffffffffffffffffffffffffffffffffff16600102611701565b1515610be2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f696e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b60004290506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181111515610c9157610c49600654836117d090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d08565b610ca6600754836117d090919063ffffffff16565b81111515610d0757610cc3600654826117d090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b7f8665b217237a31c64ca6468b4e32bfbe2318e2ce52042d61a30c934525f9ab3a33600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a150505050565b610dc933610ec5565b1515610dd457600080fd5b600360009054906101000a900460ff161515610def57600080fd5b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b610e77611477565b1515610e8257600080fd5b806006819055507f9cbafb3744c21c389553d4ec97ef9c963c7c54b5d5fa92ecc561b1f242e5947a6006546040518082815260200191505060405180910390a150565b6000610edb8260026117f190919063ffffffff16565b9050919050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900460ff16905090565b60075481565b610f1f611477565b1515610f2a57600080fd5b806007819055507faaf2d702b0a9bc78edc2b61ca7f54ad67bf95dee4c1adaa42afa22431aeb69656007546040518082815260200191505060405180910390a150565b6000610f838260006117f190919063ffffffff16565b9050919050565b610f9333611885565b565b610f9d611477565b1515610fa857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611071611477565b151561107c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156110d9573d6000803e3d6000fd5b50565b6110e533610ec5565b15156110f057600080fd5b6110f9816118df565b50565b61110533610ec5565b151561111057600080fd5b600360009054906101000a900460ff1615151561112c57600080fd5b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6111b4611477565b15156111bf57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561127557600080fd5b505afa158015611289573d6000803e3d6000fd5b505050506040513d602081101561129f57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561133557600080fd5b505af1158015611349573d6000803e3d6000fd5b505050506040513d602081101561135f57600080fd5b8101908080519060200190929190505050151561137b57600080fd5b50565b61138733610f6d565b151561139257600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fd61dba7e9e175f676fff24c4ab21e5c385319adce64fb7217c2fdf2a4c915c93828242604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6114d833610f6d565b15156114e357600080fd5b6114f781600061193990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b61154633610f6d565b151561155157600080fd5b6115658160006119e990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b6000804290506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818111151561160957600192505050611638565b61161e600754836117d090919063ffffffff16565b8111151561163157600192505050611638565b6000925050505b919050565b600560009054906101000a90046fffffffffffffffffffffffffffffffff1681565b611667611477565b151561167257600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116ea611477565b15156116f557600080fd5b6116fe81611a98565b50565b60008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561176057600080fd5b600061177461176e84611b94565b85611bec565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161491505092915050565b60008082840190508381101515156117e757600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561182e57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6118998160026119e990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6118f381600261193990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561197557600080fd5b61197f82826117f1565b15151561198b57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a2557600080fd5b611a2f82826117f1565b1515611a3a57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ad457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b60008060008060418551141515611c095760009350505050611cca565b6020850151925060408501519150606085015160001a9050601b8160ff161015611c3457601b810190505b601b8160ff1614158015611c4c5750601c8160ff1614155b15611c5d5760009350505050611cca565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611cba573d6000803e3d6000fd5b5050506020604051035193505050505b9291505056fea165627a7a72305820bcbe19ddd94a6ec1bcf5b6e7116877d401252e10c2ab69b8544f94ffbb28194e0029
Deployed Bytecode
0x6080604052600436106101b9576000357c01000000000000000000000000000000000000000000000000000000009004806382dc1ec411610109578063ac8a584a116100a7578063c14e50ce11610081578063c14e50ce146107db578063c512d5d01461082c578063d95b18eb14610857578063f2fde38b146108ae576101b9565b8063ac8a584a146106d2578063adfc982114610723578063af823d411461078c576101b9565b806389ad3220116100e357806389ad3220146105a05780638da5cb5b146105fb5780638f32d59b146106525780639870d7fe14610681576101b9565b806382dc1ec4146104e75780638456cb5914610538578063894760691461054f576101b9565b80635c975abb116101765780636d70f7ae116101505780636d70f7ae146104395780636ef8d66d146104a2578063715018a6146104b95780637362377b146104d0576101b9565b80635c975abb146103a457806360c7f35a146103d35780636a334655146103fe576101b9565b80632a695c14146101be5780632a916b431461020b5780633f4ba83a146102845780633f5b009a1461029b57806346fbf68e146102d657806348bc2bb31461033f575b600080fd5b3480156101ca57600080fd5b50610209600480360360208110156101e157600080fd5b8101908080356fffffffffffffffffffffffffffffffff1690602001909291905050506108ff565b005b6102826004803603602081101561022157600080fd5b810190808035906020019064010000000081111561023e57600080fd5b82018360208201111561025057600080fd5b8035906020019184600183028401116401000000008311171561027257600080fd5b90919293919293905050506109c7565b005b34801561029057600080fd5b50610299610dc0565b005b3480156102a757600080fd5b506102d4600480360360208110156102be57600080fd5b8101908080359060200190929190505050610e6f565b005b3480156102e257600080fd5b50610325600480360360208110156102f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec5565b604051808215151515815260200191505060405180910390f35b34801561034b57600080fd5b5061038e6004803603602081101561036257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee2565b6040518082815260200191505060405180910390f35b3480156103b057600080fd5b506103b9610efa565b604051808215151515815260200191505060405180910390f35b3480156103df57600080fd5b506103e8610f11565b6040518082815260200191505060405180910390f35b34801561040a57600080fd5b506104376004803603602081101561042157600080fd5b8101908080359060200190929190505050610f17565b005b34801561044557600080fd5b506104886004803603602081101561045c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f6d565b604051808215151515815260200191505060405180910390f35b3480156104ae57600080fd5b506104b7610f8a565b005b3480156104c557600080fd5b506104ce610f95565b005b3480156104dc57600080fd5b506104e5611069565b005b3480156104f357600080fd5b506105366004803603602081101561050a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b005b34801561054457600080fd5b5061054d6110fc565b005b34801561055b57600080fd5b5061059e6004803603602081101561057257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ac565b005b3480156105ac57600080fd5b506105f9600480360360408110156105c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137e565b005b34801561060757600080fd5b5061061061144d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065e57600080fd5b50610667611477565b604051808215151515815260200191505060405180910390f35b34801561068d57600080fd5b506106d0600480360360208110156106a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114cf565b005b3480156106de57600080fd5b50610721600480360360208110156106f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061153d565b005b34801561072f57600080fd5b506107726004803603602081101561074657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115ab565b604051808215151515815260200191505060405180910390f35b34801561079857600080fd5b506107a161163d565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107e757600080fd5b5061082a600480360360208110156107fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165f565b005b34801561083857600080fd5b506108416116b6565b6040518082815260200191505060405180910390f35b34801561086357600080fd5b5061086c6116bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108ba57600080fd5b506108fd600480360360208110156108d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e2565b005b610907611477565b151561091257600080fd5b80600560006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055507ffed96b0c64f9aaf4e519749bad60634447e9796f423a5e659d0a282eaf6117bb600560009054906101000a90046fffffffffffffffffffffffffffffffff1660405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900460ff161515156109e357600080fd5b600560009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634141515610a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f7420656e6f7567682065746800000000000000000000000000000000000081525060200191505060405180910390fd5b610a93336115ab565b1515610b07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f756e61626c6520746f207570646174650000000000000000000000000000000081525060200191505060405180910390fd5b610b6e82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050503373ffffffffffffffffffffffffffffffffffffffff16600102611701565b1515610be2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f696e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b60004290506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181111515610c9157610c49600654836117d090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d08565b610ca6600754836117d090919063ffffffff16565b81111515610d0757610cc3600654826117d090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b7f8665b217237a31c64ca6468b4e32bfbe2318e2ce52042d61a30c934525f9ab3a33600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a150505050565b610dc933610ec5565b1515610dd457600080fd5b600360009054906101000a900460ff161515610def57600080fd5b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b610e77611477565b1515610e8257600080fd5b806006819055507f9cbafb3744c21c389553d4ec97ef9c963c7c54b5d5fa92ecc561b1f242e5947a6006546040518082815260200191505060405180910390a150565b6000610edb8260026117f190919063ffffffff16565b9050919050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900460ff16905090565b60075481565b610f1f611477565b1515610f2a57600080fd5b806007819055507faaf2d702b0a9bc78edc2b61ca7f54ad67bf95dee4c1adaa42afa22431aeb69656007546040518082815260200191505060405180910390a150565b6000610f838260006117f190919063ffffffff16565b9050919050565b610f9333611885565b565b610f9d611477565b1515610fa857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611071611477565b151561107c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156110d9573d6000803e3d6000fd5b50565b6110e533610ec5565b15156110f057600080fd5b6110f9816118df565b50565b61110533610ec5565b151561111057600080fd5b600360009054906101000a900460ff1615151561112c57600080fd5b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6111b4611477565b15156111bf57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561127557600080fd5b505afa158015611289573d6000803e3d6000fd5b505050506040513d602081101561129f57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561133557600080fd5b505af1158015611349573d6000803e3d6000fd5b505050506040513d602081101561135f57600080fd5b8101908080519060200190929190505050151561137b57600080fd5b50565b61138733610f6d565b151561139257600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fd61dba7e9e175f676fff24c4ab21e5c385319adce64fb7217c2fdf2a4c915c93828242604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6114d833610f6d565b15156114e357600080fd5b6114f781600061193990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b61154633610f6d565b151561155157600080fd5b6115658160006119e990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b6000804290506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818111151561160957600192505050611638565b61161e600754836117d090919063ffffffff16565b8111151561163157600192505050611638565b6000925050505b919050565b600560009054906101000a90046fffffffffffffffffffffffffffffffff1681565b611667611477565b151561167257600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116ea611477565b15156116f557600080fd5b6116fe81611a98565b50565b60008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561176057600080fd5b600061177461176e84611b94565b85611bec565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161491505092915050565b60008082840190508381101515156117e757600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561182e57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6118998160026119e990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6118f381600261193990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561197557600080fd5b61197f82826117f1565b15151561198b57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a2557600080fd5b611a2f82826117f1565b1515611a3a57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ad457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b60008060008060418551141515611c095760009350505050611cca565b6020850151925060408501519150606085015160001a9050601b8160ff161015611c3457601b810190505b601b8160ff1614158015611c4c5750601c8160ff1614155b15611c5d5760009350505050611cca565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611cba573d6000803e3d6000fd5b5050506020604051035193505050505b9291505056fea165627a7a72305820bcbe19ddd94a6ec1bcf5b6e7116877d401252e10c2ab69b8544f94ffbb28194e0029
Swarm Source
bzzr://bcbe19ddd94a6ec1bcf5b6e7116877d401252e10c2ab69b8544f94ffbb28194e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,315.72 | 0.1 | $331.57 |
Loading...
Loading
[ Download: CSV Export ]
[ 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.