S Price: $0.639857 (-8.38%)

Contract

0xd4006b4C1006De2bB94B52dC68d4782c4BB0E605

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

5 Token Transfers found.

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StakingWithOptionalReferral

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at SonicScan.org on 2024-12-22
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Address library from OpenZeppelin
library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: weiValue}(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// SafeERC20 from OpenZeppelin
library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        _status = _ENTERED;

        _;

        _status = _NOT_ENTERED;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

/// @title StakingWithOptionalReferral - A staking contract for SANIC tokens with optional referrals and robust security.
contract StakingWithOptionalReferral is ReentrancyGuard {
    using SafeERC20 for IERC20;

    IERC20 public sanicToken; // Token to be staked
    address public feeRecipient; // Address to receive fees
    address public owner; // Contract owner

    uint256 public dailyRewardRate = 8; // 8% daily rewards
    uint256 public depositFee = 5; // 5% deposit fee
    uint256 public referralFee = 12; // 12% referral bonus
    uint256 public claimCooldown = 6 hours; // Cooldown period for claiming rewards

    uint256 public rewardPool; // Maximum available rewards in the contract

    struct User {
        uint256 depositedAmount;
        uint256 lastClaimTime;
    }

    mapping(address => User) public users;
    mapping(address => address) public referrers;

    uint256 public totalDeposits;

    event Deposit(address indexed user, uint256 amount, uint256 netAmount, address indexed referrer);
    event ClaimRewards(address indexed user, uint256 reward);
    event Compound(address indexed user, uint256 compoundedAmount);
    event ReferralBonusPaid(address indexed referrer, uint256 bonus);
    event TokenUpdated(address indexed oldToken, address indexed newToken);
    event FeeRecipientUpdated(address indexed oldRecipient, address indexed newRecipient);

    modifier onlyOwner() {
        require(msg.sender == owner, "Not authorized");
        _;
    }

    constructor(address _sanicToken, address _feeRecipient) {
        require(_sanicToken != address(0), "Invalid token address");
        require(_feeRecipient != address(0), "Invalid fee recipient address");

        sanicToken = IERC20(_sanicToken);
        feeRecipient = _feeRecipient;
        owner = msg.sender;
    }

    function deposit(uint256 _amount, address _referrer) external nonReentrant {
        require(_amount > 0, "Deposit amount must be greater than zero");

        uint256 allowance = sanicToken.allowance(msg.sender, address(this));
        require(allowance >= _amount, "Token allowance too low");

        sanicToken.safeTransferFrom(msg.sender, address(this), _amount);

        uint256 fee = (_amount * depositFee) / 100;
        uint256 netAmount = _amount - fee;

        sanicToken.safeTransfer(feeRecipient, fee);

        if (_referrer != address(0) && _referrer != msg.sender) {
            uint256 referralBonus = (_amount * referralFee) / 100;
            sanicToken.safeTransfer(_referrer, referralBonus);
            referrers[msg.sender] = _referrer;

            emit ReferralBonusPaid(_referrer, referralBonus);
        }

        User storage user = users[msg.sender];
        user.depositedAmount += netAmount;
        user.lastClaimTime = block.timestamp;
        totalDeposits += netAmount;

        emit Deposit(msg.sender, _amount, netAmount, _referrer);
    }

    function claimRewards() external nonReentrant {
        User storage user = users[msg.sender];
        require(user.depositedAmount > 0, "No deposits found");
        require(block.timestamp >= user.lastClaimTime + claimCooldown, "Claim cooldown active");

        uint256 rewards = calculateRewards(msg.sender);
        require(rewards > 0, "No rewards available");
        require(rewardPool >= rewards, "Insufficient reward pool");

        user.lastClaimTime = block.timestamp;
        rewardPool -= rewards;

        sanicToken.safeTransfer(msg.sender, rewards);

        emit ClaimRewards(msg.sender, rewards);
    }

    function calculateRewards(address _user) public view returns (uint256) {
        User memory user = users[_user];
        uint256 elapsedTime = block.timestamp - user.lastClaimTime;
        uint256 dailyRewards = (user.depositedAmount * dailyRewardRate) / 100;
        return (dailyRewards * elapsedTime) / 1 days;
    }

    function updateRewardPool(uint256 _amount) external onlyOwner {
        require(_amount > 0, "Amount must be greater than zero");
        sanicToken.safeTransferFrom(msg.sender, address(this), _amount);
        rewardPool += _amount;
    }

    function updateToken(address _newToken) external onlyOwner {
        require(_newToken != address(0), "Invalid token address");
        address oldToken = address(sanicToken);
        sanicToken = IERC20(_newToken);
        emit TokenUpdated(oldToken, _newToken);
    }

    function updateFeeRecipient(address _newRecipient) external onlyOwner {
        require(_newRecipient != address(0), "Invalid fee recipient address");
        address oldRecipient = feeRecipient;
        feeRecipient = _newRecipient;
        emit FeeRecipientUpdated(oldRecipient, _newRecipient);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_sanicToken","type":"address"},{"internalType":"address","name":"_feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"compoundedAmount","type":"uint256"}],"name":"Compound","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":"netAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldRecipient","type":"address"},{"indexed":true,"internalType":"address","name":"newRecipient","type":"address"}],"name":"FeeRecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"bonus","type":"uint256"}],"name":"ReferralBonusPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldToken","type":"address"},{"indexed":true,"internalType":"address","name":"newToken","type":"address"}],"name":"TokenUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"calculateRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dailyRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_referrer","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sanicToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newRecipient","type":"address"}],"name":"updateFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateRewardPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newToken","type":"address"}],"name":"updateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"lastClaimTime","type":"uint256"}],"stateMutability":"view","type":"function"}]

