ETH Price: $2,437.76 (+3.39%)

Contract

0x2E162fa42d723685A171a2bf64dACf901fCfC286
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Stake207414252024-09-13 11:33:4712 hrs ago1726227227IN
0x2E162fa4...01fCfC286
0 ETH0.001128652.80448229
Claim Rewards207384802024-09-13 1:43:1122 hrs ago1726191791IN
0x2E162fa4...01fCfC286
0 ETH0.000210792.46225881
Un Stake207338102024-09-12 10:02:5938 hrs ago1726135379IN
0x2E162fa4...01fCfC286
0 ETH0.000371623.80091
Claim Rewards207337932024-09-12 9:59:3538 hrs ago1726135175IN
0x2E162fa4...01fCfC286
0 ETH0.000408423.40894271
Claim Rewards207253312024-09-11 5:37:592 days ago1726033079IN
0x2E162fa4...01fCfC286
0 ETH0.000172281.67740713
Claim Rewards207032392024-09-08 3:34:595 days ago1725766499IN
0x2E162fa4...01fCfC286
0 ETH0.000123771.44574879
Claim Rewards206996252024-09-07 15:29:116 days ago1725722951IN
0x2E162fa4...01fCfC286
0 ETH0.0001951.89858752
Claim Rewards206996222024-09-07 15:28:356 days ago1725722915IN
0x2E162fa4...01fCfC286
0 ETH0.000167771.95975216
Stake206974992024-09-07 8:23:236 days ago1725697403IN
0x2E162fa4...01fCfC286
0 ETH0.001055663.99263236
Claim Rewards206974832024-09-07 8:20:116 days ago1725697211IN
0x2E162fa4...01fCfC286
0 ETH0.00035424.137481
Claim Rewards206772992024-09-04 12:44:239 days ago1725453863IN
0x2E162fa4...01fCfC286
0 ETH0.000185092.16201938
Claim Rewards206757572024-09-04 7:35:239 days ago1725435323IN
0x2E162fa4...01fCfC286
0 ETH0.00015751.53353619
Claim Rewards206684122024-09-03 6:59:2310 days ago1725346763IN
0x2E162fa4...01fCfC286
0 ETH0.00005550.64835508
Claim Rewards206607512024-09-02 5:19:4711 days ago1725254387IN
0x2E162fa4...01fCfC286
0 ETH0.000147991.08093618
Stake206508982024-08-31 20:19:5913 days ago1725135599IN
0x2E162fa4...01fCfC286
0 ETH0.000323561.14946406
Stake206449302024-08-31 0:19:4714 days ago1725063587IN
0x2E162fa4...01fCfC286
0 ETH0.00044231.57113665
Claim Rewards206423172024-08-30 15:34:1114 days ago1725032051IN
0x2E162fa4...01fCfC286
0 ETH0.000674817.88241077
Stake206403412024-08-30 8:56:3514 days ago1725008195IN
0x2E162fa4...01fCfC286
0 ETH0.00050881.54745488
Claim Rewards206339952024-08-29 11:39:1115 days ago1724931551IN
0x2E162fa4...01fCfC286
0 ETH0.000211472.47020632
Claim Rewards206339182024-08-29 11:23:4715 days ago1724930627IN
0x2E162fa4...01fCfC286
0 ETH0.000188862.20614597
Stake206334292024-08-29 9:44:4715 days ago1724924687IN
0x2E162fa4...01fCfC286
0 ETH0.000462341.74869904
Stake206332282024-08-29 9:04:3515 days ago1724922275IN
0x2E162fa4...01fCfC286
0 ETH0.00052341.97975369
Claim Rewards206331892024-08-29 8:56:4715 days ago1724921807IN
0x2E162fa4...01fCfC286
0 ETH0.000229171.91282455
Claim Rewards206256062024-08-28 7:30:5916 days ago1724830259IN
0x2E162fa4...01fCfC286
0 ETH0.000082860.96797732
Claim Rewards206059072024-08-25 13:28:4719 days ago1724592527IN
0x2E162fa4...01fCfC286
0 ETH0.000106661.24599333
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:
AQUAStakingv2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-05-21
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
}

abstract contract Context {
    function _msgSender() internal view returns (address) {
        return msg.sender;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function _checkOwner() private view {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() external onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) external onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        _status = _NOT_ENTERED;
    }

    function _reentrancyGuardEntered() private view returns (bool) {
        return _status == _ENTERED;
    }
}

