Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CBCreatureStorage
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-11-27 */ pragma solidity ^0.4.24; // File: node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting '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; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } // File: contracts/IEntityStorage.sol interface IEntityStorage { function storeBulk(uint256[] _tokenIds, uint256[] _attributes) external; function store(uint256 _tokenId, uint256 _attributes, uint256[] _componentIds) external; function remove(uint256 _tokenId) external; function list() external view returns (uint256[] tokenIds); function getAttributes(uint256 _tokenId) external view returns (uint256 attrs, uint256[] compIds); function updateAttributes(uint256 _tokenId, uint256 _attributes, uint256[] _componentIds) external; function totalSupply() external view returns (uint256); } // File: contracts/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 public owner; address public newOwner; // mapping for creature Type to Sale address[] internal controllers; //mapping(address => address) internal controllers; 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 that's not a superuser. */ modifier onlyController() { require(isController(msg.sender), "only Controller"); _; } modifier onlyOwnerOrController() { require(msg.sender == owner || isController(msg.sender), "only Owner Or Controller"); _; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner, "sender address must be the owner's address"); _; } /** * @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(address(0) != _newOwner, "new owner address must not be the owner's address"); newOwner = _newOwner; } /** * @dev Allows the new owner to confirm that they are taking control of the contract..tr */ function acceptOwnership() public { require(msg.sender == newOwner, "sender address must not be the new owner's address"); emit OwnershipTransferred(owner, msg.sender); owner = msg.sender; newOwner = address(0); } function isController(address _controller) internal view returns(bool) { for (uint8 index = 0; index < controllers.length; index++) { if (controllers[index] == _controller) { return true; } } return false; } function getControllers() public onlyOwner view returns(address[]) { return controllers; } /** * @dev Allows a new controllers to be added * @param _controller The address controller. */ function addController(address _controller) public onlyOwner { require(address(0) != _controller, "controller address must not be 0"); require(_controller != owner, "controller address must not be the owner's address"); for (uint8 index = 0; index < controllers.length; index++) { if (controllers[index] == _controller) { return; } } controllers.push(_controller); } /** * @dev Allows a new controllers to be added * @param _controller The address controller. */ function removeController(address _controller) public onlyOwner { require(address(0) != _controller, "controller address must not be 0"); for (uint8 index = 0; index < controllers.length; index++) { if (controllers[index] == _controller) { delete controllers[index]; } } } } // File: contracts/CBCreatureStorage.sol /** * @title CBCreatureStorage * @dev Composable storage contract for recording attribute data and attached components for a CryptoBeasties card. * CryptoBeasties content and source code is Copyright (C) 2018 PlayStakes LLC, All rights reserved. */ contract CBCreatureStorage is Ownable, IEntityStorage { using SafeMath for uint256; struct Token { uint256 tokenId; uint256 attributes; uint256[] componentIds; uint index; } // Array with all Tokens, used for enumeration uint256[] internal allTokens; // Maps token ids to data mapping(uint256 => Token) internal tokens; event Stored(uint256 tokenId, uint256 attributes, uint256[] componentIds); event Removed(uint256 tokenId); /** * @dev Constructor function */ constructor() public { } /** * @dev Returns whether the specified token exists * @param _tokenId uint256 ID of the token to query the existence of * @return whether the token exists */ function exists(uint256 _tokenId) public view returns (bool) { return tokens[_tokenId].tokenId == _tokenId; } /** * @dev Bulk Load of Tokens * @param _tokenIds Array of tokenIds * @param _attributes Array of packed attributes value */ function storeBulk(uint256[] _tokenIds, uint256[] _attributes) external onlyOwnerOrController { uint256[] memory _componentIds; uint startIndex = allTokens.length; for (uint index = 0; index < _tokenIds.length; index++) { require(!this.exists(_tokenIds[index])); allTokens.push(_tokenIds[index]); tokens[_tokenIds[index]] = Token(_tokenIds[index], _attributes[index], _componentIds, startIndex + index); emit Stored(_tokenIds[index], _attributes[index], _componentIds); } } /** * @dev Create a new CryptoBeasties Token * @param _tokenId ID of the token * @param _attributes Packed attributes value * @param _componentIds Array of CryptoBeasties componentIds (i.e. PowerStones) */ function store(uint256 _tokenId, uint256 _attributes, uint256[] _componentIds) external onlyOwnerOrController { require(!this.exists(_tokenId)); allTokens.push(_tokenId); tokens[_tokenId] = Token(_tokenId, _attributes, _componentIds, allTokens.length - 1); emit Stored(_tokenId, _attributes, _componentIds); } /** * @dev Remove a CryptoBeasties Token from storage * @param _tokenId ID of the token */ function remove(uint256 _tokenId) external onlyOwnerOrController { require(_tokenId > 0); require(exists(_tokenId)); uint doomedTokenIndex = tokens[_tokenId].index; delete tokens[_tokenId]; // Reorg allTokens array uint lastTokenIndex = allTokens.length.sub(1); uint256 lastTokenId = allTokens[lastTokenIndex]; // update the moved token's index tokens[lastTokenId].index = doomedTokenIndex; allTokens[doomedTokenIndex] = lastTokenId; allTokens[lastTokenIndex] = 0; allTokens.length--; emit Removed(_tokenId); } /** * @dev List all CryptoBeasties Tokens in storage */ function list() external view returns (uint256[] tokenIds) { return allTokens; } /** * @dev Gets attributes and componentIds (i.e. PowerStones) for a CryptoBeastie * @param _tokenId uint256 for the given token */ function getAttributes(uint256 _tokenId) external view returns (uint256 attrs, uint256[] compIds) { require(exists(_tokenId)); return (tokens[_tokenId].attributes, tokens[_tokenId].componentIds); } /** * @dev Update CryptoBeasties attributes and Component Ids (i.e. PowerStones) CryptoBeastie * @param _tokenId uint256 ID of the token to update * @param _attributes Packed attributes value * @param _componentIds Array of CryptoBeasties componentIds (i.e. PowerStones) */ function updateAttributes(uint256 _tokenId, uint256 _attributes, uint256[] _componentIds) external onlyOwnerOrController { require(exists(_tokenId)); require(_attributes > 0); tokens[_tokenId].attributes = _attributes; tokens[_tokenId].componentIds = _componentIds; emit Stored(_tokenId, _attributes, _componentIds); } /** * @dev Get the total number of tokens in storage */ function totalSupply() external view returns (uint256) { return allTokens.length; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"list","outputs":[{"name":"tokenIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenIds","type":"uint256[]"},{"name":"_attributes","type":"uint256[]"}],"name":"storeBulk","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_attributes","type":"uint256"},{"name":"_componentIds","type":"uint256[]"}],"name":"updateAttributes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getAttributes","outputs":[{"name":"attrs","type":"uint256"},{"name":"compIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"remove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_attributes","type":"uint256"},{"name":"_componentIds","type":"uint256[]"}],"name":"store","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getControllers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","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"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"attributes","type":"uint256"},{"indexed":false,"name":"componentIds","type":"uint256[]"}],"name":"Stored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Removed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611e1c806100606000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630f560cd7146100e057806318160ddd1461014c5780631f800f751461017757806326665c0f146101ca5780634378a6e3146102195780634cc82215146102a25780634f558e79146102cf57806379ba5097146103145780638da5cb5b1461032b578063a59c5b3414610382578063a7fc7a07146103d1578063b4e8a6c414610414578063d4ee1d9014610480578063f2fde38b146104d7578063f6a74ed71461051a575b600080fd5b3480156100ec57600080fd5b506100f561055d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561013857808201518184015260208101905061011d565b505050509050019250505060405180910390f35b34801561015857600080fd5b506101616105b5565b6040518082815260200191505060405180910390f35b34801561018357600080fd5b506101c86004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506105c2565b005b3480156101d657600080fd5b506102176004803603810190808035906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050610934565b005b34801561022557600080fd5b5061024460048036038101908080359060200190929190505050610ad6565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561028d578082015181840152602081019050610272565b50505050905001935050505060405180910390f35b3480156102ae57600080fd5b506102cd60048036038101908080359060200190929190505050610b76565b005b3480156102db57600080fd5b506102fa60048036038101908080359060200190929190505050610dab565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610dcd565b005b34801561033757600080fd5b50610340610fb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038e57600080fd5b506103cf6004803603810190808035906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050610fdc565b005b3480156103dd57600080fd5b50610412600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a6565b005b34801561042057600080fd5b50610429611624565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561046c578082015181840152602081019050610451565b505050509050019250505060405180910390f35b34801561048c57600080fd5b5061049561179c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e357600080fd5b50610518600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c2565b005b34801561052657600080fd5b5061055b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119bb565b005b606060038054806020026020016040519081016040528092919081815260200182805480156105ab57602002820191906000526020600020905b815481526020019060010190808311610597575b5050505050905090565b6000600380549050905090565b60606000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610627575061062633611c22565b5b151561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b6003805490509150600090505b8686905081101561092b573073ffffffffffffffffffffffffffffffffffffffff16634f558e7988888481811015156106dd57fe5b905060200201356040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050506040513d602081101561076057600080fd5b810190808051906020019092919050505015151561077d57600080fd5b6003878783818110151561078d57fe5b90506020020135908060018154018082558091505090600182039060005260206000200160009091929091909150555060806040519081016040528088888481811015156107d757fe5b90506020020135815260200186868481811015156107f157fe5b90506020020135815260200184815260200182840181525060046000898985818110151561081b57fe5b90506020020135815260200190815260200160002060008201518160000155602082015181600101556040820151816002019080519060200190610860929190611ce4565b50606082015181600301559050507f01dbef8bca9246eceda02335bb0324f32117413208571b4307df6cc6babef1d2878783818110151561089d57fe5b9050602002013586868481811015156108b257fe5b90506020020135856040518084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156109095780820151818401526020810190506108ee565b5050505090500194505050505060405180910390a180806001019150506106a8565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610994575061099333611c22565b5b1515610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b610a1184610dab565b1515610a1c57600080fd5b600083111515610a2b57600080fd5b8260046000868152602001908152602001600020600101819055508181600460008781526020019081526020016000206002019190610a6b929190611d31565b507f01dbef8bca9246eceda02335bb0324f32117413208571b4307df6cc6babef1d2848484846040518085815260200184815260200180602001828103825284848281815260200192506020028082843782019150509550505050505060405180910390a150505050565b60006060610ae383610dab565b1515610aee57600080fd5b60046000848152602001908152602001600020600101546004600085815260200190815260200160002060020180805480602002602001604051908101604052809291908181526020018280548015610b6657602002820191906000526020600020905b815481526020019060010190808311610b52575b5050505050905091509150915091565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bdb5750610bda33611c22565b5b1515610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b600084111515610c5e57600080fd5b610c6784610dab565b1515610c7257600080fd5b60046000858152602001908152602001600020600301549250600460008581526020019081526020016000206000808201600090556001820160009055600282016000610cbf9190611d7e565b60038201600090555050610ce26001600380549050611ccb90919063ffffffff16565b9150600382815481101515610cf357fe5b9060005260206000200154905082600460008381526020019081526020016000206003018190555080600384815481101515610d2b57fe5b90600052602060002001819055506000600383815481101515610d4a57fe5b90600052602060002001819055506003805480919060019003610d6d9190611d9f565b507ffab782eee98387fe0d957b2964e6da22a6918f525952ccad107ae25db263cc11846040518082815260200191505060405180910390a150505050565b6000816004600084815260200190815260200160002060000154149050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f73656e6465722061646472657373206d757374206e6f7420626520746865206e81526020017f6577206f776e657227732061646472657373000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061103c575061103b33611c22565b5b15156110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16634f558e79856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b505050506040513d602081101561114957600080fd5b810190808051906020019092919050505015151561116657600080fd5b60038490806001815401808255809150509060018203906000526020600020016000909192909190915055506080604051908101604052808581526020018481526020018383808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508152602001600160038054905003815250600460008681526020019081526020016000206000820151816000015560208201518160010155604082015181600201908051906020019061122e929190611ce4565b50606082015181600301559050507f01dbef8bca9246eceda02335bb0324f32117413208571b4307df6cc6babef1d2848484846040518085815260200184815260200180602001828103825284848281815260200192506020028082843782019150509550505050505060405180910390a150505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1614151515611437576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f636f6e74726f6c6c65722061646472657373206d757374206e6f74206265203081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611522576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f636f6e74726f6c6c65722061646472657373206d757374206e6f74206265207481526020017f6865206f776e657227732061646472657373000000000000000000000000000081525060400191505060405180910390fd5b600090505b6002805490508160ff1610156115b9578173ffffffffffffffffffffffffffffffffffffffff1660028260ff1681548110151561156057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115ac57611620565b8080600101915050611527565b60028290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b60606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600280548060200260200160405190810160405280929190818152602001828054801561179257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611748575b5050505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1614151515611977576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f6e6577206f776e65722061646472657373206d757374206e6f7420626520746881526020017f65206f776e65722773206164647265737300000000000000000000000000000081525060400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1614151515611b4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f636f6e74726f6c6c65722061646472657373206d757374206e6f74206265203081525060200191505060405180910390fd5b600090505b6002805490508160ff161015611c1e578173ffffffffffffffffffffffffffffffffffffffff1660028260ff16815481101515611b8a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c115760028160ff16815481101515611be357fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b8080600101915050611b51565b5050565b600080600090505b6002805490508160ff161015611cc0578273ffffffffffffffffffffffffffffffffffffffff1660028260ff16815481101515611c6357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cb35760019150611cc5565b8080600101915050611c2a565b600091505b50919050565b6000828211151515611cd957fe5b818303905092915050565b828054828255906000526020600020908101928215611d20579160200282015b82811115611d1f578251825591602001919060010190611d04565b5b509050611d2d9190611dcb565b5090565b828054828255906000526020600020908101928215611d6d579160200282015b82811115611d6c578235825591602001919060010190611d51565b5b509050611d7a9190611dcb565b5090565b5080546000825590600052602060002090810190611d9c9190611dcb565b50565b815481835581811115611dc657818360005260206000209182019101611dc59190611dcb565b5b505050565b611ded91905b80821115611de9576000816000905550600101611dd1565b5090565b905600a165627a7a723058200511884484fcf20ffc07e6c3bd2dcec95c6116eda89b788985bdde3c783151b70029
Deployed Bytecode
0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630f560cd7146100e057806318160ddd1461014c5780631f800f751461017757806326665c0f146101ca5780634378a6e3146102195780634cc82215146102a25780634f558e79146102cf57806379ba5097146103145780638da5cb5b1461032b578063a59c5b3414610382578063a7fc7a07146103d1578063b4e8a6c414610414578063d4ee1d9014610480578063f2fde38b146104d7578063f6a74ed71461051a575b600080fd5b3480156100ec57600080fd5b506100f561055d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561013857808201518184015260208101905061011d565b505050509050019250505060405180910390f35b34801561015857600080fd5b506101616105b5565b6040518082815260200191505060405180910390f35b34801561018357600080fd5b506101c86004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506105c2565b005b3480156101d657600080fd5b506102176004803603810190808035906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050610934565b005b34801561022557600080fd5b5061024460048036038101908080359060200190929190505050610ad6565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561028d578082015181840152602081019050610272565b50505050905001935050505060405180910390f35b3480156102ae57600080fd5b506102cd60048036038101908080359060200190929190505050610b76565b005b3480156102db57600080fd5b506102fa60048036038101908080359060200190929190505050610dab565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610dcd565b005b34801561033757600080fd5b50610340610fb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038e57600080fd5b506103cf6004803603810190808035906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050610fdc565b005b3480156103dd57600080fd5b50610412600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a6565b005b34801561042057600080fd5b50610429611624565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561046c578082015181840152602081019050610451565b505050509050019250505060405180910390f35b34801561048c57600080fd5b5061049561179c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104e357600080fd5b50610518600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c2565b005b34801561052657600080fd5b5061055b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119bb565b005b606060038054806020026020016040519081016040528092919081815260200182805480156105ab57602002820191906000526020600020905b815481526020019060010190808311610597575b5050505050905090565b6000600380549050905090565b60606000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610627575061062633611c22565b5b151561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b6003805490509150600090505b8686905081101561092b573073ffffffffffffffffffffffffffffffffffffffff16634f558e7988888481811015156106dd57fe5b905060200201356040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050506040513d602081101561076057600080fd5b810190808051906020019092919050505015151561077d57600080fd5b6003878783818110151561078d57fe5b90506020020135908060018154018082558091505090600182039060005260206000200160009091929091909150555060806040519081016040528088888481811015156107d757fe5b90506020020135815260200186868481811015156107f157fe5b90506020020135815260200184815260200182840181525060046000898985818110151561081b57fe5b90506020020135815260200190815260200160002060008201518160000155602082015181600101556040820151816002019080519060200190610860929190611ce4565b50606082015181600301559050507f01dbef8bca9246eceda02335bb0324f32117413208571b4307df6cc6babef1d2878783818110151561089d57fe5b9050602002013586868481811015156108b257fe5b90506020020135856040518084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156109095780820151818401526020810190506108ee565b5050505090500194505050505060405180910390a180806001019150506106a8565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610994575061099333611c22565b5b1515610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b610a1184610dab565b1515610a1c57600080fd5b600083111515610a2b57600080fd5b8260046000868152602001908152602001600020600101819055508181600460008781526020019081526020016000206002019190610a6b929190611d31565b507f01dbef8bca9246eceda02335bb0324f32117413208571b4307df6cc6babef1d2848484846040518085815260200184815260200180602001828103825284848281815260200192506020028082843782019150509550505050505060405180910390a150505050565b60006060610ae383610dab565b1515610aee57600080fd5b60046000848152602001908152602001600020600101546004600085815260200190815260200160002060020180805480602002602001604051908101604052809291908181526020018280548015610b6657602002820191906000526020600020905b815481526020019060010190808311610b52575b5050505050905091509150915091565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bdb5750610bda33611c22565b5b1515610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b600084111515610c5e57600080fd5b610c6784610dab565b1515610c7257600080fd5b60046000858152602001908152602001600020600301549250600460008581526020019081526020016000206000808201600090556001820160009055600282016000610cbf9190611d7e565b60038201600090555050610ce26001600380549050611ccb90919063ffffffff16565b9150600382815481101515610cf357fe5b9060005260206000200154905082600460008381526020019081526020016000206003018190555080600384815481101515610d2b57fe5b90600052602060002001819055506000600383815481101515610d4a57fe5b90600052602060002001819055506003805480919060019003610d6d9190611d9f565b507ffab782eee98387fe0d957b2964e6da22a6918f525952ccad107ae25db263cc11846040518082815260200191505060405180910390a150505050565b6000816004600084815260200190815260200160002060000154149050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f73656e6465722061646472657373206d757374206e6f7420626520746865206e81526020017f6577206f776e657227732061646472657373000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061103c575061103b33611c22565b5b15156110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6f6e6c79204f776e6572204f7220436f6e74726f6c6c6572000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16634f558e79856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b505050506040513d602081101561114957600080fd5b810190808051906020019092919050505015151561116657600080fd5b60038490806001815401808255809150509060018203906000526020600020016000909192909190915055506080604051908101604052808581526020018481526020018383808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508152602001600160038054905003815250600460008681526020019081526020016000206000820151816000015560208201518160010155604082015181600201908051906020019061122e929190611ce4565b50606082015181600301559050507f01dbef8bca9246eceda02335bb0324f32117413208571b4307df6cc6babef1d2848484846040518085815260200184815260200180602001828103825284848281815260200192506020028082843782019150509550505050505060405180910390a150505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1614151515611437576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f636f6e74726f6c6c65722061646472657373206d757374206e6f74206265203081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611522576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f636f6e74726f6c6c65722061646472657373206d757374206e6f74206265207481526020017f6865206f776e657227732061646472657373000000000000000000000000000081525060400191505060405180910390fd5b600090505b6002805490508160ff1610156115b9578173ffffffffffffffffffffffffffffffffffffffff1660028260ff1681548110151561156057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115ac57611620565b8080600101915050611527565b60028290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b60606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600280548060200260200160405190810160405280929190818152602001828054801561179257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611748575b5050505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1614151515611977576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f6e6577206f776e65722061646472657373206d757374206e6f7420626520746881526020017f65206f776e65722773206164647265737300000000000000000000000000000081525060400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f73656e6465722061646472657373206d75737420626520746865206f776e657281526020017f277320616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1614151515611b4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f636f6e74726f6c6c65722061646472657373206d757374206e6f74206265203081525060200191505060405180910390fd5b600090505b6002805490508160ff161015611c1e578173ffffffffffffffffffffffffffffffffffffffff1660028260ff16815481101515611b8a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c115760028160ff16815481101515611be357fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b8080600101915050611b51565b5050565b600080600090505b6002805490508160ff161015611cc0578273ffffffffffffffffffffffffffffffffffffffff1660028260ff16815481101515611c6357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cb35760019150611cc5565b8080600101915050611c2a565b600091505b50919050565b6000828211151515611cd957fe5b818303905092915050565b828054828255906000526020600020908101928215611d20579160200282015b82811115611d1f578251825591602001919060010190611d04565b5b509050611d2d9190611dcb565b5090565b828054828255906000526020600020908101928215611d6d579160200282015b82811115611d6c578235825591602001919060010190611d51565b5b509050611d7a9190611dcb565b5090565b5080546000825590600052602060002090810190611d9c9190611dcb565b50565b815481835581811115611dc657818360005260206000209182019101611dc59190611dcb565b5b505050565b611ded91905b80821115611de9576000816000905550600101611dd1565b5090565b905600a165627a7a723058200511884484fcf20ffc07e6c3bd2dcec95c6116eda89b788985bdde3c783151b70029
Swarm Source
bzzr://0511884484fcf20ffc07e6c3bd2dcec95c6116eda89b788985bdde3c783151b7
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.