6080604052600860045560058055600c600655615460600755348015610023575f80fd5b506040516122843803806122848339818101604052810190610045919061024d565b60015f819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036100ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100b1906102e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011f9061034d565b60405180910390fd5b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061036b565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61021c826101f3565b9050919050565b61022c81610212565b8114610236575f80fd5b50565b5f8151905061024781610223565b92915050565b5f8060408385031215610263576102626101ef565b5b5f61027085828601610239565b925050602061028185828601610239565b9150509250929050565b5f82825260208201905092915050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f6102cf60158361028b565b91506102da8261029b565b602082019050919050565b5f6020820190508181035f8301526102fc816102c3565b9050919050565b7f496e76616c69642066656520726563697069656e7420616464726573730000005f82015250565b5f610337601d8361028b565b915061034282610303565b602082019050919050565b5f6020820190508181035f8301526103648161032b565b9050919050565b611f0c806103785f395ff3fe608060405234801561000f575f80fd5b5060043610610109575f3560e01c80637d882097116100a0578063c1e3d2dd1161006f578063c1e3d2dd14610294578063cc39a89c146102b2578063f160d369146102ce578063f7128024146102ea578063fdea36571461030857610109565b80637d8820971461020957806384ae2bc6146102275780638da5cb5b14610245578063a87430ba1461026357610109565b806366666aa9116100dc57806366666aa91461019557806367a52793146101b35780636e553f65146101d15780637ad3def2146101ed57610109565b8063372500ab1461010d57806346904840146101175780634a3b68cc1461013557806364ab867514610165575b5f80fd5b610115610326565b005b61011f6105a3565b60405161012c9190611434565b60405180910390f35b61014f600480360381019061014a919061147b565b6105c8565b60405161015c9190611434565b60405180910390f35b61017f600480360381019061017a919061147b565b6105f8565b60405161018c91906114be565b60405180910390f35b61019d6106ae565b6040516101aa91906114be565b60405180910390f35b6101bb6106b4565b6040516101c891906114be565b60405180910390f35b6101eb60048036038101906101e69190611501565b6106ba565b005b6102076004803603810190610202919061147b565b610ba0565b005b610211610d60565b60405161021e91906114be565b60405180910390f35b61022f610d66565b60405161023c91906114be565b60405180910390f35b61024d610d6c565b60405161025a9190611434565b60405180910390f35b61027d6004803603810190610278919061147b565b610d91565b60405161028b92919061153f565b60405180910390f35b61029c610db1565b6040516102a991906114be565b60405180910390f35b6102cc60048036038101906102c79190611566565b610db7565b005b6102e860048036038101906102e3919061147b565b610ef1565b005b6102f26110b1565b6040516102ff91906115ec565b60405180910390f35b6103106110d6565b60405161031d91906114be565b60405180910390f35b60025f540361036a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103619061165f565b60405180910390fd5b60025f819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f0154116103f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ed906116c7565b60405180910390fd5b60075481600101546104089190611712565b42101561044a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104419061178f565b60405180910390fd5b5f610454336105f8565b90505f8111610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f906117f7565b60405180910390fd5b8060085410156104dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d49061185f565b60405180910390fd5b4282600101819055508060085f8282546104f7919061187d565b9250508190555061054a338260015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dc9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc678260405161059091906114be565b60405180910390a2505060015f81905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f820154815260200160018201548152505090505f816020015142610668919061187d565b90505f6064600454845f015161067e91906118b0565b610688919061191e565b905062015180828261069a91906118b0565b6106a4919061191e565b9350505050919050565b60085481565b60055481565b60025f54036106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061165f565b60405180910390fd5b60025f819055505f8211610747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073e906119be565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016107a49291906119dc565b602060405180830381865afa1580156107bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e39190611a17565b905082811015610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081f90611a8c565b60405180910390fd5b61087633308560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611162909392919063ffffffff16565b5f60646005548561088791906118b0565b610891919061191e565b90505f81856108a0919061187d565b905061090f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dc9092919063ffffffff16565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561097757503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610ab0575f60646006548761098d91906118b0565b610997919061191e565b90506109e5858260015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dc9092919063ffffffff16565b84600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff167f050bae3eeefac62a4ee36c766f4f426f09edf96ae8fb3034ebbf961e4acc78e282604051610aa691906114be565b60405180910390a2505b5f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905081815f015f828254610b029190611712565b9250508190555042816001018190555081600b5f828254610b239190611712565b925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b478885604051610b8992919061153f565b60405180910390a35050505060015f819055505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690611af4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490611b5c565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0b1186973f810894b87ab0bfbee422fddcaad21b46dc705a561451bbb6bac11760405160405180910390a35050565b600b5481565b60065481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6009602052805f5260405f205f91509050805f0154908060010154905082565b60045481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90611af4565b60405180910390fd5b5f8111610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90611bc4565b60405180910390fd5b610ed633308360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611162909392919063ffffffff16565b8060085f828254610ee79190611712565b9250508190555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7790611af4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590611c2c565b60405180910390fd5b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b61115d8363a9059cbb60e01b84846040516024016110fb929190611c4a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111eb565b505050565b6111e5846323b872dd60e01b85858560405160240161118393929190611c71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111eb565b50505050565b5f61124c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112b09092919063ffffffff16565b90505f815111156112ab578080602001905181019061126b9190611cdb565b6112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a190611d76565b60405180910390fd5b5b505050565b60606112be84845f856112c7565b90509392505050565b60606112d2856113e4565b611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890611dde565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516113399190611e4e565b5f6040518083038185875af1925050503d805f8114611373576040519150601f19603f3d011682016040523d82523d5f602084013e611378565b606091505b5091509150811561138d5780925050506113dc565b5f8151111561139f5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d39190611eb6565b60405180910390fd5b949350505050565b5f80823b90505f8111915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61141e826113f5565b9050919050565b61142e81611414565b82525050565b5f6020820190506114475f830184611425565b92915050565b5f80fd5b61145a81611414565b8114611464575f80fd5b50565b5f8135905061147581611451565b92915050565b5f602082840312156114905761148f61144d565b5b5f61149d84828501611467565b91505092915050565b5f819050919050565b6114b8816114a6565b82525050565b5f6020820190506114d15f8301846114af565b92915050565b6114e0816114a6565b81146114ea575f80fd5b50565b5f813590506114fb816114d7565b92915050565b5f80604083850312156115175761151661144d565b5b5f611524858286016114ed565b925050602061153585828601611467565b9150509250929050565b5f6040820190506115525f8301856114af565b61155f60208301846114af565b9392505050565b5f6020828403121561157b5761157a61144d565b5b5f611588848285016114ed565b91505092915050565b5f819050919050565b5f6115b46115af6115aa846113f5565b611591565b6113f5565b9050919050565b5f6115c58261159a565b9050919050565b5f6115d6826115bb565b9050919050565b6115e6816115cc565b82525050565b5f6020820190506115ff5f8301846115dd565b92915050565b5f82825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611649601f83611605565b915061165482611615565b602082019050919050565b5f6020820190508181035f8301526116768161163d565b9050919050565b7f4e6f206465706f7369747320666f756e640000000000000000000000000000005f82015250565b5f6116b1601183611605565b91506116bc8261167d565b602082019050919050565b5f6020820190508181035f8301526116de816116a5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61171c826114a6565b9150611727836114a6565b925082820190508082111561173f5761173e6116e5565b5b92915050565b7f436c61696d20636f6f6c646f776e2061637469766500000000000000000000005f82015250565b5f611779601583611605565b915061178482611745565b602082019050919050565b5f6020820190508181035f8301526117a68161176d565b9050919050565b7f4e6f207265776172647320617661696c61626c650000000000000000000000005f82015250565b5f6117e1601483611605565b91506117ec826117ad565b602082019050919050565b5f6020820190508181035f83015261180e816117d5565b9050919050565b7f496e73756666696369656e742072657761726420706f6f6c00000000000000005f82015250565b5f611849601883611605565b915061185482611815565b602082019050919050565b5f6020820190508181035f8301526118768161183d565b9050919050565b5f611887826114a6565b9150611892836114a6565b92508282039050818111156118aa576118a96116e5565b5b92915050565b5f6118ba826114a6565b91506118c5836114a6565b92508282026118d3816114a6565b915082820484148315176118ea576118e96116e5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611928826114a6565b9150611933836114a6565b925082611943576119426118f1565b5b828204905092915050565b7f4465706f73697420616d6f756e74206d757374206265206772656174657220745f8201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b5f6119a8602883611605565b91506119b38261194e565b604082019050919050565b5f6020820190508181035f8301526119d58161199c565b9050919050565b5f6040820190506119ef5f830185611425565b6119fc6020830184611425565b9392505050565b5f81519050611a11816114d7565b92915050565b5f60208284031215611a2c57611a2b61144d565b5b5f611a3984828501611a03565b91505092915050565b7f546f6b656e20616c6c6f77616e636520746f6f206c6f770000000000000000005f82015250565b5f611a76601783611605565b9150611a8182611a42565b602082019050919050565b5f6020820190508181035f830152611aa381611a6a565b9050919050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f611ade600e83611605565b9150611ae982611aaa565b602082019050919050565b5f6020820190508181035f830152611b0b81611ad2565b9050919050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f611b46601583611605565b9150611b5182611b12565b602082019050919050565b5f6020820190508181035f830152611b7381611b3a565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f611bae602083611605565b9150611bb982611b7a565b602082019050919050565b5f6020820190508181035f830152611bdb81611ba2565b9050919050565b7f496e76616c69642066656520726563697069656e7420616464726573730000005f82015250565b5f611c16601d83611605565b9150611c2182611be2565b602082019050919050565b5f6020820190508181035f830152611c4381611c0a565b9050919050565b5f604082019050611c5d5f830185611425565b611c6a60208301846114af565b9392505050565b5f606082019050611c845f830186611425565b611c916020830185611425565b611c9e60408301846114af565b949350505050565b5f8115159050919050565b611cba81611ca6565b8114611cc4575f80fd5b50565b5f81519050611cd581611cb1565b92915050565b5f60208284031215611cf057611cef61144d565b5b5f611cfd84828501611cc7565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f611d60602a83611605565b9150611d6b82611d06565b604082019050919050565b5f6020820190508181035f830152611d8d81611d54565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f611dc8601d83611605565b9150611dd382611d94565b602082019050919050565b5f6020820190508181035f830152611df581611dbc565b9050919050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f611e2882611dfc565b611e328185611e06565b9350611e42818560208601611e10565b80840191505092915050565b5f611e598284611e1e565b915081905092915050565b5f81519050919050565b5f601f19601f8301169050919050565b5f611e8882611e64565b611e928185611605565b9350611ea2818560208601611e10565b611eab81611e6e565b840191505092915050565b5f6020820190508181035f830152611ece8184611e7e565b90509291505056fea26469706673582212204c7012f75500f81bbea1c1454a30a270d19f1415b12ee94bf687405d58edf1c064736f6c634300081a0033000000000000000000000000a989d83fb60d1a14846ca137c478e6b42d23620a000000000000000000000000a989d83fb60d1a14846ca137c478e6b42d23620a

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610109575f3560e01c80637d882097116100a0578063c1e3d2dd1161006f578063c1e3d2dd14610294578063cc39a89c146102b2578063f160d369146102ce578063f7128024146102ea578063fdea36571461030857610109565b80637d8820971461020957806384ae2bc6146102275780638da5cb5b14610245578063a87430ba1461026357610109565b806366666aa9116100dc57806366666aa91461019557806367a52793146101b35780636e553f65146101d15780637ad3def2146101ed57610109565b8063372500ab1461010d57806346904840146101175780634a3b68cc1461013557806364ab867514610165575b5f80fd5b610115610326565b005b61011f6105a3565b60405161012c9190611434565b60405180910390f35b61014f600480360381019061014a919061147b565b6105c8565b60405161015c9190611434565b60405180910390f35b61017f600480360381019061017a919061147b565b6105f8565b60405161018c91906114be565b60405180910390f35b61019d6106ae565b6040516101aa91906114be565b60405180910390f35b6101bb6106b4565b6040516101c891906114be565b60405180910390f35b6101eb60048036038101906101e69190611501565b6106ba565b005b6102076004803603810190610202919061147b565b610ba0565b005b610211610d60565b60405161021e91906114be565b60405180910390f35b61022f610d66565b60405161023c91906114be565b60405180910390f35b61024d610d6c565b60405161025a9190611434565b60405180910390f35b61027d6004803603810190610278919061147b565b610d91565b60405161028b92919061153f565b60405180910390f35b61029c610db1565b6040516102a991906114be565b60405180910390f35b6102cc60048036038101906102c79190611566565b610db7565b005b6102e860048036038101906102e3919061147b565b610ef1565b005b6102f26110b1565b6040516102ff91906115ec565b60405180910390f35b6103106110d6565b60405161031d91906114be565b60405180910390f35b60025f540361036a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103619061165f565b60405180910390fd5b60025f819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f0154116103f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ed906116c7565b60405180910390fd5b60075481600101546104089190611712565b42101561044a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104419061178f565b60405180910390fd5b5f610454336105f8565b90505f8111610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f906117f7565b60405180910390fd5b8060085410156104dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d49061185f565b60405180910390fd5b4282600101819055508060085f8282546104f7919061187d565b9250508190555061054a338260015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dc9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc678260405161059091906114be565b60405180910390a2505060015f81905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f820154815260200160018201548152505090505f816020015142610668919061187d565b90505f6064600454845f015161067e91906118b0565b610688919061191e565b905062015180828261069a91906118b0565b6106a4919061191e565b9350505050919050565b60085481565b60055481565b60025f54036106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061165f565b60405180910390fd5b60025f819055505f8211610747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073e906119be565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016107a49291906119dc565b602060405180830381865afa1580156107bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e39190611a17565b905082811015610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081f90611a8c565b60405180910390fd5b61087633308560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611162909392919063ffffffff16565b5f60646005548561088791906118b0565b610891919061191e565b90505f81856108a0919061187d565b905061090f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dc9092919063ffffffff16565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561097757503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610ab0575f60646006548761098d91906118b0565b610997919061191e565b90506109e5858260015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dc9092919063ffffffff16565b84600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff167f050bae3eeefac62a4ee36c766f4f426f09edf96ae8fb3034ebbf961e4acc78e282604051610aa691906114be565b60405180910390a2505b5f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905081815f015f828254610b029190611712565b9250508190555042816001018190555081600b5f828254610b239190611712565b925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b478885604051610b8992919061153f565b60405180910390a35050505060015f819055505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690611af4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490611b5c565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0b1186973f810894b87ab0bfbee422fddcaad21b46dc705a561451bbb6bac11760405160405180910390a35050565b600b5481565b60065481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6009602052805f5260405f205f91509050805f0154908060010154905082565b60045481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90611af4565b60405180910390fd5b5f8111610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90611bc4565b60405180910390fd5b610ed633308360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611162909392919063ffffffff16565b8060085f828254610ee79190611712565b9250508190555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7790611af4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590611c2c565b60405180910390fd5b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b61115d8363a9059cbb60e01b84846040516024016110fb929190611c4a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111eb565b505050565b6111e5846323b872dd60e01b85858560405160240161118393929190611c71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111eb565b50505050565b5f61124c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112b09092919063ffffffff16565b90505f815111156112ab578080602001905181019061126b9190611cdb565b6112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a190611d76565b60405180910390fd5b5b505050565b60606112be84845f856112c7565b90509392505050565b60606112d2856113e4565b611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890611dde565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516113399190611e4e565b5f6040518083038185875af1925050503d805f8114611373576040519150601f19603f3d011682016040523d82523d5f602084013e611378565b606091505b5091509150811561138d5780925050506113dc565b5f8151111561139f5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d39190611eb6565b60405180910390fd5b949350505050565b5f80823b90505f8111915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61141e826113f5565b9050919050565b61142e81611414565b82525050565b5f6020820190506114475f830184611425565b92915050565b5f80fd5b61145a81611414565b8114611464575f80fd5b50565b5f8135905061147581611451565b92915050565b5f602082840312156114905761148f61144d565b5b5f61149d84828501611467565b91505092915050565b5f819050919050565b6114b8816114a6565b82525050565b5f6020820190506114d15f8301846114af565b92915050565b6114e0816114a6565b81146114ea575f80fd5b50565b5f813590506114fb816114d7565b92915050565b5f80604083850312156115175761151661144d565b5b5f611524858286016114ed565b925050602061153585828601611467565b9150509250929050565b5f6040820190506115525f8301856114af565b61155f60208301846114af565b9392505050565b5f6020828403121561157b5761157a61144d565b5b5f611588848285016114ed565b91505092915050565b5f819050919050565b5f6115b46115af6115aa846113f5565b611591565b6113f5565b9050919050565b5f6115c58261159a565b9050919050565b5f6115d6826115bb565b9050919050565b6115e6816115cc565b82525050565b5f6020820190506115ff5f8301846115dd565b92915050565b5f82825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611649601f83611605565b915061165482611615565b602082019050919050565b5f6020820190508181035f8301526116768161163d565b9050919050565b7f4e6f206465706f7369747320666f756e640000000000000000000000000000005f82015250565b5f6116b1601183611605565b91506116bc8261167d565b602082019050919050565b5f6020820190508181035f8301526116de816116a5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61171c826114a6565b9150611727836114a6565b925082820190508082111561173f5761173e6116e5565b5b92915050565b7f436c61696d20636f6f6c646f776e2061637469766500000000000000000000005f82015250565b5f611779601583611605565b915061178482611745565b602082019050919050565b5f6020820190508181035f8301526117a68161176d565b9050919050565b7f4e6f207265776172647320617661696c61626c650000000000000000000000005f82015250565b5f6117e1601483611605565b91506117ec826117ad565b602082019050919050565b5f6020820190508181035f83015261180e816117d5565b9050919050565b7f496e73756666696369656e742072657761726420706f6f6c00000000000000005f82015250565b5f611849601883611605565b915061185482611815565b602082019050919050565b5f6020820190508181035f8301526118768161183d565b9050919050565b5f611887826114a6565b9150611892836114a6565b92508282039050818111156118aa576118a96116e5565b5b92915050565b5f6118ba826114a6565b91506118c5836114a6565b92508282026118d3816114a6565b915082820484148315176118ea576118e96116e5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611928826114a6565b9150611933836114a6565b925082611943576119426118f1565b5b828204905092915050565b7f4465706f73697420616d6f756e74206d757374206265206772656174657220745f8201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b5f6119a8602883611605565b91506119b38261194e565b604082019050919050565b5f6020820190508181035f8301526119d58161199c565b9050919050565b5f6040820190506119ef5f830185611425565b6119fc6020830184611425565b9392505050565b5f81519050611a11816114d7565b92915050565b5f60208284031215611a2c57611a2b61144d565b5b5f611a3984828501611a03565b91505092915050565b7f546f6b656e20616c6c6f77616e636520746f6f206c6f770000000000000000005f82015250565b5f611a76601783611605565b9150611a8182611a42565b602082019050919050565b5f6020820190508181035f830152611aa381611a6a565b9050919050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f611ade600e83611605565b9150611ae982611aaa565b602082019050919050565b5f6020820190508181035f830152611b0b81611ad2565b9050919050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f611b46601583611605565b9150611b5182611b12565b602082019050919050565b5f6020820190508181035f830152611b7381611b3a565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f611bae602083611605565b9150611bb982611b7a565b602082019050919050565b5f6020820190508181035f830152611bdb81611ba2565b9050919050565b7f496e76616c69642066656520726563697069656e7420616464726573730000005f82015250565b5f611c16601d83611605565b9150611c2182611be2565b602082019050919050565b5f6020820190508181035f830152611c4381611c0a565b9050919050565b5f604082019050611c5d5f830185611425565b611c6a60208301846114af565b9392505050565b5f606082019050611c845f830186611425565b611c916020830185611425565b611c9e60408301846114af565b949350505050565b5f8115159050919050565b611cba81611ca6565b8114611cc4575f80fd5b50565b5f81519050611cd581611cb1565b92915050565b5f60208284031215611cf057611cef61144d565b5b5f611cfd84828501611cc7565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f611d60602a83611605565b9150611d6b82611d06565b604082019050919050565b5f6020820190508181035f830152611d8d81611d54565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f611dc8601d83611605565b9150611dd382611d94565b602082019050919050565b5f6020820190508181035f830152611df581611dbc565b9050919050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f611e2882611dfc565b611e328185611e06565b9350611e42818560208601611e10565b80840191505092915050565b5f611e598284611e1e565b915081905092915050565b5f81519050919050565b5f601f19601f8301169050919050565b5f611e8882611e64565b611e928185611605565b9350611ea2818560208601611e10565b611eab81611e6e565b840191505092915050565b5f6020820190508181035f830152611ece8184611e7e565b90509291505056fea26469706673582212204c7012f75500f81bbea1c1454a30a270d19f1415b12ee94bf687405d58edf1c064736f6c634300081a0033

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

000000000000000000000000a989d83fb60d1a14846ca137c478e6b42d23620a000000000000000000000000a989d83fb60d1a14846ca137c478e6b42d23620a

-----Decoded View---------------
Arg [0] : _sanicToken (address): 0xA989d83fb60d1a14846CA137c478e6b42D23620A
Arg [1] : _feeRecipient (address): 0xA989d83fb60d1a14846CA137c478e6b42D23620A

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a989d83fb60d1a14846ca137c478e6b42d23620a
Arg [1] : 000000000000000000000000a989d83fb60d1a14846ca137c478e6b42d23620a


Deployed Bytecode Sourcemap

5306:4681:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8166:637;;;:::i;:::-;;5457:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6044:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8811:325;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5827:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5626:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7052:1106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9395:274;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6097:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5680:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5518:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6000:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5565:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9144:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9677:307;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5740:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8166:637;4196:1;4344:7;;:19;4336:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4196:1;4412:7;:18;;;;8223:17:::1;8243:5;:17;8249:10;8243:17;;;;;;;;;;;;;;;8223:37;;8302:1;8279:4;:20;;;:24;8271:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8384:13;;8363:4;:18;;;:34;;;;:::i;:::-;8344:15;:53;;8336:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8436:15;8454:28;8471:10;8454:16;:28::i;:::-;8436:46;;8511:1;8501:7;:11;8493:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;8570:7;8556:10;;:21;;8548:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;8640:15;8619:4;:18;;:36;;;;8680:7;8666:10;;:21;;;;;;;:::i;:::-;;;;;;;;8700:44;8724:10;8736:7;8700:10;;;;;;;;;;;:23;;;;:44;;;;;:::i;:::-;8775:10;8762:33;;;8787:7;8762:33;;;;;;:::i;:::-;;;;;;;;8212:591;;4152:1:::0;4457:7;:22;;;;8166:637::o;5457:27::-;;;;;;;;;;;;;:::o;6044:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;8811:325::-;8873:7;8893:16;8912:5;:12;8918:5;8912:12;;;;;;;;;;;;;;;8893:31;;;;;;;;;;;;;;;;;;;;;;;;;;;8935:19;8975:4;:18;;;8957:15;:36;;;;:::i;:::-;8935:58;;9004:20;9070:3;9051:15;;9028:4;:20;;;:38;;;;:::i;:::-;9027:46;;;;:::i;:::-;9004:69;;9122:6;9107:11;9092:12;:26;;;;:::i;:::-;9091:37;;;;:::i;:::-;9084:44;;;;;8811:325;;;:::o;5827:25::-;;;;:::o;5626:29::-;;;;:::o;7052:1106::-;4196:1;4344:7;;:19;4336:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4196:1;4412:7;:18;;;;7156:1:::1;7146:7;:11;7138:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7215:17;7235:10;;;;;;;;;;;:20;;;7256:10;7276:4;7235:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7215:67;;7314:7;7301:9;:20;;7293:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7362:63;7390:10;7410:4;7417:7;7362:10;;;;;;;;;;;:27;;;;:63;;;;;;:::i;:::-;7438:11;7477:3;7463:10;;7453:7;:20;;;;:::i;:::-;7452:28;;;;:::i;:::-;7438:42;;7491:17;7521:3;7511:7;:13;;;;:::i;:::-;7491:33;;7537:42;7561:12;;;;;;;;;;;7575:3;7537:10;;;;;;;;;;;:23;;;;:42;;;;;:::i;:::-;7617:1;7596:23;;:9;:23;;;;:50;;;;;7636:10;7623:23;;:9;:23;;;;7596:50;7592:313;;;7663:21;7713:3;7698:11;;7688:7;:21;;;;:::i;:::-;7687:29;;;;:::i;:::-;7663:53;;7731:49;7755:9;7766:13;7731:10;;;;;;;;;;;:23;;;;:49;;;;;:::i;:::-;7819:9;7795;:21;7805:10;7795:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7868:9;7850:43;;;7879:13;7850:43;;;;;;:::i;:::-;;;;;;;;7648:257;7592:313;7917:17;7937:5;:17;7943:10;7937:17;;;;;;;;;;;;;;;7917:37;;7989:9;7965:4;:20;;;:33;;;;;;;:::i;:::-;;;;;;;;8030:15;8009:4;:18;;:36;;;;8073:9;8056:13;;:26;;;;;;;:::i;:::-;;;;;;;;8140:9;8100:50;;8108:10;8100:50;;;8120:7;8129:9;8100:50;;;;;;;:::i;:::-;;;;;;;;7127:1031;;;;4152:1:::0;4457:7;:22;;;;7052:1106;;:::o;9395:274::-;6665:5;;;;;;;;;;;6651:19;;:10;:19;;;6643:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9494:1:::1;9473:23;;:9;:23;;::::0;9465:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9533:16;9560:10;;;;;;;;;;;9533:38;;9602:9;9582:10;;:30;;;;;;;;;;;;;;;;;;9651:9;9628:33;;9641:8;9628:33;;;;;;;;;;;;9454:215;9395:274:::0;:::o;6097:28::-;;;;:::o;5680:31::-;;;;:::o;5518:20::-;;;;;;;;;;;;;:::o;6000:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5565:34::-;;;;:::o;9144:243::-;6665:5;;;;;;;;;;;6651:19;;:10;:19;;;6643:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9235:1:::1;9225:7;:11;9217:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;9284:63;9312:10;9332:4;9339:7;9284:10;;;;;;;;;;;:27;;;;:63;;;;;;:::i;:::-;9372:7;9358:10;;:21;;;;;;;:::i;:::-;;;;;;;;9144:243:::0;:::o;9677:307::-;6665:5;;;;;;;;;;;6651:19;;:10;:19;;;6643:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9791:1:::1;9766:27;;:13;:27;;::::0;9758:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9838:20;9861:12;;;;;;;;;;;9838:35;;9899:13;9884:12;;:28;;;;;;;;;;;;;;;;;;9962:13;9928:48;;9948:12;9928:48;;;;;;;;;;;;9747:237;9677:307:::0;:::o;5404:24::-;;;;;;;;;;;;;:::o;5740:38::-;;;;:::o;2537:211::-;2654:86;2674:5;2704:23;;;2729:2;2733:5;2681:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2654:19;:86::i;:::-;2537:211;;;:::o;2756:248::-;2900:96;2920:5;2950:27;;;2979:4;2985:2;2989:5;2927:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2900:19;:96::i;:::-;2756:248;;;;:::o;3416:333::-;3497:23;3523:69;3551:4;3523:69;;;;;;;;;;;;;;;;;3531:5;3523:27;;;;:69;;;;;:::i;:::-;3497:95;;3627:1;3607:10;:17;:21;3603:139;;;3664:10;3653:30;;;;;;;;;;;;:::i;:::-;3645:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3603:139;3486:263;3416:333;;:::o;833:230::-;970:12;1002:53;1025:6;1033:4;1039:1;1042:12;1002:22;:53::i;:::-;995:60;;833:230;;;;;:::o;1706:733::-;1879:12;1912:18;1923:6;1912:10;:18::i;:::-;1904:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;1978:12;1992:23;2019:6;:11;;2038:8;2048:4;2019:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1977:76;;;;2068:7;2064:368;;;2099:10;2092:17;;;;;;2064:368;2166:1;2146:10;:17;:21;2142:279;;;2249:10;2243:17;2310:15;2297:10;2293:2;2289:19;2282:44;2142:279;2392:12;2385:20;;;;;;;;;;;:::i;:::-;;;;;;;;1706:733;;;;;;;:::o;121:196::-;181:4;198:12;265:7;253:20;245:28;;308:1;301:4;:8;294:15;;;121:196;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:77::-;1565:7;1594:5;1583:16;;1528:77;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o;1963:122::-;2036:24;2054:5;2036:24;:::i;:::-;2029:5;2026:35;2016:63;;2075:1;2072;2065:12;2016:63;1963:122;:::o;2091:139::-;2137:5;2175:6;2162:20;2153:29;;2191:33;2218:5;2191:33;:::i;:::-;2091:139;;;;:::o;2236:474::-;2304:6;2312;2361:2;2349:9;2340:7;2336:23;2332:32;2329:119;;;2367:79;;:::i;:::-;2329:119;2487:1;2512:53;2557:7;2548:6;2537:9;2533:22;2512:53;:::i;:::-;2502:63;;2458:117;2614:2;2640:53;2685:7;2676:6;2665:9;2661:22;2640:53;:::i;:::-;2630:63;;2585:118;2236:474;;;;;:::o;2716:332::-;2837:4;2875:2;2864:9;2860:18;2852:26;;2888:71;2956:1;2945:9;2941:17;2932:6;2888:71;:::i;:::-;2969:72;3037:2;3026:9;3022:18;3013:6;2969:72;:::i;:::-;2716:332;;;;;:::o;3054:329::-;3113:6;3162:2;3150:9;3141:7;3137:23;3133:32;3130:119;;;3168:79;;:::i;:::-;3130:119;3288:1;3313:53;3358:7;3349:6;3338:9;3334:22;3313:53;:::i;:::-;3303:63;;3259:117;3054:329;;;;:::o;3389:60::-;3417:3;3438:5;3431:12;;3389:60;;;:::o;3455:142::-;3505:9;3538:53;3556:34;3565:24;3583:5;3565:24;:::i;:::-;3556:34;:::i;:::-;3538:53;:::i;:::-;3525:66;;3455:142;;;:::o;3603:126::-;3653:9;3686:37;3717:5;3686:37;:::i;:::-;3673:50;;3603:126;;;:::o;3735:140::-;3799:9;3832:37;3863:5;3832:37;:::i;:::-;3819:50;;3735:140;;;:::o;3881:159::-;3982:51;4027:5;3982:51;:::i;:::-;3977:3;3970:64;3881:159;;:::o;4046:250::-;4153:4;4191:2;4180:9;4176:18;4168:26;;4204:85;4286:1;4275:9;4271:17;4262:6;4204:85;:::i;:::-;4046:250;;;;:::o;4302:169::-;4386:11;4420:6;4415:3;4408:19;4460:4;4455:3;4451:14;4436:29;;4302:169;;;;:::o;4477:181::-;4617:33;4613:1;4605:6;4601:14;4594:57;4477:181;:::o;4664:366::-;4806:3;4827:67;4891:2;4886:3;4827:67;:::i;:::-;4820:74;;4903:93;4992:3;4903:93;:::i;:::-;5021:2;5016:3;5012:12;5005:19;;4664:366;;;:::o;5036:419::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5289:9;5283:4;5279:20;5275:1;5264:9;5260:17;5253:47;5317:131;5443:4;5317:131;:::i;:::-;5309:139;;5036:419;;;:::o;5461:167::-;5601:19;5597:1;5589:6;5585:14;5578:43;5461:167;:::o;5634:366::-;5776:3;5797:67;5861:2;5856:3;5797:67;:::i;:::-;5790:74;;5873:93;5962:3;5873:93;:::i;:::-;5991:2;5986:3;5982:12;5975:19;;5634:366;;;:::o;6006:419::-;6172:4;6210:2;6199:9;6195:18;6187:26;;6259:9;6253:4;6249:20;6245:1;6234:9;6230:17;6223:47;6287:131;6413:4;6287:131;:::i;:::-;6279:139;;6006:419;;;:::o;6431:180::-;6479:77;6476:1;6469:88;6576:4;6573:1;6566:15;6600:4;6597:1;6590:15;6617:191;6657:3;6676:20;6694:1;6676:20;:::i;:::-;6671:25;;6710:20;6728:1;6710:20;:::i;:::-;6705:25;;6753:1;6750;6746:9;6739:16;;6774:3;6771:1;6768:10;6765:36;;;6781:18;;:::i;:::-;6765:36;6617:191;;;;:::o;6814:171::-;6954:23;6950:1;6942:6;6938:14;6931:47;6814:171;:::o;6991:366::-;7133:3;7154:67;7218:2;7213:3;7154:67;:::i;:::-;7147:74;;7230:93;7319:3;7230:93;:::i;:::-;7348:2;7343:3;7339:12;7332:19;;6991:366;;;:::o;7363:419::-;7529:4;7567:2;7556:9;7552:18;7544:26;;7616:9;7610:4;7606:20;7602:1;7591:9;7587:17;7580:47;7644:131;7770:4;7644:131;:::i;:::-;7636:139;;7363:419;;;:::o;7788:170::-;7928:22;7924:1;7916:6;7912:14;7905:46;7788:170;:::o;7964:366::-;8106:3;8127:67;8191:2;8186:3;8127:67;:::i;:::-;8120:74;;8203:93;8292:3;8203:93;:::i;:::-;8321:2;8316:3;8312:12;8305:19;;7964:366;;;:::o;8336:419::-;8502:4;8540:2;8529:9;8525:18;8517:26;;8589:9;8583:4;8579:20;8575:1;8564:9;8560:17;8553:47;8617:131;8743:4;8617:131;:::i;:::-;8609:139;;8336:419;;;:::o;8761:174::-;8901:26;8897:1;8889:6;8885:14;8878:50;8761:174;:::o;8941:366::-;9083:3;9104:67;9168:2;9163:3;9104:67;:::i;:::-;9097:74;;9180:93;9269:3;9180:93;:::i;:::-;9298:2;9293:3;9289:12;9282:19;;8941:366;;;:::o;9313:419::-;9479:4;9517:2;9506:9;9502:18;9494:26;;9566:9;9560:4;9556:20;9552:1;9541:9;9537:17;9530:47;9594:131;9720:4;9594:131;:::i;:::-;9586:139;;9313:419;;;:::o;9738:194::-;9778:4;9798:20;9816:1;9798:20;:::i;:::-;9793:25;;9832:20;9850:1;9832:20;:::i;:::-;9827:25;;9876:1;9873;9869:9;9861:17;;9900:1;9894:4;9891:11;9888:37;;;9905:18;;:::i;:::-;9888:37;9738:194;;;;:::o;9938:410::-;9978:7;10001:20;10019:1;10001:20;:::i;:::-;9996:25;;10035:20;10053:1;10035:20;:::i;:::-;10030:25;;10090:1;10087;10083:9;10112:30;10130:11;10112:30;:::i;:::-;10101:41;;10291:1;10282:7;10278:15;10275:1;10272:22;10252:1;10245:9;10225:83;10202:139;;10321:18;;:::i;:::-;10202:139;9986:362;9938:410;;;;:::o;10354:180::-;10402:77;10399:1;10392:88;10499:4;10496:1;10489:15;10523:4;10520:1;10513:15;10540:185;10580:1;10597:20;10615:1;10597:20;:::i;:::-;10592:25;;10631:20;10649:1;10631:20;:::i;:::-;10626:25;;10670:1;10660:35;;10675:18;;:::i;:::-;10660:35;10717:1;10714;10710:9;10705:14;;10540:185;;;;:::o;10731:227::-;10871:34;10867:1;10859:6;10855:14;10848:58;10940:10;10935:2;10927:6;10923:15;10916:35;10731:227;:::o;10964:366::-;11106:3;11127:67;11191:2;11186:3;11127:67;:::i;:::-;11120:74;;11203:93;11292:3;11203:93;:::i;:::-;11321:2;11316:3;11312:12;11305:19;;10964:366;;;:::o;11336:419::-;11502:4;11540:2;11529:9;11525:18;11517:26;;11589:9;11583:4;11579:20;11575:1;11564:9;11560:17;11553:47;11617:131;11743:4;11617:131;:::i;:::-;11609:139;;11336:419;;;:::o;11761:332::-;11882:4;11920:2;11909:9;11905:18;11897:26;;11933:71;12001:1;11990:9;11986:17;11977:6;11933:71;:::i;:::-;12014:72;12082:2;12071:9;12067:18;12058:6;12014:72;:::i;:::-;11761:332;;;;;:::o;12099:143::-;12156:5;12187:6;12181:13;12172:22;;12203:33;12230:5;12203:33;:::i;:::-;12099:143;;;;:::o;12248:351::-;12318:6;12367:2;12355:9;12346:7;12342:23;12338:32;12335:119;;;12373:79;;:::i;:::-;12335:119;12493:1;12518:64;12574:7;12565:6;12554:9;12550:22;12518:64;:::i;:::-;12508:74;;12464:128;12248:351;;;;:::o;12605:173::-;12745:25;12741:1;12733:6;12729:14;12722:49;12605:173;:::o;12784:366::-;12926:3;12947:67;13011:2;13006:3;12947:67;:::i;:::-;12940:74;;13023:93;13112:3;13023:93;:::i;:::-;13141:2;13136:3;13132:12;13125:19;;12784:366;;;:::o;13156:419::-;13322:4;13360:2;13349:9;13345:18;13337:26;;13409:9;13403:4;13399:20;13395:1;13384:9;13380:17;13373:47;13437:131;13563:4;13437:131;:::i;:::-;13429:139;;13156:419;;;:::o;13581:164::-;13721:16;13717:1;13709:6;13705:14;13698:40;13581:164;:::o;13751:366::-;13893:3;13914:67;13978:2;13973:3;13914:67;:::i;:::-;13907:74;;13990:93;14079:3;13990:93;:::i;:::-;14108:2;14103:3;14099:12;14092:19;;13751:366;;;:::o;14123:419::-;14289:4;14327:2;14316:9;14312:18;14304:26;;14376:9;14370:4;14366:20;14362:1;14351:9;14347:17;14340:47;14404:131;14530:4;14404:131;:::i;:::-;14396:139;;14123:419;;;:::o;14548:171::-;14688:23;14684:1;14676:6;14672:14;14665:47;14548:171;:::o;14725:366::-;14867:3;14888:67;14952:2;14947:3;14888:67;:::i;:::-;14881:74;;14964:93;15053:3;14964:93;:::i;:::-;15082:2;15077:3;15073:12;15066:19;;14725:366;;;:::o;15097:419::-;15263:4;15301:2;15290:9;15286:18;15278:26;;15350:9;15344:4;15340:20;15336:1;15325:9;15321:17;15314:47;15378:131;15504:4;15378:131;:::i;:::-;15370:139;;15097:419;;;:::o;15522:182::-;15662:34;15658:1;15650:6;15646:14;15639:58;15522:182;:::o;15710:366::-;15852:3;15873:67;15937:2;15932:3;15873:67;:::i;:::-;15866:74;;15949:93;16038:3;15949:93;:::i;:::-;16067:2;16062:3;16058:12;16051:19;;15710:366;;;:::o;16082:419::-;16248:4;16286:2;16275:9;16271:18;16263:26;;16335:9;16329:4;16325:20;16321:1;16310:9;16306:17;16299:47;16363:131;16489:4;16363:131;:::i;:::-;16355:139;;16082:419;;;:::o;16507:179::-;16647:31;16643:1;16635:6;16631:14;16624:55;16507:179;:::o;16692:366::-;16834:3;16855:67;16919:2;16914:3;16855:67;:::i;:::-;16848:74;;16931:93;17020:3;16931:93;:::i;:::-;17049:2;17044:3;17040:12;17033:19;;16692:366;;;:::o;17064:419::-;17230:4;17268:2;17257:9;17253:18;17245:26;;17317:9;17311:4;17307:20;17303:1;17292:9;17288:17;17281:47;17345:131;17471:4;17345:131;:::i;:::-;17337:139;;17064:419;;;:::o;17489:332::-;17610:4;17648:2;17637:9;17633:18;17625:26;;17661:71;17729:1;17718:9;17714:17;17705:6;17661:71;:::i;:::-;17742:72;17810:2;17799:9;17795:18;17786:6;17742:72;:::i;:::-;17489:332;;;;;:::o;17827:442::-;17976:4;18014:2;18003:9;17999:18;17991:26;;18027:71;18095:1;18084:9;18080:17;18071:6;18027:71;:::i;:::-;18108:72;18176:2;18165:9;18161:18;18152:6;18108:72;:::i;:::-;18190;18258:2;18247:9;18243:18;18234:6;18190:72;:::i;:::-;17827:442;;;;;;:::o;18275:90::-;18309:7;18352:5;18345:13;18338:21;18327:32;;18275:90;;;:::o;18371:116::-;18441:21;18456:5;18441:21;:::i;:::-;18434:5;18431:32;18421:60;;18477:1;18474;18467:12;18421:60;18371:116;:::o;18493:137::-;18547:5;18578:6;18572:13;18563:22;;18594:30;18618:5;18594:30;:::i;:::-;18493:137;;;;:::o;18636:345::-;18703:6;18752:2;18740:9;18731:7;18727:23;18723:32;18720:119;;;18758:79;;:::i;:::-;18720:119;18878:1;18903:61;18956:7;18947:6;18936:9;18932:22;18903:61;:::i;:::-;18893:71;;18849:125;18636:345;;;;:::o;18987:229::-;19127:34;19123:1;19115:6;19111:14;19104:58;19196:12;19191:2;19183:6;19179:15;19172:37;18987:229;:::o;19222:366::-;19364:3;19385:67;19449:2;19444:3;19385:67;:::i;:::-;19378:74;;19461:93;19550:3;19461:93;:::i;:::-;19579:2;19574:3;19570:12;19563:19;;19222:366;;;:::o;19594:419::-;19760:4;19798:2;19787:9;19783:18;19775:26;;19847:9;19841:4;19837:20;19833:1;19822:9;19818:17;19811:47;19875:131;20001:4;19875:131;:::i;:::-;19867:139;;19594:419;;;:::o;20019:179::-;20159:31;20155:1;20147:6;20143:14;20136:55;20019:179;:::o;20204:366::-;20346:3;20367:67;20431:2;20426:3;20367:67;:::i;:::-;20360:74;;20443:93;20532:3;20443:93;:::i;:::-;20561:2;20556:3;20552:12;20545:19;;20204:366;;;:::o;20576:419::-;20742:4;20780:2;20769:9;20765:18;20757:26;;20829:9;20823:4;20819:20;20815:1;20804:9;20800:17;20793:47;20857:131;20983:4;20857:131;:::i;:::-;20849:139;;20576:419;;;:::o;21001:98::-;21052:6;21086:5;21080:12;21070:22;;21001:98;;;:::o;21105:147::-;21206:11;21243:3;21228:18;;21105:147;;;;:::o;21258:139::-;21347:6;21342:3;21337;21331:23;21388:1;21379:6;21374:3;21370:16;21363:27;21258:139;;;:::o;21403:386::-;21507:3;21535:38;21567:5;21535:38;:::i;:::-;21589:88;21670:6;21665:3;21589:88;:::i;:::-;21582:95;;21686:65;21744:6;21739:3;21732:4;21725:5;21721:16;21686:65;:::i;:::-;21776:6;21771:3;21767:16;21760:23;;21511:278;21403:386;;;;:::o;21795:271::-;21925:3;21947:93;22036:3;22027:6;21947:93;:::i;:::-;21940:100;;22057:3;22050:10;;21795:271;;;;:::o;22072:99::-;22124:6;22158:5;22152:12;22142:22;;22072:99;;;:::o;22177:102::-;22218:6;22269:2;22265:7;22260:2;22253:5;22249:14;22245:28;22235:38;;22177:102;;;:::o;22285:377::-;22373:3;22401:39;22434:5;22401:39;:::i;:::-;22456:71;22520:6;22515:3;22456:71;:::i;:::-;22449:78;;22536:65;22594:6;22589:3;22582:4;22575:5;22571:16;22536:65;:::i;:::-;22626:29;22648:6;22626:29;:::i;:::-;22621:3;22617:39;22610:46;;22377:285;22285:377;;;;:::o;22668:313::-;22781:4;22819:2;22808:9;22804:18;22796:26;;22868:9;22862:4;22858:20;22854:1;22843:9;22839:17;22832:47;22896:78;22969:4;22960:6;22896:78;:::i;:::-;22888:86;;22668:313;;;;:::o

Swarm Source

ipfs://4c7012f75500f81bbea1c1454a30a270d19f1415b12ee94bf687405d58edf1c0

Block Transaction 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

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.