Contract Overview
Balance: 0.804724573618427986 Ether
Ether Value: $69.09 (@ $85.85/ETH)
Transactions: 810 txns
Token Tracker: CryptoSport (CS)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xac5c6e5acc19c23ee9f09cdd8f091e298d6c4931at txn 0xd0c332e6dd69df20351a35ef719b9355a4882b85d472fb60e074381dc61c935c
Token Balance:
 Latest 25 transactions from a total of 810 transactions

TxHash Age From To Value [TxFee]
0xf6fb529dd75e8bbe224e40bf79d205821c2f39227d69b9eb070fe53a06cf089b123 days 1 hr ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.00296635
0xbd6e50e17d7902c85a932ac7ba156f67fb4df30de826dbc3abc455842d72ea25125 days 14 hrs ago0x89816645bd09881da13626c1b7931cbd17d29bb0  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.02 Ether0.000071298
0x7d128bca61b6a99e8c770162e8550f0a221b8a114c94c3f59271fe71c98033b1128 days 21 hrs ago0x2e3a5f60a5590959b068587c47e643e18e7f5cdf  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.1 Ether0.00052056
0x31bd250af3d860546e03cc7af6e37e6506e6f2dbc30e94835212234b75901320129 days 19 hrs ago0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000081926
0xc4e1bfd68b923386f0da70da36626122bfb4e97d89561580c530afedd1a61e68130 days 2 hrs ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.00014343
0x189292f6672f4eb350017571bc731de5523b3a8e7c9ee70272a02fabe0459fb2130 days 12 hrs ago0xedeeff70b4cd95a9a10a6cd7e5c05eebb3cf9d49  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.00032028
0xefdd824d2171e5f939241e15ccffab58a28393e83890d1e567967b8cc7bf8f0a131 days 15 hrs ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.0002036604
0xdd2671d81946b88ea74d7e999a0136919aba43fb135eb988bfd46a6e96c78b9f134 days 19 hrs ago0x9f4de26feef04adb5218dbe6752f71dd87496e8c  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.000372162
0xae35365094309f17d4acda1f9d951ba1b143b0667dbffa6ab2c2dd92dfcd03e1136 days 1 hr ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.0000449889
0x190b000d2ecce927ed72a50db64363fa5ea6b520e1ea23ce6f84d10b0c64af2e136 days 17 hrs ago0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.000188682
0xdca6083710190549a46bed86890153a46f22df7e2ab17d954e43e068a95f65fd137 days 20 hrs ago0x0d8c9d5fb5301ce26d67e2a7b345580a89917742  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.000169054
0xc10786e44939a66b7207541433eff0430aadfcdb2704cae69e75d92ec3327838137 days 20 hrs ago0x0d8c9d5fb5301ce26d67e2a7b345580a89917742  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.000075
0x43b39543413f4a98ca11fa97272def29f614d801e0dda3fc19147d95e5c8758e138 days 12 hrs ago0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.00034039
0xb20e6d7bb953ae6ca48102286c61f5b760e4973302cca80133833f9ae2314d46138 days 12 hrs ago0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000142722
0xd4ba5cdefdf5f8cacaa919ff3f9ffbce941c3d7405cc79e7a47c3c2e6f015d9a141 days 1 hr ago0x0d8c9d5fb5301ce26d67e2a7b345580a89917742  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.000478962
0x6d98eb356bf379e882e25d4b8911b3e47b3d268e6b6683a52bab2816b7a3755c141 days 2 hrs ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.00032028
0xb20df3b80f1b3a343c2fcddea91f051d302291fe4de04c22f635f93cd496b5e1141 days 2 hrs ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000046246
0x4be8a14be71e49f12a20fce32a34f996cf8912d87bf592f6be6d75b8183cb800141 days 2 hrs ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000081798
0xe3e40627a9b1b2f33d8a50a709c36ad9e6cb07a1f2b668c6f51560d307cdd71d141 days 2 hrs ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000215145
0x8f313db2cb3aa0651537363f9f20a1a0581ea7c17e739b17e55ec8cb80883390143 days 58 mins ago0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.00036285
0x4733108980c7299227b8167a5a3c5548cbb9e671fb712a5ffc4b467512ebaf8c144 days 23 mins ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.001359784
0x807c94b4511ab5feb982d62b7d95344df988b6b1fd8004b2a80642573908b265144 days 59 mins ago0xe1dadfde22c684e8c89f28df55a04cd12b4bfca7  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000774522
0xf99217a6fba8dc70b386825a77a7333368f4735deb136e8e491556bd26b29345145 days 14 hrs ago0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000143326
0x97cab26d12f6e9ae8bb6cf7e7c86b5e65d08cb4da763470b7a789b505f6d2b44146 days 40 mins ago0x9f4de26feef04adb5218dbe6752f71dd87496e8c  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.01 Ether0.000372162
0x21b647a9cebaba2add18178e55fb3c52bb0dfb8ae3231e9d0fe69ff8558455ac147 days 18 hrs ago0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.02 Ether0.00048042
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x31bd250af3d860546e03cc7af6e37e6506e6f2dbc30e94835212234b759013206099029129 days 19 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc0.0285 Ether
0xdd2671d81946b88ea74d7e999a0136919aba43fb135eb988bfd46a6e96c78b9f6069364134 days 19 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x0e5d7e7130cebebd7e81c9ad6b935e48d17eac7f0.0001 Ether
0xae35365094309f17d4acda1f9d951ba1b143b0667dbffa6ab2c2dd92dfcd03e16061950136 days 1 hr ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xe1dadfde22c684e8c89f28df55a04cd12b4bfca70.019 Ether
0xdca6083710190549a46bed86890153a46f22df7e2ab17d954e43e068a95f65fd6051469137 days 20 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xb821552466c6391925ace5450d58285cd66c37140.0001 Ether
0xc10786e44939a66b7207541433eff0430aadfcdb2704cae69e75d92ec33278386051378137 days 20 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xb821552466c6391925ace5450d58285cd66c37140.0001 Ether
0x4be8a14be71e49f12a20fce32a34f996cf8912d87bf592f6be6d75b8183cb8006032013141 days 2 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xe1dadfde22c684e8c89f28df55a04cd12b4bfca70.019 Ether
0x97cab26d12f6e9ae8bb6cf7e7c86b5e65d08cb4da763470b7a789b505f6d2b446003048146 days 40 mins ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x0e5d7e7130cebebd7e81c9ad6b935e48d17eac7f0.0001 Ether
0x5da708a0e67f0fd4663c61b49ec8498f7e78667567098eb8fd61ea815dacd2595951860154 days 16 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x2e223fb6abe2344eebc6376e48e0ff4169358fbc0.01425 Ether
0xde3d32a02319d317c87b17ff884ee303d472292d201ef5fbcac244816fbf538f5946469155 days 14 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xac5c6e5acc19c23ee9f09cdd8f091e298d6c49310.0095 Ether
0x657b85ded3c0650a46d7538b4526092378b3601ae97fc581006b18d97f71324c5944704155 days 21 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3ab65a90e831d496d314c028b0993c54ae1ed1020.0001 Ether
0xae39566dcb43a02dbb92a1cdfd1a5ae388a9c0535be19d5f903a8ea0d7f603e95934322157 days 16 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3ab65a90e831d496d314c028b0993c54ae1ed1020.0001 Ether
0xa7250d88089d250fcaf0bee6abc00ef0b7492354fa22809850e5a90c4d99419d5927969158 days 18 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xa40d996100503d348261b2943a6e72ecb858601e0.0266 Ether
0x2fc8bc186cefa443ce0c3a8e647616daff7dee94418a3619abff8328289e27895922498159 days 17 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x2e223fb6abe2344eebc6376e48e0ff4169358fbc0.015833333333333333 Ether
0xa95c6351e4ba8674060235673a44d01b2b1fcc78107dcea2feb0048499ef5ebe5903916162 days 22 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xd09756eafbdd1e6b9ca226acadf750cb94f16c120.00475 Ether
0xbfcfa949b4d6152637468525e49557a5f02e66b66137b59491f88f3848b2a3175895829164 days 7 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x9e958cde4190a5e8294793cfabe3f190d1bab2f80.055416666666666666 Ether
0x03332077ca73b311da1ffc24230f663344fc85ae32bfbc0c00a9bb0acdf6e8aa5882659166 days 13 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xd09756eafbdd1e6b9ca226acadf750cb94f16c120.019 Ether
0xc67706b4669f84275ddf70e0f92074bc4b7c7134422f9917a6537efeb4eb39535878583167 days 5 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xa2c7d1bac272788e7cdaded3ea23bd2caa8d47c40.0001 Ether
0xddf1ad5ed0938d0dac5407a300e22624a4d422289116fe51ffbe5905eb3009bb5875303167 days 19 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x0d8c9d5fb5301ce26d67e2a7b345580a899177420.0285 Ether
0x4b9dc92ab9019e600d132ff9e2db1225d649d546c18b259b1627650ccc158cd15875136167 days 19 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00202667174690816 Ether
0xabbcea68a670f885b856f06cb56b19d5d566b75d7ac941cee4190968a2d36f145875133167 days 19 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00202667174690816 Ether
0x631eefea9221a43b7650e1ad9cc70ecc07c3dd15e2b9d5d2b4fc717c0f25fca45864347169 days 16 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3ab65a90e831d496d314c028b0993c54ae1ed1020.00005 Ether
0x41482fb2951c6f982e0cf2268c2fd9e9401c4c44d474c9eb12950c80be96ef275862984169 days 22 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x9f4de26feef04adb5218dbe6752f71dd87496e8c0.044175 Ether
0x6635368b6652467dbcc3f210a24d157bad00717c3cec61820f914dec363e1c725857082170 days 22 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc0.044175 Ether
0x35e256b014f3938a09480f28f0563d7a697ee4b4a0483c26e2746a6ec100c30d5855938171 days 3 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00202667174690816 Ether
0x30d58c78577bf8bd5b5c9b87407429f1ff128e14f4fc517a672e7ee391f596575845938172 days 21 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x0e5d7e7130cebebd7e81c9ad6b935e48d17eac7f0.00008 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CSLottery
Compiler Text: v0.4.20+commit.3155dd80
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

/*
VERSION DATE: 23/03/2018

CREATED BY: CRYPTO SPORTZ
UNJOY YOUR TEAM AND SPORTS AND EMAIL US IF YOU HAVE ANY QUESTIONS
*/

contract OraclizeI {
	address public cbAddress;
	function query(uint _timestamp, string _datasource, string _arg) external payable returns (bytes32 _id);
	function query_withGasLimit(uint _timestamp, string _datasource, string _arg, uint _gaslimit) external payable returns (bytes32 _id);
	function query2(uint _timestamp, string _datasource, string _arg1, string _arg2) public payable returns (bytes32 _id);
	function query2_withGasLimit(uint _timestamp, string _datasource, string _arg1, string _arg2, uint _gaslimit) external payable returns (bytes32 _id);
	function queryN(uint _timestamp, string _datasource, bytes _argN) public payable returns (bytes32 _id);
	function queryN_withGasLimit(uint _timestamp, string _datasource, bytes _argN, uint _gaslimit) external payable returns (bytes32 _id);
	function getPrice(string _datasource) public returns (uint _dsprice);
	function getPrice(string _datasource, uint gaslimit) public returns (uint _dsprice);
	function setProofType(byte _proofType) external;
	function setCustomGasPrice(uint _gasPrice) external;
	function randomDS_getSessionPubKeyHash() external constant returns(bytes32);
}
contract OraclizeAddrResolverI {
	function getAddress() public returns (address _addr);
}
contract usingOraclize {
	
	uint8 constant networkID_auto = 0;
	uint8 constant networkID_mainnet = 1;
	uint8 constant networkID_testnet = 2;
	uint8 constant networkID_morden = 2;
	uint8 constant networkID_consensys = 161;

	OraclizeAddrResolverI OAR;

	OraclizeI oraclize;
	modifier oraclizeAPI 
	{
		if((address(OAR)==0)||(getCodeSize(address(OAR))==0))
			oraclize_setNetwork(networkID_auto);

		if(address(oraclize) != OAR.getAddress())
			oraclize = OraclizeI(OAR.getAddress());

		_;
	}
	modifier coupon(string code){
		oraclize = OraclizeI(OAR.getAddress());
		_;
	}

	function oraclize_setNetwork(uint8 networkID) internal returns(bool)
	{
		return oraclize_setNetwork();
		networkID; // silence the warning and remain backwards compatible
	}
	
	function oraclize_setNetwork() internal returns(bool)
	{
		if (getCodeSize(0x1d3B2638a7cC9f2CB3D298A3DA7a90B67E5506ed)>0){ //mainnet
			OAR = OraclizeAddrResolverI(0x1d3B2638a7cC9f2CB3D298A3DA7a90B67E5506ed);
			return true;
		}

		if (getCodeSize(0xc03A2615D5efaf5F49F60B7BB6583eaec212fdf1)>0){ //ropsten testnet
			OAR = OraclizeAddrResolverI(0xc03A2615D5efaf5F49F60B7BB6583eaec212fdf1);
			return true;
		}

		return false;
	}
	
	function oraclize_query(string datasource, string arg, uint gaslimit) oraclizeAPI internal returns (bytes32 id){
		uint price = oraclize.getPrice(datasource, gaslimit);
		if (price > 1 ether + tx.gasprice*gaslimit) return 0; // unexpectedly high price
		return oraclize.query_withGasLimit.value(price)(0, datasource, arg, gaslimit);
	}

    function oraclize_query(uint timestamp, string datasource, string arg, uint gaslimit) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource, gaslimit);
        if (price > 1 ether + tx.gasprice*gaslimit) return 0; // unexpectedly high price
        return oraclize.query_withGasLimit.value(price)(timestamp, datasource, arg, gaslimit);
	}
	
	function oraclize_getPrice(string datasource) oraclizeAPI internal returns (uint){
		return oraclize.getPrice(datasource);
	}

	function oraclize_getPrice(string datasource, uint gaslimit) oraclizeAPI internal returns (uint){
		return oraclize.getPrice(datasource, gaslimit);
	}

    function oraclize_setCustomGasPrice(uint gasPrice) oraclizeAPI internal {
        return oraclize.setCustomGasPrice(gasPrice);
    }
	
	function oraclize_cbAddress() oraclizeAPI internal returns (address){
		return oraclize.cbAddress();
	}

	function getCodeSize(address _addr) constant internal returns(uint _size) {
		assembly {
			_size := extcodesize(_addr)
		}
	}

}

contract ERC721Abstract
{
	function implementsERC721() public pure returns (bool);
	function balanceOf(address _owner) public view returns (uint256 balance);
	function ownerOf(uint256 _tokenId) public view returns (address owner);
	function approve(address _to, uint256 _tokenId) public;
	function transferFrom(address _from, address _to, uint256 _tokenId) public;
	function transfer(address _to, uint256 _tokenId) public;
 
	event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
	event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

	// Optional
	// function totalSupply() public view returns (uint256 total);
	// function name() public view returns (string name);
	// function symbol() public view returns (string symbol);
	// function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256 tokenId);
	// function tokenMetadata(uint256 _tokenId) public view returns (string infoUrl);
}

