POL Price: $0.569605 (-18.47%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo1,214.431736404440696293 POL

POL Value

$691.75 (@ $0.57/POL)

Token Holdings

Multichain Info

Transaction Hash
Method
Block
From
To
Transfer Ownersh...574467752024-05-27 10:24:06196 days ago1716805446IN
ParaSwap: Augustus Fee Vault
0 POL0.0010322136.08272317
Set Augustus App...574467692024-05-27 10:23:54196 days ago1716805434IN
ParaSwap: Augustus Fee Vault
0 POL0.0017277636.20704744

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
652862292024-12-09 21:30:081 hr ago1733779808
ParaSwap: Augustus Fee Vault
0.06656629 POL
652860512024-12-09 21:23:491 hr ago1733779429
ParaSwap: Augustus Fee Vault
0.38829256 POL
652859832024-12-09 21:21:231 hr ago1733779283
ParaSwap: Augustus Fee Vault
2.45628821 POL
652849392024-12-09 20:44:232 hrs ago1733777063
ParaSwap: Augustus Fee Vault
0.11458039 POL
652824022024-12-09 19:11:273 hrs ago1733771487
ParaSwap: Augustus Fee Vault
0.06388411 POL
652821612024-12-09 19:02:503 hrs ago1733770970
ParaSwap: Augustus Fee Vault
0.11143066 POL
652809442024-12-09 18:18:524 hrs ago1733768332
ParaSwap: Augustus Fee Vault
0.00492165 POL
652805302024-12-09 18:04:014 hrs ago1733767441
ParaSwap: Augustus Fee Vault
0.87819742 POL
652791812024-12-09 17:15:485 hrs ago1733764548
ParaSwap: Augustus Fee Vault
0.04496429 POL
652791432024-12-09 17:14:285 hrs ago1733764468
ParaSwap: Augustus Fee Vault
0.04196793 POL
652754472024-12-09 15:03:107 hrs ago1733756590
ParaSwap: Augustus Fee Vault
0.25869955 POL
652745042024-12-09 14:29:428 hrs ago1733754582
ParaSwap: Augustus Fee Vault
0.09535969 POL
652744702024-12-09 14:28:308 hrs ago1733754510
ParaSwap: Augustus Fee Vault
0.08382431 POL
652744322024-12-09 14:27:068 hrs ago1733754426
ParaSwap: Augustus Fee Vault
0.08295003 POL
652739332024-12-09 14:09:228 hrs ago1733753362
ParaSwap: Augustus Fee Vault
0.06919797 POL
652734602024-12-09 13:52:069 hrs ago1733752326
ParaSwap: Augustus Fee Vault
0.02300136 POL
652704842024-12-09 12:04:4310 hrs ago1733745883
ParaSwap: Augustus Fee Vault
0.20730764 POL
652690842024-12-09 11:11:1211 hrs ago1733742672
ParaSwap: Augustus Fee Vault
0.02516334 POL
652687582024-12-09 10:58:3611 hrs ago1733741916
ParaSwap: Augustus Fee Vault
2.31798246 POL
652655132024-12-09 9:02:2113 hrs ago1733734941
ParaSwap: Augustus Fee Vault
1.46035035 POL
652617782024-12-09 6:47:1816 hrs ago1733726838
ParaSwap: Augustus Fee Vault
0.76394626 POL
652585262024-12-09 4:49:5918 hrs ago1733719799
ParaSwap: Augustus Fee Vault
2.21561526 POL
652572542024-12-09 4:03:4918 hrs ago1733717029
ParaSwap: Augustus Fee Vault
0.11098637 POL
652571102024-12-09 3:58:3818 hrs ago1733716718
ParaSwap: Augustus Fee Vault
0.11141198 POL
652571052024-12-09 3:58:2818 hrs ago1733716708
ParaSwap: Augustus Fee Vault
0.11153399 POL
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AugustusFeeVault

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
shanghai EvmVersion
File 1 of 7 : AugustusFeeVault.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

// Contracts
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
import { Pausable } from "@openzeppelin/contracts/utils/Pausable.sol";

// Interfaces
import { IAugustusFeeVault } from "../interfaces/IAugustusFeeVault.sol";
import { IERC20 } from "@openzeppelin/token/ERC20/IERC20.sol";

// Libraries
import { ERC20Utils } from "../libraries/ERC20Utils.sol";

/// @title Augstus Fee Vault
/// @notice Allows partners to collect fees stored in the vault, and allows augustus contracts to register fees
contract AugustusFeeVault is IAugustusFeeVault, Ownable, Pausable {
    /*//////////////////////////////////////////////////////////////
                                LIBRARIES
    //////////////////////////////////////////////////////////////*/

    using ERC20Utils for IERC20;

    /*//////////////////////////////////////////////////////////////
                                VARIABLES
    //////////////////////////////////////////////////////////////*/

    /// @dev A mapping of augustus contract addresses to their approval status
    mapping(address augustus => bool approved) public augustusContracts;

    // @dev Mapping of fee tokens to stored fee amounts
    mapping(address account => mapping(IERC20 token => uint256 amount)) public fees;

    // @dev Mapping of fee tokens to allocated fee amounts
    mapping(IERC20 token => uint256 amount) public allocatedFees;

    /*//////////////////////////////////////////////////////////////
                              CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address[] memory _augustusContracts, address owner) Ownable(owner) {
        // Set augustus verifier contracts
        for (uint256 i = 0; i < _augustusContracts.length; i++) {
            augustusContracts[_augustusContracts[i]] = true;
            emit AugustusApprovalSet(_augustusContracts[i], true);
        }
    }

    /*//////////////////////////////////////////////////////////////
                               MODIFIERS
    //////////////////////////////////////////////////////////////*/

    /// @dev Modifier to check if the caller is an approved augustus contract
    modifier onlyApprovedAugustus() {
        if (!augustusContracts[msg.sender]) {
            revert UnauthorizedCaller();
        }
        _;
    }

    /// @dev Verifies that the withdraw amount is not zero
    modifier validAmount(uint256 amount) {
        // Check if amount is zero
        if (amount == 0) {
            revert InvalidWithdrawAmount();
        }
        _;
    }

    /*//////////////////////////////////////////////////////////////
                                 PUBLIC
    //////////////////////////////////////////////////////////////*/

    /// @inheritdoc IAugustusFeeVault
    function withdrawSomeERC20(
        IERC20 token,
        uint256 amount,
        address recipient
    )
        public
        validAmount(amount)
        whenNotPaused
        returns (bool success)
    {
        /// Check recipient
        recipient = _checkRecipient(recipient);

        // Update fees mapping
        _updateFees(token, msg.sender, amount);

        // Transfer tokens to recipient
        token.safeTransfer(recipient, amount);

        // Return success
        return true;
    }

    /// @inheritdoc IAugustusFeeVault
    function getUnallocatedFees(IERC20 token) public view returns (uint256 unallocatedFees) {
        // Get the allocated fees for the given token
        uint256 allocatedFee = allocatedFees[token];

        // Get the balance of the given token
        uint256 balance = token.getBalance(address(this));

        // If the balance is bigger than the allocated fee, then the unallocated fees should
        // be equal to the balance minus the allocated fee
        if (balance > allocatedFee) {
            // Set the unallocated fees to the balance minus the allocated fee
            unallocatedFees = balance - allocatedFee;
        }
    }

    /*///////////////////////////////////////////////////////////////
                                EXTERNAL
    //////////////////////////////////////////////////////////////*/

    /// @inheritdoc IAugustusFeeVault
    function batchWithdrawSomeERC20(
        IERC20[] calldata tokens,
        uint256[] calldata amounts,
        address recipient
    )
        external
        whenNotPaused
        returns (bool success)
    {
        // Check if the length of the tokens and amounts arrays are the same
        if (tokens.length != amounts.length) {
            revert InvalidParameterLength();
        }

        // Loop through the tokens and amounts arrays
        for (uint256 i; i < tokens.length; ++i) {
            // Collect fees for the given token
            if (!withdrawSomeERC20(tokens[i], amounts[i], recipient)) {
                // Revert if collect fails
                revert BatchCollectFailed();
            }
        }

        // Return success
        return true;
    }

    /// @inheritdoc IAugustusFeeVault
    function withdrawAllERC20(IERC20 token, address recipient) public whenNotPaused returns (bool success) {
        // Check recipient
        recipient = _checkRecipient(recipient);

        // Get the total fees for msg.sender in the given token
        uint256 totalBalance = fees[msg.sender][token];

        // Make sure the amount is not zero
        if (totalBalance == 0) {
            revert InvalidWithdrawAmount();
        }

        // Update fees mapping
        _updateFees(token, msg.sender, totalBalance);

        // Transfer tokens to recipient
        token.safeTransfer(recipient, totalBalance);

        // Return success
        return true;
    }

    /// @inheritdoc IAugustusFeeVault
    function batchWithdrawAllERC20(
        IERC20[] calldata tokens,
        address recipient
    )
        external
        whenNotPaused
        returns (bool success)
    {
        // Loop through the tokens array
        for (uint256 i; i < tokens.length; ++i) {
            // Collect all fees for the given token
            if (!withdrawAllERC20(tokens[i], recipient)) {
                // Revert if withdrawAllERC20 fails
                revert BatchCollectFailed();
            }
        }

        // Return success
        return true;
    }

    /// @inheritdoc IAugustusFeeVault
    function registerFees(FeeRegistration memory feeData) external onlyApprovedAugustus {
        // Get the addresses, tokens, and feeAmounts from the feeData struct
        address[] memory addresses = feeData.addresses;
        IERC20 token = feeData.token;
        uint256[] memory feeAmounts = feeData.fees;

        // Make sure the length of the addresses and feeAmounts arrays are the same
        if (addresses.length != feeAmounts.length) {
            revert InvalidParameterLength();
        }

        // Loop through the addresses and fees arrays
        for (uint256 i; i < addresses.length; ++i) {
            // Register the fees for the given address and token if the fee and address are not zero
            if (feeAmounts[i] != 0 && addresses[i] != address(0)) {
                _registerFee(addresses[i], token, feeAmounts[i]);
            }
        }
    }

    /// @inheritdoc IAugustusFeeVault
    function setAugustusApproval(address augustus, bool approved) external onlyOwner {
        // Set the approval status for the given augustus contract
        augustusContracts[augustus] = approved;
        // Emit an event
        emit AugustusApprovalSet(augustus, approved);
    }

    /// @inheritdoc IAugustusFeeVault
    function setContractPauseState(bool _isPaused) external onlyOwner {
        // Set the pause state
        if (_isPaused) {
            _pause();
        } else {
            _unpause();
        }
    }

    /// @inheritdoc IAugustusFeeVault
    function getBalance(IERC20 token, address partner) external view returns (uint256 feeBalance) {
        // Get the fees for the given token and partner
        return fees[partner][token];
    }

    /// @inheritdoc IAugustusFeeVault
    function batchGetBalance(
        IERC20[] calldata tokens,
        address partner
    )
        external
        view
        returns (uint256[] memory feeBalances)
    {
        // Initialize the feeBalances array
        feeBalances = new uint256[](tokens.length);

        // Loop through the tokens array
        for (uint256 i; i < tokens.length; ++i) {
            // Get the fees for the given token and partner
            feeBalances[i] = fees[partner][tokens[i]];
        }
    }

    /*//////////////////////////////////////////////////////////////
                                PRIVATE
    //////////////////////////////////////////////////////////////*/

    /// @notice Register fees for a given account and token
    /// @param account The account to register the fees for
    /// @param token The token to register the fees for
    /// @param fee The amount of fees to register
    function _registerFee(address account, IERC20 token, uint256 fee) private {
        // Get the unallocated fees for the given token
        uint256 unallocatedFees = getUnallocatedFees(token);

        // Make sure the fee is not bigger than the unallocated fees
        if (fee > unallocatedFees) {
            // If it is, set the fee to the unallocated fees
            fee = unallocatedFees;
        }

        // Update the fees mapping
        fees[account][token] += fee;

        // Update the allocated fees mapping
        allocatedFees[token] += fee;
    }

    /// @notice Update fees and allocatedFees for a given token and claimer
    /// @param token The token to update the fees for
    /// @param claimer The address to withdraw the fees for
    /// @param withdrawAmount The amount of fees to withdraw
    function _updateFees(IERC20 token, address claimer, uint256 withdrawAmount) private {
        // get the fees for the claimer
        uint256 feesForClaimer = fees[claimer][token];

        // revert if withdraw amount is bigger than the fees for the claimer
        if (withdrawAmount > feesForClaimer) {
            revert InvalidWithdrawAmount();
        }

        // update the allocated fees
        allocatedFees[token] -= withdrawAmount;

        // update the fees for the claimer
        fees[claimer][token] -= withdrawAmount;
    }

    /// @notice Check if recipient is zero address and set it to msg sender if it is, otherwise return recipient
    /// @param recipient The recipient address
    /// @return recipient The updated recipient address
    function _checkRecipient(address recipient) private view returns (address) {
        // Allow arbitrary recipient unless it is zero address
        if (recipient == address(0)) {
            recipient = msg.sender;
        }

        // Return recipient
        return recipient;
    }

    /*//////////////////////////////////////////////////////////////
                                RECEIVE
    //////////////////////////////////////////////////////////////*/

    /// @notice Reverts if the caller is one of the following:
    //         - an externally-owned account
    //         - a contract in construction
    //         - an address where a contract will be created
    //         - an address where a contract lived, but was destroyed
    receive() external payable {
        address addr = msg.sender;
        // solhint-disable-next-line no-inline-assembly
        assembly ("memory-safe") {
            if iszero(extcodesize(addr)) { revert(0, 0) }
        }
    }
}

File 2 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 7 : Pausable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    bool private _paused;

    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    /**
     * @dev The operation failed because the contract is paused.
     */
    error EnforcedPause();

    /**
     * @dev The operation failed because the contract is not paused.
     */
    error ExpectedPause();

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        _requireNotPaused();
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        _requirePaused();
        _;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Throws if the contract is paused.
     */
    function _requireNotPaused() internal view virtual {
        if (paused()) {
            revert EnforcedPause();
        }
    }

    /**
     * @dev Throws if the contract is not paused.
     */
    function _requirePaused() internal view virtual {
        if (!paused()) {
            revert ExpectedPause();
        }
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

File 4 of 7 : IAugustusFeeVault.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

// Interfaces
import { IERC20 } from "@openzeppelin/token/ERC20/IERC20.sol";

/// @title IAugustusFeeVault
/// @notice Interface for the AugustusFeeVault contract
interface IAugustusFeeVault {
    /*//////////////////////////////////////////////////////////////
                                 ERRORS
    //////////////////////////////////////////////////////////////*/

    /// @notice Error emitted when withdraw amount is zero or exceeds the stored amount
    error InvalidWithdrawAmount();

    /// @notice Error emmitted when caller is not an approved augustus contract
    error UnauthorizedCaller();

    /// @notice Error emitted when an invalid parameter length is passed
    error InvalidParameterLength();

    /// @notice Error emitted when batch withdraw fails
    error BatchCollectFailed();

    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    /// @notice Emitted when an augustus contract approval status is set
    /// @param augustus The augustus contract address
    /// @param approved The approval status
    event AugustusApprovalSet(address indexed augustus, bool approved);

    /*//////////////////////////////////////////////////////////////
                                STRUCTS
    //////////////////////////////////////////////////////////////*/

    /// @notice Struct to register fees
    /// @param addresses The addresses to register fees for
    /// @param token The token to register fees for
    /// @param fees The fees to register
    struct FeeRegistration {
        address[] addresses;
        IERC20 token;
        uint256[] fees;
    }

    /*//////////////////////////////////////////////////////////////
                                COLLECT
    //////////////////////////////////////////////////////////////*/

    /// @notice Allows partners to withdraw fees allocated to them and stored in the vault
    /// @param token The token to withdraw fees in
    /// @param amount The amount of fees to withdraw
    /// @param recipient The address to send the fees to
    /// @return success Whether the transfer was successful or not
    function withdrawSomeERC20(IERC20 token, uint256 amount, address recipient) external returns (bool success);

    /// @notice Allows partners to withdraw all fees allocated to them and stored in the vault for a given token
    /// @param token The token to withdraw fees in
    /// @param recipient The address to send the fees to
    /// @return success Whether the transfer was successful or not
    function withdrawAllERC20(IERC20 token, address recipient) external returns (bool success);

    /// @notice Allows partners to withdraw all fees allocated to them and stored in the vault for multiple tokens
    /// @param tokens The tokens to withdraw fees i
    /// @param recipient The address to send the fees to
    /// @return success Whether the transfer was successful or not
    function batchWithdrawAllERC20(IERC20[] calldata tokens, address recipient) external returns (bool success);

    /// @notice Allows partners to withdraw fees allocated to them and stored in the vault
    /// @param tokens The tokens to withdraw fees in
    /// @param amounts The amounts of fees to withdraw
    /// @param recipient The address to send the fees to
    /// @return success Whether the transfer was successful or not
    function batchWithdrawSomeERC20(
        IERC20[] calldata tokens,
        uint256[] calldata amounts,
        address recipient
    )
        external
        returns (bool success);

    /*//////////////////////////////////////////////////////////////
                            BALANCE GETTERS
    //////////////////////////////////////////////////////////////*/

    /// @notice Get the balance of a given token for a given partner
    /// @param token The token to get the balance of
    /// @param partner The partner to get the balance for
    /// @return feeBalance The balance of the given token for the given partner
    function getBalance(IERC20 token, address partner) external view returns (uint256 feeBalance);

    /// @notice Get the balances of a given partner for multiple tokens
    /// @param tokens The tokens to get the balances of
    /// @param partner The partner to get the balances for
    /// @return feeBalances The balances of the given tokens for the given partner
    function batchGetBalance(
        IERC20[] calldata tokens,
        address partner
    )
        external
        view
        returns (uint256[] memory feeBalances);

    /// @notice Returns the unallocated fees for a given token
    /// @param token The token to get the unallocated fees for
    /// @return unallocatedFees The unallocated fees for the given token
    function getUnallocatedFees(IERC20 token) external view returns (uint256 unallocatedFees);

    /*//////////////////////////////////////////////////////////////
                                 OWNER
    //////////////////////////////////////////////////////////////*/

    /// @notice Registers the given feeData to the vault
    /// @param feeData The fee registration data
    function registerFees(FeeRegistration memory feeData) external;

    /// @notice Sets the augustus contract approval status
    /// @param augustus The augustus contract address
    /// @param approved The approval status
    function setAugustusApproval(address augustus, bool approved) external;

    /// @notice Sets the contract pause state
    /// @param _isPaused The new pause state
    function setContractPauseState(bool _isPaused) external;
}

File 5 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
     * caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

File 6 of 7 : ERC20Utils.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

// Interfaces
import { IERC20 } from "@openzeppelin/token/ERC20/IERC20.sol";

/// @title ERC20Utils
/// @notice Optimized functions for ERC20 tokens
library ERC20Utils {
    /*//////////////////////////////////////////////////////////////
                                ERRORS
    //////////////////////////////////////////////////////////////*/

    error IncorrectEthAmount();
    error PermitFailed();
    error TransferFromFailed();
    error TransferFailed();
    error ApprovalFailed();

    /*//////////////////////////////////////////////////////////////
                               CONSTANTS
    //////////////////////////////////////////////////////////////*/

    IERC20 internal constant ETH = IERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);

    /*//////////////////////////////////////////////////////////////
                                APPROVE
    //////////////////////////////////////////////////////////////*/

    /// @dev Vendored from Solady by @vectorized - SafeTransferLib.approveWithRetry
    /// https://github.com/Vectorized/solady/src/utils/SafeTransferLib.sol#L325
    /// Instead of approving a specific amount, this function approves for uint256(-1) (type(uint256).max).
    function approve(IERC20 token, address to) internal {
        // solhint-disable-next-line no-inline-assembly
        assembly ("memory-safe") {
            mstore(0x14, to) // Store the `to` argument.
            mstore(0x34, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) // Store the `amount`
                // argument (type(uint256).max).
            mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.
            // Perform the approval, retrying upon failure.
            if iszero(
                and( // The arguments of `and` are evaluated from right to left.
                    or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.
                    call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)
                )
            ) {
                mstore(0x34, 0) // Store 0 for the `amount`.
                mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.
                pop(call(gas(), token, 0, 0x10, 0x44, codesize(), 0x00)) // Reset the approval.
                mstore(0x34, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) // Store
                    // type(uint256).max for the `amount`.
                // Retry the approval, reverting upon failure.
                if iszero(
                    and(
                        or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.
                        call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)
                    )
                ) {
                    mstore(0, 0x8164f84200000000000000000000000000000000000000000000000000000000)
                    // store the selector (error ApprovalFailed())
                    revert(0, 4) // revert with error selector
                }
            }
            mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.
        }
    }

    /*//////////////////////////////////////////////////////////////
                                PERMIT
    //////////////////////////////////////////////////////////////*/

    /// @dev Executes an ERC20 permit and reverts if invalid length is provided
    function permit(IERC20 token, bytes calldata data) internal {
        // solhint-disable-next-line no-inline-assembly
        assembly ("memory-safe") {
            // check the permit length
            switch data.length
            // 32 * 7 = 224 EIP2612 Permit
            case 224 {
                let x := mload(64) // get the free memory pointer
                mstore(x, 0xd505accf00000000000000000000000000000000000000000000000000000000) // store the selector
                    // function permit(address owner, address spender, uint256
                    // amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
                calldatacopy(add(x, 4), data.offset, 224) // store the args
                pop(call(gas(), token, 0, x, 228, 0, 32)) // call ERC20 permit, skip checking return data
            }
            // 32 * 8 = 256 DAI-Style Permit
            case 256 {
                let x := mload(64) // get the free memory pointer
                mstore(x, 0x8fcbaf0c00000000000000000000000000000000000000000000000000000000) // store the selector
                    // function permit(address holder, address spender, uint256
                    // nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s)
                calldatacopy(add(x, 4), data.offset, 256) // store the args
                pop(call(gas(), token, 0, x, 260, 0, 32)) // call ERC20 permit, skip checking return data
            }
            default {
                mstore(0, 0xb78cb0dd00000000000000000000000000000000000000000000000000000000) // store the selector
                    // (error PermitFailed())
                revert(0, 4)
            }
        }
    }

    /*//////////////////////////////////////////////////////////////
                                 ETH
    //////////////////////////////////////////////////////////////*/

    /// @dev Returns 1 if the token is ETH, 0 if not ETH
    function isETH(IERC20 token, uint256 amount) internal view returns (uint256 fromETH) {
        // solhint-disable-next-line no-inline-assembly
        assembly ("memory-safe") {
            // If token is ETH
            if eq(token, 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) {
                // if msg.value is not equal to fromAmount, then revert
                if xor(amount, callvalue()) {
                    mstore(0, 0x8b6ebb4d00000000000000000000000000000000000000000000000000000000) // store the selector
                        // (error IncorrectEthAmount())
                    revert(0, 4) // revert with error selector
                }
                // return 1 if ETH
                fromETH := 1
            }
            // If token is not ETH
            if xor(token, 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) {
                // if msg.value is not equal to 0, then revert
                if gt(callvalue(), 0) {
                    mstore(0, 0x8b6ebb4d00000000000000000000000000000000000000000000000000000000) // store the selector
                    // (error IncorrectEthAmount())
                    revert(0, 4) // revert with error selector
                }
            }
        }
        // return 0 if not ETH
    }

    /*//////////////////////////////////////////////////////////////
                                TRANSFER
    //////////////////////////////////////////////////////////////*/

    /// @dev Executes transfer and reverts if it fails, works for both ETH and ERC20 transfers
    function safeTransfer(IERC20 token, address recipient, uint256 amount) internal returns (bool success) {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            switch eq(token, 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)
            // ETH
            case 1 {
                // transfer ETH
                // Cap gas at 10000 to avoid reentrancy
                success := call(10000, recipient, amount, 0, 0, 0, 0)
            }
            // ERC20
            default {
                let x := mload(64) // get the free memory pointer
                mstore(x, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) // store the selector
                    // (function transfer(address recipient, uint256 amount))
                mstore(add(x, 4), recipient) // store the recipient
                mstore(add(x, 36), amount) // store the amount
                success := call(gas(), token, 0, x, 68, 0, 32) // call transfer
                if success {
                    switch returndatasize()
                    // check the return data size
                    case 0 { success := gt(extcodesize(token), 0) }
                    default { success := and(gt(returndatasize(), 31), eq(mload(0), 1)) }
                }
            }
            if iszero(success) {
                mstore(0, 0x90b8ec1800000000000000000000000000000000000000000000000000000000) // store the selector
                    // (error TransferFailed())
                revert(0, 4) // revert with error selector
            }
        }
    }

    /*//////////////////////////////////////////////////////////////
                             TRANSFER FROM
    //////////////////////////////////////////////////////////////*/

    /// @dev Executes transferFrom and reverts if it fails
    function safeTransferFrom(
        IERC20 srcToken,
        address sender,
        address recipient,
        uint256 amount
    )
        internal
        returns (bool success)
    {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            let x := mload(64) // get the free memory pointer
            mstore(x, 0x23b872dd00000000000000000000000000000000000000000000000000000000) // store the selector
                // (function transferFrom(address sender, address recipient,
                // uint256 amount))
            mstore(add(x, 4), sender) // store the sender
            mstore(add(x, 36), recipient) // store the recipient
            mstore(add(x, 68), amount) // store the amount
            success := call(gas(), srcToken, 0, x, 100, 0, 32) // call transferFrom
            if success {
                switch returndatasize()
                // check the return data size
                case 0 { success := gt(extcodesize(srcToken), 0) }
                default { success := and(gt(returndatasize(), 31), eq(mload(0), 1)) }
            }
            if iszero(success) {
                mstore(x, 0x7939f42400000000000000000000000000000000000000000000000000000000) // store the selector
                    // (error TransferFromFailed())
                revert(x, 4) // revert with error selector
            }
        }
    }

    /*//////////////////////////////////////////////////////////////
                                BALANCE
    //////////////////////////////////////////////////////////////*/

    /// @dev Returns the balance of an account, works for both ETH and ERC20 tokens
    function getBalance(IERC20 token, address account) internal view returns (uint256 balanceOf) {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            switch eq(token, 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)
            // ETH
            case 1 { balanceOf := balance(account) }
            // ERC20
            default {
                let x := mload(64) // get the free memory pointer
                mstore(x, 0x70a0823100000000000000000000000000000000000000000000000000000000) // store the selector
                    // (function balanceOf(address account))
                mstore(add(x, 4), account) // store the account
                let success := staticcall(gas(), token, x, 36, x, 32) // call balanceOf
                if success { balanceOf := mload(x) } // load the balance
            }
        }
    }
}

