Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,395 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Sign Up Delegate... | 11061127 | 1489 days ago | IN | 0 ETH | 0.00813303 | ||||
Sign Up Delegate... | 11054179 | 1490 days ago | IN | 0 ETH | 0.0057679 | ||||
Sign Up Delegate... | 10996433 | 1499 days ago | IN | 0 ETH | 0.00690257 | ||||
Sign Up Delegate... | 10966035 | 1504 days ago | IN | 0 ETH | 0.00728356 | ||||
Sign Up Delegate... | 10906951 | 1513 days ago | IN | 0 ETH | 0.01351993 | ||||
Sign Up Delegate... | 10902692 | 1514 days ago | IN | 0 ETH | 0.00747275 | ||||
Sign Up Delegate... | 10885271 | 1516 days ago | IN | 0 ETH | 0.031515 | ||||
Sign Up Delegate... | 10842459 | 1523 days ago | IN | 0 ETH | 0.00775505 | ||||
Sign Up Delegate... | 10819382 | 1526 days ago | IN | 0 ETH | 0.0069052 | ||||
Sign Up Delegate... | 10770179 | 1534 days ago | IN | 0 ETH | 0.02845804 | ||||
Sign Up Delegate... | 10751669 | 1537 days ago | IN | 0 ETH | 0.00539111 | ||||
Sign Up Delegate... | 10733118 | 1540 days ago | IN | 0 ETH | 0.00529653 | ||||
Sign Up Delegate... | 10604951 | 1559 days ago | IN | 0 ETH | 0.00420328 | ||||
Sign Up Delegate... | 10595178 | 1561 days ago | IN | 0 ETH | 0.0034053 | ||||
Sign Up Delegate... | 10567676 | 1565 days ago | IN | 0 ETH | 0.00420248 | ||||
Sign Up Delegate... | 10545145 | 1569 days ago | IN | 0 ETH | 0.00420328 | ||||
Sign Up Delegate... | 10525272 | 1572 days ago | IN | 0 ETH | 0.00387708 | ||||
Sign Up Delegate... | 10492915 | 1577 days ago | IN | 0 ETH | 0.00359339 | ||||
Sign Up Delegate... | 10492574 | 1577 days ago | IN | 0 ETH | 0.00387826 | ||||
Sign Up Delegate... | 10487718 | 1577 days ago | IN | 0 ETH | 0.00397134 | ||||
Sign Up Delegate... | 10438510 | 1585 days ago | IN | 0 ETH | 0.00274253 | ||||
Sign Up Delegate... | 10429815 | 1586 days ago | IN | 0 ETH | 0.0032155 | ||||
Sign Up Delegate... | 10419816 | 1588 days ago | IN | 0 ETH | 0.00420408 | ||||
Sign Up Delegate... | 10419146 | 1588 days ago | IN | 0 ETH | 0.00420248 | ||||
Sign Up Delegate... | 10419146 | 1588 days ago | IN | 0 ETH | 0.00420328 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ClientRaindrop
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-06-06 */ pragma solidity ^0.4.13; library StringUtils { struct slice { uint _len; uint _ptr; } /* * @dev Returns a slice containing the entire string. * @param self The string to make a slice from. * @return A newly allocated slice containing the entire string. */ function toSlice(string self) internal pure returns (slice) { uint ptr; assembly { ptr := add(self, 0x20) } return slice(bytes(self).length, ptr); } /* * @dev Returns a new slice containing the same data as the current slice. * @param self The slice to copy. * @return A new slice containing the same data as `self`. */ function copy(slice self) internal pure returns (slice) { return slice(self._len, self._ptr); } /* * @dev Copies a slice to a new string. * @param self The slice to copy. * @return A newly allocated string containing the slice's text. */ function toString(slice self) internal pure returns (string) { string memory ret = new string(self._len); uint retptr; assembly { retptr := add(ret, 32) } memcpy(retptr, self._ptr, self._len); return ret; } /** * Lower * * Converts all the values of a string to their corresponding lower case * value. * * @param _base When being used for a data type this is the extended object * otherwise this is the string base to convert to lower case * @return string */ function lower(string _base) internal pure returns (string) { bytes memory _baseBytes = bytes(_base); for (uint i = 0; i < _baseBytes.length; i++) { _baseBytes[i] = _lower(_baseBytes[i]); } return string(_baseBytes); } /** * Lower * * Convert an alphabetic character to lower case and return the original * value when not alphabetic * * @param _b1 The byte to be converted to lower case * @return bytes1 The converted value if the passed value was alphabetic * and in a upper case otherwise returns the original value */ function _lower(bytes1 _b1) internal pure returns (bytes1) { if (_b1 >= 0x41 && _b1 <= 0x5A) { return bytes1(uint8(_b1) + 32); } return _b1; } function memcpy(uint dest, uint src, uint len) private pure { // Copy word-length chunks while possible for (; len >= 32; len -= 32) { assembly { mstore(dest, mload(src)) } dest += 32; src += 32; } // Copy remaining bytes uint mask = 256 ** (32 - len) - 1; assembly { let srcpart := and(mload(src), not(mask)) let destpart := and(mload(dest), mask) mstore(dest, or(destpart, srcpart)) } } } contract Ownable { address public 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() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @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 { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract Withdrawable is Ownable { // Allows owner to withdraw ether from the contract function withdrawEther(address to) public onlyOwner { to.transfer(address(this).balance); } // Allows owner to withdraw ERC20 tokens from the contract function withdrawERC20Token(address tokenAddress, address to) public onlyOwner { ERC20Basic token = ERC20Basic(tokenAddress); token.transfer(to, token.balanceOf(address(this))); } } contract ClientRaindrop is Withdrawable { // attach the StringUtils library using StringUtils for string; using StringUtils for StringUtils.slice; // Events for when a user signs up for Raindrop Client and when their account is deleted event UserSignUp(string casedUserName, address userAddress); event UserDeleted(string casedUserName); // Variables allowing this contract to interact with the Hydro token address public hydroTokenAddress; uint public minimumHydroStakeUser; uint public minimumHydroStakeDelegatedUser; // User account template struct User { string casedUserName; address userAddress; } // Mapping from hashed uncased names to users (primary User directory) mapping (bytes32 => User) internal userDirectory; // Mapping from addresses to hashed uncased names (secondary directory for account recovery based on address) mapping (address => bytes32) internal addressDirectory; // Requires an address to have a minimum number of Hydro modifier requireStake(address _address, uint stake) { ERC20Basic hydro = ERC20Basic(hydroTokenAddress); require(hydro.balanceOf(_address) >= stake, "Insufficient HYDRO balance."); _; } // Allows applications to sign up users on their behalf iff users signed their permission function signUpDelegatedUser(string casedUserName, address userAddress, uint8 v, bytes32 r, bytes32 s) public requireStake(msg.sender, minimumHydroStakeDelegatedUser) { require( isSigned(userAddress, keccak256(abi.encodePacked("Create RaindropClient Hydro Account")), v, r, s), "Permission denied." ); _userSignUp(casedUserName, userAddress); } // Allows users to sign up with their own address function signUpUser(string casedUserName) public requireStake(msg.sender, minimumHydroStakeUser) { return _userSignUp(casedUserName, msg.sender); } // Allows users to delete their accounts function deleteUser() public { bytes32 uncasedUserNameHash = addressDirectory[msg.sender]; require(initialized(uncasedUserNameHash), "No user associated with the sender address."); string memory casedUserName = userDirectory[uncasedUserNameHash].casedUserName; delete addressDirectory[msg.sender]; delete userDirectory[uncasedUserNameHash]; emit UserDeleted(casedUserName); } // Allows the Hydro API to link to the Hydro token function setHydroTokenAddress(address _hydroTokenAddress) public onlyOwner { hydroTokenAddress = _hydroTokenAddress; } // Allows the Hydro API to set minimum hydro balances required for sign ups function setMinimumHydroStakes(uint newMinimumHydroStakeUser, uint newMinimumHydroStakeDelegatedUser) public onlyOwner { ERC20Basic hydro = ERC20Basic(hydroTokenAddress); // <= the airdrop amount require(newMinimumHydroStakeUser <= (222222 * 10**18), "Stake is too high."); // <= 1% of total supply require(newMinimumHydroStakeDelegatedUser <= (hydro.totalSupply() / 100), "Stake is too high."); minimumHydroStakeUser = newMinimumHydroStakeUser; minimumHydroStakeDelegatedUser = newMinimumHydroStakeDelegatedUser; } // Returns a bool indicating whether a given userName has been claimed (either exactly or as any case-variant) function userNameTaken(string userName) public view returns (bool taken) { bytes32 uncasedUserNameHash = keccak256(abi.encodePacked(userName.lower())); return initialized(uncasedUserNameHash); } // Returns user details (including cased username) by any cased/uncased user name that maps to a particular user function getUserByName(string userName) public view returns (string casedUserName, address userAddress) { bytes32 uncasedUserNameHash = keccak256(abi.encodePacked(userName.lower())); require(initialized(uncasedUserNameHash), "User does not exist."); return (userDirectory[uncasedUserNameHash].casedUserName, userDirectory[uncasedUserNameHash].userAddress); } // Returns user details by user address function getUserByAddress(address _address) public view returns (string casedUserName) { bytes32 uncasedUserNameHash = addressDirectory[_address]; require(initialized(uncasedUserNameHash), "User does not exist."); return userDirectory[uncasedUserNameHash].casedUserName; } // Checks whether the provided (v, r, s) signature was created by the private key associated with _address function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s) public pure returns (bool) { return (_isSigned(_address, messageHash, v, r, s) || _isSignedPrefixed(_address, messageHash, v, r, s)); } // Checks unprefixed signatures function _isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s) internal pure returns (bool) { return ecrecover(messageHash, v, r, s) == _address; } // Checks prefixed signatures (e.g. those created with web3.eth.sign) function _isSignedPrefixed(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s) internal pure returns (bool) { bytes memory prefix = "\x19Ethereum Signed Message:\n32"; bytes32 prefixedMessageHash = keccak256(abi.encodePacked(prefix, messageHash)); return ecrecover(prefixedMessageHash, v, r, s) == _address; } // Common internal logic for all user signups function _userSignUp(string casedUserName, address userAddress) internal { require(!initialized(addressDirectory[userAddress]), "Address already registered."); require(bytes(casedUserName).length < 31, "Username too long."); require(bytes(casedUserName).length > 3, "Username too short."); bytes32 uncasedUserNameHash = keccak256(abi.encodePacked(casedUserName.toSlice().copy().toString().lower())); require(!initialized(uncasedUserNameHash), "Username taken."); userDirectory[uncasedUserNameHash] = User(casedUserName, userAddress); addressDirectory[userAddress] = uncasedUserNameHash; emit UserSignUp(casedUserName, userAddress); } function initialized(bytes32 uncasedUserNameHash) internal view returns (bool) { return userDirectory[uncasedUserNameHash].userAddress != 0x0; // a sufficient initialization check } } contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"deleteUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minimumHydroStakeUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"casedUserName","type":"string"},{"name":"userAddress","type":"address"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"signUpDelegatedUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"casedUserName","type":"string"}],"name":"signUpUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"userName","type":"string"}],"name":"getUserByName","outputs":[{"name":"casedUserName","type":"string"},{"name":"userAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getUserByAddress","outputs":[{"name":"casedUserName","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hydroTokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMinimumHydroStakeUser","type":"uint256"},{"name":"newMinimumHydroStakeDelegatedUser","type":"uint256"}],"name":"setMinimumHydroStakes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"messageHash","type":"bytes32"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"isSigned","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minimumHydroStakeDelegatedUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_hydroTokenAddress","type":"address"}],"name":"setHydroTokenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"userName","type":"string"}],"name":"userNameTaken","outputs":[{"name":"taken","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"to","type":"address"}],"name":"withdrawERC20Token","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"casedUserName","type":"string"},{"indexed":false,"name":"userAddress","type":"address"}],"name":"UserSignUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"casedUserName","type":"string"}],"name":"UserDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405260008054600160a060020a033316600160a060020a0319909116179055611b58806100306000396000f3006080604052600436106100cc5763ffffffff60e060020a600035041663026ff05e81146100d15780632b45bcf9146100e85780632e5df0fe1461010f57806345004310146101855780634bff5009146101de57806369c212f6146102c857806375d7e4bd1461035e57806385ba9a991461038f5780638677ebe8146103aa5780638da5cb5b146103ee578063af933b5714610403578063ba75d0de14610424578063bed7437f14610439578063d35e656b1461045a578063ecfbe70c146104b3578063f2fde38b146104da575b600080fd5b3480156100dd57600080fd5b506100e66104fb565b005b3480156100f457600080fd5b506100fd610725565b60408051918252519081900360200190f35b34801561011b57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100e694369492936024939284019190819084018382808284375094975050508335600160a060020a03169450505050602081013560ff16906040810135906060013561072b565b34801561019157600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100e69436949293602493928401919081908401838280828437509497506109569650505050505050565b3480156101ea57600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610237943694929360249392840191908190840183828082843750949750610a599650505050505050565b604051808060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b8381101561028c578181015183820152602001610274565b50505050905090810190601f1680156102b95780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156102d457600080fd5b506102e9600160a060020a0360043516610c43565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036a57600080fd5b50610373610d5e565b60408051600160a060020a039092168252519081900360200190f35b34801561039b57600080fd5b506100e6600435602435610d6d565b3480156103b657600080fd5b506103da600160a060020a036004351660243560ff60443516606435608435610ed1565b604080519115158252519081900360200190f35b3480156103fa57600080fd5b50610373610efd565b34801561040f57600080fd5b506100e6600160a060020a0360043516610f0c565b34801561043057600080fd5b506100fd610f65565b34801561044557600080fd5b506100e6600160a060020a0360043516610f6b565b34801561046657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103da943694929360249392840191908190840183828082843750949750610fb59650505050505050565b3480156104bf57600080fd5b506100e6600160a060020a0360043581169060243516611095565b3480156104e657600080fd5b506100e6600160a060020a03600435166111c9565b600160a060020a033316600090815260056020526040902054606061051f82611261565b151561059b576040805160e560020a62461bcd02815260206004820152602b60248201527f4e6f2075736572206173736f6369617465642077697468207468652073656e6460448201527f657220616464726573732e000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008281526004602090815260409182902080548351601f60026101006001851615026000190190931692909204918201849004840281018401909452808452909183018282801561062e5780601f106106035761010080835404028352916020019161062e565b820191906000526020600020905b81548152906001019060200180831161061157829003601f168201915b505050600160a060020a033316600090815260056020908152604080832083905587835260049091528120939450915061066a90508282611a37565b50600101805473ffffffffffffffffffffffffffffffffffffffff1916905560408051602080825283518183015283517f28f7ad4961343bc792aec8e7886fc38c6847f9cd253ec14a633ff3bed8370883938593928392918301919085019080838360005b838110156106e75781810151838201526020016106cf565b50505050905090810190601f1680156107145780820380516001836020036101000a031916815260200191505b509250505060405180910390a15050565b60025481565b600354600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0333818116600484015292519294931691839183916370a08231916024808201926020929091908290030181600087803b15801561079c57600080fd5b505af11580156107b0573d6000803e3d6000fd5b505050506040513d60208110156107c657600080fd5b5051101561081e576040805160e560020a62461bcd02815260206004820152601b60248201527f496e73756666696369656e7420485944524f2062616c616e63652e0000000000604482015290519081900360640190fd5b6108ec8760405160200180807f437265617465205261696e64726f70436c69656e7420487964726f204163636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060230190506040516020818303038152906040526040518082805190602001908083835b602083106108b75780518252601f199092019160209182019101610898565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020888888610ed1565b1515610942576040805160e560020a62461bcd02815260206004820152601260248201527f5065726d697373696f6e2064656e6965642e0000000000000000000000000000604482015290519081900360640190fd5b61094c8888611284565b5050505050505050565b600254600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0333818116600484015292519294931691839183916370a08231916024808201926020929091908290030181600087803b1580156109c757600080fd5b505af11580156109db573d6000803e3d6000fd5b505050506040513d60208110156109f157600080fd5b50511015610a49576040805160e560020a62461bcd02815260206004820152601b60248201527f496e73756666696369656e7420485944524f2062616c616e63652e0000000000604482015290519081900360640190fd5b610a538433611284565b50505050565b6060600080610a678461161f565b6040516020018082805190602001908083835b60208310610a995780518252601f199092019160209182019101610a7a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610afc5780518252601f199092019160209182019101610add565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050610b3481611261565b1515610b8a576040805160e560020a62461bcd02815260206004820152601460248201527f5573657220646f6573206e6f742065786973742e000000000000000000000000604482015290519081900360640190fd5b60008181526004602090815260409182902060018082015482548551601f6002948316156101000260001901909216939093049081018590048502830185019095528482529193600160a060020a039092169290918491830182828015610c325780601f10610c0757610100808354040283529160200191610c32565b820191906000526020600020905b815481529060010190602001808311610c1557829003601f168201915b505050505091509250925050915091565b600160a060020a038116600090815260056020526040902054606090610c6881611261565b1515610cbe576040805160e560020a62461bcd02815260206004820152601460248201527f5573657220646f6573206e6f742065786973742e000000000000000000000000604482015290519081900360640190fd5b60008181526004602090815260409182902080548351601f600261010060018516150260001901909316929092049182018490048402810184019094528084529091830182828015610d515780601f10610d2657610100808354040283529160200191610d51565b820191906000526020600020905b815481529060010190602001808311610d3457829003601f168201915b5050505050915050919050565b600154600160a060020a031681565b6000805433600160a060020a03908116911614610d8957600080fd5b50600154600160a060020a0316692f0eadc3216237780000831115610df8576040805160e560020a62461bcd02815260206004820152601260248201527f5374616b6520697320746f6f20686967682e0000000000000000000000000000604482015290519081900360640190fd5b606481600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b5051811515610e6d57fe5b04821115610ec5576040805160e560020a62461bcd02815260206004820152601260248201527f5374616b6520697320746f6f20686967682e0000000000000000000000000000604482015290519081900360640190fd5b50600291909155600355565b6000610ee086868686866116a4565b80610ef35750610ef38686868686611729565b9695505050505050565b600054600160a060020a031681565b60005433600160a060020a03908116911614610f2757600080fd5b604051600160a060020a0380831691309091163180156108fc02916000818181858888f19350505050158015610f61573d6000803e3d6000fd5b5050565b60035481565b60005433600160a060020a03908116911614610f8657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080610fc18361161f565b6040516020018082805190602001908083835b60208310610ff35780518252601f199092019160209182019101610fd4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106110565780518252601f199092019160209182019101611037565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061108e81611261565b9392505050565b6000805433600160a060020a039081169116146110b157600080fd5b82905080600160a060020a031663a9059cbb8383600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b505050506040513d602081101561114957600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050506040513d60208110156111c257600080fd5b5050505050565b60005433600160a060020a039081169116146111e457600080fd5b600160a060020a03811615156111f957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600081815260046020526040902060010154600160a060020a031615155b919050565b600160a060020a0381166000908152600560205260408120546112a690611261565b156112fb576040805160e560020a62461bcd02815260206004820152601b60248201527f4164647265737320616c726561647920726567697374657265642e0000000000604482015290519081900360640190fd5b8251601f11611354576040805160e560020a62461bcd02815260206004820152601260248201527f557365726e616d6520746f6f206c6f6e672e0000000000000000000000000000604482015290519081900360640190fd5b82516003106113ad576040805160e560020a62461bcd02815260206004820152601360248201527f557365726e616d6520746f6f2073686f72742e00000000000000000000000000604482015290519081900360640190fd5b6113ce6113c96113c46113bf8661189d565b6118c3565b6118e9565b61161f565b6040516020018082805190602001908083835b602083106114005780518252601f1990920191602091820191016113e1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106114635780518252601f199092019160209182019101611444565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061149b81611261565b156114f0576040805160e560020a62461bcd02815260206004820152600f60248201527f557365726e616d652074616b656e2e0000000000000000000000000000000000604482015290519081900360640190fd5b604080518082018252848152600160a060020a0384166020808301919091526000848152600482529290922081518051929391926115319284920190611a7e565b50602091820151600191909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790558316600081815260058352604080822085905580518085019390935280835286519083015285517fbfba570579dd015aeb3054b92f73b1704ea3990bff6ef0ad798dcc17ddf12e51938793879390928392606084019290870191908190849084905b838110156115df5781810151838201526020016115c7565b50505050905090810190601f16801561160c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050565b60608160005b815181101561169d57611657828281518110151561163f57fe5b90602001015160f860020a900460f860020a0261193c565b828281518110151561166557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611625565b5092915050565b604080516000808252602080830180855288905260ff871683850152606083018690526080830185905292519092600160a060020a0389169260019260a08083019392601f19830192908190039091019087865af115801561170a573d6000803e3d6000fd5b50505060206040510351600160a060020a031614905095945050505050565b604080518082018252601c8082527f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208084019182529351600094859385938b939092019182918083835b602083106117945780518252601f199092019160209182019101611775565b51815160209384036101000a600019018019909216911617905292019384525060408051808503815293820190819052835193945092839250908401908083835b602083106117f45780518252601f1990920191602091820191016117d5565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8e1684870152606084018d9052608084018c90529451909750600160a060020a038f1696506001955060a080840195929450601f198201938290030191865af115801561187c573d6000803e3d6000fd5b50505060206040510351600160a060020a0316149250505095945050505050565b6118a5611af8565b50604080518082019091528151815260209182019181019190915290565b6118cb611af8565b50604080518082019091528151815260208083015190820152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611920578160200160208202803883390190505b50915060208201905061169d81856020015186600001516119f3565b60007f41000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008316108015906119d257507f5a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000831611155b156119ef578160f860020a900460200160f860020a02905061127f565b5090565b60005b60208210611a18578251845260209384019390920191601f19909101906119f6565b50905182516020929092036101000a6000190180199091169116179052565b50805460018160011615610100020316600290046000825580601f10611a5d5750611a7b565b601f016020900490600052602060002090810190611a7b9190611b0f565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611abf57805160ff1916838001178555611aec565b82800160010185558215611aec579182015b82811115611aec578251825591602001919060010190611ad1565b506119ef929150611b0f565b604080518082019091526000808252602082015290565b611b2991905b808211156119ef5760008155600101611b15565b905600a165627a7a723058208dc85eaf12914db10a33ed27b0fbe4802ea578bcf1542d3f3b1a80e7d7fa5d470029
Deployed Bytecode
0x6080604052600436106100cc5763ffffffff60e060020a600035041663026ff05e81146100d15780632b45bcf9146100e85780632e5df0fe1461010f57806345004310146101855780634bff5009146101de57806369c212f6146102c857806375d7e4bd1461035e57806385ba9a991461038f5780638677ebe8146103aa5780638da5cb5b146103ee578063af933b5714610403578063ba75d0de14610424578063bed7437f14610439578063d35e656b1461045a578063ecfbe70c146104b3578063f2fde38b146104da575b600080fd5b3480156100dd57600080fd5b506100e66104fb565b005b3480156100f457600080fd5b506100fd610725565b60408051918252519081900360200190f35b34801561011b57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100e694369492936024939284019190819084018382808284375094975050508335600160a060020a03169450505050602081013560ff16906040810135906060013561072b565b34801561019157600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100e69436949293602493928401919081908401838280828437509497506109569650505050505050565b3480156101ea57600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610237943694929360249392840191908190840183828082843750949750610a599650505050505050565b604051808060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b8381101561028c578181015183820152602001610274565b50505050905090810190601f1680156102b95780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156102d457600080fd5b506102e9600160a060020a0360043516610c43565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036a57600080fd5b50610373610d5e565b60408051600160a060020a039092168252519081900360200190f35b34801561039b57600080fd5b506100e6600435602435610d6d565b3480156103b657600080fd5b506103da600160a060020a036004351660243560ff60443516606435608435610ed1565b604080519115158252519081900360200190f35b3480156103fa57600080fd5b50610373610efd565b34801561040f57600080fd5b506100e6600160a060020a0360043516610f0c565b34801561043057600080fd5b506100fd610f65565b34801561044557600080fd5b506100e6600160a060020a0360043516610f6b565b34801561046657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103da943694929360249392840191908190840183828082843750949750610fb59650505050505050565b3480156104bf57600080fd5b506100e6600160a060020a0360043581169060243516611095565b3480156104e657600080fd5b506100e6600160a060020a03600435166111c9565b600160a060020a033316600090815260056020526040902054606061051f82611261565b151561059b576040805160e560020a62461bcd02815260206004820152602b60248201527f4e6f2075736572206173736f6369617465642077697468207468652073656e6460448201527f657220616464726573732e000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008281526004602090815260409182902080548351601f60026101006001851615026000190190931692909204918201849004840281018401909452808452909183018282801561062e5780601f106106035761010080835404028352916020019161062e565b820191906000526020600020905b81548152906001019060200180831161061157829003601f168201915b505050600160a060020a033316600090815260056020908152604080832083905587835260049091528120939450915061066a90508282611a37565b50600101805473ffffffffffffffffffffffffffffffffffffffff1916905560408051602080825283518183015283517f28f7ad4961343bc792aec8e7886fc38c6847f9cd253ec14a633ff3bed8370883938593928392918301919085019080838360005b838110156106e75781810151838201526020016106cf565b50505050905090810190601f1680156107145780820380516001836020036101000a031916815260200191505b509250505060405180910390a15050565b60025481565b600354600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0333818116600484015292519294931691839183916370a08231916024808201926020929091908290030181600087803b15801561079c57600080fd5b505af11580156107b0573d6000803e3d6000fd5b505050506040513d60208110156107c657600080fd5b5051101561081e576040805160e560020a62461bcd02815260206004820152601b60248201527f496e73756666696369656e7420485944524f2062616c616e63652e0000000000604482015290519081900360640190fd5b6108ec8760405160200180807f437265617465205261696e64726f70436c69656e7420487964726f204163636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060230190506040516020818303038152906040526040518082805190602001908083835b602083106108b75780518252601f199092019160209182019101610898565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020888888610ed1565b1515610942576040805160e560020a62461bcd02815260206004820152601260248201527f5065726d697373696f6e2064656e6965642e0000000000000000000000000000604482015290519081900360640190fd5b61094c8888611284565b5050505050505050565b600254600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0333818116600484015292519294931691839183916370a08231916024808201926020929091908290030181600087803b1580156109c757600080fd5b505af11580156109db573d6000803e3d6000fd5b505050506040513d60208110156109f157600080fd5b50511015610a49576040805160e560020a62461bcd02815260206004820152601b60248201527f496e73756666696369656e7420485944524f2062616c616e63652e0000000000604482015290519081900360640190fd5b610a538433611284565b50505050565b6060600080610a678461161f565b6040516020018082805190602001908083835b60208310610a995780518252601f199092019160209182019101610a7a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610afc5780518252601f199092019160209182019101610add565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050610b3481611261565b1515610b8a576040805160e560020a62461bcd02815260206004820152601460248201527f5573657220646f6573206e6f742065786973742e000000000000000000000000604482015290519081900360640190fd5b60008181526004602090815260409182902060018082015482548551601f6002948316156101000260001901909216939093049081018590048502830185019095528482529193600160a060020a039092169290918491830182828015610c325780601f10610c0757610100808354040283529160200191610c32565b820191906000526020600020905b815481529060010190602001808311610c1557829003601f168201915b505050505091509250925050915091565b600160a060020a038116600090815260056020526040902054606090610c6881611261565b1515610cbe576040805160e560020a62461bcd02815260206004820152601460248201527f5573657220646f6573206e6f742065786973742e000000000000000000000000604482015290519081900360640190fd5b60008181526004602090815260409182902080548351601f600261010060018516150260001901909316929092049182018490048402810184019094528084529091830182828015610d515780601f10610d2657610100808354040283529160200191610d51565b820191906000526020600020905b815481529060010190602001808311610d3457829003601f168201915b5050505050915050919050565b600154600160a060020a031681565b6000805433600160a060020a03908116911614610d8957600080fd5b50600154600160a060020a0316692f0eadc3216237780000831115610df8576040805160e560020a62461bcd02815260206004820152601260248201527f5374616b6520697320746f6f20686967682e0000000000000000000000000000604482015290519081900360640190fd5b606481600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b5051811515610e6d57fe5b04821115610ec5576040805160e560020a62461bcd02815260206004820152601260248201527f5374616b6520697320746f6f20686967682e0000000000000000000000000000604482015290519081900360640190fd5b50600291909155600355565b6000610ee086868686866116a4565b80610ef35750610ef38686868686611729565b9695505050505050565b600054600160a060020a031681565b60005433600160a060020a03908116911614610f2757600080fd5b604051600160a060020a0380831691309091163180156108fc02916000818181858888f19350505050158015610f61573d6000803e3d6000fd5b5050565b60035481565b60005433600160a060020a03908116911614610f8657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080610fc18361161f565b6040516020018082805190602001908083835b60208310610ff35780518252601f199092019160209182019101610fd4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106110565780518252601f199092019160209182019101611037565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061108e81611261565b9392505050565b6000805433600160a060020a039081169116146110b157600080fd5b82905080600160a060020a031663a9059cbb8383600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b505050506040513d602081101561114957600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050506040513d60208110156111c257600080fd5b5050505050565b60005433600160a060020a039081169116146111e457600080fd5b600160a060020a03811615156111f957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600081815260046020526040902060010154600160a060020a031615155b919050565b600160a060020a0381166000908152600560205260408120546112a690611261565b156112fb576040805160e560020a62461bcd02815260206004820152601b60248201527f4164647265737320616c726561647920726567697374657265642e0000000000604482015290519081900360640190fd5b8251601f11611354576040805160e560020a62461bcd02815260206004820152601260248201527f557365726e616d6520746f6f206c6f6e672e0000000000000000000000000000604482015290519081900360640190fd5b82516003106113ad576040805160e560020a62461bcd02815260206004820152601360248201527f557365726e616d6520746f6f2073686f72742e00000000000000000000000000604482015290519081900360640190fd5b6113ce6113c96113c46113bf8661189d565b6118c3565b6118e9565b61161f565b6040516020018082805190602001908083835b602083106114005780518252601f1990920191602091820191016113e1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106114635780518252601f199092019160209182019101611444565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061149b81611261565b156114f0576040805160e560020a62461bcd02815260206004820152600f60248201527f557365726e616d652074616b656e2e0000000000000000000000000000000000604482015290519081900360640190fd5b604080518082018252848152600160a060020a0384166020808301919091526000848152600482529290922081518051929391926115319284920190611a7e565b50602091820151600191909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790558316600081815260058352604080822085905580518085019390935280835286519083015285517fbfba570579dd015aeb3054b92f73b1704ea3990bff6ef0ad798dcc17ddf12e51938793879390928392606084019290870191908190849084905b838110156115df5781810151838201526020016115c7565b50505050905090810190601f16801561160c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050565b60608160005b815181101561169d57611657828281518110151561163f57fe5b90602001015160f860020a900460f860020a0261193c565b828281518110151561166557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611625565b5092915050565b604080516000808252602080830180855288905260ff871683850152606083018690526080830185905292519092600160a060020a0389169260019260a08083019392601f19830192908190039091019087865af115801561170a573d6000803e3d6000fd5b50505060206040510351600160a060020a031614905095945050505050565b604080518082018252601c8082527f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208084019182529351600094859385938b939092019182918083835b602083106117945780518252601f199092019160209182019101611775565b51815160209384036101000a600019018019909216911617905292019384525060408051808503815293820190819052835193945092839250908401908083835b602083106117f45780518252601f1990920191602091820191016117d5565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8e1684870152606084018d9052608084018c90529451909750600160a060020a038f1696506001955060a080840195929450601f198201938290030191865af115801561187c573d6000803e3d6000fd5b50505060206040510351600160a060020a0316149250505095945050505050565b6118a5611af8565b50604080518082019091528151815260209182019181019190915290565b6118cb611af8565b50604080518082019091528151815260208083015190820152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611920578160200160208202803883390190505b50915060208201905061169d81856020015186600001516119f3565b60007f41000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008316108015906119d257507f5a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000831611155b156119ef578160f860020a900460200160f860020a02905061127f565b5090565b60005b60208210611a18578251845260209384019390920191601f19909101906119f6565b50905182516020929092036101000a6000190180199091169116179052565b50805460018160011615610100020316600290046000825580601f10611a5d5750611a7b565b601f016020900490600052602060002090810190611a7b9190611b0f565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611abf57805160ff1916838001178555611aec565b82800160010185558215611aec579182015b82811115611aec578251825591602001919060010190611ad1565b506119ef929150611b0f565b604080518082019091526000808252602082015290565b611b2991905b808211156119ef5760008155600101611b15565b905600a165627a7a723058208dc85eaf12914db10a33ed27b0fbe4802ea578bcf1542d3f3b1a80e7d7fa5d470029
Swarm Source
bzzr://8dc85eaf12914db10a33ed27b0fbe4802ea578bcf1542d3f3b1a80e7d7fa5d47
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.