ETH Price: $2,652.60 (+0.61%)

Contract

0x7f12c4f39Fc2E3158d5a11b2387AEB4AB892d54C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Balance105575682020-07-29 23:48:061542 days ago1596066486IN
0x7f12c4f3...AB892d54C
0 ETH0.0013681845
Purchase Chest96281292020-03-08 2:43:291686 days ago1583635409IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000226916
Purchase Chest93906042020-01-31 14:40:511723 days ago1580481651IN
0x7f12c4f3...AB892d54C
0.33333333 ETH0.00005832
Purchase Chest92850572020-01-15 10:05:231739 days ago1579082723IN
0x7f12c4f3...AB892d54C
0.16666666 ETH0.000145695
Purchase Chest92844042020-01-15 7:39:201739 days ago1579073960IN
0x7f12c4f3...AB892d54C
0.13333333 ETH0.00005832
Purchase Chest92843952020-01-15 7:36:531739 days ago1579073813IN
0x7f12c4f3...AB892d54C
0.16666666 ETH0.000029131
Purchase Chest92701972020-01-13 3:28:051741 days ago1578886085IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000099532.63176895
Purchase Chest90862812019-12-11 1:47:161774 days ago1576028836IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000087413
Purchase Chest90501492019-12-04 16:06:261781 days ago1575475586IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000105293.9
Purchase Chest90490382019-12-04 11:27:421781 days ago1575458862IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000054292.01111111
Purchase Chest90466102019-12-04 0:49:031781 days ago1575420543IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000053992
Purchase Chest90464722019-12-04 0:14:031781 days ago1575418443IN
0x7f12c4f3...AB892d54C
0.13333333 ETH0.000040861.51
Purchase Chest90463522019-12-03 23:42:041781 days ago1575416524IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000032691.2111
Purchase Chest90461832019-12-03 23:00:061781 days ago1575414006IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000027291.01111
Purchase Chest90402842019-12-02 21:54:131783 days ago1575323653IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000029991.1111111
Purchase Chest90328932019-12-01 14:32:011784 days ago1575210721IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000029991.11111
Purchase Chest90120712019-11-27 21:53:511788 days ago1574891631IN
0x7f12c4f3...AB892d54C
0.33333333 ETH0.000107163.96
Purchase Chest89909092019-11-24 6:16:281791 days ago1574576188IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000026991
Purchase Chest89908682019-11-24 6:05:481791 days ago1574575548IN
0x7f12c4f3...AB892d54C
0.03333333 ETH0.000026991
Purchase Chest89875712019-11-23 17:07:481792 days ago1574528868IN
0x7f12c4f3...AB892d54C
1.66666666 ETH0.000027061
Set Price Of Eth89822752019-11-22 20:03:571793 days ago1574453037IN
0x7f12c4f3...AB892d54C
0 ETH0.000027271
Set Price Of Eth89637872019-11-19 18:07:401796 days ago1574186860IN
0x7f12c4f3...AB892d54C
0 ETH0.000027271
Purchase Chest89169422019-11-11 22:32:051804 days ago1573511525IN
0x7f12c4f3...AB892d54C
0.1058201 ETH0.0002706310
Purchase Chest88723462019-11-04 16:21:481811 days ago1572884508IN
0x7f12c4f3...AB892d54C
0.26455026 ETH0.000027061
Purchase Chest88679852019-11-03 23:09:481811 days ago1572822588IN
0x7f12c4f3...AB892d54C
0.05291005 ETH0.000080993
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
105575682020-07-29 23:48:061542 days ago1596066486
0x7f12c4f3...AB892d54C
60.02651746 ETH
96281292020-03-08 2:43:291686 days ago1583635409
0x7f12c4f3...AB892d54C
0.00333333 ETH
92701972020-01-13 3:28:051741 days ago1578886085
0x7f12c4f3...AB892d54C
0.00333333 ETH
88673682019-11-03 20:51:501812 days ago1572814310
0x7f12c4f3...AB892d54C
0.15873015 ETH
88583142019-11-02 10:07:251813 days ago1572689245
0x7f12c4f3...AB892d54C
0.0026455 ETH
88509412019-11-01 5:41:441814 days ago1572586904
0x7f12c4f3...AB892d54C
0.0026455 ETH
88504252019-11-01 3:39:201814 days ago1572579560
0x7f12c4f3...AB892d54C
0.07936507 ETH
88498942019-11-01 1:34:181814 days ago1572572058
0x7f12c4f3...AB892d54C
0.05291005 ETH
88480582019-10-31 18:34:501815 days ago1572546890
0x7f12c4f3...AB892d54C
0.01058201 ETH
87889962019-10-22 7:37:581824 days ago1571729878
0x7f12c4f3...AB892d54C
0.0028409 ETH
87883312019-10-22 5:10:121824 days ago1571721012
0x7f12c4f3...AB892d54C
0.14204545 ETH
87785732019-10-20 16:04:121826 days ago1571587452
0x7f12c4f3...AB892d54C
0.05714285 ETH
87740972019-10-19 23:18:501826 days ago1571527130
0x7f12c4f3...AB892d54C
0.02857142 ETH
87699042019-10-19 7:17:491827 days ago1571469469
0x7f12c4f3...AB892d54C
0.01142857 ETH
87681212019-10-19 0:41:181827 days ago1571445678
0x7f12c4f3...AB892d54C
0.01428571 ETH
87680862019-10-19 0:33:351827 days ago1571445215
0x7f12c4f3...AB892d54C
0.08571428 ETH
87556292019-10-17 1:18:361829 days ago1571275116
0x7f12c4f3...AB892d54C
0.02857142 ETH
87424022019-10-14 23:30:031831 days ago1571095803
0x7f12c4f3...AB892d54C
0.00271739 ETH
87409192019-10-14 17:51:401832 days ago1571075500
0x7f12c4f3...AB892d54C
0.05434782 ETH
87398502019-10-14 13:56:111832 days ago1571061371
0x7f12c4f3...AB892d54C
0.02717391 ETH
87360862019-10-13 23:42:331832 days ago1571010153
0x7f12c4f3...AB892d54C
0.02717391 ETH
87360832019-10-13 23:41:491832 days ago1571010109
0x7f12c4f3...AB892d54C
0.02717391 ETH
87354922019-10-13 21:26:241833 days ago1571001984
0x7f12c4f3...AB892d54C
0.13586956 ETH
87311712019-10-13 4:58:011833 days ago1570942681
0x7f12c4f3...AB892d54C
0.00271739 ETH
87296972019-10-12 23:43:151833 days ago1570923795
0x7f12c4f3...AB892d54C
0.02717391 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KBDChestSale

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-09-23
*/

