ETH Price: $2,848.72 (-8.60%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim196747542024-04-17 10:59:59291 days ago1713351599IN
0x8a162fCB...2295cb35b
0 ETH0.0009080912.1725096
Claim196747422024-04-17 10:57:35291 days ago1713351455IN
0x8a162fCB...2295cb35b
0 ETH0.0007737113.08185627
Invest196739862024-04-17 8:25:47291 days ago1713342347IN
0x8a162fCB...2295cb35b
0 ETH0.0025985614.47778785
Set Burn Percent...196739712024-04-17 8:22:47291 days ago1713342167IN
0x8a162fCB...2295cb35b
0 ETH0.000315213.14770368
Set Lock Rate196739652024-04-17 8:21:35291 days ago1713342095IN
0x8a162fCB...2295cb35b
0 ETH0.0006763814.63255663
Set Burn Percent...177404912023-07-21 9:01:47562 days ago1689930107IN
0x8a162fCB...2295cb35b
0 ETH0.0008805719.18538833
Claim177404782023-07-21 8:59:11562 days ago1689929951IN
0x8a162fCB...2295cb35b
0 ETH0.0017026620.06250174
Set Burn Percent...177404712023-07-21 8:57:47562 days ago1689929867IN
0x8a162fCB...2295cb35b
0 ETH0.0004727319.71885515
Set Lock Rate177399222023-07-21 7:06:47562 days ago1689923207IN
0x8a162fCB...2295cb35b
0 ETH0.0005587823.00584848
Set Lock Rate177399192023-07-21 7:06:11562 days ago1689923171IN
0x8a162fCB...2295cb35b
0 ETH0.0005211221.4551518
Invest177399102023-07-21 7:04:23562 days ago1689923063IN
0x8a162fCB...2295cb35b
0 ETH0.0035424421.81657493
Set Lock Rate177399022023-07-21 7:02:47562 days ago1689922967IN
0x8a162fCB...2295cb35b
0 ETH0.0010737723.22320367
Set Lock Rate177397042023-07-21 6:22:47562 days ago1689920567IN
0x8a162fCB...2295cb35b
0 ETH0.0005453618.71711503
Set Lock Rate177396002023-07-21 6:01:35562 days ago1689919295IN
0x8a162fCB...2295cb35b
0 ETH0.0007037615.22081984
Set Lock Rate177385632023-07-21 2:31:47562 days ago1689906707IN
0x8a162fCB...2295cb35b
0 ETH0.0004896820.16060923
Set Lock Rate177384922023-07-21 2:17:23562 days ago1689905843IN
0x8a162fCB...2295cb35b
0 ETH0.0009470320.48229345
Set Burn Percent...177266422023-07-19 10:28:47564 days ago1689762527IN
0x8a162fCB...2295cb35b
0 ETH0.0006744714.69515666
Claim177266382023-07-19 10:27:59564 days ago1689762479IN
0x8a162fCB...2295cb35b
0 ETH0.001198614.12311415
Set Burn Percent...177266332023-07-19 10:26:47564 days ago1689762407IN
0x8a162fCB...2295cb35b
0 ETH0.0003420514.26793777
Set Lock Rate177248902023-07-19 4:33:23564 days ago1689741203IN
0x8a162fCB...2295cb35b
0 ETH0.0004987920.53580216
Invest177248822023-07-19 4:31:47564 days ago1689741107IN
0x8a162fCB...2295cb35b
0 ETH0.0032378819.93794343
Set Lock Rate177248732023-07-19 4:29:59564 days ago1689740999IN
0x8a162fCB...2295cb35b
0 ETH0.0010512522.73612303
Set Burn Percent...177206652023-07-18 14:19:47565 days ago1689689987IN
0x8a162fCB...2295cb35b
0 ETH0.0016098235.07389108
Claim177206612023-07-18 14:18:59565 days ago1689689939IN
0x8a162fCB...2295cb35b
0 ETH0.002697936.16394532
Set Burn Percent...177206582023-07-18 14:18:23565 days ago1689689903IN
0x8a162fCB...2295cb35b
0 ETH0.0008528535.5741124
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xA94Fe794...E0bf3516B
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
EsgSHIPV2

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 300 runs

Other Settings:
default evmVersion
File 1 of 3 : EsgSHIPV2.sol
pragma solidity >=0.5.16;
pragma experimental ABIEncoderV2;

import "./EIP20Interface.sol";
import "./SafeMath.sol";

contract EsgSHIPV2{
    using SafeMath for uint256;
    /// @notice ESG token
    EIP20Interface public esg;

    struct Lock {
        uint256 amount; 
        uint256 start;
        uint256 end;
        uint256 rate;
    }

    mapping(uint256 => uint256) public lockRates;

    mapping(address => Lock[]) public locks;

    mapping(address => uint256) public interests;

    address public owner;

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner can call this function.");
        _;
    }

    struct Referrer {
        address[] referrals;
        uint256 totalInvestment;
        bool dynamicReward;
    }

    mapping(address => Referrer) public referrers;

    struct User {
        address referrer_addr;
    }

    mapping (address => User) referrerlist;//1:1

    uint256 public referralThreshold = 3000 * 1e18;

    uint256 public dynamicRewardThreshold = 100000 * 1e18;

    uint256 public onetimeRewardPercentage = 5;

    uint256 public dynamicRewardPercentage = 8;

    uint256 public dynamicRewardPercentageEvery = 20;

    uint256 public burnPercentage = 5;

    //TVL
    uint256 public total_deposited;

    uint256 public total_user;

    constructor(address esgAddress) public {
        owner = msg.sender;
        lockRates[9] = 60;
        lockRates[12] = 70;
        lockRates[18] = 100;
        esg = EIP20Interface(esgAddress);
    }

    function setLockRate(uint256 _months, uint256 _rate) public onlyOwner {
        lockRates[_months] = _rate;
    }

    function setReferralThreshold(uint256 _amount) public onlyOwner {
        referralThreshold = _amount;
    }

    function setDynamicRewardThreshold(uint256 _amount) public onlyOwner {
        dynamicRewardThreshold = _amount;
    }

    function setOnetimeRewardPercentage(uint256 _percentage) public onlyOwner {
        onetimeRewardPercentage = _percentage;
    }

    function setDynamicRewardPercentage(uint256 _percentage) public onlyOwner {
        dynamicRewardPercentage = _percentage;
    }

    function setDynamicRewardPercentageEvery(uint256 _percentage) public onlyOwner {
        dynamicRewardPercentageEvery = _percentage;
    }

    function setBurnPercentage(uint256 _percentage) public onlyOwner {
        burnPercentage = _percentage;
    }

    function setInvitee(address inviteeAddress) public returns (bool) {
        require(inviteeAddress != address(0), "inviteeAddress should not be 0x0.");

        User storage user = referrerlist[inviteeAddress];
        require(user.referrer_addr == address(0), "This account had been invited!");

        Lock[] storage referrerLocks = locks[msg.sender];
        require(referrerLocks.length > 0, "Referrer has no locked amount.");

        uint256 referrerAmount = 0;

        for (uint256 i = 0; i < referrerLocks.length; i++) {
            Lock storage lock = referrerLocks[i];
            referrerAmount += lock.amount;
        }

        require(referrerAmount >= referralThreshold,"Referrer has no referral qualification.");

        uint256 is_invest = interests[inviteeAddress];
        require(is_invest == 0, "This account had staked!");

        Referrer storage referrer = referrers[msg.sender];
        referrer.referrals.push(inviteeAddress);
        referrer.dynamicReward = false;

        User storage _user = referrerlist[inviteeAddress];
        _user.referrer_addr = msg.sender;
        return true;   
    }

    function getInviteelist(address referrerAddress) public view returns (address[] memory) {
        require(referrerAddress != address(0), "referrerAddress should not be 0x0.");
        Referrer storage referrer = referrers[referrerAddress];
        return referrer.referrals;
    }

    function getReferrer(address inviteeAddress) public view returns (address) {
        require(inviteeAddress != address(0), "inviteeAddress should not be 0x0.");
        User storage user = referrerlist[inviteeAddress];
        return user.referrer_addr;
    }

    function invest(uint256 _months, uint256 _amount, bool _useInterest) public returns (bool) {
        require(lockRates[_months] > 0, "Invalid lock period.");
        require(_amount > 0, "Invalid amount.");

        if (_useInterest) {
            uint256 interest = calculateInterest(msg.sender);
            require(interest >= _amount, "Insufficient interest.");
            interests[msg.sender] -= _amount;
        } else {
            esg.transferFrom(msg.sender, address(this), _amount);
        }

        locks[msg.sender].push(
            Lock(
                _amount,
                block.timestamp,
                block.timestamp + _months * 30 days,
                lockRates[_months]
            )
        );

        total_deposited = total_deposited + _amount;
        total_user = total_user + 1;
            
        User storage user = referrerlist[msg.sender];

        if(user.referrer_addr != address(0)){
            referrers[user.referrer_addr].totalInvestment += _amount;

            if (referrers[user.referrer_addr].totalInvestment >= dynamicRewardThreshold) {
                referrers[user.referrer_addr].dynamicReward = true;
            }
            uint256 onetimeTotalReward = _amount.mul(lockRates[_months]).div(100).mul(onetimeRewardPercentage).div(100);
            uint256 onetimeReward = onetimeTotalReward.div(12).mul(_months);
            esg.transfer(user.referrer_addr, onetimeReward);
        }
        return true;
    }

    function withdraw() public returns (bool) {
        Lock[] storage userLocks = locks[msg.sender];
        require(userLocks.length > 0, "No locked amount.");

        uint256 totalAmount = 0;
        uint256 index = 0;
        uint256 totalInterest = interests[msg.sender];

        while (index < userLocks.length) {
            Lock memory lock = userLocks[index];
            if (block.timestamp >= lock.end) {
                totalAmount += lock.amount;
                userLocks[index] = userLocks[userLocks.length - 1];
                userLocks.pop();
                uint256 interest = calculateInterestForLock(lock);
                if (interest > 0) {
                    totalInterest += interest;
                    lock.start = block.timestamp;
                    totalAmount += totalInterest;
                }
            } else {
                index++;
            }
        }

        require(totalAmount > 0, "No amount to withdraw.");

        esg.transfer(msg.sender, totalAmount);

        interests[msg.sender] = 0;
        total_deposited -= totalAmount;

        User storage user = referrerlist[msg.sender];

        if (user.referrer_addr != address(0)) {
            referrers[user.referrer_addr].totalInvestment -= totalAmount;
            if (referrers[user.referrer_addr].totalInvestment < dynamicRewardThreshold) {
                referrers[user.referrer_addr].dynamicReward = false;
            }
        }

        uint256 userAmount = 0;

        for (uint256 i = 0; i < userLocks.length; i++) {
            Lock storage lock = userLocks[i];
            userAmount += lock.amount;
        }

        if (userAmount < referralThreshold) {
            delete referrers[msg.sender].referrals;
        }
        return true;
    }

    function claim() public returns (bool) {
        Lock[] storage userLocks = locks[msg.sender];
        require(userLocks.length > 0, "No locked amount.");

        uint256 totalInterest = interests[msg.sender];

        for (uint256 i = 0; i < userLocks.length; i++) {
            Lock memory lock = userLocks[i];
            uint256 interest = calculateInterestForLock(lock);
            if (interest > 0) {
                totalInterest += interest;
                lock.start = block.timestamp;
            }
        }

        require(totalInterest > 0, "No interest to claim.");

        interests[msg.sender] = 0;

        uint256 burnAmount = totalInterest.mul(burnPercentage).div(1000);
        esg.transfer(address(esg), burnAmount);
        totalInterest -= burnAmount;

        esg.transfer(msg.sender, totalInterest);

        Referrer storage referrer = referrers[msg.sender];
        User storage user = referrerlist[msg.sender];

        if (user.referrer_addr != address(0)) {
            uint256 dynamicRewardEvery = totalInterest.mul(dynamicRewardPercentageEvery).div(100);
            esg.transfer(user.referrer_addr, dynamicRewardEvery);
            if (referrers[user.referrer_addr].dynamicReward) {
                uint256 dynamicReward = totalInterest.mul(dynamicRewardPercentage).div(100);
                esg.transfer(user.referrer_addr, dynamicReward);
            }
        }
        return true;
    }

    function calculateInterest(address _user) public view returns (uint256) {
        Lock[] storage userLocks = locks[_user];
        if (userLocks.length == 0) {
            return 0;
        }
        uint256 totalInterest = interests[_user];

        for (uint256 i = 0; i < userLocks.length; i++) {
            Lock memory lock = userLocks[i];
            uint256 interest = calculateInterestForLock(lock);
            if (interest > 0) {
                totalInterest += interest;
            }
        }

        return totalInterest;
    }

    function calculateInterestForLock(Lock memory _lock) public view returns (uint256){
        require(_lock.amount > 0, "The number of locked cannot be 0"); 
        require(_lock.rate > 0, "lock rate cannot be 0");
        uint256 interest = (block.timestamp.sub(_lock.start)).mul(_lock.amount).mul(_lock.rate).div(100).div(360).div(86400);
        return interest;
    }

    function getLockInfo(address _user) public view returns (
            uint256[] memory,
            uint256[] memory,
            uint256[] memory,
            uint256[] memory,
            uint256[] memory
        )
    {
        Lock[] storage userLocks = locks[_user];
                uint256 length = userLocks.length;

        uint256[] memory amounts = new uint256[](length);
        uint256[] memory starts = new uint256[](length);
        uint256[] memory ends = new uint256[](length);
        uint256[] memory rates = new uint256[](length);
        uint256[] memory interest = new uint256[](length);

        for (uint256 i = 0; i < length; i++) {
            Lock memory lock = userLocks[i];
            amounts[i] = lock.amount;
            starts[i] = lock.start;
            ends[i] = lock.end;
            rates[i] = lock.rate;
            interest[i] = calculateInterestForLock(lock);
        }

        return (amounts, starts, ends, rates, interest);
    }

    function transferOwnership(address newOwner) onlyOwner public {
        if (newOwner != address(0)) {
        owner = newOwner;
      }
    }
}