File 7 of 7 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

Settings
{
  "remappings": [
    "@prb/test/=lib/prb-test/src/",
    "forge-std/=lib/forge-std/src/",
    "@openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "@solady/=lib/solady/src/",
    "@create3/=lib/create3-factory/src/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "create3-factory/=lib/create3-factory/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "foundry-huff/=lib/foundry-huff/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "prb-test/=lib/prb-test/src/",
    "solady/=lib/solady/",
    "solidity-bytes-utils/=lib/solidity-bytes-utils/contracts/",
    "solidity-stringutils/=lib/foundry-huff/lib/solidity-stringutils/",
    "solmate/=lib/create3-factory/lib/solmate/src/",
    "stringutils/=lib/foundry-huff/lib/solidity-stringutils/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "none",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_augustusContracts","type":"address[]"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BatchCollectFailed","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"InvalidParameterLength","type":"error"},{"inputs":[],"name":"InvalidWithdrawAmount","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"UnauthorizedCaller","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"augustus","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"AugustusApprovalSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"allocatedFees","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"augustus","type":"address"}],"name":"augustusContracts","outputs":[{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"partner","type":"address"}],"name":"batchGetBalance","outputs":[{"internalType":"uint256[]","name":"feeBalances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"address","name":"recipient","type":"address"}],"name":"batchWithdrawAllERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address","name":"recipient","type":"address"}],"name":"batchWithdrawSomeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"fees","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"partner","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"feeBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"getUnallocatedFees","outputs":[{"internalType":"uint256","name":"unallocatedFees","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"fees","type":"uint256[]"}],"internalType":"struct IAugustusFeeVault.FeeRegistration","name":"feeData","type":"tuple"}],"name":"registerFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"augustus","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setAugustusApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isPaused","type":"bool"}],"name":"setContractPauseState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"withdrawAllERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"withdrawSomeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

