Sponsored Link:   Ducatur - EOS Hackathon Won! MVP Ready! Sotcap reached! - Buy 1st Multichain Token - 3in1 (ETH,NEO,EOS)
Contract Overview
Balance: 0.540784588859152465 Ether
Ether Value: $280.28 (@ $518.29/ETH)
Transactions: 634 txns
Token Contract: CryptoSport (CS)
 Latest 25 txns from a total Of 634 transactions
View All

TxHash Age From To Value [TxFee]
0xb98ba01fac1d89e20ea3c1fc0b79b9c0bcb0ff1d8450f074cefdb1cd81a8c24516 hrs 16 mins ago0x7c33080dc1b2fee0cf6b7b522fa3a6c6b76bbd10  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00013014
0x86b8ca8b013244d30ddde83c00488d3a97c4d15b0d993234d10856620daa765620 hrs 55 mins ago0x734e4c7dbc53aad51a993828c8b9009aee87196b  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00064056
0x559d369c1729c4594bf8e5f4265372665c9a3722a5272cbe83a2cfd770892fff21 hrs 2 mins ago0x5be742b2e4cd73a3e73a60ffaf89ceb10d50be46  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00013014
0x018c5fdb75bd9a3036ceecd6849660dc5d9e9e4f948cbbc33ac36499105fdfef21 hrs 35 mins ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000032791
0xf0f5abfaf505a10f4b734f2fb5e8f0b134905c6823d6514aa3fe205913adc8ce1 day 5 hrs ago0x4c3e4ab76bef5bd75b9e02945bec46ba90332876  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000081798
0xde20fcca02d3f83b04765f8a1885f58936c320cbed30d81de468d99c1beec6b31 day 6 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000098373
0x37033f67c879cde3c5103eecc022f956a738d9ecfabe582b48aaa2ebf0388a361 day 6 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000098373
0xb0a96f4cb5962ef6fb836347721774a76c69e3105eb6ff843954ef65fb67c4161 day 6 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000098373
0x7a1aea8431e87fdfb92424e176f27b617c576c06bdfbb38ba8d85b249d6d3a151 day 6 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.00021705
0x16ee09fc9b495a13b2343a8144d3fbb7a4c4190d643aa0d453ae1890e344452b1 day 6 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.001 Ether0.000098361
0x58b07bc47e843fedf4e2e72f815dee23541b77cc6280d2dc3843d4a3cb7970161 day 22 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00032028
0x6819786377cb151778f026363f1b4f3bb3503a65f141ee3eaf7f49ea68c376d01 day 22 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00032028
0xb6d8f64bfdda5aaaf848cb6e9a046237bed22bf5d8d0a3d4b14f21abdae6a42b1 day 22 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00032028
0xc02d2480912d15ff92c8850b93320e2d6fd155da5ace25ffbe8f18f0ac8158701 day 22 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00032028
0xba35fac852d5d3bc13bd05a3fc30dbe4d1dee054afbe282536122661fe00d98c1 day 22 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00032028
0x095942fbe3992cf0386b1b78a92f968d98fa578de409c568b8d1a459c83a0dac1 day 22 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000081798
0x0e7301d33b5dac463af9550a12396e5fedf30748e9eb898a33ba5933a9f8ec2d1 day 22 hrs ago0xd09756eafbdd1e6b9ca226acadf750cb94f16c12  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000081798
0x2bff6fd40bed989e0751710231dc5e92914e2c22130bc803e08ab0d7cbc9ad772 days ago0xa2c286e1b7282506a48f955c4f50e702415674b8  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.015 Ether0.00034542
0x9c7226e2013e24c6673532d70f6813c44d06f46222aabcabad1725dad1ef4b5c2 days 16 hrs ago0x0ac5b982b8c4cf39db9fdb36291887492846b114  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0.005 Ether0.00013014
0x51341cc765b1621617b427201d16905185b6a2cba7ee8eafacacfda0e3544d552 days 21 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000295119
0x4182fee330a614390123666f8490803333c2d6ca2d6b7572fdcbf241394768ff2 days 21 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000229537
0xff7b5ea46fec6b70ef275a4e35ef6dee217edccb4f24d178decccc2b9317821a2 days 21 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000229537
0xcff1e4749c016fc3626129f7ac61dfba40c200a0c9e8184bd2d618ad971b89dc2 days 21 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000229537
0x260e5d21aad8039931e25f9d0f8ed84b276e876d5c02bfdba0d3d17eda4dcedb2 days 21 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.000229537
0xcdd9b1d7ed644e12d7592351808826cdc8c1009e4d47d495d8fc5fef64630ffa2 days 21 hrs ago0xb821552466c6391925ace5450d58285cd66c3714  IN   0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0 Ether0.00050645
[ 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
0xf0f5abfaf505a10f4b734f2fb5e8f0b134905c6823d6514aa3fe205913adc8ce58049211 day 5 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x4c3e4ab76bef5bd75b9e02945bec46ba903328760.0095 Ether
0x095942fbe3992cf0386b1b78a92f968d98fa578de409c568b8d1a459c83a0dac58006371 day 22 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xd09756eafbdd1e6b9ca226acadf750cb94f16c120.006333333333333333 Ether
0x0e7301d33b5dac463af9550a12396e5fedf30748e9eb898a33ba5933a9f8ec2d58006311 day 22 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xd09756eafbdd1e6b9ca226acadf750cb94f16c120.00475 Ether
0xbdcd175be56e8f0afd474befa2f4f8a1e322dd56bc13ecd32556e0f885c96baa57904583 days 16 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x407b5846128b02078828ad73f9d2e6747b21f9f80.012666666666666666 Ether
0x5ff601092795c481bf38b5d5c4c5621792585212736d963f8bd171a894ca408357904563 days 16 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x407b5846128b02078828ad73f9d2e6747b21f9f80.012666666666666666 Ether
0x645a2366e174ee92b753b1930c6bba84b16f6dc03970e4d0e390242445cc1f0257886544 days 5 mins ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00202667174690816 Ether
0x220c4b7afb323c58750ae246951a7ce4d58380bb4638f7c517428c7a6f13fa1d57869984 days 7 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x0e5d7e7130cebebd7e81c9ad6b935e48d17eac7f0.00005 Ether
0x3df05533bc32c681085f11daf994144a0b09789451516a11cedb5b20fb6fcfa257858234 days 11 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x208db8124b140a8fc1a748d080ca1454710c4c7c0.0001 Ether
0x5ffd007a8f356bd4f63c52b4204bd2c18d17d5e7ad29f79d0dbf99398597fbad57858224 days 11 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x208db8124b140a8fc1a748d080ca1454710c4c7c0.0001 Ether
0x6bc8d018dbfb8fedb89ec70420b9ac0f08912cb5a282ad577b7ed0d2417a596457849794 days 15 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x208db8124b140a8fc1a748d080ca1454710c4c7c0.00005 Ether
0xbeab871e6e1b0ca7e271ab23c933a0bd176ecc23116098e76d0991ecee0f0d4457704547 days 4 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xa2c7d1bac272788e7cdaded3ea23bd2caa8d47c40.00005 Ether
0x5d5e3a290bb1683f7155f32ba4997fce826c1ff9f84ea3a422bffe10d8de1fff57563359 days 16 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3ab65a90e831d496d314c028b0993c54ae1ed1020.00005 Ether
0xb3e7ab0fde5b437efc3153e10369db980c9e6b49b6a4a1d0b181a45c46d8765d57563339 days 16 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3ab65a90e831d496d314c028b0993c54ae1ed1020.00005 Ether
0xf1231ae3b11076ae4218396e7913305fded857c2405e48b306b1ebc98aa97c2257547959 days 23 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc0.12887332825309184 Ether
0xb899b0052eab7bf626da5df03db46646249e6ab81b62bcad0b124ac7431a7ee2575350510 days 4 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xb821552466c6391925ace5450d58285cd66c37140.007125 Ether
0xce26ef2a4edd05489625c80303454fa600a1737359dbccc5e5029f4d0bc58861575183610 days 11 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00202667174690816 Ether
0xaf100ccfe7d3f5284691ad6b709899acf8b8f63305eb4d9f7afa6eece0c07df3572989414 days 8 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xb821552466c6391925ace5450d58285cd66c37140.00665 Ether
0xa7397578197d354a93770d04f7ccf6fe81ebbc58d848321df0758632e1fe518e572557015 days 3 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xac5c6e5acc19c23ee9f09cdd8f091e298d6c49310.26845075614840832 Ether
0x931dee0e5c526fead8126f6929ed7a07bce63dc94ba6f041a9956314a38553cd572210815 days 18 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3ab65a90e831d496d314c028b0993c54ae1ed1020.0001 Ether
0x12cf470d698831133bd29fc9a86ea93c0f73921442a1d9f39c3b214138e90ad6570913818 days 1 hr ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x230c9a8f235d88bbc8f9b589e17b4a4adbb286fc0.133 Ether
0xa03fb716330a53a5ee0fb41a3b9c7f40e665e4dee3cb4cc5dcef4e2cb685b172568213722 days 20 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0xa2c286e1b7282506a48f955c4f50e702415674b80.0133 Ether
0x600ca2e2a78380a2935f2001d8b460b156e0e9dab412a5d5171b587281c3c5f8568197322 days 20 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00202667174690816 Ether
0x63b22cd3c2a857485330416d761cdf5ea96da2a6f122a4ab3d39cc2233758b8d567767823 days 14 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x89816645bd09881da13626c1b7931cbd17d29bb00.007125 Ether
0xba3d7ad737aa9861e120f3bc3d5cf627508e66614dac156c2999f668936324e1566752625 days 10 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x0e5d7e7130cebebd7e81c9ad6b935e48d17eac7f0.00005 Ether
0x7eb306d51609f20878e821aec3304a2b369624437e926de82a552f38c74f566f559440738 days 7 hrs ago0xb487d45f2d2a93b84e8f8c5074e256896bbf7d9c0x0d8c9d5fb5301ce26d67e2a7b345580a899177420.00475 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: CSLottery
Compiler Version: 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 txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.