ETH Price: $3,407.35 (+4.65%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205252552024-08-14 7:03:59170 days ago1723619039IN
0x75019407...9eCC14817
0 ETH0.000053632.22485046
Approve145263612022-04-05 14:06:061032 days ago1649167566IN
0x75019407...9eCC14817
0 ETH0.00610916131.68865002
Approve126499682021-06-17 5:08:031324 days ago1623906483IN
0x75019407...9eCC14817
0 ETH0.0005566912
Transfer115509192020-12-29 20:00:041493 days ago1609272004IN
0x75019407...9eCC14817
0 ETH0.0026299871
Approve113780952020-12-03 6:48:211520 days ago1606978101IN
0x75019407...9eCC14817
0 ETH0.0013287330
Approve112627432020-11-15 13:47:071538 days ago1605448027IN
0x75019407...9eCC14817
0 ETH0.0006774527
Approve112627432020-11-15 13:47:071538 days ago1605448027IN
0x75019407...9eCC14817
0 ETH0.0010629824
Approve111590472020-10-30 15:50:161554 days ago1604073016IN
0x75019407...9eCC14817
0 ETH0.0026574660
Approve111274542020-10-25 19:32:561558 days ago1603654376IN
0x75019407...9eCC14817
0 ETH0.000232716.1
Transfer110111842020-10-07 22:11:141576 days ago1602108674IN
0x75019407...9eCC14817
0 ETH0.0025912670
Approve109984352020-10-05 22:29:161578 days ago1601936956IN
0x75019407...9eCC14817
0 ETH0.0007078948.97577769
Approve109096052020-09-22 2:29:291592 days ago1600741769IN
0x75019407...9eCC14817
0 ETH0.0039226789.00000269
Approve109095232020-09-22 2:13:451592 days ago1600740825IN
0x75019407...9eCC14817
0 ETH0.003878688.00000145
Transfer109094842020-09-22 2:05:501592 days ago1600740350IN
0x75019407...9eCC14817
0 ETH0.0052018100
Approve109024642020-09-21 0:18:451593 days ago1600647525IN
0x75019407...9eCC14817
0 ETH0.00456197103
Transfer108769402020-09-17 2:24:491597 days ago1600309489IN
0x75019407...9eCC14817
0 ETH0.01855203501
Transfer108769252020-09-17 2:20:541597 days ago1600309254IN
0x75019407...9eCC14817
0 ETH0.01855203501
Approve108764132020-09-17 0:35:071597 days ago1600302907IN
0x75019407...9eCC14817
0 ETH0.0022581990
Approve108764132020-09-17 0:35:071597 days ago1600302907IN
0x75019407...9eCC14817
0 ETH0.0022581990
Approve108764092020-09-17 0:34:061597 days ago1600302846IN
0x75019407...9eCC14817
0 ETH0.0039861990
Approve108759952020-09-16 23:10:211597 days ago1600297821IN
0x75019407...9eCC14817
0 ETH0.0034591278.10000023
Approve108742622020-09-16 16:36:241597 days ago1600274184IN
0x75019407...9eCC14817
0 ETH0.00819383185
Approve108717122020-09-16 7:06:481598 days ago1600240008IN
0x75019407...9eCC14817
0 ETH0.00659935149
Transfer108704122020-09-16 2:17:571598 days ago1600222677IN
0x75019407...9eCC14817
0 ETH0.0045932124
Approve108657222020-09-15 9:13:231599 days ago1600161203IN
0x75019407...9eCC14817
0 ETH0.00894678202
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WasabiToken

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-11
*/

// Dependency file: contracts/interface/IERC20.sol

//SPDX-License-Identifier: MIT
// pragma solidity >=0.5.0;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}


// Dependency file: contracts/interface/ERC2917-Interface.sol

//SPDX-License-Identifier: MIT
// pragma solidity >=0.6.6;
// import 'contracts/interface/IERC20.sol';

interface IERC2917 is IERC20 {

    /// @dev This emit when interests amount per block is changed by the owner of the contract.
    /// It emits with the old interests amount and the new interests amount.
    event InterestsPerBlockChanged (uint oldValue, uint newValue);

    /// @dev This emit when a users' productivity has changed
    /// It emits with the user's address and the the value after the change.
    event ProductivityIncreased (address indexed user, uint value);

    /// @dev This emit when a users' productivity has changed
    /// It emits with the user's address and the the value after the change.
    event ProductivityDecreased (address indexed user, uint value);

    
    /// @dev Return the current contract's interests rate per block.
    /// @return The amount of interests currently producing per each block.
    function interestsPerBlock() external view returns (uint);

    /// @notice Change the current contract's interests rate.
    /// @dev Note the best practice will be restrict the gross product provider's contract address to call this.
    /// @return The true/fase to notice that the value has successfully changed or not, when it succeed, it will emite the InterestsPerBlockChanged event.
    function changeInterestsPerBlock(uint value) external returns (bool);

    /// @notice It will get the productivity of given user.
    /// @dev it will return 0 if user has no productivity proved in the contract.
    /// @return user's productivity and overall productivity.
    function getProductivity(address user) external view returns (uint, uint);

    /// @notice increase a user's productivity.
    /// @dev Note the best practice will be restrict the callee to prove of productivity's contract address.
    /// @return true to confirm that the productivity added success.
    function increaseProductivity(address user, uint value) external returns (uint);

    /// @notice decrease a user's productivity.
    /// @dev Note the best practice will be restrict the callee to prove of productivity's contract address.
    /// @return true to confirm that the productivity removed success.
    function decreaseProductivity(address user, uint value) external returns (uint);

    /// @notice take() will return the interests that callee will get at current block height.
    /// @dev it will always calculated by block.number, so it will change when block height changes.
    /// @return amount of the interests that user are able to mint() at current block height.
    function take() external view returns (uint);

    /// @notice similar to take(), but with the block height joined to calculate return.
    /// @dev for instance, it returns (_amount, _block), which means at block height _block, the callee has accumulated _amount of interests.
    /// @return amount of interests and the block height.
    function takeWithBlock() external view returns (uint, uint);

    /// @notice mint the avaiable interests to callee.
    /// @dev once it mint, the amount of interests will transfer to callee's address.
    /// @return the amount of interests minted.
    function mint(address to) external returns (uint);
}


// Dependency file: contracts/libraries/Upgradable.sol

//SPDX-License-Identifier: MIT
// pragma solidity >=0.5.16;

contract UpgradableProduct {
    address public impl;

    event ImplChanged(address indexed _oldImpl, address indexed _newImpl);

    constructor() public {
        impl = msg.sender;
    }

    modifier requireImpl() {
        require(msg.sender == impl, 'FORBIDDEN');
        _;
    }

    function upgradeImpl(address _newImpl) public requireImpl {
        require(_newImpl != address(0), 'INVALID_ADDRESS');
        require(_newImpl != impl, 'NO_CHANGE');
        address lastImpl = impl;
        impl = _newImpl;
        emit ImplChanged(lastImpl, _newImpl);
    }
}

contract UpgradableGovernance {
    address public governor;

    event GovernorChanged(address indexed _oldGovernor, address indexed _newGovernor);

    constructor() public {
        governor = msg.sender;
    }

    modifier requireGovernor() {
        require(msg.sender == governor, 'FORBIDDEN');
        _;
    }

    function upgradeGovernance(address _newGovernor) public requireGovernor {
        require(_newGovernor != address(0), 'INVALID_ADDRESS');
        require(_newGovernor != governor, 'NO_CHANGE');
        address lastGovernor = governor;
        governor = _newGovernor;
        emit GovernorChanged(lastGovernor, _newGovernor);
    }
}


// Dependency file: contracts/libraries/SafeMath.sol

// SPDX-License-Identifier: MIT

// pragma solidity ^0.6.0;

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    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 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) {
        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;
    }
}

