Contract Overview
ETH Balance: 0 Ether
No Of Transactions: 106881 txns
  Latest 25 txns from a total Of 106881 transactions View All

TxHash Age From To Value [TxFee]
0x361ea3e180f5620f21312df18e60bf7abe21c2fb4aafa863318062a274c013bf6 hrs 10 mins ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0x5f12a25a6e43049609307f25f6d2c14460390dd1f6b6a2f0f4f1c2cf9d517e2210 hrs 58 mins ago0xdeda3ce74fd87ab115441fef96b2f922edef465e  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
0xcd7448d2a17e15af0c57283f6fda7d24a314934f3b60540fca20dff0bd1316da13 hrs 21 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0x9606a7a16ada3483457a0083a1d5e06e7a069a5a620e4d6db71208e3abe2668413 hrs 21 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0117341
0x9ba0dd259ff2aee6485d140650cc53c6ddfd0d4e5dc3802052c6821a3f1f82df13 hrs 21 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xee1360b4003d07e59cb7caec716bfe7db0a7855fee4723f6c270c1afff77e15413 hrs 22 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
0xacbfd24ec0672c7c70eaffbd3458dab775ebcb65ce0f752473f40936d810d05f13 hrs 22 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0x68c2d6c5d9d6029818abce04983f8a1292879f897de203c96118df9531ff80a313 hrs 22 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0x1b2fd8d2a5855e94024015f1b5bcba3cf516af8938ad07d4bf11e9d381cba15013 hrs 22 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0080961
0xc2bc306555f204190dc71053e89dd7e1b00baf3710d714862a45749258b1fe0213 hrs 22 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
0x3303e7091d60ce41d227a1e62f442177dcc0e84cb5fb91c060953398a171767113 hrs 22 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
0xa94db8ba740907ca1403633bbbd44eeddbe16096b98ba5af92c85a7db1ea2fa013 hrs 22 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0118067
0x58ae0dee0346da50e0125f8a0acf4aac1e2ac96c262405475d293067664a387b13 hrs 23 mins ago0xdd65d47b68cc5f3876aa32407fca2ac68edf431c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0x2cde074c91fb7bda5ff04cfa5e7a708a8dd022e590ff65ad250f6d6abe83da3e14 hrs 37 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
0x9ce2cf754ac114702b0421df6e3e02bda256b457ffb9bb4dfba56f0edda76d0014 hrs 37 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0119437
0xd71ca250cd64a81b77db25f3a48dc3237a616ab552c63d4a08b0ee1b6770848f14 hrs 37 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01286379
0xa0e6404038deae8e4fb509528df889bec9a66fd2fdd1b03d5f9472552eab61f414 hrs 37 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01286955
0x513812953e6dfc3ed9167bc9735d6ce9107f2a169defc6f1141f8e186c8f9f9314 hrs 38 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0118067
0x324ff37dd0926ce83854baca7948c5353dea6d06b077876fb62094bec68e82fc14 hrs 38 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01287531
0x3016e6738b9e3f44e5968476783bf20988434a04a5b4f743c45399c79c6c3e5b14 hrs 38 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0119364
0xde7b55a68e973cc1154eb12a130e1c1291299b021586dd50338fd4e9e44d5ce114 hrs 39 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
0x65bb0be12c2158f747791ab9be6bf44d2e7991bd802bc362bd9e02dca3d5de8614 hrs 39 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0118067
0xc8edca446942c4afc7b18ff5b658b5b19fcd3ccf2c0ee2e0f65ad3201bbaf73f14 hrs 39 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
0x216e47f094d482b6debe012a003b7582e00fccbd00996dd56b28f0e1fe741d4414 hrs 39 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.011869
0x8c1af288066c6c59ad09f7dab6cb01846a2b9bc3009c79256a2370e67b6e7ab814 hrs 39 mins ago0xd872e1904de8fe1d769d71d0a86d878e02094c4d  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288107
[ 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 ZeroFunctionSelector (very low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: casinoProxy
Compiler Version: v0.4.17+commit.bdeb9e52
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
/**
 * Edgeless Casino Proxy Contract. Serves as a proxy for game functionality.
 * Allows the players to deposit and withdraw funds.
 * Allows authorized addresses to make game transactions.
 * author: Julia Altenried
 **/

pragma solidity ^ 0.4 .17;


contract token {
	function transferFrom(address sender, address receiver, uint amount) public returns(bool success) {}

	function transfer(address receiver, uint amount) public returns(bool success) {}

	function balanceOf(address holder) public constant returns(uint) {}
}

contract owned {
	address public owner;
	modifier onlyOwner {
		require(msg.sender == owner);
		_;
	}

	function owned() public {
		owner = msg.sender;
	}

	function changeOwner(address newOwner) onlyOwner public {
		owner = newOwner;
	}
}

contract safeMath {
	//internals
	function safeSub(uint a, uint b) constant internal returns(uint) {
		assert(b <= a);
		return a - b;
	}

	function safeAdd(uint a, uint b) constant internal returns(uint) {
		uint c = a + b;
		assert(c >= a && c >= b);
		return c;
	}

	function safeMul(uint a, uint b) constant internal returns(uint) {
		uint c = a * b;
		assert(a == 0 || c / a == b);
		return c;
	}
}

contract casinoBank is owned, safeMath {
	/** the total balance of all players with 4 virtual decimals **/
	uint public playerBalance;
	/** the balance per player in edgeless tokens with 4 virtual decimals */
	mapping(address => uint) public balanceOf;
	/** in case the user wants/needs to call the withdraw function from his own wallet, he first needs to request a withdrawal */
	mapping(address => uint) public withdrawAfter;
	/** the price per kgas in tokens (4 decimals) */
	uint public gasPrice = 20;
	/** the edgeless token contract */
	token edg;
	/** owner should be able to close the contract is nobody has been using it for at least 30 days */
	uint public closeAt;
	/** informs listeners how many tokens were deposited for a player */
	event Deposit(address _player, uint _numTokens, bool _chargeGas);
	/** informs listeners how many tokens were withdrawn from the player to the receiver address */
	event Withdrawal(address _player, address _receiver, uint _numTokens);

	function casinoBank(address tokenContract) public {
		edg = token(tokenContract);
	}

	/**
	 * accepts deposits for an arbitrary address.
	 * retrieves tokens from the message sender and adds them to the balance of the specified address.
	 * edgeless tokens do not have any decimals, but are represented on this contract with 4 decimals.
	 * @param receiver  address of the receiver
	 *        numTokens number of tokens to deposit (0 decimals)
	 *				 chargeGas indicates if the gas cost is subtracted from the user's edgeless token balance
	 **/
	function deposit(address receiver, uint numTokens, bool chargeGas) public isAlive {
		require(numTokens > 0);
		uint value = safeMul(numTokens, 10000);
		if (chargeGas) value = safeSub(value, msg.gas / 1000 * gasPrice);
		assert(edg.transferFrom(msg.sender, address(this), numTokens));
		balanceOf[receiver] = safeAdd(balanceOf[receiver], value);
		playerBalance = safeAdd(playerBalance, value);
		Deposit(receiver, numTokens, chargeGas);
	}

	/**
	 * If the user wants/needs to withdraw his funds himself, he needs to request the withdrawal first.
	 * This method sets the earliest possible withdrawal date to 7 minutes from now. 
	 * Reason: The user should not be able to withdraw his funds, while the the last game methods have not yet been mined.
	 **/
	function requestWithdrawal() public {
		withdrawAfter[msg.sender] = now + 7 minutes;
	}

	/**
	 * In case the user requested a withdrawal and changes his mind.
	 * Necessary to be able to continue playing.
	 **/
	function cancelWithdrawalRequest() public {
		withdrawAfter[msg.sender] = 0;
	}

	/**
	 * withdraws an amount from the user balance if 7 minutes passed since the request.
	 * @param amount the amount of tokens to withdraw
	 **/
	function withdraw(uint amount) public keepAlive {
		require(withdrawAfter[msg.sender] > 0 && now > withdrawAfter[msg.sender]);
		withdrawAfter[msg.sender] = 0;
		uint value = safeMul(amount, 10000);
		balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], value);
		playerBalance = safeSub(playerBalance, value);
		assert(edg.transfer(msg.sender, amount));
		Withdrawal(msg.sender, msg.sender, amount);
	}

	/**
	 * lets the owner withdraw from the bankroll
	 * @param numTokens the number of tokens to withdraw (0 decimals)
	 **/
	function withdrawBankroll(uint numTokens) public onlyOwner {
		require(numTokens <= bankroll());
		assert(edg.transfer(owner, numTokens));
	}

	/**
	 * returns the current bankroll in tokens with 0 decimals
	 **/
	function bankroll() constant public returns(uint) {
		return safeSub(edg.balanceOf(address(this)), playerBalance / 10000);
	}

	/** 
	 * lets the owner close the contract if there are no player funds on it or if nobody has been using it for at least 30 days 
	 */
	function close() onlyOwner public {
		if (playerBalance == 0) selfdestruct(owner);
		if (closeAt == 0) closeAt = now + 30 days;
		else if (closeAt < now) selfdestruct(owner);
	}

	/**
	 * in case close has been called accidentally.
	 **/
	function open() onlyOwner public {
		closeAt = 0;
	}

	/**
	 * make sure the contract is not in process of being closed.
	 **/
	modifier isAlive {
		require(closeAt == 0);
		_;
	}

	/**
	 * delays the time of closing.
	 **/
	modifier keepAlive {
		if (closeAt > 0) closeAt = now + 30 days;
		_;
	}
}