File 2 of 3 : SafeMath.sol
pragma solidity ^0.5.16;

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol
// Subject to the MIT license.

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, errorMessage);

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction underflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot 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-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b, string memory errorMessage) 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-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, errorMessage);

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts with custom message on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }

    /**
   * @dev gives square root of given x.
   */
  function sqrt(uint256 x) internal pure returns(uint256 y) {
        uint256 z = ((add(x, 1)) / 2);
        y = x;
        while (z < y) {
            y = z;
            z = ((add((x / z), z)) / 2);
        }
  }

  /**
   * @dev gives square. multiplies x by x
   */
  function sq(uint256 x) internal pure returns(uint256) {
       return (mul(x, x));
  }

  /**
   * @dev x to the power of y
   */
  function pwr(uint256 x, uint256 y) internal pure returns(uint256) {
    if (x == 0)
      return (0);
    else if (y == 0)
      return (1);
    else {
      uint256 z = x;
      for (uint256 i = 1; i < y; i++)
        z = mul(z, x);
      return (z);
    }
  }
}

File 3 of 3 : EIP20Interface.sol
pragma solidity ^0.5.16;

/**
 * @title ERC 20 Token Standard Interface
 *  https://eips.ethereum.org/EIPS/eip-20
 */
interface EIP20Interface {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    /**
      * @notice Get the total number of tokens in circulation
      * @return The supply of tokens
      */
    function totalSupply() external view returns (uint256);

