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

TxHash Age From To Value [TxFee]
0x3a18ad66070db83e57a0b59cbd025c87833da52b451090f14db3be271732979c29 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0x6100cce675e5bc13a81ca74f62661424e113a17b1cd51214dfa72914145af47e29 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xcdb41484d3a8b4dd06e760efe93fb12ddd70fcbdb8b7e6b9e92a088270d18ed229 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0x70fcd4bbe84e7ca57b876d22602e3a86dc9d22165ca6a770f2d71360f5ba89fd29 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0x12bb6776de5d0fce8151c70f88912d6d90d39ed2ab33a5c527c155200a4dfb8a29 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0x913f3f6b5dfc473019f42674727a5106d19c40cd9e5c600d93d784075df3a56929 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0118067
0xf342c8379c46169a8f63e24f5c8163b4292d37adda26902a0770c3410d59815329 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xee7cd30c589bf17bd442a6ae7ddc502a4f26976350e503c04d66f58fa02f610829 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0118019
0x7773893584f720b11537c1f43f5315949a0669295d8e871ea0d12cbf26038e2029 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xa45dcd0a4df91f8b40bc949cff21a475dbbf63afbac36fdd82a02bd41605a4c729 days 18 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0x960b6ecea4de5331cdf63415f4d435b46b66f8f7c44fc333892c3f0ec1c3d12629 days 21 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0x00fd8f1dfdf7e6be108fdf110e250fe1bc7f51b17263e7e71f33371ebd36e23829 days 21 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0x73e15f6d315ce3da0ee97bd30ffcfdb6a20475898bd86689c70e9fb6059b626429 days 21 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0189
0xb3fdf27e069fa5af2f667a6e45458cbef5b3603a046f7b104c1e05899ffb9b3a29 days 21 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xff29c46f0768e2c9549b104b6f980d7e29f0789906e0d1e79f54db917de59e7a29 days 21 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0x7ac538d97087b5b92fe3d04464676abf31c5c74bb86e1b0bca9779e4e4983be429 days 21 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0189
0x50da310ddd22c21b6f17f2fc6764e0d196b4cd1c318d72a2e1eafcd511b472bc29 days 21 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0x07165706a8bcc329776597cb28d00f9da2e51ed69c813110627c57a5c1c7351e29 days 23 hrs ago0xa4dc4b1cf374c6446d9f094b3294b22b3c69675c  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.00701436
0x0c2b1b351fef47a59586d67091b292e9f78fbf8d23d014c2357eb3bbb802ed8529 days 23 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xce6f6fcf24f07bdfbbe292a101d34cc068721872960818c0b22791237221997129 days 23 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0117469
0x5223c6f4f4303c745ce6986f2dd2385022b6b9a858b7b6a7f4b9d2e6cd493e6429 days 23 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01288683
0xd26e974fbed2d14c05382d48c88d30a24e3cd69341864881ef1531b18e06093729 days 23 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0118757
0x24a7f3f20e16926210f96143c7ea581982384d7b13f38bb66e8b46e3baa742ca29 days 23 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xcd049dcb21e8078e169b68fc357d717d90c4a2007887e78b5080b36e88234ece29 days 23 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.01289259
0xb76c91bebb0915fe788dd6da1246d1263fe457ae87f09ef2e409b29e79fef57729 days 23 hrs ago0xb4f679886938693b520d93abf602665491ee3cd6  IN   0x72d872e2eeee9416f57f13d6b060a4688469377a0 Ether0.0118883
[ 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