// Root file: contracts/WasabiToken.sol

//SPDX-License-Identifier: MIT
pragma solidity >=0.6.6;

// import 'contracts/interface/ERC2917-Interface.sol';
// import 'contracts/libraries/Upgradable.sol';
// import 'contracts/libraries/SafeMath.sol';

/*
    The Objective of ERC2917 Demo is to implement a decentralized staking mechanism, which calculates users' share
    by accumulating productiviy * time. And calculates users revenue from anytime t0 to t1 by the formula below:

        user_accumulated_productivity(time1) - user_accumulated_productivity(time0)
       _____________________________________________________________________________  * (gross_product(t1) - gross_product(t0))
       total_accumulated_productivity(time1) - total_accumulated_productivity(time0)

*/
contract WasabiToken is IERC2917, UpgradableProduct, UpgradableGovernance {
    using SafeMath for uint;
    uint public constant version = 2;
    uint public mintCumulation;
    uint public maxMintCumulation;

    uint private unlocked = 1;
    uint public wasabiPerBlock;

    modifier lock() {
        require(unlocked == 1, 'Locked');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    uint public nounce;

    function incNounce() public {
        nounce ++;
    }

    struct UserInfo {
        uint amount;     // How many LP tokens the user has provided.
        uint rewardDebt; // Reward debt. 
    }

    mapping(address => UserInfo) public users;

    // implementation of ERC20 interfaces.
    string override public name;
    string override public symbol;
    uint8 override public decimals = 18;
    uint override public totalSupply;

    mapping(address => uint) override public balanceOf;
    mapping(address => mapping(address => uint)) override public allowance;

    function _transfer(address from, address to, uint value) private {
        require(balanceOf[from] >= value, 'ERC20Token: INSUFFICIENT_BALANCE');
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        if (to == address(0)) { // burn
            totalSupply = totalSupply.sub(value);
        }
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint value) external override returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint value) external override returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) external override returns (bool) {
        require(allowance[from][msg.sender] >= value, 'ERC20Token: INSUFFICIENT_ALLOWANCE');
        allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
        _transfer(from, to, value);
        return true;
    }

    // end of implementation of ERC20

    // creation of the interests token.
    constructor(uint _initAmount, address _initAddress, uint _interestsRate, uint _maxMintCumulation) UpgradableProduct() UpgradableGovernance() public {
        name        = "Wasabi Token";
        symbol      = "WASABI";
        decimals    = 18;

        wasabiPerBlock          = _interestsRate;
        totalSupply             = _initAmount;
        balanceOf[_initAddress] = _initAmount;
        mintCumulation          = _initAmount;

        maxMintCumulation       = _maxMintCumulation;
    }

    // External function call
    // This function adjust how many token will be produced by each block, eg:
    // changeAmountPerBlock(100)
    // will set the produce rate to 100/block.
    function changeInterestsPerBlock(uint value) external override requireGovernor returns (bool) {
        uint old = wasabiPerBlock;
        require(value != old, 'AMOUNT_PER_BLOCK_NO_CHANGE');

        update();
        wasabiPerBlock = value;

        emit InterestsPerBlockChanged(old, value);
        return true;
    }

    uint lastRewardBlock;
    uint totalProductivity;
    uint accAmountPerShare;

        // Update reward variables of the given pool to be up-to-date.
    function update() internal 
    {
        if (block.number <= lastRewardBlock) {
            return;
        }

        if (totalProductivity == 0) {
            lastRewardBlock = block.number;
            return;
        }
        uint256 multiplier = block.number.sub(lastRewardBlock);
        uint256 reward = multiplier.mul(wasabiPerBlock);

        if(reward + totalSupply > maxMintCumulation) reward = maxMintCumulation.sub(totalSupply);

        balanceOf[address(this)] = balanceOf[address(this)].add(reward);
        totalSupply = totalSupply.add(reward);

        accAmountPerShare = accAmountPerShare.add(reward.mul(1e12).div(totalProductivity));
        lastRewardBlock = block.number;
    }

    // External function call
    // This function increase user's productivity and updates the global productivity.
    // the users' actual share percentage will calculated by:
    // Formula:     user_productivity / global_productivity
    function increaseProductivity(address user, uint value) external override requireImpl returns (uint) {
        if(mintCumulation >= maxMintCumulation)
            return 0;

        require(value > 0, 'PRODUCTIVITY_VALUE_MUST_BE_GREATER_THAN_ZERO');

        UserInfo storage userInfo = users[user];
        update();
        if (userInfo.amount > 0) {
            uint pending = userInfo.amount.mul(accAmountPerShare).div(1e12).sub(userInfo.rewardDebt);
            if(pending + mintCumulation > maxMintCumulation) pending = maxMintCumulation.sub(mintCumulation);
            _transfer(address(this), user, pending);
            mintCumulation = mintCumulation.add(pending);
        }

        totalProductivity = totalProductivity.add(value);

        userInfo.amount = userInfo.amount.add(value);
        userInfo.rewardDebt = userInfo.amount.mul(accAmountPerShare).div(1e12);
        emit ProductivityIncreased(user, value);
        return userInfo.amount;
    }

    // External function call 
    // This function will decreases user's productivity by value, and updates the global productivity
    // it will record which block this is happenning and accumulates the area of (productivity * time)
    function decreaseProductivity(address user, uint value) external override requireImpl returns (uint) {
        if(mintCumulation >= maxMintCumulation)
            return 0;

        require(value > 0, 'INSUFFICIENT_PRODUCTIVITY');
        
        UserInfo storage userInfo = users[user];
        require(userInfo.amount >= value, "WASABI: FORBIDDEN");
        update();
        uint pending = userInfo.amount.mul(accAmountPerShare).div(1e12).sub(userInfo.rewardDebt);
        if(pending + mintCumulation > maxMintCumulation) pending = maxMintCumulation.sub(mintCumulation);
        _transfer(address(this), user, pending);
        mintCumulation = mintCumulation.add(pending);
        userInfo.amount = userInfo.amount.sub(value);
        userInfo.rewardDebt = userInfo.amount.mul(accAmountPerShare).div(1e12);
        totalProductivity = totalProductivity.sub(value);

        emit ProductivityDecreased(user, value);
        return pending;
    }

    function take() external override view returns (uint) {
        if(mintCumulation >= maxMintCumulation)
            return 0;

        UserInfo storage userInfo = users[msg.sender];
        uint _accAmountPerShare = accAmountPerShare;
        // uint256 lpSupply = totalProductivity;
        if (block.number > lastRewardBlock && totalProductivity != 0) {
            uint multiplier = block.number.sub(lastRewardBlock);
            uint reward = multiplier.mul(wasabiPerBlock);
            _accAmountPerShare = _accAmountPerShare.add(reward.mul(1e12).div(totalProductivity));
        }
        uint pending = userInfo.amount.mul(_accAmountPerShare).div(1e12).sub(userInfo.rewardDebt);
        if(pending + mintCumulation > maxMintCumulation) pending = maxMintCumulation.sub(mintCumulation);
        return pending;
    }

    function takeWithAddress(address user) external view returns (uint) {
        if(mintCumulation >= maxMintCumulation)
            return 0;

        UserInfo storage userInfo = users[user];
        uint _accAmountPerShare = accAmountPerShare;
        // uint256 lpSupply = totalProductivity;
        if (block.number > lastRewardBlock && totalProductivity != 0) {
            uint multiplier = block.number.sub(lastRewardBlock);
            uint reward = multiplier.mul(wasabiPerBlock);
            _accAmountPerShare = _accAmountPerShare.add(reward.mul(1e12).div(totalProductivity));
        }
        uint pending = userInfo.amount.mul(_accAmountPerShare).div(1e12).sub(userInfo.rewardDebt);
        if(pending + mintCumulation > maxMintCumulation) pending = maxMintCumulation.sub(mintCumulation);
        return pending;
    }

    // Returns how much a user could earn plus the giving block number.
    function takeWithBlock() external override view returns (uint, uint) {
        if(mintCumulation >= maxMintCumulation)
            return (0, block.number);

        UserInfo storage userInfo = users[msg.sender];
        uint _accAmountPerShare = accAmountPerShare;
        // uint256 lpSupply = totalProductivity;
        if (block.number > lastRewardBlock && totalProductivity != 0) {
            uint multiplier = block.number.sub(lastRewardBlock);
            uint reward = multiplier.mul(wasabiPerBlock);
            _accAmountPerShare = _accAmountPerShare.add(reward.mul(1e12).div(totalProductivity));
        }
        uint pending = userInfo.amount.mul(_accAmountPerShare).div(1e12).sub(userInfo.rewardDebt);
        if(pending + mintCumulation > maxMintCumulation) pending = maxMintCumulation.sub(mintCumulation);
        return (pending, block.number);
        // return (userInfo.amount.mul(_accAmountPerShare).div(1e12).sub(userInfo.rewardDebt), block.number);
    }


    // External function call
    // When user calls this function, it will calculate how many token will mint to user from his productivity * time
    // Also it calculates global token supply from last time the user mint to this time.
    function mint(address to) external override lock returns (uint) {
        require(to != address(0), '');
        return 0;
    }

    // Returns how many productivity a user has and global has.
    function getProductivity(address user) external override view returns (uint, uint) {
        return (users[user].amount, totalProductivity);
    }

    // Returns the current gorss product rate.
    function interestsPerBlock() external override view returns (uint) {
        return accAmountPerShare;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_initAmount","type":"uint256"},{"internalType":"address","name":"_initAddress","type":"address"},{"internalType":"uint256","name":"_interestsRate","type":"uint256"},{"internalType":"uint256","name":"_maxMintCumulation","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldGovernor","type":"address"},{"indexed":true,"internalType":"address","name":"_newGovernor","type":"address"}],"name":"GovernorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldImpl","type":"address"},{"indexed":true,"internalType":"address","name":"_newImpl","type":"address"}],"name":"ImplChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"InterestsPerBlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ProductivityDecreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ProductivityIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changeInterestsPerBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"decreaseProductivity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getProductivity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"impl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incNounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"increaseProductivity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"interestsPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintCumulation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintCumulation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nounce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"take","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"takeWithAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeWithBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGovernor","type":"address"}],"name":"upgradeGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"}],"name":"upgradeImpl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wasabiPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526001600455600a805460ff191660121790553480156200002357600080fd5b5060405162001a5f38038062001a5f833981810160405260808110156200004957600080fd5b50805160208083015160408085015160609095015160008054336001600160a01b031991821681179092556001805490911690911790558151808301909252600c8083526b2bb0b9b0b134902a37b5b2b760a11b92909401918252939491939192620000b8916008916200012c565b506040805180820190915260068082526557415341424960d01b6020909201918252620000e8916009916200012c565b50600a805460ff19166012179055600591909155600b8390556001600160a01b039091166000908152600c60205260409020829055600291909155600355620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016f57805160ff19168380011785556200019f565b828001600101855582156200019f579182015b828111156200019f57825182559160200191906001019062000182565b50620001ad929150620001b1565b5090565b620001ce91905b80821115620001ad5760008155600101620001b8565b90565b61187e80620001e16000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635808b75b1161010457806370a08231116100a2578063a9059cbb11610071578063a9059cbb14610505578063bfc8b20814610531578063cf67536514610539578063dd62ed3e14610541576101cf565b806370a08231146104a95780638abf6077146104cf57806395d89b41146104d7578063a87430ba146104df576101cf565b80636622c838116100de5780636622c8381461044d5780636a627842146104735780636c531712146104995780636df26575146104a1576101cf565b80635808b75b14610420578063616d246314610428578063622b067f14610430576101cf565b80631fedded511610171578063313ce5671161014b578063313ce567146103a257806336f04e45146103c05780634afa66d6146103ec57806354fd4d5014610418576101cf565b80631fedded51461032057806323b872dd1461034657806328e964e91461037c576101cf565b80630e0b6eb5116101ad5780630e0b6eb5146102b5578063159090bd146102d657806318160ddd146102f05780631a2f1363146102f8576101cf565b806306fdde03146101d4578063095ea7b3146102515780630c340a2414610291575b600080fd5b6101dc61056f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561026757600080fd5b506001600160a01b0381351690602001356105fd565b604080519115158252519081900360200190f35b610299610664565b604080516001600160a01b039092168252519081900360200190f35b6102bd610673565b6040805192835260208301919091528051918290030190f35b6102de610790565b60408051918252519081900360200190f35b6102de610880565b61031e6004803603602081101561030e57600080fd5b50356001600160a01b0316610886565b005b61031e6004803603602081101561033657600080fd5b50356001600160a01b03166109bd565b61027d6004803603606081101561035c57600080fd5b506001600160a01b03813581169160208101359091169060400135610af6565b6102bd6004803603602081101561039257600080fd5b50356001600160a01b0316610bc5565b6103aa610be4565b6040805160ff9092168252519081900360200190f35b6102de600480360360408110156103d657600080fd5b506001600160a01b038135169060200135610bed565b6102de6004803603604081101561040257600080fd5b506001600160a01b038135169060200135610dbe565b6102de610fe6565b61031e610feb565b6102de610ff6565b61027d6004803603602081101561044657600080fd5b5035610ffc565b6102de6004803603602081101561046357600080fd5b50356001600160a01b03166110f5565b6102de6004803603602081101561048957600080fd5b50356001600160a01b03166111ee565b6102de611276565b6102de61127c565b6102de600480360360208110156104bf57600080fd5b50356001600160a01b0316611282565b610299611294565b6101dc6112a3565b6102bd600480360360208110156104f557600080fd5b50356001600160a01b03166112fe565b61027d6004803603604081101561051b57600080fd5b506001600160a01b038135169060200135611317565b6102de61132d565b6102de611333565b6102de6004803603604081101561055757600080fd5b506001600160a01b0381358116916020013516611339565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105f55780601f106105ca576101008083540402835291602001916105f5565b820191906000526020600020905b8154815290600101906020018083116105d857829003601f168201915b505050505081565b336000818152600d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6001546001600160a01b031681565b6000806003546002541061068c5750600090504361078c565b336000908152600760205260409020601054600e54431180156106b05750600f5415155b156107265760006106cc600e544361135690919063ffffffff16565b905060006106e56005548361139f90919063ffffffff16565b9050610721610714600f5461070864e8d4a510008561139f90919063ffffffff16565b9063ffffffff6113f816565b849063ffffffff61143a16565b925050505b600061075c836001015461075064e8d4a5100061070886886000015461139f90919063ffffffff16565b9063ffffffff61135616565b905060035460025482011115610784576002546003546107819163ffffffff61135616565b90505b935043925050505b9091565b6000600354600254106107a55750600061087d565b336000908152600760205260409020601054600e54431180156107c95750600f5415155b156108265760006107e5600e544361135690919063ffffffff16565b905060006107fe6005548361139f90919063ffffffff16565b9050610821610714600f5461070864e8d4a510008561139f90919063ffffffff16565b925050505b6000610850836001015461075064e8d4a5100061070886886000015461139f90919063ffffffff16565b905060035460025482011115610878576002546003546108759163ffffffff61135616565b90505b925050505b90565b600b5481565b6000546001600160a01b031633146108d1576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6001600160a01b03811661091e576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b6000546001600160a01b038281169116141561096d576040805162461bcd60e51b81526020600482015260096024820152684e4f5f4348414e474560b81b604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917faad46b89531ed10d02d926f4d6bfe234a6126e3fffc02d3b07167575f9c143379190a35050565b6001546001600160a01b03163314610a08576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6001600160a01b038116610a55576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b6001546001600160a01b0382811691161415610aa4576040805162461bcd60e51b81526020600482015260096024820152684e4f5f4348414e474560b81b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a35050565b6001600160a01b0383166000908152600d60209081526040808320338452909152812054821115610b585760405162461bcd60e51b81526004018080602001828103825260228152602001806117da6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600d60209081526040808320338452909152902054610b8c908363ffffffff61135616565b6001600160a01b0385166000908152600d60209081526040808320338452909152902055610bbb848484611494565b5060019392505050565b6001600160a01b0316600090815260076020526040902054600f549091565b600a5460ff1681565b600080546001600160a01b03163314610c39576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b60035460025410610c4c5750600061065e565b60008211610c8b5760405162461bcd60e51b815260040180806020018281038252602c81526020018061181d602c913960400191505060405180910390fd5b6001600160a01b0383166000908152600760205260409020610cab6115e6565b805415610d29576000610cde826001015461075064e8d4a51000610708601054876000015461139f90919063ffffffff16565b905060035460025482011115610d0657600254600354610d039163ffffffff61135616565b90505b610d11308683611494565b600254610d24908263ffffffff61143a16565b600255505b600f54610d3c908463ffffffff61143a16565b600f558054610d51908463ffffffff61143a16565b808255601054610d729164e8d4a5100091610708919063ffffffff61139f16565b60018201556040805184815290516001600160a01b038616917f6c0a24b06ee7f1d9c3c6680c7328531c32bc59cd665436fc686f973cb8c01be7919081900360200190a2549392505050565b600080546001600160a01b03163314610e0a576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b60035460025410610e1d5750600061065e565b60008211610e72576040805162461bcd60e51b815260206004820152601960248201527f494e53554646494349454e545f50524f44554354495649545900000000000000604482015290519081900360640190fd5b6001600160a01b03831660009081526007602052604090208054831115610ed4576040805162461bcd60e51b81526020600482015260116024820152702ba0a9a0a1249d102327a92124a22222a760791b604482015290519081900360640190fd5b610edc6115e6565b6000610f08826001015461075064e8d4a51000610708601054876000015461139f90919063ffffffff16565b905060035460025482011115610f3057600254600354610f2d9163ffffffff61135616565b90505b610f3b308683611494565b600254610f4e908263ffffffff61143a16565b6002558154610f63908563ffffffff61135616565b808355601054610f849164e8d4a5100091610708919063ffffffff61139f16565b6001830155600f54610f9c908563ffffffff61135616565b600f556040805185815290516001600160a01b038716917fddb757202feefdd10c1666f1bb8f9744309ab811b6ef3ec0404a20c36e426697919081900360200190a2949350505050565b600281565b600680546001019055565b60065481565b6001546000906001600160a01b0316331461104a576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b600554828114156110a2576040805162461bcd60e51b815260206004820152601a60248201527f414d4f554e545f5045525f424c4f434b5f4e4f5f4348414e4745000000000000604482015290519081900360640190fd5b6110aa6115e6565b6005839055604080518281526020810185905281517f2b0f92871c475b115872736d792627db822895557aec734cef4d60531965ed83929181900390910190a160019150505b919050565b60006003546002541061110a575060006110f0565b6001600160a01b0382166000908152600760205260409020601054600e54431180156111375750600f5415155b15611194576000611153600e544361135690919063ffffffff16565b9050600061116c6005548361139f90919063ffffffff16565b905061118f610714600f5461070864e8d4a510008561139f90919063ffffffff16565b925050505b60006111be836001015461075064e8d4a5100061070886886000015461139f90919063ffffffff16565b9050600354600254820111156111e6576002546003546111e39163ffffffff61135616565b90505b949350505050565b6000600454600114611230576040805162461bcd60e51b8152602060048201526006602482015265131bd8dad95960d21b604482015290519081900360640190fd5b60006004556001600160a01b03821661126a576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b50506001600455600090565b60035481565b60055481565b600c6020526000908152604090205481565b6000546001600160a01b031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105f55780601f106105ca576101008083540402835291602001916105f5565b6007602052600090815260409020805460019091015482565b6000611324338484611494565b50600192915050565b60105490565b60025481565b600d60209081526000928352604080842090915290825290205481565b600061139883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116dd565b9392505050565b6000826113ae5750600061065e565b828202828482816113bb57fe5b04146113985760405162461bcd60e51b81526004018080602001828103825260218152602001806117fc6021913960400191505060405180910390fd5b600061139883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611774565b600082820183811015611398576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600c6020526040902054811115611501576040805162461bcd60e51b815260206004820181905260248201527f4552433230546f6b656e3a20494e53554646494349454e545f42414c414e4345604482015290519081900360640190fd5b6001600160a01b0383166000908152600c602052604090205461152a908263ffffffff61135616565b6001600160a01b038085166000908152600c6020526040808220939093559084168152205461155f908263ffffffff61143a16565b6001600160a01b0383166000818152600c602052604090209190915561159657600b54611592908263ffffffff61135616565b600b555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600e5443116115f4576116db565b600f546116045743600e556116db565b600061161b600e544361135690919063ffffffff16565b905060006116346005548361139f90919063ffffffff16565b9050600354600b548201111561165c57600b546003546116599163ffffffff61135616565b90505b306000908152600c602052604090205461167c908263ffffffff61143a16565b306000908152600c6020526040902055600b5461169f908263ffffffff61143a16565b600b55600f546116d1906116c2906107088464e8d4a5100063ffffffff61139f16565b6010549063ffffffff61143a16565b601055505043600e555b565b6000818484111561176c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611731578181015183820152602001611719565b50505050905090810190601f16801561175e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836117c35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611731578181015183820152602001611719565b5060008385816117cf57fe5b049594505050505056fe4552433230546f6b656e3a20494e53554646494349454e545f414c4c4f57414e4345536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7750524f4455435449564954595f56414c55455f4d5553545f42455f475245415445525f5448414e5f5a45524fa26469706673582212202c0785b1783a5d1ef39c26678d0beb9b22a08a3a2565be19e3c3a8d1afd7c20a64736f6c63430006060033000000000000000000000000000000000000000000027b46536c66c8e3000000000000000000000000000000ec08219378c3bbc560d19f442e87323a740399f80000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000052b7d2dcc80cd2e4000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635808b75b1161010457806370a08231116100a2578063a9059cbb11610071578063a9059cbb14610505578063bfc8b20814610531578063cf67536514610539578063dd62ed3e14610541576101cf565b806370a08231146104a95780638abf6077146104cf57806395d89b41146104d7578063a87430ba146104df576101cf565b80636622c838116100de5780636622c8381461044d5780636a627842146104735780636c531712146104995780636df26575146104a1576101cf565b80635808b75b14610420578063616d246314610428578063622b067f14610430576101cf565b80631fedded511610171578063313ce5671161014b578063313ce567146103a257806336f04e45146103c05780634afa66d6146103ec57806354fd4d5014610418576101cf565b80631fedded51461032057806323b872dd1461034657806328e964e91461037c576101cf565b80630e0b6eb5116101ad5780630e0b6eb5146102b5578063159090bd146102d657806318160ddd146102f05780631a2f1363146102f8576101cf565b806306fdde03146101d4578063095ea7b3146102515780630c340a2414610291575b600080fd5b6101dc61056f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561026757600080fd5b506001600160a01b0381351690602001356105fd565b604080519115158252519081900360200190f35b610299610664565b604080516001600160a01b039092168252519081900360200190f35b6102bd610673565b6040805192835260208301919091528051918290030190f35b6102de610790565b60408051918252519081900360200190f35b6102de610880565b61031e6004803603602081101561030e57600080fd5b50356001600160a01b0316610886565b005b61031e6004803603602081101561033657600080fd5b50356001600160a01b03166109bd565b61027d6004803603606081101561035c57600080fd5b506001600160a01b03813581169160208101359091169060400135610af6565b6102bd6004803603602081101561039257600080fd5b50356001600160a01b0316610bc5565b6103aa610be4565b6040805160ff9092168252519081900360200190f35b6102de600480360360408110156103d657600080fd5b506001600160a01b038135169060200135610bed565b6102de6004803603604081101561040257600080fd5b506001600160a01b038135169060200135610dbe565b6102de610fe6565b61031e610feb565b6102de610ff6565b61027d6004803603602081101561044657600080fd5b5035610ffc565b6102de6004803603602081101561046357600080fd5b50356001600160a01b03166110f5565b6102de6004803603602081101561048957600080fd5b50356001600160a01b03166111ee565b6102de611276565b6102de61127c565b6102de600480360360208110156104bf57600080fd5b50356001600160a01b0316611282565b610299611294565b6101dc6112a3565b6102bd600480360360208110156104f557600080fd5b50356001600160a01b03166112fe565b61027d6004803603604081101561051b57600080fd5b506001600160a01b038135169060200135611317565b6102de61132d565b6102de611333565b6102de6004803603604081101561055757600080fd5b506001600160a01b0381358116916020013516611339565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105f55780601f106105ca576101008083540402835291602001916105f5565b820191906000526020600020905b8154815290600101906020018083116105d857829003601f168201915b505050505081565b336000818152600d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6001546001600160a01b031681565b6000806003546002541061068c5750600090504361078c565b336000908152600760205260409020601054600e54431180156106b05750600f5415155b156107265760006106cc600e544361135690919063ffffffff16565b905060006106e56005548361139f90919063ffffffff16565b9050610721610714600f5461070864e8d4a510008561139f90919063ffffffff16565b9063ffffffff6113f816565b849063ffffffff61143a16565b925050505b600061075c836001015461075064e8d4a5100061070886886000015461139f90919063ffffffff16565b9063ffffffff61135616565b905060035460025482011115610784576002546003546107819163ffffffff61135616565b90505b935043925050505b9091565b6000600354600254106107a55750600061087d565b336000908152600760205260409020601054600e54431180156107c95750600f5415155b156108265760006107e5600e544361135690919063ffffffff16565b905060006107fe6005548361139f90919063ffffffff16565b9050610821610714600f5461070864e8d4a510008561139f90919063ffffffff16565b925050505b6000610850836001015461075064e8d4a5100061070886886000015461139f90919063ffffffff16565b905060035460025482011115610878576002546003546108759163ffffffff61135616565b90505b925050505b90565b600b5481565b6000546001600160a01b031633146108d1576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6001600160a01b03811661091e576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b6000546001600160a01b038281169116141561096d576040805162461bcd60e51b81526020600482015260096024820152684e4f5f4348414e474560b81b604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917faad46b89531ed10d02d926f4d6bfe234a6126e3fffc02d3b07167575f9c143379190a35050565b6001546001600160a01b03163314610a08576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6001600160a01b038116610a55576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b6001546001600160a01b0382811691161415610aa4576040805162461bcd60e51b81526020600482015260096024820152684e4f5f4348414e474560b81b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a35050565b6001600160a01b0383166000908152600d60209081526040808320338452909152812054821115610b585760405162461bcd60e51b81526004018080602001828103825260228152602001806117da6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600d60209081526040808320338452909152902054610b8c908363ffffffff61135616565b6001600160a01b0385166000908152600d60209081526040808320338452909152902055610bbb848484611494565b5060019392505050565b6001600160a01b0316600090815260076020526040902054600f549091565b600a5460ff1681565b600080546001600160a01b03163314610c39576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b60035460025410610c4c5750600061065e565b60008211610c8b5760405162461bcd60e51b815260040180806020018281038252602c81526020018061181d602c913960400191505060405180910390fd5b6001600160a01b0383166000908152600760205260409020610cab6115e6565b805415610d29576000610cde826001015461075064e8d4a51000610708601054876000015461139f90919063ffffffff16565b905060035460025482011115610d0657600254600354610d039163ffffffff61135616565b90505b610d11308683611494565b600254610d24908263ffffffff61143a16565b600255505b600f54610d3c908463ffffffff61143a16565b600f558054610d51908463ffffffff61143a16565b808255601054610d729164e8d4a5100091610708919063ffffffff61139f16565b60018201556040805184815290516001600160a01b038616917f6c0a24b06ee7f1d9c3c6680c7328531c32bc59cd665436fc686f973cb8c01be7919081900360200190a2549392505050565b600080546001600160a01b03163314610e0a576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b60035460025410610e1d5750600061065e565b60008211610e72576040805162461bcd60e51b815260206004820152601960248201527f494e53554646494349454e545f50524f44554354495649545900000000000000604482015290519081900360640190fd5b6001600160a01b03831660009081526007602052604090208054831115610ed4576040805162461bcd60e51b81526020600482015260116024820152702ba0a9a0a1249d102327a92124a22222a760791b604482015290519081900360640190fd5b610edc6115e6565b6000610f08826001015461075064e8d4a51000610708601054876000015461139f90919063ffffffff16565b905060035460025482011115610f3057600254600354610f2d9163ffffffff61135616565b90505b610f3b308683611494565b600254610f4e908263ffffffff61143a16565b6002558154610f63908563ffffffff61135616565b808355601054610f849164e8d4a5100091610708919063ffffffff61139f16565b6001830155600f54610f9c908563ffffffff61135616565b600f556040805185815290516001600160a01b038716917fddb757202feefdd10c1666f1bb8f9744309ab811b6ef3ec0404a20c36e426697919081900360200190a2949350505050565b600281565b600680546001019055565b60065481565b6001546000906001600160a01b0316331461104a576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b600554828114156110a2576040805162461bcd60e51b815260206004820152601a60248201527f414d4f554e545f5045525f424c4f434b5f4e4f5f4348414e4745000000000000604482015290519081900360640190fd5b6110aa6115e6565b6005839055604080518281526020810185905281517f2b0f92871c475b115872736d792627db822895557aec734cef4d60531965ed83929181900390910190a160019150505b919050565b60006003546002541061110a575060006110f0565b6001600160a01b0382166000908152600760205260409020601054600e54431180156111375750600f5415155b15611194576000611153600e544361135690919063ffffffff16565b9050600061116c6005548361139f90919063ffffffff16565b905061118f610714600f5461070864e8d4a510008561139f90919063ffffffff16565b925050505b60006111be836001015461075064e8d4a5100061070886886000015461139f90919063ffffffff16565b9050600354600254820111156111e6576002546003546111e39163ffffffff61135616565b90505b949350505050565b6000600454600114611230576040805162461bcd60e51b8152602060048201526006602482015265131bd8dad95960d21b604482015290519081900360640190fd5b60006004556001600160a01b03821661126a576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b50506001600455600090565b60035481565b60055481565b600c6020526000908152604090205481565b6000546001600160a01b031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105f55780601f106105ca576101008083540402835291602001916105f5565b6007602052600090815260409020805460019091015482565b6000611324338484611494565b50600192915050565b60105490565b60025481565b600d60209081526000928352604080842090915290825290205481565b600061139883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116dd565b9392505050565b6000826113ae5750600061065e565b828202828482816113bb57fe5b04146113985760405162461bcd60e51b81526004018080602001828103825260218152602001806117fc6021913960400191505060405180910390fd5b600061139883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611774565b600082820183811015611398576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600c6020526040902054811115611501576040805162461bcd60e51b815260206004820181905260248201527f4552433230546f6b656e3a20494e53554646494349454e545f42414c414e4345604482015290519081900360640190fd5b6001600160a01b0383166000908152600c602052604090205461152a908263ffffffff61135616565b6001600160a01b038085166000908152600c6020526040808220939093559084168152205461155f908263ffffffff61143a16565b6001600160a01b0383166000818152600c602052604090209190915561159657600b54611592908263ffffffff61135616565b600b555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600e5443116115f4576116db565b600f546116045743600e556116db565b600061161b600e544361135690919063ffffffff16565b905060006116346005548361139f90919063ffffffff16565b9050600354600b548201111561165c57600b546003546116599163ffffffff61135616565b90505b306000908152600c602052604090205461167c908263ffffffff61143a16565b306000908152600c6020526040902055600b5461169f908263ffffffff61143a16565b600b55600f546116d1906116c2906107088464e8d4a5100063ffffffff61139f16565b6010549063ffffffff61143a16565b601055505043600e555b565b6000818484111561176c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611731578181015183820152602001611719565b50505050905090810190601f16801561175e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836117c35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611731578181015183820152602001611719565b5060008385816117cf57fe5b049594505050505056fe4552433230546f6b656e3a20494e53554646494349454e545f414c4c4f57414e4345536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7750524f4455435449564954595f56414c55455f4d5553545f42455f475245415445525f5448414e5f5a45524fa26469706673582212202c0785b1783a5d1ef39c26678d0beb9b22a08a3a2565be19e3c3a8d1afd7c20a64736f6c63430006060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000027b46536c66c8e3000000000000000000000000000000ec08219378c3bbc560d19f442e87323a740399f80000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000052b7d2dcc80cd2e4000000

