ETH Price: $3,106.85 (+1.30%)

Contract

0x00000000009726632680FB29d3F7A9734E3010E2
 

Overview

ETH Balance

7.215054446298800049 ETH

ETH Value

$22,416.11 (@ $3,106.85/ETH)

Token Holdings

Transaction Hash
Method
Block
From
To
Value
Fill Quote Eth T...1190161722024-04-20 16:38:411 min ago1713631121IN
0x00000000...34E3010E2
0.2 ETH0.000001960.00888501
Fill Quote Eth T...1190154222024-04-20 16:13:4126 mins ago1713629621IN
0x00000000...34E3010E2
0.233 ETH0.00000310.00780288
Fill Quote Token...1190146792024-04-20 15:48:5551 mins ago1713628135IN
0x00000000...34E3010E2
0 ETH0.000005990.00979645
Fill Quote Token...1190146252024-04-20 15:47:0753 mins ago1713628027IN
0x00000000...34E3010E2
0 ETH0.000004130.00924167
Fill Quote Eth T...1190145292024-04-20 15:43:5556 mins ago1713627835IN
0x00000000...34E3010E2
0.00001042 ETH0.00000210.00825376
Fill Quote Eth T...1190143402024-04-20 15:37:371 hr ago1713627457IN
0x00000000...34E3010E2
0.1 ETH0.000002560.00839671
Fill Quote Token...1190136442024-04-20 15:14:251 hr ago1713626065IN
0x00000000...34E3010E2
0 ETH0.000003590.00901958
Fill Quote Eth T...1190131662024-04-20 14:58:291 hr ago1713625109IN
0x00000000...34E3010E2
0.31293599 ETH0.000002460.00750674
Fill Quote Token...1190126652024-04-20 14:41:471 hr ago1713624107IN
0x00000000...34E3010E2
0 ETH0.000003260.00771079
Fill Quote Token...1190122832024-04-20 14:29:032 hrs ago1713623343IN
0x00000000...34E3010E2
0 ETH0.00000340.00976999
Fill Quote Eth T...1190122432024-04-20 14:27:432 hrs ago1713623263IN
0x00000000...34E3010E2
0.0000679 ETH0.000002710.01002028
Fill Quote Token...1190120022024-04-20 14:19:412 hrs ago1713622781IN
0x00000000...34E3010E2
0 ETH0.000005380.00881153
Fill Quote Eth T...1190118252024-04-20 14:13:472 hrs ago1713622427IN
0x00000000...34E3010E2
0.002469 ETH0.000001140.00841777
Fill Quote Token...1190108632024-04-20 13:41:432 hrs ago1713620503IN
0x00000000...34E3010E2
0 ETH0.000003340.01135579
Fill Quote Token...1190091412024-04-20 12:44:193 hrs ago1713617059IN
0x00000000...34E3010E2
0 ETH0.000002650.0109405
Fill Quote Token...1190087272024-04-20 12:30:314 hrs ago1713616231IN
0x00000000...34E3010E2
0 ETH0.00000150.00990124
Fill Quote Token...1190086812024-04-20 12:28:594 hrs ago1713616139IN
0x00000000...34E3010E2
0 ETH0.000003430.00982664
Fill Quote Token...1190086002024-04-20 12:26:174 hrs ago1713615977IN
0x00000000...34E3010E2
0 ETH0.000003910.0099943
Fill Quote Eth T...1190085502024-04-20 12:24:374 hrs ago1713615877IN
0x00000000...34E3010E2
0.1 ETH0.000001620.01020339
Fill Quote Token...1190081922024-04-20 12:12:414 hrs ago1713615161IN
0x00000000...34E3010E2
0 ETH0.000001910.00841591
Fill Quote Token...1190081612024-04-20 12:11:394 hrs ago1713615099IN
0x00000000...34E3010E2
0 ETH0.000001760.00757241
Fill Quote Eth T...1190066542024-04-20 11:21:255 hrs ago1713612085IN
0x00000000...34E3010E2
0.00339 ETH0.000001240.00738076
Fill Quote Token...1190047212024-04-20 10:16:596 hrs ago1713608219IN
0x00000000...34E3010E2
0 ETH0.000001450.00936568
Fill Quote Eth T...1190047082024-04-20 10:16:336 hrs ago1713608193IN
0x00000000...34E3010E2
0.00871373 ETH0.00000130.00922762
Fill Quote Token...1190044692024-04-20 10:08:356 hrs ago1713607715IN
0x00000000...34E3010E2
0 ETH0.000001450.00935519
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
1190161722024-04-20 16:38:411 min ago1713631121
0x00000000...34E3010E2
0.1983 ETH
1190154222024-04-20 16:13:4126 mins ago1713629621
0x00000000...34E3010E2
0.2310195 ETH
1190146792024-04-20 15:48:5551 mins ago1713628135
0x00000000...34E3010E2
0.02001801 ETH
1190146792024-04-20 15:48:5551 mins ago1713628135
0x00000000...34E3010E2
0.02018962 ETH
1190146252024-04-20 15:47:0753 mins ago1713628027
0x00000000...34E3010E2
0.23556666 ETH
1190146252024-04-20 15:47:0753 mins ago1713628027
0x00000000...34E3010E2
0.23758614 ETH
1190145292024-04-20 15:43:5556 mins ago1713627835
0x00000000...34E3010E2
0.00001033 ETH
1190143402024-04-20 15:37:371 hr ago1713627457
0x00000000...34E3010E2
0.09915 ETH
1190136442024-04-20 15:14:251 hr ago1713626065
0x00000000...34E3010E2
0.28740041 ETH
1190136442024-04-20 15:14:251 hr ago1713626065
0x00000000...34E3010E2
0.28986426 ETH
1190131662024-04-20 14:58:291 hr ago1713625109
0x00000000...34E3010E2
0.31027603 ETH
1190126652024-04-20 14:41:471 hr ago1713624107
0x00000000...34E3010E2
0.00338844 ETH
1190126652024-04-20 14:41:471 hr ago1713624107
0x00000000...34E3010E2
0.00341749 ETH
1190122432024-04-20 14:27:432 hrs ago1713623263
0x00000000...34E3010E2
0.00006733 ETH
1190120022024-04-20 14:19:412 hrs ago1713622781
0x00000000...34E3010E2
0.32134769 ETH
1190120022024-04-20 14:19:412 hrs ago1713622781
0x00000000...34E3010E2
0.32410256 ETH
1190118252024-04-20 14:13:472 hrs ago1713622427
0x00000000...34E3010E2
0.00244801 ETH
1190108632024-04-20 13:41:432 hrs ago1713620503
0x00000000...34E3010E2
0.00032753 ETH
1190108632024-04-20 13:41:432 hrs ago1713620503
0x00000000...34E3010E2
0.00033033 ETH
1190091412024-04-20 12:44:193 hrs ago1713617059
0x00000000...34E3010E2
0.00647927 ETH
1190091412024-04-20 12:44:193 hrs ago1713617059
0x00000000...34E3010E2
0.00653482 ETH
1190087272024-04-20 12:30:314 hrs ago1713616231
0x00000000...34E3010E2
0.00146482 ETH
1190087272024-04-20 12:30:314 hrs ago1713616231
0x00000000...34E3010E2
0.00147738 ETH
1190086812024-04-20 12:28:594 hrs ago1713616139
0x00000000...34E3010E2
0.00042747 ETH
1190086812024-04-20 12:28:594 hrs ago1713616139
0x00000000...34E3010E2
0.00043114 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RainbowRouter

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at optimistic.etherscan.io on 2022-03-17
*/

// Sources flattened with hardhat v2.6.5 https://hardhat.org
// SPDX-License-Identifier: GPL-3.0

// File @rari-capital/solmate/src/tokens/[email protected]

pragma solidity >=0.8.0;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    /*///////////////////////////////////////////////////////////////
                                  EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*///////////////////////////////////////////////////////////////
                             METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*///////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

    /*///////////////////////////////////////////////////////////////
                             EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    bytes32 public constant PERMIT_TYPEHASH =
        keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

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

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    /*///////////////////////////////////////////////////////////////
                              ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*///////////////////////////////////////////////////////////////
                              EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            bytes32 digest = keccak256(
                abi.encodePacked(
                    "\x19\x01",
                    DOMAIN_SEPARATOR(),
                    keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
                )
            );

            address recoveredAddress = ecrecover(digest, v, r, s);

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /*///////////////////////////////////////////////////////////////
                       INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}


// File @rari-capital/solmate/src/utils/[email protected]

pragma solidity >=0.8.0;

/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)
/// @author Modified from Gnosis (https://github.com/gnosis/gp-v2-contracts/blob/main/src/contracts/libraries/GPv2SafeERC20.sol)
/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.
library SafeTransferLib {
    /*///////////////////////////////////////////////////////////////
                            ETH OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferETH(address to, uint256 amount) internal {
        bool callStatus;

        assembly {
            // Transfer the ETH and store if it succeeded or not.
            callStatus := call(gas(), to, amount, 0, 0, 0, 0)
        }

        require(callStatus, "ETH_TRANSFER_FAILED");
    }

    /*///////////////////////////////////////////////////////////////
                           ERC20 OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferFrom(
        ERC20 token,
        address from,
        address to,
        uint256 amount
    ) internal {
        bool callStatus;

        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata to memory piece by piece:
            mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000) // Begin with the function selector.
            mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "from" argument.
            mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument.
            mstore(add(freeMemoryPointer, 68), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value.

            // Call the token and store if it succeeded or not.
            // We use 100 because the calldata length is 4 + 32 * 3.
            callStatus := call(gas(), token, 0, freeMemoryPointer, 100, 0, 0)
        }

        require(didLastOptionalReturnCallSucceed(callStatus), "TRANSFER_FROM_FAILED");
    }

    function safeTransfer(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool callStatus;

        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata to memory piece by piece:
            mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) // Begin with the function selector.
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value.

            // Call the token and store if it succeeded or not.
            // We use 68 because the calldata length is 4 + 32 * 2.
            callStatus := call(gas(), token, 0, freeMemoryPointer, 68, 0, 0)
        }

        require(didLastOptionalReturnCallSucceed(callStatus), "TRANSFER_FAILED");
    }

    function safeApprove(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool callStatus;

        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata to memory piece by piece:
            mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000) // Begin with the function selector.
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value.

            // Call the token and store if it succeeded or not.
            // We use 68 because the calldata length is 4 + 32 * 2.
            callStatus := call(gas(), token, 0, freeMemoryPointer, 68, 0, 0)
        }

        require(didLastOptionalReturnCallSucceed(callStatus), "APPROVE_FAILED");
    }

    /*///////////////////////////////////////////////////////////////
                         INTERNAL HELPER LOGIC
    //////////////////////////////////////////////////////////////*/

    function didLastOptionalReturnCallSucceed(bool callStatus) private pure returns (bool success) {
        assembly {
            // Get how many bytes the call returned.
            let returnDataSize := returndatasize()

            // If the call reverted:
            if iszero(callStatus) {
                // Copy the revert message into memory.
                returndatacopy(0, 0, returnDataSize)

                // Revert with the same message.
                revert(0, returnDataSize)
            }

            switch returnDataSize
            case 32 {
                // Copy the return data into memory.
                returndatacopy(0, 0, returnDataSize)

                // Set success to whether it returned true.
                success := iszero(iszero(mload(0)))
            }
            case 0 {
                // There was no return data.
                success := 1
            }
            default {
                // It returned some malformed input.
                success := 0
            }
        }
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]

// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

    /**
     * @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);
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
 * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
 *
 * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
 * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
 * need to send a transaction, and thus is not required to hold Ether at all.
 */
interface IERC20Permit {
    /**
     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
     * given ``owner``'s signed approval.
     *
     * IMPORTANT: The same issues {IERC20-approve} has related to transaction
     * ordering also apply here.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `deadline` must be a timestamp in the future.
     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
     * over the EIP712-formatted function arguments.
     * - the signature must use ``owner``'s current nonce (see {nonces}).
     *
     * For more information on the signature format, see the
     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
     * section].
     */
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    /**
     * @dev Returns the current nonce for `owner`. This value must be
     * included whenever a signature is generated for {permit}.
     *
     * Every successful call to {permit} increases ``owner``'s nonce by one. This
     * prevents a signature from being used multiple times.
     */
    function nonces(address owner) external view returns (uint256);

    /**
     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.
     */
    // solhint-disable-next-line func-name-mixedcase
    function DOMAIN_SEPARATOR() external view returns (bytes32);
}


// File contracts/interfaces/IERC2612.sol

pragma solidity =0.8.11;


interface IERC2612 is IERC20Metadata, IERC20Permit {
    function _nonces(address owner) external view returns (uint256);

    function version() external view returns (string memory);
}


// File @uniswap/v3-periphery/contracts/interfaces/external/[email protected]

pragma solidity >=0.5.0;