604060808152346200019b57620015ac90813803806200001f81620001b3565b938439820181838203126200019b5782516001600160401b0391908281116200019b5784019381601f860112156200019b5784519160209383116200019f578260051b95848062000072818a01620001b3565b8096815201978201019182116200019b578401955b8187106200018157506001600160a01b03939291849150620000ab908401620001d9565b1680156200016a575f54818582167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a81b031916175f9081555b81518110156200015b5780846200010760019385620001ee565b51165f5281808552865f208160ff198254161790557f6e22534cd7ba9ac690c8291d348b7cd994a6753f153ed57cd0a24dd720ae2d0485876200014b8588620001ee565b5116928951908152a201620000ed565b84516113949081620002188239f35b8451631e4fbdf760e01b81525f6004820152602490fd5b8480916200018f89620001d9565b81520196019562000087565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176200019f57604052565b51906001600160a01b03821682036200019b57565b8051821015620002035760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfe60806040526004361015610022575b3615610018575f80fd5b610020611056565b005b5f3560e01c80633ea6f5111461013157806345f32b0b1461012c5780635c975abb14610127578063715018a6146101225780638da5cb5b1461011d5780638f79528c146101185780639b9ac2cb14610113578063ae11c7f81461010e578063b0a65b1714610109578063bbedcc4014610104578063d2ea29c0146100ff578063d4fac45d146100fa578063e20b52d9146100f5578063e537348b146100f0578063f2fde38b146100eb578063f89abe8c146100e65763ffcc41ee0361000e57610c1d565b610bd0565b610aee565b610a16565b6109aa565b610951565b610886565b610804565b610723565b610647565b610568565b610508565b6104b8565b61041e565b6103dc565b6102d5565b610165565b73ffffffffffffffffffffffffffffffffffffffff81160361015457565b5f80fd5b359061016382610136565b565b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101545773ffffffffffffffffffffffffffffffffffffffff6004356101b581610136565b165f526003602052602060405f2054604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051906060820182811067ffffffffffffffff82111761021957604052565b6101cc565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761021957604052565b67ffffffffffffffff81116102195760051b60200190565b9080601f8301121561015457602090823561029c61029782610262565b61021e565b9360208086848152019260051b82010192831161015457602001905b8282106102c6575050505090565b813581529083019083016102b8565b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc90602082360112610154576004359167ffffffffffffffff90818411610154576060908436030112610154576103316101f9565b91836004013582811161015457840190366023830112156101545760048201359161035e61029784610262565b926024602085838152019160051b8301019136831161015457602401905b8282106103c35750505050825261039560248401610158565b60208301526044830135908111610154576100209260046103b9923692010161027a565b6040820152610d4a565b83809183356103d181610136565b81520191019061037c565b34610154575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457602060ff5f5460a01c166040519015158152f35b34610154575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610154576104546110ed565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610154575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101545760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457602061055e60043561054881610136565b6044359061055582610136565b60243590610eb1565b6040519015158152f35b346101545760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101545760206105f86004356105a881610136565b73ffffffffffffffffffffffffffffffffffffffff602435916105ca83610136565b165f526002835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60409101126101545760043561063781610136565b9060243561064481610136565b90565b3461015457602061055e61065a36610601565b90610f0c565b9181601f840112156101545782359167ffffffffffffffff8311610154576020808501948460051b01011161015457565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610154576004359067ffffffffffffffff8211610154576106da91600401610660565b909160243561064481610136565b60209060206040818301928281528551809452019301915f5b82811061070f575050505090565b835185529381019392810192600101610701565b346101545761073136610691565b909161073f61029784610262565b9280845261074c81610262565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602091013660208701375f5b828110610792576040518061078e88826106e8565b0390f35b60019073ffffffffffffffffffffffffffffffffffffffff86165f52600283526107f260405f206107c4838789610f63565b35906107cf82610136565b9073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b546107fd8289610e98565b5201610779565b346101545761081236610691565b61081d92919261113d565b5f5b83811061083157602060405160018152f35b61084f82610840838787610f63565b3561084a81610136565b610f0c565b1561085c5760010161081f565b60046040517f3439313b000000000000000000000000000000000000000000000000000000008152fd5b346101545760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610154576004356108c181610136565b6024359081151580920361015457602073ffffffffffffffffffffffffffffffffffffffff7f6e22534cd7ba9ac690c8291d348b7cd994a6753f153ed57cd0a24dd720ae2d04926109106110ed565b1692835f526001825260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a2005b346101545760206105f873ffffffffffffffffffffffffffffffffffffffff61097936610601565b919091165f526002835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101545773ffffffffffffffffffffffffffffffffffffffff6004356109fa81610136565b165f526001602052602060ff60405f2054166040519015158152f35b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457600435801515810361015457610a596110ed565b15610a6657610020611316565b5f5460ff8160a01c1615610ac4577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff165f557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b60046040517f8dfc202b000000000000000000000000000000000000000000000000000000008152fd5b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457600435610b2981610136565b610b316110ed565b73ffffffffffffffffffffffffffffffffffffffff809116908115610ba0575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60246040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152fd5b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610154576020610c15600435610c1081610136565b610fa0565b604051908152f35b346101545760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457600467ffffffffffffffff813581811161015457610c6e903690600401610660565b9160243590811161015457610c87903690600401610660565b9060443590610c9582610136565b610c9d61113d565b828503610d20575f5b858110610cb95760405160018152602090f35b610ceb610ce784610ccb848a8a610f63565b35610cd581610136565b610ce0858988610f63565b3590610eb1565b1590565b610cf757600101610ca6565b866040517f3439313b000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc0375efc000000000000000000000000000000000000000000000000000000008152fd5b335f52600190600160205260ff60405f20541615610e41578051906040610d88602083015173ffffffffffffffffffffffffffffffffffffffff1690565b910151908251825103610d20575f92845b610da5575b5050505050565b8051841015610e3c578484610dbb829686610e98565b51151580610e11575b610dd0575b0193610d99565b610e0c610dfa610de08386610e98565b5173ffffffffffffffffffffffffffffffffffffffff1690565b85610e058489610e98565b519161105f565b610dc9565b5073ffffffffffffffffffffffffffffffffffffffff610e34610de08386610e98565b161515610dc4565b610d9e565b60046040517f5c427cd9000000000000000000000000000000000000000000000000000000008152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051821015610eac5760209160051b010190565b610e6b565b8115610ee257610ecb610edc93610ec661113d565b611175565b90610ed7833383611199565b611248565b50600190565b60046040517fdb73cdf0000000000000000000000000000000000000000000000000000000008152fd5b90610f1990610ec661113d565b335f526002602052610f4c8260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54908115610ee257610edc92610ed7833383611199565b9190811015610eac5760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b905f9173ffffffffffffffffffffffffffffffffffffffff81165f52600360205260405f20545f9173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811460011461104d576020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa611044575b505b80821161102f575050565b90809293500390811161103f5790565b610f73565b5191505f611022565b50479150611024565b333b1561015457565b9061106981610fa0565b8084116110e5575b5073ffffffffffffffffffffffffffffffffffffffff8092165f5260026020526110bc8160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b80549084820180921161103f5755165f52600360205260405f20805491820180921161103f5755565b92505f611071565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361110d57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b60ff5f5460a01c1661114b57565b60046040517fd93c0665000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff8116156111945790565b503390565b73ffffffffffffffffffffffffffffffffffffffff80921691825f5260026020526111e58260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b548411610ee25781165f52600360205260405f2091825484810390811161103f5761123993555f52600260205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b805491820391821161103f5755565b929173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee84146001146113025760446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282865af191826112dd575b505b81156112b557565b7f90b8ec18000000000000000000000000000000000000000000000000000000005f5260045ffd5b9091503d156112f9575060015f5114601f3d1116905b5f6112ab565b3b1515906112f3565b5f809394508092918192612710f1906112ad565b61131e61113d565b740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff5f5416175f557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a156fea164736f6c6343000816000a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000d7e24a49944f7972ceb826c7557580658f9c33030000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361015610022575b3615610018575f80fd5b610020611056565b005b5f3560e01c80633ea6f5111461013157806345f32b0b1461012c5780635c975abb14610127578063715018a6146101225780638da5cb5b1461011d5780638f79528c146101185780639b9ac2cb14610113578063ae11c7f81461010e578063b0a65b1714610109578063bbedcc4014610104578063d2ea29c0146100ff578063d4fac45d146100fa578063e20b52d9146100f5578063e537348b146100f0578063f2fde38b146100eb578063f89abe8c146100e65763ffcc41ee0361000e57610c1d565b610bd0565b610aee565b610a16565b6109aa565b610951565b610886565b610804565b610723565b610647565b610568565b610508565b6104b8565b61041e565b6103dc565b6102d5565b610165565b73ffffffffffffffffffffffffffffffffffffffff81160361015457565b5f80fd5b359061016382610136565b565b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101545773ffffffffffffffffffffffffffffffffffffffff6004356101b581610136565b165f526003602052602060405f2054604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051906060820182811067ffffffffffffffff82111761021957604052565b6101cc565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761021957604052565b67ffffffffffffffff81116102195760051b60200190565b9080601f8301121561015457602090823561029c61029782610262565b61021e565b9360208086848152019260051b82010192831161015457602001905b8282106102c6575050505090565b813581529083019083016102b8565b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc90602082360112610154576004359167ffffffffffffffff90818411610154576060908436030112610154576103316101f9565b91836004013582811161015457840190366023830112156101545760048201359161035e61029784610262565b926024602085838152019160051b8301019136831161015457602401905b8282106103c35750505050825261039560248401610158565b60208301526044830135908111610154576100209260046103b9923692010161027a565b6040820152610d4a565b83809183356103d181610136565b81520191019061037c565b34610154575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457602060ff5f5460a01c166040519015158152f35b34610154575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610154576104546110ed565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610154575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101545760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457602061055e60043561054881610136565b6044359061055582610136565b60243590610eb1565b6040519015158152f35b346101545760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101545760206105f86004356105a881610136565b73ffffffffffffffffffffffffffffffffffffffff602435916105ca83610136565b165f526002835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60409101126101545760043561063781610136565b9060243561064481610136565b90565b3461015457602061055e61065a36610601565b90610f0c565b9181601f840112156101545782359167ffffffffffffffff8311610154576020808501948460051b01011161015457565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610154576004359067ffffffffffffffff8211610154576106da91600401610660565b909160243561064481610136565b60209060206040818301928281528551809452019301915f5b82811061070f575050505090565b835185529381019392810192600101610701565b346101545761073136610691565b909161073f61029784610262565b9280845261074c81610262565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0602091013660208701375f5b828110610792576040518061078e88826106e8565b0390f35b60019073ffffffffffffffffffffffffffffffffffffffff86165f52600283526107f260405f206107c4838789610f63565b35906107cf82610136565b9073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b546107fd8289610e98565b5201610779565b346101545761081236610691565b61081d92919261113d565b5f5b83811061083157602060405160018152f35b61084f82610840838787610f63565b3561084a81610136565b610f0c565b1561085c5760010161081f565b60046040517f3439313b000000000000000000000000000000000000000000000000000000008152fd5b346101545760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610154576004356108c181610136565b6024359081151580920361015457602073ffffffffffffffffffffffffffffffffffffffff7f6e22534cd7ba9ac690c8291d348b7cd994a6753f153ed57cd0a24dd720ae2d04926109106110ed565b1692835f526001825260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a2005b346101545760206105f873ffffffffffffffffffffffffffffffffffffffff61097936610601565b919091165f526002835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101545773ffffffffffffffffffffffffffffffffffffffff6004356109fa81610136565b165f526001602052602060ff60405f2054166040519015158152f35b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457600435801515810361015457610a596110ed565b15610a6657610020611316565b5f5460ff8160a01c1615610ac4577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff165f557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b60046040517f8dfc202b000000000000000000000000000000000000000000000000000000008152fd5b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457600435610b2981610136565b610b316110ed565b73ffffffffffffffffffffffffffffffffffffffff809116908115610ba0575f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60246040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152fd5b346101545760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610154576020610c15600435610c1081610136565b610fa0565b604051908152f35b346101545760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015457600467ffffffffffffffff813581811161015457610c6e903690600401610660565b9160243590811161015457610c87903690600401610660565b9060443590610c9582610136565b610c9d61113d565b828503610d20575f5b858110610cb95760405160018152602090f35b610ceb610ce784610ccb848a8a610f63565b35610cd581610136565b610ce0858988610f63565b3590610eb1565b1590565b610cf757600101610ca6565b866040517f3439313b000000000000000000000000000000000000000000000000000000008152fd5b60046040517fc0375efc000000000000000000000000000000000000000000000000000000008152fd5b335f52600190600160205260ff60405f20541615610e41578051906040610d88602083015173ffffffffffffffffffffffffffffffffffffffff1690565b910151908251825103610d20575f92845b610da5575b5050505050565b8051841015610e3c578484610dbb829686610e98565b51151580610e11575b610dd0575b0193610d99565b610e0c610dfa610de08386610e98565b5173ffffffffffffffffffffffffffffffffffffffff1690565b85610e058489610e98565b519161105f565b610dc9565b5073ffffffffffffffffffffffffffffffffffffffff610e34610de08386610e98565b161515610dc4565b610d9e565b60046040517f5c427cd9000000000000000000000000000000000000000000000000000000008152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051821015610eac5760209160051b010190565b610e6b565b8115610ee257610ecb610edc93610ec661113d565b611175565b90610ed7833383611199565b611248565b50600190565b60046040517fdb73cdf0000000000000000000000000000000000000000000000000000000008152fd5b90610f1990610ec661113d565b335f526002602052610f4c8260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54908115610ee257610edc92610ed7833383611199565b9190811015610eac5760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b905f9173ffffffffffffffffffffffffffffffffffffffff81165f52600360205260405f20545f9173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811460011461104d576020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa611044575b505b80821161102f575050565b90809293500390811161103f5790565b610f73565b5191505f611022565b50479150611024565b333b1561015457565b9061106981610fa0565b8084116110e5575b5073ffffffffffffffffffffffffffffffffffffffff8092165f5260026020526110bc8160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b80549084820180921161103f5755165f52600360205260405f20805491820180921161103f5755565b92505f611071565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361110d57565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b60ff5f5460a01c1661114b57565b60046040517fd93c0665000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff8116156111945790565b503390565b73ffffffffffffffffffffffffffffffffffffffff80921691825f5260026020526111e58260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b548411610ee25781165f52600360205260405f2091825484810390811161103f5761123993555f52600260205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b805491820391821161103f5755565b929173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee84146001146113025760446020925f92604051917fa9059cbb0000000000000000000000000000000000000000000000000000000083526004830152602482015282865af191826112dd575b505b81156112b557565b7f90b8ec18000000000000000000000000000000000000000000000000000000005f5260045ffd5b9091503d156112f9575060015f5114601f3d1116905b5f6112ab565b3b1515906112f3565b5f809394508092918192612710f1906112ad565b61131e61113d565b740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff5f5416175f557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a156fea164736f6c6343000816000a

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