    /**
     * @notice Gets the balance of the specified address
     * @param owner The address from which the balance will be retrieved
     * @return The balance
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
      * @notice Transfer `amount` tokens from `msg.sender` to `dst`
      * @param dst The address of the destination account
      * @param amount The number of tokens to transfer
      * @return Whether or not the transfer succeeded
      */
    function transfer(address dst, uint256 amount) external returns (bool success);

    /**
      * @notice Transfer `amount` tokens from `src` to `dst`
      * @param src The address of the source account
      * @param dst The address of the destination account
      * @param amount The number of tokens to transfer
      * @return Whether or not the transfer succeeded
      */
    function transferFrom(address src, address dst, uint256 amount) external returns (bool success);

    /**
      * @notice Approve `spender` to transfer up to `amount` from `src`
      * @dev This will overwrite the approval amount for `spender`
      *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
      * @param spender The address of the account which may transfer tokens
      * @param amount The number of tokens that are approved (-1 means infinite)
      * @return Whether or not the approval succeeded
      */
    function approve(address spender, uint256 amount) external returns (bool success);

    /**
      * @notice Get the current allowance from `owner` for `spender`
      * @param owner The address of the account which owns the tokens to be spent
      * @param spender The address of the account which may transfer tokens
      * @return The number of tokens allowed to be spent (-1 means infinite)
      */
    function allowance(address owner, address spender) external view returns (uint256 remaining);

    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 300
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"esgAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"burnPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"calculateInterest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"}],"internalType":"struct EsgSHIPV2.Lock","name":"_lock","type":"tuple"}],"name":"calculateInterestForLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dynamicRewardPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dynamicRewardPercentageEvery","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dynamicRewardThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"esg","outputs":[{"internalType":"contract EIP20Interface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"getInviteelist","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getLockInfo","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"inviteeAddress","type":"address"}],"name":"getReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"interests","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_months","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useInterest","type":"bool"}],"name":"invest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockRates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"locks","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onetimeRewardPercentage","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":true,"inputs":[],"name":"referralThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrers","outputs":[{"internalType":"uint256","name":"totalInvestment","type":"uint256"},{"internalType":"bool","name":"dynamicReward","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setBurnPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setDynamicRewardPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setDynamicRewardPercentageEvery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setDynamicRewardThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"inviteeAddress","type":"address"}],"name":"setInvitee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_months","type":"uint256"},{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setLockRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setOnetimeRewardPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setReferralThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"total_deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total_user","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80637238ccdb1161010f578063beafe357116100a2578063de560cca11610071578063de560cca146103f8578063e11932cf14610400578063f01f20df14610413578063f2fde38b1461041b576101e5565b8063beafe357146103aa578063c1d17aff146103bd578063c3f0d327146103d0578063cac06522146103e3576101e5565b8063a9859627116100de578063a98596271461034e578063ad82c25414610361578063b425f80214610374578063b7ee446d14610397576101e5565b80637238ccdb146102fa5780638da5cb5b1461031e578063a129beba14610326578063a30baee01461033b576101e5565b80634706f9c9116101875780634fa77a48116101565780634fa77a48146102cf5780635d91ba79146102e257806365ab4477146102ea5780636935a349146102f2576101e5565b80634706f9c91461027e5780634a3b68cc146102865780634a9fefc7146102a75780634e71d92d146102c7576101e5565b806336d8a893116101c357806336d8a893146102465780633bfe596d146102665780633ccfd60b1461026e5780634091299014610276576101e5565b80630ef44046146101ea57806322d5c4e4146102135780632e11930414610233575b600080fd5b6101fd6101f83660046118e6565b61042e565b60405161020a91906120f7565b60405180910390f35b6102266102213660046119bf565b610440565b60405161020a9190611fca565b6101fd610241366004611982565b610770565b6102596102543660046118e6565b610782565b60405161020a9190611f4d565b6101fd610824565b61022661082a565b6101fd610b50565b6101fd610b56565b6102996102943660046118e6565b610b5c565b60405161020a929190612105565b6102ba6102b53660046118e6565b610b7b565b60405161020a9190611eee565b610226610bc2565b6102266102dd3660046118e6565b610f93565b6101fd611123565b6101fd611129565b6101fd61112f565b61030d6103083660046118e6565b611135565b60405161020a959493929190611f5e565b6102ba61135a565b610339610334366004611982565b611369565b005b610339610349366004611982565b611398565b61033961035c366004611982565b6113c7565b61033961036f366004611982565b6113f6565b61038761038236600461190c565b611425565b60405161020a9493929190612120565b6103396103a5366004611982565b611468565b6103396103b83660046119a0565b611497565b6101fd6103cb366004611964565b6114d3565b6103396103de366004611982565b611553565b6103eb611582565b60405161020a9190611fd8565b6101fd611591565b6101fd61040e3660046118e6565b611597565b6101fd611664565b6103396104293660046118e6565b61166a565b60036020526000908152604090205481565b6000838152600160205260408120546104745760405162461bcd60e51b815260040161046b906120c7565b60405180910390fd5b600083116104945760405162461bcd60e51b815260040161046b90611ff7565b81156104e35760006104a533611597565b9050838110156104c75760405162461bcd60e51b815260040161046b906120e7565b503360009081526003602052604090208054849003905561056b565b6000546040516323b872dd60e01b81526001600160a01b03909116906323b872dd9061051790339030908890600401611efc565b602060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105699190810190611946565b505b33600081815260026020818152604080842081516080810183528981524281850181815262278d008d029091018285019081528c88526001808752858920546060850190815285548083018755958a52878a2094516004909602909401948555915184830155519583019590955551600390910155600d805489019055600e805490930190925592825260069092522080546001600160a01b0316156107635780546001600160a01b03908116600090815260056020526040808220600190810180548901905560085485549094168352912001541061066d5780546001600160a01b03166000908152600560205260409020600201805460ff191660011790555b60006106bd60646106a56009546106b160646106a5600160008e8152602001908152602001600020548c6116c290919063ffffffff16565b9063ffffffff61170516565b9063ffffffff6116c216565b905060006106d6876106b184600c63ffffffff61170516565b600054845460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb9261070d9216908590600401611f3f565b602060405180830381600087803b15801561072757600080fd5b505af115801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061075f9190810190611946565b5050505b60019150505b9392505050565b60016020526000908152604090205481565b60606001600160a01b0382166107aa5760405162461bcd60e51b815260040161046b90612077565b6001600160a01b038216600090815260056020908152604091829020805483518184028101840190945280845290929183919083018282801561081657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107f8575b50505050509150505b919050565b60095481565b33600090815260026020526040812080546108575760405162461bcd60e51b815260040161046b90612097565b3360009081526003602052604081205481905b83548210156109aa5761087b6117ec565b84838154811061088757fe5b906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505090508060400151421061099d5780518554940193859060001981019081106108ec57fe5b906000526020600020906004020185848154811061090657fe5b9060005260206000209060040201600082015481600001556001820154816001015560028201548160020155600382015481600301559050508480548061094957fe5b60008281526020812060046000199093019283020181815560018101829055600281018290556003018190559155610980826114d3565b905080156109975742602083015291820193840193915b506109a4565b6001909201915b5061086a565b600083116109ca5760405162461bcd60e51b815260040161046b90612067565b60005460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109fc9033908790600401611f24565b602060405180830381600087803b158015610a1657600080fd5b505af1158015610a2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a4e9190810190611946565b50336000908152600360209081526040808320839055600d805487900390556006909152902080546001600160a01b031615610ae55780546001600160a01b0390811660009081526005602052604080822060019081018054899003905560085485549094168352912001541015610ae55780546001600160a01b03166000908152600560205260409020600201805460ff191690555b6000805b8654811015610b1f576000878281548110610b0057fe5b6000918252602090912060049091020154929092019150600101610ae9565b50600754811015610b4257336000908152600560205260408120610b4291611814565b600196505050505050505b90565b600e5481565b600b5481565b6005602052600090815260409020600181015460029091015460ff1682565b60006001600160a01b038216610ba35760405162461bcd60e51b815260040161046b906120b7565b506001600160a01b039081166000908152600660205260409020541690565b3360009081526002602052604081208054610bef5760405162461bcd60e51b815260040161046b90612097565b33600090815260036020526040812054905b8254811015610c8957610c126117ec565b838281548110610c1e57fe5b906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505090506000610c6c826114d3565b90508015610c7f57426020830152928301925b5050600101610c01565b5060008111610caa5760405162461bcd60e51b815260040161046b90612057565b336000908152600360205260408120819055600c54610cd8906103e8906106a590859063ffffffff6116c216565b60005460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb90610d0b9083908590600401611f3f565b602060405180830381600087803b158015610d2557600080fd5b505af1158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d5d9190810190611946565b5060005460405163a9059cbb60e01b815292829003926001600160a01b039091169063a9059cbb90610d959033908690600401611f24565b602060405180830381600087803b158015610daf57600080fd5b505af1158015610dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610de79190810190611946565b50336000908152600560209081526040808320600690925290912080546001600160a01b031615610f87576000610e2e60646106a5600b54886116c290919063ffffffff16565b600054835460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92610e659216908590600401611f3f565b602060405180830381600087803b158015610e7f57600080fd5b505af1158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610eb79190810190611946565b5081546001600160a01b031660009081526005602052604090206002015460ff1615610f85576000610ef960646106a5600a54896116c290919063ffffffff16565b600054845460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92610f309216908590600401611f3f565b602060405180830381600087803b158015610f4a57600080fd5b505af1158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f829190810190611946565b50505b505b60019550505050505090565b60006001600160a01b038216610fbb5760405162461bcd60e51b815260040161046b906120b7565b6001600160a01b038083166000908152600660205260409020805490911615610ff65760405162461bcd60e51b815260040161046b906120d7565b33600090815260026020526040902080546110235760405162461bcd60e51b815260040161046b90612037565b6000805b825481101561105d57600083828154811061103e57fe5b6000918252602090912060049091020154929092019150600101611027565b506007548110156110805760405162461bcd60e51b815260040161046b90612007565b6001600160a01b03851660009081526003602052604090205480156110b75760405162461bcd60e51b815260040161046b90612047565b505033600081815260056020908152604080832080546001818101835582865284862090910180546001600160a01b038c166001600160a01b031991821681179092556002909301805460ff191690558552600690935292208054909216909217905592505050919050565b60085481565b60075481565b600a5481565b6001600160a01b03811660009081526002602090815260409182902080548351818152818402810190930190935260609283928392839283928390828015611187578160200160208202803883390190505b5090506060826040519080825280602002602001820160405280156111b6578160200160208202803883390190505b5090506060836040519080825280602002602001820160405280156111e5578160200160208202803883390190505b509050606084604051908082528060200260200182016040528015611214578160200160208202803883390190505b509050606085604051908082528060200260200182016040528015611243578160200160208202803883390190505b50905060005b86811015611345576112596117ec565b88828154811061126557fe5b9060005260206000209060040201604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080600001518783815181106112b957fe5b60200260200101818152505080602001518683815181106112d657fe5b60200260200101818152505080604001518583815181106112f357fe5b602002602001018181525050806060015184838151811061131057fe5b602002602001018181525050611325816114d3565b83838151811061133157fe5b602090810291909101015250600101611249565b50939c929b5090995097509095509350505050565b6004546001600160a01b031681565b6004546001600160a01b031633146113935760405162461bcd60e51b815260040161046b90612017565b600955565b6004546001600160a01b031633146113c25760405162461bcd60e51b815260040161046b90612017565b600855565b6004546001600160a01b031633146113f15760405162461bcd60e51b815260040161046b90612017565b600a55565b6004546001600160a01b031633146114205760405162461bcd60e51b815260040161046b90612017565b600755565b6002602052816000526040600020818154811061143e57fe5b60009182526020909120600490910201805460018201546002830154600390930154919450925084565b6004546001600160a01b031633146114925760405162461bcd60e51b815260040161046b90612017565b600b55565b6004546001600160a01b031633146114c15760405162461bcd60e51b815260040161046b90612017565b60009182526001602052604090912055565b80516000906114f45760405162461bcd60e51b815260040161046b90612027565b60008260600151116115185760405162461bcd60e51b815260040161046b906120a7565b6000610769620151806106a56101686106a560646106a589606001516106b18b600001516106b18d602001514261174790919063ffffffff16565b6004546001600160a01b0316331461157d5760405162461bcd60e51b815260040161046b90612017565b600c55565b6000546001600160a01b031681565b600d5481565b6001600160a01b038116600090815260026020526040812080546115bf57600091505061081f565b6001600160a01b038316600090815260036020526040812054905b825481101561165c576115eb6117ec565b8382815481106115f757fe5b906000526020600020906004020160405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505090506000611645826114d3565b9050801561165257928301925b50506001016115da565b509392505050565b600c5481565b6004546001600160a01b031633146116945760405162461bcd60e51b815260040161046b90612017565b6001600160a01b038116156116bf57600480546001600160a01b0319166001600160a01b0383161790555b50565b6000826116d1575060006116ff565b828202828482816116de57fe5b04146116fc5760405162461bcd60e51b815260040161046b90612087565b90505b92915050565b60006116fc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611789565b60006116fc83836040518060400160405280601f81526020017f536166654d6174683a207375627472616374696f6e20756e646572666c6f77008152506117c0565b600081836117aa5760405162461bcd60e51b815260040161046b9190611fe6565b5060008385816117b657fe5b0495945050505050565b600081848411156117e45760405162461bcd60e51b815260040161046b9190611fe6565b505050900390565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b50805460008255906000526020600020908101906116bf9190610b4d91905b808211156118475760008155600101611833565b5090565b80356116ff81612200565b80356116ff81612214565b80516116ff81612214565b60006080828403121561187e57600080fd5b611888608061215e565b9050600061189684846118db565b82525060206118a7848483016118db565b60208301525060406118bb848285016118db565b60408301525060606118cf848285016118db565b60608301525092915050565b80356116ff8161221d565b6000602082840312156118f857600080fd5b6000611904848461184b565b949350505050565b6000806040838503121561191f57600080fd5b600061192b858561184b565b925050602061193c858286016118db565b9150509250929050565b60006020828403121561195857600080fd5b60006119048484611861565b60006080828403121561197657600080fd5b6000611904848461186c565b60006020828403121561199457600080fd5b600061190484846118db565b600080604083850312156119b357600080fd5b600061192b85856118db565b6000806000606084860312156119d457600080fd5b60006119e086866118db565b93505060206119f1868287016118db565b9250506040611a0286828701611856565b9150509250925092565b6000611a188383611a3b565b505060200190565b6000611a188383611ee5565b611a35816121b4565b82525050565b611a3581612198565b6000611a4f8261218b565b611a59818561218f565b9350611a6483612185565b8060005b83811015611a92578151611a7c8882611a0c565b9750611a8783612185565b925050600101611a68565b509495945050505050565b6000611aa88261218b565b611ab2818561218f565b9350611abd83612185565b8060005b83811015611a92578151611ad58882611a20565b9750611ae083612185565b925050600101611ac1565b611a35816121a3565b611a35816121bb565b6000611b088261218b565b611b12818561218f565b9350611b228185602086016121c6565b611b2b816121f6565b9093019392505050565b6000611b42600f8361218f565b6e24b73b30b634b21030b6b7bab73a1760891b815260200192915050565b6000611b6d60278361218f565b7f526566657272657220686173206e6f20726566657272616c207175616c69666981526631b0ba34b7b71760c91b602082015260400192915050565b6000611bb660228361218f565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f815261371760f11b602082015260400192915050565b6000611bfa60208361218f565b7f546865206e756d626572206f66206c6f636b65642063616e6e6f742062652030815260200192915050565b6000611c33601e8361218f565b7f526566657272657220686173206e6f206c6f636b656420616d6f756e742e0000815260200192915050565b6000611c6c60188361218f565b7f54686973206163636f756e7420686164207374616b6564210000000000000000815260200192915050565b6000611ca560158361218f565b7f4e6f20696e74657265737420746f20636c61696d2e0000000000000000000000815260200192915050565b6000611cde60168361218f565b7f4e6f20616d6f756e7420746f2077697468647261772e00000000000000000000815260200192915050565b6000611d1760228361218f565b7f7265666572726572416464726573732073686f756c64206e6f74206265203078815261181760f11b602082015260400192915050565b6000611d5b60218361218f565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000611d9e60118361218f565b702737903637b1b5b2b21030b6b7bab73a1760791b815260200192915050565b6000611dcb60158361218f565b7f6c6f636b20726174652063616e6e6f7420626520300000000000000000000000815260200192915050565b6000611e0460218361218f565b7f696e7669746565416464726573732073686f756c64206e6f74206265203078308152601760f91b602082015260400192915050565b6000611e4760148361218f565b7f496e76616c6964206c6f636b20706572696f642e000000000000000000000000815260200192915050565b6000611e80601e8361218f565b7f54686973206163636f756e7420686164206265656e20696e7669746564210000815260200192915050565b6000611eb960168361218f565b7f496e73756666696369656e7420696e7465726573742e00000000000000000000815260200192915050565b611a3581610b4d565b602081016116ff8284611a3b565b60608101611f0a8286611a2c565b611f176020830185611a3b565b6119046040830184611ee5565b60408101611f328285611a2c565b6107696020830184611ee5565b60408101611f328285611a3b565b602080825281016116fc8184611a44565b60a08082528101611f6f8188611a9d565b90508181036020830152611f838187611a9d565b90508181036040830152611f978186611a9d565b90508181036060830152611fab8185611a9d565b90508181036080830152611fbf8184611a9d565b979650505050505050565b602081016116ff8284611aeb565b602081016116ff8284611af4565b602080825281016116fc8184611afd565b602080825281016116ff81611b35565b602080825281016116ff81611b60565b602080825281016116ff81611ba9565b602080825281016116ff81611bed565b602080825281016116ff81611c26565b602080825281016116ff81611c5f565b602080825281016116ff81611c98565b602080825281016116ff81611cd1565b602080825281016116ff81611d0a565b602080825281016116ff81611d4e565b602080825281016116ff81611d91565b602080825281016116ff81611dbe565b602080825281016116ff81611df7565b602080825281016116ff81611e3a565b602080825281016116ff81611e73565b602080825281016116ff81611eac565b602081016116ff8284611ee5565b604081016121138285611ee5565b6107696020830184611aeb565b6080810161212e8287611ee5565b61213b6020830186611ee5565b6121486040830185611ee5565b6121556060830184611ee5565b95945050505050565b60405181810167ffffffffffffffff8111828210171561217d57600080fd5b604052919050565b60200190565b5190565b90815260200190565b60006116ff826121a8565b151590565b6001600160a01b031690565b60006116ff825b60006116ff82612198565b60005b838110156121e15781810151838201526020016121c9565b838111156121f0576000848401525b50505050565b601f01601f191690565b61220981612198565b81146116bf57600080fd5b612209816121a3565b61220981610b4d56fea365627a7a7231582012ffec903f2e482c5a830ca6df128f8c2d71b1d78f62de0d62158242e6d335d86c6578706572696d656e74616cf564736f6c63430005100040

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  ]

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.