Sonic Blaze Testnet

Contract

0x296034c87b228B092bf51a13E41C96Cd21F1CBD0

Overview

S Balance

Sonic Blaze LogoSonic Blaze LogoSonic Blaze Logo59.221031 S

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw242277482025-03-02 22:09:2711 hrs ago1740953367IN
0x296034c8...d21F1CBD0
0 S0.000052411.1
Compound242188862025-03-02 21:16:1012 hrs ago1740950170IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound242162632025-03-02 21:00:3312 hrs ago1740949233IN
0x296034c8...d21F1CBD0
0 S0.000062271.1
Compound242160502025-03-02 20:59:1812 hrs ago1740949158IN
0x296034c8...d21F1CBD0
0 S0.000040191.1
Withdraw242159182025-03-02 20:58:3412 hrs ago1740949114IN
0x296034c8...d21F1CBD0
0 S0.00005461.1
Withdraw242134502025-03-02 20:43:3313 hrs ago1740948213IN
0x296034c8...d21F1CBD0
0 S0.000071161.1
Compound242115192025-03-02 20:31:5313 hrs ago1740947513IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound242113682025-03-02 20:30:5613 hrs ago1740947456IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound242106622025-03-02 20:26:3713 hrs ago1740947197IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound242098292025-03-02 20:21:3813 hrs ago1740946898IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241919442025-03-02 18:32:3115 hrs ago1740940351IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241862332025-03-02 17:57:4316 hrs ago1740938263IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241860332025-03-02 17:56:2916 hrs ago1740938189IN
0x296034c8...d21F1CBD0
0 S0.000040191.1
Compound241708762025-03-02 16:24:4617 hrs ago1740932686IN
0x296034c8...d21F1CBD0
0 S0.000062271.1
Deposit241706862025-03-02 16:23:3617 hrs ago1740932616IN
0x296034c8...d21F1CBD0
1 S0.000177351.1
Compound241693952025-03-02 16:15:4817 hrs ago1740932148IN
0x296034c8...d21F1CBD0
0 S0.000040191.1
Compound241691572025-03-02 16:14:2217 hrs ago1740932062IN
0x296034c8...d21F1CBD0
0 S0.000040191.1
Compound241689062025-03-02 16:12:5317 hrs ago1740931973IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241687112025-03-02 16:11:4317 hrs ago1740931903IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241681822025-03-02 16:08:3217 hrs ago1740931712IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241679472025-03-02 16:07:0617 hrs ago1740931626IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241677512025-03-02 16:05:5617 hrs ago1740931556IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241674042025-03-02 16:03:5117 hrs ago1740931431IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241670502025-03-02 16:01:4017 hrs ago1740931300IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
Compound241668192025-03-02 16:00:1517 hrs ago1740931215IN
0x296034c8...d21F1CBD0
0 S0.000043461.1
View all transactions

Latest 10 internal transactions

Parent Transaction Hash Block From To
242277482025-03-02 22:09:2711 hrs ago1740953367
0x296034c8...d21F1CBD0
0.02247 S
242159182025-03-02 20:58:3412 hrs ago1740949114
0x296034c8...d21F1CBD0
0.002002 S
242134502025-03-02 20:43:3313 hrs ago1740948213
0x296034c8...d21F1CBD0
0.014497 S
241706862025-03-02 16:23:3617 hrs ago1740932616
0x296034c8...d21F1CBD0
0.08 S
241706862025-03-02 16:23:3617 hrs ago1740932616
0x296034c8...d21F1CBD0
0.03 S
241658642025-03-02 15:54:2418 hrs ago1740930864
0x296034c8...d21F1CBD0
0.3 S
241622592025-03-02 15:32:3318 hrs ago1740929553
0x296034c8...d21F1CBD0
0.8 S
241622592025-03-02 15:32:3318 hrs ago1740929553
0x296034c8...d21F1CBD0
0.3 S
241542712025-03-02 14:45:0719 hrs ago1740926707
0x296034c8...d21F1CBD0
1.2 S
240869822025-03-02 8:09:0325 hrs ago1740902943
0x296034c8...d21F1CBD0
0.03 S
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SonicMiner

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at testnet.sonicscan.org on 2025-03-02
*/

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

contract SonicMiner {
    address public owner;
    address payable public marketingWallet;
    address payable public devWallet;
    address payable public devRewardWallet;
    uint256 public totalInvested;
    uint256 public totalWithdrawn;
    uint256 public totalDeposits;
    uint256 public totalReferralRewards;
    uint256 public totalDevReferralReinvested;

    uint256 public constant BASE_DAILY_PERCENT = 50; // 5.0% daily (50 / 1000)
    uint256 public constant BOOST_INCREMENT = 1; // 0.1% per day (1 / 1000)
    uint256 public constant MAX_BOOST_DAYS = 10;
    uint256 public constant REFERRAL_PERCENT = 80; // 8% referral reward
    uint256 public constant DEV_FEE = 30; // 3% dev fee
    uint256 public constant DEV_REFERRAL_BOOST = 170; // 17% boost if dev referral is used on Day 1
    uint256 public constant USER_REFERRAL_BOOST = 133; // 13.3% boost if normal user referral is used on Day 1
    uint256 public constant NORMAL_USER_BOOST = 50; // 5% base boost for normal investors
    uint256 public constant DEV_REFERRAL_REINVEST = 20; // 2% of dev referral reinvested into contract
    uint256 public constant DEV_TVL_REINVEST = 50; // 5% of dev referral goes back into TVL
    uint256 public constant DEV_DIRECT_REWARD = 50; // 5% of dev referral stays in dev reward wallet
    uint256[10] public TAX_SCHEDULE = [90, 80, 70, 60, 50, 40, 20, 15, 10, 5];

    struct User {
        uint256 invested;
        uint256 withdrawn;
        uint256 lastActionTime;
        uint256 boostDays;
        uint256 depositTime;
        address referrer;
        uint256 referralRewards;
        bool devReferralUsed;
        bool userReferralUsed;
    }

    mapping(address => User) public users;
    mapping(address => address[]) public referredUsers;

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

    event Deposit(address indexed user, uint256 amount);
    event Withdraw(address indexed user, uint256 amount, uint256 tax);
    event ReferralReward(
        address indexed referrer,
        address indexed user,
        uint256 amount
    );
    event Debug(string message);

    function getTaxSchedule(uint256 index) public view returns (uint256) {
        require(index < TAX_SCHEDULE.length, "Index out of bounds");
        return TAX_SCHEDULE[index];
    }

    function updateTaxSchedule(uint256[10] memory newTaxSchedule)
        external
        onlyOwner
    {
        TAX_SCHEDULE = newTaxSchedule;
    }

    function getReferralRewards(address user) public view returns (uint256) {
        return users[user].referralRewards;
    }

    function getReferredUsers(address user)
        public
        view
        returns (address[] memory)
    {
        return referredUsers[user];
    }

    function updateWallets(
        address payable _marketingWallet,
        address payable _devWallet,
        address payable _devRewardWallet
    ) external onlyOwner {
        marketingWallet = _marketingWallet;
        devWallet = _devWallet;
        devRewardWallet = _devRewardWallet;
    }

    function withdraw(uint256 amount) external {
        User storage user = users[msg.sender];
        require(
            block.timestamp >= user.depositTime + 1 minutes,
            "Withdrawals are restricted in the first 24 hours"
        );
        require(
            amount <= user.invested * 3,
            "Max single withdrawal limit exceeded"
        );
        require(
            block.timestamp - user.lastActionTime >= 1 minutes,
            "Can only withdraw once per day"
        );

        uint256 index = user.boostDays >= TAX_SCHEDULE.length
            ? TAX_SCHEDULE.length - 1
            : user.boostDays;
        uint256 taxRate = TAX_SCHEDULE[index];
        uint256 taxAmount = (amount * taxRate) / 100;
        uint256 netAmount = amount - taxAmount;

        user.withdrawn += amount;
        user.boostDays = 0;

        (bool success, ) = payable(msg.sender).call{value: netAmount}("");
        require(success, "Transfer failed");
        user.lastActionTime = block.timestamp;

        emit Withdraw(msg.sender, amount, taxAmount);
    }

    function compound() external {
        User storage user = users[msg.sender];
        require(user.invested > 0, "No investment found");
        require(
            block.timestamp - user.lastActionTime >= 1 minutes,
            "Can only compound once per minute"
        );

        // Get available rewards using the same time-based calculation
        uint256 earnings = getAvailableRewards(msg.sender);

        user.invested += earnings;
        user.boostDays = user.boostDays < MAX_BOOST_DAYS
            ? user.boostDays + 1
            : MAX_BOOST_DAYS;
        user.lastActionTime = block.timestamp;

        emit Deposit(msg.sender, earnings);
    }

    function deposit(address referrer) external payable {
        require(msg.value > 0, "Must send Sonic");

        uint256 devFee = (msg.value * DEV_FEE) / 1000;
        uint256 depositAmount = msg.value - devFee;

        (bool devSuccess, ) = devWallet.call{value: devFee}("");
        if (!devSuccess) {
            emit Debug("Dev fee transfer failed");
        }

        User storage user = users[msg.sender];
        user.invested += depositAmount;
        user.lastActionTime = block.timestamp;
        user.depositTime = block.timestamp;

        if (
            referrer != address(0) &&
            referrer != msg.sender &&
            users[referrer].invested > 0
        ) {
            uint256 referralReward = (msg.value * REFERRAL_PERCENT) / 1000;
            (bool refSuccess, ) = payable(referrer).call{value: referralReward}(
                ""
            );
            if (!refSuccess) {
                emit Debug("Referral reward transfer failed");
            }
            users[referrer].referralRewards += referralReward;
            totalReferralRewards += referralReward;
            referredUsers[referrer].push(msg.sender);
        }

        totalInvested += depositAmount;
        totalDeposits++;

        emit Deposit(msg.sender, depositAmount);
    }

    /**
     * @dev Calculates available rewards for a user based on their current investment and boost
     * @param userAddress Address of the user to check
     * @return Amount of rewards currently available
     */
    function getAvailableRewards(address userAddress)
        public
        view
        returns (uint256)
    {
        User storage user = users[userAddress];
        if (user.invested == 0) {
            return 0;
        }

        // Calculate time elapsed since last action (in seconds)
        uint256 timeElapsed = block.timestamp - user.lastActionTime;

        // Calculate daily percent with boost
        uint256 dailyPercent = BASE_DAILY_PERCENT +
            (user.boostDays * BOOST_INCREMENT);

        // Convert daily rate to time-proportional rate
        // 86400 seconds in a day
        uint256 earnings = (user.invested * dailyPercent * timeElapsed) /
            (86400 * 1000);

        return earnings;
    }

    /**
     * @dev Returns the current tax rate for a user based on their boost days
     * @param userAddress Address of the user to check
     * @return Current tax rate percentage
     */
    function getCurrentTaxRate(address userAddress)
        public
        view
        returns (uint256)
    {
        User storage user = users[userAddress];
        uint256 index = user.boostDays >= TAX_SCHEDULE.length
            ? TAX_SCHEDULE.length - 1
            : user.boostDays;
        return TAX_SCHEDULE[index];
    }

    function getUserInfo(address userAddress)
        public
        view
        returns (
            uint256 invested,
            uint256 withdrawn,
            uint256 availableRewards,
            uint256 boostDays,
            uint256 currentDailyRate,
            uint256 currentTaxRate,
            uint256 referralRewards,
            uint256 lastActionTime,
            uint256 depositTime
        )
    {
        User storage user = users[userAddress];

        // Calculate daily percent with boost
        uint256 dailyPercent = BASE_DAILY_PERCENT +
            (user.boostDays * BOOST_INCREMENT);

        // Calculate time-based rewards
        uint256 timeElapsed = block.timestamp - user.lastActionTime;
        uint256 earnings = 0;

        if (user.invested > 0) {
            // Convert daily rate to time-proportional rate (86400 seconds in a day)
            earnings =
                (user.invested * dailyPercent * timeElapsed) /
                (86400 * 1000);
        }

        // Get current tax rate
        uint256 index = user.boostDays >= TAX_SCHEDULE.length
            ? TAX_SCHEDULE.length - 1
            : user.boostDays;
        uint256 taxRate = TAX_SCHEDULE[index];

        return (
            user.invested,
            user.withdrawn,
            earnings,
            user.boostDays,
            dailyPercent,
            taxRate,
            user.referralRewards,
            user.lastActionTime,
            user.depositTime
        );
    }

    constructor() {
        owner = msg.sender;
        marketingWallet = payable(0x2c5896b947882Bf265A43996bB735b247C6DA0ce);
        devWallet = payable(0xc31354e0178D3B7abaa992C6aCD6929B657E6bC5);
        devRewardWallet = payable(0xeB79bF0ed0eC013A45BfD3Ed2B44e81349b7e2a9);
    }
}

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"Debug","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ReferralReward","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":"tax","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"BASE_DAILY_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BOOST_INCREMENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_DIRECT_REWARD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_REFERRAL_BOOST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_REFERRAL_REINVEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_TVL_REINVEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BOOST_DAYS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NORMAL_USER_BOOST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERRAL_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"TAX_SCHEDULE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USER_REFERRAL_BOOST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referrer","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"devRewardWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getAvailableRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getCurrentTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getReferralRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getReferredUsers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTaxSchedule","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"uint256","name":"invested","type":"uint256"},{"internalType":"uint256","name":"withdrawn","type":"uint256"},{"internalType":"uint256","name":"availableRewards","type":"uint256"},{"internalType":"uint256","name":"boostDays","type":"uint256"},{"internalType":"uint256","name":"currentDailyRate","type":"uint256"},{"internalType":"uint256","name":"currentTaxRate","type":"uint256"},{"internalType":"uint256","name":"referralRewards","type":"uint256"},{"internalType":"uint256","name":"lastActionTime","type":"uint256"},{"internalType":"uint256","name":"depositTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"referredUsers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDevReferralReinvested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInvested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReferralRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[10]","name":"newTaxSchedule","type":"uint256[10]"}],"name":"updateTaxSchedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_marketingWallet","type":"address"},{"internalType":"address payable","name":"_devWallet","type":"address"},{"internalType":"address payable","name":"_devRewardWallet","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"invested","type":"uint256"},{"internalType":"uint256","name":"withdrawn","type":"uint256"},{"internalType":"uint256","name":"lastActionTime","type":"uint256"},{"internalType":"uint256","name":"boostDays","type":"uint256"},{"internalType":"uint256","name":"depositTime","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"referralRewards","type":"uint256"},{"internalType":"bool","name":"devReferralUsed","type":"bool"},{"internalType":"bool","name":"userReferralUsed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101c0604052605a6080908152605060a052604660c052603c60e052603261010052602861012052601461014052600f61016052600a61018081905260056101a05261004d916009916100ce565b50348015610059575f80fd5b505f80546001600160a01b03199081163317909155600180548216732c5896b947882bf265a43996bb735b247c6da0ce17905560028054821673c31354e0178d3b7abaa992c6acd6929b657e6bc51790556003805490911673eb79bf0ed0ec013a45bfd3ed2b44e81349b7e2a9179055610125565b82600a8101928215610101579160200282015b82811115610101578251829060ff169055916020019190600101906100e1565b5061010d929150610111565b5090565b5b8082111561010d575f8155600101610112565b61146780620001335f395ff3fe6080604052600436106101f1575f3560e01c806375f0a87411610108578063a87430ba1161009d578063e92820e61161006d578063e92820e6146105f4578063ef97f1c914610613578063f340fa0114610627578063f359f66214610388578063f69e20461461063a575f80fd5b8063a87430ba146104c6578063ad04673f14610589578063b9663e0e1461059e578063e851c272146105d5575f80fd5b80638da5cb5b116100d85780638da5cb5b1461046a5780638ea5220f14610488578063999127ee146104a75780639f99122f14610388575f80fd5b806375f0a874146103ff5780637d88209714610436578063860a8b0a14610388578063873e31fa1461044b575f80fd5b8063436a88c1116101895780634dd3db01116101595780634dd3db01146103355780635216aeec14610354578063607e14ee146103695780636373db65146103885780636386c1c71461039c575f80fd5b8063436a88c1146102e3578063441b55b1146102f75780634b3197131461030c5780634c8adc9d14610321575f80fd5b80632e1a7d4d116101c45780632e1a7d4d14610270578063328644c61461028f57806332e5b6d8146102a357806333a8915a146102cf575f80fd5b806304cdb842146101f557806305cfaf8e1461021c578063147c9f6d1461023d57806315bedb911461025c575b5f80fd5b348015610200575f80fd5b50610209600181565b6040519081526020015b60405180910390f35b348015610227575f80fd5b5061023b6102363660046111fa565b61064e565b005b348015610248575f80fd5b5061023b610257366004611298565b6106ae565b348015610267575f80fd5b5061020960aa81565b34801561027b575f80fd5b5061023b61028a3660046112e0565b610737565b34801561029a575f80fd5b50610209600a81565b3480156102ae575f80fd5b506102c26102bd3660046112f7565b6109d8565b6040516102139190611319565b3480156102da575f80fd5b50610209605081565b3480156102ee575f80fd5b50610209601e81565b348015610302575f80fd5b5061020960085481565b348015610317575f80fd5b5061020960055481565b34801561032c575f80fd5b50610209601481565b348015610340575f80fd5b5061020961034f3660046112e0565b610a4b565b34801561035f575f80fd5b5061020960045481565b348015610374575f80fd5b506102096103833660046112f7565b610aad565b348015610393575f80fd5b50610209603281565b3480156103a7575f80fd5b506103bb6103b63660046112f7565b610b08565b60408051998a5260208a0198909852968801959095526060870193909352608086019190915260a085015260c084015260e083015261010082015261012001610213565b34801561040a575f80fd5b5060015461041e906001600160a01b031681565b6040516001600160a01b039091168152602001610213565b348015610441575f80fd5b5061020960065481565b348015610456575f80fd5b506102096104653660046112f7565b610c22565b348015610475575f80fd5b505f5461041e906001600160a01b031681565b348015610493575f80fd5b5060025461041e906001600160a01b031681565b3480156104b2575f80fd5b5060035461041e906001600160a01b031681565b3480156104d1575f80fd5b506105386104e03660046112f7565b60136020525f908152604090208054600182015460028301546003840154600485015460058601546006870154600790970154959694959394929391926001600160a01b039091169160ff8082169161010090041689565b60408051998a5260208a019890985296880195909552606087019390935260808601919091526001600160a01b031660a085015260c0840152151560e0830152151561010082015261012001610213565b348015610594575f80fd5b5061020960075481565b3480156105a9575f80fd5b506102096105b83660046112f7565b6001600160a01b03165f9081526013602052604090206006015490565b3480156105e0575f80fd5b506102096105ef3660046112e0565b610caf565b3480156105ff575f80fd5b5061041e61060e366004611365565b610cc5565b34801561061e575f80fd5b50610209608581565b61023b6106353660046112f7565b610cf9565b348015610645575f80fd5b5061023b611062565b5f546001600160a01b0316331461069d5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064015b60405180910390fd5b6106aa600982600a6111a8565b5050565b5f546001600160a01b031633146106f85760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610694565b600180546001600160a01b039485166001600160a01b031991821617909155600280549385169382169390931790925560038054919093169116179055565b335f908152601360205260409020600481015461075590603c6113a3565b4210156107bd5760405162461bcd60e51b815260206004820152603060248201527f5769746864726177616c7320617265207265737472696374656420696e20746860448201526f6520666972737420323420686f75727360801b6064820152608401610694565b80546107ca9060036113bc565b8211156108255760405162461bcd60e51b8152602060048201526024808201527f4d61782073696e676c65207769746864726177616c206c696d697420657863656044820152631959195960e21b6064820152608401610694565b603c81600201544261083791906113d3565b10156108855760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79207769746864726177206f6e6365207065722064617900006044820152606401610694565b5f600a8260030154101561089d5781600301546108a9565b6108a96001600a6113d3565b90505f600982600a81106108bf576108bf6113e6565b015490505f60646108d083876113bc565b6108da91906113fa565b90505f6108e782876113d3565b905085856001015f8282546108fc91906113a3565b90915550505f60038601819055604051339083908381818185875af1925050503d805f8114610946576040519150601f19603f3d011682016040523d82523d5f602084013e61094b565b606091505b505090508061098e5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610694565b426002870155604080518881526020810185905233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a250505050505050565b6001600160a01b0381165f90815260146020908152604091829020805483518184028101840190945280845260609392830182828015610a3f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610a21575b50505050509050919050565b5f600a8210610a925760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610694565b600982600a8110610aa557610aa56113e6565b015492915050565b6001600160a01b0381165f90815260136020526040812060038101548290600a1115610add578160030154610ae9565b610ae96001600a6113d3565b9050600981600a8110610afe57610afe6113e6565b0154949350505050565b5f805f805f805f805f8060135f8c6001600160a01b03166001600160a01b031681526020019081526020015f2090505f60018260030154610b4991906113bc565b610b549060326113a3565b90505f826002015442610b6791906113d3565b83549091505f9015610b9f576305265c008284865f0154610b8891906113bc565b610b9291906113bc565b610b9c91906113fa565b90505b5f600a85600301541015610bb7578460030154610bc3565b610bc36001600a6113d3565b90505f600982600a8110610bd957610bd96113e6565b01549050855f0154866001015484886003015488858b600601548c600201548d600401549e509e509e509e509e509e509e509e509e505050505050509193959799909294969850565b6001600160a01b0381165f90815260136020526040812080548203610c4957505f92915050565b5f816002015442610c5a91906113d3565b90505f60018360030154610c6e91906113bc565b610c799060326113a3565b90505f6305265c008383865f0154610c9191906113bc565b610c9b91906113bc565b610ca591906113fa565b9695505050505050565b600981600a8110610cbe575f80fd5b0154905081565b6014602052815f5260405f208181548110610cde575f80fd5b5f918252602090912001546001600160a01b03169150829050565b5f3411610d3a5760405162461bcd60e51b815260206004820152600f60248201526e4d7573742073656e6420536f6e696360881b6044820152606401610694565b5f6103e8610d49601e346113bc565b610d5391906113fa565b90505f610d6082346113d3565b6002546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114610daf576040519150601f19603f3d011682016040523d82523d5f602084013e610db4565b606091505b5050905080610e25577f7cdb51e9dbbc205231228146c3246e7f914aa6d4a33170e43ecc8e3593481d1a604051610e1c9060208082526017908201527f44657620666565207472616e73666572206661696c6564000000000000000000604082015260600190565b60405180910390a15b335f908152601360205260408120805490918491839190610e479084906113a3565b9091555050426002820181905560048201556001600160a01b03851615801590610e7a57506001600160a01b0385163314155b8015610e9c57506001600160a01b0385165f9081526013602052604090205415155b15610ffc575f6103e8610eb06050346113bc565b610eba91906113fa565b90505f866001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610f05576040519150601f19603f3d011682016040523d82523d5f602084013e610f0a565b606091505b5050905080610f7b577f7cdb51e9dbbc205231228146c3246e7f914aa6d4a33170e43ecc8e3593481d1a604051610f72906020808252601f908201527f526566657272616c20726577617264207472616e73666572206661696c656400604082015260600190565b60405180910390a15b6001600160a01b0387165f9081526013602052604081206006018054849290610fa59084906113a3565b925050819055508160075f828254610fbd91906113a3565b9091555050506001600160a01b0386165f9081526014602090815260408220805460018101825590835291200180546001600160a01b03191633179055505b8260045f82825461100d91906113a3565b909155505060068054905f61102183611419565b909155505060405183815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a25050505050565b335f90815260136020526040902080546110b45760405162461bcd60e51b8152602060048201526013602482015272139bc81a5b9d995cdd1b595b9d08199bdd5b99606a1b6044820152606401610694565b603c8160020154426110c691906113d3565b101561111e5760405162461bcd60e51b815260206004820152602160248201527f43616e206f6e6c7920636f6d706f756e64206f6e636520706572206d696e75746044820152606560f81b6064820152608401610694565b5f61112833610c22565b905080825f015f82825461113c91906113a3565b90915550506003820154600a1161115457600a611164565b60038201546111649060016113a3565b600383015542600283015560405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a25050565b82600a81019282156111d6579160200282015b828111156111d65782518255916020019190600101906111bb565b506111e29291506111e6565b5090565b5b808211156111e2575f81556001016111e7565b5f61014080838503121561120c575f80fd5b83601f84011261121a575f80fd5b60405181810181811067ffffffffffffffff8211171561124857634e487b7160e01b5f52604160045260245ffd5b60405290830190808583111561125c575f80fd5b845b8381101561127657803582526020918201910161125e565b509095945050505050565b6001600160a01b0381168114611295575f80fd5b50565b5f805f606084860312156112aa575f80fd5b83356112b581611281565b925060208401356112c581611281565b915060408401356112d581611281565b809150509250925092565b5f602082840312156112f0575f80fd5b5035919050565b5f60208284031215611307575f80fd5b813561131281611281565b9392505050565b602080825282518282018190525f9190848201906040850190845b818110156113595783516001600160a01b031683529284019291840191600101611334565b50909695505050505050565b5f8060408385031215611376575f80fd5b823561138181611281565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156113b6576113b661138f565b92915050565b80820281158282048414176113b6576113b661138f565b818103818111156113b6576113b661138f565b634e487b7160e01b5f52603260045260245ffd5b5f8261141457634e487b7160e01b5f52601260045260245ffd5b500490565b5f6001820161142a5761142a61138f565b506001019056fea26469706673582212202ce522d9406f643a16597cea2b5595cfad917fffe633a2d48123b264d63ed0b464736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101f1575f3560e01c806375f0a87411610108578063a87430ba1161009d578063e92820e61161006d578063e92820e6146105f4578063ef97f1c914610613578063f340fa0114610627578063f359f66214610388578063f69e20461461063a575f80fd5b8063a87430ba146104c6578063ad04673f14610589578063b9663e0e1461059e578063e851c272146105d5575f80fd5b80638da5cb5b116100d85780638da5cb5b1461046a5780638ea5220f14610488578063999127ee146104a75780639f99122f14610388575f80fd5b806375f0a874146103ff5780637d88209714610436578063860a8b0a14610388578063873e31fa1461044b575f80fd5b8063436a88c1116101895780634dd3db01116101595780634dd3db01146103355780635216aeec14610354578063607e14ee146103695780636373db65146103885780636386c1c71461039c575f80fd5b8063436a88c1146102e3578063441b55b1146102f75780634b3197131461030c5780634c8adc9d14610321575f80fd5b80632e1a7d4d116101c45780632e1a7d4d14610270578063328644c61461028f57806332e5b6d8146102a357806333a8915a146102cf575f80fd5b806304cdb842146101f557806305cfaf8e1461021c578063147c9f6d1461023d57806315bedb911461025c575b5f80fd5b348015610200575f80fd5b50610209600181565b6040519081526020015b60405180910390f35b348015610227575f80fd5b5061023b6102363660046111fa565b61064e565b005b348015610248575f80fd5b5061023b610257366004611298565b6106ae565b348015610267575f80fd5b5061020960aa81565b34801561027b575f80fd5b5061023b61028a3660046112e0565b610737565b34801561029a575f80fd5b50610209600a81565b3480156102ae575f80fd5b506102c26102bd3660046112f7565b6109d8565b6040516102139190611319565b3480156102da575f80fd5b50610209605081565b3480156102ee575f80fd5b50610209601e81565b348015610302575f80fd5b5061020960085481565b348015610317575f80fd5b5061020960055481565b34801561032c575f80fd5b50610209601481565b348015610340575f80fd5b5061020961034f3660046112e0565b610a4b565b34801561035f575f80fd5b5061020960045481565b348015610374575f80fd5b506102096103833660046112f7565b610aad565b348015610393575f80fd5b50610209603281565b3480156103a7575f80fd5b506103bb6103b63660046112f7565b610b08565b60408051998a5260208a0198909852968801959095526060870193909352608086019190915260a085015260c084015260e083015261010082015261012001610213565b34801561040a575f80fd5b5060015461041e906001600160a01b031681565b6040516001600160a01b039091168152602001610213565b348015610441575f80fd5b5061020960065481565b348015610456575f80fd5b506102096104653660046112f7565b610c22565b348015610475575f80fd5b505f5461041e906001600160a01b031681565b348015610493575f80fd5b5060025461041e906001600160a01b031681565b3480156104b2575f80fd5b5060035461041e906001600160a01b031681565b3480156104d1575f80fd5b506105386104e03660046112f7565b60136020525f908152604090208054600182015460028301546003840154600485015460058601546006870154600790970154959694959394929391926001600160a01b039091169160ff8082169161010090041689565b60408051998a5260208a019890985296880195909552606087019390935260808601919091526001600160a01b031660a085015260c0840152151560e0830152151561010082015261012001610213565b348015610594575f80fd5b5061020960075481565b3480156105a9575f80fd5b506102096105b83660046112f7565b6001600160a01b03165f9081526013602052604090206006015490565b3480156105e0575f80fd5b506102096105ef3660046112e0565b610caf565b3480156105ff575f80fd5b5061041e61060e366004611365565b610cc5565b34801561061e575f80fd5b50610209608581565b61023b6106353660046112f7565b610cf9565b348015610645575f80fd5b5061023b611062565b5f546001600160a01b0316331461069d5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b60448201526064015b60405180910390fd5b6106aa600982600a6111a8565b5050565b5f546001600160a01b031633146106f85760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610694565b600180546001600160a01b039485166001600160a01b031991821617909155600280549385169382169390931790925560038054919093169116179055565b335f908152601360205260409020600481015461075590603c6113a3565b4210156107bd5760405162461bcd60e51b815260206004820152603060248201527f5769746864726177616c7320617265207265737472696374656420696e20746860448201526f6520666972737420323420686f75727360801b6064820152608401610694565b80546107ca9060036113bc565b8211156108255760405162461bcd60e51b8152602060048201526024808201527f4d61782073696e676c65207769746864726177616c206c696d697420657863656044820152631959195960e21b6064820152608401610694565b603c81600201544261083791906113d3565b10156108855760405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79207769746864726177206f6e6365207065722064617900006044820152606401610694565b5f600a8260030154101561089d5781600301546108a9565b6108a96001600a6113d3565b90505f600982600a81106108bf576108bf6113e6565b015490505f60646108d083876113bc565b6108da91906113fa565b90505f6108e782876113d3565b905085856001015f8282546108fc91906113a3565b90915550505f60038601819055604051339083908381818185875af1925050503d805f8114610946576040519150601f19603f3d011682016040523d82523d5f602084013e61094b565b606091505b505090508061098e5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610694565b426002870155604080518881526020810185905233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a250505050505050565b6001600160a01b0381165f90815260146020908152604091829020805483518184028101840190945280845260609392830182828015610a3f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610a21575b50505050509050919050565b5f600a8210610a925760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610694565b600982600a8110610aa557610aa56113e6565b015492915050565b6001600160a01b0381165f90815260136020526040812060038101548290600a1115610add578160030154610ae9565b610ae96001600a6113d3565b9050600981600a8110610afe57610afe6113e6565b0154949350505050565b5f805f805f805f805f8060135f8c6001600160a01b03166001600160a01b031681526020019081526020015f2090505f60018260030154610b4991906113bc565b610b549060326113a3565b90505f826002015442610b6791906113d3565b83549091505f9015610b9f576305265c008284865f0154610b8891906113bc565b610b9291906113bc565b610b9c91906113fa565b90505b5f600a85600301541015610bb7578460030154610bc3565b610bc36001600a6113d3565b90505f600982600a8110610bd957610bd96113e6565b01549050855f0154866001015484886003015488858b600601548c600201548d600401549e509e509e509e509e509e509e509e509e505050505050509193959799909294969850565b6001600160a01b0381165f90815260136020526040812080548203610c4957505f92915050565b5f816002015442610c5a91906113d3565b90505f60018360030154610c6e91906113bc565b610c799060326113a3565b90505f6305265c008383865f0154610c9191906113bc565b610c9b91906113bc565b610ca591906113fa565b9695505050505050565b600981600a8110610cbe575f80fd5b0154905081565b6014602052815f5260405f208181548110610cde575f80fd5b5f918252602090912001546001600160a01b03169150829050565b5f3411610d3a5760405162461bcd60e51b815260206004820152600f60248201526e4d7573742073656e6420536f6e696360881b6044820152606401610694565b5f6103e8610d49601e346113bc565b610d5391906113fa565b90505f610d6082346113d3565b6002546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114610daf576040519150601f19603f3d011682016040523d82523d5f602084013e610db4565b606091505b5050905080610e25577f7cdb51e9dbbc205231228146c3246e7f914aa6d4a33170e43ecc8e3593481d1a604051610e1c9060208082526017908201527f44657620666565207472616e73666572206661696c6564000000000000000000604082015260600190565b60405180910390a15b335f908152601360205260408120805490918491839190610e479084906113a3565b9091555050426002820181905560048201556001600160a01b03851615801590610e7a57506001600160a01b0385163314155b8015610e9c57506001600160a01b0385165f9081526013602052604090205415155b15610ffc575f6103e8610eb06050346113bc565b610eba91906113fa565b90505f866001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610f05576040519150601f19603f3d011682016040523d82523d5f602084013e610f0a565b606091505b5050905080610f7b577f7cdb51e9dbbc205231228146c3246e7f914aa6d4a33170e43ecc8e3593481d1a604051610f72906020808252601f908201527f526566657272616c20726577617264207472616e73666572206661696c656400604082015260600190565b60405180910390a15b6001600160a01b0387165f9081526013602052604081206006018054849290610fa59084906113a3565b925050819055508160075f828254610fbd91906113a3565b9091555050506001600160a01b0386165f9081526014602090815260408220805460018101825590835291200180546001600160a01b03191633179055505b8260045f82825461100d91906113a3565b909155505060068054905f61102183611419565b909155505060405183815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a25050505050565b335f90815260136020526040902080546110b45760405162461bcd60e51b8152602060048201526013602482015272139bc81a5b9d995cdd1b595b9d08199bdd5b99606a1b6044820152606401610694565b603c8160020154426110c691906113d3565b101561111e5760405162461bcd60e51b815260206004820152602160248201527f43616e206f6e6c7920636f6d706f756e64206f6e636520706572206d696e75746044820152606560f81b6064820152608401610694565b5f61112833610c22565b905080825f015f82825461113c91906113a3565b90915550506003820154600a1161115457600a611164565b60038201546111649060016113a3565b600383015542600283015560405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a25050565b82600a81019282156111d6579160200282015b828111156111d65782518255916020019190600101906111bb565b506111e29291506111e6565b5090565b5b808211156111e2575f81556001016111e7565b5f61014080838503121561120c575f80fd5b83601f84011261121a575f80fd5b60405181810181811067ffffffffffffffff8211171561124857634e487b7160e01b5f52604160045260245ffd5b60405290830190808583111561125c575f80fd5b845b8381101561127657803582526020918201910161125e565b509095945050505050565b6001600160a01b0381168114611295575f80fd5b50565b5f805f606084860312156112aa575f80fd5b83356112b581611281565b925060208401356112c581611281565b915060408401356112d581611281565b809150509250925092565b5f602082840312156112f0575f80fd5b5035919050565b5f60208284031215611307575f80fd5b813561131281611281565b9392505050565b602080825282518282018190525f9190848201906040850190845b818110156113595783516001600160a01b031683529284019291840191600101611334565b50909695505050505050565b5f8060408385031215611376575f80fd5b823561138181611281565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156113b6576113b661138f565b92915050565b80820281158282048414176113b6576113b661138f565b818103818111156113b6576113b661138f565b634e487b7160e01b5f52603260045260245ffd5b5f8261141457634e487b7160e01b5f52601260045260245ffd5b500490565b5f6001820161142a5761142a61138f565b506001019056fea26469706673582212202ce522d9406f643a16597cea2b5595cfad917fffe633a2d48123b264d63ed0b464736f6c63430008140033

Deployed Bytecode Sourcemap

61:9653:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;522:43;;;;;;;;;;;;564:1;522:43;;;;;160:25:1;;;148:2;133:18;522:43:0;;;;;;;;2455:152;;;;;;;;;;-1:-1:-1;2455:152:0;;;;;:::i;:::-;;:::i;:::-;;2912:303;;;;;;;;;;-1:-1:-1;2912:303:0;;;;;:::i;:::-;;:::i;780:48::-;;;;;;;;;;;;825:3;780:48;;3223:1102;;;;;;;;;;-1:-1:-1;3223:1102:0;;;;;:::i;:::-;;:::i;599:43::-;;;;;;;;;;;;640:2;599:43;;2748:156;;;;;;;;;;-1:-1:-1;2748:156:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;649:45::-;;;;;;;;;;;;692:2;649:45;;723:36;;;;;;;;;;;;757:2;723:36;;392:41;;;;;;;;;;;;;;;;279:29;;;;;;;;;;;;;;;;1084:50;;;;;;;;;;;;1132:2;1084:50;;2263:184;;;;;;;;;;-1:-1:-1;2263:184:0;;;;;:::i;:::-;;:::i;244:28::-;;;;;;;;;;;;;;;;7537:337;;;;;;;;;;-1:-1:-1;7537:337:0;;;;;:::i;:::-;;:::i;1281:46::-;;;;;;;;;;;;1325:2;1281:46;;7882:1536;;;;;;;;;;-1:-1:-1;7882:1536:0;;;;;:::i;:::-;;:::i;:::-;;;;3284:25:1;;;3340:2;3325:18;;3318:34;;;;3368:18;;;3361:34;;;;3426:2;3411:18;;3404:34;;;;3469:3;3454:19;;3447:35;;;;3513:3;3498:19;;3491:35;3557:3;3542:19;;3535:35;3601:3;3586:19;;3579:35;3645:3;3630:19;;3623:35;3271:3;3256:19;7882:1536:0;2913:751:1;115:38:0;;;;;;;;;;-1:-1:-1;115:38:0;;;;-1:-1:-1;;;;;115:38:0;;;;;;-1:-1:-1;;;;;3849:32:1;;;3831:51;;3819:2;3804:18;115:38:0;3669:219:1;315:28:0;;;;;;;;;;;;;;;;6579:753;;;;;;;;;;-1:-1:-1;6579:753:0;;;;;:::i;:::-;;:::i;88:20::-;;;;;;;;;;-1:-1:-1;88:20:0;;;;-1:-1:-1;;;;;88:20:0;;;160:32;;;;;;;;;;-1:-1:-1;160:32:0;;;;-1:-1:-1;;;;;160:32:0;;;199:38;;;;;;;;;;-1:-1:-1;199:38:0;;;;-1:-1:-1;;;;;199:38:0;;;1763:37;;;;;;;;;;-1:-1:-1;1763:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1763:37:0;;;;;;;;;;;;;;;;;;;4460:25:1;;;4516:2;4501:18;;4494:34;;;;4544:18;;;4537:34;;;;4602:2;4587:18;;4580:34;;;;4645:3;4630:19;;4623:35;;;;-1:-1:-1;;;;;4695:32:1;4715:3;4674:19;;4667:61;4759:3;4744:19;;4737:35;4816:14;4809:22;4803:3;4788:19;;4781:51;4876:14;4869:22;4863:3;4848:19;;4841:51;4447:3;4432:19;1763:37:0;4101:797:1;350:35:0;;;;;;;;;;;;;;;;2615:125;;;;;;;;;;-1:-1:-1;2615:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;2705:11:0;2678:7;2705:11;;;:5;:11;;;;;:27;;;;2615:125;1383:73;;;;;;;;;;-1:-1:-1;1383:73:0;;;;;:::i;:::-;;:::i;1807:50::-;;;;;;;;;;-1:-1:-1;1807:50:0;;;;;:::i;:::-;;:::i;881:49::-;;;;;;;;;;;;927:3;881:49;;5021:1325;;;;;;:::i;:::-;;:::i;4333:680::-;;;;;;;;;;;;;:::i;2455:152::-;1920:5;;-1:-1:-1;;;;;1920:5:0;1906:10;:19;1898:46;;;;-1:-1:-1;;;1898:46:0;;5433:2:1;1898:46:0;;;5415:21:1;5472:2;5452:18;;;5445:30;-1:-1:-1;;;5491:18:1;;;5484:44;5545:18;;1898:46:0;;;;;;;;;2570:29:::1;:12;2585:14:::0;2570:29:::1;;:::i;:::-;;2455:152:::0;:::o;2912:303::-;1920:5;;-1:-1:-1;;;;;1920:5:0;1906:10;:19;1898:46;;;;-1:-1:-1;;;1898:46:0;;5433:2:1;1898:46:0;;;5415:21:1;5472:2;5452:18;;;5445:30;-1:-1:-1;;;5491:18:1;;;5484:44;5545:18;;1898:46:0;5231:338:1;1898:46:0;3095:15:::1;:34:::0;;-1:-1:-1;;;;;3095:34:0;;::::1;-1:-1:-1::0;;;;;;3095:34:0;;::::1;;::::0;;;3140:9:::1;:22:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;3173:15:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;2912:303::o;3223:1102::-;3303:10;3277:17;3297;;;:5;:17;;;;;3366:16;;;;:28;;3385:9;3366:28;:::i;:::-;3347:15;:47;;3325:145;;;;-1:-1:-1;;;3325:145:0;;6038:2:1;3325:145:0;;;6020:21:1;6077:2;6057:18;;;6050:30;6116:34;6096:18;;;6089:62;-1:-1:-1;;;6167:18:1;;;6160:46;6223:19;;3325:145:0;5836:412:1;3325:145:0;3513:13;;:17;;3529:1;3513:17;:::i;:::-;3503:6;:27;;3481:113;;;;-1:-1:-1;;;3481:113:0;;6628:2:1;3481:113:0;;;6610:21:1;6667:2;6647:18;;;6640:30;6706:34;6686:18;;;6679:62;-1:-1:-1;;;6757:18:1;;;6750:34;6801:19;;3481:113:0;6426:400:1;3481:113:0;3668:9;3645:4;:19;;;3627:15;:37;;;;:::i;:::-;:50;;3605:130;;;;-1:-1:-1;;;3605:130:0;;7166:2:1;3605:130:0;;;7148:21:1;7205:2;7185:18;;;7178:30;7244:32;7224:18;;;7217:60;7294:18;;3605:130:0;6964:354:1;3605:130:0;3748:13;3782:19;3764:4;:14;;;:37;;:106;;3856:4;:14;;;3764:106;;;3817:23;3839:1;3817:19;:23;:::i;:::-;3748:122;;3881:15;3899:12;3912:5;3899:19;;;;;;;:::i;:::-;;;;-1:-1:-1;3929:17:0;3970:3;3950:16;3899:19;3950:6;:16;:::i;:::-;3949:24;;;;:::i;:::-;3929:44;-1:-1:-1;3984:17:0;4004:18;3929:44;4004:6;:18;:::i;:::-;3984:38;;4053:6;4035:4;:14;;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;4087:1:0;4070:14;;;:18;;;4120:46;;4128:10;;4152:9;;4087:1;4120:46;4087:1;4120:46;4152:9;4128:10;4120:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4101:65;;;4185:7;4177:35;;;;-1:-1:-1;;;4177:35:0;;8089:2:1;4177:35:0;;;8071:21:1;8128:2;8108:18;;;8101:30;-1:-1:-1;;;8147:18:1;;;8140:45;8202:18;;4177:35:0;7887:339:1;4177:35:0;4245:15;4223:19;;;:37;4278:39;;;8405:25:1;;;8461:2;8446:18;;8439:34;;;4287:10:0;;4278:39;;8378:18:1;4278:39:0;;;;;;;3266:1059;;;;;;3223:1102;:::o;2748:156::-;-1:-1:-1;;;;;2877:19:0;;;;;;:13;:19;;;;;;;;;2870:26;;;;;;;;;;;;;;;;;2836:16;;2870:26;;;2877:19;2870:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2870:26:0;;;;;;;;;;;;;;;;;;;;;;;2748:156;;;:::o;2263:184::-;2323:7;2359:19;2351:5;:27;2343:59;;;;-1:-1:-1;;;2343:59:0;;8686:2:1;2343:59:0;;;8668:21:1;8725:2;8705:18;;;8698:30;-1:-1:-1;;;8744:18:1;;;8737:49;8803:18;;2343:59:0;8484:343:1;2343:59:0;2420:12;2433:5;2420:19;;;;;;;:::i;:::-;;;;2263:184;-1:-1:-1;;2263:184:0:o;7537:337::-;-1:-1:-1;;;;;7678:18:0;;7633:7;7678:18;;;:5;:18;;;;;7723:14;;;;7633:7;;7741:19;-1:-1:-1;7723:37:0;:106;;7815:4;:14;;;7723:106;;;7776:23;7798:1;7776:19;:23;:::i;:::-;7707:122;;7847:12;7860:5;7847:19;;;;;;;:::i;:::-;;;;7537:337;-1:-1:-1;;;;7537:337:0:o;7882:1536::-;7986:16;8017:17;8049:24;8088:17;8120:24;8159:22;8196:23;8234:22;8271:19;8318:17;8338:5;:18;8344:11;-1:-1:-1;;;;;8338:18:0;-1:-1:-1;;;;;8338:18:0;;;;;;;;;;;;8318:38;;8416:20;564:1;8474:4;:14;;;:32;;;;:::i;:::-;8439:68;;487:2;8439:68;:::i;:::-;8416:91;;8561:19;8601:4;:19;;;8583:15;:37;;;;:::i;:::-;8668:13;;8561:59;;-1:-1:-1;8631:16:0;;8668:17;8664:242;;8881:12;8848:11;8833:12;8817:4;:13;;;:28;;;;:::i;:::-;:42;;;;:::i;:::-;8816:78;;;;:::i;:::-;8788:106;;8664:242;8951:13;8985:19;8967:4;:14;;;:37;;:106;;9059:4;:14;;;8967:106;;;9020:23;9042:1;9020:19;:23;:::i;:::-;8951:122;;9084:15;9102:12;9115:5;9102:19;;;;;;;:::i;:::-;;;9084:37;;9156:4;:13;;;9184:4;:14;;;9213:8;9236:4;:14;;;9265:12;9292:7;9314:4;:20;;;9349:4;:19;;;9383:4;:16;;;9134:276;;;;;;;;;;;;;;;;;;;;;;;;7882:1536;;;;;;;;;;;:::o;6579:753::-;-1:-1:-1;;;;;6722:18:0;;6677:7;6722:18;;;:5;:18;;;;;6755:13;;:18;;6751:59;;-1:-1:-1;6797:1:0;;6579:753;-1:-1:-1;;6579:753:0:o;6751:59::-;6888:19;6928:4;:19;;;6910:15;:37;;;;:::i;:::-;6888:59;;7007:20;564:1;7065:4;:14;;;:32;;;;:::i;:::-;7030:68;;487:2;7030:68;:::i;:::-;7007:91;;7203:16;7283:12;7254:11;7239:12;7223:4;:13;;;:28;;;;:::i;:::-;:42;;;;:::i;:::-;7222:74;;;;:::i;:::-;7203:93;6579:753;-1:-1:-1;;;;;;6579:753:0:o;1383:73::-;;;;;;;;;;;;;;;-1:-1:-1;1383:73:0;:::o;1807:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1807:50:0;;-1:-1:-1;1807:50:0;;-1:-1:-1;1807:50:0:o;5021:1325::-;5104:1;5092:9;:13;5084:41;;;;-1:-1:-1;;;5084:41:0;;9034:2:1;5084:41:0;;;9016:21:1;9073:2;9053:18;;;9046:30;-1:-1:-1;;;9092:18:1;;;9085:45;9147:18;;5084:41:0;8832:339:1;5084:41:0;5138:14;5179:4;5156:19;757:2;5156:9;:19;:::i;:::-;5155:28;;;;:::i;:::-;5138:45;-1:-1:-1;5194:21:0;5218:18;5138:45;5218:9;:18;:::i;:::-;5271:9;;:33;;5194:42;;-1:-1:-1;5250:15:0;;-1:-1:-1;;;;;5271:9:0;;;;5293:6;;5250:15;5271:33;5250:15;5271:33;5293:6;5271:9;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5249:55;;;5320:10;5315:81;;5352:32;;;;;9378:2:1;9360:21;;;9417:2;9397:18;;;9390:30;9456:25;9451:2;9436:18;;9429:53;9514:2;9499:18;;9176:347;5352:32:0;;;;;;;;5315:81;5434:10;5408:17;5428;;;:5;:17;;;;;5456:30;;5428:17;;5473:13;;5428:17;;5408;5456:30;;5473:13;;5456:30;:::i;:::-;;;;-1:-1:-1;;5519:15:0;5497:19;;;:37;;;5545:16;;;:34;-1:-1:-1;;;;;5610:22:0;;;;;;:61;;-1:-1:-1;;;;;;5649:22:0;;5661:10;5649:22;;5610:61;:106;;;;-1:-1:-1;;;;;;5688:15:0;;5715:1;5688:15;;;:5;:15;;;;;:24;:28;;5610:106;5592:626;;;5743:22;5801:4;5769:28;692:2;5769:9;:28;:::i;:::-;5768:37;;;;:::i;:::-;5743:62;;5821:15;5850:8;-1:-1:-1;;;;;5842:22:0;5872:14;5842:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5820:103;;;5943:10;5938:97;;5979:40;;;;;9730:2:1;9712:21;;;9769:2;9749:18;;;9742:30;9808:33;9803:2;9788:18;;9781:61;9874:2;9859:18;;9528:355;5979:40:0;;;;;;;;5938:97;-1:-1:-1;;;;;6049:15:0;;;;;;:5;:15;;;;;:31;;:49;;6084:14;;6049:15;:49;;6084:14;;6049:49;:::i;:::-;;;;;;;;6137:14;6113:20;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;6166:23:0;;;;;;:13;:23;;;;;;;:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6166:40:0;6195:10;6166:40;;;-1:-1:-1;5592:626:0;6247:13;6230;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;6271:13:0;:15;;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;;6304:34:0;;160:25:1;;;6312:10:0;;6304:34;;148:2:1;133:18;6304:34:0;;;;;;;5073:1273;;;;5021:1325;:::o;4333:680::-;4399:10;4373:17;4393;;;:5;:17;;;;;4429:13;;4421:49;;;;-1:-1:-1;;;4421:49:0;;10230:2:1;4421:49:0;;;10212:21:1;10269:2;10249:18;;;10242:30;-1:-1:-1;;;10288:18:1;;;10281:49;10347:18;;4421:49:0;10028:343:1;4421:49:0;4544:9;4521:4;:19;;;4503:15;:37;;;;:::i;:::-;:50;;4481:133;;;;-1:-1:-1;;;4481:133:0;;10578:2:1;4481:133:0;;;10560:21:1;10617:2;10597:18;;;10590:30;10656:34;10636:18;;;10629:62;-1:-1:-1;;;10707:18:1;;;10700:31;10748:19;;4481:133:0;10376:397:1;4481:133:0;4699:16;4718:31;4738:10;4718:19;:31::i;:::-;4699:50;;4779:8;4762:4;:13;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;4815:14:0;;;;640:2;-1:-1:-1;4815:95:0;;640:2;4815:95;;;4862:14;;;;:18;;4879:1;4862:18;:::i;:::-;4798:14;;;:112;4943:15;4921:19;;;:37;4976:29;;160:25:1;;;4984:10:0;;4976:29;;148:2:1;133:18;4976:29:0;;;;;;;4362:651;;4333:680::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;196:878:1;279:6;310:3;354:2;342:9;333:7;329:23;325:32;322:52;;;370:1;367;360:12;322:52;419:7;412:4;401:9;397:20;393:34;383:62;;441:1;438;431:12;383:62;474:2;468:9;516:2;508:6;504:15;585:6;573:10;570:22;549:18;537:10;534:34;531:62;528:185;;;635:10;630:3;626:20;623:1;616:31;670:4;667:1;660:15;698:4;695:1;688:15;528:185;729:2;722:22;793:18;;;;764:6;823:19;;;820:39;;;855:1;852;845:12;820:39;879:9;897:146;913:6;908:3;905:15;897:146;;;981:17;;969:30;;1028:4;1019:14;;;;930;897:146;;;-1:-1:-1;1062:6:1;;196:878;-1:-1:-1;;;;;196:878:1:o;1079:139::-;-1:-1:-1;;;;;1162:31:1;;1152:42;;1142:70;;1208:1;1205;1198:12;1142:70;1079:139;:::o;1223:577::-;1324:6;1332;1340;1393:2;1381:9;1372:7;1368:23;1364:32;1361:52;;;1409:1;1406;1399:12;1361:52;1448:9;1435:23;1467:39;1500:5;1467:39;:::i;:::-;1525:5;-1:-1:-1;1582:2:1;1567:18;;1554:32;1595:41;1554:32;1595:41;:::i;:::-;1655:7;-1:-1:-1;1714:2:1;1699:18;;1686:32;1727:41;1686:32;1727:41;:::i;:::-;1787:7;1777:17;;;1223:577;;;;;:::o;1805:180::-;1864:6;1917:2;1905:9;1896:7;1892:23;1888:32;1885:52;;;1933:1;1930;1923:12;1885:52;-1:-1:-1;1956:23:1;;1805:180;-1:-1:-1;1805:180:1:o;1990:255::-;2049:6;2102:2;2090:9;2081:7;2077:23;2073:32;2070:52;;;2118:1;2115;2108:12;2070:52;2157:9;2144:23;2176:39;2209:5;2176:39;:::i;:::-;2234:5;1990:255;-1:-1:-1;;;1990:255:1:o;2250:658::-;2421:2;2473:21;;;2543:13;;2446:18;;;2565:22;;;2392:4;;2421:2;2644:15;;;;2618:2;2603:18;;;2392:4;2687:195;2701:6;2698:1;2695:13;2687:195;;;2766:13;;-1:-1:-1;;;;;2762:39:1;2750:52;;2857:15;;;;2822:12;;;;2798:1;2716:9;2687:195;;;-1:-1:-1;2899:3:1;;2250:658;-1:-1:-1;;;;;;2250:658:1:o;4903:323::-;4971:6;4979;5032:2;5020:9;5011:7;5007:23;5003:32;5000:52;;;5048:1;5045;5038:12;5000:52;5087:9;5074:23;5106:39;5139:5;5106:39;:::i;:::-;5164:5;5216:2;5201:18;;;;5188:32;;-1:-1:-1;;;4903:323:1:o;5574:127::-;5635:10;5630:3;5626:20;5623:1;5616:31;5666:4;5663:1;5656:15;5690:4;5687:1;5680:15;5706:125;5771:9;;;5792:10;;;5789:36;;;5805:18;;:::i;:::-;5706:125;;;;:::o;6253:168::-;6326:9;;;6357;;6374:15;;;6368:22;;6354:37;6344:71;;6395:18;;:::i;6831:128::-;6898:9;;;6919:11;;;6916:37;;;6933:18;;:::i;7323:127::-;7384:10;7379:3;7375:20;7372:1;7365:31;7415:4;7412:1;7405:15;7439:4;7436:1;7429:15;7455:217;7495:1;7521;7511:132;;7565:10;7560:3;7556:20;7553:1;7546:31;7600:4;7597:1;7590:15;7628:4;7625:1;7618:15;7511:132;-1:-1:-1;7657:9:1;;7455:217::o;9888:135::-;9927:3;9948:17;;;9945:43;;9968:18;;:::i;:::-;-1:-1:-1;10015:1:1;10004:13;;9888:135::o

Swarm Source

ipfs://2ce522d9406f643a16597cea2b5595cfad917fffe633a2d48123b264d63ed0b4

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
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.