contract AQUAStakingv2 is Ownable, ReentrancyGuard {
    struct PoolInfo {
        uint256 lockupDuration;
        uint256 returnPer;
    }
    struct OrderInfo {
        address beneficiary;
        uint256 amount;
        uint256 lockupDuration;
        uint256 returnPer;
        uint256 starttime;
        uint256 endtime;
        uint256 claimedReward;
        bool claimed;
    }
    uint256 private constant _1Year =  365 days ; 
    uint256 private constant _days365 = 365 days; 
    IERC20 public AQUA;
    IERC20 public sAQUA;

    bool private started = true;
    uint256 private latestOrderId = 0;
    uint256 public totalStakers;
    uint256 public totalStaked;
    uint256 public currentStaked;

    mapping(uint256 => PoolInfo) public pooldata;
    mapping(address => uint256) public balanceOf;
    mapping(address => uint256) public totalRewardEarn;
    mapping(uint256 => OrderInfo) public orders;
    mapping(address => uint256[]) private orderIds;
    mapping(address => mapping(uint256 => bool)) public hasStaked;
    mapping(uint256 => uint256) public stakeOnPool;
    mapping(uint256 => uint256) public rewardOnPool;
    mapping(uint256 => uint256) public stakersPlan;

    event Deposit(
        address indexed user,
        uint256 indexed lockupDuration,
        uint256 amount,
        uint256 returnPer
    );
    event Withdraw(
        address indexed user,
        uint256 amount,
        uint256 reward,
        uint256 total
    );
    event WithdrawAll(address indexed user, uint256 amount);
    event RewardClaimed(address indexed user, uint256 reward);

    constructor(
        address _aquaAddress,
        address _saquaAddress,
        uint256 _apy
    ) {
        AQUA = IERC20(_aquaAddress);
        sAQUA = IERC20(_saquaAddress);
        pooldata[1].lockupDuration = _1Year;
        pooldata[1].returnPer = _apy;
    }

    function stake(uint256 _amount, uint256 _lockupDuration) external {
        PoolInfo storage pool = pooldata[_lockupDuration];
        require(
            pool.lockupDuration > 0,
            "AQUAStaking: asked pool does not exist"
        );
        require(started, "AQUAStaking: staking not yet started");
        require(_amount > 0, "AQUAStaking: stake amount must be non zero");
        require(
            AQUA.transferFrom(_msgSender(), address(this), _amount),
            "AQUAStaking: AQUA transferFrom via deposit not succeeded"
        );

        orders[++latestOrderId] = OrderInfo(
            _msgSender(),
            _amount,
            pool.lockupDuration,
            pool.returnPer,
            block.timestamp,
            block.timestamp + pool.lockupDuration,
            0,
            false
        );

        if (!hasStaked[msg.sender][_lockupDuration]) {
            stakersPlan[_lockupDuration] = stakersPlan[_lockupDuration] + 1;
            totalStakers = totalStakers + 1;
        }

        //updating staking status

        hasStaked[msg.sender][_lockupDuration] = true;
        stakeOnPool[_lockupDuration] = stakeOnPool[_lockupDuration] + _amount;
        totalStaked = totalStaked + _amount;
        currentStaked = currentStaked + _amount;
        balanceOf[_msgSender()] += _amount;
        orderIds[_msgSender()].push(latestOrderId);
        emit Deposit(
            _msgSender(),
            pool.lockupDuration,
            _amount,
            pool.returnPer
        );
    }

    function unStake(uint256 orderId) external nonReentrant {
        require(
            orderId <= latestOrderId,
            "AQUAStaking: INVALID orderId, orderId greater than latestOrderId"
        );

        OrderInfo storage orderInfo = orders[orderId];
        require(
            _msgSender() == orderInfo.beneficiary,
            "AQUAStaking: caller is not the beneficiary"
        );
        require(!orderInfo.claimed, "AQUAStaking: order already unstaked");
        uint256 total = orderInfo.amount ;
        balanceOf[_msgSender()] -= orderInfo.amount;
        currentStaked = currentStaked - orderInfo.amount ;
        orderInfo.claimed = true;

        require(
            AQUA.transfer(address(_msgSender()), total),
            "AQUAStaking: AQUA transfer via withdraw not succeeded"
        );
        emit Withdraw(_msgSender(), orderInfo.amount, total, total);
    }

    function claimRewards(uint256 orderId) external nonReentrant {
        require(
            orderId <= latestOrderId,
            "AQUAStaking: INVALID orderId, orderId greater than latestOrderId"
        );

        OrderInfo storage orderInfo = orders[orderId];
        require(
            _msgSender() == orderInfo.beneficiary,
            "AQUAStaking: caller is not the beneficiary"
        );

        uint256 claimAvailable = pendingRewards(orderId);
        totalRewardEarn[_msgSender()] += claimAvailable;

        orderInfo.claimedReward += claimAvailable;

        require(
            sAQUA.transfer(address(_msgSender()), claimAvailable),
            "AQUAStaking: sAQUA transfer via claim rewards not succeeded"
        );
        rewardOnPool[orderInfo.lockupDuration] =
            rewardOnPool[orderInfo.lockupDuration] +
            claimAvailable;
        emit RewardClaimed(address(_msgSender()), claimAvailable);
    }

    function pendingRewards(uint256 orderId) public view returns (uint256) {
        require(
            orderId <= latestOrderId,
            "AQUAStaking: INVALID orderId, orderId greater than latestOrderId"
        );

        OrderInfo storage orderInfo = orders[orderId];
        if (!orderInfo.claimed) {
            if (block.timestamp >= orderInfo.endtime) {
                uint256 APY = (orderInfo.amount * orderInfo.returnPer) / 100;
                uint256 reward = (APY * orderInfo.lockupDuration) / _days365;
                uint256 claimAvailable = reward - orderInfo.claimedReward;
                return claimAvailable;
            } else {
                uint256 stakeTime = block.timestamp - orderInfo.starttime;
                uint256 APY = (orderInfo.amount * orderInfo.returnPer) / 100;
                uint256 reward = (APY * stakeTime) / _days365;
                uint256 claimAvailableNow = reward - orderInfo.claimedReward;
                return claimAvailableNow;
            }
        } else {
            return 0;
        }
    }

    function setPlansApy(uint256 plan1Apy) external onlyOwner {
        pooldata[1].returnPer = plan1Apy;
    }

    function toggleStaking(bool _start) external onlyOwner returns (bool) {
        started = _start;
        return true;
    }

    function investorOrderIds(address investor)
        external
        view
        returns (uint256[] memory ids)
    {
        uint256[] memory arr = orderIds[investor];
        return arr;
    }

    function withdrawERC20(address _token) external onlyOwner {
        IERC20 withdraw_token = IERC20(_token);
        uint256 balance = withdraw_token.balanceOf(address(this));
        uint256 withdrawToken = balance - currentStaked ;
        require(
            withdraw_token.transfer(msg.sender, withdrawToken),
            "withdraw_token transfer failed"
        );
    }


   function withdrawAllTokens() external nonReentrant {
    uint256[] storage userOrderIds = orderIds[_msgSender()];
    uint256 totalStakedAmount;

    for (uint256 i = 0; i < userOrderIds.length; i++) {
        uint256 orderId = userOrderIds[i];
        OrderInfo storage orderInfo = orders[orderId];

        // Ensure order is not already unstaked
        require(!orderInfo.claimed, "AQUAStaking: order already unstaked");

       
        
        totalStakedAmount += orderInfo.amount;

        // Mark order as claimed
        orderInfo.claimed = true;

        // Emit event for tokens withdrawn
        emit Withdraw(_msgSender(), orderInfo.amount, orderInfo.amount, orderInfo.amount);
    }

    // Transfer total staked amount back to user
      
    require(
        AQUA.transfer(_msgSender(), totalStakedAmount),
        "AQUAStaking: AQUA transfer via withdraw not succeeded"
    );

    currentStaked = currentStaked - totalStakedAmount;
    balanceOf[_msgSender()] -= totalStakedAmount;

    // Emit event for successful withdrawal
    emit WithdrawAll(_msgSender(), totalStakedAmount);
}

  function claimAllRemainingRewards() external nonReentrant {
    uint256[] storage userOrderIds = orderIds[_msgSender()];
    uint256 totalRewards;

    for (uint256 i = 0; i < userOrderIds.length; i++) {
        uint256 orderId = userOrderIds[i];
        OrderInfo storage orderInfo = orders[orderId];

        // Ensure order is not already claimed
        require(!orderInfo.claimed, "AQUAStaking: order already claimed");

        // Calculate and accumulate remaining rewards
        uint256 claimAvailable = pendingRewards(orderId);
        totalRewards += claimAvailable;
        orderInfo.claimedReward += claimAvailable;
        rewardOnPool[orderInfo.lockupDuration] += claimAvailable;

        // Emit event for reward claimed
        emit RewardClaimed(_msgSender(), claimAvailable);
    }

    // Transfer total rewards to user
    require(
        sAQUA.transfer(_msgSender(), totalRewards),
        "AQUAStaking: sAQUA transfer via claim rewards not succeeded"
    );

    // Emit event for successful reward claim
    emit RewardClaimed(_msgSender(), totalRewards);
}

function viewTotalPendingRewards(address user) external view returns (uint256) {
    uint256[] storage userOrderIds = orderIds[user];
    uint256 totalPendingRewards;

    for (uint256 i = 0; i < userOrderIds.length; i++) {
        uint256 orderId = userOrderIds[i];
        totalPendingRewards += pendingRewards(orderId);
    }

    return totalPendingRewards;
}


}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_aquaAddress","type":"address"},{"internalType":"address","name":"_saquaAddress","type":"address"},{"internalType":"uint256","name":"_apy","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnPer","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"total","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawAll","type":"event"},{"inputs":[],"name":"AQUA","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimAllRemainingRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"hasStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"investorOrderIds","outputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"internalType":"uint256","name":"returnPer","type":"uint256"},{"internalType":"uint256","name":"starttime","type":"uint256"},{"internalType":"uint256","name":"endtime","type":"uint256"},{"internalType":"uint256","name":"claimedReward","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pooldata","outputs":[{"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"internalType":"uint256","name":"returnPer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardOnPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sAQUA","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"plan1Apy","type":"uint256"}],"name":"setPlansApy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_lockupDuration","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakeOnPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakersPlan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_start","type":"bool"}],"name":"toggleStaking","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalRewardEarn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"unStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"viewTotalPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAllTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526003805460ff60a01b1916600160a01b17905560006004553480156200002957600080fd5b5060405162001be938038062001be98339810160408190526200004c9162000150565b6200005733620000e3565b6001808055600280546001600160a01b039586166001600160a01b031991821617909155600380549490951693169290921790925560005260086020526301e133807fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f557fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac5605562000191565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014b57600080fd5b919050565b6000806000606084860312156200016657600080fd5b620001718462000133565b9250620001816020850162000133565b9150604084015190509250925092565b611a4880620001a16000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80637b0472f0116100f9578063b9b2cf9611610097578063f2fde38b11610071578063f2fde38b1461044d578063f4f3b20014610460578063fa1e151414610473578063fce50f171461049357600080fd5b8063b9b2cf96146103f9578063da4b2e751461040c578063e8becf021461043a57600080fd5b806386989038116100d3578063869890381461031a5780638da5cb5b14610323578063a85c38ef14610334578063aa604947146103d957600080fd5b80637b0472f0146102eb5780637dcb2abf146102fe578063817b1cd21461031157600080fd5b80635d3eea91116101665780636980598111610140578063698059811461028057806370a08231146102a3578063715018a6146102c3578063799102a2146102cb57600080fd5b80635d3eea911461025157806363fccba914610264578063695464e91461027757600080fd5b80630962ef79146101ae5780631a6c5e7e146101c35780631ec9d10f146101f6578063280da6fa146101fe5780632c26afae14610206578063336a57f314610226575b600080fd5b6101c16101bc366004611688565b6104cf565b005b6101e36101d1366004611688565b600f6020526000908152604090205481565b6040519081526020015b60405180910390f35b6101c16106b4565b6101c16108f2565b6101e3610214366004611688565b60106020526000908152604090205481565b600354610239906001600160a01b031681565b6040516001600160a01b0390911681526020016101ed565b6101c161025f366004611688565b610b02565b600254610239906001600160a01b031681565b6101e360075481565b61029361028e3660046116af565b610cc7565b60405190151581526020016101ed565b6101e36102b13660046116ea565b60096020526000908152604090205481565b6101c1610cf1565b6101e36102d9366004611688565b600e6020526000908152604090205481565b6101c16102f9366004611705565b610d03565b6101e361030c366004611688565b611183565b6101e360065481565b6101e360055481565b6000546001600160a01b0316610239565b610392610342366004611688565b600b60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909160ff1688565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c0830152151560e0820152610100016101ed565b6103ec6103e73660046116ea565b6112aa565b6040516101ed9190611727565b6101c1610407366004611688565b611316565b61029361041a36600461176b565b600d60209081526000928352604080842090915290825290205460ff1681565b6101e36104483660046116ea565b61134c565b6101c161045b3660046116ea565b6113c2565b6101c161046e3660046116ea565b611438565b6101e36104813660046116ea565b600a6020526000908152604090205481565b6104ba6104a1366004611688565b6008602052600090815260409020805460019091015482565b604080519283526020830191909152016101ed565b6104d7611585565b6004548111156105025760405162461bcd60e51b81526004016104f990611795565b60405180910390fd5b6000818152600b6020526040902080546001600160a01b0316336001600160a01b0316146105425760405162461bcd60e51b81526004016104f9906117f3565b600061054d83611183565b336000908152600a6020526040812080549293508392909190610571908490611853565b925050819055508082600601600082825461058c9190611853565b90915550506003546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610614919061186c565b6106305760405162461bcd60e51b81526004016104f990611889565b60028201546000908152600f602052604090205461064f908290611853565b60028301546000908152600f6020526040902055336001600160a01b03167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f72418260405161069e91815260200190565b60405180910390a250506106b160018055565b50565b6106bc611585565b336000908152600c6020526040812090805b825481101561080f5760008382815481106106eb576106eb6118e6565b6000918252602080832090910154808352600b909152604090912060078101549192509060ff161561076a5760405162461bcd60e51b815260206004820152602260248201527f415155415374616b696e673a206f7264657220616c726561647920636c61696d604482015261195960f21b60648201526084016104f9565b600061077583611183565b90506107818186611853565b9450808260060160008282546107979190611853565b909155505060028201546000908152600f6020526040812080548392906107bf908490611853565b909155505060405181815233907f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f72419060200160405180910390a25050508080610807906118fc565b9150506106ce565b506003546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561086f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610893919061186c565b6108af5760405162461bcd60e51b81526004016104f990611889565b60405181815233907f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241906020015b60405180910390a250506108f060018055565b565b6108fa611585565b336000908152600c6020526040812090805b82548110156109fb576000838281548110610929576109296118e6565b6000918252602080832090910154808352600b909152604090912060078101549192509060ff161561096d5760405162461bcd60e51b81526004016104f990611915565b600181015461097c9085611853565b60078201805460ff1916600117905593506109943390565b6001820154604080518281526020810183905280820192909252516001600160a01b0392909216917f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca949181900360600190a2505080806109f3906118fc565b91505061090c565b506002546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7f919061186c565b610a9b5760405162461bcd60e51b81526004016104f990611958565b80600754610aa991906119ad565b6007553360009081526009602052604081208054839290610acb9084906119ad565b909155505060405181815233907fd7a4aa9f3dca5f6606ac15d7e1850920201bbb02c38cd986793779f58ae0dfd3906020016108dd565b610b0a611585565b600454811115610b2c5760405162461bcd60e51b81526004016104f990611795565b6000818152600b6020526040902080546001600160a01b0316336001600160a01b031614610b6c5760405162461bcd60e51b81526004016104f9906117f3565b600781015460ff1615610b915760405162461bcd60e51b81526004016104f990611915565b60018101543360009081526009602052604081208054839290610bb59084906119ad565b90915550506001820154600754610bcc91906119ad565b60079081558201805460ff191660011790556002546001600160a01b031663a9059cbb610bf63390565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c67919061186c565b610c835760405162461bcd60e51b81526004016104f990611958565b60018201546040805191825260208201839052810182905233907f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca949060600161069e565b6000610cd16115de565b506003805460ff60a01b1916600160a01b8315150217905560015b919050565b610cf96115de565b6108f06000611638565b60008181526008602052604090208054610d6e5760405162461bcd60e51b815260206004820152602660248201527f415155415374616b696e673a2061736b656420706f6f6c20646f6573206e6f7460448201526508195e1a5cdd60d21b60648201526084016104f9565b600354600160a01b900460ff16610dd35760405162461bcd60e51b8152602060048201526024808201527f415155415374616b696e673a207374616b696e67206e6f7420796574207374616044820152631c9d195960e21b60648201526084016104f9565b60008311610e365760405162461bcd60e51b815260206004820152602a60248201527f415155415374616b696e673a207374616b6520616d6f756e74206d757374206260448201526965206e6f6e207a65726f60b01b60648201526084016104f9565b6002546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018690526064016020604051808303816000875af1158015610e9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebf919061186c565b610f315760405162461bcd60e51b815260206004820152603860248201527f415155415374616b696e673a2041515541207472616e7366657246726f6d207660448201527f6961206465706f736974206e6f7420737563636565646564000000000000000060648201526084016104f9565b604051806101000160405280610f443390565b6001600160a01b031681526020018481526020018260000154815260200182600101548152602001428152602001826000015442610f829190611853565b81526020016000815260200160001515815250600b6000600460008154610fa8906118fc565b9182905550815260208082019290925260409081016000908120845181546001600160a01b0319166001600160a01b03909116178155848401516001820155848301516002820155606085015160038201556080850151600482015560a0850151600582015560c0850151600682015560e0909401516007909401805460ff191694151594909417909355338352600d825280832085845290915290205460ff1661108857600082815260106020526040902054611067906001611853565b600083815260106020526040902055600554611084906001611853565b6005555b336000908152600d602090815260408083208584528252808320805460ff19166001179055600e9091529020546110c0908490611853565b6000838152600e60205260409020556006546110dd908490611853565b6006556007546110ee908490611853565b6007553360009081526009602052604081208054859290611110908490611853565b9091555050336000818152600c6020908152604080832060045481546001808201845592865294849020909401939093558454928501548151888152928301529192917f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e910160405180910390a3505050565b60006004548211156111a75760405162461bcd60e51b81526004016104f990611795565b6000828152600b60205260409020600781015460ff166112a1578060050154421061122f5760006064826003015483600101546111e491906119c0565b6111ee91906119d7565b905060006301e1338083600201548361120791906119c0565b61121191906119d7565b9050600083600601548261122591906119ad565b9695505050505050565b600081600401544261124191906119ad565b9050600060648360030154846001015461125b91906119c0565b61126591906119d7565b905060006301e1338061127884846119c0565b61128291906119d7565b9050600084600601548261129691906119ad565b979650505050505050565b50600092915050565b6001600160a01b0381166000908152600c6020908152604080832080548251818502810185019093528083526060949383018282801561130957602002820191906000526020600020905b8154815260200190600101908083116112f5575b5093979650505050505050565b61131e6115de565b600160005260086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac56055565b6001600160a01b0381166000908152600c6020526040812081805b82548110156113ba576000838281548110611384576113846118e6565b9060005260206000200154905061139a81611183565b6113a49084611853565b92505080806113b2906118fc565b915050611367565b509392505050565b6113ca6115de565b6001600160a01b03811661142f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f9565b6106b181611638565b6114406115de565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ad91906119f9565b90506000600754826114bf91906119ad565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561150f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611533919061186c565b61157f5760405162461bcd60e51b815260206004820152601e60248201527f77697468647261775f746f6b656e207472616e73666572206661696c6564000060448201526064016104f9565b50505050565b6002600154036115d75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104f9565b6002600155565b6000546001600160a01b031633146108f05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561169a57600080fd5b5035919050565b80151581146106b157600080fd5b6000602082840312156116c157600080fd5b81356116cc816116a1565b9392505050565b80356001600160a01b0381168114610cec57600080fd5b6000602082840312156116fc57600080fd5b6116cc826116d3565b6000806040838503121561171857600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561175f57835183529284019291840191600101611743565b50909695505050505050565b6000806040838503121561177e57600080fd5b611787836116d3565b946020939093013593505050565b602080825260409082018190527f415155415374616b696e673a20494e56414c4944206f7264657249642c206f72908201527f64657249642067726561746572207468616e206c61746573744f726465724964606082015260800190565b6020808252602a908201527f415155415374616b696e673a2063616c6c6572206973206e6f74207468652062604082015269656e656669636961727960b01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156118665761186661183d565b92915050565b60006020828403121561187e57600080fd5b81516116cc816116a1565b6020808252603b908201527f415155415374616b696e673a207341515541207472616e73666572207669612060408201527f636c61696d2072657761726473206e6f74207375636365656465640000000000606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161190e5761190e61183d565b5060010190565b60208082526023908201527f415155415374616b696e673a206f7264657220616c726561647920756e7374616040820152621ad95960ea1b606082015260800190565b60208082526035908201527f415155415374616b696e673a2041515541207472616e736665722076696120776040820152741a5d1a191c985dc81b9bdd081cdd58d8d959591959605a1b606082015260800190565b818103818111156118665761186661183d565b80820281158282048414176118665761186661183d565b6000826119f457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a0b57600080fd5b505191905056fea26469706673582212205cd2782d8f99482d0415753c9f6c7bd9a622ab22dc3a0b01b0648689741f29f364736f6c6343000813003300000000000000000000000012f9a180198d91f854f3ca23caf8be1c83ef3b760000000000000000000000004ea095f97d6eb0a8d57a5e9443fd97d63cecef730000000000000000000000000000000000000000000000000000000000000064

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80637b0472f0116100f9578063b9b2cf9611610097578063f2fde38b11610071578063f2fde38b1461044d578063f4f3b20014610460578063fa1e151414610473578063fce50f171461049357600080fd5b8063b9b2cf96146103f9578063da4b2e751461040c578063e8becf021461043a57600080fd5b806386989038116100d3578063869890381461031a5780638da5cb5b14610323578063a85c38ef14610334578063aa604947146103d957600080fd5b80637b0472f0146102eb5780637dcb2abf146102fe578063817b1cd21461031157600080fd5b80635d3eea91116101665780636980598111610140578063698059811461028057806370a08231146102a3578063715018a6146102c3578063799102a2146102cb57600080fd5b80635d3eea911461025157806363fccba914610264578063695464e91461027757600080fd5b80630962ef79146101ae5780631a6c5e7e146101c35780631ec9d10f146101f6578063280da6fa146101fe5780632c26afae14610206578063336a57f314610226575b600080fd5b6101c16101bc366004611688565b6104cf565b005b6101e36101d1366004611688565b600f6020526000908152604090205481565b6040519081526020015b60405180910390f35b6101c16106b4565b6101c16108f2565b6101e3610214366004611688565b60106020526000908152604090205481565b600354610239906001600160a01b031681565b6040516001600160a01b0390911681526020016101ed565b6101c161025f366004611688565b610b02565b600254610239906001600160a01b031681565b6101e360075481565b61029361028e3660046116af565b610cc7565b60405190151581526020016101ed565b6101e36102b13660046116ea565b60096020526000908152604090205481565b6101c1610cf1565b6101e36102d9366004611688565b600e6020526000908152604090205481565b6101c16102f9366004611705565b610d03565b6101e361030c366004611688565b611183565b6101e360065481565b6101e360055481565b6000546001600160a01b0316610239565b610392610342366004611688565b600b60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909160ff1688565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c0830152151560e0820152610100016101ed565b6103ec6103e73660046116ea565b6112aa565b6040516101ed9190611727565b6101c1610407366004611688565b611316565b61029361041a36600461176b565b600d60209081526000928352604080842090915290825290205460ff1681565b6101e36104483660046116ea565b61134c565b6101c161045b3660046116ea565b6113c2565b6101c161046e3660046116ea565b611438565b6101e36104813660046116ea565b600a6020526000908152604090205481565b6104ba6104a1366004611688565b6008602052600090815260409020805460019091015482565b604080519283526020830191909152016101ed565b6104d7611585565b6004548111156105025760405162461bcd60e51b81526004016104f990611795565b60405180910390fd5b6000818152600b6020526040902080546001600160a01b0316336001600160a01b0316146105425760405162461bcd60e51b81526004016104f9906117f3565b600061054d83611183565b336000908152600a6020526040812080549293508392909190610571908490611853565b925050819055508082600601600082825461058c9190611853565b90915550506003546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610614919061186c565b6106305760405162461bcd60e51b81526004016104f990611889565b60028201546000908152600f602052604090205461064f908290611853565b60028301546000908152600f6020526040902055336001600160a01b03167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f72418260405161069e91815260200190565b60405180910390a250506106b160018055565b50565b6106bc611585565b336000908152600c6020526040812090805b825481101561080f5760008382815481106106eb576106eb6118e6565b6000918252602080832090910154808352600b909152604090912060078101549192509060ff161561076a5760405162461bcd60e51b815260206004820152602260248201527f415155415374616b696e673a206f7264657220616c726561647920636c61696d604482015261195960f21b60648201526084016104f9565b600061077583611183565b90506107818186611853565b9450808260060160008282546107979190611853565b909155505060028201546000908152600f6020526040812080548392906107bf908490611853565b909155505060405181815233907f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f72419060200160405180910390a25050508080610807906118fc565b9150506106ce565b506003546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561086f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610893919061186c565b6108af5760405162461bcd60e51b81526004016104f990611889565b60405181815233907f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241906020015b60405180910390a250506108f060018055565b565b6108fa611585565b336000908152600c6020526040812090805b82548110156109fb576000838281548110610929576109296118e6565b6000918252602080832090910154808352600b909152604090912060078101549192509060ff161561096d5760405162461bcd60e51b81526004016104f990611915565b600181015461097c9085611853565b60078201805460ff1916600117905593506109943390565b6001820154604080518281526020810183905280820192909252516001600160a01b0392909216917f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca949181900360600190a2505080806109f3906118fc565b91505061090c565b506002546001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7f919061186c565b610a9b5760405162461bcd60e51b81526004016104f990611958565b80600754610aa991906119ad565b6007553360009081526009602052604081208054839290610acb9084906119ad565b909155505060405181815233907fd7a4aa9f3dca5f6606ac15d7e1850920201bbb02c38cd986793779f58ae0dfd3906020016108dd565b610b0a611585565b600454811115610b2c5760405162461bcd60e51b81526004016104f990611795565b6000818152600b6020526040902080546001600160a01b0316336001600160a01b031614610b6c5760405162461bcd60e51b81526004016104f9906117f3565b600781015460ff1615610b915760405162461bcd60e51b81526004016104f990611915565b60018101543360009081526009602052604081208054839290610bb59084906119ad565b90915550506001820154600754610bcc91906119ad565b60079081558201805460ff191660011790556002546001600160a01b031663a9059cbb610bf63390565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c67919061186c565b610c835760405162461bcd60e51b81526004016104f990611958565b60018201546040805191825260208201839052810182905233907f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca949060600161069e565b6000610cd16115de565b506003805460ff60a01b1916600160a01b8315150217905560015b919050565b610cf96115de565b6108f06000611638565b60008181526008602052604090208054610d6e5760405162461bcd60e51b815260206004820152602660248201527f415155415374616b696e673a2061736b656420706f6f6c20646f6573206e6f7460448201526508195e1a5cdd60d21b60648201526084016104f9565b600354600160a01b900460ff16610dd35760405162461bcd60e51b8152602060048201526024808201527f415155415374616b696e673a207374616b696e67206e6f7420796574207374616044820152631c9d195960e21b60648201526084016104f9565b60008311610e365760405162461bcd60e51b815260206004820152602a60248201527f415155415374616b696e673a207374616b6520616d6f756e74206d757374206260448201526965206e6f6e207a65726f60b01b60648201526084016104f9565b6002546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018690526064016020604051808303816000875af1158015610e9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebf919061186c565b610f315760405162461bcd60e51b815260206004820152603860248201527f415155415374616b696e673a2041515541207472616e7366657246726f6d207660448201527f6961206465706f736974206e6f7420737563636565646564000000000000000060648201526084016104f9565b604051806101000160405280610f443390565b6001600160a01b031681526020018481526020018260000154815260200182600101548152602001428152602001826000015442610f829190611853565b81526020016000815260200160001515815250600b6000600460008154610fa8906118fc565b9182905550815260208082019290925260409081016000908120845181546001600160a01b0319166001600160a01b03909116178155848401516001820155848301516002820155606085015160038201556080850151600482015560a0850151600582015560c0850151600682015560e0909401516007909401805460ff191694151594909417909355338352600d825280832085845290915290205460ff1661108857600082815260106020526040902054611067906001611853565b600083815260106020526040902055600554611084906001611853565b6005555b336000908152600d602090815260408083208584528252808320805460ff19166001179055600e9091529020546110c0908490611853565b6000838152600e60205260409020556006546110dd908490611853565b6006556007546110ee908490611853565b6007553360009081526009602052604081208054859290611110908490611853565b9091555050336000818152600c6020908152604080832060045481546001808201845592865294849020909401939093558454928501548151888152928301529192917f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e910160405180910390a3505050565b60006004548211156111a75760405162461bcd60e51b81526004016104f990611795565b6000828152600b60205260409020600781015460ff166112a1578060050154421061122f5760006064826003015483600101546111e491906119c0565b6111ee91906119d7565b905060006301e1338083600201548361120791906119c0565b61121191906119d7565b9050600083600601548261122591906119ad565b9695505050505050565b600081600401544261124191906119ad565b9050600060648360030154846001015461125b91906119c0565b61126591906119d7565b905060006301e1338061127884846119c0565b61128291906119d7565b9050600084600601548261129691906119ad565b979650505050505050565b50600092915050565b6001600160a01b0381166000908152600c6020908152604080832080548251818502810185019093528083526060949383018282801561130957602002820191906000526020600020905b8154815260200190600101908083116112f5575b5093979650505050505050565b61131e6115de565b600160005260086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac56055565b6001600160a01b0381166000908152600c6020526040812081805b82548110156113ba576000838281548110611384576113846118e6565b9060005260206000200154905061139a81611183565b6113a49084611853565b92505080806113b2906118fc565b915050611367565b509392505050565b6113ca6115de565b6001600160a01b03811661142f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f9565b6106b181611638565b6114406115de565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ad91906119f9565b90506000600754826114bf91906119ad565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561150f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611533919061186c565b61157f5760405162461bcd60e51b815260206004820152601e60248201527f77697468647261775f746f6b656e207472616e73666572206661696c6564000060448201526064016104f9565b50505050565b6002600154036115d75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104f9565b6002600155565b6000546001600160a01b031633146108f05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561169a57600080fd5b5035919050565b80151581146106b157600080fd5b6000602082840312156116c157600080fd5b81356116cc816116a1565b9392505050565b80356001600160a01b0381168114610cec57600080fd5b6000602082840312156116fc57600080fd5b6116cc826116d3565b6000806040838503121561171857600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561175f57835183529284019291840191600101611743565b50909695505050505050565b6000806040838503121561177e57600080fd5b611787836116d3565b946020939093013593505050565b602080825260409082018190527f415155415374616b696e673a20494e56414c4944206f7264657249642c206f72908201527f64657249642067726561746572207468616e206c61746573744f726465724964606082015260800190565b6020808252602a908201527f415155415374616b696e673a2063616c6c6572206973206e6f74207468652062604082015269656e656669636961727960b01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156118665761186661183d565b92915050565b60006020828403121561187e57600080fd5b81516116cc816116a1565b6020808252603b908201527f415155415374616b696e673a207341515541207472616e73666572207669612060408201527f636c61696d2072657761726473206e6f74207375636365656465640000000000606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161190e5761190e61183d565b5060010190565b60208082526023908201527f415155415374616b696e673a206f7264657220616c726561647920756e7374616040820152621ad95960ea1b606082015260800190565b60208082526035908201527f415155415374616b696e673a2041515541207472616e736665722076696120776040820152741a5d1a191c985dc81b9bdd081cdd58d8d959591959605a1b606082015260800190565b818103818111156118665761186661183d565b80820281158282048414176118665761186661183d565b6000826119f457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a0b57600080fd5b505191905056fea26469706673582212205cd2782d8f99482d0415753c9f6c7bd9a622ab22dc3a0b01b0648689741f29f364736f6c63430008130033

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

00000000000000000000000012f9a180198d91f854f3ca23caf8be1c83ef3b760000000000000000000000004ea095f97d6eb0a8d57a5e9443fd97d63cecef730000000000000000000000000000000000000000000000000000000000000064

-----Decoded View---------------
Arg [0] : _aquaAddress (address): 0x12f9A180198D91F854f3ca23CaF8BE1C83eF3B76
Arg [1] : _saquaAddress (address): 0x4eA095f97d6eB0A8D57a5E9443fd97D63cECeF73
Arg [2] : _apy (uint256): 100

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000012f9a180198d91f854f3ca23caf8be1c83ef3b76
Arg [1] : 0000000000000000000000004ea095f97d6eb0a8d57a5e9443fd97d63cecef73
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000064


Deployed Bytecode Sourcemap

2330:9979:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6754:965;;;;;;:::i;:::-;;:::i;:::-;;3453:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;345:25:1;;;333:2;318:18;3453:47:0;;;;;;;;10814:1111;;;:::i;9671:1137::-;;;:::i;3507:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;2864:19;;;;;-1:-1:-1;;;;;2864:19:0;;;;;;-1:-1:-1;;;;;558:32:1;;;540:51;;528:2;513:18;2864:19:0;381:216:1;5836:910:0;;;;;;:::i;:::-;;:::i;2839:18::-;;;;;-1:-1:-1;;;;;2839:18:0;;;3033:28;;;;;;8934:127;;;;;;:::i;:::-;;:::i;:::-;;;1136:14:1;;1129:22;1111:41;;1099:2;1084:18;8934:127:0;971:187:1;3121:44:0;;;;;;:::i;:::-;;;;;;;;;;;;;;1089:97;;;:::i;3400:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;4259:1569;;;;;;:::i;:::-;;:::i;7727:1082::-;;;;;;:::i;:::-;;:::i;3000:26::-;;;;;;2966:27;;;;;;871:79;909:7;936:6;-1:-1:-1;;;;;936:6:0;871:79;;3229:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3229:43:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2348:32:1;;;2330:51;;2412:2;2397:18;;2390:34;;;;2440:18;;;2433:34;;;;2498:2;2483:18;;2476:34;;;;2541:3;2526:19;;2519:35;2368:3;2570:19;;2563:35;2629:3;2614:19;;2607:35;2686:14;2679:22;2673:3;2658:19;;2651:51;2317:3;2302:19;3229:43:0;1993:715:1;9069:202:0;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8817:109::-;;;;;;:::i;:::-;;:::i;3332:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;11929:373;;;;;;:::i;:::-;;:::i;1194:232::-;;;;;;:::i;:::-;;:::i;9279:383::-;;;;;;:::i;:::-;;:::i;3172:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;3070:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3783:25:1;;;3839:2;3824:18;;3817:34;;;;3756:18;3070:44:0;3609:248:1;6754:965:0;1888:21;:19;:21::i;:::-;6859:13:::1;;6848:7;:24;;6826:138;;;;-1:-1:-1::0;;;6826:138:0::1;;;;;;;:::i;:::-;;;;;;;;;6977:27;7007:15:::0;;;:6:::1;:15;::::0;;;;7071:21;;-1:-1:-1;;;;;7071:21:0::1;508:10:::0;-1:-1:-1;;;;;7055:37:0::1;;7033:129;;;;-1:-1:-1::0;;;7033:129:0::1;;;;;;;:::i;:::-;7175:22;7200:23;7215:7;7200:14;:23::i;:::-;508:10:::0;7234:29:::1;::::0;;;:15:::1;:29;::::0;;;;:47;;7175:48;;-1:-1:-1;7175:48:0;;7234:29;;;:47:::1;::::0;7175:48;;7234:47:::1;:::i;:::-;;;;;;;;7321:14;7294:9;:23;;;:41;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7370:5:0::1;::::0;-1:-1:-1;;;;;7370:5:0::1;:14;508:10:::0;7370:53:::1;::::0;-1:-1:-1;;;;;;7370:53:0::1;::::0;;;;;;-1:-1:-1;;;;;5160:32:1;;;7370:53:0::1;::::0;::::1;5142:51:1::0;5209:18;;;5202:34;;;5115:18;;7370:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7348:162;;;;-1:-1:-1::0;;;7348:162:0::1;;;;;;;:::i;:::-;7588:24;::::0;::::1;::::0;7575:38:::1;::::0;;;:12:::1;:38;::::0;;;;;:68:::1;::::0;7629:14;;7575:68:::1;:::i;:::-;7534:24;::::0;::::1;::::0;7521:38:::1;::::0;;;:12:::1;:38;::::0;;;;:122;508:10;-1:-1:-1;;;;;7659:52:0::1;;7696:14;7659:52;;;;345:25:1::0;;333:2;318:18;;199:177;7659:52:0::1;;;;;;;;6815:904;;1932:20:::0;1704:1;2177:22;;2128:79;1932:20;6754:965;:::o;10814:1111::-;1888:21;:19;:21::i;:::-;508:10;10879:30:::1;10912:22:::0;;;:8:::1;:22;::::0;;;;;10879:30;10970:663:::1;10994:19:::0;;10990:23;::::1;10970:663;;;11031:15;11049:12;11062:1;11049:15;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;11105;;;:6:::1;:15:::0;;;;;;;11190:17:::1;::::0;::::1;::::0;11049:15;;-1:-1:-1;11105:15:0;11190:17:::1;;11189:18;11181:65;;;::::0;-1:-1:-1;;;11181:65:0;;6259:2:1;11181:65:0::1;::::0;::::1;6241:21:1::0;6298:2;6278:18;;;6271:30;6337:34;6317:18;;;6310:62;-1:-1:-1;;;6388:18:1;;;6381:32;6430:19;;11181:65:0::1;6057:398:1::0;11181:65:0::1;11314:22;11339:23;11354:7;11339:14;:23::i;:::-;11314:48:::0;-1:-1:-1;11373:30:0::1;11314:48:::0;11373:30;::::1;:::i;:::-;;;11441:14;11414:9;:23;;;:41;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;11479:24:0::1;::::0;::::1;::::0;11466:38:::1;::::0;;;:12:::1;:38;::::0;;;;:56;;11508:14;;11466:38;:56:::1;::::0;11508:14;;11466:56:::1;:::i;:::-;::::0;;;-1:-1:-1;;11582:43:0::1;::::0;345:25:1;;;508:10:0;;11582:43:::1;::::0;333:2:1;318:18;11582:43:0::1;;;;;;;11020:613;;;11015:3;;;;;:::i;:::-;;;;10970:663;;;-1:-1:-1::0;11698:5:0::1;::::0;-1:-1:-1;;;;;11698:5:0::1;:14;508:10:::0;11698:42:::1;::::0;-1:-1:-1;;;;;;11698:42:0::1;::::0;;;;;;-1:-1:-1;;;;;5160:32:1;;;11698:42:0::1;::::0;::::1;5142:51:1::0;5209:18;;;5202:34;;;5115:18;;11698:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11680:139;;;;-1:-1:-1::0;;;11680:139:0::1;;;;;;;:::i;:::-;11880:41;::::0;345:25:1;;;508:10:0;;11880:41:::1;::::0;333:2:1;318:18;11880:41:0::1;;;;;;;;10872:1053;;1932:20:::0;1704:1;2177:22;;2128:79;1932:20;10814:1111::o;9671:1137::-;1888:21;:19;:21::i;:::-;508:10;9729:30:::1;9762:22:::0;;;:8:::1;:22;::::0;;;;;9729:30;9825:564:::1;9849:19:::0;;9845:23;::::1;9825:564;;;9886:15;9904:12;9917:1;9904:15;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;9960;;;:6:::1;:15:::0;;;;;;;10046:17:::1;::::0;::::1;::::0;9904:15;;-1:-1:-1;9960:15:0;10046:17:::1;;10045:18;10037:66;;;;-1:-1:-1::0;;;10037:66:0::1;;;;;;;:::i;:::-;10156:16;::::0;::::1;::::0;10135:37:::1;::::0;;::::1;:::i;:::-;10219:17;::::0;::::1;:24:::0;;-1:-1:-1;;10219:24:0::1;10239:4;10219:24;::::0;;10135:37;-1:-1:-1;10314:12:0::1;508:10:::0;;436:90;10314:12:::1;10328:16;::::0;::::1;::::0;10305:76:::1;::::0;;7206:25:1;;;7262:2;7247:18;;7240:34;;;7290:18;;;7283:34;;;;10305:76:0;-1:-1:-1;;;;;10305:76:0;;;::::1;::::0;::::1;::::0;;;;7194:2:1;10305:76:0;;::::1;9875:514;;9870:3;;;;;:::i;:::-;;;;9825:564;;;-1:-1:-1::0;10473:4:0::1;::::0;-1:-1:-1;;;;;10473:4:0::1;:13;508:10:::0;10473:46:::1;::::0;-1:-1:-1;;;;;;10473:46:0::1;::::0;;;;;;-1:-1:-1;;;;;5160:32:1;;;10473:46:0::1;::::0;::::1;5142:51:1::0;5209:18;;;5202:34;;;5115:18;;10473:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10455:137;;;;-1:-1:-1::0;;;10455:137:0::1;;;;;;;:::i;:::-;10633:17;10617:13;;:33;;;;:::i;:::-;10601:13;:49:::0;508:10;10657:23:::1;::::0;;;:9:::1;:23;::::0;;;;:44;;10684:17;;10657:23;:44:::1;::::0;10684:17;;10657:44:::1;:::i;:::-;::::0;;;-1:-1:-1;;10760:44:0::1;::::0;345:25:1;;;508:10:0;;10760:44:::1;::::0;333:2:1;318:18;10760:44:0::1;199:177:1::0;5836:910:0;1888:21;:19;:21::i;:::-;5936:13:::1;;5925:7;:24;;5903:138;;;;-1:-1:-1::0;;;5903:138:0::1;;;;;;;:::i;:::-;6054:27;6084:15:::0;;;:6:::1;:15;::::0;;;;6148:21;;-1:-1:-1;;;;;6148:21:0::1;508:10:::0;-1:-1:-1;;;;;6132:37:0::1;;6110:129;;;;-1:-1:-1::0;;;6110:129:0::1;;;;;;;:::i;:::-;6259:17;::::0;::::1;::::0;::::1;;6258:18;6250:66;;;;-1:-1:-1::0;;;6250:66:0::1;;;;;;;:::i;:::-;6343:16;::::0;::::1;::::0;508:10;6327:13:::1;6371:23:::0;;;:9:::1;:23;::::0;;;;:43;;6343:16;;6327:13;6371:43:::1;::::0;6343:16;;6371:43:::1;:::i;:::-;::::0;;;-1:-1:-1;;6457:16:0::1;::::0;::::1;::::0;6441:13:::1;::::0;:32:::1;::::0;6457:16;6441:32:::1;:::i;:::-;6425:13;:48:::0;;;6485:17;::::1;:24:::0;;-1:-1:-1;;6485:24:0::1;6505:4;6485:24;::::0;;6544:4:::1;::::0;-1:-1:-1;;;;;6544:4:0::1;:13;6566:12;508:10:::0;;436:90;6566:12:::1;6544:43;::::0;-1:-1:-1;;;;;;6544:43:0::1;::::0;;;;;;-1:-1:-1;;;;;5160:32:1;;;6544:43:0::1;::::0;::::1;5142:51:1::0;5209:18;;;5202:34;;;5115:18;;6544:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6522:146;;;;-1:-1:-1::0;;;6522:146:0::1;;;;;;;:::i;:::-;6707:16;::::0;::::1;::::0;6684:54:::1;::::0;;7206:25:1;;;7262:2;7247:18;;7240:34;;;7290:18;;7283:34;;;508:10:0;;6684:54:::1;::::0;7194:2:1;7179:18;6684:54:0::1;7004:319:1::0;8934:127:0;8998:4;830:13;:11;:13::i;:::-;-1:-1:-1;9015:7:0::1;:16:::0;;-1:-1:-1;;;;9015:16:0::1;-1:-1:-1::0;;;9015:16:0;::::1;;;;::::0;;-1:-1:-1;854:1:0::1;8934:127:::0;;;:::o;1089:97::-;830:13;:11;:13::i;:::-;1148:30:::1;1175:1;1148:18;:30::i;4259:1569::-:0;4336:21;4360:25;;;:8;:25;;;;;4418:19;;4396:111;;;;-1:-1:-1;;;4396:111:0;;8085:2:1;4396:111:0;;;8067:21:1;8124:2;8104:18;;;8097:30;8163:34;8143:18;;;8136:62;-1:-1:-1;;;8214:18:1;;;8207:36;8260:19;;4396:111:0;7883:402:1;4396:111:0;4526:7;;-1:-1:-1;;;4526:7:0;;;;4518:56;;;;-1:-1:-1;;;4518:56:0;;8492:2:1;4518:56:0;;;8474:21:1;8531:2;8511:18;;;8504:30;8570:34;8550:18;;;8543:62;-1:-1:-1;;;8621:18:1;;;8614:34;8665:19;;4518:56:0;8290:400:1;4518:56:0;4603:1;4593:7;:11;4585:66;;;;-1:-1:-1;;;4585:66:0;;8897:2:1;4585:66:0;;;8879:21:1;8936:2;8916:18;;;8909:30;8975:34;8955:18;;;8948:62;-1:-1:-1;;;9026:18:1;;;9019:40;9076:19;;4585:66:0;8695:406:1;4585:66:0;4684:4;;-1:-1:-1;;;;;4684:4:0;:17;508:10;4684:55;;-1:-1:-1;;;;;;4684:55:0;;;;;;;-1:-1:-1;;;;;9364:15:1;;;4684:55:0;;;9346:34:1;4724:4:0;9396:18:1;;;9389:43;9448:18;;;9441:34;;;9281:18;;4684:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4662:161;;;;-1:-1:-1;;;4662:161:0;;9688:2:1;4662:161:0;;;9670:21:1;9727:2;9707:18;;;9700:30;9766:34;9746:18;;;9739:62;9837:26;9817:18;;;9810:54;9881:19;;4662:161:0;9486:420:1;4662:161:0;4862:250;;;;;;;;4886:12;508:10;;436:90;4886:12;-1:-1:-1;;;;;4862:250:0;;;;;4913:7;4862:250;;;;4935:4;:19;;;4862:250;;;;4969:4;:14;;;4862:250;;;;4998:15;4862:250;;;;5046:4;:19;;;5028:15;:37;;;;:::i;:::-;4862:250;;;;5080:1;4862:250;;;;5096:5;4862:250;;;;;4836:6;:23;4845:13;;4843:15;;;;;:::i;:::-;;;;;-1:-1:-1;4836:23:0;;;;;;;;;;;;;;-1:-1:-1;4836:23:0;;;:276;;;;-1:-1:-1;;;;;;4836:276:0;-1:-1:-1;;;;;4836:276:0;;;;;;;;;;-1:-1:-1;4836:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4836:276:0;;;;;;;;;;;5140:10;5130:21;;:9;:21;;;;;:38;;;;;;;;;4836:276;5130:38;5125:181;;5216:28;;;;:11;:28;;;;;;:32;;5247:1;5216:32;:::i;:::-;5185:28;;;;:11;:28;;;;;:63;5278:12;;:16;;5293:1;5278:16;:::i;:::-;5263:12;:31;5125:181;5365:10;5355:21;;;;:9;:21;;;;;;;;:38;;;;;;;;:45;;-1:-1:-1;;5355:45:0;5396:4;5355:45;;;5442:11;:28;;;;;;:38;;5473:7;;5442:38;:::i;:::-;5411:28;;;;:11;:28;;;;;:69;5505:11;;:21;;5519:7;;5505:21;:::i;:::-;5491:11;:35;5553:13;;:23;;5569:7;;5553:23;:::i;:::-;5537:13;:39;508:10;5587:23;;;;:9;:23;;;;;:34;;5614:7;;5587:23;:34;;5614:7;;5587:34;:::i;:::-;;;;-1:-1:-1;;508:10:0;5632:22;;;;:8;:22;;;;;;;;5660:13;;5632:42;;;;;;;;;;;;;;;;;;;;;;5739:19;;5795:14;;;;5690:130;;3783:25:1;;;3824:18;;;3817:34;5739:19:0;;508:10;5690:130;;3756:18:1;5690:130:0;;;;;;;4325:1503;4259:1569;;:::o;7727:1082::-;7789:7;7842:13;;7831:7;:24;;7809:138;;;;-1:-1:-1;;;7809:138:0;;;;;;;:::i;:::-;7960:27;7990:15;;;:6;:15;;;;;8021:17;;;;;;8016:786;;8078:9;:17;;;8059:15;:36;8055:695;;8116:11;8173:3;8150:9;:19;;;8131:9;:16;;;:38;;;;:::i;:::-;8130:46;;;;:::i;:::-;8116:60;;8195:14;2823:8;8219:9;:24;;;8213:3;:30;;;;:::i;:::-;8212:43;;;;:::i;:::-;8195:60;;8274:22;8308:9;:23;;;8299:6;:32;;;;:::i;:::-;8274:57;7727:1082;-1:-1:-1;;;;;;7727:1082:0:o;8055:695::-;8412:17;8450:9;:19;;;8432:15;:37;;;;:::i;:::-;8412:57;;8488:11;8545:3;8522:9;:19;;;8503:9;:16;;;:38;;;;:::i;:::-;8502:46;;;;:::i;:::-;8488:60;-1:-1:-1;8567:14:0;2823:8;8585:15;8591:9;8488:60;8585:15;:::i;:::-;8584:28;;;;:::i;:::-;8567:45;;8631:25;8668:9;:23;;;8659:6;:32;;;;:::i;:::-;8631:60;7727:1082;-1:-1:-1;;;;;;;7727:1082:0:o;8016:786::-;-1:-1:-1;8789:1:0;;7727:1082;-1:-1:-1;;7727:1082:0:o;9069:202::-;-1:-1:-1;;;;;9224:18:0;;9201:20;9224:18;;;:8;:18;;;;;;;;9201:41;;;;;;;;;;;;;;;;;9163:20;;9201;:41;;9224:18;9201:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9201:41:0;;9069:202;-1:-1:-1;;;;;;;9069:202:0:o;8817:109::-;830:13;:11;:13::i;:::-;8895:1:::1;8886:11;::::0;:8:::1;:11;::::0;:21;:32;8817:109::o;11929:373::-;-1:-1:-1;;;;;12048:14:0;;11999:7;12048:14;;;:8;:14;;;;;11999:7;;12105:159;12129:19;;12125:23;;12105:159;;;12166:15;12184:12;12197:1;12184:15;;;;;;;;:::i;:::-;;;;;;;;;12166:33;;12233:23;12248:7;12233:14;:23::i;:::-;12210:46;;;;:::i;:::-;;;12155:109;12150:3;;;;;:::i;:::-;;;;12105:159;;;-1:-1:-1;12279:19:0;11929:373;-1:-1:-1;;;11929:373:0:o;1194:232::-;830:13;:11;:13::i;:::-;-1:-1:-1;;;;;1291:22:0;::::1;1269:110;;;::::0;-1:-1:-1;;;1269:110:0;;10508:2:1;1269:110:0::1;::::0;::::1;10490:21:1::0;10547:2;10527:18;;;10520:30;10586:34;10566:18;;;10559:62;-1:-1:-1;;;10637:18:1;;;10630:36;10683:19;;1269:110:0::1;10306:402:1::0;1269:110:0::1;1390:28;1409:8;1390:18;:28::i;9279:383::-:0;830:13;:11;:13::i;:::-;9415:39:::1;::::0;-1:-1:-1;;;9415:39:0;;9448:4:::1;9415:39;::::0;::::1;540:51:1::0;9379:6:0;;9348:21:::1;::::0;-1:-1:-1;;;;;9415:24:0;::::1;::::0;::::1;::::0;513:18:1;;9415:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9397:57;;9465:21;9499:13;;9489:7;:23;;;;:::i;:::-;9546:50;::::0;-1:-1:-1;;;9546:50:0;;9570:10:::1;9546:50;::::0;::::1;5142:51:1::0;5209:18;;;5202:34;;;9465:47:0;;-1:-1:-1;;;;;;9546:23:0;::::1;::::0;::::1;::::0;5115:18:1;;9546:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9524:130;;;::::0;-1:-1:-1;;;9524:130:0;;11104:2:1;9524:130:0::1;::::0;::::1;11086:21:1::0;11143:2;11123:18;;;11116:30;11182:32;11162:18;;;11155:60;11232:18;;9524:130:0::1;10902:354:1::0;9524:130:0::1;9337:325;;;9279:383:::0;:::o;1968:152::-;1748:1;2026:7;;:19;2018:63;;;;-1:-1:-1;;;2018:63:0;;11463:2:1;2018:63:0;;;11445:21:1;11502:2;11482:18;;;11475:30;11541:33;11521:18;;;11514:61;11592:18;;2018:63:0;11261:355:1;2018:63:0;1748:1;2094:7;:18;1968:152::o;958:123::-;909:7;936:6;-1:-1:-1;;;;;936:6:0;508:10;1013:23;1005:68;;;;-1:-1:-1;;;1005:68:0;;11823:2:1;1005:68:0;;;11805:21:1;;;11842:18;;;11835:30;11901:34;11881:18;;;11874:62;11953:18;;1005:68:0;11621:356:1;1434:182:0;1499:16;1518:6;;-1:-1:-1;;;;;1535:17:0;;;-1:-1:-1;;;;;;1535:17:0;;;;;;1568:40;;1518:6;;;;;;;1568:40;;1499:16;1568:40;1488:128;1434:182;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;602:118::-;688:5;681:13;674:21;667:5;664:32;654:60;;710:1;707;700:12;725:241;781:6;834:2;822:9;813:7;809:23;805:32;802:52;;;850:1;847;840:12;802:52;889:9;876:23;908:28;930:5;908:28;:::i;:::-;955:5;725:241;-1:-1:-1;;;725:241:1:o;1163:173::-;1231:20;;-1:-1:-1;;;;;1280:31:1;;1270:42;;1260:70;;1326:1;1323;1316:12;1341:186;1400:6;1453:2;1441:9;1432:7;1428:23;1424:32;1421:52;;;1469:1;1466;1459:12;1421:52;1492:29;1511:9;1492:29;:::i;1532:248::-;1600:6;1608;1661:2;1649:9;1640:7;1636:23;1632:32;1629:52;;;1677:1;1674;1667:12;1629:52;-1:-1:-1;;1700:23:1;;;1770:2;1755:18;;;1742:32;;-1:-1:-1;1532:248:1:o;2713:632::-;2884:2;2936:21;;;3006:13;;2909:18;;;3028:22;;;2855:4;;2884:2;3107:15;;;;3081:2;3066:18;;;2855:4;3150:169;3164:6;3161:1;3158:13;3150:169;;;3225:13;;3213:26;;3294:15;;;;3259:12;;;;3186:1;3179:9;3150:169;;;-1:-1:-1;3336:3:1;;2713:632;-1:-1:-1;;;;;;2713:632:1:o;3350:254::-;3418:6;3426;3479:2;3467:9;3458:7;3454:23;3450:32;3447:52;;;3495:1;3492;3485:12;3447:52;3518:29;3537:9;3518:29;:::i;:::-;3508:39;3594:2;3579:18;;;;3566:32;;-1:-1:-1;;;3350:254:1:o;3862:428::-;4064:2;4046:21;;;4103:2;4083:18;;;4076:30;;;4142:34;4122:18;;;4115:62;4213:34;4208:2;4193:18;;4186:62;4280:3;4265:19;;3862:428::o;4295:406::-;4497:2;4479:21;;;4536:2;4516:18;;;4509:30;4575:34;4570:2;4555:18;;4548:62;-1:-1:-1;;;4641:2:1;4626:18;;4619:40;4691:3;4676:19;;4295:406::o;4706:127::-;4767:10;4762:3;4758:20;4755:1;4748:31;4798:4;4795:1;4788:15;4822:4;4819:1;4812:15;4838:125;4903:9;;;4924:10;;;4921:36;;;4937:18;;:::i;:::-;4838:125;;;;:::o;5247:245::-;5314:6;5367:2;5355:9;5346:7;5342:23;5338:32;5335:52;;;5383:1;5380;5373:12;5335:52;5415:9;5409:16;5434:28;5456:5;5434:28;:::i;5497:423::-;5699:2;5681:21;;;5738:2;5718:18;;;5711:30;5777:34;5772:2;5757:18;;5750:62;5848:29;5843:2;5828:18;;5821:57;5910:3;5895:19;;5497:423::o;5925:127::-;5986:10;5981:3;5977:20;5974:1;5967:31;6017:4;6014:1;6007:15;6041:4;6038:1;6031:15;6460:135;6499:3;6520:17;;;6517:43;;6540:18;;:::i;:::-;-1:-1:-1;6587:1:1;6576:13;;6460:135::o;6600:399::-;6802:2;6784:21;;;6841:2;6821:18;;;6814:30;6880:34;6875:2;6860:18;;6853:62;-1:-1:-1;;;6946:2:1;6931:18;;6924:33;6989:3;6974:19;;6600:399::o;7328:417::-;7530:2;7512:21;;;7569:2;7549:18;;;7542:30;7608:34;7603:2;7588:18;;7581:62;-1:-1:-1;;;7674:2:1;7659:18;;7652:51;7735:3;7720:19;;7328:417::o;7750:128::-;7817:9;;;7838:11;;;7835:37;;;7852:18;;:::i;9911:168::-;9984:9;;;10015;;10032:15;;;10026:22;;10012:37;10002:71;;10053:18;;:::i;10084:217::-;10124:1;10150;10140:132;;10194:10;10189:3;10185:20;10182:1;10175:31;10229:4;10226:1;10219:15;10257:4;10254:1;10247:15;10140:132;-1:-1:-1;10286:9:1;;10084:217::o;10713:184::-;10783:6;10836:2;10824:9;10815:7;10811:23;10807:32;10804:52;;;10852:1;10849;10842:12;10804:52;-1:-1:-1;10875:16:1;;10713:184;-1:-1:-1;10713:184:1:o

Swarm Source

ipfs://5cd2782d8f99482d0415753c9f6c7bd9a622ab22dc3a0b01b0648689741f29f3

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.