contract ERC721 is ERC721Abstract
{
	string constant public   name = "CryptoSport";
	string constant public symbol = "CS";

	uint256 public totalSupply;
	struct Token
	{
		uint256 price;			//  value of stake
		uint256	option;			//  [payout]96[idLottery]64[combination]32[dateBuy]0
	}
	mapping (uint256 => Token) tokens;
	
	// A mapping from tokens IDs to the address that owns them. All tokens have some valid owner address
	mapping (uint256 => address) public tokenIndexToOwner;
	
	// A mapping from owner address to count of tokens that address owns.	
	mapping (address => uint256) ownershipTokenCount; 

	// A mapping from tokenIDs to an address that has been approved to call transferFrom().
	// Each token can only have one approved address for transfer at any time.
	// A zero value means no approval is outstanding.
	mapping (uint256 => address) public tokenIndexToApproved;
	
	function implementsERC721() public pure returns (bool)
	{
		return true;
	}

	function balanceOf(address _owner) public view returns (uint256 count) 
	{
		return ownershipTokenCount[_owner];
	}
	
	function ownerOf(uint256 _tokenId) public view returns (address owner)
	{
		owner = tokenIndexToOwner[_tokenId];
		require(owner != address(0));
	}
	
	// Marks an address as being approved for transferFrom(), overwriting any previous approval. 
	// Setting _approved to address(0) clears all transfer approval.
	function _approve(uint256 _tokenId, address _approved) internal 
	{
		tokenIndexToApproved[_tokenId] = _approved;
	}
	
	// Checks if a given address currently has transferApproval for a particular token.
	// param _claimant the address we are confirming token is approved for.
	// param _tokenId token id, only valid when > 0
	function _approvedFor(address _claimant, uint256 _tokenId) internal view returns (bool) {
		return tokenIndexToApproved[_tokenId] == _claimant;
	}
	
	function approve( address _to, uint256 _tokenId ) public
	{
		// Only an owner can grant transfer approval.
		require(_owns(msg.sender, _tokenId));

		// Register the approval (replacing any previous approval).
		_approve(_tokenId, _to);

		// Emit approval event.
		Approval(msg.sender, _to, _tokenId);
	}
	
	function transferFrom( address _from, address _to, uint256 _tokenId ) public
	{
		// Check for approval and valid ownership
		require(_approvedFor(msg.sender, _tokenId));
		require(_owns(_from, _tokenId));

		// Reassign ownership (also clears pending approvals and emits Transfer event).
		_transfer(_from, _to, _tokenId);
	}
	
	function _owns(address _claimant, uint256 _tokenId) internal view returns (bool) {
		return tokenIndexToOwner[_tokenId] == _claimant;
	}
	
	function _transfer(address _from, address _to, uint256 _tokenId) internal 
	{
		ownershipTokenCount[_to]++;
		tokenIndexToOwner[_tokenId] = _to;

		if (_from != address(0)) 
		{
			Transfer(_from, _to, _tokenId);
			ownershipTokenCount[_from]--;
			// clear any previously approved ownership exchange
			delete tokenIndexToApproved[_tokenId];
		}

	}
	
	function transfer(address _to, uint256 _tokenId) public
	{
		require(_to != address(0));
		require(_owns(msg.sender, _tokenId));
		_transfer(msg.sender, _to, _tokenId);
	}

}

contract Owned 
{
    address private candidate;
	address public owner;

	mapping(address => bool) public admins;
	
    function Owned() public 
	{
        owner = msg.sender;
    }

    function changeOwner(address newOwner) public 
	{
		require(msg.sender == owner);
        candidate = newOwner;
    }
	
	function confirmOwner() public 
	{
        require(candidate == msg.sender); // run by name=candidate
		owner = candidate;
    }
	
    function addAdmin(address addr) external 
	{
		require(msg.sender == owner);
        admins[addr] = true;
    }

    function removeAdmin(address addr) external
	{
		require(msg.sender == owner);
        admins[addr] = false;
    }
}

contract Functional
{
	// parseInt(parseFloat*10^_b)
	function parseInt(string _a, uint _b) internal pure returns (uint) 
	{
		bytes memory bresult = bytes(_a);
		uint mint = 0;
		bool decimals = false;
		for (uint i=0; i<bresult.length; i++){
			if ((bresult[i] >= 48)&&(bresult[i] <= 57)){
				if (decimals){
				   if (_b == 0) break;
					else _b--;
				}
				mint *= 10;
				mint += uint(bresult[i]) - 48;
			} else if (bresult[i] == 46) decimals = true;
		}
		if (_b > 0) mint *= 10**_b;
		return mint;
	}
	
	function uint2str(uint i) internal pure returns (string)
	{
		if (i == 0) return "0";
		uint j = i;
		uint len;
		while (j != 0){
			len++;
			j /= 10;
		}
		bytes memory bstr = new bytes(len);
		uint k = len - 1;
		while (i != 0){
			bstr[k--] = byte(48 + i % 10);
			i /= 10;
		}
		return string(bstr);
	}
	
	function strConcat(string _a, string _b, string _c) internal pure returns (string)
	{
		bytes memory _ba = bytes(_a);
		bytes memory _bb = bytes(_b);
		bytes memory _bc = bytes(_c);
		string memory abc;
		uint k = 0;
		uint i;
		bytes memory babc;
		if (_ba.length==0)
		{
			abc = new string(_bc.length);
			babc = bytes(abc);
		}
		else
		{
			abc = new string(_ba.length + _bb.length+ _bc.length);
			babc = bytes(abc);
			for (i = 0; i < _ba.length; i++) babc[k++] = _ba[i];
			for (i = 0; i < _bb.length; i++) babc[k++] = _bb[i];
		}
        for (i = 0; i < _bc.length; i++) babc[k++] = _bc[i];
		return string(babc);
	}
	
	function timenow() public view returns(uint32) { return uint32(block.timestamp); }
}