contract casinoProxy is casinoBank {
	/** indicates if an address is authorized to call game functions  */
	mapping(address => bool) public authorized;
	/** list of casino game contract addresses */
	address[] public casinoGames;
	/** a number to count withdrawal signatures to ensure each signature is different even if withdrawing the same amount to the same address */
	mapping(address => uint) public count;

	modifier onlyAuthorized {
		require(authorized[msg.sender]);
		_;
	}

	modifier onlyCasinoGames {
		bool isCasino;
		for (uint i = 0; i < casinoGames.length; i++) {
			if (msg.sender == casinoGames[i]) {
				isCasino = true;
				break;
			}
		}
		require(isCasino);
		_;
	}

	/**
	 * creates a new casino wallet.
	 * @param authorizedAddress the address which may send transactions to the Edgeless Casino
	 *        blackjackAddress  the address of the Edgeless blackjack contract
	 *				 tokenContract     the address of the Edgeless token contract
	 **/
	function casinoProxy(address authorizedAddress, address blackjackAddress, address tokenContract) casinoBank(tokenContract) public {
		authorized[authorizedAddress] = true;
		casinoGames.push(blackjackAddress);
	}

	/**
	 * shifts tokens from the contract balance to the receiver.
	 * only callable from an edgeless casino contract.
	 * @param receiver the address of the receiver
	 *        numTokens the amount of tokens to shift with 4 decimals
	 **/
	function shift(address receiver, uint numTokens) public onlyCasinoGames {
		balanceOf[receiver] = safeAdd(balanceOf[receiver], numTokens);
		playerBalance = safeAdd(playerBalance, numTokens);
	}

	/**
	 * transfers an amount from the contract balance to the owner's wallet.
	 * @param receiver the receiver address
	 *				 amount   the amount of tokens to withdraw (0 decimals)
	 *				 v,r,s 		the signature of the player
	 **/
	function withdrawFor(address receiver, uint amount, uint8 v, bytes32 r, bytes32 s) public onlyAuthorized keepAlive {
		uint gasCost = msg.gas / 1000 * gasPrice;
		var player = ecrecover(keccak256(receiver, amount, count[receiver]), v, r, s);
		count[receiver]++;
		uint value = safeAdd(safeMul(amount, 10000), gasCost);
		balanceOf[player] = safeSub(balanceOf[player], value);
		playerBalance = safeSub(playerBalance, value);
		assert(edg.transfer(receiver, amount));
		Withdrawal(player, receiver, amount);
	}

	/**
	 * update a casino game address in case of a new contract or a new casino game
	 * @param game       the index of the game 
	 *        newAddress the new address of the game
	 **/
	function setGameAddress(uint8 game, address newAddress) public onlyOwner {
		if (game < casinoGames.length) casinoGames[game] = newAddress;
		else casinoGames.push(newAddress);
	}

	/**
	 * authorize a address to call game functions.
	 * @param addr the address to be authorized
	 **/
	function authorize(address addr) public onlyOwner {
		authorized[addr] = true;
	}

	/**
	 * deauthorize a address to call game functions.
	 * @param addr the address to be deauthorized
	 **/
	function deauthorize(address addr) public onlyOwner {
		authorized[addr] = false;
	}

	/**
	 * updates the price per 1000 gas in EDG.
	 * @param price the new gas price (4 decimals, max 0.0256 EDG)
	 **/
	function setGasPrice(uint8 price) public onlyOwner {
		gasPrice = price;
	}

	/**
	 * Forwards a move to the corresponding game contract if the data has been signed by the client.
	 * The casino contract ensures it is no duplicate move.
	 * @param game  specifies which game contract to call
	 *        value the value to send to the contract in tokens with 4 decimals
	 *        data  the function call
	 *        v,r,s the player's signature of the data
	 **/
	function move(uint8 game, uint value, bytes data, uint8 v, bytes32 r, bytes32 s) public onlyAuthorized isAlive {
		require(game < casinoGames.length);
		require(safeMul(bankroll(), 10000) > value * 8); //make sure, the casino can always pay out the player
		var player = ecrecover(keccak256(data), v, r, s);
		require(withdrawAfter[player] == 0 || now < withdrawAfter[player]);
		value = safeAdd(value, msg.gas / 1000 * gasPrice);
		balanceOf[player] = safeSub(balanceOf[player], value);
		playerBalance = safeSub(playerBalance, value);
		assert(casinoGames[game].call(data));
	}


}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bankroll","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"numTokens","type":"uint256"}],"name":"withdrawBankroll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"deauthorize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"price","type":"uint8"}],"name":"setGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"numTokens","type":"uint256"},{"name":"chargeGas","type":"bool"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"withdrawAfter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"playerBalance","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"amount","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"withdrawFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"closeAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"authorize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"authorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"game","type":"uint8"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"numTokens","type":"uint256"}],"name":"shift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"casinoGames","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"requestWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cancelWithdrawalRequest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"game","type":"uint8"},{"name":"newAddress","type":"address"}],"name":"setGameAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"open","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gasPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"authorizedAddress","type":"address"},{"name":"blackjackAddress","type":"address"},{"name":"tokenContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_player","type":"address"},{"indexed":false,"name":"_numTokens","type":"uint256"},{"indexed":false,"name":"_chargeGas","type":"bool"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_player","type":"address"},{"indexed":false,"name":"_receiver","type":"address"},{"indexed":false,"name":"_numTokens","type":"uint256"}],"name":"Withdrawal","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526014600455341561001457600080fd5b60405160608061137383398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a03199283161783556005805482861693169290921790915586168152600760205260409020805460ff19166001908117909155600880549294509250810161009383826100c6565b5060009182526020909120018054600160a060020a031916600160a060020a039390931692909217909155506101109050565b8154818355818115116100ea576000838152602090206100ea9181019083016100ef565b505050565b61010d91905b8082111561010957600081556001016100f5565b5090565b90565b6112548061011f6000396000f3006060604052361561012d5763ffffffff60e060020a60003504166305d85eda81146101325780630c657eb01461016357806319c767001461017657806327c97fa51461018e5780632e102ee4146101ad5780632e1a7d4d146101c65780633edd1128146101dc57806343d726d6146102035780634659f42a14610216578063651f066a1461023557806370a08231146102485780638da5cb5b146102675780639607610a14610296578063a6f9dae1146102c4578063a9854087146102e3578063b6a5d7de146102f6578063b918161114610315578063bffeadd614610348578063c094df20146103b7578063d9629e06146103d9578063dbaf2145146103ef578063e714a02814610402578063e8d7056914610415578063fcfff16f1461043a578063fe173b971461044d575b600080fd5b341561013d57600080fd5b610151600160a060020a0360043516610460565b60405190815260200160405180910390f35b341561016e57600080fd5b610151610472565b341561018157600080fd5b61018c600435610500565b005b341561019957600080fd5b61018c600160a060020a03600435166105bd565b34156101b857600080fd5b61018c60ff600435166105f9565b34156101d157600080fd5b61018c60043561061c565b34156101e757600080fd5b61018c600160a060020a036004351660243560443515156107c4565b341561020e57600080fd5b61018c610947565b341561022157600080fd5b610151600160a060020a03600435166109aa565b341561024057600080fd5b6101516109bc565b341561025357600080fd5b610151600160a060020a03600435166109c2565b341561027257600080fd5b61027a6109d4565b604051600160a060020a03909116815260200160405180910390f35b34156102a157600080fd5b61018c600160a060020a036004351660243560ff604435166064356084356109e3565b34156102cf57600080fd5b61018c600160a060020a0360043516610c65565b34156102ee57600080fd5b610151610caf565b341561030157600080fd5b61018c600160a060020a0360043516610cb5565b341561032057600080fd5b610334600160a060020a0360043516610cf4565b604051901515815260200160405180910390f35b341561035357600080fd5b61018c6004803560ff169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505060ff8535169460208101359450604001359250610d09915050565b34156103c257600080fd5b61018c600160a060020a0360043516602435610f94565b34156103e457600080fd5b61027a60043561103f565b34156103fa57600080fd5b61018c611067565b341561040d57600080fd5b61018c611088565b341561042057600080fd5b61018c60ff60043516600160a060020a03602435166110a3565b341561044557600080fd5b61018c611162565b341561045857600080fd5b610151611184565b60096020526000908152604090205481565b6005546000906104fa90600160a060020a03166370a0823130846040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104d157600080fd5b6102c65a03f115156104e257600080fd5b5050506040518051600154909150612710900461118a565b90505b90565b60005433600160a060020a0390811691161461051b57600080fd5b610523610472565b81111561052f57600080fd5b60055460008054600160a060020a039283169263a9059cbb9291169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561059757600080fd5b6102c65a03f115156105a857600080fd5b5050506040518051905015156105ba57fe5b50565b60005433600160a060020a039081169116146105d857600080fd5b600160a060020a03166000908152600760205260409020805460ff19169055565b60005433600160a060020a0390811691161461061457600080fd5b60ff16600455565b60008060065411156106325762278d0042016006555b600160a060020a03331660009081526003602052604081205411801561066f5750600160a060020a03331660009081526003602052604090205442115b151561067a57600080fd5b600160a060020a03331660009081526003602052604081205561069f8261271061119c565b600160a060020a0333166000908152600260205260409020549091506106c5908261118a565b600160a060020a0333166000908152600260205260409020556001546106eb908261118a565b600155600554600160a060020a031663a9059cbb338460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561074d57600080fd5b6102c65a03f1151561075e57600080fd5b50505060405180519050151561077057fe5b7f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398333384604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b600654600090156107d457600080fd5b600083116107e157600080fd5b6107ed8361271061119c565b9050811561081357610810816004546103e85a81151561080957fe5b040261118a565b90505b600554600160a060020a03166323b872dd33308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561087f57600080fd5b6102c65a03f1151561089057600080fd5b5050506040518051905015156108a257fe5b600160a060020a0384166000908152600260205260409020546108c590826111c7565b600160a060020a0385166000908152600260205260409020556001546108eb90826111c7565b6001557f693c1828300d1cab0919b948d714897f817e305af51c026ad14233b6a8939adb848484604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a150505050565b60005433600160a060020a0390811691161461096257600080fd5b600154151561097957600054600160a060020a0316ff5b60065415156109905762278d0042016006556109a8565b4260065410156109a857600054600160a060020a0316ff5b565b60036020526000908152604090205481565b60015481565b60026020526000908152604090205481565b600054600160a060020a031681565b600160a060020a0333166000908152600760205260408120548190819060ff161515610a0e57600080fd5b60006006541115610a235762278d0042016006555b6004546103e85a811515610a3357fe5b0402925060018888600960008c600160a060020a0316600160a060020a0316815260200190815260200160002054604051600160a060020a03939093166c010000000000000000000000000283526014830191909152603482015260540160405180910390208787876040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515610afb57600080fd5b505060206040510351600160a060020a0389166000908152600960205260409020805460010190559150610b3a610b348861271061119c565b846111c7565b600160a060020a038316600090815260026020526040902054909150610b60908261118a565b600160a060020a038316600090815260026020526040902055600154610b86908261118a565b600155600554600160a060020a031663a9059cbb898960006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610be857600080fd5b6102c65a03f11515610bf957600080fd5b505050604051805190501515610c0b57fe5b7f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398828989604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050505050505050565b60005433600160a060020a03908116911614610c8057600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065481565b60005433600160a060020a03908116911614610cd057600080fd5b600160a060020a03166000908152600760205260409020805460ff19166001179055565b60076020526000908152604090205460ff1681565b600160a060020a03331660009081526007602052604081205460ff161515610d3057600080fd5b60065415610d3d57600080fd5b60085460ff881610610d4e57600080fd5b85600802610d65610d5d610472565b61271061119c565b11610d6f57600080fd5b6001856040518082805190602001908083835b60208310610da15780518252601f199092019160209182019101610d82565b6001836020036101000a038019825116818451161790925250505091909101925060409150505180910390208585856040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515610e2f57600080fd5b505060206040510351600160a060020a0381166000908152600360205260409020549091501580610e775750600160a060020a03811660009081526003602052604090205442105b1515610e8257600080fd5b610e9d866004546103e85a811515610e9657fe5b04026111c7565b600160a060020a038216600090815260026020526040902054909650610ec3908761118a565b600160a060020a038216600090815260026020526040902055600154610ee9908761118a565b6001556008805460ff8916908110610efd57fe5b600091825260209091200154600160a060020a03168560405180828051906020019080838360005b83811015610f3d578082015183820152602001610f25565b50505050905090810190601f168015610f6a5780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f19150501515610f8b57fe5b50505050505050565b6000805b600854811015610fe1576008805482908110610fb057fe5b60009182526020909120015433600160a060020a0390811691161415610fd95760019150610fe1565b600101610f98565b811515610fed57600080fd5b600160a060020a03841660009081526002602052604090205461101090846111c7565b600160a060020a03851660009081526002602052604090205560015461103690846111c7565b60015550505050565b600880548290811061104d57fe5b600091825260209091200154600160a060020a0316905081565b600160a060020a03331660009081526003602052604090206101a442019055565b600160a060020a033316600090815260036020526040812055565b60005433600160a060020a039081169116146110be57600080fd5b60085460ff83161015611119578060088360ff168154811015156110de57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905561115e565b600880546001810161112b83826111e1565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5050565b60005433600160a060020a0390811691161461117d57600080fd5b6000600655565b60045481565b60008282111561119657fe5b50900390565b60008282028315806111b857508284828115156111b557fe5b04145b15156111c057fe5b9392505050565b60008282018381108015906111b85750828110156111c057fe5b8154818355818115116112055760008381526020902061120591810190830161120a565b505050565b6104fd91905b808211156112245760008155600101611210565b50905600a165627a7a72305820750daf42e6018e94761eadcbd54957bdca6589a8e705c5d0419a808ac38738ed00290000000000000000000000007ab5dfc486af477c19055d0e34ba0436b32c5e540000000000000000000000007450f90f3e020e964829187697fcbc6d827356440000000000000000000000005209bb8734b013198f195beafbb821abaac4a54e

    Constructor Arguments (ABI-encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007ab5dfc486af477c19055d0e34ba0436b32c5e540000000000000000000000007450f90f3e020e964829187697fcbc6d827356440000000000000000000000005209bb8734b013198f195beafbb821abaac4a54e

-----Decoded View---------------
Found 3 constructor arguments :
Arg [0] : 0000000000000000000000007ab5dfc486af477c19055d0e34ba0436b32c5e54
Arg [1] : 0000000000000000000000007450f90f3e020e964829187697fcbc6d82735644
Arg [2] : 0000000000000000000000005209bb8734b013198f195beafbb821abaac4a54e


   Swarm Source:
bzzr://750daf42e6018e94761eadcbd54957bdca6589a8e705c5d0419a808ac38738ed
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward