Contract Overview
Balance: 0 Ether
Transactions: 1888 txns
 Latest 25 txns From a total of 1888 Transactions

TxHash Age From To Value [TxFee]
0xb169ac8906ac22aaf63bf23420bc7fa705cbfe2916817fdb83895bce53d3b4869 days 3 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000051923
0x20e137ada5546f652265b253a5edd33e39b97d9790f5b89494210bacf3f0c0de9 days 3 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000051859
0xeb9dedd37e96e215b5ea16b24139053d63b0bd94ff2e000f916dff9dc5f236569 days 3 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000051923
0x0cdf9b8039ca202812517c7708fe24915ca3b30aab2d7779e468e3aabb2175409 days 3 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000051923
0xa54ecf9d5a994b09049e4c8f087e030c4a06980149cb0090dfe94be4f78acdda9 days 4 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000051859
0x56b8736ba59fff8db14c07bd12c8d85a980e3ace0b888d6c03c8e6f404f15f129 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x0cdfd51b11616dfd6d3c4c7c973e0b79c9f089f708e6670c96b3f992088ed4e69 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x4b0e59e47608eb0fd5508d4dd13441656436e5c4a11c5589e18d25da34f2dcf59 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x51f9e25e22a077c728b3e984121972b5ed2a0b3ab10297a66951d62ffae17dcd9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x278bcc8425187b361de24b25c968d0062998c8551c2ca388178aee31289996a09 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0xd2ee33c556cfd668d7f363d6ae22dc4be258c352dbdf6653bb00b54b689a212e9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x4f4fd050c2d133da726960307df152686862fe2b0e2bc32698cdaee3668435c69 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x6b00ed55f072c685878747422b198658088a5432909d4fce4c6a3094c87653789 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x178e2f376d67638981c561f6cc457add05d9a16f67dafe3cbe4f4ba136928b969 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x623740b8a89a8bcc27b4928ad953fcf8032cb39c663b37802d1b32283113b8689 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0xa963bfe05b643057848629b76085db8075cce400a88564c109cb87afea4447bb9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x6b0a9e9a20356d1326da337eeedcaa3b6b800b81367cc3e77b15b1ec2b81660b9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000051923
0x37fd2653d7139ef04c79062b1f1cd1fd830c248ff5fbed9e1fb1338b7099540f9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x6ba39dfdeaed6e8e28b206803b3b22fb9c0f942a45e526c07d637c2ae3fbe35f9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x28544980d869b1a58dcc29bd4ebe015f25c5437513b8cd326959ab8828edcf8b9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0xe4e4e4f03ec9d14482d5c5642f8dbddec49e3fc218b924c406836c75b64492889 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x8b8268dddb44d83e0cdcd1d3933bb2a91c7278477521db945b256ad1402368af9 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x2439c9bc3dfd4dd7621cb7d457ac5c08f62572e2050166be677e81e35ed535039 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x7f6f7e84db8dec347fe4db79a2358a316032e5b15bf7ee5b020738b6f00599659 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
0x50d1c1de097d0dc989e29c3977c050202380e99d755d98ee5369f5919c0254679 days 5 hrs ago0xa96603bb6ae590d0f565307bef31f7936c07da90  IN   0xc411a0964ba1814b65a7b59bce73f798bc36511d0 Ether0.000036923
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: BetsMatch
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
	/**
	* @dev Multiplies two numbers, throws on overflow.
	*/
	function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
		// Gas optimization: this is cheaper than asserting 'a' not being zero, but the
		// benefit is lost if 'b' is also tested.
		if (_a == 0) {
			return 0;
		}

		c = _a * _b;
		assert(c / _a == _b);
		return c;
	}

	/**
	* @dev Integer division of two numbers, truncating the quotient.
	*/
	function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
		// uint256 c = _a / _b;
		// assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
		return _a / _b;
	}

	/**
	* @dev Subtracts two numbers, throws on overflowы (i.e. if subtrahend is greater than minuend).
	*/
	function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
		assert(_b <= _a);
		return _a - _b;
	}

	/**
	* @dev Adds two numbers, throws on overflow.
	*/
	function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
		c = _a + _b;
		assert(c >= _a);
		return c;
	}
}

contract Math {
	using SafeMath for uint;

	function power(uint256 a, uint256 b) internal pure returns (uint256 res){
		res = 1;
		for (uint i = 0; i < b; i++) {
			res = res.mul(a);
		}
	}

	function multiply(uint a, uint b, uint decimals) internal pure returns(uint){
		return ((a.mul(b)).div(power(10, (decimals**2))));
	}
}

/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/

contract Ownable {
	address internal _owner;

	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

	/*
	* @dev The Ownable constructor sets the original `owner` o the contract to the sender account
	*/
	constructor() public {
		_owner = msg.sender;
	}

	/**
	* @dev Throws if called by any account other than the owner.
	*/
	modifier onlyOwner() {
		require(msg.sender == _owner);
		_;
	}

	/**
	* @dev Allows the current owner to transfer control of the contract to a newOwner.
	* @param newOwner The address to transfer ownership to.
	*/
	function transferOwnership(address newOwner) onlyOwner() public {
		require(newOwner != _owner);
		_transferOwnership(newOwner);
	}

	/**
	* @dev Transfers control of the contract to a newOwner.
	* @param newOwner The address to transfer ownership to.
	*/
	function _transferOwnership(address newOwner) internal {
		// require(newOwner != address(0));
		emit OwnershipTransferred(_owner, newOwner);
		_owner = newOwner;
	}

	function getOwner() public constant returns(address) {
		return (_owner);
	}
}

/*
* Interface ERC20
*/

contract Token {

	function transfer( address _to, uint256 _value ) public returns ( bool success );
	
	function transferFrom( address _from, address _to, uint256 _value ) public returns ( bool success );
	
	event Transfer( address indexed _from, address indexed _to, uint256 _value );

}

contract 	Admins is Ownable {

	mapping(address => bool) internal _moderators;

	address public _prevSmartContract;

	address public _nextSmartContract;

	string 	public _version;

	/**
	* @dev Construct.
	*/
	constructor() public {
		_prevSmartContract = address(0x0);
		_nextSmartContract = address(0x0);
		_version = "0.01";
		_moderators[msg.sender] = true;
		_moderators[0xA96603Bb6AE590d0f565307BeF31f7936c07DA90] = true;
	}

	function	changeStatusModerator(
		address user,
		bool status
	)
		public
		notNullAddress(user)
		onlyOwner()
	{
		_moderators[user] = status;
	}

	function 	setNextSmartContract(
		address smartContract
	)
		public
		notNullAddress(smartContract)
		onlyOwner()
	{
		_nextSmartContract = smartContract;
	}

	/**
	* @dev Throws if called by any account other than the moderator.
	*/
	modifier onlyModerator() {
		require(_moderators[msg.sender] == true);
		_;
	}

	/**
	* @dev Throws if called by null account
	* @param user The address to check at zero address
	*/
	modifier notNullAddress(address user) {
		require(user != address(0x0));
		_;
	}

	/**
	* 	gets methods
	*	@param user The address to get status user
	*/
	function 	getStatusModerator(address user) public view returns (bool) {
		return 	(_moderators[user]);
	}
}