pragma solidity ^0.5.0;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/KBDChestSale.sol

pragma solidity 0.5.0;


// https://github.com/ethereum/EIPs/issues/20

interface ERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    require(c >= a);
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {
    require(b <= a);
    return a - b;
  }

  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }

    c = a * b;
    require(c / a == b);
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Since Solidity automatically asserts when dividing by 0,
    // but we only need it to revert.
    require(b > 0);
    return a / b;
  }

  function mod(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Same reason as `div`.
    require(b > 0);
    return a % b;
  }

  function ceilingDiv(uint256 a, uint256 b) internal pure returns (uint256 c) {
    return add(div(a, b), mod(a, b) > 0 ? 1 : 0);
  }

  function subU64(uint64 a, uint64 b) internal pure returns (uint64 c) {
    require(b <= a);
    return a - b;
  }

  function addU8(uint8 a, uint8 b) internal pure returns (uint8 c) {
    c = a + b;
    require(c >= a);
  }
}

/**
 * @dev KingdomsBeyond Founder Sale Smart contract
 * Facilitates the distribution of chests purchased 
 * Chests can be purchased with ETH natively or 
 * alternatively purchased with ERC20 Tokens via KyberSwap
 * or Fiat via NiftyGateway.
 */
contract KBDChestSale is
  Ownable
{
  using SafeMath for uint256;

  /**
   * @dev Event is broadcast whenever a chest is purchased. 
   */ 
  event ChestPurchased(
    uint16 _chestType,
    uint16 _chestAmount,
    address indexed _buyer,
    address indexed _referrer,
    uint256 _referralReward
  );

  struct Discount {
    uint256 blockNumber; 
    uint256 percentage;
  }
  
  event Swap(address indexed sender, ERC20 srcToken, ERC20 destToken);
  
  // Updated every day 
  uint256 ethPrice;
  
  mapping (uint256 => uint256) chestTypePricing;
  mapping (address => bool) partnerReferral;
  mapping (uint256 => Discount) discountMapping;    

  constructor() public {
    chestTypePricing[0] = 5; 
    chestTypePricing[1] = 20;
    chestTypePricing[2] = 50;
    ethPrice = 209;
  }
  
  function setPartner(address _address, bool _status) external onlyOwner{
      partnerReferral[_address] = _status;
  }
  
  function setDiscount(uint256 _id, uint256 _blockNumber, uint256 _percentage) external onlyOwner{
      Discount memory discount;
      discount.blockNumber = _blockNumber;
      discount.percentage = _percentage;
      discountMapping[_id] = discount;
  }
  
  // Sets the price of 1 Eth in volatile situations
  function setPriceOfEth(uint256 _price) external onlyOwner {
      ethPrice = _price;
  }
  
  function getPriceOfEth() external view returns (uint256) {
      return ethPrice;
  }
  
  function setChestTypePricing(uint256 _chestType, uint256 _chestPrice) external onlyOwner {
      chestTypePricing[_chestType] = _chestPrice;
  }
  
  function purchaseChest(uint16 _chestType, uint16 _chestAmount, uint256 _discountId, address payable _referrer) external payable {
        _purchaseChest(msg.sender, _referrer, _chestType, _chestAmount, msg.value, _discountId);
  } 
  
  // The cost of the chest in Wei
  function getChestPrice(uint256 _chestType, uint256 _discountId) public view returns (uint256) {
      uint256 chestPrice = chestTypePricing[_chestType];
      require(chestPrice != 0, "Invalid chest");
      
      Discount memory discount = discountMapping[_discountId];

      if (discount.percentage != 0) {
        require(discount.blockNumber >= block.number, "Discount has expired");
        return ((chestPrice).mul(discount.percentage).div(10000)).mul(1000000000000000000).div(ethPrice);
      } 
      
      return (chestPrice).mul(1000000000000000000).div(ethPrice);
  }
  
  function getChestPrice(uint8 _chestType, uint8 _chestAmount, uint256 _discountId) public view returns (uint256) {
      require(_chestAmount < 256, "Invalid Amount");
      
      return getChestPrice(_chestType, _discountId) * _chestAmount;
  }

  function _getReferralPercentage(address _referrer, address _owner) internal view returns (uint256 _percentage) {
      if (_referrer != _owner && _referrer != address (0)) {
          if (partnerReferral[_referrer]) {
              return 3000;
          } else {
              return 1000;
          }
      } 
      return 0;
  }
  
  function _purchaseChest(
      address payable _buyer, 
      address payable _referrer, 
      uint256 _chestType,
      uint256 _chestAmount,
      uint256 _ethAmount,
      uint256 _discountId
  ) internal {
    uint256 _totalPrice = getChestPrice(uint8(_chestType), uint8(_chestAmount), _discountId);

    // Check if we received enough payment.
    require(_ethAmount >= _totalPrice, "Not enough ether");

    // Send back the ETH change, if there is any.
    if (_ethAmount > _totalPrice) {
      _buyer.transfer(_ethAmount - _totalPrice);
    }

    uint256 _referralReward = _totalPrice
      .mul(_getReferralPercentage(_referrer, _buyer))
      .div(10000);

    emit ChestPurchased(uint16(_chestType), uint16(_chestAmount), _buyer, _referrer, _referralReward);

    /// @dev If the referral reward cannot be sent because of a referrer's fault, set it to 0.
    if (_referralReward > 0 && !_referrer.send(_referralReward)) {
      _referralReward = 0;
    }
  }
  
  /// @dev Withdraw function to withdraw the earnings 
  function withdrawBalance()
  external onlyOwner {
    msg.sender.transfer(address(this).balance);
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_chestType","type":"uint256"},{"name":"_chestPrice","type":"uint256"}],"name":"setChestTypePricing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_status","type":"bool"}],"name":"setPartner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_chestType","type":"uint256"},{"name":"_discountId","type":"uint256"}],"name":"getChestPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPriceOfEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_chestType","type":"uint16"},{"name":"_chestAmount","type":"uint16"},{"name":"_discountId","type":"uint256"},{"name":"_referrer","type":"address"}],"name":"purchaseChest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_chestType","type":"uint8"},{"name":"_chestAmount","type":"uint8"},{"name":"_discountId","type":"uint256"}],"name":"getChestPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_blockNumber","type":"uint256"},{"name":"_percentage","type":"uint256"}],"name":"setDiscount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"}],"name":"setPriceOfEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_chestType","type":"uint16"},{"indexed":false,"name":"_chestAmount","type":"uint16"},{"indexed":true,"name":"_buyer","type":"address"},{"indexed":true,"name":"_referrer","type":"address"},{"indexed":false,"name":"_referralReward","type":"uint256"}],"name":"ChestPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"srcToken","type":"address"},{"indexed":false,"name":"destToken","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600560026000808152602001908152602001600020819055506014600260006001815260200190815260200160002081905550603260026000600281526020019081526020016000208190555060d1600181905550610e67806101316000396000f3fe6080604052600436106100c4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062c64484146100c957806321acf6591461010e57806337b79c481461016b5780635bbe8ef1146101c45780635fd8c710146101ef578063715018a6146102065780638da5cb5b1461021d5780638f32d59b14610274578063c667fac8146102a3578063d568c1621461030d578063d5f87e3014610376578063f2fde38b146103c5578063fbeac3c614610416575b600080fd5b3480156100d557600080fd5b5061010c600480360360408110156100ec57600080fd5b810190808035906020019092919080359060200190929190505050610451565b005b34801561011a57600080fd5b506101696004803603604081101561013157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610480565b005b34801561017757600080fd5b506101ae6004803603604081101561018e57600080fd5b8101908080359060200190929190803590602001909291905050506104ee565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b506101d96106e2565b6040518082815260200191505060405180910390f35b3480156101fb57600080fd5b506102046106ec565b005b34801561021257600080fd5b5061021b61075f565b005b34801561022957600080fd5b50610232610831565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028057600080fd5b5061028961085a565b604051808215151515815260200191505060405180910390f35b61030b600480360360808110156102b957600080fd5b81019080803561ffff169060200190929190803561ffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108b1565b005b34801561031957600080fd5b506103606004803603606081101561033057600080fd5b81019080803560ff169060200190929190803560ff169060200190929190803590602001909291905050506108cd565b6040518082815260200191505060405180910390f35b34801561038257600080fd5b506103c36004803603606081101561039957600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610966565b005b3480156103d157600080fd5b50610414600480360360208110156103e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109c6565b005b34801561042257600080fd5b5061044f6004803603602081101561043957600080fd5b81019080803590602001909291905050506109e5565b005b61045961085a565b151561046457600080fd5b8060026000848152602001908152602001600020819055505050565b61048861085a565b151561049357600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000806002600085815260200190815260200160002054905060008114151515610580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f496e76616c69642063686573740000000000000000000000000000000000000081525060200191505060405180910390fd5b610588610e21565b60046000858152602001908152602001600020604080519081016040529081600082015481526020016001820154815250509050600081602001511415156106a85743816000015110151515610646576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f446973636f756e7420686173206578706972656400000000000000000000000081525060200191505060405180910390fd5b61069f600154610691670de0b6b3a7640000610683612710610675876020015189610a0290919063ffffffff16565b610a3a90919063ffffffff16565b610a0290919063ffffffff16565b610a3a90919063ffffffff16565b925050506106dc565b6106d76001546106c9670de0b6b3a764000085610a0290919063ffffffff16565b610a3a90919063ffffffff16565b925050505b92915050565b6000600154905090565b6106f461085a565b15156106ff57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561075c573d6000803e3d6000fd5b50565b61076761085a565b151561077257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6108c733828661ffff168661ffff163487610a5e565b50505050565b60006101008360ff1610151561094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420416d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b8260ff1661095c8560ff16846104ee565b0290509392505050565b61096e61085a565b151561097957600080fd5b610981610e21565b82816000018181525050818160200181815250508060046000868152602001908152602001600020600082015181600001556020820151816001015590505050505050565b6109ce61085a565b15156109d957600080fd5b6109e281610c46565b50565b6109ed61085a565b15156109f857600080fd5b8060018190555050565b600080831415610a155760009050610a34565b8183029050818382811515610a2657fe5b04141515610a3357600080fd5b5b92915050565b60008082111515610a4a57600080fd5b8183811515610a5557fe5b04905092915050565b6000610a6b8585846108cd565b9050808310151515610ae5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4e6f7420656e6f7567682065746865720000000000000000000000000000000081525060200191505060405180910390fd5b80831115610b37578673ffffffffffffffffffffffffffffffffffffffff166108fc8285039081150290604051600060405180830381858888f19350505050158015610b35573d6000803e3d6000fd5b505b6000610b69612710610b5b610b4c8a8c610d40565b85610a0290919063ffffffff16565b610a3a90919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fc3d7bb6275257994a2f8a0e35306b8d6b1ad18af193fc3ef58e93a118759d57f888885604051808461ffff1661ffff1681526020018361ffff1661ffff168152602001828152602001935050505060405180910390a3600081118015610c3257508673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050155b15610c3c57600090505b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c8257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dab5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610e1657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e0c57610bb89050610e1b565b6103e89050610e1b565b600090505b92915050565b60408051908101604052806000815260200160008152509056fea165627a7a723058200fa636418b4875a1789b6419094a17e2d92a885aacdf4b870246ba064247cce40029

Deployed Bytecode

0x6080604052600436106100c4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062c64484146100c957806321acf6591461010e57806337b79c481461016b5780635bbe8ef1146101c45780635fd8c710146101ef578063715018a6146102065780638da5cb5b1461021d5780638f32d59b14610274578063c667fac8146102a3578063d568c1621461030d578063d5f87e3014610376578063f2fde38b146103c5578063fbeac3c614610416575b600080fd5b3480156100d557600080fd5b5061010c600480360360408110156100ec57600080fd5b810190808035906020019092919080359060200190929190505050610451565b005b34801561011a57600080fd5b506101696004803603604081101561013157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610480565b005b34801561017757600080fd5b506101ae6004803603604081101561018e57600080fd5b8101908080359060200190929190803590602001909291905050506104ee565b6040518082815260200191505060405180910390f35b3480156101d057600080fd5b506101d96106e2565b6040518082815260200191505060405180910390f35b3480156101fb57600080fd5b506102046106ec565b005b34801561021257600080fd5b5061021b61075f565b005b34801561022957600080fd5b50610232610831565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028057600080fd5b5061028961085a565b604051808215151515815260200191505060405180910390f35b61030b600480360360808110156102b957600080fd5b81019080803561ffff169060200190929190803561ffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108b1565b005b34801561031957600080fd5b506103606004803603606081101561033057600080fd5b81019080803560ff169060200190929190803560ff169060200190929190803590602001909291905050506108cd565b6040518082815260200191505060405180910390f35b34801561038257600080fd5b506103c36004803603606081101561039957600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610966565b005b3480156103d157600080fd5b50610414600480360360208110156103e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109c6565b005b34801561042257600080fd5b5061044f6004803603602081101561043957600080fd5b81019080803590602001909291905050506109e5565b005b61045961085a565b151561046457600080fd5b8060026000848152602001908152602001600020819055505050565b61048861085a565b151561049357600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000806002600085815260200190815260200160002054905060008114151515610580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f496e76616c69642063686573740000000000000000000000000000000000000081525060200191505060405180910390fd5b610588610e21565b60046000858152602001908152602001600020604080519081016040529081600082015481526020016001820154815250509050600081602001511415156106a85743816000015110151515610646576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f446973636f756e7420686173206578706972656400000000000000000000000081525060200191505060405180910390fd5b61069f600154610691670de0b6b3a7640000610683612710610675876020015189610a0290919063ffffffff16565b610a3a90919063ffffffff16565b610a0290919063ffffffff16565b610a3a90919063ffffffff16565b925050506106dc565b6106d76001546106c9670de0b6b3a764000085610a0290919063ffffffff16565b610a3a90919063ffffffff16565b925050505b92915050565b6000600154905090565b6106f461085a565b15156106ff57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561075c573d6000803e3d6000fd5b50565b61076761085a565b151561077257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6108c733828661ffff168661ffff163487610a5e565b50505050565b60006101008360ff1610151561094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420416d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b8260ff1661095c8560ff16846104ee565b0290509392505050565b61096e61085a565b151561097957600080fd5b610981610e21565b82816000018181525050818160200181815250508060046000868152602001908152602001600020600082015181600001556020820151816001015590505050505050565b6109ce61085a565b15156109d957600080fd5b6109e281610c46565b50565b6109ed61085a565b15156109f857600080fd5b8060018190555050565b600080831415610a155760009050610a34565b8183029050818382811515610a2657fe5b04141515610a3357600080fd5b5b92915050565b60008082111515610a4a57600080fd5b8183811515610a5557fe5b04905092915050565b6000610a6b8585846108cd565b9050808310151515610ae5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4e6f7420656e6f7567682065746865720000000000000000000000000000000081525060200191505060405180910390fd5b80831115610b37578673ffffffffffffffffffffffffffffffffffffffff166108fc8285039081150290604051600060405180830381858888f19350505050158015610b35573d6000803e3d6000fd5b505b6000610b69612710610b5b610b4c8a8c610d40565b85610a0290919063ffffffff16565b610a3a90919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fc3d7bb6275257994a2f8a0e35306b8d6b1ad18af193fc3ef58e93a118759d57f888885604051808461ffff1661ffff1681526020018361ffff1661ffff168152602001828152602001935050505060405180910390a3600081118015610c3257508673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050155b15610c3c57600090505b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c8257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dab5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610e1657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e0c57610bb89050610e1b565b6103e89050610e1b565b600090505b92915050565b60408051908101604052806000815260200160008152509056fea165627a7a723058200fa636418b4875a1789b6419094a17e2d92a885aacdf4b870246ba064247cce40029

Deployed Bytecode Sourcemap

4389:4280:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5865:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:146:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5865:146:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5223:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5223:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6295:593;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6295:593:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6295:593:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5770:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5770:87:0;;;;;;;;;;;;;;;;;;;;;;;8562:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8562:104:0;;;;;;1396:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1396:140:0;;;;;;683:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;683:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1018:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1018:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6019:232;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6019:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6896:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6896:249:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6896:249:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5351:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5351:260:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5351:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1713:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1713:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1713:109:0;;;;;;;;;;;;;;;;;;;;;;5672:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5672:90:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5672:90:0;;;;;;;;;;;;;;;;;;;;5865:146;895:9;:7;:9::i;:::-;887:18;;;;;;;;5994:11;5963:16;:28;5980:10;5963:28;;;;;;;;;;;:42;;;;5865:146;;:::o;5223:120::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;5330:7;5302:15;:25;5318:8;5302:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5223:120;;:::o;6295:593::-;6380:7;6398:18;6419:16;:28;6436:10;6419:28;;;;;;;;;;;;6398:49;;6478:1;6464:10;:15;;6456:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6514:24;;:::i;:::-;6541:15;:28;6557:11;6541:28;;;;;;;;;;;6514:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;6607:1;6584:8;:19;;;:24;;6580:227;;;6653:12;6629:8;:20;;;:36;;6621:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6708:89;6788:8;;6708:75;6763:19;6709:48;6751:5;6709:37;6726:8;:19;;;6710:10;6709:16;;:37;;;;:::i;:::-;:41;;:48;;;;:::i;:::-;6708:54;;:75;;;;:::i;:::-;:79;;:89;;;;:::i;:::-;6701:96;;;;;;6580:227;6831:51;6873:8;;6831:37;6848:19;6832:10;6831:16;;:37;;;;:::i;:::-;:41;;:51;;;;:::i;:::-;6824:58;;;;6295:593;;;;;:::o;5770:87::-;5818:7;5843:8;;5836:15;;5770:87;:::o;8562:104::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;8618:10;:19;;:42;8646:4;8638:21;;;8618:42;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8618:42:0;8562:104::o;1396:140::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;1495:1;1458:40;;1479:6;;;;;;;;;;;1458:40;;;;;;;;;;;;1526:1;1509:6;;:19;;;;;;;;;;;;;;;;;;1396:140::o;683:79::-;721:7;748:6;;;;;;;;;;;741:13;;683:79;:::o;1018:92::-;1058:4;1096:6;;;;;;;;;;;1082:20;;:10;:20;;;1075:27;;1018:92;:::o;6019:232::-;6158:87;6173:10;6185:9;6196:10;6158:87;;6208:12;6158:87;;6222:9;6233:11;6158:14;:87::i;:::-;6019:232;;;;:::o;6896:249::-;6999:7;7040:3;7025:12;:18;;;7017:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7127:12;7086:53;;:38;7100:10;7086:38;;7112:11;7086:13;:38::i;:::-;:53;7079:60;;6896:249;;;;;:::o;5351:260::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;5455:24;;:::i;:::-;5511:12;5488:8;:20;;:35;;;;;5554:11;5532:8;:19;;:33;;;;;5597:8;5574:15;:20;5590:3;5574:20;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;916:1;5351:260;;;:::o;1713:109::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;1786:28;1805:8;1786:18;:28::i;:::-;1713:109;:::o;5672:90::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;5750:6;5739:8;:17;;;;5672:90;:::o;3212:162::-;3270:9;3297:1;3292;:6;3288:37;;;3316:1;3309:8;;;;3288:37;3341:1;3337;:5;3333:9;;3366:1;3361;3357;:5;;;;;;;;:10;3349:19;;;;;;;;3212:162;;;;;:::o;3380:219::-;3438:9;3572:1;3568;:5;3560:14;;;;;;;;3592:1;3588;:5;;;;;;;;3581:12;;3380:219;;;;:::o;7499:999::-;7722:19;7744:66;7764:10;7783:12;7798:11;7744:13;:66::i;:::-;7722:88;;7886:11;7872:10;:25;;7864:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7995:11;7982:10;:24;7978:88;;;8017:6;:15;;:41;8046:11;8033:10;:24;8017:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8017:41:0;7978:88;8074:23;8100:85;8179:5;8100:66;8124:41;8147:9;8158:6;8124:22;:41::i;:::-;8100:11;:23;;:66;;;;:::i;:::-;:78;;:85;;;;:::i;:::-;8074:111;;8264:9;8199:92;;8256:6;8199:92;;;8221:10;8241:12;8275:15;8199:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8418:1;8400:15;:19;:55;;;;;8424:9;:14;;:31;8439:15;8424:31;;;;;;;;;;;;;;;;;;;;;;;8423:32;8400:55;8396:97;;;8484:1;8466:19;;8396:97;7499:999;;;;;;;;:::o;1972:187::-;2066:1;2046:22;;:8;:22;;;;2038:31;;;;;;;;2114:8;2085:38;;2106:6;;;;;;;;;;;2085:38;;;;;;;;;;;;2143:8;2134:6;;:17;;;;;;;;;;;;;;;;;;1972:187;:::o;7151:340::-;7241:19;7288:6;7275:19;;:9;:19;;;;:47;;;;;7320:1;7298:24;;:9;:24;;;;7275:47;7271:197;;;7341:15;:26;7357:9;7341:26;;;;;;;;;;;;;;;;;;;;;;;;;7337:122;;;7393:4;7386:11;;;;7337:122;7441:4;7434:11;;;;7271:197;7484:1;7477:8;;7151:340;;;;;:::o;4389:4280::-;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://0fa636418b4875a1789b6419094a17e2d92a885aacdf4b870246ba064247cce4

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.