ETH Price: $2,525.48 (+2.38%)

Contract

0xC960438c848904CC00CBDc1175143f0F6505CB41
 

Overview

ETH Balance

0.020999999999999975 ETH

Eth Value

$53.04 (@ $2,525.48/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Funds87473562019-10-15 18:04:061839 days ago1571162646IN
0xC960438c...F6505CB41
0 ETH0.0015740741
Withdraw Funds87452002019-10-15 9:56:341840 days ago1571133394IN
0xC960438c...F6505CB41
0 ETH0.0016683741
Withdraw Funds87451862019-10-15 9:54:351840 days ago1571133275IN
0xC960438c...F6505CB41
0 ETH0.0016683741
Withdraw Funds87451682019-10-15 9:51:551840 days ago1571133115IN
0xC960438c...F6505CB41
0 ETH0.0016683741
Withdraw Funds87451532019-10-15 9:50:011840 days ago1571133001IN
0xC960438c...F6505CB41
0 ETH0.0009838341
Withdraw Funds87451472019-10-15 9:48:311840 days ago1571132911IN
0xC960438c...F6505CB41
0 ETH0.0016683741
Withdraw Funds87451452019-10-15 9:47:151840 days ago1571132835IN
0xC960438c...F6505CB41
0 ETH0.0016683741
Withdraw Funds87451412019-10-15 9:45:581840 days ago1571132758IN
0xC960438c...F6505CB41
0 ETH0.0010289341
Withdraw Funds87451342019-10-15 9:43:161840 days ago1571132596IN
0xC960438c...F6505CB41
0 ETH0.0009838341
Settle Bet87446852019-10-15 8:02:521840 days ago1571126572IN
0xC960438c...F6505CB41
0 ETH0.0083259660
Settle Bet87442752019-10-15 6:26:361840 days ago1571120796IN
0xC960438c...F6505CB41
0 ETH0.0083259660
Place Bet87442722019-10-15 6:26:181840 days ago1571120778IN
0xC960438c...F6505CB41
0.01 ETH0.000145671
Place Bet87439802019-10-15 5:21:221840 days ago1571116882IN
0xC960438c...F6505CB41
0.01 ETH0.000145731
Settle Bet87439802019-10-15 5:21:221840 days ago1571116882IN
0xC960438c...F6505CB41
0 ETH0.001637760
Settle Bet87420342019-10-14 22:08:191840 days ago1571090899IN
0xC960438c...F6505CB41
0 ETH0.0078612660
Place Bet87420322019-10-14 22:08:041840 days ago1571090884IN
0xC960438c...F6505CB41
0.01 ETH0.000291462
Withdraw Funds87416702019-10-14 20:48:211840 days ago1571086101IN
0xC960438c...F6505CB41
0 ETH0.0025990741
Settle Bet87405412019-10-14 16:28:221840 days ago1571070502IN
0xC960438c...F6505CB41
0 ETH0.0078612660
Place Bet87405392019-10-14 16:27:391840 days ago1571070459IN
0xC960438c...F6505CB41
0.538 ETH0.000145731
Settle Bet87405322019-10-14 16:25:351840 days ago1571070335IN
0xC960438c...F6505CB41
0 ETH0.0078612660
Place Bet87405302019-10-14 16:25:081840 days ago1571070308IN
0xC960438c...F6505CB41
0.792 ETH0.000145731
Settle Bet87405272019-10-14 16:24:021840 days ago1571070242IN
0xC960438c...F6505CB41
0 ETH0.0078612660
Place Bet87405252019-10-14 16:23:301840 days ago1571070210IN
0xC960438c...F6505CB41
0.769 ETH0.000145731
Settle Bet87405202019-10-14 16:21:511840 days ago1571070111IN
0xC960438c...F6505CB41
0 ETH0.0078612660
Place Bet87405182019-10-14 16:21:381840 days ago1571070098IN
0xC960438c...F6505CB41
1.217 ETH0.000145671
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
87473562019-10-15 18:04:061839 days ago1571162646
0xC960438c...F6505CB41
1.05379956 ETH
87452002019-10-15 9:56:341840 days ago1571133394
0xC960438c...F6505CB41
0.87379 ETH
87451862019-10-15 9:54:351840 days ago1571133275
0xC960438c...F6505CB41
0.97379 ETH
87451682019-10-15 9:51:551840 days ago1571133115
0xC960438c...F6505CB41
0.97379 ETH
87451472019-10-15 9:48:311840 days ago1571132911
0xC960438c...F6505CB41
0.97379 ETH
87451452019-10-15 9:47:151840 days ago1571132835
0xC960438c...F6505CB41
0.97379 ETH
87446852019-10-15 8:02:521840 days ago1571126572
0xC960438c...F6505CB41
0.01020618 ETH
87442752019-10-15 6:26:361840 days ago1571120796
0xC960438c...F6505CB41
0.0198 ETH
87416702019-10-14 20:48:211840 days ago1571086101
0xC960438c...F6505CB41
26.7 ETH
87405122019-10-14 16:19:551840 days ago1571069995
0xC960438c...F6505CB41
1.4949 ETH
87405082019-10-14 16:18:581840 days ago1571069938
0xC960438c...F6505CB41
1.51668 ETH
87405022019-10-14 16:17:301840 days ago1571069850
0xC960438c...F6505CB41
1.56222 ETH
87404962019-10-14 16:16:421840 days ago1571069802
0xC960438c...F6505CB41
1.4355 ETH
87404832019-10-14 16:13:101840 days ago1571069590
0xC960438c...F6505CB41
1.51272 ETH
87404432019-10-14 16:05:511840 days ago1571069151
0xC960438c...F6505CB41
1.49688 ETH
87404322019-10-14 16:03:571840 days ago1571069037
0xC960438c...F6505CB41
1.49688 ETH
87404102019-10-14 15:57:361840 days ago1571068656
0xC960438c...F6505CB41
1.51272 ETH
87404042019-10-14 15:56:531840 days ago1571068613
0xC960438c...F6505CB41
1.52856 ETH
87403872019-10-14 15:52:421840 days ago1571068362
0xC960438c...F6505CB41
1.49292 ETH
87403632019-10-14 15:49:311840 days ago1571068171
0xC960438c...F6505CB41
1.36422 ETH
87403362019-10-14 15:42:411840 days ago1571067761
0xC960438c...F6505CB41
1.20186 ETH
87403272019-10-14 15:41:331840 days ago1571067693
0xC960438c...F6505CB41
1.20384 ETH
87403242019-10-14 15:40:311840 days ago1571067631
0xC960438c...F6505CB41
1.23948 ETH
87403152019-10-14 15:39:031840 days ago1571067543
0xC960438c...F6505CB41
1.21176 ETH
87402952019-10-14 15:35:541840 days ago1571067354
0xC960438c...F6505CB41
1.21176 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MyEthDice

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2019-10-14
*/

pragma solidity >=0.4.22 <0.7.0;

contract MyEthDice {
    struct Bet {
        uint amount; // wei
        bytes32 seedHash; // seed hash. Shown to player before they make a bet to prove we can't change result
        string randomSeed;
        bytes32 playerSeed; // seed provided by player to combine with random seed to calculate result
        uint roll;  // result of roll
        uint target; // target the player was trying to roll under
        address payable player; 
        bool settled; 
    }
    
    uint constant public MIN_BET = 0.01 ether;
    
    address public owner;
    address public settler;
    
    mapping (uint => Bet) bets;
    
    uint public maxProfit;
    uint128 private lockedFunds;
    uint private leverage = 3;
    
    event BetResult(address indexed player, uint winAmount, bytes32 playerSeed, bytes32 seedHash, uint target, string randomSeed, uint roll);
    event BetPlaced(bytes32 hash);
    event FailedPayment(address indexed player, uint amount, bytes32 seedHash);
    
    constructor () public {
      owner = msg.sender;
      settler = msg.sender;
    }
    
    function () external payable {
        updateMaxProfit(); //TODO too much gas warning?
    }
    
    modifier onlyOwner {
        require (msg.sender == owner, "Only the owner can call this method.");
        _;
    }
    
    modifier onlySettler {
        require (msg.sender == settler, "Must be the settler to call this method.");
        _;
    }

    function setSettler(address newSettler) external onlyOwner {
        settler = newSettler;
    }

    function updateMaxProfit() private {
      maxProfit = ((address(this).balance - lockedFunds) / 100) * leverage;
    }
    
    function setLeverage(uint _leverage) public onlyOwner {
        leverage = _leverage;
        updateMaxProfit();
    }

    function withdrawFunds(address payable receiver, uint withdrawAmount) external onlyOwner {
        require (withdrawAmount <= address(this).balance, "amount larger than balance.");
        require (lockedFunds + withdrawAmount <= address(this).balance, "Too much locked up");
        receiver.send(withdrawAmount);
        updateMaxProfit();
    }

    function kill() public onlyOwner {
        require (lockedFunds == 0, "Still bets locked up.");
        selfdestruct(msg.sender);
    }
    
    function placeBet(bytes32 playerSeed, bytes32 seedHash, uint target) external payable {
        require(target > 0 && target <= 100, "target out of range"); 
      
        uint betAmount = msg.value;
        require(betAmount >= MIN_BET, "betAmount too small");

        uint payout = (betAmount - (betAmount / 100)) * 100 / target;  //TODO this is different from dice2win
        require (payout <= betAmount + maxProfit, "Payout is more than max allowed profit.");

        lockedFunds += uint128(payout);
        require (lockedFunds <= address(this).balance, "Cannot take bet.");
      
        Bet storage bet = bets[uint(seedHash)];
        
        //check bet doesnt exist with hash
        require(bet.seedHash != seedHash, "Bet with hash already exists");
    
        bet.seedHash = seedHash;
        bet.amount = betAmount;
        bet.player = msg.sender;
        bet.playerSeed = playerSeed;
        bet.target = target;
        bet.settled = false;
        
        updateMaxProfit();
        emit BetPlaced(seedHash);
    }
    
    function settleBet(string calldata randomSeed) external onlySettler {
         bytes32 seedHash = keccak256(abi.encodePacked(randomSeed));
         Bet storage bet = bets[uint(seedHash)];

         require(bet.seedHash == seedHash, "No bet found with server seed");
         require(bet.settled == false, "Bet already settled");
         
         uint amount = bet.amount;
         uint target = bet.target;
         uint payout = (amount - (amount / 100)) * 100 / target;
         
         bytes32 combinedHash = keccak256(abi.encodePacked(randomSeed, bet.playerSeed));
         bet.roll = uint(combinedHash) % 100;
         
         if(bet.roll <= bet.target) {
          if (!bet.player.send(payout)) {
            emit FailedPayment(bet.player, payout, bet.seedHash);
          }
          emit BetResult(bet.player, payout, bet.playerSeed, bet.seedHash, target, randomSeed, bet.roll);
        } else {
            emit BetResult(bet.player, 0, bet.playerSeed, bet.seedHash, target, randomSeed, bet.roll);
        }

         lockedFunds -= uint128(payout);
         bet.settled = true;
         bet.randomSeed = randomSeed;

         updateMaxProfit();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"BetPlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"winAmount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"playerSeed","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"seedHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"target","type":"uint256"},{"indexed":false,"internalType":"string","name":"randomSeed","type":"string"},{"indexed":false,"internalType":"uint256","name":"roll","type":"uint256"}],"name":"BetResult","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"seedHash","type":"bytes32"}],"name":"FailedPayment","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"MIN_BET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"playerSeed","type":"bytes32"},{"internalType":"bytes32","name":"seedHash","type":"bytes32"},{"internalType":"uint256","name":"target","type":"uint256"}],"name":"placeBet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_leverage","type":"uint256"}],"name":"setLeverage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newSettler","type":"address"}],"name":"setSettler","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"randomSeed","type":"string"}],"name":"settleBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"settler","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"receiver","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052600360055534801561001557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611448806100a66000396000f3fe6080604052600436106100915760003560e01c806379575b231161005957806379575b23146101f65780638da5cb5b14610231578063ab221a7614610288578063b539cd55146102df578063c10753291461030a57610091565b806307f19eba1461009b57806332b19c65146100ec57806341c0e1b5146101725780634ae701fe146101895780636540742f146101cb575b610099610365565b005b3480156100a757600080fd5b506100ea600480360360208110156100be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c5565b005b3480156100f857600080fd5b506101706004803603602081101561010f57600080fd5b810190808035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b90919293919293905050506104ae565b005b34801561017e57600080fd5b50610187610a5d565b005b6101c96004803603606081101561019f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610bc1565b005b3480156101d757600080fd5b506101e0610fb5565b6040518082815260200191505060405180910390f35b34801561020257600080fd5b5061022f6004803603602081101561021957600080fd5b8101908080359060200190929190505050610fc0565b005b34801561023d57600080fd5b50610246611077565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029457600080fd5b5061029d61109c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102eb57600080fd5b506102f46110c2565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b506103636004803603604081101561032d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c8565b005b6005546064600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163103816103bb57fe5b0402600381905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461046a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610554576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806113ec6028913960400191505060405180910390fd5b600082826040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012090506000600260008360001c815260200190815260200160002090508181600101541461061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6f2062657420666f756e64207769746820736572766572207365656400000081525060200191505060405180910390fd5b600015158160060160149054906101000a900460ff161515146106a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f42657420616c726561647920736574746c65640000000000000000000000000081525060200191505060405180910390fd5b60008160000154905060008260050154905060008160648085816106c657fe5b04850302816106d157fe5b0490506000878786600301546040516020018084848082843780830192505050828152602001935050505060405160208183030381529060405280519060200120905060648160001c8161072157fe5b06856004018190555084600501548560040154116108ec578460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610815578460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9e94024b6b6b8b1a36d10ac5b9a483ce8d35ed09336923b2e327088cc686339c838760010154604051808381526020018281526020019250505060405180910390a25b8460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb54d93ea17a06b55ac7f0b9e3b311a4c55a84f34d617d195747f20ef4f779d558387600301548860010154878d8d8c6004015460405180888152602001878152602001868152602001858152602001806020018381526020018281038252858582818152602001925080828437600081840152601f19601f8201169050808301925050509850505050505050505060405180910390a26109c0565b8460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb54d93ea17a06b55ac7f0b9e3b311a4c55a84f34d617d195747f20ef4f779d55600087600301548860010154878d8d8c6004015460405180888152602001878152602001868152602001858152602001806020018381526020018281038252858582818152602001925080828437600081840152601f19601f8201169050808301925050509850505050505050505060405180910390a25b81600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060018560060160146101000a81548160ff0219169083151502179055508787866002019190610a4a9291906112fb565b50610a53610365565b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b6000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5374696c6c2062657473206c6f636b65642075702e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b600081118015610bd2575060648111155b610c44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f746172676574206f7574206f662072616e67650000000000000000000000000081525060200191505060405180910390fd5b6000349050662386f26fc10000811015610cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f626574416d6f756e7420746f6f20736d616c6c0000000000000000000000000081525060200191505060405180910390fd5b6000826064808481610cd457fe5b0484030281610cdf57fe5b0490506003548201811115610d3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113a16027913960400191505060405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160192506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff1631600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff161115610e56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f43616e6e6f742074616b65206265742e0000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008660001c815260200190815260200160002090508481600101541415610eea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4265742077697468206861736820616c7265616479206578697374730000000081525060200191505060405180910390fd5b848160010181905550828160000181905550338160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085816003018190555083816005018190555060008160060160146101000a81548160ff021916908315150217905550610f76610365565b7fb32a0e1e1d062923ebc6b90f637060c0546ec7c27e73e4378b7ec446f1f67c45856040518082815260200191505060405180910390a1505050505050565b662386f26fc1000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b80600581905550611074610365565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111156111fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f616d6f756e74206c6172676572207468616e2062616c616e63652e000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163181600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff160111156112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f546f6f206d756368206c6f636b6564207570000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050506112f7610365565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133c57803560ff191683800117855561136a565b8280016001018555821561136a579182015b8281111561136957823582559160200191906001019061134e565b5b509050611377919061137b565b5090565b61139d91905b80821115611399576000816000905550600101611381565b5090565b9056fe5061796f7574206973206d6f7265207468616e206d617820616c6c6f7765642070726f6669742e4f6e6c7920746865206f776e65722063616e2063616c6c2074686973206d6574686f642e4d7573742062652074686520736574746c657220746f2063616c6c2074686973206d6574686f642ea265627a7a72315820d32517fbf23741a4b503cae11b568a078e7b311e233f029f62485b4de85d7dd264736f6c634300050c0032