contract BalanceToken is Admins, Math {

	address public _token;

	mapping(address => uint) public _balanceOf;

	address public _liquidatePool;

	event TransferToken(address to, address from, uint amount);

	event Deposit(address token, address user, uint amountDeposit, uint balanceNow);

	event WithdrawForUser(address token, address user, uint amount, uint balanceNow);

	event WithdrawLiquidatePool(
		address token,
		address owner,
		uint amount,
		uint balanceLiquidatePool
	);

	event DepositLiquidatePool(
		address token,
		address user,
		uint amountDeposit,
		uint balanceLiquidatePool
	);

	constructor(/*address liquidatePool*/) public {
		/*require(liquidatePool != address(0x0));*/
		_liquidatePool = msg.sender; // for testing
		_token = 0x8345BE4100f7a455822836aB77DAaa82Ee4ABFAD;
	}

	function 	depositToken(uint amount) notZero(amount) public {
		require(msg.sender != _liquidatePool);
		
		_balanceOf[msg.sender] = (_balanceOf[msg.sender].add(amount));
		if (Token(_token).transferFrom(msg.sender, this, amount) == false) {
			revert();
		}
		emit Deposit(_token, msg.sender, amount , _balanceOf[msg.sender]);
	}


	function 	withdrawTokenForUser(uint amount) notZero(amount) public {
		_balanceOf[msg.sender] = _balanceOf[msg.sender].sub(amount);
		if (Token(_token).transfer(msg.sender, amount) == false) {
			revert();
		}
		emit WithdrawForUser(_token, msg.sender, amount, _balanceOf[msg.sender]);
	}

	function 	depositLiquidateThePool(uint amount) notZero(amount) public {
		_balanceOf[_liquidatePool] = _balanceOf[_liquidatePool].add(amount);
		if (Token(_token).transferFrom(msg.sender, this, amount) == false) {
			revert();
		}
		emit DepositLiquidatePool(
			_token,
			msg.sender,
			amount,
			 _balanceOf[_liquidatePool]
		);
	}

	function 	withdrawLiquidatePool(
		uint amount
	)
		notZero(amount)
		onlyOwner()
		public
	{
		_balanceOf[_liquidatePool] = _balanceOf[_liquidatePool].sub(amount);
		if (Token(_token).transfer(msg.sender, amount) == false) {
			revert();
		}
		emit WithdrawLiquidatePool(
			_token,
			msg.sender,
			amount,
			_balanceOf[_liquidatePool]
		);
	}

	function transferToken(
		address user,
		uint amount
	)
		public
		onlyModerator()
	{
		_balanceOf[_liquidatePool] = _balanceOf[_liquidatePool].sub(amount);
		_balanceOf[user] = _balanceOf[user].add(amount);
		emit TransferToken(msg.sender, user, amount);
	}

	modifier 	notZero(uint amount) {
		require(amount != 0);
		_;
	}
}

