Overview
ETH Balance
0.0254375 ETH
Eth Value
$92.87 (@ $3,650.73/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 240 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Pause | 5163642 | 2486 days ago | IN | 0 ETH | 0.0001849 | ||||
End Game | 5162258 | 2487 days ago | IN | 0 ETH | 0.0000687 | ||||
Play | 5162220 | 2487 days ago | IN | 0.0075 ETH | 0.0003786 | ||||
End Game | 5161365 | 2487 days ago | IN | 0 ETH | 0.000146 | ||||
Play | 5161337 | 2487 days ago | IN | 0.0075 ETH | 0.00027654 | ||||
Play | 5161331 | 2487 days ago | IN | 0.0075 ETH | 0.0001952 | ||||
Play | 5161314 | 2487 days ago | IN | 0.0075 ETH | 0.00027654 | ||||
Play | 5161313 | 2487 days ago | IN | 0.0075 ETH | 0.00027654 | ||||
Play | 5161298 | 2487 days ago | IN | 0.0075 ETH | 0.00080453 | ||||
End Game | 5161237 | 2487 days ago | IN | 0 ETH | 0.000146 | ||||
Play | 5161228 | 2487 days ago | IN | 0.0075 ETH | 0.00029618 | ||||
Play | 5161206 | 2487 days ago | IN | 0.0075 ETH | 0.00034161 | ||||
Play | 5161196 | 2487 days ago | IN | 0.0075 ETH | 0.00080453 | ||||
End Game | 5160708 | 2487 days ago | IN | 0 ETH | 0.000146 | ||||
Play | 5160682 | 2487 days ago | IN | 0.0075 ETH | 0.00063889 | ||||
Play | 5160328 | 2487 days ago | IN | 0.005 ETH | 0.00009832 | ||||
Play | 5160261 | 2487 days ago | IN | 0.005 ETH | 0.00023135 | ||||
End Game | 5159954 | 2487 days ago | IN | 0 ETH | 0.000146 | ||||
Play | 5159924 | 2487 days ago | IN | 0.0075 ETH | 0.00080453 | ||||
Play | 5159834 | 2487 days ago | IN | 0.0075 ETH | 0.0006118 | ||||
End Game | 5159668 | 2487 days ago | IN | 0 ETH | 0.000146 | ||||
Play | 5159643 | 2487 days ago | IN | 0.0075 ETH | 0.00061987 | ||||
Play | 5159500 | 2487 days ago | IN | 0.0075 ETH | 0.0003786 | ||||
End Game | 5158952 | 2487 days ago | IN | 0 ETH | 0.000146 | ||||
Play | 5158937 | 2487 days ago | IN | 0.0075 ETH | 0.00029618 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5162258 | 2487 days ago | 0.0072375 ETH | ||||
5162220 | 2487 days ago | 0.000075 ETH | ||||
5161365 | 2487 days ago | 0.0361875 ETH | ||||
5161337 | 2487 days ago | 0.000075 ETH | ||||
5161331 | 2487 days ago | 0.000075 ETH | ||||
5161314 | 2487 days ago | 0.000075 ETH | ||||
5161313 | 2487 days ago | 0.000075 ETH | ||||
5161298 | 2487 days ago | 0.000075 ETH | ||||
5161237 | 2487 days ago | 0.014475 ETH | ||||
5161228 | 2487 days ago | 0.014475 ETH | ||||
5161206 | 2487 days ago | 0.000075 ETH | ||||
5161196 | 2487 days ago | 0.000075 ETH | ||||
5160708 | 2487 days ago | 0.0072375 ETH | ||||
5160682 | 2487 days ago | 0.000075 ETH | ||||
5159954 | 2487 days ago | 0.0072375 ETH | ||||
5159924 | 2487 days ago | 0.000075 ETH | ||||
5159668 | 2487 days ago | 0.0072375 ETH | ||||
5159643 | 2487 days ago | 0.000075 ETH | ||||
5159643 | 2487 days ago | 0.0072375 ETH | ||||
5159500 | 2487 days ago | 0.000075 ETH | ||||
5158952 | 2487 days ago | 0.0072375 ETH | ||||
5158937 | 2487 days ago | 0.0072375 ETH | ||||
5158914 | 2487 days ago | 0.000075 ETH | ||||
5158652 | 2487 days ago | 0.0193 ETH | ||||
5158640 | 2487 days ago | 0.0193 ETH |
Loading...
Loading
Contract Name:
ChronosCore
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-25 */ pragma solidity ^0.4.18; /** * @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) { if (a == 0) { return 0; } uint256 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) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts 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) { uint256 c = a + b; assert(c >= a); return c; } } /** * @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 public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() 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) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title Claimable * @dev Extension for the Ownable contract, where the ownership needs to be claimed. * This allows the new owner to accept the transfer. */ contract Claimable is Ownable { address public pendingOwner; /** * @dev Modifier throws if called by any account other than the pendingOwner. */ modifier onlyPendingOwner() { require(msg.sender == pendingOwner); _; } /** * @dev Allows the current owner to set the pendingOwner address. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { pendingOwner = newOwner; } /** * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() onlyPendingOwner public { OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = address(0); } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; Unpause(); } } /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { function safeTransfer(ERC20Basic token, address to, uint256 value) internal { assert(token.transfer(to, value)); } function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal { assert(token.transferFrom(from, to, value)); } function safeApprove(ERC20 token, address spender, uint256 value) internal { assert(token.approve(spender, value)); } } /** * @title Contracts that should be able to recover tokens * @author SylTi * @dev This allow a contract to recover any ERC20 token received in a contract by transferring the balance to the contract owner. * This will prevent any accidental loss of tokens. */ contract CanReclaimToken is Ownable { using SafeERC20 for ERC20Basic; /** * @dev Reclaim all ERC20Basic compatible tokens * @param token ERC20Basic The address of the token contract */ function reclaimToken(ERC20Basic token) external onlyOwner { uint256 balance = token.balanceOf(this); token.safeTransfer(owner, balance); } } /// @dev Implements access control to the Chronos contract. contract ChronosAccessControl is Claimable, Pausable, CanReclaimToken { address public cfoAddress; function ChronosAccessControl() public { // The creator of the contract is the initial CFO. cfoAddress = msg.sender; } /// @dev Access modifier for CFO-only functionality. modifier onlyCFO() { require(msg.sender == cfoAddress); _; } /// @dev Assigns a new address to act as the CFO. Only available to the current contract owner. /// @param _newCFO The address of the new CFO. function setCFO(address _newCFO) external onlyOwner { require(_newCFO != address(0)); cfoAddress = _newCFO; } } /// @dev Defines base data structures for Chronos. contract ChronosBase is ChronosAccessControl { using SafeMath for uint256; /// @notice Boolean indicating whether a game is live. bool public gameStarted; /// @notice The player who started the game. address public gameStarter; /// @notice The last player to have entered. address public lastPlayer; /// @notice The timestamp the last wager times out. uint256 public lastWagerTimeoutTimestamp; /// @notice The number of seconds before the game ends. uint256 public timeout; /// @notice The number of seconds before the game ends -- setting /// for the next game. uint256 public nextTimeout; /// @notice The minimum number of seconds before the game ends. uint256 public minimumTimeout; /// @notice The minmum number of seconds before the game ends -- /// setting for the next game. uint256 public nextMinimumTimeout; /// @notice The number of wagers required to move to the /// minimum timeout. uint256 public numberOfWagersToMinimumTimeout; /// @notice The number of wagers required to move to the /// minimum timeout -- setting for the next game. uint256 public nextNumberOfWagersToMinimumTimeout; /// @notice The wager index of the the current wager in the game. uint256 public wagerIndex = 0; /// @notice Calculate the current game's timeout. function calculateTimeout() public view returns(uint256) { if (wagerIndex >= numberOfWagersToMinimumTimeout || numberOfWagersToMinimumTimeout == 0) { return minimumTimeout; } else { // This cannot underflow, as timeout is guaranteed to be // greater than or equal to minimumTimeout. uint256 difference = timeout - minimumTimeout; // Calculate the decrease in timeout, based on the number of wagers performed. uint256 decrease = difference.mul(wagerIndex).div(numberOfWagersToMinimumTimeout); // This subtraction cannot underflow, as decrease is guaranteed to be less than or equal to timeout. return (timeout - decrease); } } } /** * @title PullPayment * @dev Base contract supporting async send for pull payments. Inherit from this * contract and use asyncSend instead of send. */ contract PullPayment { using SafeMath for uint256; mapping(address => uint256) public payments; uint256 public totalPayments; /** * @dev withdraw accumulated balance, called by payee. */ function withdrawPayments() public { address payee = msg.sender; uint256 payment = payments[payee]; require(payment != 0); require(this.balance >= payment); totalPayments = totalPayments.sub(payment); payments[payee] = 0; assert(payee.send(payment)); } /** * @dev Called by the payer to store the sent amount as credit to be pulled. * @param dest The destination address of the funds. * @param amount The amount to transfer. */ function asyncSend(address dest, uint256 amount) internal { payments[dest] = payments[dest].add(amount); totalPayments = totalPayments.add(amount); } } /// @dev Defines base finance functionality for Chronos. contract ChronosFinance is ChronosBase, PullPayment { /// @notice The dev fee in 1/1000th /// of a percentage. uint256 public feePercentage = 2500; /// @notice The game starter fee. uint256 public gameStarterDividendPercentage = 1000; /// @notice The wager price. uint256 public price; /// @notice The wager price -- setting for the next game. uint256 public nextPrice; /// @notice The current prize pool (in wei). uint256 public prizePool; /// @notice The current 7th wager pool (in wei). uint256 public wagerPool; /// @notice Sets a new game starter dividend percentage. /// @param _gameStarterDividendPercentage The new game starter dividend percentage. function setGameStarterDividendPercentage(uint256 _gameStarterDividendPercentage) external onlyCFO { // Game started dividend percentage must be 0.5% at least and 4% at the most. require(500 <= _gameStarterDividendPercentage && _gameStarterDividendPercentage <= 4000); gameStarterDividendPercentage = _gameStarterDividendPercentage; } /// @dev Send funds to a beneficiary. If sending fails, assign /// funds to the beneficiary's balance for manual withdrawal. /// @param beneficiary The beneficiary's address to send funds to /// @param amount The amount to send. function _sendFunds(address beneficiary, uint256 amount) internal { if (!beneficiary.send(amount)) { // Failed to send funds. This can happen due to a failure in // fallback code of the beneficiary, or because of callstack // depth. // Send funds asynchronously for manual withdrawal by the // beneficiary. asyncSend(beneficiary, amount); } } /// @notice Withdraw (unowed) contract balance. function withdrawFreeBalance() external onlyCFO { // Calculate the free (unowed) balance. uint256 freeBalance = this.balance.sub(totalPayments).sub(prizePool).sub(wagerPool); cfoAddress.transfer(freeBalance); } } /// @dev Defines core Chronos functionality. contract ChronosCore is ChronosFinance { function ChronosCore(uint256 _price, uint256 _timeout, uint256 _minimumTimeout, uint256 _numberOfWagersToMinimumTimeout) public { require(_timeout >= _minimumTimeout); nextPrice = _price; nextTimeout = _timeout; nextMinimumTimeout = _minimumTimeout; nextNumberOfWagersToMinimumTimeout = _numberOfWagersToMinimumTimeout; NextGame(nextPrice, nextTimeout, nextMinimumTimeout, nextNumberOfWagersToMinimumTimeout); } event NextGame(uint256 price, uint256 timeout, uint256 minimumTimeout, uint256 numberOfWagersToMinimumTimeout); event Start(address indexed starter, uint256 timestamp, uint256 price, uint256 timeout, uint256 minimumTimeout, uint256 numberOfWagersToMinimumTimeout); event End(address indexed winner, uint256 timestamp, uint256 prize); event Play(address indexed player, uint256 timestamp, uint256 timeoutTimestamp, uint256 wagerIndex, uint256 newPrizePool); event SpiceUpPrizePool(address indexed spicer, uint256 spiceAdded, string message, uint256 newPrizePool); /// @notice Participate in the game. /// @param startNewGameIfIdle Start a new game if the current game is idle. function play(bool startNewGameIfIdle) external payable { // Check to see if the game should end. Process payment. _processGameEnd(); if (!gameStarted) { // If the game is not started, the contract must not be paused. require(!paused); // If the game is not started, the player must be willing to start // a new game. require(startNewGameIfIdle); // Set the price and timeout. price = nextPrice; timeout = nextTimeout; minimumTimeout = nextMinimumTimeout; numberOfWagersToMinimumTimeout = nextNumberOfWagersToMinimumTimeout; // Start the game. gameStarted = true; // Set the game starter. gameStarter = msg.sender; // Emit start event. Start(msg.sender, block.timestamp, price, timeout, minimumTimeout, numberOfWagersToMinimumTimeout); } // Enough Ether must be supplied. require(msg.value >= price); // Calculate the fees and dividends. uint256 fee = price.mul(feePercentage).div(100000); uint256 dividend = price.mul(gameStarterDividendPercentage).div(100000); uint256 wagerPoolPart; if (wagerIndex % 7 == 6) { // Give the wager prize every 7th wager. // Calculate total 7th wager prize. uint256 wagerPrize = price.mul(2); // Calculate the missing wager pool part (equal to price.mul(2).div(7) plus a few wei). wagerPoolPart = wagerPrize.sub(wagerPool); // Give the wager prize to the sender. msg.sender.transfer(wagerPrize); // Reset the wager pool. wagerPool = 0; } else { // On every non-7th wager, increase the wager pool. // Calculate the wager pool part. wagerPoolPart = price.mul(2).div(7); // Add funds to the wager pool. wagerPool = wagerPool.add(wagerPoolPart); } // Calculate the timeout. uint256 currentTimeout = calculateTimeout(); // Set the last player, timestamp, timeout timestamp, and increase prize. lastPlayer = msg.sender; lastWagerTimeoutTimestamp = block.timestamp + currentTimeout; prizePool = prizePool.add(price.sub(fee).sub(dividend).sub(wagerPoolPart)); // Emit event. Play(msg.sender, block.timestamp, lastWagerTimeoutTimestamp, wagerIndex, prizePool); // Send the game starter dividend. _sendFunds(gameStarter, dividend); // Increment the wager index. wagerIndex = wagerIndex.add(1); // Refund any excess Ether sent. // This subtraction never underflows, as msg.value is guaranteed // to be greater than or equal to price. uint256 excess = msg.value - price; if (excess > 0) { msg.sender.transfer(excess); } } /// @notice Spice up the prize pool. /// @param message An optional message to be sent along with the spice. function spiceUp(string message) external payable { // Game must be live or unpaused. require(gameStarted || !paused); // Funds must be sent. require(msg.value > 0); // Add funds to the prize pool. prizePool = prizePool.add(msg.value); // Emit event. SpiceUpPrizePool(msg.sender, msg.value, message, prizePool); } /// @notice Set the parameters for the next game. /// @param _price The price of wagers for the next game. /// @param _timeout The timeout in seconds for the next game. /// @param _minimumTimeout The minimum timeout in seconds for /// the next game. /// @param _numberOfWagersToMinimumTimeout The number of wagers /// required to move to the minimum timeout for the next game. function setNextGame(uint256 _price, uint256 _timeout, uint256 _minimumTimeout, uint256 _numberOfWagersToMinimumTimeout) external onlyCFO { require(_timeout >= _minimumTimeout); nextPrice = _price; nextTimeout = _timeout; nextMinimumTimeout = _minimumTimeout; nextNumberOfWagersToMinimumTimeout = _numberOfWagersToMinimumTimeout; NextGame(nextPrice, nextTimeout, nextMinimumTimeout, nextNumberOfWagersToMinimumTimeout); } /// @notice End the game. Pay prize. function endGame() external { require(_processGameEnd()); } /// @dev End the game. Pay prize. function _processGameEnd() internal returns(bool) { if (!gameStarted) { // No game is started. return false; } if (block.timestamp <= lastWagerTimeoutTimestamp) { // The game has not yet finished. return false; } // Calculate the prize. Any leftover funds for the // 7th wager prize is added to the prize pool. uint256 prize = prizePool.add(wagerPool); // The game has finished. Pay the prize to the last player. _sendFunds(lastPlayer, prize); // Emit event. End(lastPlayer, lastWagerTimeoutTimestamp, prize); // Reset the game. gameStarted = false; gameStarter = 0x0; lastPlayer = 0x0; lastWagerTimeoutTimestamp = 0; wagerIndex = 0; prizePool = 0; wagerPool = 0; // Indicate ending the game was successful. return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"totalPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cfoAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_gameStarterDividendPercentage","type":"uint256"}],"name":"setGameStarterDividendPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wagerIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wagerPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newCFO","type":"address"}],"name":"setCFO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gameStarter","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextNumberOfWagersToMinimumTimeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gameStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawPayments","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"endGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"timeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"prizePool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastWagerTimeoutTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextTimeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feePercentage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextMinimumTimeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfWagersToMinimumTimeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"startNewGameIfIdle","type":"bool"}],"name":"play","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"},{"name":"_timeout","type":"uint256"},{"name":"_minimumTimeout","type":"uint256"},{"name":"_numberOfWagersToMinimumTimeout","type":"uint256"}],"name":"setNextGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"calculateTimeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"message","type":"string"}],"name":"spiceUp","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minimumTimeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastPlayer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawFreeBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gameStarterDividendPercentage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_price","type":"uint256"},{"name":"_timeout","type":"uint256"},{"name":"_minimumTimeout","type":"uint256"},{"name":"_numberOfWagersToMinimumTimeout","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"timeout","type":"uint256"},{"indexed":false,"name":"minimumTimeout","type":"uint256"},{"indexed":false,"name":"numberOfWagersToMinimumTimeout","type":"uint256"}],"name":"NextGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"starter","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"timeout","type":"uint256"},{"indexed":false,"name":"minimumTimeout","type":"uint256"},{"indexed":false,"name":"numberOfWagersToMinimumTimeout","type":"uint256"}],"name":"Start","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"winner","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"prize","type":"uint256"}],"name":"End","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"timeoutTimestamp","type":"uint256"},{"indexed":false,"name":"wagerIndex","type":"uint256"},{"indexed":false,"name":"newPrizePool","type":"uint256"}],"name":"Play","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"spicer","type":"address"},{"indexed":false,"name":"spiceAdded","type":"uint256"},{"indexed":false,"name":"message","type":"string"},{"indexed":false,"name":"newPrizePool","type":"uint256"}],"name":"SpiceUpPrizePool","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60606040526001805460a060020a60ff02191690556000600c556109c4600f556103e8601055341561003057600080fd5b6040516080806112ae8339810160405280805191906020018051919060200180519190602001805160008054600160a060020a033316600160a060020a031991821681179092556002805490911690911790559150508183101561009357600080fd5b601284905560078390556009829055600b8190557ff70cb6ba9f9de2c7567ba0cec0016cf690a60fed939a2b665107a64df8c6006f848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a1505050506111a5806101096000396000f3006060604052600436106101b25763ffffffff60e060020a6000350416625b448781146101b75780630519ce79146101dc57806315334b771461020b57806317ffc320146102235780631a0725ce146102425780633f4ba83a14610255578063404823d1146102685780634e0a33791461027b5780634e71e0c81461029a57806356b32da1146102ad5780635b6427fc146102c05780635c975abb146102d35780635e123ce4146102fa5780636103d70b1461030d5780636cbc2ded1461032057806370dea79a14610333578063719ce73e146103465780638456cb59146103595780638da5cb5b1461036c578063924b573a1461037f5780639e4734ba14610392578063a001ecdd146103a5578063a035b1fe146103b8578063a91bc3cd146103cb578063b8dd7a5b146103de578063c23c87d5146103f1578063c3332732146103fe578063cd5ebd931461041d578063ce144eb914610430578063d8294ede14610443578063e2982c2114610456578063e30c397814610475578063e3450e1314610488578063ee8b39f61461049b578063ef9089d6146104ae578063f2fde38b146104c1578063f36db900146104e0575b600080fd5b34156101c257600080fd5b6101ca6104f3565b60405190815260200160405180910390f35b34156101e757600080fd5b6101ef6104f9565b604051600160a060020a03909116815260200160405180910390f35b341561021657600080fd5b610221600435610508565b005b341561022e57600080fd5b610221600160a060020a0360043516610547565b341561024d57600080fd5b6101ca6105fb565b341561026057600080fd5b610221610601565b341561027357600080fd5b6101ca610680565b341561028657600080fd5b610221600160a060020a0360043516610686565b34156102a557600080fd5b6102216106d8565b34156102b857600080fd5b6101ef610759565b34156102cb57600080fd5b6101ca610768565b34156102de57600080fd5b6102e661076e565b604051901515815260200160405180910390f35b341561030557600080fd5b6102e661077e565b341561031857600080fd5b61022161078e565b341561032b57600080fd5b610221610823565b341561033e57600080fd5b6101ca610838565b341561035157600080fd5b6101ca61083e565b341561036457600080fd5b610221610844565b341561037757600080fd5b6101ef6108c8565b341561038a57600080fd5b6101ca6108d7565b341561039d57600080fd5b6101ca6108dd565b34156103b057600080fd5b6101ca6108e3565b34156103c357600080fd5b6101ca6108e9565b34156103d657600080fd5b6101ca6108ef565b34156103e957600080fd5b6101ca6108f5565b61022160043515156108fb565b341561040957600080fd5b610221600435602435604435606435610c47565b341561042857600080fd5b6101ca610cd8565b6102216004803560248101910135610d32565b341561044e57600080fd5b6101ca610df4565b341561046157600080fd5b6101ca600160a060020a0360043516610dfa565b341561048057600080fd5b6101ef610e0c565b341561049357600080fd5b6101ef610e1b565b34156104a657600080fd5b610221610e2a565b34156104b957600080fd5b6101ca610eac565b34156104cc57600080fd5b610221600160a060020a0360043516610eb2565b34156104eb57600080fd5b6101ca610eef565b600e5481565b600254600160a060020a031681565b60025433600160a060020a0390811691161461052357600080fd5b806101f4111580156105375750610fa08111155b151561054257600080fd5b601055565b6000805433600160a060020a0390811691161461056357600080fd5b81600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105ba57600080fd5b6102c65a03f115156105cb57600080fd5b50505060405180516000549092506105f79150600160a060020a0384811691168363ffffffff610ef516565b5050565b600c5481565b60005433600160a060020a0390811691161461061c57600080fd5b60015460a060020a900460ff16151561063457600080fd5b6001805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60145481565b60005433600160a060020a039081169116146106a157600080fd5b600160a060020a03811615156106b657600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a039081169116146106f357600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600354600160a060020a031681565b600b5481565b60015460a060020a900460ff1681565b60025460a060020a900460ff1681565b33600160a060020a0381166000908152600d60205260409020548015156107b457600080fd5b600160a060020a03301631819010156107cc57600080fd5b600e546107df908263ffffffff610f7a16565b600e55600160a060020a0382166000818152600d60205260408082209190915582156108fc0290839051600060405180830381858888f1935050505015156105f757fe5b61082b610f8c565b151561083657600080fd5b565b60065481565b60135481565b60005433600160a060020a0390811691161461085f57600080fd5b60015460a060020a900460ff161561087657600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600054600160a060020a031681565b60055481565b60075481565b600f5481565b60115481565b60095481565b600a5481565b60008060008060008061090c610f8c565b5060025460a060020a900460ff161515610a025760015460a060020a900460ff161561093757600080fd5b86151561094357600080fd5b601254601181905560075460068190556009546008819055600b54600a8190556002805474ff0000000000000000000000000000000000000000191660a060020a17905560038054600160a060020a033316600160a060020a03199091168117909155937f288343e4db573c5519924fd124f08fdd424dbe87151970f1d06fb1d65e177bd99342939192909190604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a25b601154341015610a1157600080fd5b610a3b620186a0610a2f600f5460115461109090919063ffffffff16565b9063ffffffff6110c616565b9550610a5b620186a0610a2f60105460115461109090919063ffffffff16565b600c549095506007900660061415610ad557601154610a8190600263ffffffff61109016565b9250610a9860145484610f7a90919063ffffffff16565b9350600160a060020a03331683156108fc0284604051600060405180830381858888f193505050501515610acb57600080fd5b6000601455610b0a565b610af06007610a2f600260115461109090919063ffffffff16565b601454909450610b06908563ffffffff6110dd16565b6014555b610b12610cd8565b60048054600160a060020a03191633600160a060020a0316179055428101600555601154909250610b6c90610b5d908690610b5190899082908c610f7a565b9063ffffffff610f7a16565b6013549063ffffffff6110dd16565b60138190555033600160a060020a03167f78b04df0a11fe83fc959ecd9f43c379e970c560deb9d1d7dd1fa60deed85331f42600554600c546013546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2600354610be790600160a060020a0316866110ec565b600c54610bfb90600163ffffffff6110dd16565b600c555060115434036000811115610c3e57600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610c3e57600080fd5b50505050505050565b60025433600160a060020a03908116911614610c6257600080fd5b81831015610c6f57600080fd5b601284905560078390556009829055600b8190557ff70cb6ba9f9de2c7567ba0cec0016cf690a60fed939a2b665107a64df8c6006f848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b6000806000600a54600c54101580610cf05750600a54155b15610cff576008549250610d2d565b600854600654039150610d23600a54610a2f600c548561109090919063ffffffff16565b9050806006540392505b505090565b60025460a060020a900460ff1680610d54575060015460a060020a900460ff16155b1515610d5f57600080fd5b60003411610d6c57600080fd5b601354610d7f903463ffffffff6110dd16565b60138190555033600160a060020a03167f7b680deb8c4c889431b9cd588adb2762bd50a1412d5f2d6b755692587e99508f348484601354604051848152604081018290526060602082018181529082018490526080820185858082843782019150509550505050505060405180910390a25050565b60085481565b600d6020526000908152604090205481565b600154600160a060020a031681565b600454600160a060020a031681565b60025460009033600160a060020a03908116911614610e4857600080fd5b610e73601454610b51601354610b51600e5430600160a060020a031631610f7a90919063ffffffff16565b600254909150600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610ea957600080fd5b50565b60125481565b60005433600160a060020a03908116911614610ecd57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60105481565b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f5257600080fd5b6102c65a03f11515610f6357600080fd5b505050604051805190501515610f7557fe5b505050565b600082821115610f8657fe5b50900390565b600254600090819060a060020a900460ff161515610fad576000915061108c565b6005544211610fbf576000915061108c565b601454601354610fd49163ffffffff6110dd16565b600454909150610fed90600160a060020a0316826110ec565b600454600554600160a060020a03909116907ff58cfa488d8d9ddd26ddfc3dd52f23711c05cb37db31bda0b1b27d1bdfb56e53908360405191825260208201526040908101905180910390a26002805474ff00000000000000000000000000000000000000001916905560038054600160a060020a031990811690915560048054909116905560006005819055600c8190556013819055601455600191505b5090565b6000808315156110a357600091506110bf565b508282028284828115156110b357fe5b04146110bb57fe5b8091505b5092915050565b60008082848115156110d457fe5b04949350505050565b6000828201838110156110bb57fe5b600160a060020a03821681156108fc0282604051600060405180830381858888f1935050505015156105f7576105f78282600160a060020a0382166000908152600d6020526040902054611146908263ffffffff6110dd16565b600160a060020a0383166000908152600d6020526040902055600e54611172908263ffffffff6110dd16565b600e5550505600a165627a7a723058209b6cf748068b46ff7f9654def74fa250dca59caa7bceec9d48e1fefc1e962c8c00290000000000000000000000000000000000000000000000000011c37937e0800000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000c8
Deployed Bytecode
0x6060604052600436106101b25763ffffffff60e060020a6000350416625b448781146101b75780630519ce79146101dc57806315334b771461020b57806317ffc320146102235780631a0725ce146102425780633f4ba83a14610255578063404823d1146102685780634e0a33791461027b5780634e71e0c81461029a57806356b32da1146102ad5780635b6427fc146102c05780635c975abb146102d35780635e123ce4146102fa5780636103d70b1461030d5780636cbc2ded1461032057806370dea79a14610333578063719ce73e146103465780638456cb59146103595780638da5cb5b1461036c578063924b573a1461037f5780639e4734ba14610392578063a001ecdd146103a5578063a035b1fe146103b8578063a91bc3cd146103cb578063b8dd7a5b146103de578063c23c87d5146103f1578063c3332732146103fe578063cd5ebd931461041d578063ce144eb914610430578063d8294ede14610443578063e2982c2114610456578063e30c397814610475578063e3450e1314610488578063ee8b39f61461049b578063ef9089d6146104ae578063f2fde38b146104c1578063f36db900146104e0575b600080fd5b34156101c257600080fd5b6101ca6104f3565b60405190815260200160405180910390f35b34156101e757600080fd5b6101ef6104f9565b604051600160a060020a03909116815260200160405180910390f35b341561021657600080fd5b610221600435610508565b005b341561022e57600080fd5b610221600160a060020a0360043516610547565b341561024d57600080fd5b6101ca6105fb565b341561026057600080fd5b610221610601565b341561027357600080fd5b6101ca610680565b341561028657600080fd5b610221600160a060020a0360043516610686565b34156102a557600080fd5b6102216106d8565b34156102b857600080fd5b6101ef610759565b34156102cb57600080fd5b6101ca610768565b34156102de57600080fd5b6102e661076e565b604051901515815260200160405180910390f35b341561030557600080fd5b6102e661077e565b341561031857600080fd5b61022161078e565b341561032b57600080fd5b610221610823565b341561033e57600080fd5b6101ca610838565b341561035157600080fd5b6101ca61083e565b341561036457600080fd5b610221610844565b341561037757600080fd5b6101ef6108c8565b341561038a57600080fd5b6101ca6108d7565b341561039d57600080fd5b6101ca6108dd565b34156103b057600080fd5b6101ca6108e3565b34156103c357600080fd5b6101ca6108e9565b34156103d657600080fd5b6101ca6108ef565b34156103e957600080fd5b6101ca6108f5565b61022160043515156108fb565b341561040957600080fd5b610221600435602435604435606435610c47565b341561042857600080fd5b6101ca610cd8565b6102216004803560248101910135610d32565b341561044e57600080fd5b6101ca610df4565b341561046157600080fd5b6101ca600160a060020a0360043516610dfa565b341561048057600080fd5b6101ef610e0c565b341561049357600080fd5b6101ef610e1b565b34156104a657600080fd5b610221610e2a565b34156104b957600080fd5b6101ca610eac565b34156104cc57600080fd5b610221600160a060020a0360043516610eb2565b34156104eb57600080fd5b6101ca610eef565b600e5481565b600254600160a060020a031681565b60025433600160a060020a0390811691161461052357600080fd5b806101f4111580156105375750610fa08111155b151561054257600080fd5b601055565b6000805433600160a060020a0390811691161461056357600080fd5b81600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105ba57600080fd5b6102c65a03f115156105cb57600080fd5b50505060405180516000549092506105f79150600160a060020a0384811691168363ffffffff610ef516565b5050565b600c5481565b60005433600160a060020a0390811691161461061c57600080fd5b60015460a060020a900460ff16151561063457600080fd5b6001805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60145481565b60005433600160a060020a039081169116146106a157600080fd5b600160a060020a03811615156106b657600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a039081169116146106f357600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600354600160a060020a031681565b600b5481565b60015460a060020a900460ff1681565b60025460a060020a900460ff1681565b33600160a060020a0381166000908152600d60205260409020548015156107b457600080fd5b600160a060020a03301631819010156107cc57600080fd5b600e546107df908263ffffffff610f7a16565b600e55600160a060020a0382166000818152600d60205260408082209190915582156108fc0290839051600060405180830381858888f1935050505015156105f757fe5b61082b610f8c565b151561083657600080fd5b565b60065481565b60135481565b60005433600160a060020a0390811691161461085f57600080fd5b60015460a060020a900460ff161561087657600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600054600160a060020a031681565b60055481565b60075481565b600f5481565b60115481565b60095481565b600a5481565b60008060008060008061090c610f8c565b5060025460a060020a900460ff161515610a025760015460a060020a900460ff161561093757600080fd5b86151561094357600080fd5b601254601181905560075460068190556009546008819055600b54600a8190556002805474ff0000000000000000000000000000000000000000191660a060020a17905560038054600160a060020a033316600160a060020a03199091168117909155937f288343e4db573c5519924fd124f08fdd424dbe87151970f1d06fb1d65e177bd99342939192909190604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a25b601154341015610a1157600080fd5b610a3b620186a0610a2f600f5460115461109090919063ffffffff16565b9063ffffffff6110c616565b9550610a5b620186a0610a2f60105460115461109090919063ffffffff16565b600c549095506007900660061415610ad557601154610a8190600263ffffffff61109016565b9250610a9860145484610f7a90919063ffffffff16565b9350600160a060020a03331683156108fc0284604051600060405180830381858888f193505050501515610acb57600080fd5b6000601455610b0a565b610af06007610a2f600260115461109090919063ffffffff16565b601454909450610b06908563ffffffff6110dd16565b6014555b610b12610cd8565b60048054600160a060020a03191633600160a060020a0316179055428101600555601154909250610b6c90610b5d908690610b5190899082908c610f7a565b9063ffffffff610f7a16565b6013549063ffffffff6110dd16565b60138190555033600160a060020a03167f78b04df0a11fe83fc959ecd9f43c379e970c560deb9d1d7dd1fa60deed85331f42600554600c546013546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2600354610be790600160a060020a0316866110ec565b600c54610bfb90600163ffffffff6110dd16565b600c555060115434036000811115610c3e57600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610c3e57600080fd5b50505050505050565b60025433600160a060020a03908116911614610c6257600080fd5b81831015610c6f57600080fd5b601284905560078390556009829055600b8190557ff70cb6ba9f9de2c7567ba0cec0016cf690a60fed939a2b665107a64df8c6006f848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b6000806000600a54600c54101580610cf05750600a54155b15610cff576008549250610d2d565b600854600654039150610d23600a54610a2f600c548561109090919063ffffffff16565b9050806006540392505b505090565b60025460a060020a900460ff1680610d54575060015460a060020a900460ff16155b1515610d5f57600080fd5b60003411610d6c57600080fd5b601354610d7f903463ffffffff6110dd16565b60138190555033600160a060020a03167f7b680deb8c4c889431b9cd588adb2762bd50a1412d5f2d6b755692587e99508f348484601354604051848152604081018290526060602082018181529082018490526080820185858082843782019150509550505050505060405180910390a25050565b60085481565b600d6020526000908152604090205481565b600154600160a060020a031681565b600454600160a060020a031681565b60025460009033600160a060020a03908116911614610e4857600080fd5b610e73601454610b51601354610b51600e5430600160a060020a031631610f7a90919063ffffffff16565b600254909150600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610ea957600080fd5b50565b60125481565b60005433600160a060020a03908116911614610ecd57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60105481565b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f5257600080fd5b6102c65a03f11515610f6357600080fd5b505050604051805190501515610f7557fe5b505050565b600082821115610f8657fe5b50900390565b600254600090819060a060020a900460ff161515610fad576000915061108c565b6005544211610fbf576000915061108c565b601454601354610fd49163ffffffff6110dd16565b600454909150610fed90600160a060020a0316826110ec565b600454600554600160a060020a03909116907ff58cfa488d8d9ddd26ddfc3dd52f23711c05cb37db31bda0b1b27d1bdfb56e53908360405191825260208201526040908101905180910390a26002805474ff00000000000000000000000000000000000000001916905560038054600160a060020a031990811690915560048054909116905560006005819055600c8190556013819055601455600191505b5090565b6000808315156110a357600091506110bf565b508282028284828115156110b357fe5b04146110bb57fe5b8091505b5092915050565b60008082848115156110d457fe5b04949350505050565b6000828201838110156110bb57fe5b600160a060020a03821681156108fc0282604051600060405180830381858888f1935050505015156105f7576105f78282600160a060020a0382166000908152600d6020526040902054611146908263ffffffff6110dd16565b600160a060020a0383166000908152600d6020526040902055600e54611172908263ffffffff6110dd16565b600e5550505600a165627a7a723058209b6cf748068b46ff7f9654def74fa250dca59caa7bceec9d48e1fefc1e962c8c0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000011c37937e0800000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000c8
-----Decoded View---------------
Arg [0] : _price (uint256): 5000000000000000
Arg [1] : _timeout (uint256): 420
Arg [2] : _minimumTimeout (uint256): 240
Arg [3] : _numberOfWagersToMinimumTimeout (uint256): 200
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000011c37937e08000
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001a4
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000f0
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c8
Swarm Source
bzzr://9b6cf748068b46ff7f9654def74fa250dca59caa7bceec9d48e1fefc1e962c8c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,657.78 | 0.0254 | $93.04 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.