/// @title Interface for permit
/// @notice Interface used by DAI/CHAI for permit
interface IERC20PermitAllowed {
    /// @notice Approve the spender to spend some tokens via the holder signature
    /// @dev This is the permit interface used by DAI and CHAI
    /// @param holder The address of the token holder, the token owner
    /// @param spender The address of the token spender
    /// @param nonce The holder's nonce, increases at each call to permit
    /// @param expiry The timestamp at which the permit is no longer valid
    /// @param allowed Boolean that sets approval amount, true for type(uint256).max and false for 0
    /// @param v Must produce valid secp256k1 signature from the holder along with `r` and `s`
    /// @param r Must produce valid secp256k1 signature from the holder along with `v` and `s`
    /// @param s Must produce valid secp256k1 signature from the holder along with `r` and `v`
    function permit(
        address holder,
        address spender,
        uint256 nonce,
        uint256 expiry,
        bool allowed,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
}


// File contracts/interfaces/IDAI.sol

pragma solidity =0.8.11;


interface IDAI is IERC20Metadata, IERC20PermitAllowed {
    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function version() external view returns (string memory);
}


// File contracts/libraries/PermitHelper.sol

pragma solidity =0.8.11;


/// @title PermitHelper
/// @dev Helper methods for using ERC20 Permit (ERC2612 or DAI/CHAI like)
library PermitHelper {
    struct Permit {
        uint256 value;
        uint256 nonce;
        uint256 deadline;
        bool isDaiStylePermit;
        uint8 v;
        bytes32 r;
        bytes32 s;
    }

    /// @dev permit method helper that will handle both known implementations
    // DAI vs ERC2612 tokens
    /// @param permitData bytes containing the encoded permit signature
    /// @param tokenAddress address of the token that will be permitted
    /// @param holder address that holds the tokens to be permitted
    /// @param spender address that will be permitted to spend the tokens
    function permit(
        Permit memory permitData,
        address tokenAddress,
        address holder,
        address spender
    ) internal {
        if (permitData.isDaiStylePermit) {
            IDAI(tokenAddress).permit(
                holder,
                spender,
                permitData.nonce,
                permitData.deadline,
                true,
                permitData.v,
                permitData.r,
                permitData.s
            );
        } else {
            IERC2612(tokenAddress).permit(
                holder,
                spender,
                permitData.value,
                permitData.deadline,
                permitData.v,
                permitData.r,
                permitData.s
            );
        }
    }
}


// File contracts/routers/BaseAggregator.sol

pragma solidity =0.8.11;



/// @title Rainbow base aggregator contract
contract BaseAggregator {
    /// @dev Used to prevent re-entrancy
    uint256 internal status;

    /// @dev Set of allowed swapTargets.
    mapping(address => bool) public swapTargets;

    /// @dev modifier that prevents reentrancy attacks on specific methods
    modifier nonReentrant() {
        // On the first call to nonReentrant, status will be 1
        require(status != 2, "NON_REENTRANT");

        // Any calls to nonReentrant after this point will fail
        status = 2;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        status = 1;
    }

    /// @dev modifier that ensures only approved targets can be called
    modifier onlyApprovedTarget(address target) {
        require(swapTargets[target], "TARGET_NOT_AUTH");
        _;
    }

    /** EXTERNAL **/

    /// @param buyTokenAddress the address of token that the user should receive
    /// @param target the address of the aggregator contract that will exec the swap
    /// @param swapCallData the calldata that will be passed to the aggregator contract
    /// @param feeAmount the amount of ETH that we will take as a fee
    function fillQuoteEthToToken(
        address buyTokenAddress,
        address payable target,
        bytes calldata swapCallData,
        uint256 feeAmount
    ) external payable nonReentrant onlyApprovedTarget(target) {
        // 1 - Get the initial balances
        uint256 initialTokenBalance = ERC20(buyTokenAddress).balanceOf(
            address(this)
        );
        uint256 initialEthAmount = address(this).balance - msg.value;
        uint256 sellAmount = msg.value - feeAmount;

        // 2 - Call the encoded swap function call on the contract at `target`,
        // passing along any ETH attached to this function call to cover protocol fees
        // minus our fees, which are kept in this contract
        (bool success, bytes memory res) = target.call{value: sellAmount}(
            swapCallData
        );

        // Get the revert message of the call and revert with it if the call failed
        if (!success) {
            assembly {
                let returndata_size := mload(res)
                revert(add(32, res), returndata_size)
            }
        }

        // 3 - Make sure we received the tokens
        {
            uint256 finalTokenBalance = ERC20(buyTokenAddress).balanceOf(
                address(this)
            );
            require(initialTokenBalance < finalTokenBalance, "NO_TOKENS");
        }

        // 4 - Send the received tokens back to the user
        SafeTransferLib.safeTransfer(
            ERC20(buyTokenAddress),
            msg.sender,
            ERC20(buyTokenAddress).balanceOf(address(this)) -
                initialTokenBalance
        );

        // 5 - Return the remaining ETH to the user (if any)
        {
            uint256 finalEthAmount = address(this).balance - feeAmount;
            if (finalEthAmount > initialEthAmount) {
                SafeTransferLib.safeTransferETH(
                    msg.sender,
                    finalEthAmount - initialEthAmount
                );
            }
        }
    }

    /// @param sellTokenAddress the address of token that the user is selling
    /// @param buyTokenAddress the address of token that the user should receive
    /// @param target the address of the aggregator contract that will exec the swap
    /// @param swapCallData the calldata that will be passed to the aggregator contract
    /// @param sellAmount the amount of tokens that the user is selling
    /// @param feeAmount the amount of the tokens to sell that we will take as a fee
    function fillQuoteTokenToToken(
        address sellTokenAddress,
        address buyTokenAddress,
        address payable target,
        bytes calldata swapCallData,
        uint256 sellAmount,
        uint256 feeAmount
    ) external payable nonReentrant onlyApprovedTarget(target) {
        _fillQuoteTokenToToken(
            sellTokenAddress,
            buyTokenAddress,
            target,
            swapCallData,
            sellAmount,
            feeAmount
        );
    }

    /// @dev method that executes ERC20 to ERC20 token swaps with the ability to take a fee from the input
    // and accepts a signature to use permit, so the user doesn't have to make an previous approval transaction
    /// @param sellTokenAddress the address of token that the user is selling
    /// @param buyTokenAddress the address of token that the user should receive
    /// @param target the address of the aggregator contract that will exec the swap
    /// @param swapCallData the calldata that will be passed to the aggregator contract
    /// @param sellAmount the amount of tokens that the user is selling
    /// @param feeAmount the amount of the tokens to sell that we will take as a fee
    /// @param permitData struct containing the value, nonce, deadline, v, r and s values of the permit data
    function fillQuoteTokenToTokenWithPermit(
        address sellTokenAddress,
        address buyTokenAddress,
        address payable target,
        bytes calldata swapCallData,
        uint256 sellAmount,
        uint256 feeAmount,
        PermitHelper.Permit calldata permitData
    ) external payable nonReentrant onlyApprovedTarget(target) {
        // 1 - Apply permit
        PermitHelper.permit(
            permitData,
            sellTokenAddress,
            msg.sender,
            address(this)
        );

        //2 - Call fillQuoteTokenToToken
        _fillQuoteTokenToToken(
            sellTokenAddress,
            buyTokenAddress,
            target,
            swapCallData,
            sellAmount,
            feeAmount
        );
    }

    /// @dev method that executes ERC20 to ETH token swaps with the ability to take a fee from the output
    /// @param sellTokenAddress the address of token that the user is selling
    /// @param target the address of the aggregator contract that will exec the swap
    /// @param swapCallData the calldata that will be passed to the aggregator contract
    /// @param sellAmount the amount of tokens that the user is selling
    /// @param feePercentageBasisPoints the amount of ETH that we will take as a fee in 1e18 basis points (basis points with 4 decimals plus 14 extra decimals of precision)
    function fillQuoteTokenToEth(
        address sellTokenAddress,
        address payable target,
        bytes calldata swapCallData,
        uint256 sellAmount,
        uint256 feePercentageBasisPoints
    ) external payable nonReentrant onlyApprovedTarget(target) {
        _fillQuoteTokenToEth(
            sellTokenAddress,
            target,
            swapCallData,
            sellAmount,
            feePercentageBasisPoints
        );
    }

    /// @dev method that executes ERC20 to ETH token swaps with the ability to take a fee from the output
    // and accepts a signature to use permit, so the user doesn't have to make an previous approval transaction
    /// @param sellTokenAddress the address of token that the user is selling
    /// @param target the address of the aggregator contract that will exec the swap
    /// @param swapCallData the calldata that will be passed to the aggregator contract
    /// @param sellAmount the amount of tokens that the user is selling
    /// @param feePercentageBasisPoints the amount of ETH that we will take as a fee in 1e18 basis points (basis points with 4 decimals plus 14 extra decimals of precision)
    /// @param permitData struct containing the amount, nonce, deadline, v, r and s values of the permit data
    function fillQuoteTokenToEthWithPermit(
        address sellTokenAddress,
        address payable target,
        bytes calldata swapCallData,
        uint256 sellAmount,
        uint256 feePercentageBasisPoints,
        PermitHelper.Permit calldata permitData
    ) external payable nonReentrant onlyApprovedTarget(target) {
        // 1 - Apply permit
        PermitHelper.permit(
            permitData,
            sellTokenAddress,
            msg.sender,
            address(this)
        );

        // 2 - call fillQuoteTokenToEth
        _fillQuoteTokenToEth(
            sellTokenAddress,
            target,
            swapCallData,
            sellAmount,
            feePercentageBasisPoints
        );
    }

    /** INTERNAL **/

    /// @dev internal method that executes ERC20 to ETH token swaps with the ability to take a fee from the output
    function _fillQuoteTokenToEth(
        address sellTokenAddress,
        address payable target,
        bytes calldata swapCallData,
        uint256 sellAmount,
        uint256 feePercentageBasisPoints
    ) internal {
        // 1 - Get the initial ETH amount
        uint256 initialEthAmount = address(this).balance - msg.value;

        // 2 - Move the tokens to this contract
        // NOTE: This implicitly assumes that the the necessary approvals have been granted
        // from msg.sender to the BaseAggregator
        SafeTransferLib.safeTransferFrom(
            ERC20(sellTokenAddress),
            msg.sender,
            address(this),
            sellAmount
        );

        // 3 - Approve the aggregator's contract to swap the tokens
        SafeTransferLib.safeApprove(
            ERC20(sellTokenAddress),
            target,
            sellAmount
        );

        // 4 - Call the encoded swap function call on the contract at `target`,
        // passing along any ETH attached to this function call to cover protocol fees.
        (bool success, bytes memory res) = target.call{value: msg.value}(
            swapCallData
        );

        // Get the revert message of the call and revert with it if the call failed
        if (!success) {
            assembly {
                let returndata_size := mload(res)
                revert(add(32, res), returndata_size)
            }
        }

        // 5 - Check that the tokens were fully spent during the swap
        uint256 allowance = ERC20(sellTokenAddress).allowance(
            address(this),
            target
        );
        require(allowance == 0, "ALLOWANCE_NOT_ZERO");

        // 6 - Subtract the fees and send the rest to the user
        // Fees will be held in this contract
        uint256 finalEthAmount = address(this).balance;
        uint256 ethDiff = finalEthAmount - initialEthAmount;

        require(ethDiff > 0, "NO_ETH_BACK");

        if (feePercentageBasisPoints > 0) {
            uint256 fees = (ethDiff * feePercentageBasisPoints) / 1e18;
            uint256 amountMinusFees = ethDiff - fees;
            SafeTransferLib.safeTransferETH(msg.sender, amountMinusFees);
            // when there's no fee, 1inch sends the funds directly to the user
            // we check to prevent sending 0 ETH in that case
        } else if (ethDiff > 0) {
            SafeTransferLib.safeTransferETH(msg.sender, ethDiff);
        }
    }

    /// @dev internal method that executes ERC20 to ERC20 token swaps with the ability to take a fee from the input
    function _fillQuoteTokenToToken(
        address sellTokenAddress,
        address buyTokenAddress,
        address payable target,
        bytes calldata swapCallData,
        uint256 sellAmount,
        uint256 feeAmount
    ) internal {
        // 1 - Get the initial output token balance
        uint256 initialOutputTokenAmount = ERC20(buyTokenAddress).balanceOf(
            address(this)
        );

        // 2 - Move the tokens to this contract (which includes our fees)
        // NOTE: This implicitly assumes that the the necessary approvals have been granted
        // from msg.sender to the BaseAggregator
        SafeTransferLib.safeTransferFrom(
            ERC20(sellTokenAddress),
            msg.sender,
            address(this),
            sellAmount
        );

        // 3 - Approve the aggregator's contract to swap the tokens if needed
        SafeTransferLib.safeApprove(
            ERC20(sellTokenAddress),
            target,
            sellAmount - feeAmount
        );

        // 4 - Call the encoded swap function call on the contract at `target`,
        // passing along any ETH attached to this function call to cover protocol fees.
        (bool success, bytes memory res) = target.call{value: msg.value}(
            swapCallData
        );

        // Get the revert message of the call and revert with it if the call failed
        if (!success) {
            assembly {
                let returndata_size := mload(res)
                revert(add(32, res), returndata_size)
            }
        }

        // 5 - Check that the tokens were fully spent during the swap
        uint256 allowance = ERC20(sellTokenAddress).allowance(
            address(this),
            target
        );
        require(allowance == 0, "ALLOWANCE_NOT_ZERO");

        // 6 - Make sure we received the tokens
        uint256 finalOutputTokenAmount = ERC20(buyTokenAddress).balanceOf(
            address(this)
        );
        require(initialOutputTokenAmount < finalOutputTokenAmount, "NO_TOKENS");

        // 7 - Send tokens to the user
        SafeTransferLib.safeTransfer(
            ERC20(buyTokenAddress),
            msg.sender,
            finalOutputTokenAmount - initialOutputTokenAmount
        );
    }
}


// File contracts/RainbowRouter.sol

/*

                                                            ▐██▒           ███
                                            ,╓, ▄▄  ,▄▄▄,   .▄▄. ,╓, ▄▄▄   ██▌ ▄▄▄     ,▄▄▄,  ,╓╓   ╓╓   ,╓
                                            ██████ ███▀▀██⌐ ▐██⌐ ███▀▀███⌐ ████▀▀███ ╓██▀▀▀██▄`██▌ ▐██▌ ▐██
                                            ███    ▄▄█████▌ ▐██⌐ ██▌  ▐██▌ ██▌   ║██⌐███   ▓██ ╙██▄█▌██▄██⌐
                                            ██▌   ▐██▄▄███▌,▐██⌐ ██▌  ▐██▌ ███▓▄▄███ ╙██▄▄▄██▀  ║███¬╙███▌
                                            ╙╙└    ╙╙▀╙─╙▀▀└"╙╙` ╙╙└   ╙╙" ╙╙`╙╙▀▀└    ╙╙▀▀╙`    ╙╙└  ╙╙╙
                                            

        
                                            _," _   _"""ⁿ=-,  _
                                            ⌠            _    __"=.__
                                            ▐░......   _  _          "=._
                                            ▐░░░░░░░░░░░░░░░░.           "= _
                                            ╚╩╩╩╩╩╩δφφφφ░░░░░░░░░░░          >__
                                            ▐░░░░░░░░__ _ ╙╙╚╩φφ░░░░░░░        ^=_
                                            ▐░░░░░░░░░░░░░░░,░  `╙╠φ░░░░░░░       ⁿ
                                            ▐░░░░░░░░░░░░░░░░░░░░._ `╚Åφ░░░░░       " _
                                            ╚╠╠╠╠╠╠╠╬╬╬▒▒φ░░░░░░░░░░░░  ╙╠░░░░░       "
                                            ╚╝╝╝╝╝╝╝╬╬╬╠╢╬╠╬╠╬▒░░░░░░░░░░ "╚φ░░░░       ½_
                                            ▐░░░░░░░░░░;░╙╙╝╬╠╬╠╠▒▒░░░░░░░░_ ╚φ░░░░      "_
                                            ╚▒φφφ░░░░░░░░░░░░-╙╚╬╠╠╠╬▒░░░░░░░ `╠▒░░░░      ,
                                            ╞╬╬╬╠╠╠╬╬╬╬▒φ▒░░░░░░░╙╚╬╬╠╬▒▒░░░░░ .╙╠░░░░      ≥
                                            _▒░░░ΓΓ╙╙╙╚╩╬╠╬╠▒▒░░░░░░╙╬╬╠╬▒▒░░░░░' ╠▒░░░░     ≥
                                            `╙ⁿⁿ≈≈σ╓░ '╙╙╚╬╠╬▒░░░░░░╙╬╬╠╬▒░░░░░  ╠▒░░░░     [
                                                        _╙Θ░ ░╙╠╠╬╬▒░░░░░╬╠╠╠▒▒░░░░  ╠▒░░░░    '_
                                                        _╙φ░'╙╠╠╬▒░░░░░╟╠╠╠▒░░░░░ _╠▒░░░     ░_
                                                            _`φ ░╚╬╠╠▒░░░░║╠╠╠▒░░░░░.`╠░░░░     [
                                                            _╚░⌡╚╠╬╬▒░░░░╠╠╠╬▒░░░░░ ╠▒░░░░    ░
                                                                _╙░⌡╚╠╠╬▒░░░"▒╠╠╬▒░░░░ ⌠╠░░░░    ⌡_
                                                                ╠ ░╠╠╠╬▒░░░║╠╬╠╬▒░░░ _╠▒░░░     Γ
                                                                ▐░░░╠╠╠▒░░░╟╠╠╠╬▒░░░░ ╠▒░░░░    [
                                                                _░.░╠╠╠▒░░░▐╬╠╠╬▒░░░░[╠╬░░░░    │
                                                                _╙φ░╠╠╠╬▒░░▐╬╬╠╬╬▒░░░[╠╬░░░░  ░≥_
                                                                    ____ ____  __ _______ ____


    /$$$$$$                                           /$$$$$$                                                                /$$                        
    /$$__  $$                                         /$$__  $$                                                              | $$                        
    | $$  \__/ /$$  /$$  /$$  /$$$$$$   /$$$$$$       | $$  \ $$  /$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$  /$$$$$$    /$$$$$$   /$$$$$$ 
    |  $$$$$$ | $$ | $$ | $$ |____  $$ /$$__  $$      | $$$$$$$$ /$$__  $$ /$$__  $$ /$$__  $$ /$$__  $$ /$$__  $$ |____  $$|_  $$_/   /$$__  $$ /$$__  $$
    \____  $$| $$ | $$ | $$  /$$$$$$$| $$  \ $$      | $$__  $$| $$  \ $$| $$  \ $$| $$  \__/| $$$$$$$$| $$  \ $$  /$$$$$$$  | $$    | $$  \ $$| $$  \__/
    /$$  \ $$| $$ | $$ | $$ /$$__  $$| $$  | $$      | $$  | $$| $$  | $$| $$  | $$| $$      | $$_____/| $$  | $$ /$$__  $$  | $$ /$$| $$  | $$| $$      
    |  $$$$$$/|  $$$$$/$$$$/|  $$$$$$$| $$$$$$$/      | $$  | $$|  $$$$$$$|  $$$$$$$| $$      |  $$$$$$$|  $$$$$$$|  $$$$$$$  |  $$$$/|  $$$$$$/| $$      
    \______/  \_____/\___/  \_______/| $$____/       |__/  |__/ \____  $$ \____  $$|__/       \_______/ \____  $$ \_______/   \___/   \______/ |__/      
                                    | $$                       /$$  \ $$ /$$  \ $$                     /$$  \ $$                                        
                                    | $$                      |  $$$$$$/|  $$$$$$/                    |  $$$$$$/                                        
                                    |__/                       \______/  \______/                      \______/                                         
                
     
*/

pragma solidity =0.8.11;



/// @title Rainbow swap aggregator contract
contract RainbowRouter is BaseAggregator {
    /// @dev The address that is the current owner of this contract
    address public owner;

    /// @dev Event emitted when the owner changes
    event OwnerChanged(address indexed newOwner, address indexed oldOwner);

    /// @dev Event emitted when a swap target gets added
    event SwapTargetAdded(address indexed target);

    /// @dev Event emitted when a swap target gets removed
    event SwapTargetRemoved(address indexed target);

    /// @dev Event emitted when token fees are withdrawn
    event TokenWithdrawn(
        address indexed token,
        address indexed target,
        uint256 amount
    );

    /// @dev Event emitted when ETH fees are withdrawn
    event EthWithdrawn(address indexed target, uint256 amount);

    /// @dev modifier that ensures only the owner is allowed to call a specific method
    modifier onlyOwner() {
        require(msg.sender == owner, "ONLY_OWNER");
        _;
    }

    constructor() {
        owner = msg.sender;
        status = 1;
    }

    /// @dev We don't want to accept any ETH, except refunds from aggregators
    /// or the owner (for testing purposes), which can also withdraw
    /// This is done by evaluating the value of status, which is set to 2
    /// only during swaps due to the "nonReentrant" modifier
    receive() external payable {
        require(status == 2 || msg.sender == owner, "NO_RECEIVE");
    }

    /// @dev method to add or remove swap targets from swapTargets
    /// This is required so we only approve "trusted" swap targets
    /// to transfer tokens out of this contract
    /// @param target address of the swap target to add
    /// @param add flag to add or remove the swap target
    function updateSwapTargets(address target, bool add) external onlyOwner {
        swapTargets[target] = add;
        if (add) {
            emit SwapTargetAdded(target);
        } else {
            emit SwapTargetRemoved(target);
        }
    }

    /// @dev method to withdraw ERC20 tokens (from the fees)
    /// @param token address of the token to withdraw
    /// @param to address that's receiving the tokens
    /// @param amount amount of tokens to withdraw
    function withdrawToken(
        address token,
        address to,
        uint256 amount
    ) external onlyOwner {
        require(to != address(0), "ZERO_ADDRESS");
        SafeTransferLib.safeTransfer(ERC20(token), to, amount);
        emit TokenWithdrawn(token, to, amount);
    }

    /// @dev method to withdraw ETH (from the fees)
    /// @param to address that's receiving the ETH
    /// @param amount amount of ETH to withdraw
    function withdrawEth(address to, uint256 amount) external onlyOwner {
        require(to != address(0), "ZERO_ADDRESS");
        SafeTransferLib.safeTransferETH(to, amount);
        emit EthWithdrawn(to, amount);
    }

    /// @dev Transfers ownership of the contract to a new account (`newOwner`).
    /// @param newOwner address of the new owner
    /// Can only be called by the current owner.
    function transferOwnership(address newOwner) external virtual onlyOwner {
        require(newOwner != address(0), "ZERO_ADDRESS");
        require(newOwner != owner, "SAME_OWNER");
        address previousOwner = owner;
        owner = newOwner;
        emit OwnerChanged(newOwner, previousOwner);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"SwapTargetAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"SwapTargetRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenWithdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"buyTokenAddress","type":"address"},{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}],"name":"fillQuoteEthToToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sellTokenAddress","type":"address"},{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"},{"internalType":"uint256","name":"sellAmount","type":"uint256"},{"internalType":"uint256","name":"feePercentageBasisPoints","type":"uint256"}],"name":"fillQuoteTokenToEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sellTokenAddress","type":"address"},{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"},{"internalType":"uint256","name":"sellAmount","type":"uint256"},{"internalType":"uint256","name":"feePercentageBasisPoints","type":"uint256"},{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"isDaiStylePermit","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct PermitHelper.Permit","name":"permitData","type":"tuple"}],"name":"fillQuoteTokenToEthWithPermit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sellTokenAddress","type":"address"},{"internalType":"address","name":"buyTokenAddress","type":"address"},{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"},{"internalType":"uint256","name":"sellAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}],"name":"fillQuoteTokenToToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sellTokenAddress","type":"address"},{"internalType":"address","name":"buyTokenAddress","type":"address"},{"internalType":"address payable","name":"target","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"},{"internalType":"uint256","name":"sellAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"isDaiStylePermit","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct PermitHelper.Permit","name":"permitData","type":"tuple"}],"name":"fillQuoteTokenToTokenWithPermit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"swapTargets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"add","type":"bool"}],"name":"updateSwapTargets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50600280546001600160a01b031916331790556001600055611afd806100376000396000f3fe6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b0480bbd1161004e578063b0480bbd1461024e578063b309383814610261578063f2fde38b1461027457600080fd5b80638da5cb5b146101e357806397bbda0e1461021b578063999b64641461023b57600080fd5b80633c2b9a7d116100a55780633c2b9a7d1461017857806355e4b7be1461018b57806383c4a19d1461019e57600080fd5b806301e33667146101385780631b9a91a41461015857600080fd5b3661013357600054600214806100e057506002546001600160a01b031633145b6101315760405162461bcd60e51b815260206004820152600a60248201527f4e4f5f524543454956450000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561014457600080fd5b506101316101533660046115a6565b610294565b34801561016457600080fd5b506101316101733660046115e7565b61037d565b61013161018636600461165c565b61045a565b6101316101993660046116c9565b61075f565b3480156101aa57600080fd5b506101ce6101b9366004611754565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101ef57600080fd5b50600254610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101da565b34801561022757600080fd5b5061013161023636600461178d565b610820565b6101316102493660046117c2565b610904565b61013161025c366004611851565b6109c3565b61013161026f3660046118f1565b610a9f565b34801561028057600080fd5b5061013161028f366004611754565b610b6a565b6002546001600160a01b031633146102db5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166103205760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b61032b838383610cbd565b816001600160a01b0316836001600160a01b03167f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e56208360405161037091815260200190565b60405180910390a3505050565b6002546001600160a01b031633146103c45760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166104095760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6104138282610d63565b816001600160a01b03167f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8260405161044e91815260200190565b60405180910390a25050565b6000546002141561049d5760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038516815260016020526040902054849060ff166104fd5760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610568919061197f565b9050600061057634476119ae565b9050600061058485346119ae565b9050600080896001600160a01b0316838a8a6040516105a49291906119c5565b60006040518083038185875af1925050503d80600081146105e1576040519150601f19603f3d011682016040523d82523d6000602084013e6105e6565b606091505b5091509150816105f95780518082602001fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038d16906370a0823190602401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610664919061197f565b90508086106106a15760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b506040516370a0823160e01b8152306004820152610723908c90339088906001600160a01b038416906370a0823190602401602060405180830381865afa1580156106f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610714919061197f565b61071e91906119ae565b610cbd565b600061072f88476119ae565b90508481111561074c5761074c3361074787846119ae565b610d63565b5050600160005550505050505050505050565b600054600214156107a25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166108025760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b61081188888888888888610dc3565b50506001600055505050505050565b6002546001600160a01b031633146108675760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166000908152600160205260409020805460ff191682158015919091179091556108cc576040516001600160a01b038316907fb907822409611d127ab6a64611591b98e03a6a85ade4f258bae26b7c1efdfeaf90600090a25050565b6040516001600160a01b038316907f393b8be3e26787f19285ecd039dfd80bc6507828750f4d50367e6efe2524695c90600090a25050565b600054600214156109475760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166109a75760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6109b587878787878761104c565b505060016000555050505050565b60005460021415610a065760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610a665760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610a80610a78368490038401846119e6565b8a333061125d565b610a8f89898989898989610dc3565b5050600160005550505050505050565b60005460021415610ae25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610b425760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610b5c610b54368490038401846119e6565b89333061125d565b61081188888888888861104c565b6002546001600160a01b03163314610bb15760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b038116610bf65760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6002546001600160a01b0382811691161415610c545760405162461bcd60e51b815260206004820152600a60248201527f53414d455f4f574e4552000000000000000000000000000000000000000000006044820152606401610128565b600280546001600160a01b038381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316811790935560405191169182917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a35050565b60006040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050610d11816113f1565b610d5d5760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610128565b50505050565b600080600080600085875af1905080610dbe5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610128565b505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e919061197f565b9050610e3c88333086611438565b610e508887610e4b85876119ae565b6114ee565b600080876001600160a01b0316348888604051610e6e9291906119c5565b60006040518083038185875af1925050503d8060008114610eab576040519150601f19603f3d011682016040523d82523d6000602084013e610eb0565b606091505b509150915081610ec35780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908c169063dd62ed3e90604401602060405180830381865afa158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f37919061197f565b90508015610f875760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff2919061197f565b905080851061102f5760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b61103e8b3361071e88856119ae565b505050505050505050505050565b600061105834476119ae565b905061106687333086611438565b6110718787856114ee565b600080876001600160a01b031634888860405161108f9291906119c5565b60006040518083038185875af1925050503d80600081146110cc576040519150601f19603f3d011682016040523d82523d6000602084013e6110d1565b606091505b5091509150816110e45780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908b169063dd62ed3e90604401602060405180830381865afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611158919061197f565b905080156111a85760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b4760006111b586836119ae565b9050600081116112075760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f4554485f4241434b0000000000000000000000000000000000000000006044820152606401610128565b861561124d576000670de0b6b3a76400006112228984611a86565b61122c9190611aa5565b9050600061123a82846119ae565b90506112463382610d63565b505061103e565b801561103e5761103e3382610d63565b836060015115611331576020840151604080860151608087015160a088015160c089015193517f8fcbaf0c0000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528781166024830152604482019690965260648101939093526001608484015260ff90911660a483015260c482015260e481019190915290841690638fcbaf0c9061010401600060405180830381600087803b15801561131457600080fd5b505af1158015611328573d6000803e3d6000fd5b50505050610d5d565b8351604080860151608087015160a088015160c089015193517fd505accf0000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301526044820196909652606481019390935260ff909116608483015260a482015260c48101919091529084169063d505accf9060e401600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b5050505050505050565b60003d8261140357806000803e806000fd5b806020811461141b57801561142c5760009250611431565b816000803e60005115159250611431565b600192505b5050919050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526001600160a01b038416602482015282604482015260008060648360008a5af191505061149b816113f1565b6114e75760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610128565b5050505050565b60006040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050611542816113f1565b610d5d5760405162461bcd60e51b815260206004820152600e60248201527f415050524f56455f4641494c45440000000000000000000000000000000000006044820152606401610128565b6001600160a01b03811681146115a357600080fd5b50565b6000806000606084860312156115bb57600080fd5b83356115c68161158e565b925060208401356115d68161158e565b929592945050506040919091013590565b600080604083850312156115fa57600080fd5b82356116058161158e565b946020939093013593505050565b60008083601f84011261162557600080fd5b50813567ffffffffffffffff81111561163d57600080fd5b60208301915083602082850101111561165557600080fd5b9250929050565b60008060008060006080868803121561167457600080fd5b853561167f8161158e565b9450602086013561168f8161158e565b9350604086013567ffffffffffffffff8111156116ab57600080fd5b6116b788828901611613565b96999598509660600135949350505050565b600080600080600080600060c0888a0312156116e457600080fd5b87356116ef8161158e565b965060208801356116ff8161158e565b9550604088013561170f8161158e565b9450606088013567ffffffffffffffff81111561172b57600080fd5b6117378a828b01611613565b989b979a50959895979660808701359660a0013595509350505050565b60006020828403121561176657600080fd5b81356117718161158e565b9392505050565b8035801515811461178857600080fd5b919050565b600080604083850312156117a057600080fd5b82356117ab8161158e565b91506117b960208401611778565b90509250929050565b60008060008060008060a087890312156117db57600080fd5b86356117e68161158e565b955060208701356117f68161158e565b9450604087013567ffffffffffffffff81111561181257600080fd5b61181e89828a01611613565b979a9699509760608101359660809091013595509350505050565b600060e0828403121561184b57600080fd5b50919050565b6000806000806000806000806101a0898b03121561186e57600080fd5b88356118798161158e565b975060208901356118898161158e565b965060408901356118998161158e565b9550606089013567ffffffffffffffff8111156118b557600080fd5b6118c18b828c01611613565b9096509450506080890135925060a089013591506118e28a60c08b01611839565b90509295985092959890939650565b6000806000806000806000610180888a03121561190d57600080fd5b87356119188161158e565b965060208801356119288161158e565b9550604088013567ffffffffffffffff81111561194457600080fd5b6119508a828b01611613565b90965094505060608801359250608088013591506119718960a08a01611839565b905092959891949750929550565b60006020828403121561199157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119c0576119c0611998565b500390565b8183823760009101908152919050565b803560ff8116811461178857600080fd5b600060e082840312156119f857600080fd5b60405160e0810181811067ffffffffffffffff82111715611a2957634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152611a5260608401611778565b6060820152611a63608084016119d5565b608082015260a083013560a082015260c083013560c08201528091505092915050565b6000816000190483118215151615611aa057611aa0611998565b500290565b600082611ac257634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209870dd0dc3fb83baf72036a002768c9388c9b2cbf93b6d7b09369fddefaaf87764736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b0480bbd1161004e578063b0480bbd1461024e578063b309383814610261578063f2fde38b1461027457600080fd5b80638da5cb5b146101e357806397bbda0e1461021b578063999b64641461023b57600080fd5b80633c2b9a7d116100a55780633c2b9a7d1461017857806355e4b7be1461018b57806383c4a19d1461019e57600080fd5b806301e33667146101385780631b9a91a41461015857600080fd5b3661013357600054600214806100e057506002546001600160a01b031633145b6101315760405162461bcd60e51b815260206004820152600a60248201527f4e4f5f524543454956450000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561014457600080fd5b506101316101533660046115a6565b610294565b34801561016457600080fd5b506101316101733660046115e7565b61037d565b61013161018636600461165c565b61045a565b6101316101993660046116c9565b61075f565b3480156101aa57600080fd5b506101ce6101b9366004611754565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101ef57600080fd5b50600254610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101da565b34801561022757600080fd5b5061013161023636600461178d565b610820565b6101316102493660046117c2565b610904565b61013161025c366004611851565b6109c3565b61013161026f3660046118f1565b610a9f565b34801561028057600080fd5b5061013161028f366004611754565b610b6a565b6002546001600160a01b031633146102db5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166103205760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b61032b838383610cbd565b816001600160a01b0316836001600160a01b03167f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e56208360405161037091815260200190565b60405180910390a3505050565b6002546001600160a01b031633146103c45760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166104095760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6104138282610d63565b816001600160a01b03167f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8260405161044e91815260200190565b60405180910390a25050565b6000546002141561049d5760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038516815260016020526040902054849060ff166104fd5760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610568919061197f565b9050600061057634476119ae565b9050600061058485346119ae565b9050600080896001600160a01b0316838a8a6040516105a49291906119c5565b60006040518083038185875af1925050503d80600081146105e1576040519150601f19603f3d011682016040523d82523d6000602084013e6105e6565b606091505b5091509150816105f95780518082602001fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038d16906370a0823190602401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610664919061197f565b90508086106106a15760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b506040516370a0823160e01b8152306004820152610723908c90339088906001600160a01b038416906370a0823190602401602060405180830381865afa1580156106f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610714919061197f565b61071e91906119ae565b610cbd565b600061072f88476119ae565b90508481111561074c5761074c3361074787846119ae565b610d63565b5050600160005550505050505050505050565b600054600214156107a25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166108025760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b61081188888888888888610dc3565b50506001600055505050505050565b6002546001600160a01b031633146108675760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166000908152600160205260409020805460ff191682158015919091179091556108cc576040516001600160a01b038316907fb907822409611d127ab6a64611591b98e03a6a85ade4f258bae26b7c1efdfeaf90600090a25050565b6040516001600160a01b038316907f393b8be3e26787f19285ecd039dfd80bc6507828750f4d50367e6efe2524695c90600090a25050565b600054600214156109475760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166109a75760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6109b587878787878761104c565b505060016000555050505050565b60005460021415610a065760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610a665760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610a80610a78368490038401846119e6565b8a333061125d565b610a8f89898989898989610dc3565b5050600160005550505050505050565b60005460021415610ae25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610b425760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610b5c610b54368490038401846119e6565b89333061125d565b61081188888888888861104c565b6002546001600160a01b03163314610bb15760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b038116610bf65760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6002546001600160a01b0382811691161415610c545760405162461bcd60e51b815260206004820152600a60248201527f53414d455f4f574e4552000000000000000000000000000000000000000000006044820152606401610128565b600280546001600160a01b038381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316811790935560405191169182917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a35050565b60006040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050610d11816113f1565b610d5d5760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610128565b50505050565b600080600080600085875af1905080610dbe5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610128565b505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e919061197f565b9050610e3c88333086611438565b610e508887610e4b85876119ae565b6114ee565b600080876001600160a01b0316348888604051610e6e9291906119c5565b60006040518083038185875af1925050503d8060008114610eab576040519150601f19603f3d011682016040523d82523d6000602084013e610eb0565b606091505b509150915081610ec35780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908c169063dd62ed3e90604401602060405180830381865afa158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f37919061197f565b90508015610f875760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff2919061197f565b905080851061102f5760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b61103e8b3361071e88856119ae565b505050505050505050505050565b600061105834476119ae565b905061106687333086611438565b6110718787856114ee565b600080876001600160a01b031634888860405161108f9291906119c5565b60006040518083038185875af1925050503d80600081146110cc576040519150601f19603f3d011682016040523d82523d6000602084013e6110d1565b606091505b5091509150816110e45780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908b169063dd62ed3e90604401602060405180830381865afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611158919061197f565b905080156111a85760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b4760006111b586836119ae565b9050600081116112075760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f4554485f4241434b0000000000000000000000000000000000000000006044820152606401610128565b861561124d576000670de0b6b3a76400006112228984611a86565b61122c9190611aa5565b9050600061123a82846119ae565b90506112463382610d63565b505061103e565b801561103e5761103e3382610d63565b836060015115611331576020840151604080860151608087015160a088015160c089015193517f8fcbaf0c0000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528781166024830152604482019690965260648101939093526001608484015260ff90911660a483015260c482015260e481019190915290841690638fcbaf0c9061010401600060405180830381600087803b15801561131457600080fd5b505af1158015611328573d6000803e3d6000fd5b50505050610d5d565b8351604080860151608087015160a088015160c089015193517fd505accf0000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301526044820196909652606481019390935260ff909116608483015260a482015260c48101919091529084169063d505accf9060e401600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b5050505050505050565b60003d8261140357806000803e806000fd5b806020811461141b57801561142c5760009250611431565b816000803e60005115159250611431565b600192505b5050919050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526001600160a01b038416602482015282604482015260008060648360008a5af191505061149b816113f1565b6114e75760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610128565b5050505050565b60006040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050611542816113f1565b610d5d5760405162461bcd60e51b815260206004820152600e60248201527f415050524f56455f4641494c45440000000000000000000000000000000000006044820152606401610128565b6001600160a01b03811681146115a357600080fd5b50565b6000806000606084860312156115bb57600080fd5b83356115c68161158e565b925060208401356115d68161158e565b929592945050506040919091013590565b600080604083850312156115fa57600080fd5b82356116058161158e565b946020939093013593505050565b60008083601f84011261162557600080fd5b50813567ffffffffffffffff81111561163d57600080fd5b60208301915083602082850101111561165557600080fd5b9250929050565b60008060008060006080868803121561167457600080fd5b853561167f8161158e565b9450602086013561168f8161158e565b9350604086013567ffffffffffffffff8111156116ab57600080fd5b6116b788828901611613565b96999598509660600135949350505050565b600080600080600080600060c0888a0312156116e457600080fd5b87356116ef8161158e565b965060208801356116ff8161158e565b9550604088013561170f8161158e565b9450606088013567ffffffffffffffff81111561172b57600080fd5b6117378a828b01611613565b989b979a50959895979660808701359660a0013595509350505050565b60006020828403121561176657600080fd5b81356117718161158e565b9392505050565b8035801515811461178857600080fd5b919050565b600080604083850312156117a057600080fd5b82356117ab8161158e565b91506117b960208401611778565b90509250929050565b60008060008060008060a087890312156117db57600080fd5b86356117e68161158e565b955060208701356117f68161158e565b9450604087013567ffffffffffffffff81111561181257600080fd5b61181e89828a01611613565b979a9699509760608101359660809091013595509350505050565b600060e0828403121561184b57600080fd5b50919050565b6000806000806000806000806101a0898b03121561186e57600080fd5b88356118798161158e565b975060208901356118898161158e565b965060408901356118998161158e565b9550606089013567ffffffffffffffff8111156118b557600080fd5b6118c18b828c01611613565b9096509450506080890135925060a089013591506118e28a60c08b01611839565b90509295985092959890939650565b6000806000806000806000610180888a03121561190d57600080fd5b87356119188161158e565b965060208801356119288161158e565b9550604088013567ffffffffffffffff81111561194457600080fd5b6119508a828b01611613565b90965094505060608801359250608088013591506119718960a08a01611839565b905092959891949750929550565b60006020828403121561199157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119c0576119c0611998565b500390565b8183823760009101908152919050565b803560ff8116811461178857600080fd5b600060e082840312156119f857600080fd5b60405160e0810181811067ffffffffffffffff82111715611a2957634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152611a5260608401611778565b6060820152611a63608084016119d5565b608082015260a083013560a082015260c083013560c08201528091505092915050565b6000816000190483118215151615611aa057611aa0611998565b500290565b600082611ac257634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209870dd0dc3fb83baf72036a002768c9388c9b2cbf93b6d7b09369fddefaaf87764736f6c634300080b0033

Deployed Bytecode Sourcemap

42640:3441:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44053:6;;44063:1;44053:11;:34;;;-1:-1:-1;44082:5:0;;-1:-1:-1;;;;;44082:5:0;44068:10;:19;44053:34;44045:57;;;;-1:-1:-1;;;44045:57:0;;216:2:1;44045:57:0;;;198:21:1;255:2;235:18;;;228:30;294:12;274:18;;;267:40;324:18;;44045:57:0;;;;;;;;;42640:3441;;;;;44903:293;;;;;;;;;;-1:-1:-1;44903:293:0;;;;;:::i;:::-;;:::i;45358:222::-;;;;;;;;;;-1:-1:-1;45358:222:0;;;;;:::i;:::-;;:::i;23698:2054::-;;;;;;:::i;:::-;;:::i;26255:502::-;;;;;;:::i;:::-;;:::i;22605:43::-;;;;;;;;;;-1:-1:-1;22605:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3807:14:1;;3800:22;3782:41;;3770:2;3755:18;22605:43:0;;;;;;;;42757:20;;;;;;;;;;-1:-1:-1;42757:20:0;;;;-1:-1:-1;;;;;42757:20:0;;;;;;-1:-1:-1;;;;;3998:55:1;;;3980:74;;3968:2;3953:18;42757:20:0;3834:226:1;44418:253:0;;;;;;;;;;-1:-1:-1;44418:253:0;;;;;:::i;:::-;;:::i;28992:464::-;;;;;;:::i;:::-;;:::i;27591:785::-;;;;;;:::i;:::-;;:::i;30296:746::-;;;;;;:::i;:::-;;:::i;45769:309::-;;;;;;;;;;-1:-1:-1;45769:309:0;;;;;:::i;:::-;;:::i;44903:293::-;43593:5;;-1:-1:-1;;;;;43593:5:0;43579:10;:19;43571:42;;;;-1:-1:-1;;;43571:42:0;;7810:2:1;43571:42:0;;;7792:21:1;7849:2;7829:18;;;7822:30;-1:-1:-1;;;7868:18:1;;;7861:40;7918:18;;43571:42:0;7608:334:1;43571:42:0;-1:-1:-1;;;;;45041:16:0;::::1;45033:41;;;::::0;-1:-1:-1;;;45033:41:0;;8149:2:1;45033:41:0::1;::::0;::::1;8131:21:1::0;8188:2;8168:18;;;8161:30;-1:-1:-1;;;8207:18:1;;;8200:42;8259:18;;45033:41:0::1;7947:336:1::0;45033:41:0::1;45085:54;45120:5;45128:2;45132:6;45085:28;:54::i;:::-;45177:2;-1:-1:-1::0;;;;;45155:33:0::1;45170:5;-1:-1:-1::0;;;;;45155:33:0::1;;45181:6;45155:33;;;;8434:25:1::0;;8422:2;8407:18;;8288:177;45155:33:0::1;;;;;;;;44903:293:::0;;;:::o;45358:222::-;43593:5;;-1:-1:-1;;;;;43593:5:0;43579:10;:19;43571:42;;;;-1:-1:-1;;;43571:42:0;;7810:2:1;43571:42:0;;;7792:21:1;7849:2;7829:18;;;7822:30;-1:-1:-1;;;7868:18:1;;;7861:40;7918:18;;43571:42:0;7608:334:1;43571:42:0;-1:-1:-1;;;;;45445:16:0;::::1;45437:41;;;::::0;-1:-1:-1;;;45437:41:0;;8149:2:1;45437:41:0::1;::::0;::::1;8131:21:1::0;8188:2;8168:18;;;8161:30;-1:-1:-1;;;8207:18:1;;;8200:42;8259:18;;45437:41:0::1;7947:336:1::0;45437:41:0::1;45489:43;45521:2;45525:6;45489:31;:43::i;:::-;45561:2;-1:-1:-1::0;;;;;45548:24:0::1;;45565:6;45548:24;;;;8434:25:1::0;;8422:2;8407:18;;8288:177;45548:24:0::1;;;;;;;;45358:222:::0;;:::o;23698:2054::-;22840:6;;22850:1;22840:11;;22832:37;;;;-1:-1:-1;;;22832:37:0;;8672:2:1;22832:37:0;;;8654:21:1;8711:2;8691:18;;;8684:30;-1:-1:-1;;;8730:18:1;;;8723:43;8783:18;;22832:37:0;8470:337:1;22832:37:0;22956:1;22947:6;:10;;;-1:-1:-1;;;;;23279:19:0;::::1;::::0;;:11:::1;:19;::::0;;;;;23916:6;;23279:19:::1;;23271:47;;;::::0;-1:-1:-1;;;23271:47:0;;9014:2:1;23271:47:0::1;::::0;::::1;8996:21:1::0;9053:2;9033:18;;;9026:30;-1:-1:-1;;;9072:18:1;;;9065:45;9127:18;;23271:47:0::1;8812:339:1::0;23271:47:0::1;24006:71:::2;::::0;-1:-1:-1;;;24006:71:0;;24061:4:::2;24006:71;::::0;::::2;3980:74:1::0;23976:27:0::2;::::0;-1:-1:-1;;;;;24006:32:0;::::2;::::0;::::2;::::0;3953:18:1;;24006:71:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23976:101:::0;-1:-1:-1;24088:24:0::2;24115:33;24139:9;24115:21;:33;:::i;:::-;24088:60:::0;-1:-1:-1;24159:18:0::2;24180:21;24192:9:::0;24180::::2;:21;:::i;:::-;24159:42;;24444:12;24458:16:::0;24478:6:::2;-1:-1:-1::0;;;;;24478:11:0::2;24497:10;24523:12;;24478:68;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24443:103;;;;24649:7;24644:171;;24730:3;24724:10;24773:15;24767:3;24763:2;24759:12;24752:37;24644:171;24919:79;::::0;-1:-1:-1;;;24919:79:0;;24978:4:::2;24919:79;::::0;::::2;3980:74:1::0;24891:25:0::2;::::0;-1:-1:-1;;;;;24919:32:0;::::2;::::0;::::2;::::0;3953:18:1;;24919:79:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24891:107;;25043:17;25021:19;:39;25013:61;;;::::0;-1:-1:-1;;;25013:61:0;;10142:2:1;25013:61:0::2;::::0;::::2;10124:21:1::0;10181:1;10161:18;;;10154:29;-1:-1:-1;;;10199:18:1;;;10192:39;10248:18;;25013:61:0::2;9940:332:1::0;25013:61:0::2;-1:-1:-1::0;25261:47:0::2;::::0;-1:-1:-1;;;25261:47:0;;25302:4:::2;25261:47;::::0;::::2;3980:74:1::0;25156:202:0::2;::::0;25205:15;;25236:10:::2;::::0;25328:19;;-1:-1:-1;;;;;25261:32:0;::::2;::::0;::::2;::::0;3953:18:1;;25261:47:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:86;;;;:::i;:::-;25156:28;:202::i;:::-;25448:22;25473:33;25497:9:::0;25473:21:::2;:33;:::i;:::-;25448:58;;25542:16;25525:14;:33;25521:213;;;25579:139;25633:10;25666:33;25683:16:::0;25666:14;:33:::2;:::i;:::-;25579:31;:139::i;:::-;-1:-1:-1::0;;23127:1:0;23118:6;:10;-1:-1:-1;;;;;;;;;;23698:2054:0:o;26255:502::-;22840:6;;22850:1;22840:11;;22832:37;;;;-1:-1:-1;;;22832:37:0;;8672:2:1;22832:37:0;;;8654:21:1;8711:2;8691:18;;;8684:30;-1:-1:-1;;;8730:18:1;;;8723:43;8783:18;;22832:37:0;8470:337:1;22832:37:0;22956:1;22947:6;:10;;;-1:-1:-1;;;;;23279:19:0;::::1;::::0;;:11:::1;:19;::::0;;;;;26539:6;;23279:19:::1;;23271:47;;;::::0;-1:-1:-1;;;23271:47:0;;9014:2:1;23271:47:0::1;::::0;::::1;8996:21:1::0;9053:2;9033:18;;;9026:30;-1:-1:-1;;;9072:18:1;;;9065:45;9127:18;;23271:47:0::1;8812:339:1::0;23271:47:0::1;26558:191:::2;26595:16;26626:15;26656:6;26677:12;;26704:10;26729:9;26558:22;:191::i;:::-;-1:-1:-1::0;;23127:1:0;23118:6;:10;-1:-1:-1;;;;;;26255:502:0:o;44418:253::-;43593:5;;-1:-1:-1;;;;;43593:5:0;43579:10;:19;43571:42;;;;-1:-1:-1;;;43571:42:0;;7810:2:1;43571:42:0;;;7792:21:1;7849:2;7829:18;;;7822:30;-1:-1:-1;;;7868:18:1;;;7861:40;7918:18;;43571:42:0;7608:334:1;43571:42:0;-1:-1:-1;;;;;44501:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;:25;;-1:-1:-1;;44501:25:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;44537:127:::1;;44566:23;::::0;-1:-1:-1;;;;;44566:23:0;::::1;::::0;::::1;::::0;;;::::1;44418:253:::0;;:::o;44537:127::-:1;44627:25;::::0;-1:-1:-1;;;;;44627:25:0;::::1;::::0;::::1;::::0;;;::::1;44418:253:::0;;:::o;28992:464::-;22840:6;;22850:1;22840:11;;22832:37;;;;-1:-1:-1;;;22832:37:0;;8672:2:1;22832:37:0;;;8654:21:1;8711:2;8691:18;;;8684:30;-1:-1:-1;;;8730:18:1;;;8723:43;8783:18;;22832:37:0;8470:337:1;22832:37:0;22956:1;22947:6;:10;;;-1:-1:-1;;;;;23279:19:0;::::1;::::0;;:11:::1;:19;::::0;;;;;29255:6;;23279:19:::1;;23271:47;;;::::0;-1:-1:-1;;;23271:47:0;;9014:2:1;23271:47:0::1;::::0;::::1;8996:21:1::0;9053:2;9033:18;;;9026:30;-1:-1:-1;;;9072:18:1;;;9065:45;9127:18;;23271:47:0::1;8812:339:1::0;23271:47:0::1;29274:174:::2;29309:16;29340:6;29361:12;;29388:10;29413:24;29274:20;:174::i;:::-;-1:-1:-1::0;;23127:1:0;23118:6;:10;-1:-1:-1;;;;;28992:464:0:o;27591:785::-;22840:6;;22850:1;22840:11;;22832:37;;;;-1:-1:-1;;;22832:37:0;;8672:2:1;22832:37:0;;;8654:21:1;8711:2;8691:18;;;8684:30;-1:-1:-1;;;8730:18:1;;;8723:43;8783:18;;22832:37:0;8470:337:1;22832:37:0;22956:1;22947:6;:10;;;-1:-1:-1;;;;;23279:19:0;::::1;::::0;;:11:::1;:19;::::0;;;;;27935:6;;23279:19:::1;;23271:47;;;::::0;-1:-1:-1;;;23271:47:0;;9014:2:1;23271:47:0::1;::::0;::::1;8996:21:1::0;9053:2;9033:18;;;9026:30;-1:-1:-1;;;9072:18:1;;;9065:45;9127:18;;23271:47:0::1;8812:339:1::0;23271:47:0::1;27983:139:::2;;;::::0;;::::2;::::0;::::2;28017:10:::0;27983:139:::2;:::i;:::-;28042:16;28073:10;28106:4;27983:19;:139::i;:::-;28177:191;28214:16;28245:15;28275:6;28296:12;;28323:10;28348:9;28177:22;:191::i;:::-;-1:-1:-1::0;;23127:1:0;23118:6;:10;-1:-1:-1;;;;;;;27591:785:0:o;30296:746::-;22840:6;;22850:1;22840:11;;22832:37;;;;-1:-1:-1;;;22832:37:0;;8672:2:1;22832:37:0;;;8654:21:1;8711:2;8691:18;;;8684:30;-1:-1:-1;;;8730:18:1;;;8723:43;8783:18;;22832:37:0;8470:337:1;22832:37:0;22956:1;22947:6;:10;;;-1:-1:-1;;;;;23279:19:0;::::1;::::0;;:11:::1;:19;::::0;;;;;30619:6;;23279:19:::1;;23271:47;;;::::0;-1:-1:-1;;;23271:47:0;;9014:2:1;23271:47:0::1;::::0;::::1;8996:21:1::0;9053:2;9033:18;;;9026:30;-1:-1:-1;;;9072:18:1;;;9065:45;9127:18;;23271:47:0::1;8812:339:1::0;23271:47:0::1;30667:139:::2;;;::::0;;::::2;::::0;::::2;30701:10:::0;30667:139:::2;:::i;:::-;30726:16;30757:10;30790:4;30667:19;:139::i;:::-;30860:174;30895:16;30926:6;30947:12;;30974:10;30999:24;30860:20;:174::i;45769:309::-:0;43593:5;;-1:-1:-1;;;;;43593:5:0;43579:10;:19;43571:42;;;;-1:-1:-1;;;43571:42:0;;7810:2:1;43571:42:0;;;7792:21:1;7849:2;7829:18;;;7822:30;-1:-1:-1;;;7868:18:1;;;7861:40;7918:18;;43571:42:0;7608:334:1;43571:42:0;-1:-1:-1;;;;;45860:22:0;::::1;45852:47;;;::::0;-1:-1:-1;;;45852:47:0;;8149:2:1;45852:47:0::1;::::0;::::1;8131:21:1::0;8188:2;8168:18;;;8161:30;-1:-1:-1;;;8207:18:1;;;8200:42;8259:18;;45852:47:0::1;7947:336:1::0;45852:47:0::1;45930:5;::::0;-1:-1:-1;;;;;45918:17:0;;::::1;45930:5:::0;::::1;45918:17;;45910:40;;;::::0;-1:-1:-1;;;45910:40:0;;11646:2:1;45910:40:0::1;::::0;::::1;11628:21:1::0;11685:2;11665:18;;;11658:30;11724:12;11704:18;;;11697:40;11754:18;;45910:40:0::1;11444:334:1::0;45910:40:0::1;45985:5;::::0;;-1:-1:-1;;;;;46001:16:0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;46033:37:::1;::::0;45985:5;::::1;::::0;;;46033:37:::1;::::0;45961:21:::1;::::0;46033:37:::1;45841:237;45769:309:::0;:::o;9338:1065::-;9455:15;9589:4;9583:11;9709:66;9690:17;9683:93;-1:-1:-1;;;;;9865:2:0;9861:51;9857:1;9838:17;9834:25;9827:86;10000:6;9995:2;9976:17;9972:26;9965:42;10298:1;10295;10291:2;10272:17;10269:1;10262:5;10255;10250:50;10236:64;;;10331:44;10364:10;10331:32;:44::i;:::-;10323:72;;;;-1:-1:-1;;;10323:72:0;;11985:2:1;10323:72:0;;;11967:21:1;12024:2;12004:18;;;11997:30;12063:17;12043:18;;;12036:45;12098:18;;10323:72:0;11783:339:1;10323:72:0;9444:959;9338:1065;;;:::o;7578:314::-;7651:15;7817:1;7814;7811;7808;7800:6;7796:2;7789:5;7784:35;7770:49;;7850:10;7842:42;;;;-1:-1:-1;;;7842:42:0;;12329:2:1;7842:42:0;;;12311:21:1;12368:2;12348:18;;;12341:30;12407:21;12387:18;;;12380:49;12446:18;;7842:42:0;12127:343:1;7842:42:0;7640:252;7578:314;;:::o;33821:2311::-;34165:71;;-1:-1:-1;;;34165:71:0;;34220:4;34165:71;;;3980:74:1;34130:32:0;;-1:-1:-1;;;;;34165:32:0;;;;;3953:18:1;;34165:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34130:106;;34467:159;34520:16;34552:10;34585:4;34605:10;34467:32;:159::i;:::-;34718:134;34766:16;34798:6;34819:22;34832:9;34819:10;:22;:::i;:::-;34718:27;:134::i;:::-;35036:12;35050:16;35070:6;-1:-1:-1;;;;;35070:11:0;35089:9;35114:12;;35070:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35035:102;;;;35240:7;35235:171;;35321:3;35315:10;35364:15;35358:3;35354:2;35350:12;35343:37;35235:171;35509:93;;-1:-1:-1;;;35509:93:0;;35565:4;35509:93;;;12718:34:1;-1:-1:-1;;;;;12788:15:1;;;12768:18;;;12761:43;35489:17:0;;35509:33;;;;;;12630:18:1;;35509:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35489:113;-1:-1:-1;35621:14:0;;35613:45;;;;-1:-1:-1;;;35613:45:0;;13017:2:1;35613:45:0;;;12999:21:1;13056:2;13036:18;;;13029:30;13095:20;13075:18;;;13068:48;13133:18;;35613:45:0;12815:342:1;35613:45:0;35753:71;;-1:-1:-1;;;35753:71:0;;35808:4;35753:71;;;3980:74:1;35720:30:0;;-1:-1:-1;;;;;35753:32:0;;;;;3953:18:1;;35753:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35720:104;;35870:22;35843:24;:49;35835:71;;;;-1:-1:-1;;;35835:71:0;;10142:2:1;35835:71:0;;;10124:21:1;10181:1;10161:18;;;10154:29;-1:-1:-1;;;10199:18:1;;;10192:39;10248:18;;35835:71:0;9940:332:1;35835:71:0;35959:165;36008:15;36039:10;36064:49;36089:24;36064:22;:49;:::i;35959:165::-;34066:2066;;;;;33821:2311;;;;;;;:::o;31190:2506::-;31468:24;31495:33;31519:9;31495:21;:33;:::i;:::-;31468:60;;31733:159;31786:16;31818:10;31851:4;31871:10;31733:32;:159::i;:::-;31974:122;32022:16;32054:6;32075:10;31974:27;:122::i;:::-;32280:12;32294:16;32314:6;-1:-1:-1;;;;;32314:11:0;32333:9;32358:12;;32314:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32279:102;;;;32484:7;32479:171;;32565:3;32559:10;32608:15;32602:3;32598:2;32594:12;32587:37;32479:171;32753:93;;-1:-1:-1;;;32753:93:0;;32809:4;32753:93;;;12718:34:1;-1:-1:-1;;;;;12788:15:1;;;12768:18;;;12761:43;32733:17:0;;32753:33;;;;;;12630:18:1;;32753:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32733:113;-1:-1:-1;32865:14:0;;32857:45;;;;-1:-1:-1;;;32857:45:0;;13017:2:1;32857:45:0;;;12999:21:1;13056:2;13036:18;;;13029:30;13095:20;13075:18;;;13068:48;13133:18;;32857:45:0;12815:342:1;32857:45:0;33051:21;33026:22;33101:33;33118:16;33051:21;33101:33;:::i;:::-;33083:51;;33165:1;33155:7;:11;33147:35;;;;-1:-1:-1;;;33147:35:0;;13364:2:1;33147:35:0;;;13346:21:1;13403:2;13383:18;;;13376:30;13442:13;13422:18;;;13415:41;13473:18;;33147:35:0;13162:335:1;33147:35:0;33199:28;;33195:494;;33244:12;33298:4;33260:34;33270:24;33260:7;:34;:::i;:::-;33259:43;;;;:::i;:::-;33244:58;-1:-1:-1;33317:23:0;33343:14;33244:58;33343:7;:14;:::i;:::-;33317:40;;33372:60;33404:10;33416:15;33372:31;:60::i;:::-;33229:358;;33195:494;;;33597:11;;33593:96;;33625:52;33657:10;33669:7;33625:31;:52::i;21523:801::-;21687:10;:27;;;21683:634;;;21826:16;;;;21861:19;;;;;21922:12;;;;21953;;;;21984;;;;21731:280;;;;;-1:-1:-1;;;;;14366:15:1;;;21731:280:0;;;14348:34:1;14418:15;;;14398:18;;;14391:43;14450:18;;;14443:34;;;;14493:18;;;14486:34;;;;21899:4:0;14536:19:1;;;14529:51;14629:4;14617:17;;;14596:19;;;14589:46;14651:19;;;14644:35;14695:19;;;14688:35;;;;21731:25:0;;;;;;14259:19:1;;21731:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21683:634;;;22143:16;;22178:19;;;;;22216:12;;;;22247;;;;22278;;;;22044:261;;;;;-1:-1:-1;;;;;15124:15:1;;;22044:261:0;;;15106:34:1;15176:15;;;15156:18;;;15149:43;15208:18;;;15201:34;;;;15251:18;;;15244:34;;;;15327:4;15315:17;;;15294:19;;;15287:46;15349:19;;;15342:35;15393:19;;;15386:35;;;;22044:29:0;;;;;;15017:19:1;;22044:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21523:801;;;;:::o;11673:1072::-;11754:12;11879:16;11959:10;11949:244;;12068:14;12065:1;12062;12047:36;12163:14;12160:1;12153:25;11949:244;12216:14;12249:2;12244:248;;;;12506:99;;;;12711:1;12700:12;;12209:518;;12244:248;12346:14;12343:1;12340;12325:36;12473:1;12467:8;12460:16;12453:24;12442:35;;12244:248;;12506:99;12589:1;12578:12;;12209:518;;;11673:1072;;;:::o;8088:1242::-;8232:15;8366:4;8360:11;8486:66;8467:17;8460:93;-1:-1:-1;;;;;8642:4:0;8638:53;8634:1;8615:17;8611:25;8604:88;-1:-1:-1;;;;;8785:2:0;8781:51;8776:2;8757:17;8753:26;8746:87;8920:6;8915:2;8896:17;8892:26;8885:42;9220:1;9217;9212:3;9193:17;9190:1;9183:5;9176;9171:51;9157:65;;;9253:44;9286:10;9253:32;:44::i;:::-;9245:77;;;;-1:-1:-1;;;9245:77:0;;15634:2:1;9245:77:0;;;15616:21:1;15673:2;15653:18;;;15646:30;15712:22;15692:18;;;15685:50;15752:18;;9245:77:0;15432:344:1;9245:77:0;8221:1109;8088:1242;;;;:::o;10411:1063::-;10527:15;10661:4;10655:11;10781:66;10762:17;10755:93;-1:-1:-1;;;;;10937:2:0;10933:51;10929:1;10910:17;10906:25;10899:86;11072:6;11067:2;11048:17;11044:26;11037:42;11370:1;11367;11363:2;11344:17;11341:1;11334:5;11327;11322:50;11308:64;;;11403:44;11436:10;11403:32;:44::i;:::-;11395:71;;;;-1:-1:-1;;;11395:71:0;;15983:2:1;11395:71:0;;;15965:21:1;16022:2;16002:18;;;15995:30;16061:16;16041:18;;;16034:44;16095:18;;11395:71:0;15781:338:1;353:154;-1:-1:-1;;;;;432:5:1;428:54;421:5;418:65;408:93;;497:1;494;487:12;408:93;353:154;:::o;512:456::-;589:6;597;605;658:2;646:9;637:7;633:23;629:32;626:52;;;674:1;671;664:12;626:52;713:9;700:23;732:31;757:5;732:31;:::i;:::-;782:5;-1:-1:-1;839:2:1;824:18;;811:32;852:33;811:32;852:33;:::i;:::-;512:456;;904:7;;-1:-1:-1;;;958:2:1;943:18;;;;930:32;;512:456::o;973:315::-;1041:6;1049;1102:2;1090:9;1081:7;1077:23;1073:32;1070:52;;;1118:1;1115;1108:12;1070:52;1157:9;1144:23;1176:31;1201:5;1176:31;:::i;:::-;1226:5;1278:2;1263:18;;;;1250:32;;-1:-1:-1;;;973:315:1:o;1293:347::-;1344:8;1354:6;1408:3;1401:4;1393:6;1389:17;1385:27;1375:55;;1426:1;1423;1416:12;1375:55;-1:-1:-1;1449:20:1;;1492:18;1481:30;;1478:50;;;1524:1;1521;1514:12;1478:50;1561:4;1553:6;1549:17;1537:29;;1613:3;1606:4;1597:6;1589;1585:19;1581:30;1578:39;1575:59;;;1630:1;1627;1620:12;1575:59;1293:347;;;;;:::o;1645:762::-;1750:6;1758;1766;1774;1782;1835:3;1823:9;1814:7;1810:23;1806:33;1803:53;;;1852:1;1849;1842:12;1803:53;1891:9;1878:23;1910:31;1935:5;1910:31;:::i;:::-;1960:5;-1:-1:-1;2017:2:1;2002:18;;1989:32;2030:33;1989:32;2030:33;:::i;:::-;2082:7;-1:-1:-1;2140:2:1;2125:18;;2112:32;2167:18;2156:30;;2153:50;;;2199:1;2196;2189:12;2153:50;2238:58;2288:7;2279:6;2268:9;2264:22;2238:58;:::i;:::-;1645:762;;;;-1:-1:-1;2315:8:1;2397:2;2382:18;2369:32;;1645:762;-1:-1:-1;;;;1645:762:1:o;2412:973::-;2535:6;2543;2551;2559;2567;2575;2583;2636:3;2624:9;2615:7;2611:23;2607:33;2604:53;;;2653:1;2650;2643:12;2604:53;2692:9;2679:23;2711:31;2736:5;2711:31;:::i;:::-;2761:5;-1:-1:-1;2818:2:1;2803:18;;2790:32;2831:33;2790:32;2831:33;:::i;:::-;2883:7;-1:-1:-1;2942:2:1;2927:18;;2914:32;2955:33;2914:32;2955:33;:::i;:::-;3007:7;-1:-1:-1;3065:2:1;3050:18;;3037:32;3092:18;3081:30;;3078:50;;;3124:1;3121;3114:12;3078:50;3163:58;3213:7;3204:6;3193:9;3189:22;3163:58;:::i;:::-;2412:973;;;;-1:-1:-1;2412:973:1;;3240:8;;3137:84;3322:3;3307:19;;3294:33;;3374:3;3359:19;3346:33;;-1:-1:-1;2412:973:1;-1:-1:-1;;;;2412:973:1:o;3390:247::-;3449:6;3502:2;3490:9;3481:7;3477:23;3473:32;3470:52;;;3518:1;3515;3508:12;3470:52;3557:9;3544:23;3576:31;3601:5;3576:31;:::i;:::-;3626:5;3390:247;-1:-1:-1;;;3390:247:1:o;4065:160::-;4130:20;;4186:13;;4179:21;4169:32;;4159:60;;4215:1;4212;4205:12;4159:60;4065:160;;;:::o;4230:315::-;4295:6;4303;4356:2;4344:9;4335:7;4331:23;4327:32;4324:52;;;4372:1;4369;4362:12;4324:52;4411:9;4398:23;4430:31;4455:5;4430:31;:::i;:::-;4480:5;-1:-1:-1;4504:35:1;4535:2;4520:18;;4504:35;:::i;:::-;4494:45;;4230:315;;;;;:::o;4550:831::-;4664:6;4672;4680;4688;4696;4704;4757:3;4745:9;4736:7;4732:23;4728:33;4725:53;;;4774:1;4771;4764:12;4725:53;4813:9;4800:23;4832:31;4857:5;4832:31;:::i;:::-;4882:5;-1:-1:-1;4939:2:1;4924:18;;4911:32;4952:33;4911:32;4952:33;:::i;:::-;5004:7;-1:-1:-1;5062:2:1;5047:18;;5034:32;5089:18;5078:30;;5075:50;;;5121:1;5118;5111:12;5075:50;5160:58;5210:7;5201:6;5190:9;5186:22;5160:58;:::i;:::-;4550:831;;;;-1:-1:-1;5237:8:1;5319:2;5304:18;;5291:32;;5370:3;5355:19;;;5342:33;;-1:-1:-1;4550:831:1;-1:-1:-1;;;;4550:831:1:o;5386:155::-;5445:5;5490:3;5481:6;5476:3;5472:16;5468:26;5465:46;;;5507:1;5504;5497:12;5465:46;-1:-1:-1;5529:6:1;5386:155;-1:-1:-1;5386:155:1:o;5546:1097::-;5703:6;5711;5719;5727;5735;5743;5751;5759;5812:3;5800:9;5791:7;5787:23;5783:33;5780:53;;;5829:1;5826;5819:12;5780:53;5868:9;5855:23;5887:31;5912:5;5887:31;:::i;:::-;5937:5;-1:-1:-1;5994:2:1;5979:18;;5966:32;6007:33;5966:32;6007:33;:::i;:::-;6059:7;-1:-1:-1;6118:2:1;6103:18;;6090:32;6131:33;6090:32;6131:33;:::i;:::-;6183:7;-1:-1:-1;6241:2:1;6226:18;;6213:32;6268:18;6257:30;;6254:50;;;6300:1;6297;6290:12;6254:50;6339:58;6389:7;6380:6;6369:9;6365:22;6339:58;:::i;:::-;6416:8;;-1:-1:-1;6313:84:1;-1:-1:-1;;6498:3:1;6483:19;;6470:33;;-1:-1:-1;6550:3:1;6535:19;;6522:33;;-1:-1:-1;6574:63:1;6629:7;6623:3;6608:19;;6574:63;:::i;:::-;6564:73;;5546:1097;;;;;;;;;;;:::o;6648:955::-;6796:6;6804;6812;6820;6828;6836;6844;6897:3;6885:9;6876:7;6872:23;6868:33;6865:53;;;6914:1;6911;6904:12;6865:53;6953:9;6940:23;6972:31;6997:5;6972:31;:::i;:::-;7022:5;-1:-1:-1;7079:2:1;7064:18;;7051:32;7092:33;7051:32;7092:33;:::i;:::-;7144:7;-1:-1:-1;7202:2:1;7187:18;;7174:32;7229:18;7218:30;;7215:50;;;7261:1;7258;7251:12;7215:50;7300:58;7350:7;7341:6;7330:9;7326:22;7300:58;:::i;:::-;7377:8;;-1:-1:-1;7274:84:1;-1:-1:-1;;7459:2:1;7444:18;;7431:32;;-1:-1:-1;7510:3:1;7495:19;;7482:33;;-1:-1:-1;7534:63:1;7589:7;7583:3;7568:19;;7534:63;:::i;:::-;7524:73;;6648:955;;;;;;;;;;:::o;9156:184::-;9226:6;9279:2;9267:9;9258:7;9254:23;9250:32;9247:52;;;9295:1;9292;9285:12;9247:52;-1:-1:-1;9318:16:1;;9156:184;-1:-1:-1;9156:184:1:o;9345:::-;-1:-1:-1;;;9394:1:1;9387:88;9494:4;9491:1;9484:15;9518:4;9515:1;9508:15;9534:125;9574:4;9602:1;9599;9596:8;9593:34;;;9607:18;;:::i;:::-;-1:-1:-1;9644:9:1;;9534:125::o;9664:271::-;9847:6;9839;9834:3;9821:33;9803:3;9873:16;;9898:13;;;9873:16;9664:271;-1:-1:-1;9664:271:1:o;10277:156::-;10343:20;;10403:4;10392:16;;10382:27;;10372:55;;10423:1;10420;10413:12;10438:1001;10520:6;10573:3;10561:9;10552:7;10548:23;10544:33;10541:53;;;10590:1;10587;10580:12;10541:53;10623:2;10617:9;10665:3;10657:6;10653:16;10735:6;10723:10;10720:22;10699:18;10687:10;10684:34;10681:62;10678:242;;;-1:-1:-1;;;10773:1:1;10766:88;10877:4;10874:1;10867:15;10905:4;10902:1;10895:15;10678:242;10940:10;10936:2;10929:22;;10988:9;10975:23;10967:6;10960:39;11060:2;11049:9;11045:18;11032:32;11027:2;11019:6;11015:15;11008:57;11126:2;11115:9;11111:18;11098:32;11093:2;11085:6;11081:15;11074:57;11164:35;11195:2;11184:9;11180:18;11164:35;:::i;:::-;11159:2;11151:6;11147:15;11140:60;11234:37;11266:3;11255:9;11251:19;11234:37;:::i;:::-;11228:3;11220:6;11216:16;11209:63;11334:3;11323:9;11319:19;11306:33;11300:3;11292:6;11288:16;11281:59;11402:3;11391:9;11387:19;11374:33;11368:3;11360:6;11356:16;11349:59;11427:6;11417:16;;;10438:1001;;;;:::o;13502:168::-;13542:7;13608:1;13604;13600:6;13596:14;13593:1;13590:21;13585:1;13578:9;13571:17;13567:45;13564:71;;;13615:18;;:::i;:::-;-1:-1:-1;13655:9:1;;13502:168::o;13675:274::-;13715:1;13741;13731:189;;-1:-1:-1;;;13773:1:1;13766:88;13877:4;13874:1;13867:15;13905:4;13902:1;13895:15;13731:189;-1:-1:-1;13934:9:1;;13675:274::o

Swarm Source

ipfs://9870dd0dc3fb83baf72036a002768c9388c9b2cbf93b6d7b09369fddefaaf877

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
Chain Token Portfolio % Price Amount Value
ARB29.48%$3,106.4617.617$54,726.43
ARB2.13%$13,942.7942$3,946.74
ARB0.04%$1,323.660.0624$82.59
ARB0.03%$88.230.7219$63.7
ARB0.02%$0.82031254.521$44.72
ARB0.02%$196.420.1547$30.39
ARB0.02%$64,7190.00045675$29.56
ARB0.01%$123.0143$23.01
ARB<0.01%$5.942.629$15.62
ARB<0.01%$14.691.0552$15.5
ARB<0.01%$0.085343173.8544$14.84
ARB<0.01%$0.40888530.6218$12.52
ARB<0.01%$0.21369452.0756$11.13
ARB<0.01%$0.0046562,273.8502$10.59
ARB<0.01%$3,102.570.00302037$9.37
ARB<0.01%$3,091.280.00296817$9.18
ARB<0.01%$0.12316771.2793$8.78
ARB<0.01%$17.731$7.74
ARB<0.01%$0.68267210.9078$7.45
ARB<0.01%$64,7050.00011018$7.13
ARB<0.01%$3,131.20.00225484$7.06
ARB<0.01%$4.571.5146$6.92
ARB<0.01%$0.7510098.9932$6.75
ARB<0.01%$0.0028552,344.498$6.69
ARB<0.01%<$0.00000120,122,866.0535$6.64
ARB<0.01%$0.015453407.3986$6.3
ARB<0.01%$0.666599.3151$6.21
ARB<0.01%$0.010412595$6.2
ARB<0.01%$3.941.5624$6.16
ARB<0.01%$0.9963976.0111$5.99
ARB<0.01%$1.075.419$5.78
ARB<0.01%$15.4049$5.41
ARB<0.01%$0.30872617.2563$5.33
ARB<0.01%$0.08319663.359$5.27
ARB<0.01%$165.080.0317$5.24
ARB<0.01%$0.0044861,158.2727$5.2
ARB<0.01%$0.040041127.5654$5.11
ARB<0.01%$0.042848117.3467$5.03
ARB<0.01%$0.06037480.3154$4.85
ARB<0.01%$0.4507310.163$4.58
ARB<0.01%$0.9998134.5618$4.56
ARB<0.01%$5.10.8876$4.53
ARB<0.01%$0.0004199,489.8107$3.97
ARB<0.01%$0.20764517.3375$3.6
ARB<0.01%$1.023.5297$3.59
ARB<0.01%$2.131.6833$3.59
ARB<0.01%$3.840.9307$3.57
ARB<0.01%$1.242.7616$3.42
ARB<0.01%$0.8733463.6484$3.19
ARB<0.01%$13.760.2226$3.06
ARB<0.01%$0.5279595.7807$3.05
ARB<0.01%$0.00008236,146.5872$2.96
ARB<0.01%$2.521.0958$2.76
ARB<0.01%$29.350.093$2.73
ARB<0.01%$7.360.3622$2.67
ARB<0.01%$3.90.6744$2.63
ARB<0.01%$4.630.5379$2.49
ARB<0.01%$0.018259136$2.48
ARB<0.01%$0.19141612.75$2.44
ARB<0.01%$3.470.6496$2.25
ARB<0.01%$31.470.0663$2.09
ARB<0.01%$1.061.8842$2
ARB<0.01%$0.9812191.9864$1.95
ARB<0.01%$1.121.6599$1.86
ARB<0.01%$0.0004214,300.9284$1.81
ARB<0.01%$0.2181147.9994$1.74
ARB<0.01%$0.05170531.7546$1.64
ARB<0.01%$0.0768520.767$1.6
ARB<0.01%$0.367384.2591$1.56
ARB<0.01%$0.02509160.35$1.51
ARB<0.01%$3,607.90.00040122$1.45
ARB<0.01%$0.01566185.7602$1.34
ARB<0.01%$18.260.0726$1.33
ARB<0.01%$0.0206663.75$1.32
ARB<0.01%$0.1666827.9012$1.32
ARB<0.01%$0.02670647.0506$1.26
ARB<0.01%$3,418.80.00035867$1.23
ARB<0.01%$0.002198518.0578$1.14
ARB<0.01%$0.02596843.3794$1.13
ARB<0.01%$16.050.0696$1.12
ARB<0.01%$0.2890583.6149$1.04
ARB<0.01%$0.04548922.7023$1.03
ARB<0.01%$3,090.930.00032693$1.01
ARB<0.01%$0.0009141,023.9964$0.936
ARB<0.01%$0.002645351.2597$0.9292
ARB<0.01%$0.9031841.02$0.9212
ARB<0.01%$12.190.0711$0.8671
ARB<0.01%$0.2847042.9069$0.8276
ARB<0.01%$0.0920078.3983$0.7727
ARB<0.01%$0.01627443.0346$0.7003
ARB<0.01%$0.9984930.6732$0.6722
ARB<0.01%$0.00826178.455$0.6481
ARB<0.01%$0.108385.8758$0.6368
ARB<0.01%$3,260.080.00019299$0.6291
ARB<0.01%$0.005892100.7114$0.5934
ARB<0.01%$0.00195300.9688$0.5867
ARB<0.01%$0.00687684.7947$0.583
ARB<0.01%$0.2656912.1293$0.5657
ARB<0.01%$0.01145347.2175$0.5407
ARB<0.01%$0.02341123.0224$0.5389
ARB<0.01%$0.6101960.7486$0.4567
ARB<0.01%$0.8271880.5475$0.4528
ARB<0.01%$0.004143109.1124$0.452
ARB<0.01%$0.00000681,301.0865$0.4479
ARB<0.01%$0.04117810.5856$0.4358
ARB<0.01%$0.2401361.7694$0.4248
ARB<0.01%$1.130.3496$0.395
ARB<0.01%$0.002656133.1723$0.3536
ARB<0.01%$0.0206617$0.3512
ARB<0.01%<$0.0000011,281,310.8063$0.3489
ARB<0.01%$0.000397834.5557$0.3317
ARB<0.01%$0.1429252.2203$0.3173
ARB<0.01%$0.03012310.3704$0.3123
ARB<0.01%$0.051685.3581$0.2769
ARB<0.01%$10.2735$0.2734
ARB<0.01%$0.0402336.6672$0.2682
ARB<0.01%$0.01447717$0.2461
ARB<0.01%$1.110.199$0.2209
ARB<0.01%$3,093.990.00006845$0.2117
ARB<0.01%$0.00990620.6353$0.2044
ARB<0.01%$50.210.00394001$0.1978
ARB<0.01%$0.198520.8634$0.1714
ARB<0.01%$0.01322511.7385$0.1552
ARB<0.01%$0.6190810.2395$0.1482
ARB<0.01%$0.000212680$0.1439
ARB<0.01%$0.0158279.0788$0.1436
ARB<0.01%$354.010.00035511$0.1257
ARB<0.01%$0.000433283.3305$0.1226
ARB<0.01%$32.70.00321367$0.105
ARB<0.01%$10.1007$0.1007
ARB<0.01%$12.560.00801039$0.1006
BASE13.86%$0.999825,731.1338$25,725.99
BASE8.31%$3,104.414.9669$15,419.3
BASE0.21%$0.03401211,555.8318$393.04
BASE0.06%$3,100.980.0346$107.35
BASE0.05%$193.4284$93.62
BASE0.05%$0.000396223,044.1617$88.28
BASE0.05%$0.0611841,373.4339$84.03
BASE0.04%$181.0882$81.11
BASE0.04%$0.000114691,372.6032$78.83
BASE0.03%$0.198713324.2475$64.43
BASE0.03%$0.000001108,578,842.2516$61.82
BASE0.03%$10.375.8651$60.82
BASE0.03%$64,4830.00092493$59.64
BASE0.03%$0.167307350.8057$58.69
BASE0.03%$0.0076077,223.7916$54.95
BASE0.03%$3,294.370.0155$51.18
BASE0.03%$19.532.5416$49.64
BASE0.03%$0.0441341,081.6757$47.74
BASE0.03%$0.000305154,596.7655$47.08
BASE0.02%$3,408.970.00980247$33.42
BASE0.02%$0.00036290,295.5953$32.7
BASE0.02%$0.0059185,146.9889$30.46
BASE0.01%$0.6909140.1755$27.76
BASE0.01%$0.0004253,298$22.41
BASE0.01%<$0.0000012,603,977,875.938$20.57
BASE0.01%$2.188.5227$18.58
BASE<0.01%$0.00065820,778.8034$13.66
BASE<0.01%$0.0050462,707.1251$13.66
BASE<0.01%$0.00054920,121.4913$11.04
BASE<0.01%$0.000032334,600.3886$10.87
BASE<0.01%$0.027981326.8318$9.14
BASE<0.01%$0.9994316.0606$6.06
BASE<0.01%$0.000035161,811.4899$5.64
BASE<0.01%$0.028105157.3394$4.42
BASE<0.01%$0.016449257.837$4.24
BASE<0.01%$0.8221755.1493$4.23
BASE<0.01%$0.016628241.7352$4.02
BASE<0.01%$0.013284299.408$3.98
BASE<0.01%$0.04262768.8668$2.94
BASE<0.01%$0.0004196,425.2162$2.69
BASE<0.01%$3.260.819$2.67
BASE<0.01%$0.06789538.8078$2.63
BASE<0.01%$0.12435420.3464$2.53
BASE<0.01%$0.01831132.4137$2.42
BASE<0.01%$71.820.0335$2.4
BASE<0.01%<$0.00000179,757,354.3484$2.36
BASE<0.01%$0.009535206.182$1.97
BASE<0.01%$0.00007525,654.0829$1.94
BASE<0.01%<$0.00000151,747,760.7877$1.73
BASE<0.01%$0.0000012,298,850.7472$1.6
BASE<0.01%$11.4848$1.49
BASE<0.01%$0.0007071,693.2461$1.2
BASE<0.01%$0.003256336.0841$1.09
BASE<0.01%$0.0344524.6256$0.8483
BASE<0.01%$0.9959620.8455$0.842
BASE<0.01%$0.01567142.5$0.666
BASE<0.01%$5.710.1069$0.6102
BASE<0.01%$2.850.2113$0.601
BASE<0.01%$3.050.1891$0.5769
BASE<0.01%$298.660.00172787$0.516
BASE<0.01%$0.00000755,723.0034$0.3984
BASE<0.01%$196.330.0018521$0.3636
BASE<0.01%$0.001434246.6507$0.3536
BASE<0.01%$7.530.0463$0.3489
BASE<0.01%$0.2848161.1905$0.339
BASE<0.01%$0.02339613.8293$0.3235
BASE<0.01%$0.000605529.6724$0.3203
BASE<0.01%$0.001249231.0247$0.2885
BASE<0.01%$1.070.2336$0.2487
BASE<0.01%$10.2266$0.2268
BASE<0.01%$0.000199972.876$0.1932
BASE<0.01%$0.0189539.4247$0.1786
BASE<0.01%$0.0447393.2004$0.1431
BASE<0.01%$0.0000187,813.4469$0.1426
BASE<0.01%$0.00000282,360.4914$0.1367
BASE<0.01%$0.0197766.8721$0.1359
BASE<0.01%$1.20.1128$0.1353
BASE<0.01%$0.00000528,538.8679$0.1319
ETH7.38%$113,698.2216$13,698.22
ETH2.58%$3,105.921.5398$4,782.62
ETH0.79%$0.000002817,641,855.9428$1,472.08
ETH0.13%$64,7380.00367962$238.21
ETH0.13%$3,424.330.0694$237.8
ETH0.13%$3,100.60.0759$235.33
ETH0.12%$1.81127.8687$231.44
ETH0.12%$0.999532224.7065$224.6
ETH0.11%$0.00909622,053.6766$200.61
ETH0.11%$107.781.8581$200.27
ETH0.11%$1.04189.9899$197.02
ETH0.10%$1.06184.2301$194.73
ETH0.10%$1.11170.6055$189.37
ETH0.10%$0.165471,141.1699$188.83
ETH0.10%$0.0763952,419.8425$184.86
ETH0.10%$0.0820442,250.392$184.63
ETH0.10%$1.17152.0577$177.91
ETH0.09%$0.1673571,052.4716$176.14
ETH0.09%$2.471.898$172.56
ETH0.09%$2.3373.5347$171.34
ETH0.09%$3.4947.8275$166.92
ETH0.09%$0.448978370.1873$166.21
ETH0.09%$14.8111.0749$164.02
ETH0.09%$0.1599991,015.4226$162.47
ETH0.09%$89.461.8045$161.42
ETH0.09%$0.895209178.4746$159.77
ETH0.08%$28.595.4808$156.7
ETH0.08%$5.0730.8766$156.68
ETH0.08%$0.1143391,362.9473$155.84
ETH0.08%$0.795587190.4111$151.49
ETH0.08%$0.0820991,832.7834$150.47
ETH0.08%$1.01147.6092$149.09
ETH0.08%$3.7539.4755$148.03
ETH0.08%$0.000422348,687.5393$147.26
ETH0.08%$1.05138.2987$145.35
ETH0.08%$0.0182357,912.4174$144.28
ETH0.08%$0.00000271,970,027.5007$143.22
ETH0.08%$0.0450223,175.4235$142.96
ETH0.08%$3,127.130.0457$142.94
ETH0.08%$26,7250.0052315$139.81
ETH0.07%$0.0583392,383.9894$139.08
ETH0.07%$0.907556151.7814$137.75
ETH0.07%$0.00440330,983.2448$136.43
ETH0.07%$1.15118.3964$136.16
ETH0.07%$3,235.120.0416$134.65
ETH0.07%$0.000393338,915.8244$133.13
ETH0.07%$26.235.0427$132.27
ETH0.07%$0.0132259,931.3941$131.34
ETH0.07%$3.5836.4224$130.39
ETH0.07%$0.1204661,081.137$130.24
ETH0.07%$0.309242420.0679$129.9
ETH0.07%$1.07120.47$128.3
ETH0.07%$0.0000167,843,621.0927$127.77
ETH0.07%$19.566.4662$126.48
ETH0.07%$0.709279176.8755$125.45
ETH0.07%$2,392.090.0522$124.92
ETH0.07%$0.872476142.5268$124.35
ETH0.07%$3,105.920.0398$123.5
ETH0.07%$0.0001091,128,948.1376$122.81
ETH0.07%$1122.2963$122.3
ETH0.07%$0.544776222.7229$121.33
ETH0.06%$7,100.170.017$120.65
ETH0.06%$0.982608122.5476$120.42
ETH0.06%$0.0000245,006,349.0104$119.6
ETH0.06%$0.952452122.8133$116.97
ETH0.06%$7.7114.8293$114.33
ETH0.06%$0.0000195,847,541.3218$110.93
ETH0.06%$4.7622.8803$108.84
ETH0.06%$38.232.8105$107.45
ETH0.06%$0.213924497.9939$106.53
ETH0.06%$0.12823826.948$106.04
ETH0.06%$0.000151702,969.3984$105.91
ETH0.06%$0.00637116,305.3464$103.88
ETH0.06%$0.997161103.9293$103.63
ETH0.05%$0.0849581,191.681$101.24
ETH0.05%$0.0324013,098.7853$100.4
ETH0.05%$3.1531.0762$97.89
ETH0.05%$8.3911.6406$97.66
ETH0.05%$1.0691.549$97.04
ETH0.05%$1.2377.4542$95.27
ETH0.05%<$0.0000015,639,022,399.044$93.39
ETH0.05%$0.873007106.0903$92.62
ETH0.05%$0.025323,652.195$92.47
ETH0.05%$57.471.6065$92.32
ETH0.05%$0.39716230.2907$91.46
ETH0.05%$0.0426412,143.649$91.41
ETH0.05%$0.99640791.3684$91.04
ETH0.05%$8.4910.7211$91.02
ETH0.05%$0.745743121.3714$90.51
ETH0.05%$0.323809278.0175$90.02
ETH0.05%$0.9266995.3189$88.33
ETH0.05%$0.20508429.8498$88.15
ETH0.05%$0.249629350.6513$87.53
ETH0.05%$0.0276123,142.161$86.76
ETH0.05%$0.0194684,358.5888$84.85
ETH0.04%<$0.00000154,661,125,756.009$83.25
ETH0.04%$0.000587141,892.6927$83.23
ETH0.04%$716.240.1158$82.94
ETH0.04%$1.1670.1855$81.63
ETH0.04%$0.99629981.6898$81.39
ETH0.04%$0.150404535.1523$80.49
ETH0.04%$0.88201590.1347$79.5
ETH0.04%$0.8607790.9373$78.28
ETH0.04%$453.640.1723$78.14
ETH0.04%$176.91$76.99
ETH0.04%$5.0615.0835$76.32
ETH0.04%$0.186845408.2021$76.27
ETH0.04%$0.55546136.5323$75.84
ETH0.04%$0.426017176.4729$75.18
ETH0.04%$22.633.3221$75.18
ETH0.04%$64.241.1645$74.81
ETH0.04%<$0.0000013,145,000,000$74.49
ETH0.04%$1.0172.7191$73.45
ETH0.04%$0.0000272,578,319.0915$70.62
ETH0.04%$0.0018737,732.5345$70.55
ETH0.04%$0.64873107.5811$69.79
ETH0.04%$1.2257.1947$69.78
ETH0.04%$0.690745100.048$69.11
ETH0.04%$0.00091872,674.8363$66.7
ETH0.04%$27.622.4021$66.35
ETH0.03%$15.184.2401$64.36
ETH0.03%$1.3546.92$63.34
ETH0.03%$0.00042144,202$60.63
ETH0.03%$98.610.611$60.25
ETH0.03%$1.1751.2991$60.16
ETH0.03%$0.0540961,109.1696$60
ETH0.03%$2.1727.381$59.42
ETH0.03%$2.6222.635$59.21
ETH0.03%$0.209508280.229$58.71
ETH0.03%$0.0063289,266.4603$58.64
ETH0.03%$0.00139441,767.0719$58.24
ETH0.03%$0.0206962,796.5$57.88
ETH0.03%$2.8120.3245$57.11
ETH0.03%$3,213.730.0174$55.98
ETH0.03%$14.683.693$54.21
ETH0.03%$0.0266452,029.2252$54.07
ETH0.03%$0.0104815,100$53.45
ETH0.03%$0.117401455.2901$53.45
ETH0.03%$88.350.5999$53
ETH0.03%$0.347483150.9944$52.47
ETH0.03%$0.41358125.4393$51.88
ETH0.03%$38.161.3493$51.49
ETH0.03%$3.9113.0902$51.18
ETH0.03%$5.978.5$50.75
ETH0.03%<$0.000001152,005,432.1255$50.24
ETH0.03%<$0.0000014,256,118,473.6714$50.21
ETH0.03%$0.152501327.117$49.89
ETH0.03%$0.263539188.6062$49.71
ETH0.03%$0.00000186,329,584.1325$48.9
ETH0.03%$0.095266511.9681$48.77
ETH0.03%$5.39.1421$48.45
ETH0.03%$3.1915.058$48.03
ETH0.03%$0.344232139.381$47.98
ETH0.03%$565.860.0848$47.98
ETH0.03%<$0.00000163,857,523,464.0974$47.43
ETH0.03%$27.421.7055$46.77
ETH0.03%$44.341.054$46.73
ETH0.03%$23.22.0108$46.65
ETH0.03%$146.5854$46.59
ETH0.02%$0.52625688.0263$46.32
ETH0.02%<$0.000001176,442,754.1298$45.41
ETH0.02%$0.123483366.3789$45.24
ETH0.02%$0.81455.4805$45.16
ETH0.02%$1.9423.2331$44.97
ETH0.02%$0.45857596.2681$44.15
ETH0.02%$0.59661973.8464$44.06
ETH0.02%$0.46896293.2316$43.72
ETH0.02%$0.208166209.8126$43.68
ETH0.02%$5.957.31$43.49
ETH0.02%$0.400938107.522$43.11
ETH0.02%$0.055387776.3517$43
ETH0.02%$2.1319.8373$42.25
ETH0.02%$1.2832.5794$41.7
ETH0.02%$0.363534114.5435$41.64
ETH0.02%$0.69212659.6157$41.26
ETH0.02%$0.046209890.8358$41.16
ETH0.02%$0.00000217,269,888.3361$40.95
ETH0.02%$0.000317126,564.0226$40.07
ETH0.02%$0.0294051,362.6882$40.07
ETH0.02%$0.344877115.8497$39.95
ETH0.02%<$0.000001870,369,361.9108$39.84
ETH0.02%$3.2611.8679$38.69
ETH0.02%$5.097.24$36.85
ETH0.02%$0.99910936.8305$36.8
ETH0.02%$3.1811.5217$36.64
ETH0.02%$1.2728.8035$36.58
ETH0.02%$1.8319.9135$36.44
ETH0.02%$19.491.8662$36.38
ETH0.02%$0.70986651$36.2
ETH0.02%$0.122278294.6812$36.03
ETH0.02%$0.244164147.0737$35.91
ETH0.02%$0.00000124,463,879.9844$35.72
ETH0.02%$0.152271233.0888$35.49
ETH0.02%$0.0000251,383,129.8813$35.08
ETH0.02%$0.164936212.5$35.05
ETH0.02%$0.053428654.791$34.98
ETH0.02%$0.234605148.8937$34.93
ETH0.02%<$0.000001107,828,561.703$34.28
ETH0.02%$224.940.1485$33.4
ETH0.02%$7.364.4969$33.1
ETH0.02%$1.0231.1446$31.61
ETH0.02%$0.00228413,681.9833$31.26
ETH0.02%$0.03409916.3084$31.24
ETH0.02%$4.047.7104$31.15
ETH0.02%$2.0415.2304$31.06
ETH0.02%$0.0000055,670,685.6257$30.62
ETH0.02%$11.212.7258$30.56
ETH0.02%<$0.000001280,588,004.2463$30.34
ETH0.02%$3,607.90.00838906$30.27
ETH0.02%$0.077854386.4744$30.09
ETH0.02%$0.36548982.2144$30.05
ETH0.02%$0.104261283.5305$29.56
ETH0.02%<$0.000001138,108,433.4931$29.03
ETH0.02%$0.83885734.3858$28.84
ETH0.02%$4.546.3383$28.79
ETH0.02%$64,6380.00043804$28.31
ETH0.02%$2.4911.2214$27.94
ETH0.01%$0.094069294.3136$27.69
ETH0.01%$0.103085268.0047$27.63
ETH0.01%$0.045926599.9414$27.55
ETH0.01%$0.0126292,178.1244$27.51
ETH0.01%$1.0326.5815$27.49
ETH0.01%$0.00042463,959.3885$27.13
ETH0.01%$0.134393199.1861$26.77
ETH0.01%<$0.000001129,808,475.2072$26.66
ETH0.01%$0.00138418,897.0545$26.16
ETH0.01%$0.0041896,162.6844$25.82
ETH0.01%$0.0000251,024,412.4254$25.82
ETH0.01%$2.0112.8178$25.77
ETH0.01%$0.000067386,077.975$25.75
ETH0.01%$0.000055468,104.6571$25.73
ETH0.01%$0.148273172.0712$25.51
ETH0.01%$0.0055834,462.5$24.92
ETH0.01%$0.120802199.6501$24.12
ETH0.01%$3,302.880.00727584$24.03
ETH0.01%$0.0132771,757.0218$23.33
ETH0.01%$1.0522.0239$23.15
ETH0.01%$0.0149221,551.1096$23.15
ETH0.01%$0.179143128.4472$23.01
ETH0.01%$2.339.7523$22.72
ETH0.01%$0.062296361.5766$22.52
ETH0.01%$0.00044849,810.8712$22.31
ETH0.01%$0.203123109.5995$22.26
ETH0.01%$1.6413.4895$22.12
ETH0.01%$0.00186411,767.4767$21.94
ETH0.01%$8.562.55$21.83
ETH0.01%$0.00212510,200$21.67
ETH0.01%$0.052482409.372$21.48
ETH0.01%$72.60.2951$21.43
ETH0.01%$0.0050414,250$21.42
ETH0.01%$0.000062333,683.6369$20.8
ETH0.01%$1.9610.6038$20.78
ETH0.01%$0.131793157.6224$20.77
ETH0.01%$0.384853.6304$20.64
ETH0.01%$0.26643477.2051$20.57
ETH0.01%$0.0042774,742$20.28
ETH0.01%$0.047687425$20.27
ETH0.01%$2.857.0961$20.22
ETH0.01%$0.0025977,783.823$20.21
ETH0.01%$0.56410435.7761$20.18
ETH0.01%$0.22301890.1801$20.11
ETH0.01%$0.147569135.6043$20.01
ETH0.01%$0.091925213.3868$19.62
ETH0.01%$1.5112.75$19.25
ETH0.01%$0.12626151.9346$19.18
ETH0.01%$0.53689135.499$19.06
ETH0.01%$0.0111761,699.6087$18.99
ETH0.01%$64.770.2912$18.86
ETH0.01%$0.0024577,663.9408$18.83
ETH0.01%$1.3713.7143$18.79
ETH0.01%$0.116136160.4153$18.63
ETH0.01%$0.00153412,121$18.59
ETH<0.01%$1.3913.2061$18.36
ETH<0.01%<$0.000001391,718,019.443$18.35
ETH<0.01%$0.029174619.7828$18.08
ETH<0.01%$0.019163943.5$18.08
ETH<0.01%$0.0174431,030.5698$17.98
ETH<0.01%$0.39865744.8144$17.87
ETH<0.01%$0.00147711,967.1442$17.68
ETH<0.01%$3,128.630.00559647$17.51
ETH<0.01%$0.002297,629.541$17.47
ETH<0.01%$0.028536611.0285$17.44
ETH<0.01%$4.783.6324$17.36
ETH<0.01%$0.23694372.3967$17.15
ETH<0.01%$117.095$17.15
ETH<0.01%$117$17.03
ETH<0.01%$0.79527321.25$16.9
ETH<0.01%$4.064.0731$16.54
ETH<0.01%$0.040384403.75$16.31
ETH<0.01%$15.811.02$16.13
ETH<0.01%$1.3411.9$15.95
ETH<0.01%$0.0150271,044.6496$15.7
ETH<0.01%$0.148409105.4488$15.65
ETH<0.01%$0.51740529.8754$15.46
ETH<0.01%$0.64107824.0812$15.44
ETH<0.01%$0.22527768$15.32
ETH<0.01%$3.953.8625$15.26
ETH<0.01%$0.0016439,165.3948$15.06
ETH<0.01%<$0.00000155,790,901.8613$15.02
ETH<0.01%<$0.00000134,528,094.327$14.94
ETH<0.01%$0.27872453.2755$14.85
ETH<0.01%$2.865.18$14.84
ETH<0.01%$0.24247360.6372$14.7
ETH<0.01%$0.027613531.0794$14.66
ETH<0.01%$114.59$14.6
ETH<0.01%$0.22314665.3668$14.59
ETH<0.01%$0.85153617$14.48
ETH<0.01%$2.85.1225$14.34
ETH<0.01%$1.1812.1202$14.3
ETH<0.01%$0.0016488,666.3326$14.29
ETH<0.01%$18.270.7734$14.13
ETH<0.01%$0.43744131.9095$13.96
ETH<0.01%$0.13716101.62$13.94
ETH<0.01%$0.030582455.6313$13.93
ETH<0.01%$0.2111865.5194$13.84
ETH<0.01%$0.099946138.2433$13.82
ETH<0.01%$0.030177450.8357$13.6
ETH<0.01%$0.015898840.1892$13.36
ETH<0.01%$26.680.4958$13.23
ETH<0.01%$0.17514874.8536$13.11
ETH<0.01%$0.00000120,919,539.5734$13.02
ETH<0.01%<$0.0000011,747,750,446.1714$13.01
ETH<0.01%$0.00000113,228,765.685$12.96
ETH<0.01%$0.01906673.3258$12.83
ETH<0.01%$0.093385134.6544$12.57
ETH<0.01%$0.39572831.5926$12.5
ETH<0.01%$0.14544685$12.36
ETH<0.01%$0.15936177.0389$12.28
ETH<0.01%$0.095192127.5$12.14
ETH<0.01%$1.48.6457$12.1
ETH<0.01%$0.0067521,790.8883$12.09
ETH<0.01%$0.68603517.3575$11.91
ETH<0.01%$0.00083514,260.2168$11.9
ETH<0.01%$0.00017866,213.1775$11.79
ETH<0.01%$0.013001901.2159$11.72
ETH<0.01%$0.021182548.6564$11.62
ETH<0.01%<$0.000001805,117,520.1938$11.58
ETH<0.01%$177.860.0648$11.53
ETH<0.01%$0.16989467.6776$11.5
ETH<0.01%$0.16683668.3036$11.4
ETH<0.01%$5.642.0157$11.37
ETH<0.01%$0.092162122.6109$11.3
ETH<0.01%$0.037696297.9647$11.23
ETH<0.01%$0.41569926.7391$11.12
ETH<0.01%$0.20143254.7155$11.02
ETH<0.01%$0.68170916.0073$10.91
ETH<0.01%$0.24342544.622$10.86
ETH<0.01%$0.00025841,660.9815$10.74
ETH<0.01%$0.13449479.1149$10.64
ETH<0.01%$1,248.150.0085$10.61
ETH<0.01%$6.861.5316$10.51
ETH<0.01%$2.025.1699$10.43
ETH<0.01%$0.034546300.4024$10.38
ETH<0.01%$4.542.2744$10.33
ETH<0.01%$0.041628246.7015$10.27
ETH<0.01%$3.33.1072$10.25
ETH<0.01%$0.23243143.0588$10.01
ETH<0.01%<$0.000001345,077,739.4504$9.87
ETH<0.01%$0.95011110.3413$9.83
ETH<0.01%$0.045286215.2231$9.75
ETH<0.01%$0.28313733.7045$9.54
ETH<0.01%$0.13880268.7211$9.54
ETH<0.01%$1.029.3603$9.52
ETH<0.01%$0.36771625.5042$9.38
ETH<0.01%$0.087233105.9919$9.25
ETH<0.01%$57.140.1603$9.16
ETH<0.01%$0.12710271.7265$9.12
ETH<0.01%$484.370.0188$9.11
ETH<0.01%$13.740.6623$9.1
ETH<0.01%$8.891.0208$9.08
ETH<0.01%$0.015646574.5978$8.99
ETH<0.01%$0.4033422.2203$8.96
ETH<0.01%$1.177.4631$8.73
ETH<0.01%$0.0050611,712.4813$8.67
ETH<0.01%<$0.000001204,000,000$8.6
ETH<0.01%$0.9898438.6445$8.56
ETH<0.01%$2.872.9724$8.53
ETH<0.01%$0.0000041,907,847.9409$8.45
ETH<0.01%$18.840.4415$8.32
ETH<0.01%$0.1736347.7301$8.29
ETH<0.01%$0.45752917.9054$8.19
ETH<0.01%$0.0000016,372,364.8512$8.18
ETH<0.01%$0.068109118.8034$8.09
ETH<0.01%$89.340.0902$8.06
ETH<0.01%$3.362.3903$8.04
ETH<0.01%$0.007571,057.7542$8.01
ETH<0.01%$354.250.0225$7.98
ETH<0.01%$0.732810.8904$7.98
ETH<0.01%$0.0046861,700$7.97
ETH<0.01%$0.0015475,134.0009$7.94
ETH<0.01%<$0.0000011,781,723,396.0386$7.82
ETH<0.01%$0.12157863.7025$7.74
ETH<0.01%$0.072358106.8593$7.73
ETH<0.01%$0.013863555.1699$7.7
ETH<0.01%$1.634.6974$7.66
ETH<0.01%$0.21362835.742$7.64
ETH<0.01%$0.0032042,328.8229$7.46
ETH<0.01%$0.04128180.3912$7.45
ETH<0.01%$0.9371287.8365$7.34
ETH<0.01%$0.038816189.0986$7.34
ETH<0.01%$0.065022112.764$7.33
ETH<0.01%$0.0050541,438.838$7.27
ETH<0.01%<$0.00000117,756,979.1127$7.26
ETH<0.01%$49.40.1452$7.17
ETH<0.01%$0.10807966.1121$7.15
ETH<0.01%$2.073.4$7.04
ETH<0.01%$0.17010641.1485$7
ETH<0.01%$0.07260394.8314$6.89
ETH<0.01%$0.00062610,896.7715$6.83
ETH<0.01%$0.734949.2395$6.79
ETH<0.01%$0.18899435.5218$6.71
ETH<0.01%$9.990.6718$6.71
ETH<0.01%$31.370.2131$6.69
ETH<0.01%$52.790.1241$6.55
ETH<0.01%<$0.0000011,445,000,970.4449$6.53
ETH<0.01%$16.270.4012$6.53
ETH<0.01%$0.009172710.4542$6.52
ETH<0.01%$0.26925523.8085$6.41
ETH<0.01%$27.020.2372$6.41
ETH<0.01%$0.0000061,018,540.7792$6.41
ETH<0.01%$0.00001653,076.867$6.39
ETH<0.01%$0.260524.2689$6.32
ETH<0.01%$0.30898520.3315$6.28
ETH<0.01%$0.0018183,448.7995$6.27
ETH<0.01%$0.46618813.2488$6.18
ETH<0.01%$0.7392468.1003$5.99
ETH<0.01%<$0.0000013,665,333,705.4162$5.93
ETH<0.01%$15.8668$5.87
ETH<0.01%$0.44182912.7434$5.63
ETH<0.01%$0.33325816.8272$5.61
ETH<0.01%$0.15768535.3823$5.58
ETH<0.01%$0.003871,428.9727$5.53
ETH<0.01%$0.11823346.6241$5.51
ETH<0.01%$0.0009365,814.0016$5.44
ETH<0.01%$0.031572171.7$5.42
ETH<0.01%$3,102.280.00174612$5.42
ETH<0.01%$0.28922218.7$5.41
ETH<0.01%<$0.000001221,195,839.7273$5.25
ETH<0.01%<$0.000001116,273,805.7323$5.16
ETH<0.01%$43.70.1178$5.15
ETH<0.01%$0.016065316.2069$5.08
ETH<0.01%$0.017477289$5.05
ETH<0.01%$0.8205446.1334$5.03
ETH<0.01%$0.10796946.2655$5
ETH<0.01%$423.830.0118$4.99
ETH<0.01%$6.080.7989$4.86
ETH<0.01%$0.000006826,012.5956$4.82
ETH<0.01%$0.9460845.0974$4.82
ETH<0.01%$0.40282711.4324$4.61
ETH<0.01%$0.893745.0484$4.51
ETH<0.01%$0.690576.4684$4.47
ETH<0.01%$0.008779508.3779$4.46
ETH<0.01%$0.7542845.8625$4.42
ETH<0.01%$0.06444268.4998$4.41
ETH<0.01%$1.084.0359$4.34
ETH<0.01%$0.25586716.9167$4.33
ETH<0.01%$0.015753272.6943$4.3
ETH<0.01%<$0.000001889,652,488.0455$4.22
ETH<0.01%$0.05748972.327$4.16
ETH<0.01%<$0.00000121,242,332,771.1939$4.1
ETH<0.01%$0.01923212.5255$4.09
ETH<0.01%$0.21436418.9088$4.05
ETH<0.01%$3.851.0498$4.05
ETH<0.01%$103.330.0369$3.82
ETH<0.01%$3,354.910.00113667$3.81
ETH<0.01%$0.4551518.2875$3.77
ETH<0.01%$0.000024156,043.7933$3.71
ETH<0.01%$0.11798731.0441$3.66
ETH<0.01%$2.061.7718$3.65
ETH<0.01%<$0.00000118,571,990.9999$3.51
ETH<0.01%$0.21260316.15$3.43
ETH<0.01%<$0.00000144,003,885.558$3.43
ETH<0.01%$0.09726934.765$3.38
ETH<0.01%$5.760.5792$3.34
ETH<0.01%$0.0023261,429.3075$3.33
ETH<0.01%$0.000025134,313.0835$3.32
ETH<0.01%$0.9958133.2721$3.26
ETH<0.01%$0.032199100.5911$3.24
ETH<0.01%<$0.000001269,300,816.151$3.21
ETH<0.01%$0.13155223.732$3.12
ETH<0.01%$0.07499741.5156$3.11
ETH<0.01%$0.30804610$3.08
ETH<0.01%$0.016741183.9359$3.08
ETH<0.01%$0.6466474.7515$3.07
ETH<0.01%$0.007609403.2692$3.07
ETH<0.01%$0.0018191,680.755$3.06
ETH<0.01%$0.0000021,260,167.2523$3.02
ETH<0.01%$0.11871825.4545$3.02
ETH<0.01%$0.04758263.0151$3
ETH<0.01%$0.7098474.195$2.98
ETH<0.01%$0.08176836.1997$2.96
ETH<0.01%$0.020993138.0394$2.9
ETH<0.01%$14.260.1981$2.83
ETH<0.01%$0.0008963,121.5077$2.8
ETH<0.01%$0.008974307.1964$2.76
ETH<0.01%$0.0005894,658.102$2.74
ETH<0.01%$0.003672742.5965$2.73
ETH<0.01%$0.022782117.3132$2.67
ETH<0.01%$0.04897952.3829$2.57
ETH<0.01%$4.220.6069$2.56
ETH<0.01%$1.082.3534$2.55
ETH<0.01%$0.06360839.9533$2.54
ETH<0.01%$0.00591423.8583$2.5
ETH<0.01%$1.61.5638$2.5
ETH<0.01%$0.08178530.249$2.47
ETH<0.01%$0.0000012,703,833.7609$2.46
ETH<0.01%$1.21.985$2.38
ETH<0.01%$0.02417598.443$2.38
ETH<0.01%$1.032.2655$2.34
ETH<0.01%$0.00006634,871.3208$2.3
ETH<0.01%$0.02646286.3936$2.29
ETH<0.01%$2.241$2.24
ETH<0.01%$0.0005214,250$2.21
ETH<0.01%$0.0000826,991.6106$2.17
ETH<0.01%$111.260.0195$2.17
ETH<0.01%<$0.00000164,775,321.2107$2.16
ETH<0.01%$0.0003635,943.7202$2.16
ETH<0.01%$0.000007296,035.169$2.14
ETH<0.01%$0.08326525.589$2.13
ETH<0.01%<$0.00000112,212,677.0567$2.03
ETH<0.01%$0.15064913.4573$2.03
ETH<0.01%$0.2114769.4723$2
ETH<0.01%$1.321.4921$1.97
ETH<0.01%$0.002103930.969$1.96
ETH<0.01%$0.016774115.2619$1.93
ETH<0.01%$0.1600411.9$1.9
ETH<0.01%$0.8822172.1302$1.88
ETH<0.01%$14.840.1264$1.88
ETH<0.01%$0.0018051,034.269$1.87
ETH<0.01%$0.6652792.7927$1.86
ETH<0.01%$0.00005532,711.284$1.81
ETH<0.01%$0.0760323.375$1.78
ETH<0.01%$0.2165228.1394$1.76
ETH<0.01%$0.03364750.8249$1.71
ETH<0.01%$0.013968121.7817$1.7
ETH<0.01%<$0.00000154,344,049.988$1.65
ETH<0.01%$0.7973972.04$1.63
ETH<0.01%$23.210.07$1.62
ETH<0.01%$0.04748734$1.61
ETH<0.01%$0.1615049.8539$1.59
ETH<0.01%$0.0013981,133.0944$1.58
ETH<0.01%$0.04309336.643$1.58
ETH<0.01%<$0.0000013,140,230.7793$1.57
ETH<0.01%$0.00958162.614$1.56
ETH<0.01%<$0.0000011,447,180,302.8087$1.53
ETH<0.01%$0.03213447.5483$1.53
ETH<0.01%$4.720.323$1.52
ETH<0.01%$6.430.2356$1.52
ETH<0.01%$0.11945712.6143$1.51
ETH<0.01%$88.550.017$1.51
ETH<0.01%$3,402.10.00044233$1.5
ETH<0.01%$0.02016673.5338$1.48
ETH<0.01%$0.2077066.9517$1.44
ETH<0.01%$0.05173327.0607$1.4
ETH<0.01%$12.550.1094$1.37
ETH<0.01%$0.6902651.9742$1.36
ETH<0.01%$0.05980322.695$1.36
ETH<0.01%$3,247.160.00040912$1.33
ETH<0.01%$0.02779647.5257$1.32
ETH<0.01%$0.1917866.8489$1.31
ETH<0.01%<$0.000001590,689,916.4389$1.31
ETH<0.01%$0.00003834,439.4327$1.3
ETH<0.01%$0.1536238.4049$1.29
ETH<0.01%$0.010099127.5$1.29
ETH<0.01%$0.002005639.2936$1.28
ETH<0.01%$3,177.890.0003964$1.26
ETH<0.01%$0.00587213.7412$1.25
ETH<0.01%<$0.000001834,395,291,595.12$1.25
ETH<0.01%$397.640.00314042$1.25
ETH<0.01%$0.05561120.9618$1.17
ETH<0.01%$2.340.4915$1.15
ETH<0.01%$0.005712200.7434$1.15
ETH<0.01%$0.4659642.4361$1.14
ETH<0.01%$0.8267521.36$1.12
ETH<0.01%$0.0006251,796.3499$1.12
ETH<0.01%$0.000008136,571.9974$1.12
ETH<0.01%$0.131198.5$1.12
ETH<0.01%$0.000003393,705.2308$1.11
ETH<0.01%$0.11049.9586$1.1
ETH<0.01%$0.4916532.1998$1.08
ETH<0.01%$0.0231746.0623$1.07
ETH<0.01%$0.07133514.7359$1.05
ETH<0.01%$0.0001228,500$1.04
ETH<0.01%$0.0006731,505.0117$1.01
ETH<0.01%$0.00005518,418.9354$1.01
ETH<0.01%$0.003014328.5269$0.9902
ETH<0.01%$0.7437911.3175$0.9799
ETH<0.01%$0.06120315.9314$0.975
ETH<0.01%<$0.0000013,646,500.9266$0.9599
ETH<0.01%$0.0998999.5324$0.9522
ETH<0.01%$1.120.85$0.952
ETH<0.01%$1,895.980.00050038$0.9487
ETH<0.01%<$0.000001634,927,581.0822$0.9447
ETH<0.01%$1.070.8758$0.934
ETH<0.01%$0.00499183.2261$0.9143
ETH<0.01%$0.9951890.8943$0.89
ETH<0.01%$0.008653100.712$0.8714
ETH<0.01%<$0.0000015,290,118.9132$0.8707
ETH<0.01%$0.01314564.4192$0.8468
ETH<0.01%$0.0005281,590.132$0.8402
ETH<0.01%$0.01563453.2439$0.8323
ETH<0.01%$0.001652492.1909$0.813
ETH<0.01%$0.04756916.7536$0.7969
ETH<0.01%$1.110.716$0.7947
ETH<0.01%<$0.00000135,922,834.5957$0.7615
ETH<0.01%$0.00817691.9819$0.752
ETH<0.01%$0.0000928,046.0176$0.7382
ETH<0.01%$84.120.00865276$0.7278
ETH<0.01%<$0.0000011,287,743,628.475$0.7239
ETH<0.01%$0.00715999.8346$0.7147
ETH<0.01%$0.237582.9494$0.7007
ETH<0.01%$0.00073942.0186$0.6875
ETH<0.01%$0.001601425.4494$0.6811
ETH<0.01%$0.00953368.85$0.6563
ETH<0.01%$1.470.4387$0.6453
ETH<0.01%<$0.0000011,640,500$0.6429
ETH<0.01%$0.00650495.761$0.6227
ETH<0.01%$0.000003196,190.7001$0.618
ETH<0.01%$0.01783434.6035$0.6171
ETH<0.01%$0.002457250.9221$0.6165
ETH<0.01%$0.00604102.0332$0.6162
ETH<0.01%$0.00144425$0.6119
ETH<0.01%$0.001461415.0948$0.6062
ETH<0.01%$0.000938645.8411$0.6055
ETH<0.01%$6.390.0933$0.5962
ETH<0.01%$0.0000678,555.1511$0.5696
ETH<0.01%$0.0724347.803$0.5652
ETH<0.01%$0.04839911.2798$0.5459
ETH<0.01%<$0.000001505,231,908.5955$0.5335
ETH<0.01%$1.720.3101$0.5334
ETH<0.01%$0.2532342.086$0.5282
ETH<0.01%$0.0880545.8395$0.5141
ETH<0.01%$0.6936230.7388$0.5124
ETH<0.01%$0.00000865,003.4098$0.5109
ETH<0.01%$0.0000717,069.6887$0.504
ETH<0.01%$0.03414814.5844$0.498
ETH<0.01%$0.1847142.6315$0.486
ETH<0.01%$0.001134410.5483$0.4653
ETH<0.01%$10.4589$0.4588
ETH<0.01%$0.0778755.8898$0.4586
ETH<0.01%$0.3429061.3369$0.4584
ETH<0.01%$0.1982732.2454$0.4451
ETH<0.01%$0.5161150.85$0.4386
ETH<0.01%<$0.0000012,478,256.478$0.4189
ETH<0.01%$0.5167130.8074$0.4172
ETH<0.01%$0.3630121.119$0.4061
ETH<0.01%$0.000934433.033$0.4042
ETH<0.01%$1.260.3088$0.3891
ETH<0.01%$0.536930.7239$0.3887
ETH<0.01%$0.02307316.49$0.3804
ETH<0.01%$1.050.357$0.3762
ETH<0.01%$0.0431218.5$0.3665
ETH<0.01%$0.0581886.1584$0.3583
ETH<0.01%$0.000001537,085.27$0.3549
ETH<0.01%$0.000003120,461$0.3426
ETH<0.01%<$0.0000015,510,495.5947$0.336
ETH<0.01%<$0.000001372,708,204.3239$0.3325
ETH<0.01%$0.01714719.087$0.3272
ETH<0.01%<$0.0000011,675,740.7746$0.3268
ETH<0.01%$8.450.0382$0.3225
ETH<0.01%$3.260.098$0.3194
ETH<0.01%$0.00318597.75$0.3113
ETH<0.01%$0.0002181,398.8903$0.3052
ETH<0.01%$0.0882843.4$0.3001
ETH<0.01%$0.002128134.9285$0.287
ETH<0.01%$0.000003108,195.7915$0.2856
ETH<0.01%$82.80.00342546$0.2836
ETH<0.01%$0.01714716.259$0.2788
ETH<0.01%$0.5953030.4675$0.2783
ETH<0.01%$5.480.0507$0.2776
ETH<0.01%$0.00397468.4223$0.2719
ETH<0.01%$0.00458456.95$0.261
ETH<0.01%$0.4744840.5491$0.2605
ETH<0.01%$1.210.2138$0.2587
ETH<0.01%$0.0516874.9167$0.2541
ETH<0.01%$0.01862413.2863$0.2474
ETH<0.01%$0.0554224.2489$0.2354
ETH<0.01%$0.0508924.1857$0.213
ETH<0.01%$0.00626933.6513$0.2109
ETH<0.01%$0.4174040.4715$0.1968
ETH<0.01%$0.2246440.8426$0.1892
ETH<0.01%$68.480.00270572$0.1852
ETH<0.01%$0.00604429.7454$0.1797
ETH<0.01%$0.01325913.5037$0.179
ETH<0.01%$0.000028,500$0.1739
ETH<0.01%$0.0985611.7314$0.1706
ETH<0.01%$0.1118791.496$0.1673
ETH<0.01%$0.00215176.5$0.1645
ETH<0.01%$0.0328284.7909$0.1572
ETH<0.01%$92.920.00165343$0.1536
ETH<0.01%<$0.000001130,642,387.9723$0.1474
ETH<0.01%$1.010.1446$0.1462
ETH<0.01%$0.0816871.7874$0.146
ETH<0.01%$0.0000951,473.8519$0.1403
ETH<0.01%$0.0255955.4315$0.139
ETH<0.01%$1.680.0812$0.1364
ETH<0.01%$3.80.0357$0.1356
ETH<0.01%$0.000043,290.129$0.13
ETH<0.01%$0.0072417.6206$0.1275
ETH<0.01%$0.0000196,803.7037$0.1261
ETH<0.01%$0.001678.2583$0.1251
ETH<0.01%$0.1824980.6766$0.1234
ETH<0.01%$0.000658185.0077$0.1217
ETH<0.01%$0.000148816.1264$0.1205
ETH<0.01%<$0.0000011,171,739.0624$0.1111
OP
Ether (ETH)
12.07%$3,104.917.2151$22,402.07
OP0.84%$0.99981,552.732$1,552.42
OP0.04%$172.4772$72.48
OP0.03%$3,100.980.0185$57.38
OP0.03%$0.185234251.7544$46.63
OP0.01%$3,604.240.00672297$24.23
OP0.01%$0.9963119.7054$19.63
OP<0.01%$0.99983216.5703$16.57
OP<0.0