0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000d7e24a49944f7972ceb826c7557580658f9c33030000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 000000000000000000000000d7e24a49944f7972ceb826c7557580658f9c3303
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000


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
Chain Token Portfolio % Price Amount Value
ETH5.57%$3,717.411.0314$3,834.17
ETH3.27%$0.9973772,255.1019$2,249.19
ETH2.79%$0.9988871,919.5115$1,917.38
ETH1.50%$4,374.270.2359$1,031.8
ETH1.27%$96,0240.00908534$872.41
ETH1.19%$0.99983816.5968$816.46
ETH0.66%$3,773.270.1203$454.05
ETH0.65%$0.0002981,511,823.611$450.21
ETH0.50%$3,717.410.0922$342.71
ETH0.47%$15.2621.1709$323.07
ETH0.42%$0.00002511,537,747.954$290.87
ETH0.39%$1.64165.5095$271.44
ETH0.36%$3,872.820.0643$248.91
ETH0.36%$96,2460.00255948$246.34
ETH0.35%$356.720.6826$243.5
ETH0.34%$0.1125222,073.7959$233.35
ETH0.34%$1.01228.0711$231.11
ETH0.33%$4,129.70.0554$228.93
ETH0.31%$3,691.730.058$214.19
ETH0.31%$0.236023897.8249$211.91
ETH0.29%$5.337.4181$198.39
ETH0.28%$0.758078252.3671$191.31
ETH0.27%$0.996474186.3147$185.66
ETH0.25%$0.708671245.2977$173.84
ETH0.25%$4.2940.1374$172.19
ETH0.25%$8.3520.44$170.73
ETH0.24%$3,910.130.0413$161.68
ETH0.23%$0.000915175,837.0409$160.87
ETH0.22%$0.423614361.3416$153.07
ETH0.22%$0.596512255.7821$152.58
ETH0.22%$0.211225709.6928$149.9
ETH0.22%$2.4361.0985$148.47
ETH0.21%$247.830.59$146.22
ETH0.21%$21.786.7042$146.02
ETH0.21%$0.00015969,372.2855$145.69
ETH0.21%$1.4698.3592$143.6
ETH0.20%$1.15122.3998$140.76
ETH0.20%$215.860.6364$137.37
ETH0.19%$7.3518.087$132.94
ETH0.19%$8.4815.565$131.99
ETH0.18%$1.8568.1261$126.03
ETH0.17%$0.316305378.6768$119.78
ETH0.17%$0.180637653.455$118.04
ETH0.17%$1.12105.0745$117.68
ETH0.17%$0.699873167.2922$117.08
ETH0.17%$0.0320123,609.8139$115.56
ETH0.16%$0.024094,428.5434$106.68
ETH0.15%$0.0301923,469.395$104.75
ETH0.15%$0.000001129,795,597.2924$104.16
ETH0.14%$3,771.310.0264$99.73
ETH0.14%$2.8134.3304$96.47
ETH0.14%$0.918129103.52$95.04
ETH0.13%$0.99833592.0853$91.93
ETH0.13%$594.530.1529$90.9
ETH0.13%$1.7152.7183$90.15
ETH0.13%$0.9944789.6728$89.18
ETH0.13%$0.0455271,945.7844$88.59
ETH0.12%$0.000238353,930.6816$84.11
ETH0.11%$1.7544.3494$77.61
ETH0.11%$0.00133757,133.8028$76.41
ETH0.11%$5.4114.0028$75.76
ETH0.11%$1,813.770.0416$75.46
ETH0.11%$0.0317382,377.3223$75.45
ETH0.11%$0.00022333,188.4869$73.33
ETH0.10%$0.000001123,809,407.4422$72.19
ETH0.10%$0.39285180.9565$71.09
ETH0.10%$3.1722.2901$70.66
ETH0.10%$0.160546431.8874$69.34
ETH0.10%$1.7638.957$68.56
ETH0.10%$1.837.6092$67.7
ETH0.09%$2.0931$64.79
ETH0.09%$1.9233.3059$63.95
ETH0.09%$0.619024102.503$63.45
ETH0.09%$1.0360.7903$62.61
ETH0.09%$0.00000319,289,762.0086$62.6
ETH0.09%$0.73311285.1184$62.4
ETH0.09%$4,368.960.0143$62.35
ETH0.09%$6.0510.2311$61.9
ETH0.09%$0.00000239,021,276.6172$60.48
ETH0.09%$0.99347360.5803$60.18
ETH0.09%$3,742.410.016$59.91
ETH0.09%$0.0000381,560,875.2438$59.28
ETH0.08%<$0.000001350,578,148.129$58.11
ETH0.08%$0.231933244.0063$56.59
ETH0.08%$1.1748.2766$56.48
ETH0.08%$0.71095178.297$55.67
ETH0.08%$27.012.0456$55.24
ETH0.08%$0.00171432,115.8086$55.05
ETH0.08%$3,852.20.0139$53.44
ETH0.08%$1.4336.0967$51.62
ETH0.07%$0.0000182,771,076.8125$51.04
ETH0.07%$0.061302773.8027$47.44
ETH0.07%$0.108149432.295$46.75
ETH0.07%$0.060895755.8569$46.03
ETH0.07%$3,993.620.0114$45.57
ETH0.07%$0.072678622.6847$45.26
ETH0.06%$2.1120.4652$43.18
ETH0.06%$0.000086500,408.6769$43.08
ETH0.06%$0.0114113,677.6909$41.97
ETH0.06%$98,7290.00042196$41.66
ETH0.06%$0.0384641,080.7429$41.57
ETH0.06%$0.100841411.6377$41.51
ETH0.06%$0.56640472.4037$41.01
ETH0.06%$0.79902250.351$40.23
ETH0.06%$0.96174441.7595$40.16
ETH0.06%$0.55942869.6291$38.95
ETH0.06%$2.3216.746$38.85
ETH0.06%$0.00067157,516.5025$38.61
ETH0.06%$1.8820.4782$38.5
ETH0.05%$0.350816104.4204$36.63
ETH0.05%$0.0300671,198.8749$36.05
ETH0.05%$0.0358091,003.1076$35.92
ETH0.05%$0.043057830.471$35.76
ETH0.05%$0.59254958.5867$34.72
ETH0.05%$3,872.560.00889211$34.44
ETH0.05%$96,6970.00035338$34.17
ETH0.05%$1.130.9376$34
ETH0.05%$0.56226659.8539$33.65
ETH0.05%$0.134933247.8872$33.45
ETH0.05%$5.575.8094$32.36
ETH0.04%$0.0185311,643.2023$30.45
ETH0.04%$0.64070547.2457$30.27
ETH0.04%$0.0256851,164.5838$29.91
ETH0.04%$0.053103561.4737$29.82
ETH0.04%$3.249.1924$29.78
ETH0.04%$1.0827.4297$29.71
ETH0.04%$2.2912.8773$29.49
ETH0.04%$75.930.381$28.93
ETH0.04%$3,816.680.00752926$28.74
ETH0.04%$1.6916.999$28.73
ETH0.04%$0.76748237.2228$28.57
ETH0.04%$163.820.173$28.34
ETH0.04%$0.50010756.6155$28.31
ETH0.04%$3,558.550.00794214$28.26
ETH0.04%$0.58870547.6198$28.03
ETH0.04%$0.61042545.8069$27.96
ETH0.04%$9,784.490.00284593$27.85
ETH0.04%$0.255445106.666$27.25
ETH0.04%$2.0613.1907$27.17
ETH0.04%$21.911.2136$26.59
ETH0.04%$671.450.0388$26.06
ETH0.04%$1.9713.0688$25.75
ETH0.04%$0.3433674.5931$25.61
ETH0.04%$0.82504330.7519$25.37
ETH0.04%$0.66250638.068$25.22
ETH0.04%$0.000029857,721.3581$25.19
ETH0.04%$0.57374843.5248$24.97
ETH0.04%$50.40.4941$24.9
ETH0.04%$0.71630634.401$24.64
ETH0.04%$0.000038644,053.562$24.36
ETH0.04%$0.095282254.9428$24.29
ETH0.03%$13.71.7108$23.43
ETH0.03%$3.226.8799$22.17
ETH0.03%$0.69072632.0204$22.12
ETH0.03%$0.143389153.752$22.05
ETH0.03%$6.313.3899$21.39
ETH0.03%$13.771.5515$21.36
ETH0.03%<$0.00000163,989,220.2224$21.16
ETH0.03%$1.8211.3104$20.61
ETH0.03%$1.1218.3796$20.59
ETH0.03%$0.0000054,181,834.4289$20.09
ETH0.03%$0.91653321.7477$19.93
ETH0.03%$0.0116271,700.7483$19.78
ETH0.03%$0.061339318.129$19.51
ETH0.03%$0.18662299.7435$18.61
ETH0.03%$95,6900.00019042$18.22
ETH0.03%$0.0049323,667.3973$18.09
ETH0.03%$1.5511.5863$17.96
ETH0.03%$0.48844336.6922$17.92
ETH0.03%$3.135.6202$17.59
ETH0.03%$0.021637806.6091$17.45
ETH0.03%$56.130.3087$17.33
ETH0.02%$0.5952128.8554$17.18
ETH0.02%$2.227.6479$16.99
ETH0.02%$0.044004378.6357$16.66
ETH0.02%$1.4910.981$16.4
ETH0.02%$0.056525284.3275$16.07
ETH0.02%$0.061858255.1461$15.78
ETH0.02%$0.0052332,997.0523$15.68
ETH0.02%$0.44603835.0336$15.63
ETH0.02%$0.00074120,796.6203$15.41
ETH0.02%$0.00090816,751.8166$15.21
ETH0.02%<$0.000001163,625,629.8705$15.09
ETH0.02%$0.0131481,136.4823$14.94
ETH0.02%$9.171.6213$14.87
ETH0.02%$0.0029324,986.2956$14.62
ETH0.02%$0.76642819.0293$14.58
ETH0.02%$2.396.0167$14.37
ETH0.02%$0.0119871,149.3174$13.78
ETH0.02%$0.21370363.573$13.59
ETH0.02%$0.18870871.9094$13.57
ETH0.02%$13.321.0132$13.5
ETH0.02%$0.000026516,377.1009$13.4
ETH0.02%$0.242654.4032$13.2
ETH0.02%$672.680.0194$13.03
ETH0.02%$0.7792916.7139$13.02
ETH0.02%$3.214.0473$12.98
ETH0.02%$0.0113541,118.4769$12.7
ETH0.02%$0.00082715,108.1641$12.49
ETH0.02%$0.063352197.1081$12.49
ETH0.02%$262.410.047$12.34
ETH0.02%$0.99552212.3894$12.33
ETH0.02%$0.0000061,915,664.2649$12.11
ETH0.02%$0.34615334.5481$11.96
ETH0.02%$3,684.040.00317282$11.69
ETH0.02%$16.140.7112$11.48
ETH0.02%$0.008821,292.2269$11.4
ETH0.02%$0.000034331,012.3692$11.37
ETH0.02%$0.00045924,691.592$11.32
ETH0.02%$3,967.130.00274319$10.88
ETH0.02%$11.250.9664$10.87
ETH0.02%$0.00028737,100.8501$10.63
ETH0.02%$0.0000033,866,995.5078$10.56
ETH0.02%<$0.00000179,244,042.11$10.37
ETH0.01%$0.0055751,847.3145$10.3
ETH0.01%$0.00010993,933.44$10.26
ETH0.01%$0.6868714.7257$10.11
ETH0.01%$1.128.9989$10.08
ETH0.01%$0.015209661.4594$10.06
ETH0.01%$0.10003299.4682$9.95
ETH0.01%$0.042925228.1151$9.79
ETH0.01%$0.0000042,264,785.9077$9.72
ETH0.01%$0.026358365.3598$9.63
ETH0.01%$12.840.7483$9.61
ETH0.01%$1.715.4578$9.33
ETH0.01%$0.69486713.3389$9.27
ETH0.01%$4,074.480.00224713$9.16
ETH0.01%$1.197.5288$8.96
ETH0.01%$0.0025513,499.644$8.93
ETH0.01%$0.57368215.5425$8.92
ETH0.01%<$0.00000155,944,708.6422$8.79
ETH0.01%$0.99728.7604$8.74
ETH0.01%$0.0009678,990.4023$8.69
ETH0.01%$0.020957412.8097$8.65
ETH0.01%$57,671.170.00014756$8.51
ETH0.01%$0.13282563.2334$8.4
ETH0.01%$0.9369458.9205$8.36
ETH0.01%$3.652.2361$8.16
ETH0.01%$0.00010974,751.2094$8.14
ETH0.01%$0.072316110.5507$7.99
ETH0.01%$0.26526729.9268$7.94
ETH0.01%$1.94.092$7.78
ETH0.01%$96,2340.00007992$7.69
ETH0.01%$0.00051214,998.793$7.68
ETH0.01%$19,918.110.00038554$7.68
ETH0.01%$0.054402140.8511$7.66
ETH0.01%$96,2030.0000788$7.58
ETH0.01%$0.41901418.0752$7.57
ETH0.01%$0.000015510,628.7741$7.56
ETH0.01%$255.610.029$7.41
ETH0.01%$0.11823861.8341$7.31
ETH0.01%$0.022257320.1645$7.13
ETH0.01%<$0.00000128,055,094.5862$7.06
ETH0.01%<$0.000001256,563,690.037$7.04
ETH0.01%<$0.000001107,908,568.3272$6.99
ETH0.01%$3.162.1947$6.94
ETH<0.01%$0.042409159.5661$6.77
ETH<0.01%$0.000047145,176.8469$6.75
ETH<0.01%$3.771.7836$6.73
ETH<0.01%$0.000996,788.8861$6.72
ETH<0.01%$0.033559199.9374$6.71
ETH<0.01%$0.27148924.6847$6.7
ETH<0.01%<$0.000001519,691,192.6843$6.67
ETH<0.01%$3.71.7544$6.5
ETH<0.01%$0.16045840.2206$6.45
ETH<0.01%$0.009972642.9346$6.41
ETH<0.01%$0.8093967.7645$6.28
ETH<0.01%$0.09248467.4833$6.24
ETH<0.01%$0.37737616.4941$6.22
ETH<0.01%$0.06280198.6362$6.19
ETH<0.01%$1.354.5805$6.19
ETH<0.01%$0.47870112.8539$6.15
ETH<0.01%$0.0028172,102.5455$5.92
ETH<0.01%$0.0017093,439.4762$5.88
ETH<0.01%<$0.00000124,223,127.2432$5.7
ETH<0.01%$0.00001552,565.6565$5.64
ETH<0.01%$0.5766119.7744$5.64
ETH<0.01%$15.6356$5.64
ETH<0.01%$0.30776218.1039$5.57
ETH<0.01%$15.37$5.37
ETH<0.01%$0.11648845.5421$5.31
ETH<0.01%$0.19227426.9321$5.18
ETH<0.01%$0.0000051,067,296.6485$5.13
ETH<0.01%$0.7914826.4171$5.08
ETH<0.01%$0.09086955.169$5.01
ETH<0.01%$2.811.779$5.01
ETH<0.01%$0.0008635,667.1115$4.89
ETH<0.01%$0.0033261,456.6412$4.84
ETH<0.01%$131.050.0367$4.81
ETH<0.01%$0.019559245.0533$4.79
ETH<0.01%$329,720.150.00001453$4.79
ETH<0.01%<$0.0000012,755,286,272.7372$4.7
ETH<0.01%<$0.00000117,848,814.3439$4.66
ETH<0.01%$0.4965149.3659$4.65
ETH<0.01%$0.0081572.6136$4.64
ETH<0.01%$3.431.3423$4.6
ETH<0.01%$1.14.1853$4.6
ETH<0.01%$0.15208529.7565$4.53
ETH<0.01%$0.5355028.4158$4.51
ETH<0.01%$0.04495798.4787$4.43
ETH<0.01%$1.712.5191$4.31
ETH<0.01%$0.000009465,514.3348$4.3
ETH<0.01%$0.40266610.4983$4.23
ETH<0.01%$0.037453111.9226$4.19
ETH<0.01%$0.07026359.2336$4.16
ETH<0.01%$0.0009534,340.5555$4.14
ETH<0.01%$0.26504815.0961$4
ETH<0.01%$0.0034951,126.749$3.94
ETH<0.01%$0.07085355.1797$3.91
ETH<0.01%$0.000008454,194.5048$3.83
ETH<0.01%$0.0016892,263.6298$3.82
ETH<0.01%$0.0018652,049.7463$3.82
ETH<0.01%$0.7491565.042$3.78
ETH<0.01%$0.008379450.4167$3.77
ETH<0.01%$0.9993973.7472$3.74
ETH<0.01%$0.24250515.413$3.74
ETH<0.01%$0.010182363.4844$3.7
ETH<0.01%$0.007045521.5947$3.67
ETH<0.01%$0.11299932.5139$3.67
ETH<0.01%$0.4202498.6579$3.64
ETH<0.01%$0.016463218.9321$3.6
ETH<0.01%$0.0008544,186.5089$3.57
ETH<0.01%$1.053.3888$3.57
ETH<0.01%$2.671.2785$3.41
ETH<0.01%$349.160.00960197$3.35
ETH<0.01%$0.24434713.5845$3.32
ETH<0.01%$0.15641221.1844$3.31
ETH<0.01%$0.06542950.5581$3.31
ETH<0.01%$18.130.1791$3.25
ETH<0.01%$0.08530237.0282$3.16
ETH<0.01%$3.390.9228$3.13
ETH<0.01%$0.000358,877.1633$3.1
ETH<0.01%$0.0030481,008.575$3.07
ETH<0.01%$0.25213311.9864$3.02
ETH<0.01%$0.1045228.4548$2.97
ETH<0.01%$0.3349778.8174$2.95
ETH<0.01%$0.10359927.433$2.84
ETH<0.01%$0.4478576.2734$2.81
ETH<0.01%$0.0022971,222.352$2.81
ETH<0.01%$0.4713575.9045$2.78
ETH<0.01%$0.006885403.4307$2.78
ETH<0.01%$0.0000012,099,153.118$2.75
ETH<0.01%$0.05802747.2362$2.74
ETH<0.01%$2.231.2082$2.69
ETH<0.01%$12.6813$2.69
ETH<0.01%$0.12007322.3039$2.68
ETH<0.01%$0.2602159.9904$2.6
ETH<0.01%$0.9272552.7638$2.56
ETH<0.01%$0.0432158.5522$2.53
ETH<0.01%$23.340.1066$2.49
ETH<0.01%$4.040.6099$2.46
ETH<0.01%$0.11524821.0297$2.42
ETH<0.01%$0.07558632.0307$2.42
ETH<0.01%$0.00006536,992.0419$2.42
ETH<0.01%$0.0000012,782,843.9791$2.36
ETH<0.01%$0.11101820.9528$2.33
ETH<0.01%$12.2983$2.31
ETH<0.01%$0.04385552.4139$2.3
ETH<0.01%$0.0008232,777.1794$2.28
ETH<0.01%$0.010044224.1502$2.25
ETH<0.01%$0.7266083.0834$2.24
ETH<0.01%$26.850.0829$2.23
ETH<0.01%$22.450.0983$2.21
ETH<0.01%$0.0014261,542.8166$2.2
ETH<0.01%$0.3847055.6461$2.17
ETH<0.01%$1.661.2582$2.09
ETH<0.01%$5.650.369$2.09
ETH<0.01%$0.0013751,501.7734$2.06
ETH<0.01%<$0.000001362,285,639.6352$1.95
ETH<0.01%$3.50.5514$1.93
ETH<0.01%$0.1939479.8946$1.92
ETH<0.01%$0.03028463.361$1.92
ETH<0.01%$0.6346443.0184$1.92
ETH<0.01%$13.430.1389$1.87
ETH<0.01%$0.07785822.9753$1.79
ETH<0.01%$0.04265841.1584$1.76
ETH<0.01%$3,929.730.00044408$1.75
ETH<0.01%$0.002613662.8869$1.73
ETH<0.01%$0.0004913,523.3431$1.73
ETH<0.01%$0.03559748.5897$1.73
ETH<0.01%$0.0009921,661.5353$1.65
ETH<0.01%$0.005233314.6221$1.65
ETH<0.01%$1.730.9447$1.63
ETH<0.01%$0.0306952.4565$1.61
ETH<0.01%$1.730.9212$1.59
ETH<0.01%$0.0002476,441.933$1.59
ETH<0.01%$0.06592124.0762$1.59
ETH<0.01%$0.2882965.4512$1.57
ETH<0.01%$0.007397206.6855$1.53
ETH<0.01%$0.2382126.1899$1.47
ETH<0.01%$0.3358434.3576$1.46
ETH<0.01%$20.210.0713$1.44
ETH<0.01%$1.081.3027$1.41
ETH<0.01%<$0.000001974,545,105.6307$1.39
ETH<0.01%$0.0009071,468.65$1.33
ETH<0.01%$0.00001969,095.9535$1.33
ETH<0.01%$0.001662784.3827$1.3
ETH<0.01%$0.09064514.1562$1.28
ETH<0.01%$0.000003432,751.1726$1.27
ETH<0.01%$0.182136.9305$1.26
ETH<0.01%$0.4594792.6838$1.23
ETH<0.01%$0.0009681,264.4767$1.22
ETH<0.01%$2.710.4412$1.2
ETH<0.01%$2.060.5717$1.18
ETH<0.01%$0.4079722.866$1.17
ETH<0.01%$0.5061562.2821$1.16
ETH<0.01%$0.1503267.5859$1.14
ETH<0.01%$0.003716305.2084$1.13
ETH<0.01%$0.4123862.712$1.12
ETH<0.01%$0.006588169.5284$1.12
ETH<0.01%<$0.000001633,347,294.7121$1.12
ETH<0.01%$0.0002454,531.2409$1.11
ETH<0.01%$0.7287971.5033$1.1
ETH<0.01%<$0.000001192,371,667.4922$1.09
ETH<0.01%$0.007707135.0588$1.04
ETH<0.01%<$0.0000012,282,753.136$1.03
ETH<0.01%$1.060.9736$1.03
ETH<0.01%<$0.00000166,003,332.8026$1.03
ETH<0.01%$0.9852061.0071$0.9922
ETH<0.01%<$0.000001223,721,250.2458$0.9895
ETH<0.01%$0.00002145,238.6876$0.9717
ETH<0.01%$0.1063078.3529$0.8879
ETH<0.01%$11.580.0751$0.8695
ETH<0.01%$4.980.1734$0.864
ETH<0.01%$0.0007941,055.2259$0.8377
ETH<0.01%<$0.000001330,770,599.5631$0.8255
ETH<0.01%$0.002412336.5316$0.8116
ETH<0.01%$0.004706168.3799$0.7924
ETH<0.01%$0.000799983.18$0.7851
ETH<0.01%$0.007298107.5283$0.7846
ETH<0.01%$0.001058725.462$0.7677
ETH<0.01%$0.04537216.4253$0.7452
ETH<0.01%<$0.000001135,876,601.6504$0.7144
ETH<0.01%$0.000001713,994.9993$0.6921
ETH<0.01%$0.0004891,372.415$0.6717
ETH<0.01%$0.4738981.4028$0.6647
ETH<0.01%$0.002502264.2543$0.6612
ETH<0.01%$0.1462744.51$0.6596
ETH<0.01%$0.4491181.431$0.6426
ETH<0.01%$0.02127530.0849$0.64
ETH<0.01%$0.7868850.8058$0.634
ETH<0.01%$0.02009631.4948$0.6329
ETH<0.01%$0.005322117.307$0.6243
ETH<0.01%$54.190.0115$0.6226
ETH<0.01%$0.997050.6098$0.608
ETH<0.01%$0.9922680.6089$0.6042
ETH<0.01%$2.030.2948$0.5991
ETH<0.01%$0.0737667.8364$0.578
ETH<0.01%$0.3662961.5675$0.5741
ETH<0.01%$0.550561.0224$0.5628
ETH<0.01%$3,661.670.000151$0.5529
ETH<0.01%$0.000004149,326.4338$0.5495
ETH<0.01%$1.680.3257$0.5472
ETH<0.01%$0.001718292.8069$0.5029
ETH<0.01%$0.00003912,273.5649$0.4841
ETH<0.01%$0.2383462.028$0.4833
ETH<0.01%$0.000001444,545.8248$0.4534
ETH<0.01%<$0.000001104,977,849.1873$0.445
ETH<0.01%$0.0925464.7586$0.4403
ETH<0.01%$0.01173735.5142$0.4168
ETH<0.01%$0.02550116.0816$0.41
ETH<0.01%$10.4051$0.405
ETH<0.01%$0.4418810.9155$0.4045
ETH<0.01%$0.3068491.3131$0.4029
ETH<0.01%$0.000003139,329.2817$0.4008
ETH<0.01%<$0.00000129,325,093.4135$0.3917
ETH<0.01%$0.00673756.8247$0.3828
ETH<0.01%$0.2588331.4542$0.3764
ETH<0.01%$0.7425050.4999$0.3711
ETH<0.01%$0.01579323.2959$0.3679
ETH<0.01%$0.000002148,062.4416$0.3627
ETH<0.01%$0.0688115.0516$0.3476
ETH<0.01%$0.0639295.4249$0.3468
ETH<0.01%$0.0628085.506$0.3458
ETH<0.01%$2.230.1482$0.3305
ETH<0.01%$0.00770241.5846$0.3202
ETH<0.01%$0.3073871.0002$0.3074
ETH<0.01%$0.00000387,089.2925$0.3021
ETH<0.01%$333.530.00089879$0.2997
ETH<0.01%$0.000835336.2506$0.2807
ETH<0.01%$0.000333839.2512$0.2792
ETH<0.01%$2,642.520.00009985$0.2638
ETH<0.01%$0.000001281,363.8796$0.2634
ETH<0.01%$0.00668738.8351$0.2597
ETH<0.01%<$0.0000011,846,287.6029$0.2587
ETH<0.01%$0.1714391.5051$0.258
ETH<0.01%$0.0001311,958.3749$0.2563
ETH<0.01%$0.01325318.3268$0.2428
ETH<0.01%$0.0000475,154.0433$0.2417
ETH<0.01%$0.01548715.2281$0.2358
ETH<0.01%$0.0575224.0931$0.2354
ETH<0.01%<$0.000001980,735.626$0.2311
ETH<0.01%$0.3431120.6536$0.2242
ETH<0.01%$0.002162100.886$0.2181
ETH<0.01%<$0.000001379,555.7827$0.1831
ETH<0.01%$0.5489780.3331$0.1828
ETH<0.01%<$0.000001188,325,263.4036$0.1823
ETH<0.01%$0.0470963.546$0.167
ETH<0.01%$0.00173290.4261$0.1566
ETH<0.01%$0.000205755.508$0.1545
ETH<0.01%<$0.000001588,060,189.0514$0.1491
ETH<0.01%$0.9945730.1346$0.1338
ETH<0.01%$0.0154158.3363$0.1285
ETH<0.01%$0.12960.9626$0.1247
BSC18.59%$1.866,860.7615$12,788.83
BSC1.02%$1700.243$701.64
BSC0.68%$0.999963468.8978$468.88
BSC0.51%$679.880.5193$353.08
BSC0.37%$3,722.40.0683$254.33
BSC0.28%$1.01193.177$194.88
BSC0.26%$97,104.990.00183522$178.21
BSC0.11%$0.0000441,701,481.2802$74.95
BSC0.10%$3.2820.3128$66.63
BSC0.07%$1.4534.727$50.35
BSC0.07%$0.158606307.7245$48.81
BSC0.07%$0.412561108.581$44.8
BSC0.05%$215.740.1678$36.2
BSC0.05%$2.2114.6225$32.39
BSC0.05%$678.50.0462$31.36
BSC0.04%$11.292.6446$29.86
BSC0.04%$0.11976212.5487$25.45
BSC0.04%<$0.0000014,422,749,622.4512$24.13
BSC0.03%$0.727929.7743$21.67
BSC0.03%$22.290.8784$19.58
BSC0.03%$1.314.0882$18.35
BSC0.02%$5.493.0518$16.75
BSC0.02%$9.391.752$16.45
BSC0.02%$0.01487966.4883$14.37
BSC0.02%$96,9250.00012564$12.18
BSC0.02%$0.14972576.127$11.4
BSC0.02%$111.2329$11.23
BSC0.01%$0.0002442,259.963$10.16
BSC0.01%$1.287.1977$9.23
BSC0.01%$15.570.5428$8.45
BSC0.01%<$0.00000125,910,329.162$8.12
BSC0.01%$0.000025297,521.6161$7.57
BSC0.01%$1.953.8113$7.43
BSC0.01%$0.033257221.9688$7.38
BSC<0.01%$96,5560.00007071$6.83
BSC<0.01%$0.11199959.4367$6.66
BSC<0.01%$4,369.610.00142795$6.24
BSC<0.01%$0.009011688.7579$6.21
BSC<0.01%$0.57058310.8443$6.19
BSC<0.01%$1.793.2514$5.82
BSC<0.01%$5.940.9115$5.41
BSC<0.01%$0.16743630.9818$5.19
BSC<0.01%$0.43557811.8485$5.16
BSC<0.01%$0.3471214.4224$5.01
BSC<0.01%$0.022952217.4506$4.99
BSC<0.01%$0.19092925.8982$4.94
BSC<0.01%$109.220.0451$4.93
BSC<0.01%$0.29897416.2615$4.86
BSC<0.01%$14.6533$4.65
BSC<0.01%$0.005821799.1827$4.65
BSC<0.01%$6.470.7009$4.53
BSC<0.01%$2.461.8227$4.48
BSC<0.01%$0.10678541.8484$4.47
BSC<0.01%$6.190.718$4.45
BSC<0.01%$1.183.7131$4.38
BSC<0.01%$1.113.6609$4.06
BSC<0.01%$0.035621113.7215$4.05
BSC<0.01%$0.000027148,565.3684$3.99
BSC<0.01%$1.043.7916$3.95
BSC<0.01%$13.9298$3.93
BSC<0.01%$0.32947211.3696$3.75
BSC<0.01%$733.910.00506903$3.72
BSC<0.01%$0.007352496.2503$3.65
BSC<0.01%$0.0000014,010,094.3599$3.18
BSC<0.01%$0.4663676.6361$3.09
BSC<0.01%$252.50.0119$3
BSC<0.01%$0.00003975,855.8832$2.92
BSC<0.01%$0.8944493.2392$2.9
BSC<0.01%$8.50.3341$2.84
BSC<0.01%$3.480.8066$2.81
BSC<0.01%$0.00571487.2151$2.78
BSC<0.01%$3.140.8538$2.68
BSC<0.01%$0.4504625.7148$2.57
BSC<0.01%$27.590.0882$2.43
BSC<0.01%$0.11038821.4486$2.37
BSC<0.01%$0.10079122.838$2.3
BSC<0.01%$5.740.3806$2.18
BSC<0.01%$0.1861611.1608$2.08
BSC<0.01%$0.010246197.5667$2.02
BSC<0.01%$0.04166746.9713$1.96
BSC<0.01%$1.011.8786$1.9
BSC<0.01%$0.8418952.2137$1.86
BSC<0.01%$1.551.1604$1.8
BSC<0.01%$0.1937589.0739$1.76
BSC<0.01%$0.00001175,704.5685$1.75
BSC<0.01%$550.090.00315678$1.74
BSC<0.01%<$0.00000110,280,400.0493$1.67
BSC<0.01%$0.04404737.1207$1.64
BSC<0.01%$742.470.00211453$1.57
BSC<0.01%$0.14297810.6078$1.52
BSC<0.01%$0.04880828.8023$1.41
BSC<0.01%$0.1486889.4226$1.4
BSC<0.01%$0.2670714.7381$1.27
BSC<0.01%$0.005241239.5073$1.26
BSC<0.01%<$0.00000142,184,111.1136$1.2
BSC<0.01%$0.04649323.5555$1.1
BSC<0.01%$0.00002247,544.0005$1.05
BSC<0.01%$0.6411931.578$1.01
BSC<0.01%$0.0001855,176.0564$0.9591
BSC<0.01%$0.01963648.1766$0.9459
BSC<0.01%$0.01000191.8644$0.9187
BSC<0.01%$0.006397139.1827$0.8903
BSC<0.01%$0.03596124.103$0.8667
BSC<0.01%$0.02383436.2725$0.8645
BSC<0.01%$0.000001926,248.7867$0.784
BSC<0.01%$5.70.1208$0.6883
BSC<0.01%$0.3354731.9555$0.656
BSC<0.01%$0.01669138.3098$0.6394
BSC<0.01%$0.005101124.0351$0.6326
BSC<0.01%$0.1333043.5338$0.471
BSC<0.01%$0.03165213.2175$0.4183
BSC<0.01%$25.440.0156$0.3956
BSC<0.01%$0.2795671.3844$0.387
BSC<0.01%$0.003487108.2288$0.3774
BSC<0.01%$3.340.0998$0.3332
BSC<0.01%$0.01239923.6888$0.2937
BSC<0.01%$0.9974550.29$0.2893
BSC<0.01%$0.0809962.4346$0.1971
BSC<0.01%<$0.000001704,642,130.3874$0.1819
BSC<0.01%$0.0117389.6784$0.1136
AVAX4.83%$0.9999633,324.3487$3,324.23
AVAX2.58%$44.5839.8207$1,775.14
AVAX2.02%$96,1220.0144$1,386.33
AVAX1.17%$1801.1409$801.41
AVAX0.18%$3,709.30.034$126.09
AVAX0.15%$0.801868126.5117$101.45
AVAX0.12%$44.691.8606$83.15
AVAX0.11%$0.00000235,607,057.0227$75.13
AVAX0.07%$52.160.8579$44.75
AVAX0.05%$135.9445$35.95
AVAX0.04%$0.49457749.2564$24.36
AVAX0.03%$0.35400261.1088$21.63
AVAX0.03%$120.2186$20.23
AVAX0.03%<$0.000001480,258,153.8808$19.45
AVAX0.03%$0.020883871.3619$18.2
AVAX0.02%$96,786.640.00016783$16.24
AVAX0.02%$5.691.8598$10.58
AVAX0.01%$0.15371164.27$9.88
AVAX0.01%$0.34684524.4943$8.5
AVAX0.01%$3,719.210.0021786$8.1
AVAX0.01%$1.16.6246$7.29
AVAX<0.01%<$0.000001264,138,621.6505$6.37
AVAX<0.01%$0.0030861,825.005$5.63
AVAX<0.01%$0.00002256,183.5444$5.06
AVAX<0.01%$0.999924.1353$4.13
AVAX<0.01%$0.000005635,530.2623$3.33
AVAX<0.01%$35.510.0871$3.09
AVAX<0.01%$0.006461408.5225$2.64
AVAX<0.01%$22.290.1057$2.36
AVAX<0.01%$0.009434230.6543$2.18
AVAX<0.01%$0.9999632.011$2.01
AVAX<0.01%$0.02609666.7206$1.74
AVAX<0.01%$0.995951.6812$1.67
AVAX<0.01%$0.001775804.1122$1.43
AVAX<0.01%$0.195675.5334$1.08
AVAX<0.01%$0.00804281.4432$0.6549
AVAX<0.01%$251.150.00255549$0.6418
AVAX<0.01%$0.00895666.6192$0.5966
AVAX<0.01%$1.180.3616$0.4266
AVAX<0.01%$10.4216$0.4215
AVAX<0.01%$26.650.0111$0.295
AVAX<0.01%$0.0289676.6646$0.193
POL1.80%$11,235.2662$1,237.74
POL1.28%$1880.4038$882.16
POL
Polygon (POL)
1.01%$0.5718911,214.4317$694.52
POL0.73%$1497.8231$498.82
POL0.57%$3,722.40.1046$389.29
POL0.37%$0.000301838,713.0147$252.66
POL0.28%$96,6810.00202648$195.92
POL0.25%$0.000416407,713.4895$169.5
POL0.24%$0.569206294.7422$167.77
POL0.19%$0.0455072,859.8873$130.14
POL0.14%$0.645547145.968$94.23
POL0.13%$192.3467$92.53
POL0.12%$1.0675.0508$79.48
POL0.11%$22.223.4871$77.48
POL0.11%$0.74775103.2269$77.19
POL0.11%$3,719.210.0203$75.38
POL0.10%$217.010.3195$69.33
POL0.09%$0.224293286.3936$64.24
POL0.07%$0.0062877,347.13$46.19
POL0.06%$251.290.1774$44.57
POL0.05%$0.207233158.2669$32.8
POL0.04%$7.424.1605$30.87
POL0.04%$4,408.170.00625122$27.56
POL0.04%$0.053368516.3252$27.56
POL0.04%$1.2220.6339$25.17
POL0.04%$15.541.5691$24.38
POL0.03%$0.7268231.5661$22.94
POL0.03%$96,7720.00022736$22
POL0.03%$0.33554358.9145$19.77
POL0.03%$0.000022865,914.8214$19.08
POL0.03%$0.058057324.0693$18.81
POL0.03%$0.26236569.5348$18.24
POL0.03%$0.0065012,730.1245$17.75
POL0.02%$1.89.4185$16.95
POL0.02%$0.83193619.3952$16.14
POL0.02%$4,408.220.00365613$16.12
POL0.02%$1.0613.26$14.04
POL0.02%$113.3211$13.32
POL0.02%$0.0058212,213.5768$12.89
POL0.01%$2.723.7902$10.31
POL0.01%$0.9999210.179$10.18
POL0.01%$1.068.702$9.19
POL0.01%$0.029496297.7774$8.78
POL0.01%$0.029676273.9729$8.13
POL0.01%<$0.000001473,685,947.6363$8.05
POL0.01%$0.19272639.5636$7.62
POL0.01%$3.482.1681$7.55
POL0.01%$0.26174328.5793$7.48
POL0.01%$0.029918240.7263$7.2
POL0.01%$0.9562037.3652$7.04
POL<0.01%$1.374.7063$6.45
POL<0.01%$0.0010925,493.111$6
POL<0.01%$0.6452838.7369$5.64
POL<0.01%$1.035.255$5.39
POL<0.01%$0.006192860.3555$5.33
POL<0.01%$1.015.1458$5.2
POL<0.01%$1.513.4143$5.16
POL<0.01%$0.17419129.5038$5.14
POL<0.01%$5.70.8594$4.9
POL<0.01%$1.822.45$4.46
POL<0.01%$8.690.4952$4.3
POL<0.01%$44.580.0834$3.72
POL<0.01%$0.6376375.5582$3.54
POL<0.01%$6.280.5523$3.47
POL<0.01%$0.04518276.277$3.45
POL<0.01%$0.019636170.1983$3.34
POL<0.01%$0.008834347.71$3.07
POL<0.01%$0.010233290.6371$2.97
POL<0.01%$0.024297114.7441$2.79
POL<0.01%$0.0000012,327,391.5362$2.66
POL<0.01%$0.017091150.6594$2.57
POL<0.01%$3.820.657$2.51
POL<0.01%$139.620.0179$2.5
POL<0.01%$0.005121477.4277$2.44
POL<0.01%$0.3885526.0806$2.36
POL<0.01%$251.710.00920118$2.32
POL<0.01%$0.000005431,387.4986$2.12
POL<0.01%$0.04561345.3868$2.07
POL<0.01%$0.18386510.8136$1.99
POL<0.01%$0.9943831.9198$1.91
POL<0.01%$0.014949125.6792$1.88
POL<0.01%$0.10266116.8155$1.73
POL<0.01%$0.3985644.2209$1.68
POL<0.01%$0.13538412.0452$1.63
POL<0.01%$2.380.6752$1.61
POL<0.01%$0.265256.005$1.59
POL<0.01%$0.7993741.9668$1.57
POL<0.01%$0.04371832.8164$1.43
POL<0.01%$0.2795674.8404$1.35
POL<0.01%$0.00001493,354.6453$1.34
POL<0.01%$11.3249$1.32
POL<0.01%$0.03057336.9875$1.13
POL<0.01%<$0.0000014,563,001.901$1.08
POL<0.01%$0.1532036.7543$1.03
POL<0.01%$0.0009961,036.0401$1.03
POL<0.01%$0.01719958.1973$1
POL<0.01%$0.9995550.9809$0.9804
POL<0.01%$0.002726340.131$0.9271
POL<0.01%$0.03065830.1831$0.9253
POL<0.01%$0.002248367.7125$0.8266
POL<0.01%$0.002369298.5884$0.7073
POL<0.01%$0.5896291.197$0.7057
POL<0.01%$0.3530911.9273$0.6805
POL<0.01%$1.450.4565$0.6619
POL<0.01%$0.001434460.7644$0.6605
POL<0.01%$0.00002723,792.8631$0.6364
POL<0.01%$0.04882112.923$0.6309
POL<0.01%$0.0005611,106.7964$0.6203
POL<0.01%$0.1088395.6269$0.6124
POL<0.01%$0.000351,718.455$0.6013
POL<0.01%$0.57211.0477$0.5993
POL<0.01%$0.004972120.323$0.5982
POL<0.01%$0.00003914,516.202$0.5605
POL<0.01%$0.1358454.1159$0.5591
POL<0.01%$0.999920.4963$0.4962
POL<0.01%$0.0002092,093.0608$0.4375
POL<0.01%$0.02588416.1084$0.4169
POL<0.01%$0.1353843.0141$0.408
POL<0.01%$0.00624561.4718$0.3838
POL<0.01%$0.00038962.5077$0.3658
POL<0.01%$0.0003291,080.6243$0.3559
POL<0.01%$0.0543476.3876$0.3471
POL<0.01%$0.4657080.7153$0.3331
POL<0.01%$0.3479690.8477$0.2949
POL<0.01%$0.2339961.2216$0.2858
POL<0.01%$1.110.254$0.2819
POL<0.01%$0.002151129.1953$0.2779
POL<0.01%$0.469330.5814$0.2728
POL<0.01%$0.02560510.4185$0.2667
POL<0.01%$0.01145221.11$0.2417
POL<0.01%$3.220.0698$0.2247
POL<0.01%$0.01138515.4525$0.1759
POL<0.01%$0.0856072.0023$0.1714
POL<0.01%$0.00216667.2536$0.1456
POL<0.01%$0.0732761.8695$0.1369
POL<0.01%$0.00840615.8609$0.1333
POL<0.01%$0.0118159.6915$0.1145
POL<0.01%$0.00177661.5117$0.1092
BASE1.52%$3,713.40.2823$1,048.2
BASE1.39%$3,709.30.2575$955.29
BASE1.31%$1899.8789$899.88
BASE0.99%$1.51452.6523$683.51
BASE0.68%$97,0190.00482164$467.79
BASE0.40%$2138.5632$277.13
BASE0.38%$0.294632898.044$264.59
BASE0.17%$0.0570642,096.8796$119.66
BASE0.15%$3.7728.1193$106.01
BASE0.14%$0.168721551.2415$93.01
BASE0.12%$181.184$81.35
BASE0.11%$11.46.3817$72.75
BASE0.11%$172.5387$72.68
BASE0.10%$0.090197778.5767$70.23
BASE0.09%$0.0335541,825.5185$61.25
BASE0.08%$4,394.180.013$57.32
BASE0.07%$96,5940.00049529$47.84
BASE0.06%$4,025.480.0104$42.02
BASE0.06%$5.697.3219$41.66
BASE0.06%$1.0537.551$39.58
BASE0.05%$0.0089224,198.0502$37.46
BASE0.05%$0.0166432,131.7449$35.48
BASE0.05%$0.98198832.6686$32.08
BASE0.03%$13.961.4823$20.69
BASE0.03%$4,170.040.00464674$19.38
BASE0.03%<$0.00000196,797,961.2337$19.34
BASE0.03%$1.7311.0415$19.1
BASE0.03%$0.36720449.0382$18.01
BASE0.03%$3,805.350.00470474$17.9
BASE0.02%$0.0033974,598.9415$15.62
BASE0.02%$0.0000034,587,582.0064$14.91
BASE0.02%$0.084047146.7353$12.33
BASE0.02%$0.0000025,087,575.5294$11.42
BASE0.02%$0.99204311.3238$11.23
BASE0.01%$0.014418672.9666$9.7
BASE0.01%$0.00026326,960.402$7.1
BASE0.01%$0.000029234,730.8751$6.91
BASE<0.01%$0.02153289.4275$6.23
BASE<0.01%$0.30728815.4661$4.75
BASE<0.01%$0.600577.4514$4.48
BASE<0.01%$0.0006177,124.9005$4.39
BASE<0.01%$0.00022119,227.3457$4.25
BASE<0.01%$0.04613781.5239$3.76
BASE<0.01%$13.564$3.56
BASE<0.01%$3,701.950.0008917$3.3
BASE<0.01%$0.08020540.9336$3.28
BASE<0.01%$0.028007115.5319$3.24
BASE<0.01%$1.162.5961$3.01
BASE<0.01%$0.05764651.2681$2.96
BASE<0.01%$0.03027191.215$2.76
BASE<0.01%$0.02736598.6521$2.7
BASE<0.01%$0.009093278.8432$2.54
BASE<0.01%$0.03665664.7694$2.37
BASE<0.01%$0.007618292.7726$2.23
BASE<0.01%$1.561.3218$2.06
BASE<0.01%$0.2379968.6393$2.06
BASE<0.01%$0.02770363.4972$1.76
BASE<0.01%$2.690.5934$1.6
BASE<0.01%$0.09048214.9271$1.35
BASE<0.01%$0.00519259.6464$1.35
BASE<0.01%$0.006037218.788$1.32
BASE<0.01%$0.00001577,859.9737$1.14
BASE<0.01%$0.179376.0605$1.09
BASE<0.01%$0.02076751.7068$1.07
BASE<0.01%$2.060.4232$0.8718
BASE<0.01%$0.998930.8585$0.8575
BASE<0.01%$2.960.2802$0.8294
BASE<0.01%$0.0774569.8818$0.7654
BASE<0.01%$0.9979580.7247$0.7232
BASE<0.01%$0.01228758.0353$0.713
BASE<0.01%$0.133723.7629$0.5031
BASE<0.01%<$0.00000146,484,035.0947$0.488
BASE<0.01%$0.002248212.4062$0.4775
BASE<0.01%$0.001076424.477$0.4568
BASE<0.01%$0.000494886.5878$0.4377
BASE<0.01%$0.0885714.8612$0.4305
BASE<0.01%$0.8412910.4923$0.4141
BASE<0.01%$0.000895439.8669$0.3937
BASE<0.01%$0.00497179$0.3927
BASE<0.01%$0.1317592.4611$0.3242
BASE<0.01%$0.0309610.1583$0.3145
BASE<0.01%$0.001765178.0688$0.3142
BASE<0.01%$3,719.210.00008078$0.3004
BASE<0.01%$0.000001573,355.9262$0.2939
BASE<0.01%$0.00002810,503.0147$0.2914
BASE<0.01%$0.00001320,627.505$0.2753
BASE<0.01%<$0.000001868,700.7904$0.271
BASE<0.01%$1.120.2172$0.2432
BASE<0.01%$0.01976511.7676$0.2325
BASE<0.01%$0.000429537.7438$0.2306
BASE<0.01%$0.0001052,088.9594$0.22
BASE<0.01%$0.0321865.7654$0.1855
BASE<0.01%$0.00425642.1652$0.1794