Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0.597062053961507372 ETH
Eth Value
$1,567.47 (@ $2,625.31/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 12,908 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Settle Bet | 7494366 | 1956 days ago | IN | 0 ETH | 0.00032646 | ||||
Place Bet | 7494365 | 1956 days ago | IN | 0.01 ETH | 0.00114781 | ||||
Settle Bet | 7482914 | 1958 days ago | IN | 0 ETH | 0.00014976 | ||||
Place Bet | 7482911 | 1958 days ago | IN | 0.05 ETH | 0.00041427 | ||||
Settle Bet | 7482903 | 1958 days ago | IN | 0 ETH | 0.00014976 | ||||
Place Bet | 7482899 | 1958 days ago | IN | 0.04 ETH | 0.00041427 | ||||
Settle Bet | 7482890 | 1958 days ago | IN | 0 ETH | 0.00014957 | ||||
Place Bet | 7482888 | 1958 days ago | IN | 0.02 ETH | 0.00041427 | ||||
Settle Bet | 7482878 | 1958 days ago | IN | 0 ETH | 0.0002521 | ||||
Place Bet | 7482876 | 1958 days ago | IN | 0.01 ETH | 0.00098043 | ||||
Settle Bet | 7482862 | 1958 days ago | IN | 0 ETH | 0.00027615 | ||||
Place Bet | 7482860 | 1958 days ago | IN | 0.01 ETH | 0.00114829 | ||||
Settle Bet | 7441855 | 1964 days ago | IN | 0 ETH | 0.00017573 | ||||
Place Bet | 7441853 | 1964 days ago | IN | 0.01 ETH | 0.00061424 | ||||
Settle Bet | 7441851 | 1964 days ago | IN | 0 ETH | 0.00018256 | ||||
Place Bet | 7441849 | 1964 days ago | IN | 0.01 ETH | 0.00068897 | ||||
Settle Bet | 7441092 | 1965 days ago | IN | 0 ETH | 0.00010022 | ||||
Place Bet | 7441089 | 1965 days ago | IN | 0.01 ETH | 0.00014347 | ||||
Settle Bet | 7426227 | 1967 days ago | IN | 0 ETH | 0.00012552 | ||||
Place Bet | 7426226 | 1967 days ago | IN | 0.05 ETH | 0.00028694 | ||||
Settle Bet | 7426187 | 1967 days ago | IN | 0 ETH | 0.0001254 | ||||
Place Bet | 7426185 | 1967 days ago | IN | 0.05 ETH | 0.00028707 | ||||
Settle Bet | 7420439 | 1968 days ago | IN | 0 ETH | 0.00010042 | ||||
Place Bet | 7420438 | 1968 days ago | IN | 0.01 ETH | 0.00028707 | ||||
Settle Bet | 7401238 | 1971 days ago | IN | 0 ETH | 0.00012552 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
7494366 | 1956 days ago | 0.0594 ETH | ||||
7482914 | 1958 days ago | 1 wei | ||||
7482903 | 1958 days ago | 1 wei | ||||
7482890 | 1958 days ago | 1 wei | ||||
7482878 | 1958 days ago | 1 wei | ||||
7482862 | 1958 days ago | 1 wei | ||||
7441855 | 1964 days ago | 1 wei | ||||
7441851 | 1964 days ago | 1 wei | ||||
7441092 | 1965 days ago | 0.0198 ETH | ||||
7426227 | 1967 days ago | 1 wei | ||||
7426187 | 1967 days ago | 1 wei | ||||
7420439 | 1968 days ago | 1 wei | ||||
7401238 | 1971 days ago | 1 wei | ||||
7356765 | 1978 days ago | 1 wei | ||||
7356754 | 1978 days ago | 0.0198 ETH | ||||
7356483 | 1978 days ago | 0.0198 ETH | ||||
7356449 | 1978 days ago | 0.0198 ETH | ||||
7345032 | 1980 days ago | 1 wei | ||||
7345028 | 1980 days ago | 0.0198 ETH | ||||
7336032 | 1981 days ago | 0.01375 ETH | ||||
7309890 | 1985 days ago | 1 wei | ||||
7309889 | 1985 days ago | 1 wei | ||||
7303982 | 1986 days ago | 1 wei | ||||
7303626 | 1986 days ago | 0.08 ETH | ||||
7303347 | 1986 days ago | 0.0594 ETH |
Loading...
Loading
Contract Name:
EtherDice
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-01-17 */ pragma solidity ^0.4.25; // * etherdice.io // // * Ethereum smart contract. // // * Uses hybrid commit-reveal + block hash random number generation that is immune // to tampering by players, house and miners. Apart from being fully transparent, // this also allows arbitrarily high bets. // contract EtherDice { using SafeMath for uint256; /// *** Constants section // Each bet is deducted 1% in favour of the house, but no less than some minimum. // The lower bound is dictated by gas costs of the settleBet transaction, providing // headroom for up to 10 Gwei prices. uint constant HOUSE_EDGE_PERCENT = 1; // There is minimum and maximum bets. uint constant MIN_BET = 0.01 ether; uint constant MAX_AMOUNT = 300000 ether; // Modulo is a number of equiprobable outcomes in a game: // - 2 for coin flip // - 6 for dice // - 6*6 = 36 for double dice // - 100 for etheroll // - 37 for roulette // etc. // It's called so because 256-bit entropy is treated like a huge integer and // the remainder of its division by modulo is considered bet outcome. uint constant MAX_MODULO = 100; // For modulos below this threshold rolls are checked against a bit mask, // thus allowing betting on any combination of outcomes. For example, given // modulo 6 for dice, 101000 mask (base-2, big endian) means betting on // 4 and 6; for games with modulos higher than threshold (Etheroll), a simple // limit is used, allowing betting on any outcome in [0, N) range. // // The specific value is dictated by the fact that 256-bit intermediate // multiplication result allows implementing population count efficiently // for numbers that are up to 42 bits, and 40 is the highest multiple of // eight below 42. uint constant MAX_MASK_MODULO = 40; // This is a check on bet mask overflow. uint constant MAX_BET_MASK = 2 ** MAX_MASK_MODULO; // Some deliberately invalid address to initialize the secret signer with. // Forces maintainers to invoke setSecretSigner before processing any bets. address constant DUMMY_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; // EVM BLOCKHASH opcode can query no further than 256 blocks into the // past. Given that settleBet uses block hash of placeBet as one of // complementary entropy sources, we cannot process bets older than this // threshold. On rare occasions etherdice.io croupier may fail to invoke // settleBet in this timespan due to technical issues or extreme Ethereum // congestion; such bets can be refunded via invoking refundBet. uint public betExpirationBlocks = 250; // Standard contract ownership transfer. address public owner; address private nextOwner; // Adjustable max bet profit. Used to cap bets against dynamic odds. uint public maxProfit; // The address corresponding to a private key used to sign placeBet commits. address public secretSigner; address public exchange = 0x89df456bb9ef0F7bf7718389b150d6161c9E0431; // Funds that are locked in potentially winning bets. Prevents contract from // committing to bets it cannot pay out. uint public lockedInBets; // A structure representing a single bet. struct Bet { // Wager amount in wei. uint amount; // Modulo of a game. uint8 modulo; // Number of winning outcomes, used to compute winning payment (* modulo/rollUnder), // and used instead of mask for games with modulo > MAX_MASK_MODULO. uint8 rollUnder; // Block number of placeBet tx. uint placeBlockNumber; // Bit mask representing winning bet outcomes (see MAX_MASK_MODULO comment). uint40 mask; // Address of a gambler, used to pay out winning bets. address gambler; } // Mapping from commits to all currently active & processed bets. mapping (uint => Bet) bets; // Croupier account. address public croupier; // This event is emitted in settleBet for user results and stats event SettleBet(uint commit, uint dice, uint amount, uint diceWin); // This event is emitted in refundBet event Refund(uint commit, uint amount); // This event is emitted in placeBet to record commit in the logs. event Commit(uint commit); // Constructor. Deliberately does not take any parameters. constructor () public { owner = msg.sender; secretSigner = DUMMY_ADDRESS; croupier = DUMMY_ADDRESS; } // Standard modifier on methods invokable only by contract owner. modifier onlyOwner { require (msg.sender == owner, "OnlyOwner methods called by non-owner."); _; } // Standard modifier on methods invokable only by contract owner. modifier onlyCroupier { require (msg.sender == croupier, "OnlyCroupier methods called by non-croupier."); _; } // Standard contract ownership transfer implementation, function approveNextOwner(address _nextOwner) external onlyOwner { require (_nextOwner != owner, "Cannot approve current owner."); nextOwner = _nextOwner; } function acceptNextOwner() external { require (msg.sender == nextOwner, "Can only accept preapproved new owner."); owner = nextOwner; } // Fallback function deliberately left empty. It's primary use case // is to top up the bank roll. function () public payable { } // See comment for "secretSigner" variable. function setSecretSigner(address newSecretSigner) external onlyOwner { secretSigner = newSecretSigner; } // Change the croupier address. function setCroupier(address newCroupier) external onlyOwner { croupier = newCroupier; } // Change max bet reward. Setting this to zero effectively disables betting. function setMaxProfit(uint _maxProfit) public onlyOwner { require (_maxProfit < MAX_AMOUNT, "maxProfit should be a sane number."); maxProfit = _maxProfit; } // Change bet expiration blocks. For the future. function setBetExpirationBlocks(uint _betExpirationBlocks) public onlyOwner { require (_betExpirationBlocks > 0, "betExpirationBlocks should be a sane number."); betExpirationBlocks = _betExpirationBlocks; } // Funds withdrawal to reinvestment contract for token holders. function withdrawFunds(uint withdrawAmount) external onlyOwner { require (withdrawAmount <= address(this).balance, "Increase amount larger than balance."); require (lockedInBets.add(withdrawAmount) <= address(this).balance, "Not enough funds."); exchange.transfer(withdrawAmount); } function getBetInfoByReveal(uint reveal) external view returns (uint commit, uint amount, uint modulo, uint rollUnder, uint placeBlockNumber, uint mask, address gambler) { commit = uint(keccak256(abi.encodePacked(reveal))); (amount, modulo, rollUnder, placeBlockNumber, mask, gambler) = getBetInfo(commit); } function getBetInfo(uint commit) public view returns (uint amount, uint modulo, uint rollUnder, uint placeBlockNumber, uint mask, address gambler) { Bet storage bet = bets[commit]; amount = bet.amount; modulo = bet.modulo; rollUnder = bet.rollUnder; placeBlockNumber = bet.placeBlockNumber; mask = bet.mask; gambler = bet.gambler; } /// *** Betting logic // Bet states: // amount == 0 && gambler == 0 - 'clean' (can place a bet) // amount != 0 && gambler != 0 - 'active' (can be settled or refunded) // amount == 0 && gambler != 0 - 'processed' (can clean storage) // // NOTE: Storage cleaning is not implemented in this contract version; it will be added // with the next upgrade to prevent polluting Ethereum state with expired bets. // Bet placing transaction - issued by the player. // betMask - bet outcomes bit mask for modulo <= MAX_MASK_MODULO, // [0, betMask) for larger modulos. // modulo - game modulo. // commitLastBlock - number of the maximum block where "commit" is still considered valid. // commit - Keccak256 hash of some secret "reveal" random number, to be supplied // by the etherdice.io croupier bot in the settleBet transaction. Supplying // "commit" ensures that "reveal" cannot be changed behind the scenes // after placeBet have been mined. // recCode - recommendation code. Record only the first recommendation relationship. // r, s - components of ECDSA signature of (commitLastBlock, commit). // // Commit, being essentially random 256-bit number, is used as a unique bet identifier in // the 'bets' mapping. // // Commits are signed with a block limit to ensure that they are used at most once - otherwise // it would be possible for a miner to place a bet with a known commit/reveal pair and tamper // with the blockhash. Croupier guarantees that commitLastBlock will always be not greater than // placeBet block number plus betExpirationBlocks. See whitepaper for details. function placeBet(uint betMask, uint modulo, uint commitLastBlock, uint commit, bytes32 r, bytes32 s, uint8 v) external payable { // Check that the bet is in 'clean' state. Bet storage bet = bets[commit]; require (bet.gambler == address(0), "Bet should be in a 'clean' state."); // Validate input data ranges. require (modulo > 1 && modulo <= MAX_MODULO, "Modulo should be within range."); require (msg.value >= MIN_BET && msg.value <= MAX_AMOUNT, "Amount should be within range."); require (betMask > 0 && betMask < MAX_BET_MASK, "Mask should be within range."); // Check that commit is valid - it has not expired and its signature is valid. require (block.number <= commitLastBlock && commitLastBlock <= block.number.add(betExpirationBlocks), "Commit has expired."); require (secretSigner == ecrecover(keccak256(abi.encodePacked(uint40(commitLastBlock), commit)), v, r, s), "ECDSA signature is not valid."); uint rollUnder; //uint mask; if (modulo <= MAX_MASK_MODULO) { // Small modulo games specify bet outcomes via bit mask. // rollUnder is a number of 1 bits in this mask (population count). // This magic looking formula is an efficient way to compute population // count on EVM for numbers below 2**40. rollUnder = ((betMask.mul(POPCNT_MULT)) & POPCNT_MASK).mod(POPCNT_MODULO); //mask = betMask; bet.mask = uint40(betMask); } else { // Larger modulos specify the right edge of half-open interval of // winning bet outcomes. require (betMask > 0 && betMask <= modulo, "High modulo range, betMask larger than modulo."); rollUnder = betMask; } // Winning amount uint possibleWinAmount; possibleWinAmount = getDiceWinAmount(msg.value, modulo, rollUnder); // Enforce max profit limit. require (possibleWinAmount <= msg.value.add(maxProfit), "maxProfit limit violation."); // Lock funds. lockedInBets = lockedInBets.add(possibleWinAmount); // Check whether contract has enough funds to process this bet. require (lockedInBets <= address(this).balance, "Cannot afford to lose this bet."); // Record commit in logs. emit Commit(commit); // Store bet parameters on blockchain. bet.amount = msg.value; bet.modulo = uint8(modulo); bet.rollUnder = uint8(rollUnder); bet.placeBlockNumber = block.number; //bet.mask = uint40(mask); bet.gambler = msg.sender; } // This is the method used to settle 99% of bets. To process a bet with a specific // "commit", settleBet should supply a "reveal" number that would Keccak256-hash to // "commit". "blockHash" is the block hash of placeBet block as seen by croupier; it // is additionally asserted to prevent changing the bet outcomes on Ethereum reorgs. function settleBet(uint reveal, bytes32 blockHash) external onlyCroupier { uint commit = uint(keccak256(abi.encodePacked(reveal))); Bet storage bet = bets[commit]; // Check that bet has not expired yet (see comment to betExpirationBlocks). require (block.number > bet.placeBlockNumber, "settleBet in the same block as placeBet, or before."); require (block.number <= bet.placeBlockNumber.add(betExpirationBlocks), "Blockhash can't be queried by EVM."); require (blockhash(bet.placeBlockNumber) == blockHash); // Settle bet using reveal and blockHash as entropy sources. settleBetCommon(bet, reveal, commit, blockHash); } // Common settlement code for settleBet & settleBetUncleMerkleProof. function settleBetCommon(Bet storage bet, uint reveal, uint commit, bytes32 entropyBlockHash) private { // Fetch bet parameters into local variables (to save gas). uint amount = bet.amount; uint modulo = bet.modulo; uint rollUnder = bet.rollUnder; address gambler = bet.gambler; // Check that bet is in 'active' state. require (amount != 0, "Bet should be in an 'active' state"); // Move bet into 'processed' state already. bet.amount = 0; // The RNG - combine "reveal" and blockhash of placeBet using Keccak256. Miners // are not aware of "reveal" and cannot deduce it from "commit" (as Keccak256 // preimage is intractable), and house is unable to alter the "reveal" after // placeBet have been mined (as Keccak256 collision finding is also intractable). bytes32 entropy = keccak256(abi.encodePacked(reveal, entropyBlockHash)); // Do a roll by taking a modulo of entropy. Compute winning amount. uint dice = uint(entropy).mod(modulo); uint diceWinAmount; diceWinAmount = getDiceWinAmount(amount, modulo, rollUnder); uint diceWin = 0; // Determine dice outcome. if (modulo <= MAX_MASK_MODULO) { // For small modulo games, check the outcome against a bit mask. if ((2 ** dice) & bet.mask != 0) { diceWin = diceWinAmount; } } else { // For larger modulos, check inclusion into half-open interval. if (dice < rollUnder) { diceWin = diceWinAmount; } } // Unlock the bet amount, regardless of the outcome. lockedInBets = lockedInBets.sub(diceWinAmount); // Send the funds to gambler. gambler.transfer(diceWin == 0 ? 1 wei : diceWin); // Send results to user. emit SettleBet(commit, dice, amount, diceWin); } // Refund transaction - return the bet amount of a roll that was not processed in a // due timeframe. Processing such blocks is not possible due to EVM limitations (see // betExpirationBlocks comment above for details). In case you ever find yourself // in a situation like this, just contact the etherdice.io support, however nothing // precludes you from invoking this method yourself. function refundBet(uint commit) external { // Check that bet is in 'active' state. Bet storage bet = bets[commit]; uint amount = bet.amount; require (amount != 0, "Bet should be in an 'active' state"); // Check that bet has already expired. require (block.number > bet.placeBlockNumber.add(betExpirationBlocks), "Blockhash can't be queried by EVM."); // Move bet into 'processed' state, release funds. bet.amount = 0; uint diceWinAmount; diceWinAmount = getDiceWinAmount(amount, bet.modulo, bet.rollUnder); lockedInBets = lockedInBets.sub(diceWinAmount); // Send the refund. bet.gambler.transfer(amount); // Send results to user. emit Refund(commit, amount); } // Get the expected win amount after house edge is subtracted. function getDiceWinAmount(uint amount, uint modulo, uint rollUnder) private pure returns (uint winAmount) { require (0 < rollUnder && rollUnder <= modulo, "Win probability out of range."); uint houseEdge = amount.mul(HOUSE_EDGE_PERCENT).div(100); require (houseEdge <= amount, "Bet doesn't even cover house edge."); winAmount = amount.sub(houseEdge).mul(modulo).div(rollUnder); } // This are some constants making O(1) population count in placeBet possible. // See whitepaper for intuition and proofs behind it. uint constant POPCNT_MULT = 0x0000000000002000000000100000000008000000000400000000020000000001; uint constant POPCNT_MASK = 0x0001041041041041041041041041041041041041041041041041041041041041; uint constant POPCNT_MODULO = 0x3F; } /** * @title SafeMath * @dev Math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two numbers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two numbers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); // Solidity only automatically asserts 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 Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two numbers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two numbers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"reveal","type":"uint256"}],"name":"getBetInfoByReveal","outputs":[{"name":"commit","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"modulo","type":"uint256"},{"name":"rollUnder","type":"uint256"},{"name":"placeBlockNumber","type":"uint256"},{"name":"mask","type":"uint256"},{"name":"gambler","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"withdrawAmount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"betMask","type":"uint256"},{"name":"modulo","type":"uint256"},{"name":"commitLastBlock","type":"uint256"},{"name":"commit","type":"uint256"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"v","type":"uint8"}],"name":"placeBet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_betExpirationBlocks","type":"uint256"}],"name":"setBetExpirationBlocks","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"secretSigner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"croupier","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"commit","type":"uint256"}],"name":"getBetInfo","outputs":[{"name":"amount","type":"uint256"},{"name":"modulo","type":"uint256"},{"name":"rollUnder","type":"uint256"},{"name":"placeBlockNumber","type":"uint256"},{"name":"mask","type":"uint256"},{"name":"gambler","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"betExpirationBlocks","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"reveal","type":"uint256"},{"name":"blockHash","type":"bytes32"}],"name":"settleBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptNextOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"exchange","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nextOwner","type":"address"}],"name":"approveNextOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSecretSigner","type":"address"}],"name":"setSecretSigner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockedInBets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"commit","type":"uint256"}],"name":"refundBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newCroupier","type":"address"}],"name":"setCroupier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxProfit","type":"uint256"}],"name":"setMaxProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"commit","type":"uint256"},{"indexed":false,"name":"dice","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"diceWin","type":"uint256"}],"name":"SettleBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"commit","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"commit","type":"uint256"}],"name":"Commit","type":"event"}]
Contract Creation Code
608060405260fa60005560058054600160a060020a0319167389df456bb9ef0f7bf7718389b150d6161c9e043117905534801561003b57600080fd5b5060018054600160a060020a0319908116331790915560048054821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee908117909155600880549092161790556119ec8061008b6000396000f3006080604052600436106101065763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663072201348114610108578063155dd5ee14610161578063227ada3714610179578063340f4fea146101995780634d61537f146101b15780636b5c5f39146101e257806379141f80146101f75780638da5cb5b1461024b57806397e0328614610260578063b539cd5514610287578063ca722cdc1461029c578063d06c54fb146102b7578063d2f7265a146102cc578063d579fd44146102e1578063d702087f14610302578063df88126f14610323578063e1fdb4b414610338578063f8bb201c14610350578063fbd668a914610371575b005b34801561011457600080fd5b50610120600435610389565b604080519788526020880196909652868601949094526060860192909252608085015260a0840152600160a060020a031660c0830152519081900360e00190f35b34801561016d57600080fd5b50610106600435610435565b61010660043560243560443560643560843560a43560ff60c435166105bf565b3480156101a557600080fd5b50610106600435610c2e565b3480156101bd57600080fd5b506101c6610d13565b60408051600160a060020a039092168252519081900360200190f35b3480156101ee57600080fd5b506101c6610d22565b34801561020357600080fd5b5061020f600435610d31565b6040805196875260208701959095528585019390935260608501919091526080840152600160a060020a031660a0830152519081900360c00190f35b34801561025757600080fd5b506101c6610d80565b34801561026c57600080fd5b50610275610d8f565b60408051918252519081900360200190f35b34801561029357600080fd5b50610275610d95565b3480156102a857600080fd5b50610106600435602435610d9b565b3480156102c357600080fd5b50610106610fee565b3480156102d857600080fd5b506101c6611093565b3480156102ed57600080fd5b50610106600160a060020a03600435166110a2565b34801561030e57600080fd5b50610106600160a060020a0360043516611199565b34801561032f57600080fd5b5061027561122a565b34801561034457600080fd5b50610106600435611230565b34801561035c57600080fd5b50610106600160a060020a0360043516611411565b34801561037d57600080fd5b506101066004356114a2565b600080600080600080600087604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106103e35780518252601f1990920191602091820191016103c4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060019004965061041f87610d31565b9b9d949c50929a91995097509095509350915050565b600154600160a060020a03163314610497576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b3031811115610515576040805160e560020a62461bcd028152602060048201526024808201527f496e63726561736520616d6f756e74206c6172676572207468616e2062616c6160448201527f6e63652e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60065430319061052b908363ffffffff61159016565b1115610581576040805160e560020a62461bcd02815260206004820152601160248201527f4e6f7420656e6f7567682066756e64732e000000000000000000000000000000604482015290519081900360640190fd5b600554604051600160a060020a039091169082156108fc029083906000818181858888f193505050501580156105bb573d6000803e3d6000fd5b5050565b600084815260076020526040812060038101549091908190650100000000009004600160a060020a031615610664576040805160e560020a62461bcd02815260206004820152602160248201527f4265742073686f756c6420626520696e20612027636c65616e2720737461746560448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600189118015610675575060648911155b15156106cb576040805160e560020a62461bcd02815260206004820152601e60248201527f4d6f64756c6f2073686f756c642062652077697468696e2072616e67652e0000604482015290519081900360640190fd5b662386f26fc1000034101580156106ec5750693f870857a3e0e38000003411155b1515610742576040805160e560020a62461bcd02815260206004820152601e60248201527f416d6f756e742073686f756c642062652077697468696e2072616e67652e0000604482015290519081900360640190fd5b60008a1180156107575750650100000000008a105b15156107ad576040805160e560020a62461bcd02815260206004820152601c60248201527f4d61736b2073686f756c642062652077697468696e2072616e67652e00000000604482015290519081900360640190fd5b8743111580156107d057506000546107cc90439063ffffffff61159016565b8811155b1515610826576040805160e560020a62461bcd02815260206004820152601360248201527f436f6d6d69742068617320657870697265642e00000000000000000000000000604482015290519081900360640190fd5b60018888604051602001808364ffffffffff1664ffffffffff167b01000000000000000000000000000000000000000000000000000000028152600501828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106108ab5780518252601f19909201916020918201910161088c565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8c1683860152606083018e9052608083018d9052935160a08084019750919550601f1981019492819003909101925090865af1158015610927573d6000803e3d6000fd5b5050604051601f190151600454600160a060020a039081169116149050610998576040805160e560020a62461bcd02815260206004820152601d60248201527f4543445341207369676e6174757265206973206e6f742076616c69642e000000604482015290519081900360640190fd5b60288911610a1c576109fc603f7e010410410410410410410410410410410410410410410410410410410410416109ef8d79200000000010000000000800000000040000000002000000000163ffffffff6115ad16565b169063ffffffff6115db16565b60038401805464ffffffffff191664ffffffffff8d161790559150610aac565b60008a118015610a2c5750888a11155b1515610aa8576040805160e560020a62461bcd02815260206004820152602e60248201527f48696768206d6f64756c6f2072616e67652c206265744d61736b206c6172676560448201527f72207468616e206d6f64756c6f2e000000000000000000000000000000000000606482015290519081900360840190fd5b8991505b610ab7348a846115fc565b9050610ace6003543461159090919063ffffffff16565b811115610b25576040805160e560020a62461bcd02815260206004820152601a60248201527f6d617850726f666974206c696d69742076696f6c6174696f6e2e000000000000604482015290519081900360640190fd5b600654610b38908263ffffffff61159016565b600681905530311015610b95576040805160e560020a62461bcd02815260206004820152601f60248201527f43616e6e6f74206166666f726420746f206c6f73652074686973206265742e00604482015290519081900360640190fd5b6040805188815290517f5bdd2fc99022530157777690475b670d3872f32262eb1d47d9ba8000dad58f879181900360200190a15034825560018201805460ff191660ff998a161761ff0019166101009290991691909102979097179096555050436002850155505050600301805478ffffffffffffffffffffffffffffffffffffffff0000000000191633650100000000000217905550565b600154600160a060020a03163314610c90576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b60008111610d0e576040805160e560020a62461bcd02815260206004820152602c60248201527f62657445787069726174696f6e426c6f636b732073686f756c6420626520612060448201527f73616e65206e756d6265722e0000000000000000000000000000000000000000606482015290519081900360840190fd5b600055565b600454600160a060020a031681565b600854600160a060020a031681565b6000908152600760205260409020805460018201546002830154600390930154919360ff80831694610100909304169264ffffffffff81169165010000000000909104600160a060020a031690565b600154600160a060020a031681565b60005481565b60035481565b6008546000908190600160a060020a03163314610e28576040805160e560020a62461bcd02815260206004820152602c60248201527f4f6e6c7943726f7570696572206d6574686f64732063616c6c6564206279206e60448201527f6f6e2d63726f75706965722e0000000000000000000000000000000000000000606482015290519081900360840190fd5b83604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610e775780518252601f199092019160209182019101610e58565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008181526007909252929020600281015492965094505043119150610f379050576040805160e560020a62461bcd02815260206004820152603360248201527f736574746c6542657420696e207468652073616d6520626c6f636b206173207060448201527f6c6163654265742c206f72206265666f72652e00000000000000000000000000606482015290519081900360840190fd5b6000546002820154610f4e9163ffffffff61159016565b431115610fcb576040805160e560020a62461bcd02815260206004820152602260248201527f426c6f636b686173682063616e2774206265207175657269656420627920455660448201527f4d2e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002810154408314610fdc57600080fd5b610fe881858486611734565b50505050565b600254600160a060020a03163314611062576040805160e560020a62461bcd02815260206004820152602660248201527f43616e206f6e6c792061636365707420707265617070726f766564206e657720604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b6002546001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600554600160a060020a031681565b600154600160a060020a03163314611104576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b600154600160a060020a038281169116141561116a576040805160e560020a62461bcd02815260206004820152601d60248201527f43616e6e6f7420617070726f76652063757272656e74206f776e65722e000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031633146111fb576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065481565b6000818152600760205260408120805490918115156112bf576040805160e560020a62461bcd02815260206004820152602260248201527f4265742073686f756c6420626520696e20616e2027616374697665272073746160448201527f7465000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60005460028401546112d69163ffffffff61159016565b4311611352576040805160e560020a62461bcd02815260206004820152602260248201527f426c6f636b686173682063616e2774206265207175657269656420627920455660448201527f4d2e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008355600183015461137290839060ff808216916101009004166115fc565b600654909150611388908263ffffffff61196616565b600655600383015460405165010000000000909104600160a060020a0316906108fc8415029084906000818181858888f193505050501580156113cf573d6000803e3d6000fd5b50604080518581526020810184905281517f5eee8032448a7f1556f67b8a76a4dcfd75ff98c05198df9f420467d0a1234e38929181900390910190a150505050565b600154600160a060020a03163314611473576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a03163314611504576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b693f870857a3e0e3800000811061158b576040805160e560020a62461bcd02815260206004820152602260248201527f6d617850726f6669742073686f756c6420626520612073616e65206e756d626560448201527f722e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600355565b6000828201838110156115a257600080fd5b8091505b5092915050565b6000808315156115c057600091506115a6565b508282028284828115156115d057fe5b04146115a257600080fd5b60008115156115e957600080fd5b81838115156115f457fe5b069392505050565b60008082600010801561160f5750838311155b1515611665576040805160e560020a62461bcd02815260206004820152601d60248201527f57696e2070726f626162696c697479206f7574206f662072616e67652e000000604482015290519081900360640190fd5b611687606461167b87600163ffffffff6115ad16565b9063ffffffff61197d16565b905084811115611707576040805160e560020a62461bcd02815260206004820152602260248201527f42657420646f65736e2774206576656e20636f76657220686f7573652065646760448201527f652e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61172b8361167b8661171f898663ffffffff61196616565b9063ffffffff6115ad16565b95945050505050565b83546001850154600386015460ff8083169261010090041690650100000000009004600160a060020a031660008080808715156117e1576040805160e560020a62461bcd02815260206004820152602260248201527f4265742073686f756c6420626520696e20616e2027616374697665272073746160448201527f7465000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008c556040805160208082018e90528183018c9052825180830384018152606090920192839052815191929182918401908083835b602083106118365780518252601f199092019160209182019101611817565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120965061187192508691508990506115db565b925061187e8888886115fc565b915060009050602887116118ab5760038c0154600284900a1664ffffffffff16156118a65750805b6118b6565b858310156118b65750805b6006546118c9908363ffffffff61196616565b600655600160a060020a0385166108fc82156118e557826118e8565b60015b6040518115909202916000818181858888f19350505050158015611910573d6000803e3d6000fd5b50604080518b8152602081018590528082018a90526060810183905290517f2ffb8b1e2d03a44dc007b9ce6a73b5ff4627abcf92c7e60ccce34146e2ea0a9f9181900360800190a1505050505050505050505050565b6000808383111561197657600080fd5b5050900390565b60008080831161198c57600080fd5b828481151561199757fe5b0494935050505056004f6e6c794f776e6572206d6574686f64732063616c6c6564206279206e6f6e2da165627a7a72305820f44f383c5783630548cd4fca32721c07d63f7380c217a15b26fe357306e62cde0029
Deployed Bytecode
0x6080604052600436106101065763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663072201348114610108578063155dd5ee14610161578063227ada3714610179578063340f4fea146101995780634d61537f146101b15780636b5c5f39146101e257806379141f80146101f75780638da5cb5b1461024b57806397e0328614610260578063b539cd5514610287578063ca722cdc1461029c578063d06c54fb146102b7578063d2f7265a146102cc578063d579fd44146102e1578063d702087f14610302578063df88126f14610323578063e1fdb4b414610338578063f8bb201c14610350578063fbd668a914610371575b005b34801561011457600080fd5b50610120600435610389565b604080519788526020880196909652868601949094526060860192909252608085015260a0840152600160a060020a031660c0830152519081900360e00190f35b34801561016d57600080fd5b50610106600435610435565b61010660043560243560443560643560843560a43560ff60c435166105bf565b3480156101a557600080fd5b50610106600435610c2e565b3480156101bd57600080fd5b506101c6610d13565b60408051600160a060020a039092168252519081900360200190f35b3480156101ee57600080fd5b506101c6610d22565b34801561020357600080fd5b5061020f600435610d31565b6040805196875260208701959095528585019390935260608501919091526080840152600160a060020a031660a0830152519081900360c00190f35b34801561025757600080fd5b506101c6610d80565b34801561026c57600080fd5b50610275610d8f565b60408051918252519081900360200190f35b34801561029357600080fd5b50610275610d95565b3480156102a857600080fd5b50610106600435602435610d9b565b3480156102c357600080fd5b50610106610fee565b3480156102d857600080fd5b506101c6611093565b3480156102ed57600080fd5b50610106600160a060020a03600435166110a2565b34801561030e57600080fd5b50610106600160a060020a0360043516611199565b34801561032f57600080fd5b5061027561122a565b34801561034457600080fd5b50610106600435611230565b34801561035c57600080fd5b50610106600160a060020a0360043516611411565b34801561037d57600080fd5b506101066004356114a2565b600080600080600080600087604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106103e35780518252601f1990920191602091820191016103c4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060019004965061041f87610d31565b9b9d949c50929a91995097509095509350915050565b600154600160a060020a03163314610497576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b3031811115610515576040805160e560020a62461bcd028152602060048201526024808201527f496e63726561736520616d6f756e74206c6172676572207468616e2062616c6160448201527f6e63652e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60065430319061052b908363ffffffff61159016565b1115610581576040805160e560020a62461bcd02815260206004820152601160248201527f4e6f7420656e6f7567682066756e64732e000000000000000000000000000000604482015290519081900360640190fd5b600554604051600160a060020a039091169082156108fc029083906000818181858888f193505050501580156105bb573d6000803e3d6000fd5b5050565b600084815260076020526040812060038101549091908190650100000000009004600160a060020a031615610664576040805160e560020a62461bcd02815260206004820152602160248201527f4265742073686f756c6420626520696e20612027636c65616e2720737461746560448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600189118015610675575060648911155b15156106cb576040805160e560020a62461bcd02815260206004820152601e60248201527f4d6f64756c6f2073686f756c642062652077697468696e2072616e67652e0000604482015290519081900360640190fd5b662386f26fc1000034101580156106ec5750693f870857a3e0e38000003411155b1515610742576040805160e560020a62461bcd02815260206004820152601e60248201527f416d6f756e742073686f756c642062652077697468696e2072616e67652e0000604482015290519081900360640190fd5b60008a1180156107575750650100000000008a105b15156107ad576040805160e560020a62461bcd02815260206004820152601c60248201527f4d61736b2073686f756c642062652077697468696e2072616e67652e00000000604482015290519081900360640190fd5b8743111580156107d057506000546107cc90439063ffffffff61159016565b8811155b1515610826576040805160e560020a62461bcd02815260206004820152601360248201527f436f6d6d69742068617320657870697265642e00000000000000000000000000604482015290519081900360640190fd5b60018888604051602001808364ffffffffff1664ffffffffff167b01000000000000000000000000000000000000000000000000000000028152600501828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106108ab5780518252601f19909201916020918201910161088c565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8c1683860152606083018e9052608083018d9052935160a08084019750919550601f1981019492819003909101925090865af1158015610927573d6000803e3d6000fd5b5050604051601f190151600454600160a060020a039081169116149050610998576040805160e560020a62461bcd02815260206004820152601d60248201527f4543445341207369676e6174757265206973206e6f742076616c69642e000000604482015290519081900360640190fd5b60288911610a1c576109fc603f7e010410410410410410410410410410410410410410410410410410410410416109ef8d79200000000010000000000800000000040000000002000000000163ffffffff6115ad16565b169063ffffffff6115db16565b60038401805464ffffffffff191664ffffffffff8d161790559150610aac565b60008a118015610a2c5750888a11155b1515610aa8576040805160e560020a62461bcd02815260206004820152602e60248201527f48696768206d6f64756c6f2072616e67652c206265744d61736b206c6172676560448201527f72207468616e206d6f64756c6f2e000000000000000000000000000000000000606482015290519081900360840190fd5b8991505b610ab7348a846115fc565b9050610ace6003543461159090919063ffffffff16565b811115610b25576040805160e560020a62461bcd02815260206004820152601a60248201527f6d617850726f666974206c696d69742076696f6c6174696f6e2e000000000000604482015290519081900360640190fd5b600654610b38908263ffffffff61159016565b600681905530311015610b95576040805160e560020a62461bcd02815260206004820152601f60248201527f43616e6e6f74206166666f726420746f206c6f73652074686973206265742e00604482015290519081900360640190fd5b6040805188815290517f5bdd2fc99022530157777690475b670d3872f32262eb1d47d9ba8000dad58f879181900360200190a15034825560018201805460ff191660ff998a161761ff0019166101009290991691909102979097179096555050436002850155505050600301805478ffffffffffffffffffffffffffffffffffffffff0000000000191633650100000000000217905550565b600154600160a060020a03163314610c90576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b60008111610d0e576040805160e560020a62461bcd02815260206004820152602c60248201527f62657445787069726174696f6e426c6f636b732073686f756c6420626520612060448201527f73616e65206e756d6265722e0000000000000000000000000000000000000000606482015290519081900360840190fd5b600055565b600454600160a060020a031681565b600854600160a060020a031681565b6000908152600760205260409020805460018201546002830154600390930154919360ff80831694610100909304169264ffffffffff81169165010000000000909104600160a060020a031690565b600154600160a060020a031681565b60005481565b60035481565b6008546000908190600160a060020a03163314610e28576040805160e560020a62461bcd02815260206004820152602c60248201527f4f6e6c7943726f7570696572206d6574686f64732063616c6c6564206279206e60448201527f6f6e2d63726f75706965722e0000000000000000000000000000000000000000606482015290519081900360840190fd5b83604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610e775780518252601f199092019160209182019101610e58565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008181526007909252929020600281015492965094505043119150610f379050576040805160e560020a62461bcd02815260206004820152603360248201527f736574746c6542657420696e207468652073616d6520626c6f636b206173207060448201527f6c6163654265742c206f72206265666f72652e00000000000000000000000000606482015290519081900360840190fd5b6000546002820154610f4e9163ffffffff61159016565b431115610fcb576040805160e560020a62461bcd02815260206004820152602260248201527f426c6f636b686173682063616e2774206265207175657269656420627920455660448201527f4d2e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6002810154408314610fdc57600080fd5b610fe881858486611734565b50505050565b600254600160a060020a03163314611062576040805160e560020a62461bcd02815260206004820152602660248201527f43616e206f6e6c792061636365707420707265617070726f766564206e657720604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b6002546001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600554600160a060020a031681565b600154600160a060020a03163314611104576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b600154600160a060020a038281169116141561116a576040805160e560020a62461bcd02815260206004820152601d60248201527f43616e6e6f7420617070726f76652063757272656e74206f776e65722e000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031633146111fb576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065481565b6000818152600760205260408120805490918115156112bf576040805160e560020a62461bcd02815260206004820152602260248201527f4265742073686f756c6420626520696e20616e2027616374697665272073746160448201527f7465000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60005460028401546112d69163ffffffff61159016565b4311611352576040805160e560020a62461bcd02815260206004820152602260248201527f426c6f636b686173682063616e2774206265207175657269656420627920455660448201527f4d2e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008355600183015461137290839060ff808216916101009004166115fc565b600654909150611388908263ffffffff61196616565b600655600383015460405165010000000000909104600160a060020a0316906108fc8415029084906000818181858888f193505050501580156113cf573d6000803e3d6000fd5b50604080518581526020810184905281517f5eee8032448a7f1556f67b8a76a4dcfd75ff98c05198df9f420467d0a1234e38929181900390910190a150505050565b600154600160a060020a03163314611473576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a03163314611504576040805160e560020a62461bcd02815260206004820152602660248201526000805160206119a1833981519152604482015260d160020a6537bbb732b91702606482015290519081900360840190fd5b693f870857a3e0e3800000811061158b576040805160e560020a62461bcd02815260206004820152602260248201527f6d617850726f6669742073686f756c6420626520612073616e65206e756d626560448201527f722e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600355565b6000828201838110156115a257600080fd5b8091505b5092915050565b6000808315156115c057600091506115a6565b508282028284828115156115d057fe5b04146115a257600080fd5b60008115156115e957600080fd5b81838115156115f457fe5b069392505050565b60008082600010801561160f5750838311155b1515611665576040805160e560020a62461bcd02815260206004820152601d60248201527f57696e2070726f626162696c697479206f7574206f662072616e67652e000000604482015290519081900360640190fd5b611687606461167b87600163ffffffff6115ad16565b9063ffffffff61197d16565b905084811115611707576040805160e560020a62461bcd02815260206004820152602260248201527f42657420646f65736e2774206576656e20636f76657220686f7573652065646760448201527f652e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61172b8361167b8661171f898663ffffffff61196616565b9063ffffffff6115ad16565b95945050505050565b83546001850154600386015460ff8083169261010090041690650100000000009004600160a060020a031660008080808715156117e1576040805160e560020a62461bcd02815260206004820152602260248201527f4265742073686f756c6420626520696e20616e2027616374697665272073746160448201527f7465000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008c556040805160208082018e90528183018c9052825180830384018152606090920192839052815191929182918401908083835b602083106118365780518252601f199092019160209182019101611817565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120965061187192508691508990506115db565b925061187e8888886115fc565b915060009050602887116118ab5760038c0154600284900a1664ffffffffff16156118a65750805b6118b6565b858310156118b65750805b6006546118c9908363ffffffff61196616565b600655600160a060020a0385166108fc82156118e557826118e8565b60015b6040518115909202916000818181858888f19350505050158015611910573d6000803e3d6000fd5b50604080518b8152602081018590528082018a90526060810183905290517f2ffb8b1e2d03a44dc007b9ce6a73b5ff4627abcf92c7e60ccce34146e2ea0a9f9181900360800190a1505050505050505050505050565b6000808383111561197657600080fd5b5050900390565b60008080831161198c57600080fd5b828481151561199757fe5b0494935050505056004f6e6c794f776e6572206d6574686f64732063616c6c6564206279206e6f6e2da165627a7a72305820f44f383c5783630548cd4fca32721c07d63f7380c217a15b26fe357306e62cde0029
Swarm Source
bzzr://f44f383c5783630548cd4fca32721c07d63f7380c217a15b26fe357306e62cde
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,626.15 | 0.5971 | $1,567.97 |
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.