Deployed Bytecode

0x6080604052600436106100915760003560e01c806379575b231161005957806379575b23146101f65780638da5cb5b14610231578063ab221a7614610288578063b539cd55146102df578063c10753291461030a57610091565b806307f19eba1461009b57806332b19c65146100ec57806341c0e1b5146101725780634ae701fe146101895780636540742f146101cb575b610099610365565b005b3480156100a757600080fd5b506100ea600480360360208110156100be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c5565b005b3480156100f857600080fd5b506101706004803603602081101561010f57600080fd5b810190808035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b90919293919293905050506104ae565b005b34801561017e57600080fd5b50610187610a5d565b005b6101c96004803603606081101561019f57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610bc1565b005b3480156101d757600080fd5b506101e0610fb5565b6040518082815260200191505060405180910390f35b34801561020257600080fd5b5061022f6004803603602081101561021957600080fd5b8101908080359060200190929190505050610fc0565b005b34801561023d57600080fd5b50610246611077565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029457600080fd5b5061029d61109c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102eb57600080fd5b506102f46110c2565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b506103636004803603604081101561032d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c8565b005b6005546064600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163103816103bb57fe5b0402600381905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461046a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610554576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806113ec6028913960400191505060405180910390fd5b600082826040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012090506000600260008360001c815260200190815260200160002090508181600101541461061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6f2062657420666f756e64207769746820736572766572207365656400000081525060200191505060405180910390fd5b600015158160060160149054906101000a900460ff161515146106a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f42657420616c726561647920736574746c65640000000000000000000000000081525060200191505060405180910390fd5b60008160000154905060008260050154905060008160648085816106c657fe5b04850302816106d157fe5b0490506000878786600301546040516020018084848082843780830192505050828152602001935050505060405160208183030381529060405280519060200120905060648160001c8161072157fe5b06856004018190555084600501548560040154116108ec578460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610815578460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9e94024b6b6b8b1a36d10ac5b9a483ce8d35ed09336923b2e327088cc686339c838760010154604051808381526020018281526020019250505060405180910390a25b8460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb54d93ea17a06b55ac7f0b9e3b311a4c55a84f34d617d195747f20ef4f779d558387600301548860010154878d8d8c6004015460405180888152602001878152602001868152602001858152602001806020018381526020018281038252858582818152602001925080828437600081840152601f19601f8201169050808301925050509850505050505050505060405180910390a26109c0565b8460060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb54d93ea17a06b55ac7f0b9e3b311a4c55a84f34d617d195747f20ef4f779d55600087600301548860010154878d8d8c6004015460405180888152602001878152602001868152602001858152602001806020018381526020018281038252858582818152602001925080828437600081840152601f19601f8201169050808301925050509850505050505050505060405180910390a25b81600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060018560060160146101000a81548160ff0219169083151502179055508787866002019190610a4a9291906112fb565b50610a53610365565b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b6000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5374696c6c2062657473206c6f636b65642075702e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b600081118015610bd2575060648111155b610c44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f746172676574206f7574206f662072616e67650000000000000000000000000081525060200191505060405180910390fd5b6000349050662386f26fc10000811015610cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f626574416d6f756e7420746f6f20736d616c6c0000000000000000000000000081525060200191505060405180910390fd5b6000826064808481610cd457fe5b0484030281610cdf57fe5b0490506003548201811115610d3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113a16027913960400191505060405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160192506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff1631600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff161115610e56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f43616e6e6f742074616b65206265742e0000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008660001c815260200190815260200160002090508481600101541415610eea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4265742077697468206861736820616c7265616479206578697374730000000081525060200191505060405180910390fd5b848160010181905550828160000181905550338160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085816003018190555083816005018190555060008160060160146101000a81548160ff021916908315150217905550610f76610365565b7fb32a0e1e1d062923ebc6b90f637060c0546ec7c27e73e4378b7ec446f1f67c45856040518082815260200191505060405180910390a1505050505050565b662386f26fc1000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b80600581905550611074610365565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806113c86024913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111156111fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f616d6f756e74206c6172676572207468616e2062616c616e63652e000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163181600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff160111156112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f546f6f206d756368206c6f636b6564207570000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050506112f7610365565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133c57803560ff191683800117855561136a565b8280016001018555821561136a579182015b8281111561136957823582559160200191906001019061134e565b5b509050611377919061137b565b5090565b61139d91905b80821115611399576000816000905550600101611381565b5090565b9056fe5061796f7574206973206d6f7265207468616e206d617820616c6c6f7765642070726f6669742e4f6e6c7920746865206f776e65722063616e2063616c6c2074686973206d6574686f642e4d7573742062652074686520736574746c657220746f2063616c6c2074686973206d6574686f642ea265627a7a72315820d32517fbf23741a4b503cae11b568a078e7b311e233f029f62485b4de85d7dd264736f6c634300050c0032