contract CSLottery is ERC721, usingOraclize, Functional, Owned
{
	uint256 public feeLottery;
	
	enum Status {
		NOTFOUND,		//0 game not created
		PLAYING,		//1 buying tickets
		PROCESSING,		//2 waiting for result
		PAYING,	 		//3 redeeming
		CANCELING		//4 canceling the game
	}
	
	struct Game {
		string  nameLottery;
		uint32  countCombinations;
		uint32  dateStopBuy;
		uint32  minStake;				// per finney = 0.001E
		uint32  winCombination;
		uint256 betsSumIn;				// amount bets
		uint256 feeValue;				// amount fee
		Status status;					// status of game
		bool isFreezing;
	}
	Game[] private game;
	
	struct Stake {
		uint256 sum;		// amount bets
		uint32 count;		// count bets 
	}
	mapping(uint32 => mapping (uint32 => Stake)) public betsAll; // ID-lottery => combination => Stake
	mapping(bytes32 => uint32) private queryRes;  // ID-query => ID-lottery
	
	uint256 public ORACLIZE_GAS_LIMIT = 200000;
	uint256 public ORACLIZE_GASPRICE_GWEY = 40; // 40Gwey

	event LogEvent(string _event, string nameLottery, uint256 value);
	event LogToken(string _event, address user, uint32 idLottery, uint32 idToken, uint32 combination, uint256 amount);

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
	
	modifier onlyAdmin {
        require(msg.sender == owner || admins[msg.sender]);
        _;
    }

	modifier onlyOraclize {
        require (msg.sender == oraclize_cbAddress());
        _;
    }

	function getLotteryByID(uint32 _id) public view returns (
		string  nameLottery,
		uint32 countCombinations,
		uint32 dateStopBuy,
		uint32 minStake,
		uint32 winCombination,
		uint32 betsCount,
		uint256 betsSumIn,
		uint256 feeValue,
		Status status,
		bool isFreezing
	){
		Game storage gm = game[_id];
		nameLottery = gm.nameLottery;
		countCombinations = gm.countCombinations;
		dateStopBuy = gm.dateStopBuy;
		minStake = gm.minStake;
		winCombination = gm.winCombination;
		betsCount = getCountTokensByLottery(_id);
		betsSumIn = gm.betsSumIn;  
		if (betsSumIn==0) betsSumIn = getSumInByLottery(_id);
		feeValue = gm.feeValue;
		status = gm.status;
		if ( status == Status.PLAYING && timenow() > dateStopBuy ) status = Status.PROCESSING;
		isFreezing = gm.isFreezing;
	}
	
	function getCountTokensByLottery(uint32 idLottery) internal view returns (uint32)
	{
		Game storage curGame = game[idLottery];
		uint32 count = 0;
		for(uint32 i=1;i<=curGame.countCombinations;i++) count += betsAll[idLottery][i].count;
		return count;
	}
	
	function getSumInByLottery(uint32 idLottery) internal view returns (uint256)
	{
		Game storage curGame = game[idLottery];
		uint256 sum = 0;
		for(uint32 i=1;i<=curGame.countCombinations;i++) sum += betsAll[idLottery][i].sum;
		return sum;
	}
	
	function getTokenByID(uint256 _id) public view returns ( 
			uint256 price,
			uint256 payment,
			uint32 combination,
			uint32 dateBuy,
			uint32 idLottery,
			address ownerToken,
			bool payout
	){
		Token storage tkn = tokens[_id];

		price = tkn.price;
		
		uint256 packed = tkn.option;
		payout = uint8((packed >> (12*8)) & 0xFF)==1?true:false;
		idLottery   = uint32((packed >> (8*8)) & 0xFFFFFFFF);
		combination = uint32((packed >> (4*8)) & 0xFFFFFFFF);
		dateBuy     = uint32(packed & 0xFFFFFFFF);

		payment = 0;
		Game storage curGame = game[idLottery];
		
		uint256 betsSumIn = curGame.betsSumIn;  
		if (betsSumIn==0) betsSumIn = getSumInByLottery(idLottery);

		if (curGame.winCombination==combination) payment = betsSumIn * tkn.price / betsAll[idLottery][ curGame.winCombination ].sum;
		if (curGame.status == Status.CANCELING) payment = tkn.price;
		
		ownerToken = tokenIndexToOwner[_id];
	}

	function getUserTokens(address user, uint32 count) public view returns ( string res ) 
	{
		res="";
		require(user!=0x0);
		uint32 findCount=0;
		for (uint256 i = totalSupply-1; i >= 0; i--)
		{
			if(i>totalSupply) break;
			if (user == tokenIndexToOwner[i]) 
			{
				res = strConcat( res, ",", uint2str(i) );
				findCount++;
				if (count!=0 && findCount>=count) break;
			}
		}
	}

	function getStatLotteries() public view returns ( 
			uint32 countAll,
			uint32 countPlaying,
			uint32 countProcessing,
			string listPlaying,
			string listProcessing
	){
		countAll = uint32(game.length);
		countPlaying = 0;
		countProcessing = 0;
		listPlaying="";
		listProcessing="";
		uint32 curtime = timenow();
		for (uint32 i = 0; i < countAll; i++)
		{
			if (game[i].status!=Status.PLAYING) continue;
			if (curtime <  game[i].dateStopBuy) { countPlaying++; listPlaying = strConcat( listPlaying, ",", uint2str(i) ); }
			if (curtime >= game[i].dateStopBuy) { countProcessing++; listProcessing = strConcat( listProcessing, ",", uint2str(i) ); }
		}
		
	}

	function CSLottery() public 
	{
	}

	function setOraclizeGasPrice(uint256 priceGwey, uint256 limit) onlyAdmin public
	{
		ORACLIZE_GASPRICE_GWEY = priceGwey;
		ORACLIZE_GAS_LIMIT = limit;
		oraclize_setCustomGasPrice( uint256(ORACLIZE_GASPRICE_GWEY) * 10**9 );
	}

	function freezeLottery(uint32 idLottery, bool freeze) public onlyAdmin 
	{ 
		Game storage curGame = game[idLottery];
		require( curGame.isFreezing != freeze );
		curGame.isFreezing = freeze; 
	}

	function addLottery( string _nameLottery, uint32 _dateStopBuy, uint32 _countCombinations, uint32 _minStakeFinney ) onlyAdmin public 
	{
		require( bytes(_nameLottery).length > 2 );
		require( _countCombinations > 1 );
		require( _minStakeFinney > 0 );
		require( _dateStopBuy > timenow() );

		Game memory _game;
		_game.nameLottery = _nameLottery;
		_game.countCombinations = _countCombinations;
		_game.dateStopBuy = _dateStopBuy;
		_game.minStake 	= _minStakeFinney;
		_game.status = Status.PLAYING;

		uint256 newGameId = game.push(_game) - 1;
		
		LogEvent( "AddGame", _nameLottery, newGameId );
	}

	function () payable public { require (msg.value == 0x0); }
	
	function buyToken(uint32 idLottery, uint32 combination, address captainAddress) payable public
	{
		Game storage curGame = game[idLottery];
		require( curGame.status == Status.PLAYING );
		require( timenow() < curGame.dateStopBuy );
		require( combination > 0 && combination <= curGame.countCombinations );
		require( captainAddress != msg.sender );
		require( curGame.isFreezing == false );
		
		// check money for stake
		require( msg.value >= curGame.minStake * 1 finney );
		
		uint256 userStake = msg.value;
		uint256 feeValue = userStake * 5 / 100;		// 5% fee for contract
		userStake = userStake - feeValue;
		
		if (captainAddress!=0x0) 
		{
			uint256 captainValue = feeValue * 20 / 100;		// bonus for captain = 1%
			feeValue = feeValue - captainValue;
			require(feeValue + captainValue + userStake == msg.value);
			captainAddress.transfer(captainValue);
		}

		curGame.feeValue  = curGame.feeValue + feeValue;
		betsAll[idLottery][combination].sum += userStake;
		betsAll[idLottery][combination].count += 1;

		uint128 packed;
		packed = ( uint128(idLottery) << 8*8 ) + ( uint128(combination) << 4*8 ) + uint128(block.timestamp);

		Token memory _token = Token({
			price: userStake,
			option : packed
		});

		uint256 newTokenId = totalSupply++;
		tokens[newTokenId] = _token;
		_transfer(0, msg.sender, newTokenId);
		LogToken( "Buy", msg.sender, idLottery, uint32(newTokenId), combination, userStake);
	}
	
	// take win money or money for canceling lottery
	function redeemToken(uint256 _tokenId) public 
	{
		Token storage tkn = tokens[_tokenId];

		uint256 packed = tkn.option;
		bool payout = uint8((packed >> (12*8)) & 0xFF)==1?true:false;
		uint32 idLottery = uint32((packed >> (8*8)) & 0xFFFFFFFF);
		uint32 combination = uint32((packed >> (4*8)) & 0xFFFFFFFF);

		Game storage curGame = game[idLottery];
		
		require( curGame.status == Status.PAYING || curGame.status == Status.CANCELING);

		require( msg.sender == tokenIndexToOwner[_tokenId] );	// only onwer`s token
		require( payout == false ); // has not paid
		require( combination == curGame.winCombination || curGame.status == Status.CANCELING );

		uint256 sumPayment = 0;
		if ( curGame.status == Status.CANCELING ) sumPayment = tkn.price;
		if ( curGame.status == Status.PAYING ) sumPayment = curGame.betsSumIn * tkn.price / betsAll[idLottery][curGame.winCombination].sum;

		payout = true;
		packed += uint128(payout?1:0) << 12*8;
		tkn.option = packed;
	
		msg.sender.transfer(sumPayment);
		
		LogToken( "Redeem", msg.sender, idLottery, uint32(_tokenId), combination, sumPayment);
	}
	
	function cancelLottery(uint32 idLottery) public 
	{
		Game storage curGame = game[idLottery];
		
		require( curGame.status == Status.PLAYING );
		// only owner/admin or anybody after 7 days
		require( msg.sender == owner || admins[msg.sender] || timenow() > curGame.dateStopBuy + 7 * 24*60*60 );

		curGame.status = Status.CANCELING;

		LogEvent( "CancelLottery", curGame.nameLottery, idLottery );
		
		takeFee(idLottery);
	}

	function __callback(bytes32 queryId, string _result) onlyOraclize public
	{
		uint32 idLottery = queryRes[queryId];
		require( idLottery != 0 );

		Game storage curGame = game[idLottery];
		
		require( curGame.status == Status.PLAYING );
		require( timenow() > curGame.dateStopBuy );
		
		uint32 tmpCombination = uint32(parseInt(_result,0));
		
		string memory error = "callback";
		if ( tmpCombination==0 ) error = "callback_result_not_found";
		if ( tmpCombination > curGame.countCombinations ) { tmpCombination = 0; error = "callback_result_limit"; }

		LogEvent( error, curGame.nameLottery, tmpCombination );

		if (tmpCombination!=0) 
		{
			curGame.winCombination = tmpCombination;
			checkWinNobody(idLottery);
		}
	}

	function resolveLotteryByOraclize(uint32 idLottery, uint32 delaySec) onlyAdmin public payable
	{
		Game storage curGame = game[idLottery];
		
		uint oraclizeFee = oraclize_getPrice( "URL", ORACLIZE_GAS_LIMIT );
		require(msg.value + curGame.feeValue > oraclizeFee); // if contract has not enought money to do query
		
		curGame.feeValue = curGame.feeValue + msg.value - oraclizeFee;

		LogEvent( "ResolveLotteryByOraclize", curGame.nameLottery, delaySec );
		
		string memory tmpQuery;
		tmpQuery = strConcat( "json(https://cryptosportz.com/api/v2/game/", uint2str(idLottery), "/result).result" );
	
		uint32 delay;
		if ( timenow() < curGame.dateStopBuy ) delay = curGame.dateStopBuy - timenow() + delaySec;
										  else delay = delaySec;
	
		bytes32 queryId = oraclize_query(delay, "URL", tmpQuery, ORACLIZE_GAS_LIMIT);
		queryRes[queryId] = idLottery;
	}

	function resolveLotteryByHand(uint32 idLottery, uint32 combination) onlyAdmin public 
	{
		Game storage curGame = game[idLottery];
		
		require( curGame.status == Status.PLAYING );
		require( combination <= curGame.countCombinations );
		require( combination != 0 );

		require( timenow() > curGame.dateStopBuy + 2*60*60 );

		curGame.winCombination = combination;
		
		LogEvent( "ResolveLotteryByHand", curGame.nameLottery, curGame.winCombination );
		
		checkWinNobody(idLottery);
	}
	
	function checkWinNobody(uint32 idLottery) internal
	{
		Game storage curGame = game[idLottery];
		
		curGame.status = Status.PAYING;
		curGame.betsSumIn = getSumInByLottery(idLottery);
		
		// nobody win = send all to feeLottery
		if ( betsAll[idLottery][curGame.winCombination].count == 0 )
		{
			if (curGame.betsSumIn+curGame.feeValue!=0) feeLottery = feeLottery + curGame.betsSumIn + curGame.feeValue;
			LogEvent( "NOBODYWIN", curGame.nameLottery, curGame.betsSumIn+curGame.feeValue );
		}
		else 
			takeFee(idLottery);
	}
	
	function takeFee(uint32 idLottery) internal
	{
		Game storage curGame = game[idLottery];
		
		// take fee
		if ( curGame.feeValue > 0 )
		{
			feeLottery = feeLottery + curGame.feeValue;
			LogEvent( "TakeFee", curGame.nameLottery, curGame.feeValue );
		}
	}
	
	function withdraw() onlyOwner public
	{
		require( feeLottery > 0 );

		uint256 tmpFeeLottery = feeLottery;
		feeLottery = 0;
		
		owner.transfer(tmpFeeLottery);
		LogEvent( "WITHDRAW", "", tmpFeeLottery);
	}

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"redeemToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getTokenByID","outputs":[{"name":"price","type":"uint256"},{"name":"payment","type":"uint256"},{"name":"combination","type":"uint32"},{"name":"dateBuy","type":"uint32"},{"name":"idLottery","type":"uint32"},{"name":"ownerToken","type":"address"},{"name":"payout","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"idLottery","type":"uint32"}],"name":"cancelLottery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"uint32"}],"name":"betsAll","outputs":[{"name":"sum","type":"uint256"},{"name":"count","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIndexToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"queryId","type":"bytes32"},{"name":"_result","type":"string"}],"name":"__callback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"timenow","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"priceGwey","type":"uint256"},{"name":"limit","type":"uint256"}],"name":"setOraclizeGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"admins","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ORACLIZE_GAS_LIMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeLottery","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idLottery","type":"uint32"},{"name":"freeze","type":"bool"}],"name":"freezeLottery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idLottery","type":"uint32"},{"name":"combination","type":"uint32"}],"name":"resolveLotteryByHand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idLottery","type":"uint32"},{"name":"delaySec","type":"uint32"}],"name":"resolveLotteryByOraclize","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"},{"name":"count","type":"uint32"}],"name":"getUserTokens","outputs":[{"name":"res","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIndexToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_nameLottery","type":"string"},{"name":"_dateStopBuy","type":"uint32"},{"name":"_countCombinations","type":"uint32"},{"name":"_minStakeFinney","type":"uint32"}],"name":"addLottery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"confirmOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint32"}],"name":"getLotteryByID","outputs":[{"name":"nameLottery","type":"string"},{"name":"countCombinations","type":"uint32"},{"name":"dateStopBuy","type":"uint32"},{"name":"minStake","type":"uint32"},{"name":"winCombination","type":"uint32"},{"name":"betsCount","type":"uint32"},{"name":"betsSumIn","type":"uint256"},{"name":"feeValue","type":"uint256"},{"name":"status","type":"uint8"},{"name":"isFreezing","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ORACLIZE_GASPRICE_GWEY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idLottery","type":"uint32"},{"name":"combination","type":"uint32"},{"name":"captainAddress","type":"address"}],"name":"buyToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getStatLotteries","outputs":[{"name":"countAll","type":"uint32"},{"name":"countPlaying","type":"uint32"},{"name":"countProcessing","type":"uint32"},{"name":"listPlaying","type":"string"},{"name":"listProcessing","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_event","type":"string"},{"indexed":false,"name":"nameLottery","type":"string"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_event","type":"string"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"idLottery","type":"uint32"},{"indexed":false,"name":"idToken","type":"uint32"},{"indexed":false,"name":"combination","type":"uint32"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405262030d40600e556028600f55341561001b57600080fd5b60088054600160a060020a03191633600160a060020a0316179055613a8e806100456000396000f3006060604052600436106101a85763ffffffff60e060020a600035041663013054c281146101b557806306fdde03146101cb578063087205f014610255578063095ea7b3146102be5780631051db34146102e057806311ac20c0146103075780631209a849146103235780631785f53c1461036357806318160ddd146103825780631d36e06c146103a757806323b872dd146103d957806327dc297e146104015780633ccfd60b146104575780633fae19281461046a57806340adf94e14610496578063429b62e5146104af5780634eb8ffb4146104ce5780635387a233146104e157806356f99fcb146104f45780636352211e14610515578063704802751461052b57806370a082311461054a57806372b81b1c1461056957806373f1e6d71461058b5780638cc57368146105a25780638da5cb5b146105ca57806395d89b41146105dd578063a6f9dae1146105f0578063a8bd9c321461060f578063a9059cbb14610625578063b075656214610647578063bd9b6d86146106af578063be60988e146106c2578063d03e1021146107b8578063d5ec40af146107cb578063e4e663a9146107ee575b34156101b357600080fd5b005b34156101c057600080fd5b6101b3600435610901565b34156101d657600080fd5b6101de610b99565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561021a578082015183820152602001610202565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026057600080fd5b61026b600435610bd0565b604051968752602087019590955263ffffffff938416604080880191909152928416606087015292166080850152600160a060020a0390911660a084015290151560c083015260e0909101905180910390f35b34156102c957600080fd5b6101b3600160a060020a0360043516602435610d22565b34156102eb57600080fd5b6102f3610d86565b604051901515815260200160405180910390f35b341561031257600080fd5b6101b363ffffffff60043516610d8c565b341561032e57600080fd5b61034563ffffffff60043581169060243516610f3d565b60405191825263ffffffff1660208201526040908101905180910390f35b341561036e57600080fd5b6101b3600160a060020a0360043516610f67565b341561038d57600080fd5b610395610fa3565b60405190815260200160405180910390f35b34156103b257600080fd5b6103bd600435610fa9565b604051600160a060020a03909116815260200160405180910390f35b34156103e457600080fd5b6101b3600160a060020a0360043581169060243516604435610fc4565b341561040c57600080fd5b6101b3600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610ffe95505050505050565b341561046257600080fd5b6101b36112f3565b341561047557600080fd5b61047d6113c7565b60405163ffffffff909116815260200160405180910390f35b34156104a157600080fd5b6101b36004356024356113cb565b34156104ba57600080fd5b6102f3600160a060020a0360043516611424565b34156104d957600080fd5b610395611439565b34156104ec57600080fd5b61039561143f565b34156104ff57600080fd5b6101b363ffffffff600435166024351515611445565b341561052057600080fd5b6103bd6004356114ec565b341561053657600080fd5b6101b3600160a060020a0360043516611515565b341561055557600080fd5b610395600160a060020a0360043516611554565b341561057457600080fd5b6101b363ffffffff6004358116906024351661156f565b6101b363ffffffff6004358116906024351661176f565b34156105ad57600080fd5b6101de600160a060020a036004351663ffffffff60243516611a92565b34156105d557600080fd5b6103bd611b78565b34156105e857600080fd5b6101de611b87565b34156105fb57600080fd5b6101b3600160a060020a0360043516611bbe565b341561061a57600080fd5b6103bd600435611bfb565b341561063057600080fd5b6101b3600160a060020a0360043516602435611c16565b341561065257600080fd5b6101b360046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505063ffffffff853581169560208101358216955060400135169250611c4b915050565b34156106ba57600080fd5b6101b3611f0e565b34156106cd57600080fd5b6106de63ffffffff60043516611f4d565b60405163ffffffff808b166020830152898116604083015288811660608301528781166080830152861660a082015260c0810185905260e0810184905280610100810184600481111561072d57fe5b60ff1681526020018315151515815260200182810382528c818151815260200191508051906020019080838360005b8381101561077457808201518382015260200161075c565b50505050905090810190601f1680156107a15780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b34156107c357600080fd5b6103956120f1565b6101b363ffffffff60043581169060243516600160a060020a03604435166120f7565b34156107f957600080fd5b610801612401565b60405163ffffffff808716825285811660208301528416604082015260a060608201818152906080830190830185818151815260200191508051906020019080838360005b8381101561085e578082015183820152602001610846565b50505050905090810190601f16801561088b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156108c15780820151838201526020016108a9565b50505050905090810190601f1680156108ee5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b600081815260016020819052604082208082015490929091819081908190819060ff606060020a8804161461093757600061093a565b60015b600b805491965063ffffffff680100000000000000008904811696506401000000008904169450908590811061096c57fe5b600091825260209091206005909102019150600360048084015460ff169081111561099357fe5b14806109af575060048281015460ff16818111156109ad57fe5b145b15156109ba57600080fd5b60008881526002602052604090205433600160a060020a039081169116146109e157600080fd5b84156109ec57600080fd5b600182015463ffffffff848116606060020a909204161480610a1e575060048281015460ff1681811115610a1c57fe5b145b1515610a2957600080fd5b5060006004808084015460ff1690811115610a4057fe5b1415610a4a575085545b600360048084015460ff1690811115610a5f57fe5b1415610aa95763ffffffff8085166000908152600c602090815260408083206001870154606060020a9004909416835292905220548754600284015402811515610aa557fe5b0490505b606060020a9590950160018781018290559095909450600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610af057600080fd5b7f222fd1da48a94bc94aa8e2e60a0d9eb7e0467b7938f6e4a1d4dcdeac20c1cd8d33858a8685604051600160a060020a03909516602086015263ffffffff93841660408087019190915292841660608601529216608084015260a083019190915260c08083526006908301527f52656465656d000000000000000000000000000000000000000000000000000060e0830152610100909101905180910390a15050505050505050565b60408051908101604052600b81527f43727970746f53706f7274000000000000000000000000000000000000000000602082015281565b600081815260016020819052604082208054818301549093928392839283928392839290918390819060ff606060020a85041614610c0f576000610c12565b60015b600b805460009c5063ffffffff640100000000870481169c508087169b506801000000000000000087041699509196509088908110610c4d57fe5b90600052602060002090600502019150816002015490508060001415610c7957610c76876125ad565b90505b600182015463ffffffff8a8116606060020a909204161415610cd55763ffffffff8088166000908152600c602090815260408083206001870154606060020a90049094168352929052205484548202811515610cd157fe5b0499505b60048281015460ff1681811115610ce857fe5b1415610cf357835499505b505050600098895250600260205260409097205495979496939592949193600160a060020a0390931692919050565b610d2c338261262e565b1515610d3757600080fd5b610d41818361264e565b8082600160a060020a031633600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60015b90565b6000600b8263ffffffff16815481101515610da357fe5b600091825260209091206005909102019050600160048083015460ff1690811115610dca57fe5b14610dd457600080fd5b60085433600160a060020a0390811691161480610e095750600160a060020a03331660009081526009602052604090205460ff165b80610e3a5750600181015462093a8063ffffffff64010000000090920482160116610e326113c7565b63ffffffff16115b1515610e4557600080fd5b6004818101805460ff19169091179055600080516020613a43833981519152818360405163ffffffff821660408201526060808252600d908201527f43616e63656c4c6f747465727900000000000000000000000000000000000000608082015260a060208201818152845460026000196101006001841615020190911604918301829052829160c083019086908015610f205780601f10610ef557610100808354040283529160200191610f20565b820191906000526020600020905b815481529060010190602001808311610f0357829003601f168201915b505094505050505060405180910390a1610f398261267c565b5050565b600c6020908152600092835260408084209091529082529020805460019091015463ffffffff1682565b60085433600160a060020a03908116911614610f8257600080fd5b600160a060020a03166000908152600960205260409020805460ff19169055565b60005481565b600260205260009081526040902054600160a060020a031681565b610fce338261279b565b1515610fd957600080fd5b610fe3838261262e565b1515610fee57600080fd5b610ff98383836127bb565b505050565b600080600061100b613864565b611013612881565b600160a060020a031633600160a060020a031614151561103257600080fd5b6000868152600d602052604090205463ffffffff16935083151561105557600080fd5b600b805463ffffffff861690811061106957fe5b600091825260209091206005909102019250600160048085015460ff169081111561109057fe5b1461109a57600080fd5b6001830154640100000000900463ffffffff166110b56113c7565b63ffffffff16116110c557600080fd5b6110d0856000612a21565b915060408051908101604052600881527f63616c6c6261636b0000000000000000000000000000000000000000000000006020820152905063ffffffff8216151561114c5760408051908101604052601981527f63616c6c6261636b5f726573756c745f6e6f745f666f756e6400000000000000602082015290505b600183015463ffffffff908116908316111561119d576000915060408051908101604052601581527f63616c6c6261636b5f726573756c745f6c696d69740000000000000000000000602082015290505b600080516020613a438339815191528184846040518080602001806020018463ffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156111fc5780820151838201526020016111e4565b50505050905090810190601f1680156112295780820380516001836020036101000a031916815260200191505b5083810382528554600260001961010060018416150201909116048082526020909101908690801561129c5780601f106112715761010080835404028352916020019161129c565b820191906000526020600020905b81548152906001019060200180831161127f57829003601f168201915b50509550505050505060405180910390a163ffffffff8216156112eb576001830180546fffffffff0000000000000000000000001916606060020a63ffffffff8516021790556112eb84612b8f565b505050505050565b60085460009033600160a060020a0390811691161461131157600080fd5b600a546000901161132157600080fd5b50600a80546000909155600854600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561135e57600080fd5b600080516020613a438339815191528160405160408082019290925260608082526008908201527f5749544844524157000000000000000000000000000000000000000000000000608082015260a06020820181905260009082015260e001905180910390a150565b4290565b60085433600160a060020a03908116911614806114005750600160a060020a03331660009081526009602052604090205460ff165b151561140b57600080fd5b600f829055600e819055610f39633b9aca008302612d25565b60096020526000908152604090205460ff1681565b600e5481565b600a5481565b60085460009033600160a060020a039081169116148061147d5750600160a060020a03331660009081526009602052604090205460ff165b151561148857600080fd5b600b805463ffffffff851690811061149c57fe5b906000526020600020906005020190508115158160040160019054906101000a900460ff161515141515156114d057600080fd5b60040180549115156101000261ff001990921691909117905550565b600081815260026020526040902054600160a060020a031680151561151057600080fd5b919050565b60085433600160a060020a0390811691161461153057600080fd5b600160a060020a03166000908152600960205260409020805460ff19166001179055565b600160a060020a031660009081526003602052604090205490565b60085460009033600160a060020a03908116911614806115a75750600160a060020a03331660009081526009602052604090205460ff165b15156115b257600080fd5b600b805463ffffffff85169081106115c657fe5b600091825260209091206005909102019050600160048083015460ff16908111156115ed57fe5b146115f757600080fd5b600181015463ffffffff908116908316111561161257600080fd5b63ffffffff8216151561162457600080fd5b6001810154611c2063ffffffff640100000000909204821601166116466113c7565b63ffffffff161161165657600080fd5b6001810180546fffffffff0000000000000000000000001916606060020a63ffffffff85811682029290921792839055600080516020613a438339815191529284929190041660405163ffffffff8216604082015260608082526014908201527f5265736f6c76654c6f7474657279427948616e64000000000000000000000000608082015260a060208201818152845460026000196101006001841615020190911604918301829052829160c0830190869080156117565780601f1061172b57610100808354040283529160200191611756565b820191906000526020600020905b81548152906001019060200180831161173957829003601f168201915b505094505050505060405180910390a1610ff983612b8f565b60008061177a613864565b600854600090819033600160a060020a03908116911614806117b45750600160a060020a03331660009081526009602052604090205460ff165b15156117bf57600080fd5b600b805463ffffffff89169081106117d357fe5b9060005260206000209060050201945061182260408051908101604052600381527f55524c00000000000000000000000000000000000000000000000000000000006020820152600e54612ebb565b9350838560030154340111151561183857600080fd5b60038501805434018590039055600080516020613a43833981519152858760405163ffffffff8216604082015260608082526018908201527f5265736f6c76654c6f747465727942794f7261636c697a650000000000000000608082015260a060208201818152845460026000196101006001841615020190911604918301829052829160c0830190869080156119105780601f106118e557610100808354040283529160200191611910565b820191906000526020600020905b8154815290600101906020018083116118f357829003601f168201915b505094505050505060405180910390a16119c8606060405190810160405280602a81526020017f6a736f6e2868747470733a2f2f63727970746f73706f72747a2e636f6d2f617081526020017f692f76322f67616d652f0000000000000000000000000000000000000000000081525061198f8963ffffffff166130d2565b60408051908101604052600f81527f2f726573756c74292e726573756c74000000000000000000000000000000000060208201526131c6565b6001860154909350640100000000900463ffffffff166119e66113c7565b63ffffffff161015611a1757856119fb6113c7565b6001870154640100000000900463ffffffff1603019150611a1b565b8591505b611a638263ffffffff1660408051908101604052600381527f55524c00000000000000000000000000000000000000000000000000000000006020820152600e54869061339c565b6000908152600d60205260409020805463ffffffff191663ffffffff9890981697909717909655505050505050565b611a9a613864565b6000806020604051908101604052600081529250600160a060020a0385161515611ac357600080fd5b505060008054600019015b60008110611b7057600054811115611ae557611b70565b600081815260026020526040902054600160a060020a0386811691161415611b6757611b3483604080519081016040526001815260fa60020a600b026020820152611b2f846130d2565b6131c6565b925060019091019063ffffffff841615801590611b5d57508363ffffffff168263ffffffff1610155b15611b6757611b70565b60001901611ace565b505092915050565b600854600160a060020a031681565b60408051908101604052600281527f4353000000000000000000000000000000000000000000000000000000000000602082015281565b60085433600160a060020a03908116911614611bd957600080fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b600460205260009081526040902054600160a060020a031681565b600160a060020a0382161515611c2b57600080fd5b611c35338261262e565b1515611c4057600080fd5b610f393383836127bb565b611c53613876565b60085460009033600160a060020a0390811691161480611c8b5750600160a060020a03331660009081526009602052604090205460ff165b1515611c9657600080fd5b6002865111611ca457600080fd5b600163ffffffff851611611cb757600080fd5b600063ffffffff841611611cca57600080fd5b611cd26113c7565b63ffffffff168563ffffffff16111515611ceb57600080fd5b85825263ffffffff8481166020840152858116604084015283166060830152600160e08301819052600b8054808301611d2483826138ca565b60009283526020909220859160050201815181908051611d489291602001906138f6565b50602082015160018201805463ffffffff191663ffffffff9290921691909117905560408201518160010160046101000a81548163ffffffff021916908363ffffffff16021790555060608201518160010160086101000a81548163ffffffff021916908363ffffffff160217905550608082015181600101600c6101000a81548163ffffffff021916908363ffffffff16021790555060a0820151816002015560c0820151816003015560e08201518160040160006101000a81548160ff02191690836004811115611e1757fe5b0217905550610100820151600490910180549115156101000261ff001990921691909117905550039050600080516020613a4383398151915286826040516040810182905260608082526007908201527f41646447616d6500000000000000000000000000000000000000000000000000608082015260a0602082018181528291820185818151815260200191508051906020019080838360005b83811015611eca578082015183820152602001611eb2565b50505050905090810190601f168015611ef75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050505050565b60075433600160a060020a03908116911614611f2957600080fd5b60075460088054600160a060020a031916600160a060020a03909216919091179055565b611f55613864565b600080600080600080600080600080600b8c63ffffffff16815481101515611f7957fe5b90600052602060002090600502019050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120215780601f10611ff657610100808354040283529160200191612021565b820191906000526020600020905b81548152906001019060200180831161200457829003601f168201915b505050506001830154919c505063ffffffff8082169b50640100000000820481169a5068010000000000000000820481169950606060020a9091041696506120688c613723565b9550806002015494508460001415612086576120838c6125ad565b94505b6003810154600482015490945060ff16925060018360048111156120a657fe5b1480156120c557508863ffffffff166120bd6113c7565b63ffffffff16115b156120cf57600292505b8060040160019054906101000a900460ff169150509193959799509193959799565b600f5481565b6000806000806000612107613974565b6000600b8a63ffffffff1681548110151561211e57fe5b600091825260209091206005909102019650600160048089015460ff169081111561214557fe5b1461214f57600080fd5b6001870154640100000000900463ffffffff1661216a6113c7565b63ffffffff161061217a57600080fd5b60008963ffffffff1611801561219e5750600187015463ffffffff908116908a1611155b15156121a957600080fd5b33600160a060020a031688600160a060020a0316141515156121ca57600080fd5b6004870154610100900460ff16156121e157600080fd5b600187015468010000000000000000900463ffffffff1666038d7ea4c680000266ffffffffffffff1634101561221657600080fd5b3495506064600587020495869003959450600160a060020a038816156122855760646014860204948590039493508484018601341461225457600080fd5b600160a060020a03881684156108fc0285604051600060405180830381858888f19350505050151561228557600080fd5b6003870180548601905563ffffffff8a81166000818152600c602090815260408083208e861680855292529182902080548b0181556001908101805480871690920190951663ffffffff1990911617909355680100000000000000009091026401000000009092029190910142019350805190810160409081528782526fffffffffffffffffffffffffffffffff85166020808401919091526000805460018082018355818352909252919091209193509150829081518155602082015160019091015550612356600033836127bb565b7f222fd1da48a94bc94aa8e2e60a0d9eb7e0467b7938f6e4a1d4dcdeac20c1cd8d338b838c8a604051600160a060020a03909516602086015263ffffffff93841660408087019190915292841660608601529216608084015260a083019190915260c08083526003908301527f427579000000000000000000000000000000000000000000000000000000000060e0830152610100909101905180910390a150505050505050505050565b600080600061240e613864565b612416613864565b600b5494506000935083925082806020604051908101604052806000815250935060206040519081016040526000815292506124506113c7565b9150600090505b8663ffffffff168163ffffffff1610156125a4576001600b805463ffffffff841690811061248157fe5b60009182526020909120600460059092020181015460ff16908111156124a357fe5b146124ad5761259c565b600b805463ffffffff83169081106124c157fe5b600091825260209091206001600590920201015463ffffffff640100000000909104811690831610156125255760019095019461252284604080519081016040526001815260fa60020a600b026020820152611b2f63ffffffff85166130d2565b93505b600b805463ffffffff831690811061253957fe5b600091825260209091206001600590920201015463ffffffff64010000000090910481169083161061259c5760019094019361259983604080519081016040526001815260fa60020a600b026020820152611b2f63ffffffff85166130d2565b92505b600101612457565b50509091929394565b600080600080600b8563ffffffff168154811015156125c857fe5b9060005260206000209060050201925060009150600190505b600183015463ffffffff908116908216116126265763ffffffff8086166000908152600c602090815260408083209385168352929052205491909101906001016125e1565b509392505050565b600090815260026020526040902054600160a060020a0391821691161490565b6000918252600460205260409091208054600160a060020a031916600160a060020a03909216919091179055565b6000600b8263ffffffff1681548110151561269357fe5b90600052602060002090600502019050600081600301541115610f3957600381018054600a8054909101905554600080516020613a438339815191529082906040516040810182905260608082526007908201527f54616b6546656500000000000000000000000000000000000000000000000000608082015260a060208201818152845460026000196101006001841615020190911604918301829052829160c0830190869080156127875780601f1061275c57610100808354040283529160200191612787565b820191906000526020600020905b81548152906001019060200180831161276a57829003601f168201915b505094505050505060405180910390a15050565b600090815260046020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260036020908152604080832080546001019055858352600290915290208054600160a060020a0319169091179055831615610ff9578082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4600160a060020a03831660009081526003602090815260408083208054600019019055838352600490915290208054600160a060020a0319169055505050565b600554600090600160a060020a031615806128ae57506005546128ac90600160a060020a03166137a3565b155b156128bf576128bd60006137a7565b505b600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561290757600080fd5b6102c65a03f1151561291857600080fd5b5050506040518051600654600160a060020a0390811691161490506129ba57600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561297f57600080fd5b6102c65a03f1151561299057600080fd5b505050604051805160068054600160a060020a031916600160a060020a0392909216919091179055505b600654600160a060020a031663c281d19e6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612a0257600080fd5b6102c65a03f11515612a1357600080fd5b505050604051805191505090565b6000612a2b613864565b5082600080805b8351811015612b72577f3000000000000000000000000000000000000000000000000000000000000000848281518110612a6857fe5b016020015160f860020a900460f860020a02600160f860020a03191610158015612ad957507f3900000000000000000000000000000000000000000000000000000000000000848281518110612aba57fe5b016020015160f860020a900460f860020a02600160f860020a03191611155b15612b2f578115612af857851515612af057612b72565b600019909501945b600a830292506030848281518110612b0c57fe5b016020015160f860020a900460f860020a0260f860020a90040383019250612b6a565b838181518110612b3b57fe5b016020015160f860020a900460f860020a02600160f860020a031916602e60f860020a021415612b6a57600191505b600101612a32565b6000861115612b845785600a0a830292505b509095945050505050565b6000600b8263ffffffff16815481101515612ba657fe5b600091825260209091206004600590920201908101805460ff191660031790559050612bd1826125ad565b600282015563ffffffff8083166000908152600c60209081526040808320600180870154606060020a90048616855292529091200154161515612d1c57600381015460028201540115612c345780600301548160020154600a540101600a819055505b600080516020613a438339815191528160000182600301548360020154016040516040810182905260608082526009908201527f4e4f424f445957494e0000000000000000000000000000000000000000000000608082015260a060208201818152845460026000196101006001841615020190911604918301829052829160c083019086908015612d075780601f10612cdc57610100808354040283529160200191612d07565b820191906000526020600020905b815481529060010190602001808311612cea57829003601f168201915b505094505050505060405180910390a1610f39565b610f398261267c565b600554600160a060020a03161580612d4f5750600554612d4d90600160a060020a03166137a3565b155b15612d6057612d5e60006137a7565b505b600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612da857600080fd5b6102c65a03f11515612db957600080fd5b5050506040518051600654600160a060020a039081169116149050612e5b57600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612e2057600080fd5b6102c65a03f11515612e3157600080fd5b505050604051805160068054600160a060020a031916600160a060020a0392909216919091179055505b600654600160a060020a031663ca6ad1e48260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515612ea357600080fd5b6102c65a03f11515612eb457600080fd5b5050505b50565b600554600090600160a060020a03161580612ee85750600554612ee690600160a060020a03166137a3565b155b15612ef957612ef760006137a7565b505b600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612f4157600080fd5b6102c65a03f11515612f5257600080fd5b5050506040518051600654600160a060020a039081169116149050612ff457600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612fb957600080fd5b6102c65a03f11515612fca57600080fd5b505050604051805160068054600160a060020a031916600160a060020a0392909216919091179055505b600654600160a060020a0316632ef3accc84846000604051602001526040518363ffffffff1660e060020a0281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561306557808201518382015260200161304d565b50505050905090810190601f1680156130925780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15156130b157600080fd5b6102c65a03f115156130c257600080fd5b5050506040518051949350505050565b6130da613864565b6000806130e5613864565b60008515156131295760408051908101604052600181527f3000000000000000000000000000000000000000000000000000000000000000602082015294506131bd565b8593505b831561314457600190920191600a8404935061312d565b826040518059106131525750595b818152601f19601f8301168101602001604052905091505060001982015b85156131b95760001981019060f860020a6030600a890601029083908151811061319657fe5b906020010190600160f860020a031916908160001a905350600a86049550613170565b8194505b50505050919050565b6131ce613864565b6131d6613864565b6131de613864565b6131e6613864565b6131ee613864565b6000806131f9613864565b8a9650899550889450600092508651151561323c57845160405180591061321d5750595b818152601f19601f83011681016020016040529050935083905061332d565b84518651885101016040518059106132515750595b818152601f19601f830116810160200160405290509350839050600091505b86518210156132cc5786828151811061328557fe5b016020015160f860020a900460f860020a028184806001019550815181106132a957fe5b906020010190600160f860020a031916908160001a905350600190910190613270565b600091505b855182101561332d578582815181106132e657fe5b016020015160f860020a900460f860020a0281848060010195508151811061330a57fe5b906020010190600160f860020a031916908160001a9053506001909101906132d1565b600091505b845182101561338e5784828151811061334757fe5b016020015160f860020a900460f860020a0281848060010195508151811061336b57fe5b906020010190600160f860020a031916908160001a905350600190910190613332565b9a9950505050505050505050565b6005546000908190600160a060020a031615806133cb57506005546133c990600160a060020a03166137a3565b155b156133dc576133da60006137a7565b505b600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561342457600080fd5b6102c65a03f1151561343557600080fd5b5050506040518051600654600160a060020a0390811691161490506134d757600554600160a060020a03166338cc48316000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561349c57600080fd5b6102c65a03f115156134ad57600080fd5b505050604051805160068054600160a060020a031916600160a060020a0392909216919091179055505b600654600160a060020a0316632ef3accc86856000604051602001526040518363ffffffff1660e060020a0281526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015613548578082015183820152602001613530565b50505050905090810190601f1680156135755780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b151561359457600080fd5b6102c65a03f115156135a557600080fd5b5050506040518051915050670de0b6b3a76400003a8402018111156135cd576000915061371a565b600654600160a060020a031663c51be90f82888888886000604051602001526040518663ffffffff1660e060020a028152600401808581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561364b578082015183820152602001613633565b50505050905090810190601f1680156136785780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156136ae578082015183820152602001613696565b50505050905090810190601f1680156136db5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15156136fc57600080fd5b6125ee5a03f1151561370d57600080fd5b5050505060405180519250505b50949350505050565b600080600080600b8563ffffffff1681548110151561373e57fe5b9060005260206000209060050201925060009150600190505b600183015463ffffffff908116908216116126265763ffffffff8086166000908152600c6020908152604080832085851684529091529020600190810154909116929092019101613757565b3b90565b60006137b16137b7565b92915050565b6000806137d7731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed6137a3565b111561380b575060058054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed1790556001610d89565b600061382a73c03a2615d5efaf5f49f60b7bb6583eaec212fdf16137a3565b111561385e575060058054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf11790556001610d89565b50600090565b60206040519081016040526000815290565b6101206040519081016040528061388b613864565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101009091015290565b815481835581811511610ff957600502816005028360005260206000209182019101610ff9919061398b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061393757805160ff1916838001178555613964565b82800160010185558215613964579182015b82811115613964578251825591602001919060010190613949565b506139709291506139e4565b5090565b604080519081016040526000808252602082015290565b610d8991905b808211156139705760006139a582826139fe565b506001810180546fffffffffffffffffffffffffffffffff19169055600060028201819055600382015560048101805461ffff19169055600501613991565b610d8991905b8082111561397057600081556001016139ea565b50805460018160011615610100020316600290046000825580601f10613a245750612eb8565b601f016020900490600052602060002090810190612eb891906139e45600d7fd1f721dc8644a44be50ee5bce1d6b7ac2ffd81759add00d58b2efc0e9f050a165627a7a72305820828160fa92fcb245a7e7a50ea912fbed03326c9a53bf9f8faca0a55d673075910029

   Swarm Source:
bzzr://828160fa92fcb245a7e7a50ea912fbed03326c9a53bf9f8faca0a55d67307591

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.