contract BetsMatch is BalanceToken {

	uint public constant MIN_ETHER_BET = (1 ether / 100);

	struct Event {
		bytes16[] hashMarketItem;
		bool closed;
		bool closeSuccess;
	}

	struct MarketItem {
		bytes16[] outcomes;
		uint8 numberWinOutcome;
		bytes16 hashEventParent;
	}

	struct Bet {
		address user;
		uint amountBet;
		uint amountBetReward;
		uint coef;
		bytes16 outcome;
		bool verified;
		bool end;
	}

	struct Outcome {
		bytes16 hashMarketItem;
		bytes16[] bet;
		uint amountCloseBet;
	}

	/* For bets */
	mapping(bytes16 => Bet) public _betsMapping;

	/* For outcome */

	mapping(bytes16 => Outcome) public _outcomeMapping;

	/* Event */
	mapping(bytes16 => Event) private _eventsMapping;

	/* MarketItem */
	mapping(bytes16 => MarketItem) private _marketItemMapping;

	event CloseBetsHead(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		bytes16 hashOutcome
	);

	event CreateBet(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		bytes16 hashBet
	);

	event CloseBet(bytes16 hashBet, bool status);

	event CancelBet(address user, bytes16 bet);  

	/**
	* @dev Function for create event with MarketItem.
	*/
	function 	createEvent(
		bytes16 hashEvent,
		bytes16[] arrayHashMarketItem,
		bytes16[] arrayHashOutcome,
		uint[] arraySize
	)
		onlyModerator()
		sizeArrayCompare(arrayHashOutcome.length, arraySize)
		notEmptyArrayBytes16(arrayHashMarketItem)
		notEmptyArrayBytes16(arrayHashOutcome)
		notEmptyArrayUint(arraySize)
		public
	{
		require(hashEvent != bytes16(0x0));
		require(_eventsMapping[hashEvent].hashMarketItem.length == 0); // Protection against reuse
		for (uint i = 0; i < arrayHashMarketItem.length; i++) {
			require(_marketItemMapping[arrayHashMarketItem[i]].hashEventParent == bytes16(0x0)); // Protection against reuse
		}

		Event memory currentEvent = Event(arrayHashMarketItem, false, false);
		_eventsMapping[hashEvent] = currentEvent;
		createMarketItem(hashEvent, arrayHashMarketItem, arrayHashOutcome, arraySize);
	}

	function 	addMarketItem(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		bytes16[] arrayHashOutcome
	)
		onlyModerator()
		notCloseEvent(hashEvent)
		notEmptyArrayBytes16(_eventsMapping[hashEvent].hashMarketItem)
		public
	{
		require(hashEvent != bytes16(0x0) && hashMarketItem != bytes16(0x0));
		if (_marketItemMapping[hashMarketItem].hashEventParent == bytes16(0x0)) {
			_eventsMapping[hashEvent].hashMarketItem.push(hashMarketItem);
			_marketItemMapping[hashMarketItem].hashEventParent = hashEvent;
		}
		for (uint i = 0; i < arrayHashOutcome.length; i++) {
			require(_outcomeMapping[arrayHashOutcome[i]].hashMarketItem == bytes16(0x0)); // Protection against reuse outcome
			require(arrayHashOutcome[i] != bytes16(0x0));

			_marketItemMapping[hashMarketItem].outcomes.push(arrayHashOutcome[i]);
			_outcomeMapping[arrayHashOutcome[i]].hashMarketItem = hashMarketItem;
		}
	}

	/**
	* @dev Function for create Bet, across deposit in smart-contract.
	* Availabe for players.
	*/
	function 	createBetAcrossDeposit(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		bytes16 hashOutcome,
		bytes16 hashBet,
		uint amountBet,
		uint coef
	)
		public
	{
		require(_balanceOf[msg.sender] >= amountBet);

		_balanceOf[msg.sender] = _balanceOf[msg.sender].sub(amountBet);
		createBet(hashEvent, hashMarketItem, hashOutcome, hashBet, amountBet, coef);
	}

	/**
	*	@dev Function for cancel Bet, availabe for players.
	* 	mvp cancelBet
	*/
	function 	cancelBet(
		bytes16 hashBet
	)
		public
		notZero(_betsMapping[hashBet].amountBet)
	{
		require(hashBet != bytes16(0x0));
		require(_betsMapping[hashBet].end == true && _betsMapping[hashBet].verified == false);
		require(msg.sender == _betsMapping[hashBet].user);

		uint amount = _betsMapping[hashBet].amountBet;
		_betsMapping[hashBet].amountBet = 0;
		_balanceOf[_betsMapping[hashBet].user] = _balanceOf[_betsMapping[hashBet].user].add(amount);
		emit CancelBet(msg.sender, hashBet);
	}

	/**
	* @dev Function for accept Bet. Availabe for Admin and moderators.
	*/
	function 	acceptBet(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		bytes16 hashBet,
		bool status
	)
		onlyModerator()
		notCloseEvent(hashEvent)
		public
	{
		require(hashEvent != bytes16(0x0));
		require(_outcomeMapping[_betsMapping[hashBet].outcome].hashMarketItem == hashMarketItem); // проверка что весы относятся к той ставке.
		require(_betsMapping[hashBet].verified == false && _betsMapping[hashBet].end == false); // проверка что ставка не проверялась еще

		bytes16 outcome = _betsMapping[hashBet].outcome;
		if (status) {
			_outcomeMapping[outcome].bet.push(hashBet);
			_betsMapping[hashBet].verified = true;
		}
		else {
			_betsMapping[hashBet].end = true;
		}
	}

	function 	recordingResultsOfBet(
		bytes16 hashEvent,
		bytes16[] hashMarketItem,
		uint8[] numberWinOutcome
	)
		onlyModerator()
		notCloseEvent(hashEvent)
		notEmptyArrayBytes16(_eventsMapping[hashEvent].hashMarketItem)
		public
	{
		require(hashMarketItem.length == numberWinOutcome.length);
		require(hashEvent != bytes16(0x0));

		for (uint i = 0; i < hashMarketItem.length; i++) {
			require(_marketItemMapping[hashMarketItem[i]].hashEventParent == hashEvent); // проверка что хеш весов есть в данном евенте
			require(_marketItemMapping[hashMarketItem[i]].outcomes.length >= numberWinOutcome[i]); // protected overflow
			_marketItemMapping[hashMarketItem[i]].numberWinOutcome = numberWinOutcome[i];
		}
		_eventsMapping[hashEvent].closeSuccess = true;
		_eventsMapping[hashEvent].closed = true;
	}

	function 	cancelEvent(
		bytes16 hashEvent
	)
		public
		onlyModerator()
	{
		require(hashEvent != bytes16(0x0));

		if (_eventsMapping[hashEvent].closeSuccess == true) {
			_eventsMapping[hashEvent].closeSuccess = false;
		}
		if (_eventsMapping[hashEvent].closed == false) {
			_eventsMapping[hashEvent].closed = true;
		}
	}

	function 	closeBetsIfEventNotSuccess(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		uint numberOutcome,
		uint quantityBets
	)
		public
		onlyModerator()
	{
		require(hashEvent != bytes16(0x0) && hashMarketItem != bytes16(0x0));
		require(_eventsMapping[hashEvent].closeSuccess == false);
		require(_eventsMapping[hashEvent].closed == true);
		require(numberOutcome <= _marketItemMapping[hashMarketItem].outcomes.length);

		uint amount;
		bytes16 hashBet;
		address user;
		bytes16 hashOutcome = _marketItemMapping[hashMarketItem].outcomes[numberOutcome];

		require(quantityBets.add(_outcomeMapping[hashOutcome].amountCloseBet) <= _outcomeMapping[hashOutcome].bet.length);
		uint i = _outcomeMapping[hashOutcome].amountCloseBet;
		for (uint j = 0; j < quantityBets; j++) {
			hashBet = _outcomeMapping[hashOutcome].bet[i];
			user = _betsMapping[hashBet].user;
			_betsMapping[hashBet].end = true;
			amount = _betsMapping[hashBet].amountBet;
			_betsMapping[hashBet].amountBet = 0;
			_balanceOf[user] = _balanceOf[user].add(amount);
			emit CloseBet(hashBet, false);
			i += 1;
		}
		_outcomeMapping[hashOutcome].amountCloseBet = i;
		emit CloseBetsHead(hashEvent, hashMarketItem, hashOutcome);
	}

	function 	closeBets(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		uint 	numberOutcome,
		uint 	quantityBets
	)
		onlyModerator()
		parentMarketItem(hashEvent, hashMarketItem)
		notZero(quantityBets)
		public
	{
		require(hashEvent != bytes16(0x0) && hashMarketItem != bytes16(0x0));
		require(numberOutcome <= _marketItemMapping[hashMarketItem].outcomes.length);
		require(_eventsMapping[hashEvent].closeSuccess == true);
		require(_eventsMapping[hashEvent].closed == true);

		uint amount;
		bytes16 hashBet;
		bytes16 hashOutcome = _marketItemMapping[hashMarketItem].outcomes[numberOutcome];

		require(quantityBets.add(_outcomeMapping[hashOutcome].amountCloseBet) <= _outcomeMapping[hashOutcome].bet.length);
		uint i = _outcomeMapping[hashOutcome].amountCloseBet;
		for (uint j = 0; j < quantityBets; j++) {
			hashBet = _outcomeMapping[hashOutcome].bet[i];
			_betsMapping[hashBet].end = true;
			if (_betsMapping[hashBet].outcome == getWinOutcome(hashMarketItem)) {
				amount = _betsMapping[hashBet].amountBetReward;
				_betsMapping[hashBet].amountBetReward = 0;
				_balanceOf[_liquidatePool] = _balanceOf[_liquidatePool].sub(amount);
				_balanceOf[_betsMapping[hashBet].user] = _balanceOf[_betsMapping[hashBet].user].add(amount);
				emit CloseBet(hashBet, true);
			}
			else {
				amount = _betsMapping[hashBet].amountBet;
				_betsMapping[hashBet].amountBet = 0;
				_balanceOf[_liquidatePool] = _balanceOf[_liquidatePool].add(amount);
				emit CloseBet(hashBet, false);
			}
			i += 1;
		}
		_outcomeMapping[hashOutcome].amountCloseBet = i;
		emit CloseBetsHead(hashEvent, hashMarketItem, hashOutcome);
	}

	/* Getter */

	function 	getInfoMarketItem(
		bytes16 hashMarketItem
	)
		view
		public
		returns(bytes16[], uint8)
	{
		return (
			_marketItemMapping[hashMarketItem].outcomes,
			_marketItemMapping[hashMarketItem].numberWinOutcome
		);
	}

	function getWinOutcome(
		bytes16 hashMarketItem
	)
		public
		constant
		returns(bytes16)
	{
		require(_marketItemMapping[hashMarketItem].outcomes.length != 0);
		return (_marketItemMapping[hashMarketItem].outcomes[_marketItemMapping[hashMarketItem].numberWinOutcome]);
	}

	function 	getArrayHashMarketItem(bytes16 hashEvent) view public returns(bytes16[]) {
		return _eventsMapping[hashEvent].hashMarketItem;
	}

	/* 
	* @param coef - (3==0.03)(30==0.3)(300==3)(255==2.55)
	*/
	function 	createBet(
		bytes16 hashEvent,
		bytes16 hashMarketItem,
		bytes16 hashOutcome,
		bytes16 hashBet,
		uint amountBet,
		uint coef
	)
		notCloseEvent(hashEvent)
		parentMarketItem(hashEvent, hashMarketItem)
		notZero(amountBet)
		notZero(coef)
		notEmptyArrayBytes16(_eventsMapping[hashEvent].hashMarketItem)
		notEmptyArrayBytes16(_marketItemMapping[hashMarketItem].outcomes)
		internal
	{
		require(hashBet != bytes16(0x0));
		require(_outcomeMapping[hashOutcome].hashMarketItem == hashMarketItem); // существует ли условие в данных весах
		require(_betsMapping[hashBet].user == address(0x0)); // не занят ли данный хеш ставки
		require(amountBet >= MIN_ETHER_BET);

		/* 100 потому что нужно добавить два нуля, 2 потому что количество цифр после запятой */
		uint amountBetReward = multiply(amountBet * 100, coef, 2);
		Bet memory bet = Bet(
			msg.sender,
			amountBet,
			amountBetReward,
			coef,
			hashOutcome,
			false,
			false
		);
		_betsMapping[hashBet] = bet;
		emit CreateBet(hashEvent, hashMarketItem, hashBet);
	}

	function 	createMarketItem(
		bytes16 hashEvent,
		bytes16[] arrayHashMarketItem,
		bytes16[] arrayHashOutcome,
		uint[] arraySize
	)
		internal
	{
		uint elem = 0;
		for (uint j = 0; j < arraySize.length; j++) {
			require(arrayHashMarketItem[j] != bytes16(0x0));
			_marketItemMapping[arrayHashMarketItem[j]].hashEventParent = hashEvent;
			for (uint i = 0; i < arraySize[j]; i++) {
				require(_outcomeMapping[arrayHashOutcome[elem]].hashMarketItem == bytes16(0x0));
				require(arrayHashOutcome[elem] != bytes16(0x0));
				_marketItemMapping[arrayHashMarketItem[j]].outcomes.push(arrayHashOutcome[elem]);
				_outcomeMapping[arrayHashOutcome[elem]].hashMarketItem = arrayHashMarketItem[j];
				elem += 1;
			}
		}
	}

	/** Modifiers */

	modifier 	sizeArrayCompare(uint len, uint[] arraySize) {
		uint size = 0;
		for (uint i = 0; i < arraySize.length; i++) {
			size += arraySize[i];
		}
		require (size == len);
		_;
	}

	modifier notCloseEvent(bytes16 hash) {
		require(_eventsMapping[hash].closed == false);
		_;
	}

	modifier notEmptyArrayBytes16(bytes16[] array) {
		require(array.length != 0);
		_;
	}

	modifier notEmptyArrayUint(uint[] array) {
		require(array.length != 0);
		_;
	}

	modifier 	deadline(uint time) {
		require (now >= time);
		_;
	}

	modifier 	notZeroBytes16(bytes16 h) {
		require(h != bytes16(0x0));
		_;
	}

	modifier parentMarketItem(bytes16 hashEvent, bytes16 hashMarketItem) {
		require (_marketItemMapping[hashMarketItem].hashEventParent == hashEvent);
		_;
	}
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"_prevSmartContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MIN_ETHER_BET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getStatusModerator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"_outcomeMapping","outputs":[{"name":"hashMarketItem","type":"bytes16"},{"name":"amountCloseBet","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"},{"name":"hashMarketItem","type":"bytes16"},{"name":"numberOutcome","type":"uint256"},{"name":"quantityBets","type":"uint256"}],"name":"closeBets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes16"}],"name":"_betsMapping","outputs":[{"name":"user","type":"address"},{"name":"amountBet","type":"uint256"},{"name":"amountBetReward","type":"uint256"},{"name":"coef","type":"uint256"},{"name":"outcome","type":"bytes16"},{"name":"verified","type":"bool"},{"name":"end","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawTokenForUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"hashMarketItem","type":"bytes16"}],"name":"getWinOutcome","outputs":[{"name":"","type":"bytes16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"depositToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"hashMarketItem","type":"bytes16"}],"name":"getInfoMarketItem","outputs":[{"name":"","type":"bytes16[]"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"depositLiquidateThePool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_nextSmartContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"}],"name":"cancelEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"status","type":"bool"}],"name":"changeStatusModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"},{"name":"hashMarketItem","type":"bytes16"},{"name":"numberOutcome","type":"uint256"},{"name":"quantityBets","type":"uint256"}],"name":"closeBetsIfEventNotSuccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"},{"name":"hashMarketItem","type":"bytes16"},{"name":"hashBet","type":"bytes16"},{"name":"status","type":"bool"}],"name":"acceptBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"hashEvent","type":"bytes16"}],"name":"getArrayHashMarketItem","outputs":[{"name":"","type":"bytes16[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hashBet","type":"bytes16"}],"name":"cancelBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"},{"name":"hashMarketItem","type":"bytes16[]"},{"name":"numberWinOutcome","type":"uint8[]"}],"name":"recordingResultsOfBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_liquidatePool","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"},{"name":"hashMarketItem","type":"bytes16"},{"name":"hashOutcome","type":"bytes16"},{"name":"hashBet","type":"bytes16"},{"name":"amountBet","type":"uint256"},{"name":"coef","type":"uint256"}],"name":"createBetAcrossDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawLiquidatePool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"},{"name":"arrayHashMarketItem","type":"bytes16[]"},{"name":"arrayHashOutcome","type":"bytes16[]"},{"name":"arraySize","type":"uint256[]"}],"name":"createEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"smartContract","type":"address"}],"name":"setNextSmartContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"hashEvent","type":"bytes16"},{"name":"hashMarketItem","type":"bytes16"},{"name":"arrayHashOutcome","type":"bytes16[]"}],"name":"addMarketItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"hashEvent","type":"bytes16"},{"indexed":false,"name":"hashMarketItem","type":"bytes16"},{"indexed":false,"name":"hashOutcome","type":"bytes16"}],"name":"CloseBetsHead","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"hashEvent","type":"bytes16"},{"indexed":false,"name":"hashMarketItem","type":"bytes16"},{"indexed":false,"name":"hashBet","type":"bytes16"}],"name":"CreateBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"hashBet","type":"bytes16"},{"indexed":false,"name":"status","type":"bool"}],"name":"CloseBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"bet","type":"bytes16"}],"name":"CancelBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TransferToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amountDeposit","type":"uint256"},{"indexed":false,"name":"balanceNow","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balanceNow","type":"uint256"}],"name":"WithdrawForUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balanceLiquidatePool","type":"uint256"}],"name":"WithdrawLiquidatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amountDeposit","type":"uint256"},{"indexed":false,"name":"balanceLiquidatePool","type":"uint256"}],"name":"DepositLiquidatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60008054600160a060020a03199081163317909155600280548216905560038054909116905560c0604052600460808190527f302e30310000000000000000000000000000000000000000000000000000000060a090815262000064919081620000fe565b503360008181526001602081905260408220805460ff19908116831790915573a96603bb6ae590d0f565307bef31f7936c07da909092527fb9bee213ce51944d5a7c3856f0ede101a32cfc2acf3bf1c373dc61a22fabcecc805490921617905560078054600160a060020a0319908116909217905560058054909116738345be4100f7a455822836ab77daaa82ee4abfad179055620001a3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014157805160ff191683800117855562000171565b8280016001018555821562000171579182015b828111156200017157825182559160200191906001019062000154565b506200017f92915062000183565b5090565b620001a091905b808211156200017f57600081556001016200018a565b90565b61319c80620001b36000396000f30060806040526004361061018a5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630e71d6d1811461018f5780631072cbea146101c057806313a47602146101e657806320d0c13c1461020d5780632e7ea0a1146102425780633e118dbe14610288578063475297bc14610312578063478bc3b814610340578063551e44ca146103b257806358cea888146103ca5780636215be7714610409578063631ccb1d1461042157806364c877f1146104a45780636a5b088c146104bc578063714d9537146104d157806376b15836146104f3578063893d20e8146105195780639212d0c11461052e5780639be6178e1461055c5780639d3c3b5d1461058f578063ad27b14d14610601578063c704e04a14610623578063c7876ff8146106c0578063cca3e832146106d5578063d3528d9b146106f6578063df28aef714610730578063ecd0c0c314610748578063efc3323c1461075d578063f068a3a614610833578063f2fde38b14610854578063fd40a1e914610875575b600080fd5b34801561019b57600080fd5b506101a46108e1565b60408051600160a060020a039092168252519081900360200190f35b3480156101cc57600080fd5b506101e4600160a060020a03600435166024356108f0565b005b3480156101f257600080fd5b506101fb6109d6565b60408051918252519081900360200190f35b34801561021957600080fd5b5061022e600160a060020a03600435166109e1565b604080519115158252519081900360200190f35b34801561024e57600080fd5b506102646001608060020a0319600435166109ff565b604080516001608060020a0319909316835260208301919091528051918290030190f35b34801561029457600080fd5b5061029d610a21565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d75781810151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031e57600080fd5b506101e46001608060020a031960043581169060243516604435606435610aaf565b34801561034c57600080fd5b506103626001608060020a031960043516610fe0565b60408051600160a060020a03909816885260208801969096528686019490945260608601929092526001608060020a0319166080850152151560a0840152151560c0830152519081900360e00190f35b3480156103be57600080fd5b506101e4600435611033565b3480156103d657600080fd5b506103ec6001608060020a03196004351661117f565b604080516001608060020a03199092168252519081900360200190f35b34801561041557600080fd5b506101e46004356111ff565b34801561042d57600080fd5b506104436001608060020a031960043516611369565b60405180806020018360ff1660ff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561048f578181015183820152602001610477565b50505050905001935050505060405180910390f35b3480156104b057600080fd5b506101e4600435611419565b3480156104c857600080fd5b506101a461157e565b3480156104dd57600080fd5b506101e46001608060020a03196004351661158d565b3480156104ff57600080fd5b506101e4600160a060020a0360043516602435151561166d565b34801561052557600080fd5b506101a46116c6565b34801561053a57600080fd5b506101e46001608060020a0319600435811690602435166044356064356116d6565b34801561056857600080fd5b506101e46001608060020a03196004358116906024358116906044351660643515156119fb565b34801561059b57600080fd5b506105b16001608060020a031960043516611c05565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ed5781810151838201526020016105d5565b505050509050019250505060405180910390f35b34801561060d57600080fd5b506101e46001608060020a031960043516611ca2565b34801561062f57600080fd5b506040805160206004602480358281013584810280870186019097528086526101e49684356001608060020a03191696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611e369650505050505050565b3480156106cc57600080fd5b506101a46120be565b3480156106e157600080fd5b506101fb600160a060020a03600435166120cd565b34801561070257600080fd5b506101e46001608060020a03196004358116906024358116906044358116906064351660843560a4356120df565b34801561073c57600080fd5b506101e4600435612139565b34801561075457600080fd5b506101a46122af565b34801561076957600080fd5b506040805160206004602480358281013584810280870186019097528086526101e49684356001608060020a03191696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506122be9650505050505050565b34801561083f57600080fd5b506101e4600160a060020a03600435166124b9565b34801561086057600080fd5b506101e4600160a060020a0360043516612516565b34801561088157600080fd5b5060408051602060046044358181013583810280860185019096528085526101e49583356001608060020a031990811696602480359092169636969560649592949301928291850190849080828437509497506125519650505050505050565b600254600160a060020a031681565b3360009081526001602081905260409091205460ff1615151461091257600080fd5b600754600160a060020a031660009081526006602052604090205461093d908263ffffffff61288416565b600754600160a060020a039081166000908152600660205260408082209390935590841681522054610975908263ffffffff61289b16565b600160a060020a03831660008181526006602090815260409182902093909355805133815292830191909152818101839052517f3844b7075ed6e7d4b61342769cb2b1b325cba410a62932affaa90aee247dadf59181900360600190a15050565b662386f26fc1000081565b600160a060020a031660009081526001602052604090205460ff1690565b60096020526000908152604090208054600290910154608060020a9091029082565b6004805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610aa75780601f10610a7c57610100808354040283529160200191610aa7565b820191906000526020600020905b815481529060010190602001808311610a8a57829003601f168201915b505050505081565b336000908152600160208190526040822054829182918291829160ff16151514610ad857600080fd5b6001608060020a03198089166000908152600b60205260409020600101548a918a91608060020a61010090910402811690831614610b1557600080fd5b87801515610b2257600080fd5b6001608060020a03198c1615801590610b4457506001608060020a03198b1615155b1515610b4f57600080fd5b6001608060020a03198b166000908152600b60205260409020548a1115610b7557600080fd5b6001608060020a03198c166000908152600a60205260409020600190810154610100900460ff16151514610ba857600080fd5b6001608060020a03198c166000908152600a6020526040902060019081015460ff16151514610bd657600080fd5b6001608060020a03198b166000908152600b6020526040902080548b908110610bfb57fe5b6000918252602080832060028084049091015460019384166010026101000a9004608060020a026001608060020a0319811685526009909252604090932091820154919092015491975090610c51908b9061289b565b1115610c5c57600080fd5b6001608060020a03198616600090815260096020526040812060020154955093505b88841015610f20576001608060020a031986166000908152600960205260409020600101805486908110610cae57fe5b6000918252602080832060028304015460019092166010026101000a909104608060020a026001608060020a031981168352600890915260409091206004018054608860020a71ff0000000000000000000000000000000000199091161790559650610d198b61117f565b6001608060020a0319888116600090815260086020526040902060040154608060020a02811691161415610e5c576001608060020a031987166000908152600860209081526040808320600201805490849055600754600160a060020a03168452600690925290912054909850610d96908963ffffffff61288416565b600754600160a060020a039081166000908152600660208181526040808420959095556001608060020a03198c168352600881528483205490931682529091522054610de8908963ffffffff61289b16565b6001608060020a03198816600081815260086020908152604080832054600160a060020a03168352600682529182902093909355805191825260019282019290925281517f0d13a079f3d5366b767cf5388186474effbe91c4e7ca4f160bdec6a6380aeb76929181900390910190a1610f10565b6001608060020a031987166000908152600860209081526040808320600101805490849055600754600160a060020a03168452600690925290912054909850610eab908963ffffffff61289b16565b600754600160a060020a031660009081526006602090815260408083209390935582516001608060020a03198b1681529081019190915281517f0d13a079f3d5366b767cf5388186474effbe91c4e7ca4f160bdec6a6380aeb76929181900390910190a15b6001948501949390930192610c7e565b8460096000886001608060020a0319166001608060020a0319168152602001908152602001600020600201819055507f57338c87100cdb0b390111e60345324215f49e4c6acb3f200f678bba214214e18c8c8860405180846001608060020a0319166001608060020a0319168152602001836001608060020a0319166001608060020a0319168152602001826001608060020a0319166001608060020a0319168152602001935050505060405180910390a1505050505050505050505050565b60086020526000908152604090208054600182015460028301546003840154600490940154600160a060020a03909316939192909190608060020a8082029160ff918104821691608860020a9091041687565b8080151561104057600080fd5b33600090815260066020526040902054611060908363ffffffff61288416565b3360008181526006602090815260408083209490945560055484517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018790529351600160a060020a039094169363a9059cbb93604480820194918390030190829087803b1580156110de57600080fd5b505af11580156110f2573d6000803e3d6000fd5b505050506040513d602081101561110857600080fd5b5051151561111557600080fd5b60055433600081815260066020908152604091829020548251600160a060020a039095168552908401929092528281018590526060830191909152517fec351b3b2a3fa623a1c8f70dc500463a9a3925138dd68f1eda94f60f05c7fde19181900360800190a15050565b6001608060020a031981166000908152600b602052604081205415156111a457600080fd5b6001608060020a031982166000908152600b602052604090206001810154815460ff9091169081106111d257fe5b90600052602060002090600291828204019190066010029054906101000a9004608060020a029050919050565b8080151561120c57600080fd5b600754600160a060020a031633141561122457600080fd5b33600090815260066020526040902054611244908363ffffffff61289b16565b3360008181526006602090815260408083209490945560055484517f23b872dd0000000000000000000000000000000000000000000000000000000081526004810194909452306024850152604484018790529351600160a060020a03909416936323b872dd93606480820194918390030190829087803b1580156112c857600080fd5b505af11580156112dc573d6000803e3d6000fd5b505050506040513d60208110156112f257600080fd5b505115156112ff57600080fd5b60055433600081815260066020908152604091829020548251600160a060020a039095168552908401929092528281018590526060830191909152517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15050565b6001608060020a031981166000908152600b602090815260408083206001810154815483518186028101860190945280845260609594929360ff9092169284919083018282801561140957602002820191906000526020600020906000905b82829054906101000a9004608060020a026001608060020a03191681526020019060100190602082600f010492830192600103820291508084116113c85790505b5050505050915091509150915091565b8080151561142657600080fd5b600754600160a060020a0316600090815260066020526040902054611451908363ffffffff61289b16565b600754600160a060020a0390811660009081526006602090815260408083209490945560055484517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810188905294519316936323b872dd9360648083019491928390030190829087803b1580156114d857600080fd5b505af11580156114ec573d6000803e3d6000fd5b505050506040513d602081101561150257600080fd5b5051151561150f57600080fd5b600554600754600160a060020a039081166000908152600660209081526040918290205482519390941683523390830152818101859052606082019290925290517f19f07ba64b3666d0c86de2d2687e35f34dd9220c71716cc126c47def501eafbe9181900360800190a15050565b600354600160a060020a031681565b3360009081526001602081905260409091205460ff161515146115af57600080fd5b6001608060020a0319811615156115c557600080fd5b6001608060020a031981166000908152600a60205260409020600190810154610100900460ff161515141561161a576001608060020a031981166000908152600a60205260409020600101805461ff00191690555b6001608060020a031981166000908152600a602052604090206001015460ff16151561166a576001608060020a031981166000908152600a602052604090206001908101805460ff191690911790555b50565b81600160a060020a038116151561168357600080fd5b600054600160a060020a0316331461169a57600080fd5b50600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b600054600160a060020a03165b90565b3360009081526001602081905260408220548291829182918291829160ff90911615151461170357600080fd5b6001608060020a03198a161580159061172557506001608060020a0319891615155b151561173057600080fd5b6001608060020a03198a166000908152600a6020526040902060010154610100900460ff161561175f57600080fd5b6001608060020a03198a166000908152600a6020526040902060019081015460ff1615151461178d57600080fd5b6001608060020a031989166000908152600b60205260409020548811156117b357600080fd5b6001608060020a031989166000908152600b602052604090208054899081106117d857fe5b6000918252602080832060028084049091015460019384166010026101000a9004608060020a026001608060020a031981168552600990925260409093209182015491909201549194509061182e90899061289b565b111561183957600080fd5b50506001608060020a03198116600090815260096020526040812060020154905b8681101561198b576001608060020a03198316600090815260096020526040902060010180548390811061188a57fe5b6000918252602080832060028304015460019283166010026101000a9004608060020a026001608060020a0319811684526008825260408085208054600482018054608860020a71ff0000000000000000000000000000000000199091161790559401805490869055600160a060020a0390941680865260069093529093205491985091965090945061191d908761289b565b600160a060020a03851660009081526006602090815260408083209390935582516001608060020a0319891681529081019190915281517f0d13a079f3d5366b767cf5388186474effbe91c4e7ca4f160bdec6a6380aeb76929181900390910190a16001918201910161185a565b6001608060020a031980841660008181526009602090815260409182902060020186905581518e85168152938d169084015282810191909152517f57338c87100cdb0b390111e60345324215f49e4c6acb3f200f678bba214214e19181900360600190a150505050505050505050565b33600090815260016020819052604082205460ff16151514611a1c57600080fd5b6001608060020a031985166000908152600a6020526040902060010154859060ff1615611a4857600080fd5b6001608060020a031986161515611a5e57600080fd5b6001608060020a0319848116600090815260086020908152604080832060040154608060020a9081028516845260099092529091205402811690861614611aa457600080fd5b6001608060020a03198416600090815260086020526040902060040154608060020a900460ff16158015611afc57506001608060020a03198416600090815260086020526040902060040154608860020a900460ff16155b1515611b0757600080fd5b6001608060020a03198416600090815260086020526040902060040154608060020a0291508215611bc1576001608060020a03198281166000908152600960209081526040808320600190810180548083018255908552838520600282040180546001608060020a03929093166010026101000a91820219909216608060020a808c049290920217909155938816835260089091529020600401805470ff0000000000000000000000000000000019169091179055611bfd565b6001608060020a031984166000908152600860205260409020600401805471ff00000000000000000000000000000000001916608860020a1790555b505050505050565b6001608060020a031981166000908152600a6020908152604091829020805483518184028101840190945280845260609392830182828015611c9657602002820191906000526020600020906000905b82829054906101000a9004608060020a026001608060020a03191681526020019060100190602082600f01049283019260010382029150808411611c555790505b50505050509050919050565b6001608060020a03198116600090815260086020526040812060010154801515611ccb57600080fd5b6001608060020a031983161515611ce157600080fd5b6001608060020a03198316600090815260086020526040902060040154608860020a900460ff1615156001148015611d3d57506001608060020a03198316600090815260086020526040902060040154608060020a900460ff16155b1515611d4857600080fd5b6001608060020a03198316600090815260086020526040902054600160a060020a03163314611d7657600080fd5b6001608060020a031983166000908152600860209081526040808320600181018054908590559054600160a060020a03168452600690925290912054909250611dc5908363ffffffff61289b16565b6001608060020a03198416600081815260086020908152604080832054600160a060020a0316835260068252918290209390935580513381529283019190915280517ff37df8700155b1269d6a7f3d64e638740a3ecad6c833d28328224325dafcfccd9281900390910190a1505050565b33600090815260016020819052604082205460ff16151514611e5757600080fd5b6001608060020a031984166000908152600a6020526040902060010154849060ff1615611e8357600080fd5b6001608060020a031985166000908152600a602090815260409182902080548351818402810184019094528084529091830182828015611f1257602002820191906000526020600020906000905b82829054906101000a9004608060020a026001608060020a03191681526020019060100190602082600f01049283019260010382029150808411611ed15790505b5050835115159250611f2691505057600080fd5b8351855114611f3457600080fd5b6001608060020a031986161515611f4a57600080fd5b600092505b845183101561208257856001608060020a031916600b60008786815181101515611f7557fe5b60209081029091018101516001608060020a031990811683529082019290925260400160002060010154608060020a610100909104021614611fb657600080fd5b8383815181101515611fc457fe5b9060200190602002015160ff16600b60008786815181101515611fe357fe5b60209081029091018101516001608060020a031916825281019190915260400160002054101561201257600080fd5b838381518110151561202057fe5b90602001906020020151600b6000878681518110151561203c57fe5b6020908102919091018101516001608060020a03191682528101919091526040016000206001908101805460ff191660ff93909316929092179091559290920191611f4f565b5050506001608060020a03199092166000908152600a602052604090206001908101805460ff1961ff0019909116610100171690911790555050565b600754600160a060020a031681565b60066020526000908152604090205481565b336000908152600660205260409020548211156120fb57600080fd5b3360009081526006602052604090205461211b908363ffffffff61288416565b33600090815260066020526040902055611bfd8686868686866128a8565b8080151561214657600080fd5b600054600160a060020a0316331461215d57600080fd5b600754600160a060020a0316600090815260066020526040902054612188908363ffffffff61288416565b600754600160a060020a0390811660009081526006602090815260408083209490945560055484517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101889052945193169363a9059cbb9360448083019491928390030190829087803b15801561220957600080fd5b505af115801561221d573d6000803e3d6000fd5b505050506040513d602081101561223357600080fd5b5051151561224057600080fd5b600554600754600160a060020a039081166000908152600660209081526040918290205482519390941683523390830152818101859052606082019290925290517f5b143f1c6f7f4087895cedf6cc78a76b48fefc06ba691e0b88aae7376329cd909181900360800190a15050565b600554600160a060020a031681565b60006122c861303a565b3360009081526001602081905260409091205460ff161515146122ea57600080fd5b8351836000805b825181101561231f57828181518110151561230857fe5b6020908102909101015191909101906001016122f1565b81841461232b57600080fd5b88518990151561233a57600080fd5b88518990151561234957600080fd5b88518990151561235857600080fd5b6001608060020a03198d16151561236e57600080fd5b6001608060020a03198d166000908152600a60205260409020541561239257600080fd5b600098505b8b51891015612402578b51600090600b9082908f908d9081106123b657fe5b60209081029091018101516001608060020a031990811683529082019290925260400160002060010154608060020a6101009091040216146123f757600080fd5b600190980197612397565b6060604051908101604052808d815260200160001515815260200160001515815250975087600a60008f6001608060020a0319166001608060020a0319168152602001908152602001600020600082015181600001908051906020019061246a92919061305a565b5060208201516001909101805460409093015115156101000261ff001992151560ff1990941693909317919091169190911790556124aa8d8d8d8d612cd7565b50505050505050505050505050565b80600160a060020a03811615156124cf57600080fd5b600054600160a060020a031633146124e657600080fd5b506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461252d57600080fd5b600054600160a060020a038281169116141561254857600080fd5b61166a81612f2f565b33600090815260016020819052604082205460ff1615151461257257600080fd5b6001608060020a031984166000908152600a6020526040902060010154849060ff161561259e57600080fd5b6001608060020a031985166000908152600a60209081526040918290208054835181840281018401909452808452909183018282801561262d57602002820191906000526020600020906000905b82829054906101000a9004608060020a026001608060020a03191681526020019060100190602082600f010492830192600103820291508084116125ec5790505b505083511515925061264191505057600080fd5b6001608060020a031986161580159061266357506001608060020a0319851615155b151561266e57600080fd5b6001608060020a03198581166000908152600b60205260409020600101546101009004608060020a0216151561272b576001608060020a03198681166000908152600a60209081526040808320805460018082018355918552838520600282040180546001608060020a0392841660100261010090810a93840219909116608060020a808f049490940217909155958b168552600b9093529220909101805470ffffffffffffffffffffffffffffffff0019169189049092021790555b600092505b8351831015611bfd578351600090600990829087908790811061274f57fe5b60209081029091018101516001608060020a031990811683529082019290925260400160002054608060020a02161461278757600080fd5b835160009085908590811061279857fe5b602090810290910101516001608060020a03191614156127b757600080fd5b6001608060020a031985166000908152600b6020526040902084518590859081106127de57fe5b6020908102919091018101518254600180820185556000948552928420600282040180546001608060020a03949092166010026101000a93840219909116608060020a909204929092021790558451869160099187908790811061283e57fe5b60209081029091018101516001608060020a03199081168352908201929092526040016000208054608060020a9093049290911691909117905560019290920191612730565b60008282111561289057fe5b508082035b92915050565b8181018281101561289557fe5b60006128b2613110565b6001608060020a031988166000908152600a6020526040902060010154889060ff16156128de57600080fd5b6001608060020a03198089166000908152600b60205260409020600101548a918a91608060020a6101009091040281169083161461291b57600080fd5b8680151561292857600080fd5b8680151561293557600080fd5b6001608060020a03198d166000908152600a6020908152604091829020805483518184028101840190945280845290918301828280156129c457602002820191906000526020600020906000905b82829054906101000a9004608060020a026001608060020a03191681526020019060100190602082600f010492830192600103820291508084116129835790505b50508351151592506129d891505057600080fd5b6001608060020a03198d166000908152600b602090815260409182902080548351818402810184019094528084529091830182828015612a6757602002820191906000526020600020906000905b82829054906101000a9004608060020a026001608060020a03191681526020019060100190602082600f01049283019260010382029150808411612a265790505b5050835115159250612a7b91505057600080fd5b6001608060020a03198c161515612a9157600080fd5b6001608060020a03198d8116600090815260096020526040902054608060020a028116908f1614612ac157600080fd5b6001608060020a03198c16600090815260086020526040902054600160a060020a031615612aee57600080fd5b662386f26fc100008b1015612b0257600080fd5b612b118b6064028b6002612f97565b985060e06040519081016040528033600160a060020a031681526020018c81526020018a81526020018b81526020018e6001608060020a031916815260200160001515815260200160001515815250975087600860008e6001608060020a0319166001608060020a031916815260200190815260200160002060008201518160000160006101000a815481600160a060020a030219169083600160a060020a0316021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001608060020a030219169083608060020a9004021790555060a08201518160040160106101000a81548160ff02191690831515021790555060c08201518160040160116101000a81548160ff0219169083151502179055509050507f69f413accb3b4513173688f424ba5f901d23e918b8724115d3e3a396042e36a08f8f8e60405180846001608060020a0319166001608060020a0319168152602001836001608060020a0319166001608060020a0319168152602001826001608060020a0319166001608060020a0319168152602001935050505060405180910390a1505050505050505050505050505050565b600080805b8351821015612f26578551600090879084908110612cf657fe5b602090810290910101516001608060020a0319161415612d1557600080fd5b86600b60008885815181101515612d2857fe5b60209081029091018101516001608060020a031916825281019190915260400160009081206001018054608060020a9093046101000270ffffffffffffffffffffffffffffffff00199093169290921790915590505b8382815181101515612d8c57fe5b90602001906020020151811015612f1b5784516000906009908290889087908110612db357fe5b60209081029091018101516001608060020a031990811683529082019290925260400160002054608060020a021614612deb57600080fd5b8451600090869085908110612dfc57fe5b602090810290910101516001608060020a0319161415612e1b57600080fd5b600b60008784815181101515612e2d57fe5b60209081029091018101516001608060020a03191682528101919091526040016000208551869085908110612e5e57fe5b602090810290910181015182546001818101855560009485529290932060028404018054608060020a909204601094909316939093026101000a9182026001608060020a0390920219161790558551869083908110612eb957fe5b90602001906020020151600960008786815181101515612ed557fe5b60209081029091018101516001608060020a03199081168352908201929092526040016000208054608060020a9093049290911691909117905560019283019201612d7e565b600190910190612cdc565b50505050505050565b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000612fc6612faa600a6002850a612fce565b612fba868663ffffffff612ffc16565b9063ffffffff61302516565b949350505050565b600160005b82811015612ff557612feb828563ffffffff612ffc16565b9150600101612fd3565b5092915050565b600082151561300d57506000612895565b5081810281838281151561301d57fe5b041461289557fe5b6000818381151561303257fe5b049392505050565b604080516060818101835281526000602082018190529181019190915290565b828054828255906000526020600020906001016002900481019282156131005791602002820160005b838211156130cb57835183826101000a8154816001608060020a030219169083608060020a900402179055509260200192601001602081600f01049283019260010302613083565b80156130fe5782816101000a8154906001608060020a030219169055601001602081600f010492830192600103026130cb565b505b5061310c92915061314c565b5090565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6116d391905b8082111561310c5780546001608060020a03191681556001016131525600a165627a7a72305820958d04adc5e41d35963b6297c6a4a656e323be4eaafdcaf908463af8c2e892ee0029

   Swarm Source:
bzzr://958d04adc5e41d35963b6297c6a4a656e323be4eaafdcaf908463af8c2e892ee

 

View All
Block Age transaction Difficulty Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward