S Price: $0.456635 (+4.43%)

Contract

0x8186eeF5fe811837E696BbA0e1e01d2CB19943E4

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

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

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

Contract Name:
SonicRings

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 1 : SonicRings.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract SonicRings {
    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 = 0; // 5% base boost for normal investors
    uint256 public constant DEV_REFERRAL_TAX = 100; // 10% tax on dev referral deposits
    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];

    bool private _locked;

    modifier nonReentrant() {
        require(!_locked, "ReentrancyGuard: reentrant call");
        _locked = true;
        _;
        _locked = false;
    }

    struct User {
        uint256 totalInvestedAmount;
        uint256 invested;
        uint256 depositPlusCompounded;
        uint256 withdrawn;
        uint256 lastActionTime;
        uint256 boostDays;
        uint256 depositTime;
        address referrer;
        uint256 referralRewards;
        bool devReferralUsed;
        bool userReferralUsed;
        uint256 compoundedRewards;
        uint256 referralBoostEndTime; // New field to track when boost expires
        bool hasEverUsedReferral;
        bool hasPerformedFirstAction;
    }

    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];
    }

    /**
     * @dev Returns the total value locked in the contract
     * @return Total amount of SONIC tokens in the contract
     */
    function getTotalValueLocked() public view returns (uint256) {
        return address(this).balance;
    }

    function getCompoundableRewards(address userAddress)
        public
        view
        returns (uint256)
    {
        User storage user = users[userAddress];
        if (user.depositPlusCompounded == 0) {
            return 0;
        }

        // Calculate time elapsed with cap
        uint256 timeElapsed = block.timestamp - user.lastActionTime;
        uint256 maxAccumulationTime = 86400;
        timeElapsed = timeElapsed > maxAccumulationTime
            ? maxAccumulationTime
            : timeElapsed;

        // Check if this is first action
        bool isFirstAction = !user.hasPerformedFirstAction;

        // Apply referral boost ONLY on first action
        uint256 dailyPercent;
        if (isFirstAction) {
            if (user.devReferralUsed) {
                dailyPercent = DEV_REFERRAL_BOOST; // 17%
            } else if (user.userReferralUsed) {
                dailyPercent = USER_REFERRAL_BOOST; // 13.3%
            } else {
                dailyPercent = BASE_DAILY_PERCENT; // 5% base rate
            }
        } else {
            // Normal calculation for subsequent actions
            dailyPercent =
                BASE_DAILY_PERCENT +
                (user.boostDays * BOOST_INCREMENT);
        }

        // Calculate ONLY new earnings since last action
        uint256 newEarnings = (user.depositPlusCompounded *
            dailyPercent *
            timeElapsed) / (86400 * 1000);
        return newEarnings;
    }

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

        // First action logic
        bool isFirstAction = !user.hasPerformedFirstAction;

        // Calculate daily rate with boost and referral bonuses
        uint256 dailyPercent = 0;

        // Apply referral boost ONLY on first action
        if (isFirstAction) {
            if (user.devReferralUsed) {
                dailyPercent = DEV_REFERRAL_BOOST; // 17%
            } else if (user.userReferralUsed) {
                dailyPercent = USER_REFERRAL_BOOST; // 13.3%
            } else {
                dailyPercent = BASE_DAILY_PERCENT; // 5% base rate
            }
        } else {
            // Normal calculation for subsequent actions
            dailyPercent =
                BASE_DAILY_PERCENT +
                (user.boostDays * BOOST_INCREMENT);
        }

        // Remaining function logic stays the same
        uint256 timeElapsed = block.timestamp - user.lastActionTime;
        uint256 maxAccumulationTime = 86400;
        timeElapsed = timeElapsed > maxAccumulationTime
            ? maxAccumulationTime
            : timeElapsed;

        uint256 earnings = (user.depositPlusCompounded *
            dailyPercent *
            timeElapsed) / (86400 * 1000);

        user.depositPlusCompounded += earnings;
        user.compoundedRewards = user.depositPlusCompounded;

        // Increment boost days ONLY if not first action or if it's first action and we're now completing it
        if (!isFirstAction) {
            // Not first action, normal boost increment
            user.boostDays = user.boostDays < MAX_BOOST_DAYS
                ? user.boostDays + 1
                : MAX_BOOST_DAYS;
        } else {
            // First action just completed, start at 1 boost day
            user.boostDays = 1;
        }

        if (!user.hasPerformedFirstAction) {
            user.hasPerformedFirstAction = true;
        }

        user.lastActionTime = block.timestamp;
        emit Deposit(msg.sender, earnings);
    }

    function withdraw() external nonReentrant {
        User storage user = users[msg.sender];
        require(
            block.timestamp >= user.depositTime + 24 hours,
            "Withdrawals are restricted in the first 24 hours"
        );

        require(
            block.timestamp - user.lastActionTime >= 24 hours,
            "Can only withdraw once per day"
        );

        // Calculate maximum withdrawal amount (total available value)
        uint256 maxAvailable = user.depositPlusCompounded;
        require(maxAvailable > 0, "No funds available to withdraw");

        // Calculate 3x deposit limit
        uint256 maxLimit = user.totalInvestedAmount * 3;

        // Determine the actual amount to withdraw
        uint256 amount;
        if (maxAvailable <= maxLimit) {
            // User can withdraw everything
            amount = maxAvailable;
        } else {
            // User can only withdraw up to 3x their deposit
            amount = maxLimit;
            // The rest stays in the contract
            user.depositPlusCompounded = maxAvailable - maxLimit;
        }

        // First action logic
        bool isFirstAction = !user.hasPerformedFirstAction;

        // Calculate daily percent for this action
        uint256 dailyPercent = 0;

        // Apply referral boost ONLY on first action
        if (isFirstAction) {
            if (user.devReferralUsed) {
                dailyPercent = DEV_REFERRAL_BOOST; // 17%
            } else if (user.userReferralUsed) {
                dailyPercent = USER_REFERRAL_BOOST; // 13.3%
            } else {
                dailyPercent = BASE_DAILY_PERCENT; // 5% base rate
            }
        } else {
            // Normal calculation for subsequent actions
            dailyPercent =
                BASE_DAILY_PERCENT +
                (user.boostDays * BOOST_INCREMENT);
        }

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

        // Update user data:
        // Track only the net amount that users actually receive
        user.withdrawn += netAmount;

        // If we're not withdrawing everything, we've already updated depositPlusCompounded above
        // If we are withdrawing everything, we need to set it to 0
        if (maxAvailable <= maxLimit) {
            user.depositPlusCompounded = 0;
        }

        // ALWAYS reset boost days on withdraw
        user.boostDays = 0;

        // Transfer logic
        (bool success, ) = payable(msg.sender).call{value: netAmount}("");
        require(success, "Transfer to user failed");

        (bool marketingSuccess, ) = marketingWallet.call{value: halfTax}("");
        require(marketingSuccess, "Marketing wallet transfer failed");

        totalInvested += halfTax;

        if (!user.hasPerformedFirstAction) {
            user.hasPerformedFirstAction = true;
        }

        user.lastActionTime = block.timestamp;
        totalWithdrawn += netAmount;

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

    function getAvailableRewards(address userAddress)
        public
        view
        returns (uint256)
    {
        User storage user = users[userAddress];
        if (user.depositPlusCompounded == 0) {
            return 0;
        }

        // Simply return the user's total value (depositPlusCompounded)
        return user.depositPlusCompounded;
    }

    function deposit(address referrer) external payable nonReentrant {
        require(msg.value >= 10 * 10**18, "Minimum deposit is 10 SONIC");
        require(msg.value > 0, "Must send SONIC");

        User storage user = users[msg.sender];

        // Check if this is the user's first ever deposit
        bool isFirstEverDeposit = (user.invested == 0);

        // Restructured referrer validation for clarity and reliability
        bool validReferrer = false;
        bool isDevReferral = false;

        // Check for dev referral
        if (referrer == devWallet || referrer == devRewardWallet) {
            validReferrer = true;
            isDevReferral = true;
        }
        // Check for user referral - store referrer user data first
        else if (referrer != address(0) && referrer != msg.sender) {
            User storage referrerUser = users[referrer];
            if (referrerUser.invested > 0) {
                validReferrer = true;
            }
        }

        // Only apply referral flags for the first time ever per user
        if (validReferrer && !user.hasEverUsedReferral) {
            // Set the permanent flag to prevent future referral bonuses
            user.hasEverUsedReferral = true;
            user.referrer = referrer; // Store the referrer relationship

            // Add user to the referrer's list of referred users
            referredUsers[referrer].push(msg.sender);

            if (isDevReferral) {
                user.devReferralUsed = true;
                user.userReferralUsed = false;
            } else {
                user.devReferralUsed = false;
                user.userReferralUsed = true;
            }
        }

        // Calculate fees and rewards based on referral type
        uint256 devFee = 0;
        uint256 marketingFee = 0;
        uint256 referralReward = 0;
        uint256 depositAmount = 0;

        if (validReferrer) {
            if (isDevReferral) {
                // Dev referral: 10% tax total - 5% to marketing, 5% to dev wallet
                marketingFee = (msg.value * 50) / 1000; // 5% to marketing wallet
                devFee = (msg.value * 50) / 1000; // 5% to dev wallet

                // Send marketing fee
                (bool marketingSuccess, ) = marketingWallet.call{
                    value: marketingFee
                }("");
                require(marketingSuccess, "Marketing wallet transfer failed");

                // Send dev fee
                (bool devSuccess, ) = devWallet.call{value: devFee}("");
                require(devSuccess, "Dev fee transfer failed");

                // Calculate net deposit (90%)
                depositAmount = msg.value - marketingFee - devFee;
            } else {
                // User referral: 8% to referrer, 2% to dev wallet, 90% to deposit
                referralReward = (msg.value * 80) / 1000; // 8% to referrer
                devFee = (msg.value * 20) / 1000; // 2% to dev wallet

                // Send referral reward
                (bool refSuccess, ) = payable(referrer).call{
                    value: referralReward
                }("");
                require(refSuccess, "Referral reward transfer failed");

                // Update referrer's referral rewards
                users[referrer].referralRewards += referralReward;
                totalReferralRewards += referralReward;

                // Send dev fee
                (bool devSuccess, ) = devWallet.call{value: devFee}("");
                require(devSuccess, "Dev fee transfer failed");

                // Calculate net deposit (90%)
                depositAmount = msg.value - referralReward - devFee;

                // Emit referral reward event
                emit ReferralReward(referrer, msg.sender, referralReward);
            }
        } else {
            // Dev referral: 10% tax total - 5% to marketing, 5% to dev wallet
            marketingFee = (msg.value * 50) / 1000; // 5% to marketing wallet
            devFee = (msg.value * 50) / 1000; // 5% to dev wallet

            // Send marketing fee
            (bool marketingSuccess, ) = marketingWallet.call{
                value: marketingFee
            }("");
            require(marketingSuccess, "Marketing wallet transfer failed");

            // Send dev fee
            (bool devSuccess, ) = devWallet.call{value: devFee}("");
            require(devSuccess, "Dev fee transfer failed");

            // Calculate net deposit (90%)
            depositAmount = msg.value - marketingFee - devFee;
        }

        // Update user data
        user.invested = user.invested + depositAmount;
        user.totalInvestedAmount += depositAmount;
        user.depositPlusCompounded = user.depositPlusCompounded + depositAmount;

        // Update compoundedRewards to include the new deposit
        user.compoundedRewards = user.depositPlusCompounded;

        // Only update depositTime if this is the user's first ever deposit
        if (isFirstEverDeposit) {
            user.depositTime = block.timestamp;
            user.lastActionTime = block.timestamp;
            user.hasPerformedFirstAction = false; // Initialize the flag
        } else {
            // Just update lastActionTime for subsequent deposits
            user.lastActionTime = block.timestamp;
            // Don't change hasPerformedFirstAction
        }

        // Always update lastActionTime
        user.lastActionTime = block.timestamp;

        // Update contract statistics
        totalInvested += depositAmount;
        totalDeposits++;

        emit Deposit(msg.sender, depositAmount);
    }

    function timeUntilNextAction(address userAddress)
        public
        view
        returns (uint256)
    {
        User storage user = users[userAddress];

        // If user has no investments, they can act immediately
        if (user.invested == 0) {
            return 0;
        }

        // Calculate time since last action
        uint256 timeSinceLastAction = block.timestamp - user.lastActionTime;

        // Minimum time between actions (24 hours)
        uint256 minActionInterval = 86400; // 24 hours in seconds

        // If enough time has passed, return 0 (can act now)
        if (timeSinceLastAction >= minActionInterval) {
            return 0;
        }

        // Otherwise, return the remaining time
        return minActionInterval - timeSinceLastAction;
    }

    /**
     * @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 getUserBasicInfo(address userAddress)
        public
        view
        returns (
            uint256 invested,
            uint256 withdrawn,
            uint256 availableRewards,
            uint256 boostDays,
            uint256 currentDailyRate,
            uint256 currentTaxRate
        )
    {
        User storage user = users[userAddress];

        // Get available rewards
        uint256 availableRew = getAvailableRewards(userAddress);

        // Check if this is first action
        bool isFirstAction = !user.hasPerformedFirstAction;

        // Apply referral boost ONLY on first action
        uint256 dailyPercent;
        if (isFirstAction) {
            if (user.devReferralUsed) {
                dailyPercent = DEV_REFERRAL_BOOST; // 17%
            } else if (user.userReferralUsed) {
                dailyPercent = USER_REFERRAL_BOOST; // 13.3%
            } else {
                dailyPercent = BASE_DAILY_PERCENT; // 5% base rate
            }
        } else {
            // Normal calculation for subsequent actions
            dailyPercent =
                BASE_DAILY_PERCENT +
                (user.boostDays * BOOST_INCREMENT);
        }

        // 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,
            availableRew,
            user.boostDays,
            dailyPercent,
            taxRate
        );
    }

    function getUserExtendedInfo(address userAddress)
        public
        view
        returns (
            uint256 referralRewards,
            uint256 lastActionTime,
            uint256 depositTime,
            uint256 depositPlusCompounded,
            uint256 compoundableRewards
        )
    {
        User storage user = users[userAddress];
        uint256 compoundableRew = getCompoundableRewards(userAddress);

        return (
            user.referralRewards,
            user.lastActionTime,
            user.depositTime,
            user.depositPlusCompounded,
            compoundableRew
        );
    }

    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,
            uint256 depositPlusCompounded
        )
    {
        User storage user = users[userAddress];

        // Get available rewards
        uint256 availableRew = getAvailableRewards(userAddress);

        // Check if this is first action
        bool isFirstAction = !user.hasPerformedFirstAction;

        // Apply referral boost ONLY on first action
        uint256 dailyPercent;
        if (isFirstAction) {
            if (user.devReferralUsed) {
                dailyPercent = DEV_REFERRAL_BOOST; // 17%
            } else if (user.userReferralUsed) {
                dailyPercent = USER_REFERRAL_BOOST; // 13.3%
            } else {
                dailyPercent = BASE_DAILY_PERCENT; // 5% base rate
            }
        } else {
            // Normal calculation for subsequent actions
            dailyPercent =
                BASE_DAILY_PERCENT +
                (user.boostDays * BOOST_INCREMENT);
        }

        // 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,
            availableRew,
            user.boostDays,
            dailyPercent,
            taxRate,
            user.referralRewards,
            user.lastActionTime,
            user.depositTime,
            user.depositPlusCompounded
        );
    }

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

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "viaIR": true,
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

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_TAX","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":"getCompoundableRewards","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":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserBasicInfo","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"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserExtendedInfo","outputs":[{"internalType":"uint256","name":"referralRewards","type":"uint256"},{"internalType":"uint256","name":"lastActionTime","type":"uint256"},{"internalType":"uint256","name":"depositTime","type":"uint256"},{"internalType":"uint256","name":"depositPlusCompounded","type":"uint256"},{"internalType":"uint256","name":"compoundableRewards","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"},{"internalType":"uint256","name":"depositPlusCompounded","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":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"timeUntilNextAction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"totalInvestedAmount","type":"uint256"},{"internalType":"uint256","name":"invested","type":"uint256"},{"internalType":"uint256","name":"depositPlusCompounded","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"},{"internalType":"uint256","name":"compoundedRewards","type":"uint256"},{"internalType":"uint256","name":"referralBoostEndTime","type":"uint256"},{"internalType":"bool","name":"hasEverUsedReferral","type":"bool"},{"internalType":"bool","name":"hasPerformedFirstAction","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x6080806040526004361015610012575f80fd5b5f3560e01c90816304cdb842146115075750806305cfaf8e1461143d57806315bedb9114611422578063328644c61461140757806332e5b6d81461134157806333a8915a146113265780633ccfd60b14610fe0578063436a88c114610fc5578063441b55b114610fa85780634a2ff37e14610eb55780634b31971314610e985780634dd3db0114610e315780635216aeec14610e14578063607e14ee14610db85780636373db65146104085780636386c1c714610c7457806375f0a87414610c4c5780637d88209714610c2f578063860a8b0a14610408578063873e31fa14610c0c5780638da5cb5b14610be55780638e96ee5c14610bca5780638ea5220f14610ba2578063999127ee14610b7a5780639b473fa614610b575780639f99122f14610b3d578063a87430ba14610a4c578063ad04673f14610a2f578063b26025aa14610a14578063b9663e0e146109d9578063d72b3c04146109ae578063e73a9b4914610944578063e851c27214610918578063e92820e6146108b6578063ef97f1c91461089b578063f340fa011461040d578063f359f662146104085763f69e2046146101be575f80fd5b34610404575f3660031901126104045760016013546101e060ff82161561159b565b60ff191617601355335f52601460205260405f206001810154156103c957600481018054916201518061021384426115f4565b1061038457600c81019060ff825460081c1615805f1461035c57600982015460ff81161561033b575061024960aa955b426115f4565b620151808111156103365750620151805b6102836305265c0061027b600286019361027685549a8b611588565b611588565b0480976115e7565b809155600a830155155f1461032a576005018054600a811015610321576001810180911161030d57905b555b805460ff8160081c16156102fb575b50504290556040519081527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a26013805460ff19169055005b61ff0019166101001790555f806102be565b634e487b7160e01b5f52601160045260245ffd5b50600a906102ad565b600560019101556102af565b61025a565b60081c60ff161561035157610249608595610243565b610249603295610243565b60058201548080046001148115171561030d576032018060321161030d576102499095610243565b60405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c7920636f6d706f756e64206f6e6365207065722064617900006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272139bc81a5b9d995cdd1b595b9d08199bdd5b99606a1b6044820152606490fd5b5f80fd5b611558565b602036600319011261040457610421611542565b600160135461043360ff82161561159b565b60ff191617601355678ac7230489e80000341061085657341561081f57335f908152601460205260408120600181018054600254919492939015926001600160a01b03908116928291168314801561080b575b156107d65750506001805b80806107c7575b610714575b156106d957156105cf57506032340234810460320361030d576103e861051391046104e15f8080808560018060a01b03600154165af16104db611601565b50611640565b6105045f8080808560018060a01b03600254165af16104fe611601565b506117cf565b61050e81346115f4565b6115f4565b925b6105208482546115e7565b905561052d8383546115e7565b82556002820161053e8482546115e7565b809155600a8301555f146105c457426006820155426004820155600c810161ff001981541690555b600442910155610578816004546115e7565b6004556006545f19811461030d576001016006556040519081527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a26013805460ff19169055005b426004820155610566565b926050340234810460500361030d576103e890046014340234810460140361030d576103e890045f808080858a5af1610606611601565b50156106945761066290865f526014602052600860405f200161062a8482546115e7565b9055610638836007546115e7565b6007556106585f8080808560018060a01b03600254165af16104fe611601565b61050e83346115f4565b946040519182527f53958b9c644a1d5529da7c36929d59417eb9a996f08e02a52632bfe20c92ef4860203393a3610515565b60405162461bcd60e51b815260206004820152601f60248201527f526566657272616c20726577617264207472616e73666572206661696c6564006044820152606490fd5b50506032340234810460320361030d576103e861070e91046104e15f8080808560018060a01b03600154165af16104db611601565b92610515565b600c8501805460ff191660011790556007850180546001600160a01b031916841790555f8381526015602052604090208054680100000000000000008110156107b35761076691600182018155611573565b81546001600160a01b0360039290921b91821b19163390911b179055811561079d5760098501805461ffff1916600117905561049d565b60098501805461ffff191661010017905561049d565b634e487b7160e01b5f52604160045260245ffd5b5060ff600c8601541615610498565b82151580610801575b1561049157825f526014602052600160405f2001541561049157506001610491565b50338314156107df565b506003546001600160a01b03168314610486565b60405162461bcd60e51b815260206004820152600f60248201526e4d7573742073656e6420534f4e494360881b6044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527f4d696e696d756d206465706f73697420697320313020534f4e494300000000006044820152606490fd5b34610404575f36600319011261040457602060405160858152f35b34610404576040366003190112610404576108cf611542565b6001600160a01b03165f90815260156020526040902080546024359190821015610404576020916108ff91611573565b905460405160039290921b1c6001600160a01b03168152f35b3461040457602036600319011261040457600435600a8110156104045760209060090154604051908152f35b346104045760203660031901126104045760a061095f611542565b600180831b0381165f52601460205261097b60405f20916116b3565b60088201549160048101549060026006820154910154916040519485526020850152604084015260608301526080820152f35b346104045760203660031901126104045760206109d16109cc611542565b611784565b604051908152f35b34610404576020366003190112610404576001600160a01b036109fa611542565b165f5260146020526020600860405f200154604051908152f35b34610404575f36600319011261040457602047604051908152f35b34610404575f366003190112610404576020600754604051908152f35b34610404576020366003190112610404576001600160a01b03610a6d611542565b165f52601460205260405f2080549060018101549060028101546003820154600483015460058401546006850154600160a01b6001900360078701541691600887015493600988015495600a89015497600b8a015499600c01549a6040519c8d5260208d015260408c015260608b015260808a015260a089015260c088015260e087015261010086015260ff8116151561012086015260081c60ff16151561014085015261016084015261018083015260ff811615156101a083015260081c60ff1615156101c08201526101e090f35b34610404575f3660031901126104045760206040515f8152f35b346104045760203660031901126104045760206109d1610b75611542565b6116b3565b34610404575f366003190112610404576003546040516001600160a01b039091168152602090f35b34610404575f366003190112610404576002546040516001600160a01b039091168152602090f35b34610404575f36600319011261040457602060405160648152f35b34610404575f366003190112610404575f546040516001600160a01b039091168152602090f35b346104045760203660031901126104045760206109d1610c2a611542565b61168b565b34610404575f366003190112610404576020600654604051908152f35b34610404575f366003190112610404576001546040516001600160a01b039091168152602090f35b3461040457602036600319011261040457610c8d611542565b6001600160a01b0381165f90815260146020526040902090610cae9061168b565b9060ff600c82015460081c16155f14610d8557600981015460ff811615610d6c575060aa5b600582015491600a8310610d65576009935b600a851015610d51576101409460090154936001830154946003840154946008850154926004860154946002600688015497015497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b634e487b7160e01b5f52603260045260245ffd5b8293610ce5565b60081c60ff1615610d7e576085610cd3565b6032610cd3565b60058101548080046001148115171561030d576032018060321115610cd357634e487b7160e01b5f52601160045260245ffd5b34610404576020366003190112610404576001600160a01b03610dd9611542565b165f90815260146020526040902060050154600a8110610e0f575060095b600a811015610d515760209060090154604051908152f35b610df7565b34610404575f366003190112610404576020600454604051908152f35b3461040457602036600319011261040457600435600a811015610e5d5760209060090154604051908152f35b60405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606490fd5b34610404575f366003190112610404576020600554604051908152f35b3461040457602036600319011261040457610ece611542565b6001600160a01b0381165f90815260146020526040902090610eef9061168b565b9060ff600c82015460081c16155f14610f8457600981015460ff811615610f69575060aa915b600582015492600a8410610f63576009935b600a851015610d515760c094600901549260036001860154950154604051958652602086015260408501526060840152608083015260a0820152f35b83610f27565b60081c60ff1615610f7c57608591610f15565b603291610f15565b60058101548080046001148115171561030d576032018060321161030d5791610f15565b34610404575f366003190112610404576020600854604051908152f35b34610404575f366003190112610404576020604051601e8152f35b34610404575f36600319011261040457600160135461100260ff82161561159b565b60ff191617601355335f52601460205260405f20600681015462015180810180911161030d5742106112c8576004810190620151806110428354426115f4565b10611283576002810190815490811561123e5780549160038302928084046003149015171561030d578281118015939061122b5750935b600c8201805460081c60ff1661120757600983015460ff8116156111f657505b600583018054600a81106111f057506009905b600a821015610d515760646110c65f93600901548a611588565b04968760011c9660036110d98a8c6115f4565b97016110e68882546115e7565b90556111e7575b50555f80808086335af16110ff611601565b50156111a257611131846111295f8080806111509a60018060a01b03600154165af16104db611601565b6004546115e7565b600455805460ff8160081c1615611190575b50504290556005546115e7565b60055560405191825260208201527ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56860403392a26013805460ff19169055005b61ff0019166101001790558580611143565b60405162461bcd60e51b815260206004820152601760248201527f5472616e7366657220746f2075736572206661696c65640000000000000000006044820152606490fd5b829055886110ed565b906110ac565b60081c60ff165f0361109957611099565b60058301548080046001148115171561030d576032018060321161030d5750611099565b806112379196926115f4565b8455611079565b60405162461bcd60e51b815260206004820152601e60248201527f4e6f2066756e647320617661696c61626c6520746f20776974686472617700006044820152606490fd5b60405162461bcd60e51b815260206004820152601e60248201527f43616e206f6e6c79207769746864726177206f6e6365207065722064617900006044820152606490fd5b60405162461bcd60e51b815260206004820152603060248201527f5769746864726177616c7320617265207265737472696374656420696e20746860448201526f6520666972737420323420686f75727360801b6064820152608490fd5b34610404575f36600319011261040457602060405160508152f35b34610404576020366003190112610404576001600160a01b03611362611542565b165f52601560205260405f20604051806020835491828152019081935f5260205f20905f5b8181106113e8575050508161139d910382611520565b604051918291602083019060208452518091526040830191905f5b8181106113c6575050500390f35b82516001600160a01b03168452859450602093840193909201916001016113b8565b82546001600160a01b0316845260209093019260019283019201611387565b34610404575f366003190112610404576020604051600a8152f35b34610404575f36600319011261040457602060405160aa8152f35b346104045761014036600319011261040457366023121561040457604051610140810181811067ffffffffffffffff8211176107b357604052803661014411610404576004905b61014482106114f7575f5483906001600160a01b031633036114c1575f5b600a81106114ac57005b600190602083519301928160090155016114a2565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606490fd5b8135815260209182019101611484565b34610404575f3660031901126104045780600160209252f35b90601f8019910116810190811067ffffffffffffffff8211176107b357604052565b600435906001600160a01b038216820361040457565b34610404575f36600319011261040457602060405160328152f35b8054821015610d51575f5260205f2001905f90565b8181029291811591840414171561030d57565b156115a257565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b9190820180921161030d57565b9190820391821161030d57565b3d1561163b573d9067ffffffffffffffff82116107b35760405191611630601f8201601f191660200184611520565b82523d5f602084013e565b606090565b1561164757565b606460405162461bcd60e51b815260206004820152602060248201527f4d61726b6574696e672077616c6c6574207472616e73666572206661696c65646044820152fd5b6001600160a01b03165f9081526014602052604090206002015480156116ae5790565b505f90565b6001600160a01b03165f9081526014602052604090206002810154801561177e576116e26004830154426115f4565b62015180811115611778575062015180915b600c81015460081c60ff1661174757916102766117289260096305265c0095015460ff81165f1461172c575060aa90611588565b0490565b60081c60ff161561173f57608590611588565b603290611588565b600501548080046001148115171561030d57603201918260321161030d57610276611728926305265c009490611588565b916116f4565b50505f90565b6001600160a01b03165f9081526014602052604090206001810154156116ae5760046117b2910154426115f4565b620151808110156116ae57620151800362015180811161030d5790565b156117d657565b60405162461bcd60e51b815260206004820152601760248201527f44657620666565207472616e73666572206661696c65640000000000000000006044820152606490fdfea26469706673582212205310a3716fd6e1b8d7563bdd89b25bc65c77dbd3dd6e5731954b07925dcfc42364736f6c634300081a0033

Deployed Bytecode Sourcemap

58:22115:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;1555:4;1492:7;58:22115;1483:52;58:22115;;;1491:8;1483:52;:::i;:::-;58:22115;;;;1492:7;58:22115;5055:10;58:22115;;5049:5;58:22115;;;;;1555:4;5084:13;;58:22115;5084:17;58:22115;;;5174:19;;58:22115;;5156:15;5197:8;5156:37;:15;;:37;:::i;:::-;:49;58:22115;;5324:28;;;58:22115;;;;;;;5323:29;5515:529;;;;;5552:20;;;58:22115;;;;;;;5592:33;6127:37;806:3;5548:296;;5156:15;6127:37;:::i;:::-;5197:8;6233:33;;5197:8;;;6233:93;5197:8;6233:93;6465:38;6441:12;6357:79;:26;;;58:22115;6357:53;58:22115;;6357:53;;;:::i;:::-;:79;:::i;:::-;58:22115;6465:38;;;:::i;:::-;58:22115;;;6513:22;;;58:22115;;6684:333;58:22115;;;6791:14;;58:22115;;6513:22;6791:31;;6513:22;;;1555:4;58:22115;;;;;;;6791:101;;58:22115;6684:333;58:22115;;;;;;;7031:29;7027:95;;6684:333;5156:15;;;58:22115;;;;;;;7184:29;58:22115;5055:10;7184:29;;1492:7;58:22115;;-1:-1:-1;;58:22115:0;;;;7027:95;-1:-1:-1;;58:22115:0;;;;;7027:95;;;;58:22115;;;;;;;;;;;;6791:101;;6513:22;6791:101;;;6684:333;6988:14;1555:4;6988:14;;58:22115;6684:333;;6233:93;;;5548:296;58:22115;;;;;;;6127:37;907:3;5653:191;5548:296;;5653:191;6127:37;1285:2;5653:191;5548:296;;5515:529;6000:14;;;58:22115;;;;1555:4;58:22115;;;;;;;1285:2;58:22115;;1285:2;58:22115;;;6127:37;5931:102;5515:529;;;58:22115;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;1492:7;58:22115;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;58:22115:0;;;;;;:::i;:::-;1555:4;1492:7;58:22115;1483:52;58:22115;;;1491:8;1483:52;:::i;:::-;-1:-1:-1;;58:22115:0;;1492:7;58:22115;10969:11;10956:9;:24;58:22115;;10956:9;11030:13;58:22115;;11100:10;58:22115;;;;11094:5;58:22115;;;;;1555:4;11207:13;;58:22115;;11432:9;58:22115;11207:13;;58:22115;;11207:18;;;-1:-1:-1;;;;;58:22115:0;;;;;;;11420:21;;:52;;;;58:22115;11416:438;;;11488:20;;1555:4;11522:20;11416:438;11938:42;;;;11416:438;11934:623;;11416:438;12762:2653;;;12795:1878;;;10956:9;12943:2;10956:9;58:22115;10956:9;58:22115;;12943:2;58:22115;;;12949:4;13548:33;58:22115;;13235:61;58:22115;;;;;;;;;;1555:4;58:22115;;13134:83;;;;:::i;:::-;;13235:61;:::i;:::-;13420:46;58:22115;;;;;;;;;;11432:9;58:22115;;13369:33;;;;:::i;:::-;;13420:46;:::i;:::-;13548:24;10956:9;;13548:24;:::i;:::-;:33;:::i;:::-;12795:1878;;15469:29;58:22115;;;15469:29;:::i;:::-;58:22115;;15508:41;58:22115;;;15508:41;:::i;:::-;58:22115;;11432:9;15588:26;;:42;58:22115;;;15588:42;:::i;:::-;58:22115;;;15704:22;;;58:22115;15842:393;;;;15899:15;15880:16;;;58:22115;15899:15;58:22115;15928:19;;58:22115;15979:28;;;58:22115;;;;;;;15842:393;58:22115;16307:15;16285:19;;58:22115;16371:30;58:22115;;;16371:30;:::i;:::-;58:22115;;16411:15;58:22115;-1:-1:-1;;58:22115:0;;;;1555:4;58:22115;16411:15;58:22115;;;;;;16442:34;58:22115;11100:10;16442:34;;1492:7;58:22115;;-1:-1:-1;;58:22115:0;;;;15842:393;16157:15;58:22115;16135:19;;58:22115;15842:393;;12795:1878;10956:9;13733:2;10956:9;58:22115;10956:9;58:22115;;13733:2;58:22115;;;13739:4;58:22115;;11094:5;10956:9;58:22115;10956:9;58:22115;;11094:5;58:22115;;;13739:4;58:22115;;;13912:87;;;;;;;;;:::i;:::-;;58:22115;;;14501:35;58:22115;;;;11094:5;58:22115;;14144:31;58:22115;;;14144:31;:49;58:22115;;;14144:49;:::i;:::-;58:22115;;14211:38;58:22115;14211:38;58:22115;14211:38;:::i;:::-;;58:22115;14373:46;58:22115;;;;;;;;;;11432:9;58:22115;;14322:33;;;;:::i;14373:46::-;14501:26;10956:9;;14501:26;:::i;:35::-;58:22115;;;;;;14606:52;58:22115;11100:10;14606:52;;12795:1878;;58:22115;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;;12762:2653;10956:9;;14810:2;10956:9;58:22115;10956:9;58:22115;;14810:2;58:22115;;;14816:4;15371:33;58:22115;;15078:61;58:22115;;;;;;;;;;1555:4;58:22115;;14989:75;;;;:::i;15371:33::-;12762:2653;;;11934:623;12069:24;;;58:22115;;-1:-1:-1;;58:22115:0;1555:4;58:22115;;;12114:13;;;58:22115;;-1:-1:-1;;;;;;58:22115:0;;;;;-1:-1:-1;58:22115:0;;;12253:13;58:22115;;;;;;;;;;;;;;;1555:4;58:22115;;;;;:::i;:::-;;;-1:-1:-1;;;;;58:22115:0;;;;;;;;;;11100:10;58:22115;;;;;;12308:239;;;;12345:20;;;58:22115;;-1:-1:-1;;58:22115:0;1555:4;58:22115;;;11934:623;;12308:239;12458:20;;;58:22115;;-1:-1:-1;;58:22115:0;;;;;11934:623;;58:22115;;;;;;;;;;;;11938:42;11956:24;58:22115;11956:24;;;58:22115;;11955:25;11938:42;;11416:438;11639:22;;;:48;;;11416:438;11635:219;11416:438;11635:219;58:22115;;;11094:5;58:22115;;1555:4;58:22115;;;11764:21;58:22115;11760:84;11416:438;11760:84;11809:20;1555:4;11416:438;;11639:48;11100:10;;11665:22;;;11639:48;;11420:52;-1:-1:-1;11457:15:0;58:22115;-1:-1:-1;;;;;58:22115:0;11445:27;;11420:52;;58:22115;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;907:3;58:22115;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;:::i;:::-;-1:-1:-1;;;;;58:22115:0;;;;;2199:50;58:22115;;;;;;;;;;;2199:50;;;;;58:22115;2199:50;;;;:::i;:::-;58:22115;;;;;;;;;;-1:-1:-1;;;;;58:22115:0;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;1342:73;;;;;58:22115;;1342:73;58:22115;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;:::i;:::-;;;;;;;;;;19726:5;58:22115;;19780:35;58:22115;;;19780:35;;:::i;:::-;19847:20;;;58:22115;19881:19;58:22115;19881:19;;58:22115;19914:16;19944:26;19914:16;;;58:22115;19944:26;;58:22115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;-1:-1:-1;;;;;58:22115:0;;:::i;:::-;;;;3068:5;58:22115;;;3068:27;58:22115;;;3068:27;58:22115;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;3477:21;58:22115;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;339:35;58:22115;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;-1:-1:-1;;;;;58:22115:0;;:::i;:::-;;;;2156:37;58:22115;;;;;;;2156:37;;;;58:22115;2156:37;;;;58:22115;2156:37;;;58:22115;;2156:37;;58:22115;2156:37;;;58:22115;2156:37;;;58:22115;;;;;;;2156:37;;;58:22115;;2156:37;;;;58:22115;2156:37;;;;58:22115;2156:37;;;;58:22115;2156:37;;;;58:22115;2156:37;;;58:22115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:37;58:22115;;;;;;;;;;;;;;;;;;;;;;;;;;2156:37;58:22115;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;58:22115:0;;;;192:38;58:22115;;;-1:-1:-1;;;;;58:22115:0;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;154:32;58:22115;;;-1:-1:-1;;;;;58:22115:0;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;1104:3;58:22115;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;-1:-1:-1;;;;;58:22115:0;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;58:22115:0;;;;;305:28;58:22115;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;-1:-1:-1;;;;;58:22115:0;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;:::i;:::-;-1:-1:-1;;;;;58:22115:0;;;;;;20506:5;58:22115;;;;;;20591:32;;;:::i;:::-;20697:28;58:22115;20697:28;;;58:22115;;;;20696:29;20819:529;;;;20856:20;;;58:22115;;;;;;;20896:33;806:3;20852:296;21406:14;;;58:22115;;;21406:37;;58:22115;;;21406:104;;58:22115;;;;;;;;21424:12;58:22115;;21589:13;;;;58:22115;21616:14;58:22115;21616:14;;58:22115;21745:20;58:22115;21745:20;;58:22115;21779:19;58:22115;21779:19;;58:22115;21812:16;21842:26;21812:16;;;58:22115;21842:26;;58:22115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21406:104;;;;;20852:296;58:22115;;;;;;;907:3;20852:296;;20957:191;1285:2;20852:296;;20819:529;21304:14;;;58:22115;;;;549:1;58:22115;;;;;;;1285:2;58:22115;;1285:2;58:22115;;20819:529;58:22115;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;-1:-1:-1;;;;;58:22115:0;;:::i;:::-;;;;;;17612:5;58:22115;;;;;17656:14;;58:22115;;17656:37;;58:22115;;17656:104;58:22115;17656:104;58:22115;;;;;;;;17674:12;58:22115;;;;;;;;17656:104;;;58:22115;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;2726:27;;58:22115;;;;;2734:12;58:22115;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;270:29;58:22115;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;:::i;:::-;-1:-1:-1;;;;;58:22115:0;;;;;;18149:5;58:22115;;;;;;18234:32;;;:::i;:::-;18340:28;58:22115;18340:28;;;58:22115;;;;18339:29;18462:529;;;;18499:20;;;58:22115;;;;;;;18539:33;806:3;18495:296;;19049:14;;;58:22115;;;19049:37;;58:22115;;;19049:104;;58:22115;;;;;;;;19067:12;58:22115;;19232:13;58:22115;19232:13;;;58:22115;19259:14;;58:22115;;;;;;;;;;;;;;;;;;;;;;;;;;;19049:104;;;;18495:296;58:22115;;;;;;;907:3;18600:191;18495:296;;18600:191;1285:2;18600:191;18495:296;;18462:529;18947:14;;;58:22115;;;;549:1;58:22115;;;;;;;1285:2;58:22115;;1285:2;58:22115;;;18462:529;;;58:22115;;;;;;-1:-1:-1;;58:22115:0;;;;;380:41;58:22115;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;739:2;58:22115;;;;;;;;;-1:-1:-1;;58:22115:0;;;;1555:4;1492:7;58:22115;1483:52;58:22115;;;1491:8;1483:52;:::i;:::-;58:22115;;;;1492:7;58:22115;7304:10;58:22115;;7298:5;58:22115;;;;;7365:16;;;58:22115;7384:8;58:22115;;;;;;;7346:15;:46;58:22115;;;7516:19;;58:22115;7384:8;7498:37;58:22115;;7346:15;7498:37;:::i;:::-;:49;58:22115;;7708:26;;;58:22115;;;7752:16;;;58:22115;;;;;7898:1;58:22115;;;;;;7898:1;58:22115;;;;;;;7989:24;;;;;;;7985:341;;8073:21;7985:341;;8388:28;;;58:22115;;;;;;8566:529;;8603:20;;;58:22115;;;;;;;8643:33;8599:296;9148:14;;;58:22115;;;9148:37;;58:22115;;9148:104;58:22115;9148:104;;58:22115;;;;;;9350:3;9330:16;58:22115;;9166:12;58:22115;;9330:16;;:::i;:::-;58:22115;;;1555:4;58:22115;9424:18;7898:1;9424:18;;;;:::i;:::-;9547:14;;:27;58:22115;;;9547:27;:::i;:::-;58:22115;;9751:85;;9148:104;58:22115;;;7304:10;;;;;9967:46;;;;:::i;:::-;;58:22115;;;10227:24;58:22115;10155:61;58:22115;;;;10414:27;58:22115;;;;;;1555:4;58:22115;;10105:40;;;;:::i;10155:61::-;58:22115;;10227:24;:::i;:::-;58:22115;;;;;;;;;10266:29;10262:95;;9148:104;7346:15;;;58:22115;;9148:14;58:22115;10414:27;:::i;:::-;9148:14;58:22115;;;;;;;;;;10457:39;58:22115;7304:10;10457:39;;1492:7;58:22115;;-1:-1:-1;;58:22115:0;;;;10262:95;-1:-1:-1;;58:22115:0;;;;;10262:95;;;;58:22115;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;9350:3;;58:22115;9751:85;58:22115;;;9751:85;;;9148:104;;;;8599:296;58:22115;;;;8704:191;58:22115;8599:296;58:22115;8599:296;;8566:529;9051:14;;;58:22115;;;;1555:4;58:22115;;;;;;;1285:2;58:22115;;1285:2;58:22115;;;8566:529;;;7985:341;8186:17;8292:23;8186:17;;;8292:23;:::i;:::-;58:22115;;7985:341;;58:22115;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;675:2;58:22115;;;;;;;;;-1:-1:-1;;58:22115:0;;;;-1:-1:-1;;;;;58:22115:0;;:::i;:::-;;;;3232:13;58:22115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;58:22115:0;;;;;-1:-1:-1;58:22115:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;624:2;58:22115;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;806:3;58:22115;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;58:22115:0;2295:10;:19;58:22115;;;;;;;;;;;;;;;;;;;;2937:29;58:22115;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;549:1;58:22115;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;58:22115:0;;;;;;:::o;:::-;;;;;;-1:-1:-1;;58:22115:0;;;;;;;1285:2;58:22115;;;;;;;;;;;-1:-1:-1;58:22115:0;;-1:-1:-1;58:22115:0;;;-1:-1:-1;58:22115:0;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;58:22115:0;;;;;:::i;:::-;;;;-1:-1:-1;58:22115:0;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;10509:358;-1:-1:-1;;;;;58:22115:0;;;;;10647:5;58:22115;;;;;10679:26;;58:22115;10679:31;;10675:70;;10509:358;:::o;10675:70::-;10726:8;58:22115;10726:8;:::o;3511:1460::-;-1:-1:-1;;;;;58:22115:0;-1:-1:-1;58:22115:0;;;3652:5;58:22115;;;;;3684:26;;;58:22115;3684:31;;3680:70;;3825:37;3843:19;;;58:22115;3825:15;:37;:::i;:::-;3902:5;3931:33;;3902:5;;;3931:93;3902:5;3931:93;;4098:28;;;58:22115;;;;;4220:529;;4257:20;4839:53;:79;4257:20;;4923:12;4257:20;;58:22115;;;;4253:296;58:22115;;;4297:33;806:3;4253:296;4839:53;:::i;:79::-;58:22115;3511:1460;:::o;4253:296::-;58:22115;;;;;;;907:3;4358:191;6357:79;:::i;4358:191::-;1285:2;4358:191;6357:79;:::i;4220:529::-;4705:14;;58:22115;;;;549:1;58:22115;;;;;;;1285:2;58:22115;;;1285:2;58:22115;;;4839:53;:79;4636:102;4923:12;4636:102;4220:529;4839:53;:::i;3931:93::-;;;;3680:70;3731:8;;-1:-1:-1;3731:8:0;:::o;16489:789::-;-1:-1:-1;;;;;58:22115:0;;;;;16627:5;58:22115;;;;;;16724:13;;58:22115;16724:18;16720:57;;16879:19;16861:37;16879:19;;58:22115;16861:15;:37;:::i;:::-;16988:5;17092:40;;;17088:79;;16988:5;58:22115;16988:5;58:22115;;;;16489:789;:::o;58:22115::-;;;;:::o;:::-;;;-1:-1:-1;;;58:22115:0;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://5310a3716fd6e1b8d7563bdd89b25bc65c77dbd3dd6e5731954b07925dcfc423

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.