Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 134 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create Avatar | 6460829 | 2285 days ago | IN | 0 ETH | 0.00000807 | ||||
Create Avatar | 6245959 | 2321 days ago | IN | 0 ETH | 0.00086771 | ||||
Create Avatar | 6243103 | 2321 days ago | IN | 0 ETH | 0.00050265 | ||||
Create Avatar | 6242684 | 2321 days ago | IN | 0 ETH | 0.00051704 | ||||
Create Avatar | 6242182 | 2321 days ago | IN | 0 ETH | 0.00054423 | ||||
Create Avatar | 6242169 | 2321 days ago | IN | 0 ETH | 0.00056806 | ||||
Create Avatar | 6234612 | 2323 days ago | IN | 0 ETH | 0.00049198 | ||||
Create Avatar | 6231783 | 2323 days ago | IN | 0 ETH | 0.00043182 | ||||
Create Avatar | 6228662 | 2324 days ago | IN | 0 ETH | 0.00087248 | ||||
Create Avatar | 6226092 | 2324 days ago | IN | 0 ETH | 0.00067484 | ||||
Create Avatar | 6225407 | 2324 days ago | IN | 0 ETH | 0.00043182 | ||||
Create Avatar | 6223123 | 2325 days ago | IN | 0 ETH | 0.00065597 | ||||
Create Avatar | 6219692 | 2325 days ago | IN | 0 ETH | 0.00005337 | ||||
Create Avatar | 6219692 | 2325 days ago | IN | 0 ETH | 0.00043074 | ||||
Create Avatar | 6218851 | 2325 days ago | IN | 0 ETH | 0.00043074 | ||||
Create Avatar | 6217552 | 2326 days ago | IN | 0 ETH | 0.00108435 | ||||
Create Avatar | 6217483 | 2326 days ago | IN | 0 ETH | 0.00071409 | ||||
Create Avatar | 6211711 | 2327 days ago | IN | 0 ETH | 0.00062211 | ||||
Create Avatar | 6205925 | 2328 days ago | IN | 0 ETH | 0.00215372 | ||||
Create Avatar | 6204268 | 2328 days ago | IN | 0 ETH | 0.00047646 | ||||
Create Avatar | 6201703 | 2328 days ago | IN | 0 ETH | 0.0004563 | ||||
Create Avatar | 6201493 | 2328 days ago | IN | 0 ETH | 0.00045482 | ||||
Create Avatar | 6197384 | 2329 days ago | IN | 0 ETH | 0.00042955 | ||||
Create Avatar | 6194635 | 2329 days ago | IN | 0 ETH | 0.00065024 | ||||
Create Avatar | 6193262 | 2330 days ago | IN | 0 ETH | 0.00062194 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AvatarOperator
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-07-30 */ pragma solidity ^0.4.24; interface ERC721 /* is ERC165 */ { /// @dev This emits when ownership of any NFT changes by any mechanism. /// This event emits when NFTs are created (`from` == 0) and destroyed /// (`to` == 0). Exception: during contract creation, any number of NFTs /// may be created and assigned without emitting Transfer. At the time of /// any transfer, the approved address for that NFT (if any) is reset to none. event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); /// @dev This emits when the approved address for an NFT is changed or /// reaffirmed. The zero address indicates there is no approved address. /// When a Transfer event emits, this also indicates that the approved /// address for that NFT (if any) is reset to none. event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); /// @dev This emits when an operator is enabled or disabled for an owner. /// The operator can manage all NFTs of the owner. event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); /// @notice Count all NFTs assigned to an owner /// @dev NFTs assigned to the zero address are considered invalid, and this /// function throws for queries about the zero address. /// @param _owner An address for whom to query the balance /// @return The number of NFTs owned by `_owner`, possibly zero function balanceOf(address _owner) external view returns (uint256); /// @notice Find the owner of an NFT /// @dev NFTs assigned to zero address are considered invalid, and queries /// about them do throw. /// @param _tokenId The identifier for an NFT /// @return The address of the owner of the NFT function ownerOf(uint256 _tokenId) external view returns (address); /// @notice Transfers the ownership of an NFT from one address to another address /// @dev Throws unless `msg.sender` is the current owner, an authorized /// operator, or the approved address for this NFT. Throws if `_from` is /// not the current owner. Throws if `_to` is the zero address. Throws if /// `_tokenId` is not a valid NFT. When transfer is complete, this function /// checks if `_to` is a smart contract (code size > 0). If so, it calls /// `onERC721Received` on `_to` and throws if the return value is not /// `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`. /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer /// @param data Additional data with no specified format, sent in call to `_to` function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external; /// @notice Transfers the ownership of an NFT from one address to another address /// @dev This works identically to the other function with an extra data parameter, /// except this function just sets data to "". /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer function safeTransferFrom(address _from, address _to, uint256 _tokenId) external; /// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE /// TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE /// THEY MAY BE PERMANENTLY LOST /// @dev Throws unless `msg.sender` is the current owner, an authorized /// operator, or the approved address for this NFT. Throws if `_from` is /// not the current owner. Throws if `_to` is the zero address. Throws if /// `_tokenId` is not a valid NFT. /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer function transferFrom(address _from, address _to, uint256 _tokenId) external; /// @notice Change or reaffirm the approved address for an NFT /// @dev The zero address indicates there is no approved address. /// Throws unless `msg.sender` is the current NFT owner, or an authorized /// operator of the current owner. /// @param _approved The new approved NFT controller /// @param _tokenId The NFT to approve function approve(address _approved, uint256 _tokenId) external; /// @notice Enable or disable approval for a third party ("operator") to manage /// all of `msg.sender`'s assets /// @dev Emits the ApprovalForAll event. The contract MUST allow /// multiple operators per owner. /// @param _operator Address to add to the set of authorized operators /// @param _approved True if the operator is approved, false to revoke approval function setApprovalForAll(address _operator, bool _approved) external; /// @notice Get the approved address for a single NFT /// @dev Throws if `_tokenId` is not a valid NFT. /// @param _tokenId The NFT to find the approved address for /// @return The approved address for this NFT, or the zero address if there is none function getApproved(uint256 _tokenId) external view returns (address); /// @notice Query if an address is an authorized operator for another address /// @param _owner The address that owns the NFTs /// @param _operator The address that acts on behalf of the owner /// @return True if `_operator` is an approved operator for `_owner`, false otherwise function isApprovedForAll(address _owner, address _operator) external view returns (bool); } interface AvatarService { function updateAvatarInfo(address _owner, uint256 _tokenId, string _name, uint256 _dna) external; function createAvatar(address _owner, string _name, uint256 _dna) external returns(uint256); function getMountTokenIds(address _owner,uint256 _tokenId, address _avatarItemAddress) external view returns(uint256[]); function getAvatarInfo(uint256 _tokenId) external view returns (string _name, uint256 _dna); function getOwnedTokenIds(address _owner) external view returns(uint256[] _tokenIds); } /** * @title BitGuildAccessAdmin * @dev Allow two roles: 'owner' or 'operator' * - owner: admin/superuser (e.g. with financial rights) * - operator: can update configurations */ contract BitGuildAccessAdmin { address public owner; address[] public operators; uint public MAX_OPS = 20; // Default maximum number of operators allowed mapping(address => bool) public isOperator; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); event OperatorAdded(address operator); event OperatorRemoved(address operator); // @dev The BitGuildAccessAdmin constructor: sets owner 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 Throws if called by any non-operator account. Owner has all ops rights. modifier onlyOperator { require( isOperator[msg.sender] || msg.sender == owner, "Permission denied. Must be an operator or the 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), "Invalid new owner address." ); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } /** * @dev Allows the current owner or operators to add operators * @param _newOperator New operator address */ function addOperator(address _newOperator) public onlyOwner { require( _newOperator != address(0), "Invalid new operator address." ); // Make sure no dups require( !isOperator[_newOperator], "New operator exists." ); // Only allow so many ops require( operators.length < MAX_OPS, "Overflow." ); operators.push(_newOperator); isOperator[_newOperator] = true; emit OperatorAdded(_newOperator); } /** * @dev Allows the current owner or operators to remove operator * @param _operator Address of the operator to be removed */ function removeOperator(address _operator) public onlyOwner { // Make sure operators array is not empty require( operators.length > 0, "No operator." ); // Make sure the operator exists require( isOperator[_operator], "Not an operator." ); // Manual array manipulation: // - replace the _operator with last operator in array // - remove the last item from array address lastOperator = operators[operators.length - 1]; for (uint i = 0; i < operators.length; i++) { if (operators[i] == _operator) { operators[i] = lastOperator; } } operators.length -= 1; // remove the last element isOperator[_operator] = false; emit OperatorRemoved(_operator); } // @dev Remove ALL operators function removeAllOps() public onlyOwner { for (uint i = 0; i < operators.length; i++) { isOperator[operators[i]] = false; } operators.length = 0; } } contract AvatarOperator is BitGuildAccessAdmin { // every user can own avatar count uint8 public PER_USER_MAX_AVATAR_COUNT = 1; event AvatarCreateSuccess(address indexed _owner, uint256 tokenId); AvatarService internal avatarService; address internal avatarAddress; modifier nameValid(string _name){ bytes memory nameBytes = bytes(_name); require(nameBytes.length > 0); require(nameBytes.length < 16); for(uint8 i = 0; i < nameBytes.length; ++i) { uint8 asc = uint8(nameBytes[i]); require ( asc == 95 || (asc >= 48 && asc <= 57) || (asc >= 65 && asc <= 90) || (asc >= 97 && asc <= 122), "Invalid name"); } _; } function setMaxAvatarNumber(uint8 _maxNumber) external onlyOwner { PER_USER_MAX_AVATAR_COUNT = _maxNumber; } function injectAvatarService(address _addr) external onlyOwner { avatarService = AvatarService(_addr); avatarAddress = _addr; } function updateAvatarInfo(uint256 _tokenId, string _name, uint256 _dna) external nameValid(_name){ avatarService.updateAvatarInfo(msg.sender, _tokenId, _name, _dna); } function createAvatar(string _name, uint256 _dna) external nameValid(_name) returns (uint256 _tokenId){ require(ERC721(avatarAddress).balanceOf(msg.sender) < PER_USER_MAX_AVATAR_COUNT); _tokenId = avatarService.createAvatar(msg.sender, _name, _dna); emit AvatarCreateSuccess(msg.sender, _tokenId); } function getMountTokenIds(uint256 _tokenId, address _avatarItemAddress) external view returns(uint256[]){ return avatarService.getMountTokenIds(msg.sender, _tokenId, _avatarItemAddress); } function getAvatarInfo(uint256 _tokenId) external view returns (string _name, uint256 _dna) { return avatarService.getAvatarInfo(_tokenId); } function getOwnedTokenIds() external view returns(uint256[] _tokenIds) { return avatarService.getOwnedTokenIds(msg.sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"PER_USER_MAX_AVATAR_COUNT","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getAvatarInfo","outputs":[{"name":"_name","type":"string"},{"name":"_dna","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"injectAvatarService","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOperator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OPS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOperator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_name","type":"string"},{"name":"_dna","type":"uint256"}],"name":"updateAvatarInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwnedTokenIds","outputs":[{"name":"_tokenIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"removeAllOps","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_dna","type":"uint256"}],"name":"createAvatar","outputs":[{"name":"_tokenId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"operators","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxNumber","type":"uint8"}],"name":"setMaxAvatarNumber","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_avatarItemAddress","type":"address"}],"name":"getMountTokenIds","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"AvatarCreateSuccess","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":false,"name":"operator","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operator","type":"address"}],"name":"OperatorRemoved","type":"event"}]
Contract Creation Code
608060405260146002556004805460ff1916600117905560008054600160a060020a031916331790556112bf806100376000396000f3006080604052600436106100cc5763ffffffff60e060020a60003504166334df8b6381146100d157806343a92f24146100fc57806343bd262e146101935780636d70f7ae146101b6578063786431c1146101eb5780638da5cb5b146102125780639870d7fe14610243578063a59799e614610264578063ac8a584a1461028b578063b0d8b51f146102ac578063bc14016b14610311578063d1d9331814610326578063e28d49061461034a578063e8ff269e14610362578063f2fde38b1461037d578063f4ffa7a91461039e575b600080fd5b3480156100dd57600080fd5b506100e66103c2565b6040805160ff9092168252519081900360200190f35b34801561010857600080fd5b506101146004356103cb565b6040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561015757818101518382015260200161013f565b50505050905090810190601f1680156101845780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561019f57600080fd5b506101b4600160a060020a03600435166104c3565b005b3480156101c257600080fd5b506101d7600160a060020a036004351661052d565b604080519115158252519081900360200190f35b3480156101f757600080fd5b50610200610542565b60408051918252519081900360200190f35b34801561021e57600080fd5b50610227610548565b60408051600160a060020a039092168252519081900360200190f35b34801561024f57600080fd5b506101b4600160a060020a0360043516610557565b34801561027057600080fd5b506101b4600480359060248035908101910135604435610740565b34801561029757600080fd5b506101b4600160a060020a036004351661096a565b3480156102b857600080fd5b506102c1610b6e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102fd5781810151838201526020016102e5565b505050509050019250505060405180910390f35b34801561031d57600080fd5b506101b4610c6c565b34801561033257600080fd5b50610200602460048035828101929101359035610cf4565b34801561035657600080fd5b50610227600435611007565b34801561036e57600080fd5b506101b460ff6004351661102f565b34801561038957600080fd5b506101b4600160a060020a036004351661105c565b3480156103aa57600080fd5b506102c1600435600160a060020a036024351661113b565b60045460ff1681565b60606000600460019054906101000a9004600160a060020a0316600160a060020a03166343a92f24846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561042d57600080fd5b505af1158015610441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561046a57600080fd5b81019080805164010000000081111561048257600080fd5b8201602081018481111561049557600080fd5b81516401000000008111828201871017156104af57600080fd5b505060209091015190945092505050915091565b600054600160a060020a031633146104da57600080fd5b6004805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03939093169283021790556005805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b60036020526000908152604090205460ff1681565b60025481565b600054600160a060020a031681565b600054600160a060020a0316331461056e57600080fd5b600160a060020a03811615156105ce576040805160e560020a62461bcd02815260206004820152601d60248201527f496e76616c6964206e6577206f70657261746f7220616464726573732e000000604482015290519081900360640190fd5b600160a060020a03811660009081526003602052604090205460ff161561063f576040805160e560020a62461bcd02815260206004820152601460248201527f4e6577206f70657261746f72206578697374732e000000000000000000000000604482015290519081900360640190fd5b6002546001541061069a576040805160e560020a62461bcd02815260206004820152600960248201527f4f766572666c6f772e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155600081815260036020908152604091829020805460ff19169094179093558051918252517fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d929181900390910190a150565b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843750508451859450600093508392508210905061078557600080fd5b825160101161079357600080fd5b600091505b82518260ff1610156108a657828260ff168151811015156107b557fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050605f60ff82161480610809575060308160ff1610158015610809575060398160ff1611155b80610827575060418160ff16101580156108275750605a8160ff1611155b80610845575060618160ff16101580156108455750607a8160ff1611155b151561089b576040805160e560020a62461bcd02815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b816001019150610798565b600460019054906101000a9004600160a060020a0316600160a060020a0316632de541e0338a8a8a8a6040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185815260200180602001838152602001828103825285858281815260200192508082843782019150509650505050505050600060405180830381600087803b15801561094857600080fd5b505af115801561095c573d6000803e3d6000fd5b505050505050505050505050565b600080548190600160a060020a0316331461098457600080fd5b6001546000106109de576040805160e560020a62461bcd02815260206004820152600c60248201527f4e6f206f70657261746f722e0000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526003602052604090205460ff161515610a50576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420616e206f70657261746f722e00000000000000000000000000000000604482015290519081900360640190fd5b600180546000198101908110610a6257fe5b6000918252602082200154600160a060020a0316925090505b600154811015610b005782600160a060020a0316600182815481101515610a9e57fe5b600091825260209091200154600160a060020a03161415610af85781600182815481101515610ac957fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600101610a7b565b600180546000190190610b13908261124c565b50600160a060020a038316600081815260036020908152604091829020805460ff19169055815192835290517f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d9281900390910190a1505050565b60048054604080517f4fac7e41000000000000000000000000000000000000000000000000000000008152339381019390935251606092610100909204600160a060020a031691634fac7e4191602480830192600092919082900301818387803b158015610bdb57600080fd5b505af1158015610bef573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610c1857600080fd5b810190808051640100000000811115610c3057600080fd5b82016020810184811115610c4357600080fd5b8151856020820283011164010000000082111715610c6057600080fd5b50909450505050505b90565b60008054600160a060020a03163314610c8457600080fd5b5060005b600154811015610ce357600060036000600184815481101515610ca757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff1916911515919091179055600101610c88565b6000610cf060018261124c565b5050565b600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437505084518594506000935083925082109050610d3b57600080fd5b8251601011610d4957600080fd5b600091505b82518260ff161015610e5c57828260ff16815181101515610d6b57fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050605f60ff82161480610dbf575060308160ff1610158015610dbf575060398160ff1611155b80610ddd575060418160ff1610158015610ddd5750605a8160ff1611155b80610dfb575060618160ff1610158015610dfb5750607a8160ff1611155b1515610e51576040805160e560020a62461bcd02815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b816001019150610d4e565b60048054600554604080517f70a0823100000000000000000000000000000000000000000000000000000000815233948101949094525160ff90921692600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b158015610ecd57600080fd5b505af1158015610ee1573d6000803e3d6000fd5b505050506040513d6020811015610ef757600080fd5b505110610f0357600080fd5b600480546040517fc1f8056b00000000000000000000000000000000000000000000000000000000815233928101838152604482018a9052606060248301908152606483018c9052610100909304600160a060020a03169363c1f8056b9390928d928d928d92608401858580828437820191505095505050505050602060405180830381600087803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d6020811015610fc257600080fd5b505160408051828152905191965033917f3ed007694d319430cbd9343d00b5fc088e164a8862c7d5e495f40d0cbae6847e9181900360200190a2505050509392505050565b600180548290811061101557fe5b600091825260209091200154600160a060020a0316905081565b600054600160a060020a0316331461104657600080fd5b6004805460ff191660ff92909216919091179055565b600054600160a060020a0316331461107357600080fd5b600160a060020a03811615156110d3576040805160e560020a62461bcd02815260206004820152601a60248201527f496e76616c6964206e6577206f776e657220616464726573732e000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60048054604080517f911cec25000000000000000000000000000000000000000000000000000000008152339381019390935260248301859052600160a060020a03848116604485015290516060936101009093049091169163911cec2591606480830192600092919082900301818387803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111f757600080fd5b81019080805164010000000081111561120f57600080fd5b8201602081018481111561122257600080fd5b815185602082028301116401000000008211171561123f57600080fd5b5090979650505050505050565b81548183558181111561127057600083815260209020611270918101908301611275565b505050565b610c6991905b8082111561128f576000815560010161127b565b50905600a165627a7a723058208836f72f3d8a3405730a7d0d1baa8e066ee361902f26dcbf81593233b8d93ca30029
Deployed Bytecode
0x6080604052600436106100cc5763ffffffff60e060020a60003504166334df8b6381146100d157806343a92f24146100fc57806343bd262e146101935780636d70f7ae146101b6578063786431c1146101eb5780638da5cb5b146102125780639870d7fe14610243578063a59799e614610264578063ac8a584a1461028b578063b0d8b51f146102ac578063bc14016b14610311578063d1d9331814610326578063e28d49061461034a578063e8ff269e14610362578063f2fde38b1461037d578063f4ffa7a91461039e575b600080fd5b3480156100dd57600080fd5b506100e66103c2565b6040805160ff9092168252519081900360200190f35b34801561010857600080fd5b506101146004356103cb565b6040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561015757818101518382015260200161013f565b50505050905090810190601f1680156101845780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561019f57600080fd5b506101b4600160a060020a03600435166104c3565b005b3480156101c257600080fd5b506101d7600160a060020a036004351661052d565b604080519115158252519081900360200190f35b3480156101f757600080fd5b50610200610542565b60408051918252519081900360200190f35b34801561021e57600080fd5b50610227610548565b60408051600160a060020a039092168252519081900360200190f35b34801561024f57600080fd5b506101b4600160a060020a0360043516610557565b34801561027057600080fd5b506101b4600480359060248035908101910135604435610740565b34801561029757600080fd5b506101b4600160a060020a036004351661096a565b3480156102b857600080fd5b506102c1610b6e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102fd5781810151838201526020016102e5565b505050509050019250505060405180910390f35b34801561031d57600080fd5b506101b4610c6c565b34801561033257600080fd5b50610200602460048035828101929101359035610cf4565b34801561035657600080fd5b50610227600435611007565b34801561036e57600080fd5b506101b460ff6004351661102f565b34801561038957600080fd5b506101b4600160a060020a036004351661105c565b3480156103aa57600080fd5b506102c1600435600160a060020a036024351661113b565b60045460ff1681565b60606000600460019054906101000a9004600160a060020a0316600160a060020a03166343a92f24846040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561042d57600080fd5b505af1158015610441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561046a57600080fd5b81019080805164010000000081111561048257600080fd5b8201602081018481111561049557600080fd5b81516401000000008111828201871017156104af57600080fd5b505060209091015190945092505050915091565b600054600160a060020a031633146104da57600080fd5b6004805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03939093169283021790556005805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b60036020526000908152604090205460ff1681565b60025481565b600054600160a060020a031681565b600054600160a060020a0316331461056e57600080fd5b600160a060020a03811615156105ce576040805160e560020a62461bcd02815260206004820152601d60248201527f496e76616c6964206e6577206f70657261746f7220616464726573732e000000604482015290519081900360640190fd5b600160a060020a03811660009081526003602052604090205460ff161561063f576040805160e560020a62461bcd02815260206004820152601460248201527f4e6577206f70657261746f72206578697374732e000000000000000000000000604482015290519081900360640190fd5b6002546001541061069a576040805160e560020a62461bcd02815260206004820152600960248201527f4f766572666c6f772e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155600081815260036020908152604091829020805460ff19169094179093558051918252517fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d929181900390910190a150565b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843750508451859450600093508392508210905061078557600080fd5b825160101161079357600080fd5b600091505b82518260ff1610156108a657828260ff168151811015156107b557fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050605f60ff82161480610809575060308160ff1610158015610809575060398160ff1611155b80610827575060418160ff16101580156108275750605a8160ff1611155b80610845575060618160ff16101580156108455750607a8160ff1611155b151561089b576040805160e560020a62461bcd02815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b816001019150610798565b600460019054906101000a9004600160a060020a0316600160a060020a0316632de541e0338a8a8a8a6040518663ffffffff1660e060020a0281526004018086600160a060020a0316600160a060020a0316815260200185815260200180602001838152602001828103825285858281815260200192508082843782019150509650505050505050600060405180830381600087803b15801561094857600080fd5b505af115801561095c573d6000803e3d6000fd5b505050505050505050505050565b600080548190600160a060020a0316331461098457600080fd5b6001546000106109de576040805160e560020a62461bcd02815260206004820152600c60248201527f4e6f206f70657261746f722e0000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526003602052604090205460ff161515610a50576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420616e206f70657261746f722e00000000000000000000000000000000604482015290519081900360640190fd5b600180546000198101908110610a6257fe5b6000918252602082200154600160a060020a0316925090505b600154811015610b005782600160a060020a0316600182815481101515610a9e57fe5b600091825260209091200154600160a060020a03161415610af85781600182815481101515610ac957fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600101610a7b565b600180546000190190610b13908261124c565b50600160a060020a038316600081815260036020908152604091829020805460ff19169055815192835290517f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d9281900390910190a1505050565b60048054604080517f4fac7e41000000000000000000000000000000000000000000000000000000008152339381019390935251606092610100909204600160a060020a031691634fac7e4191602480830192600092919082900301818387803b158015610bdb57600080fd5b505af1158015610bef573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610c1857600080fd5b810190808051640100000000811115610c3057600080fd5b82016020810184811115610c4357600080fd5b8151856020820283011164010000000082111715610c6057600080fd5b50909450505050505b90565b60008054600160a060020a03163314610c8457600080fd5b5060005b600154811015610ce357600060036000600184815481101515610ca757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff1916911515919091179055600101610c88565b6000610cf060018261124c565b5050565b600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437505084518594506000935083925082109050610d3b57600080fd5b8251601011610d4957600080fd5b600091505b82518260ff161015610e5c57828260ff16815181101515610d6b57fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050605f60ff82161480610dbf575060308160ff1610158015610dbf575060398160ff1611155b80610ddd575060418160ff1610158015610ddd5750605a8160ff1611155b80610dfb575060618160ff1610158015610dfb5750607a8160ff1611155b1515610e51576040805160e560020a62461bcd02815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b816001019150610d4e565b60048054600554604080517f70a0823100000000000000000000000000000000000000000000000000000000815233948101949094525160ff90921692600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b158015610ecd57600080fd5b505af1158015610ee1573d6000803e3d6000fd5b505050506040513d6020811015610ef757600080fd5b505110610f0357600080fd5b600480546040517fc1f8056b00000000000000000000000000000000000000000000000000000000815233928101838152604482018a9052606060248301908152606483018c9052610100909304600160a060020a03169363c1f8056b9390928d928d928d92608401858580828437820191505095505050505050602060405180830381600087803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d6020811015610fc257600080fd5b505160408051828152905191965033917f3ed007694d319430cbd9343d00b5fc088e164a8862c7d5e495f40d0cbae6847e9181900360200190a2505050509392505050565b600180548290811061101557fe5b600091825260209091200154600160a060020a0316905081565b600054600160a060020a0316331461104657600080fd5b6004805460ff191660ff92909216919091179055565b600054600160a060020a0316331461107357600080fd5b600160a060020a03811615156110d3576040805160e560020a62461bcd02815260206004820152601a60248201527f496e76616c6964206e6577206f776e657220616464726573732e000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60048054604080517f911cec25000000000000000000000000000000000000000000000000000000008152339381019390935260248301859052600160a060020a03848116604485015290516060936101009093049091169163911cec2591606480830192600092919082900301818387803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111f757600080fd5b81019080805164010000000081111561120f57600080fd5b8201602081018481111561122257600080fd5b815185602082028301116401000000008211171561123f57600080fd5b5090979650505050505050565b81548183558181111561127057600083815260209020611270918101908301611275565b505050565b610c6991905b8082111561128f576000815560010161127b565b50905600a165627a7a723058208836f72f3d8a3405730a7d0d1baa8e066ee361902f26dcbf81593233b8d93ca30029
Swarm Source
bzzr://8836f72f3d8a3405730a7d0d1baa8e066ee361902f26dcbf81593233b8d93ca3
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.