-----Decoded View---------------
Arg [0] : _initAmount (uint256): 3000000000000000000000000
Arg [1] : _initAddress (address): 0xeC08219378c3bBc560D19f442E87323A740399f8
Arg [2] : _interestsRate (uint256): 100000000000000000000
Arg [3] : _maxMintCumulation (uint256): 100000000000000000000000000

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000027b46536c66c8e3000000
Arg [1] : 000000000000000000000000ec08219378c3bbc560d19f442e87323a740399f8
Arg [2] : 0000000000000000000000000000000000000000000000056bc75e2d63100000
Arg [3] : 00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000


Deployed Bytecode Sourcemap

11947:10174:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11947:10174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;12699:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12699:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13399:210;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13399:210:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5080:23;;;:::i;:::-;;;;-1:-1:-1;;;;;5080:23:0;;;;;;;;;;;;;;20356:994;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18587:836;;;:::i;:::-;;;;;;;;;;;;;;;;12811:32;;;:::i;4753:283::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4753:283:0;-1:-1:-1;;;;;4753:283:0;;:::i;:::-;;5381:337;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5381:337:0;-1:-1:-1;;;;;5381:337:0;;:::i;13773:333::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13773:333:0;;;;;;;;;;;;;;;;;:::i;21804:148::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21804:148:0;-1:-1:-1;;;;;21804:148:0;;:::i;12769:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16377:987;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;16377:987:0;;;;;;;;:::i;17611:968::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;17611:968:0;;;;;;;;:::i;12058:32::-;;;:::i;12395:56::-;;;:::i;12368:18::-;;;:::i;14906:330::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14906:330:0;;:::i;19431:844::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19431:844:0;-1:-1:-1;;;;;19431:844:0;;:::i;21600:131::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21600:131:0;-1:-1:-1;;;;;21600:131:0;;:::i;12130:29::-;;;:::i;12200:26::-;;;:::i;12852:50::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12852:50:0;-1:-1:-1;;;;;12852:50:0;;:::i;4480:19::-;;;:::i;12733:29::-;;;:::i;12605:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12605:41:0;-1:-1:-1;;;;;12605:41:0;;:::i;13617:148::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13617:148:0;;;;;;;;:::i;22008:110::-;;;:::i;12097:26::-;;;:::i;12909:70::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;12909:70:0;;;;;;;;;;:::i;12699:27::-;;;;;;;;;;;;;;;-1:-1:-1;;12699:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13399:210::-;13499:10;13472:4;13489:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13489:30:0;;;;;;;;;;;:38;;;13543:36;;;;;;;13472:4;;13489:30;;13499:10;;13543:36;;;;;;;;-1:-1:-1;13597:4:0;13399:210;;;;;:::o;5080:23::-;;;-1:-1:-1;;;;;5080:23:0;;:::o;20356:994::-;20413:4;20419;20457:17;;20439:14;;:35;20436:77;;-1:-1:-1;20497:1:0;;-1:-1:-1;20500:12:0;20489:24;;20436:77;20560:10;20526:25;20554:17;;;:5;:17;;;;;20608;;20705:15;;20690:12;:30;:56;;;;-1:-1:-1;20724:17:0;;:22;;20690:56;20686:298;;;20763:15;20781:33;20798:15;;20781:12;:16;;:33;;;;:::i;:::-;20763:51;;20829:11;20843:30;20858:14;;20843:10;:14;;:30;;;;:::i;:::-;20829:44;;20909:63;20932:39;20953:17;;20932:16;20943:4;20932:6;:10;;:16;;;;:::i;:::-;:20;:39;:20;:39;:::i;:::-;20909:18;;:63;:22;:63;:::i;:::-;20888:84;;20686:298;;;20994:12;21009:74;21063:8;:19;;;21009:49;21053:4;21009:39;21029:18;21009:8;:15;;;:19;;:39;;;;:::i;:49::-;:53;:74;:53;:74;:::i;:::-;20994:89;;21124:17;;21107:14;;21097:7;:24;:44;21094:96;;;21175:14;;21153:17;;:37;;;:21;:37;:::i;:::-;21143:47;;21094:96;21209:7;-1:-1:-1;21218:12:0;;-1:-1:-1;;;20356:994:0;;;:::o;18587:836::-;18635:4;18673:17;;18655:14;;:35;18652:61;;-1:-1:-1;18712:1:0;18705:8;;18652:61;18760:10;18726:25;18754:17;;;:5;:17;;;;;18808;;18905:15;;18890:12;:30;:56;;;;-1:-1:-1;18924:17:0;;:22;;18890:56;18886:298;;;18963:15;18981:33;18998:15;;18981:12;:16;;:33;;;;:::i;:::-;18963:51;;19029:11;19043:30;19058:14;;19043:10;:14;;:30;;;;:::i;:::-;19029:44;;19109:63;19132:39;19153:17;;19132:16;19143:4;19132:6;:10;;:16;;;;:::i;19109:63::-;19088:84;;18886:298;;;19194:12;19209:74;19263:8;:19;;;19209:49;19253:4;19209:39;19229:18;19209:8;:15;;;:19;;:39;;;;:::i;:74::-;19194:89;;19324:17;;19307:14;;19297:7;:24;:44;19294:96;;;19375:14;;19353:17;;:37;;;:21;:37;:::i;:::-;19343:47;;19294:96;19408:7;-1:-1:-1;;;18587:836:0;;:::o;12811:32::-;;;;:::o;4753:283::-;4707:4;;-1:-1:-1;;;;;4707:4:0;4693:10;:18;4685:40;;;;;-1:-1:-1;;;4685:40:0;;;;;;;;;;;;-1:-1:-1;;;4685:40:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4830:22:0;::::1;4822:50;;;::::0;;-1:-1:-1;;;4822:50:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4822:50:0;;;;;;;;;;;;;::::1;;4903:4;::::0;-1:-1:-1;;;;;4891:16:0;;::::1;4903:4:::0;::::1;4891:16;;4883:38;;;::::0;;-1:-1:-1;;;4883:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4883:38:0;;;;;;;;;;;;;::::1;;4932:16;4951:4:::0;;-1:-1:-1;;;;;4966:15:0;;::::1;-1:-1:-1::0;;;;;;4966:15:0;::::1;::::0;::::1;::::0;;4997:31:::1;::::0;4951:4;;;::::1;::::0;;;4997:31:::1;::::0;4932:16;4997:31:::1;4736:1;4753:283:::0;:::o;5381:337::-;5331:8;;-1:-1:-1;;;;;5331:8:0;5317:10;:22;5309:44;;;;;-1:-1:-1;;;5309:44:0;;;;;;;;;;;;-1:-1:-1;;;5309:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5472:26:0;::::1;5464:54;;;::::0;;-1:-1:-1;;;5464:54:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5464:54:0;;;;;;;;;;;;;::::1;;5553:8;::::0;-1:-1:-1;;;;;5537:24:0;;::::1;5553:8:::0;::::1;5537:24;;5529:46;;;::::0;;-1:-1:-1;;;5529:46:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5529:46:0;;;;;;;;;;;;;::::1;;5609:8;::::0;;-1:-1:-1;;;;;5628:23:0;;::::1;-1:-1:-1::0;;;;;;5628:23:0;::::1;::::0;::::1;::::0;;;5667:43:::1;::::0;5609:8;::::1;::::0;5628:23;5609:8;;5667:43:::1;::::0;5586:20:::1;::::0;5667:43:::1;5364:1;5381:337:::0;:::o;13773:333::-;-1:-1:-1;;;;;13885:15:0;;13860:4;13885:15;;;:9;:15;;;;;;;;13901:10;13885:27;;;;;;;;:36;-1:-1:-1;13885:36:0;13877:83;;;;-1:-1:-1;;;13877:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14001:15:0;;;;;;:9;:15;;;;;;;;14017:10;14001:27;;;;;;;;:38;;14033:5;14001:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;13971:15:0;;;;;;:9;:15;;;;;;;;13987:10;13971:27;;;;;;;:68;14050:26;13981:4;14066:2;14070:5;14050:9;:26::i;:::-;-1:-1:-1;14094:4:0;13773:333;;;;;:::o;21804:148::-;-1:-1:-1;;;;;21906:11:0;21875:4;21906:11;;;:5;:11;;;;;:18;21926:17;;21906:18;;21804:148::o;12769:35::-;;;;;;:::o;16377:987::-;16472:4;4707;;-1:-1:-1;;;;;4707:4:0;4693:10;:18;4685:40;;;;;-1:-1:-1;;;4685:40:0;;;;;;;;;;;;-1:-1:-1;;;4685:40:0;;;;;;;;;;;;;;;16510:17:::1;;16492:14;;:35;16489:61;;-1:-1:-1::0;16549:1:0::1;16542:8;;16489:61;16579:1;16571:5;:9;16563:66;;;;-1:-1:-1::0;;;16563:66:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;16670:11:0;::::1;16642:25;16670:11:::0;;;:5:::1;:11;::::0;;;;16692:8:::1;:6;:8::i;:::-;16715:15:::0;;:19;16711:364:::1;;16751:12;16766:73;16819:8;:19;;;16766:48;16809:4;16766:38;16786:17;;16766:8;:15;;;:19;;:38;;;;:::i;:73::-;16751:88;;16884:17;;16867:14;;16857:7;:24;:44;16854:96;;;16935:14;::::0;16913:17:::1;::::0;:37:::1;::::0;::::1;:21;:37;:::i;:::-;16903:47;;16854:96;16965:39;16983:4;16990;16996:7;16965:9;:39::i;:::-;17036:14;::::0;:27:::1;::::0;17055:7;17036:27:::1;:18;:27;:::i;:::-;17019:14;:44:::0;-1:-1:-1;16711:364:0::1;17107:17;::::0;:28:::1;::::0;17129:5;17107:28:::1;:21;:28;:::i;:::-;17087:17;:48:::0;17166:15;;:26:::1;::::0;17186:5;17166:26:::1;:19;:26;:::i;:::-;17148:44:::0;;;17245:17:::1;::::0;17225:48:::1;::::0;17268:4:::1;::::0;17225:38:::1;::::0;17148:44;17225:38:::1;:19;:38;:::i;:48::-;17203:19;::::0;::::1;:70:::0;17289:34:::1;::::0;;;;;;;-1:-1:-1;;;;;17289:34:0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;17341:15:::0;;16377:987;-1:-1:-1;;;16377:987:0:o;17611:968::-;17706:4;4707;;-1:-1:-1;;;;;4707:4:0;4693:10;:18;4685:40;;;;;-1:-1:-1;;;4685:40:0;;;;;;;;;;;;-1:-1:-1;;;4685:40:0;;;;;;;;;;;;;;;17744:17:::1;;17726:14;;:35;17723:61;;-1:-1:-1::0;17783:1:0::1;17776:8;;17723:61;17813:1;17805:5;:9;17797:47;;;::::0;;-1:-1:-1;;;17797:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;17893:11:0;::::1;17865:25;17893:11:::0;;;:5:::1;:11;::::0;;;;17923:15;;:24;-1:-1:-1;17923:24:0::1;17915:54;;;::::0;;-1:-1:-1;;;17915:54:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17915:54:0;;;;;;;;;;;;;::::1;;17980:8;:6;:8::i;:::-;17999:12;18014:73;18067:8;:19;;;18014:48;18057:4;18014:38;18034:17;;18014:8;:15;;;:19;;:38;;;;:::i;:73::-;17999:88;;18128:17;;18111:14;;18101:7;:24;:44;18098:96;;;18179:14;::::0;18157:17:::1;::::0;:37:::1;::::0;::::1;:21;:37;:::i;:::-;18147:47;;18098:96;18205:39;18223:4;18230;18236:7;18205:9;:39::i;:::-;18272:14;::::0;:27:::1;::::0;18291:7;18272:27:::1;:18;:27;:::i;:::-;18255:14;:44:::0;18328:15;;:26:::1;::::0;18348:5;18328:26:::1;:19;:26;:::i;:::-;18310:44:::0;;;18407:17:::1;::::0;18387:48:::1;::::0;18430:4:::1;::::0;18387:38:::1;::::0;18310:44;18387:38:::1;:19;:38;:::i;:48::-;18365:19;::::0;::::1;:70:::0;18466:17:::1;::::0;:28:::1;::::0;18488:5;18466:28:::1;:21;:28;:::i;:::-;18446:17;:48:::0;18512:34:::1;::::0;;;;;;;-1:-1:-1;;;;;18512:34:0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;18564:7:::0;17611:968;-1:-1:-1;;;;17611:968:0:o;12058:32::-;12089:1;12058:32;:::o;12395:56::-;12434:6;:9;;;;;;12395:56::o;12368:18::-;;;;:::o;14906:330::-;5331:8;;14994:4;;-1:-1:-1;;;;;5331:8:0;5317:10;:22;5309:44;;;;;-1:-1:-1;;;5309:44:0;;;;;;;;;;;;-1:-1:-1;;;5309:44:0;;;;;;;;;;;;;;;15022:14:::1;::::0;15055:12;;::::1;;15047:51;;;::::0;;-1:-1:-1;;;15047:51:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15111:8;:6;:8::i;:::-;15130:14;:22:::0;;;15170:36:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;15224:4;15217:11;;;5364:1;14906:330:::0;;;:::o;19431:844::-;19493:4;19531:17;;19513:14;;:35;19510:61;;-1:-1:-1;19570:1:0;19563:8;;19510:61;-1:-1:-1;;;;;19612:11:0;;19584:25;19612:11;;;:5;:11;;;;;19660:17;;19757:15;;19742:12;:30;:56;;;;-1:-1:-1;19776:17:0;;:22;;19742:56;19738:298;;;19815:15;19833:33;19850:15;;19833:12;:16;;:33;;;;:::i;:::-;19815:51;;19881:11;19895:30;19910:14;;19895:10;:14;;:30;;;;:::i;:::-;19881:44;;19961:63;19984:39;20005:17;;19984:16;19995:4;19984:6;:10;;:16;;;;:::i;19961:63::-;19940:84;;19738:298;;;20046:12;20061:74;20115:8;:19;;;20061:49;20105:4;20061:39;20081:18;20061:8;:15;;;:19;;:39;;;;:::i;:74::-;20046:89;;20176:17;;20159:14;;20149:7;:24;:44;20146:96;;;20227:14;;20205:17;;:37;;;:21;:37;:::i;:::-;20195:47;;20146:96;20260:7;19431:844;-1:-1:-1;;;;19431:844:0:o;21600:131::-;21658:4;12270:8;;12282:1;12270:13;12262:32;;;;;-1:-1:-1;;;12262:32:0;;;;;;;;;;;;-1:-1:-1;;;12262:32:0;;;;;;;;;;;;;;;12316:1;12305:8;:12;-1:-1:-1;;;;;21683:16:0;::::1;21675:29;;;::::0;;-1:-1:-1;;;21675:29:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;12351:1:0;12340:8;:12;21722:1:::1;::::0;21600:131::o;12130:29::-;;;;:::o;12200:26::-;;;;:::o;12852:50::-;;;;;;;;;;;;;:::o;4480:19::-;;;-1:-1:-1;;;;;4480:19:0;;:::o;12733:29::-;;;;;;;;;;;;;;;-1:-1:-1;;12733:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12605:41;;;;;;;;;;;;;;;;;;;:::o;13617:148::-;13686:4;13703:32;13713:10;13725:2;13729:5;13703:9;:32::i;:::-;-1:-1:-1;13753:4:0;13617:148;;;;:::o;22008:110::-;22093:17;;22008:110;:::o;12097:26::-;;;;:::o;12909:70::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7152:136::-;7210:7;7237:43;7241:1;7244;7237:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7230:50;7152:136;-1:-1:-1;;;7152:136:0:o;8042:471::-;8100:7;8345:6;8341:47;;-1:-1:-1;8375:1:0;8368:8;;8341:47;8412:5;;;8416:1;8412;:5;:1;8436:5;;;;;:10;8428:56;;;;-1:-1:-1;;;8428:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8989:132;9047:7;9074:39;9078:1;9081;9074:39;;;;;;;;;;;;;;;;;:3;:39::i;6688:181::-;6746:7;6778:5;;;6802:6;;;;6794:46;;;;;-1:-1:-1;;;6794:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12988:403;-1:-1:-1;;;;;13072:15:0;;;;;;:9;:15;;;;;;:24;-1:-1:-1;13072:24:0;13064:69;;;;;-1:-1:-1;;;13064:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13162:15:0;;;;;;:9;:15;;;;;;:26;;13182:5;13162:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;13144:15:0;;;;;;;:9;:15;;;;;;:44;;;;13215:13;;;;;;;:24;;13233:5;13215:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;13199:13:0;;;;;;:9;:13;;;;;:40;;;;13250:93;;13309:11;;:22;;13325:5;13309:22;:15;:22;:::i;:::-;13295:11;:36;13250:93;13373:2;-1:-1:-1;;;;;13358:25:0;13367:4;-1:-1:-1;;;;;13358:25:0;;13377:5;13358:25;;;;;;;;;;;;;;;;;;12988:403;;;:::o;15403:723::-;15467:15;;15451:12;:31;15447:70;;15499:7;;15447:70;15533:17;;15529:106;;15590:12;15572:15;:30;15617:7;;15529:106;15645:18;15666:33;15683:15;;15666:12;:16;;:33;;;;:::i;:::-;15645:54;;15710:14;15727:30;15742:14;;15727:10;:14;;:30;;;;:::i;:::-;15710:47;;15796:17;;15782:11;;15773:6;:20;:40;15770:88;;;15846:11;;15824:17;;:34;;;:21;:34;:::i;:::-;15815:43;;15770:88;15916:4;15898:24;;;;:9;:24;;;;;;:36;;15927:6;15898:36;:28;:36;:::i;:::-;15889:4;15871:24;;;;:9;:24;;;;;:63;15959:11;;:23;;15975:6;15959:23;:15;:23;:::i;:::-;15945:11;:37;16058:17;;16015:62;;16037:39;;:16;:6;16048:4;16037:16;:10;:16;:::i;:39::-;16015:17;;;:62;:21;:62;:::i;:::-;15995:17;:82;-1:-1:-1;;16106:12:0;16088:15;:30;15403:723;:::o;7591:192::-;7677:7;7713:12;7705:6;;;;7697:29;;;;-1:-1:-1;;;7697:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7697:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7749:5:0;;;7591:192::o;9617:278::-;9703:7;9738:12;9731:5;9723:28;;;;-1:-1:-1;;;9723:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;9723:28:0;;9762:9;9778:1;9774;:5;;;;;;;9617:278;-1:-1:-1;;;;;9617:278:0:o

Swarm Source

ipfs://2c0785b1783a5d1ef39c26678d0beb9b22a08a3a2565be19e3c3a8d1afd7c20a

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.