Deployed Bytecode Sourcemap

36:4638:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:17;:15;:17::i;:::-;36:4638;1522:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1522:98:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1522:98:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3477:1194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3477:1194:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3477:1194:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3477:1194:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3477:1194:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3477:1194:0;;;;;;;;;;;;:::i;:::-;;2249:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2249:138:0;;;:::i;:::-;;2399:1066;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2399:1066:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;531:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;531:41:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1760:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1760:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1760:121:0;;;;;;;;;;;;;;;;;:::i;:::-;;585:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;585:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;612:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;612:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;686:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;686:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1889:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1889:352:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1889:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1628:120;1732:8;;1725:3;1710:11;;;;;;;;;;;1686:35;;1694:4;1686:21;;;:35;1685:43;;;;;;1684:56;1672:9;:68;;;;1628:120::o;1522:98::-;1309:5;;;;;;;;;;;1295:19;;:10;:19;;;1286:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1602:10;1592:7;;:20;;;;;;;;;;;;;;;;;;1522:98;:::o;3477:1194::-;1442:7;;;;;;;;;;;1428:21;;:10;:21;;;1419:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3557:16;3603:10;;3586:28;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;3586:28:0;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3586:28:0;;;3576:39;;;;;;3557:58;;3627:15;3645:4;:20;3655:8;3650:14;;3645:20;;;;;;;;;;;3627:38;;3703:8;3687:3;:12;;;:24;3679:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3780:5;3765:20;;:3;:11;;;;;;;;;;;;:20;;;3757:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3832:11;3846:3;:10;;;3832:24;;3868:11;3882:3;:10;;;3868:24;;3904:11;3952:6;3946:3;3938;3929:6;:12;;;;;;3919:6;:23;3918:31;:40;;;;;;3904:54;;3981:20;4031:10;;4043:3;:14;;;4014:44;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;4014:44:0;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4014:44:0;;;4004:55;;;;;;3981:78;;4103:3;4087:12;4082:18;;:24;;;;;;4071:3;:8;;:35;;;;4144:3;:10;;;4132:3;:8;;;:22;4129:391;;4174:3;:10;;;;;;;;;;;;:15;;:23;4190:6;4174:23;;;;;;;;;;;;;;;;;;;;;;;4169:111;;4233:3;:10;;;;;;;;;;;;4219:47;;;4245:6;4253:3;:12;;;4219:47;;;;;;;;;;;;;;;;;;;;;;;;4169:111;4307:3;:10;;;;;;;;;;;;4297:89;;;4319:6;4327:3;:14;;;4343:3;:12;;;4357:6;4365:10;;4377:3;:8;;;4297:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4297:89:0;;;;;;;;;;;;;;;;;;;4129:391;;;4434:3;:10;;;;;;;;;;;;4424:84;;;4446:1;4449:3;:14;;;4465:3;:12;;;4479:6;4487:10;;4499:3;:8;;;4424:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4424:84:0;;;;;;;;;;;;;;;;;;;4129:391;4556:6;4533:11;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4589:4;4575:3;:11;;;:18;;;;;;;;;;;;;;;;;;4622:10;;4605:3;:14;;:27;;;;;;;:::i;:::-;;4646:17;:15;:17::i;:::-;1505:1;;;;;;3477:1194;;:::o;2249:138::-;1309:5;;;;;;;;;;;1295:19;;:10;:19;;;1286:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2317:1;2302:11;;;;;;;;;;;:16;;;2293:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2368:10;2355:24;;;2399:1066;2513:1;2504:6;:10;:27;;;;;2528:3;2518:6;:13;;2504:27;2496:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2575:14;2592:9;2575:26;;562:10;2620:9;:20;;2612:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2677:11;2731:6;2725:3;2717;2705:9;:15;;;;;;2692:9;:29;2691:37;:46;;;;;;2677:60;;2819:9;;2807;:21;2797:6;:31;;2788:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:6;2885:11;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2958:4;2950:21;;;2935:11;;;;;;;;;;;:36;;;;2926:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3011:15;3029:4;:20;3039:8;3034:14;;3029:20;;;;;;;;;;;3011:38;;3138:8;3122:3;:12;;;:24;;3114:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3211:8;3196:3;:12;;:23;;;;3243:9;3230:3;:10;;:22;;;;3276:10;3263:3;:10;;;:23;;;;;;;;;;;;;;;;;;3314:10;3297:3;:14;;:27;;;;3348:6;3335:3;:10;;:19;;;;3379:5;3365:3;:11;;;:19;;;;;;;;;;;;;;;;;;3405:17;:15;:17::i;:::-;3438:19;3448:8;3438:19;;;;;;;;;;;;;;;;;;2399:1066;;;;;;:::o;531:41::-;562:10;531:41;:::o;1760:121::-;1309:5;;;;;;;;;;;1295:19;;:10;:19;;;1286:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:9;1825:8;:20;;;;1856:17;:15;:17::i;:::-;1760:121;:::o;585:20::-;;;;;;;;;;;;;:::o;612:22::-;;;;;;;;;;;;;:::o;686:21::-;;;;:::o;1889:352::-;1309:5;;;;;;;;;;;1295:19;;:10;:19;;;1286:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2024:4;2016:21;;;1998:14;:39;;1989:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2129:4;2121:21;;;2103:14;2089:11;;;;;;;;;;;:28;;;:53;;2080:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2176:8;:13;;:29;2190:14;2176:29;;;;;;;;;;;;;;;;;;;;;;;;2216:17;:15;:17::i;:::-;1889:352;;:::o;36:4638::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://d32517fbf23741a4b503cae11b568a078e7b311e233f029f62485b4de85d7dd2

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.