Polygon Sponsored slots available. Book your slot here!
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 110,356 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Fill Quote Token... | 65164907 | 15 mins ago | IN | 0 POL | 0.00528208 | ||||
Fill Quote Token... | 65164213 | 40 mins ago | IN | 0 POL | 0.00766517 | ||||
Fill Quote Token... | 65164042 | 46 mins ago | IN | 0 POL | 0.00522426 | ||||
Fill Quote Token... | 65162833 | 1 hr ago | IN | 0 POL | 0.00746886 | ||||
Fill Quote Token... | 65162523 | 1 hr ago | IN | 0 POL | 0.00931649 | ||||
Fill Quote Token... | 65162497 | 1 hr ago | IN | 0 POL | 0.01402491 | ||||
Fill Quote Token... | 65162357 | 1 hr ago | IN | 0 POL | 0.01302426 | ||||
Fill Quote Token... | 65160733 | 2 hrs ago | IN | 0 POL | 0.01826472 | ||||
Fill Quote Token... | 65160505 | 2 hrs ago | IN | 0 POL | 0.0125701 | ||||
Fill Quote Token... | 65159897 | 3 hrs ago | IN | 0 POL | 0.01330036 | ||||
Fill Quote Token... | 65159876 | 3 hrs ago | IN | 0 POL | 0.04675072 | ||||
Fill Quote Token... | 65159834 | 3 hrs ago | IN | 0 POL | 0.01068735 | ||||
Fill Quote Eth T... | 65159783 | 3 hrs ago | IN | 0.915 POL | 0.01043657 | ||||
Fill Quote Token... | 65159465 | 3 hrs ago | IN | 0 POL | 0.01018407 | ||||
Fill Quote Token... | 65159463 | 3 hrs ago | IN | 0 POL | 0.01666508 | ||||
Fill Quote Eth T... | 65159174 | 3 hrs ago | IN | 97 POL | 0.01016244 | ||||
Fill Quote Token... | 65158352 | 4 hrs ago | IN | 0 POL | 0.02554852 | ||||
Fill Quote Token... | 65158294 | 4 hrs ago | IN | 0 POL | 0.02595826 | ||||
Fill Quote Eth T... | 65158113 | 4 hrs ago | IN | 31 POL | 0.03399463 | ||||
Fill Quote Token... | 65157739 | 4 hrs ago | IN | 0 POL | 0.04992493 | ||||
Fill Quote Token... | 65157631 | 4 hrs ago | IN | 0 POL | 0.05062175 | ||||
Fill Quote Token... | 65157134 | 4 hrs ago | IN | 0 POL | 0.01438061 | ||||
Fill Quote Token... | 65156260 | 5 hrs ago | IN | 0 POL | 0.04552132 | ||||
Fill Quote Eth T... | 65156001 | 5 hrs ago | IN | 100 POL | 0.01598651 | ||||
Fill Quote Token... | 65155728 | 5 hrs ago | IN | 0 POL | 0.01431612 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
65164907 | 15 mins ago | 9.28575293 POL | ||||
65164907 | 15 mins ago | 9.36535847 POL | ||||
65164213 | 40 mins ago | 4.07809106 POL | ||||
65164213 | 40 mins ago | 4.113052 POL | ||||
65164042 | 46 mins ago | 20.54409997 POL | ||||
65164042 | 46 mins ago | 20.72022186 POL | ||||
65162497 | 1 hr ago | 8.36521097 POL | ||||
65162497 | 1 hr ago | 8.43692483 POL | ||||
65161559 | 2 hrs ago | 71.41820944 POL | ||||
65161559 | 2 hrs ago | 72.03046842 POL | ||||
65159834 | 3 hrs ago | 0.43649257 POL | ||||
65159834 | 3 hrs ago | 0.44023456 POL | ||||
65159783 | 3 hrs ago | 0.9072225 POL | ||||
65159465 | 3 hrs ago | 2.91742705 POL | ||||
65159465 | 3 hrs ago | 2.94243777 POL | ||||
65159463 | 3 hrs ago | 1,752.67660368 POL | ||||
65159463 | 3 hrs ago | 1,767.70207128 POL | ||||
65159174 | 3 hrs ago | 96.1755 POL | ||||
65158113 | 4 hrs ago | 30.7365 POL | ||||
65157631 | 4 hrs ago | 6.17095414 POL | ||||
65157631 | 4 hrs ago | 6.22385692 POL | ||||
65157134 | 4 hrs ago | 3.46868751 POL | ||||
65157134 | 4 hrs ago | 3.49842411 POL | ||||
65156260 | 5 hrs ago | 23.17897134 POL | ||||
65156260 | 5 hrs ago | 23.37768163 POL |
Loading...
Loading
Contract Name:
RainbowRouter
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* ▐██▒ ███ ,╓, ▄▄ ,▄▄▄, .▄▄. ,╓, ▄▄▄ ██▌ ▄▄▄ ,▄▄▄, ,╓╓ ╓╓ ,╓ ██████ ███▀▀██⌐ ▐██⌐ ███▀▀███⌐ ████▀▀███ ╓██▀▀▀██▄`██▌ ▐██▌ ▐██ ███ ▄▄█████▌ ▐██⌐ ██▌ ▐██▌ ██▌ ║██⌐███ ▓██ ╙██▄█▌██▄██⌐ ██▌ ▐██▄▄███▌,▐██⌐ ██▌ ▐██▌ ███▓▄▄███ ╙██▄▄▄██▀ ║███¬╙███▌ ╙╙└ ╙╙▀╙─╙▀▀└"╙╙` ╙╙└ ╙╙" ╙╙`╙╙▀▀└ ╙╙▀▀╙` ╙╙└ ╙╙╙ _," _ _"""ⁿ=-, _ ⌠ _ __"=.__ ▐░...... _ _ "=._ ▐░░░░░░░░░░░░░░░░. "= _ ╚╩╩╩╩╩╩δφφφφ░░░░░░░░░░░ >__ ▐░░░░░░░░__ _ ╙╙╚╩φφ░░░░░░░ ^=_ ▐░░░░░░░░░░░░░░░,░ `╙╠φ░░░░░░░ ⁿ ▐░░░░░░░░░░░░░░░░░░░░._ `╚Åφ░░░░░ " _ ╚╠╠╠╠╠╠╠╬╬╬▒▒φ░░░░░░░░░░░░ ╙╠░░░░░ " ╚╝╝╝╝╝╝╝╬╬╬╠╢╬╠╬╠╬▒░░░░░░░░░░ "╚φ░░░░ ½_ ▐░░░░░░░░░░;░╙╙╝╬╠╬╠╠▒▒░░░░░░░░_ ╚φ░░░░ "_ ╚▒φφφ░░░░░░░░░░░░-╙╚╬╠╠╠╬▒░░░░░░░ `╠▒░░░░ , ╞╬╬╬╠╠╠╬╬╬╬▒φ▒░░░░░░░╙╚╬╬╠╬▒▒░░░░░ .╙╠░░░░ ≥ _▒░░░ΓΓ╙╙╙╚╩╬╠╬╠▒▒░░░░░░╙╬╬╠╬▒▒░░░░░' ╠▒░░░░ ≥ `╙ⁿⁿ≈≈σ╓░ '╙╙╚╬╠╬▒░░░░░░╙╬╬╠╬▒░░░░░ ╠▒░░░░ [ _╙Θ░ ░╙╠╠╬╬▒░░░░░╬╠╠╠▒▒░░░░ ╠▒░░░░ '_ _╙φ░'╙╠╠╬▒░░░░░╟╠╠╠▒░░░░░ _╠▒░░░ ░_ _`φ ░╚╬╠╠▒░░░░║╠╠╠▒░░░░░.`╠░░░░ [ _╚░⌡╚╠╬╬▒░░░░╠╠╠╬▒░░░░░ ╠▒░░░░ ░ _╙░⌡╚╠╠╬▒░░░"▒╠╠╬▒░░░░ ⌠╠░░░░ ⌡_ ╠ ░╠╠╠╬▒░░░║╠╬╠╬▒░░░ _╠▒░░░ Γ ▐░░░╠╠╠▒░░░╟╠╠╠╬▒░░░░ ╠▒░░░░ [ _░.░╠╠╠▒░░░▐╬╠╠╬▒░░░░[╠╬░░░░ │ _╙φ░╠╠╠╬▒░░▐╬╬╠╬╬▒░░░[╠╬░░░░ ░≥_ ____ ____ __ _______ ____ /$$$$$$ /$$$$$$ /$$ /$$__ $$ /$$__ $$ | $$ | $$ \__/ /$$ /$$ /$$ /$$$$$$ /$$$$$$ | $$ \ $$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ | $$$$$$ | $$ | $$ | $$ |____ $$ /$$__ $$ | $$$$$$$$ /$$__ $$ /$$__ $$ /$$__ $$ /$$__ $$ /$$__ $$ |____ $$|_ $$_/ /$$__ $$ /$$__ $$ \____ $$| $$ | $$ | $$ /$$$$$$$| $$ \ $$ | $$__ $$| $$ \ $$| $$ \ $$| $$ \__/| $$$$$$$$| $$ \ $$ /$$$$$$$ | $$ | $$ \ $$| $$ \__/ /$$ \ $$| $$ | $$ | $$ /$$__ $$| $$ | $$ | $$ | $$| $$ | $$| $$ | $$| $$ | $$_____/| $$ | $$ /$$__ $$ | $$ /$$| $$ | $$| $$ | $$$$$$/| $$$$$/$$$$/| $$$$$$$| $$$$$$$/ | $$ | $$| $$$$$$$| $$$$$$$| $$ | $$$$$$$| $$$$$$$| $$$$$$$ | $$$$/| $$$$$$/| $$ \______/ \_____/\___/ \_______/| $$____/ |__/ |__/ \____ $$ \____ $$|__/ \_______/ \____ $$ \_______/ \___/ \______/ |__/ | $$ /$$ \ $$ /$$ \ $$ /$$ \ $$ | $$ | $$$$$$/| $$$$$$/ | $$$$$$/ |__/ \______/ \______/ \______/ */ //SPDX-License-Identifier: GPL-3.0 pragma solidity =0.8.11; import "@rari-capital/solmate/src/utils/SafeTransferLib.sol"; import "@rari-capital/solmate/src/tokens/ERC20.sol"; import "./routers/BaseAggregator.sol"; /// @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); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; import {ERC20} from "../tokens/ERC20.sol"; /// @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 } } } }
// SPDX-License-Identifier: AGPL-3.0-only 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); } }
//SPDX-License-Identifier: GPL-3.0 pragma solidity =0.8.11; import "@rari-capital/solmate/src/utils/SafeTransferLib.sol"; import "@rari-capital/solmate/src/tokens/ERC20.sol"; import "../libraries/PermitHelper.sol"; /// @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 ); } }
//SPDX-License-Identifier: GPL-3.0 pragma solidity =0.8.11; import "../interfaces/IERC2612.sol"; import "../interfaces/IDAI.sol"; /// @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 ); } } }
//SPDX-License-Identifier: GPL-3.0 pragma solidity =0.8.11; import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol"; interface IERC2612 is IERC20Metadata, IERC20Permit { function _nonces(address owner) external view returns (uint256); function version() external view returns (string memory); }
//SPDX-License-Identifier: GPL-3.0 pragma solidity =0.8.11; import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import "@uniswap/v3-periphery/contracts/interfaces/external/IERC20PermitAllowed.sol"; 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; /** * @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); }
// SPDX-License-Identifier: MIT // 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); }
// SPDX-License-Identifier: MIT // 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); }
// SPDX-License-Identifier: GPL-2.0-or-later 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; }
{ "optimizer": { "enabled": true, "runs": 1000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
608060405234801561001057600080fd5b50600280546001600160a01b031916331790556001600055611afd806100376000396000f3fe6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b0480bbd1161004e578063b0480bbd1461024e578063b309383814610261578063f2fde38b1461027457600080fd5b80638da5cb5b146101e357806397bbda0e1461021b578063999b64641461023b57600080fd5b80633c2b9a7d116100a55780633c2b9a7d1461017857806355e4b7be1461018b57806383c4a19d1461019e57600080fd5b806301e33667146101385780631b9a91a41461015857600080fd5b3661013357600054600214806100e057506002546001600160a01b031633145b6101315760405162461bcd60e51b815260206004820152600a60248201527f4e4f5f524543454956450000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561014457600080fd5b506101316101533660046115a6565b610294565b34801561016457600080fd5b506101316101733660046115e7565b61037d565b61013161018636600461165c565b61045a565b6101316101993660046116c9565b61075f565b3480156101aa57600080fd5b506101ce6101b9366004611754565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101ef57600080fd5b50600254610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101da565b34801561022757600080fd5b5061013161023636600461178d565b610820565b6101316102493660046117c2565b610904565b61013161025c366004611851565b6109c3565b61013161026f3660046118f1565b610a9f565b34801561028057600080fd5b5061013161028f366004611754565b610b6a565b6002546001600160a01b031633146102db5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166103205760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b61032b838383610cbd565b816001600160a01b0316836001600160a01b03167f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e56208360405161037091815260200190565b60405180910390a3505050565b6002546001600160a01b031633146103c45760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166104095760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6104138282610d63565b816001600160a01b03167f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8260405161044e91815260200190565b60405180910390a25050565b6000546002141561049d5760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038516815260016020526040902054849060ff166104fd5760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610568919061197f565b9050600061057634476119ae565b9050600061058485346119ae565b9050600080896001600160a01b0316838a8a6040516105a49291906119c5565b60006040518083038185875af1925050503d80600081146105e1576040519150601f19603f3d011682016040523d82523d6000602084013e6105e6565b606091505b5091509150816105f95780518082602001fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038d16906370a0823190602401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610664919061197f565b90508086106106a15760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b506040516370a0823160e01b8152306004820152610723908c90339088906001600160a01b038416906370a0823190602401602060405180830381865afa1580156106f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610714919061197f565b61071e91906119ae565b610cbd565b600061072f88476119ae565b90508481111561074c5761074c3361074787846119ae565b610d63565b5050600160005550505050505050505050565b600054600214156107a25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166108025760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b61081188888888888888610dc3565b50506001600055505050505050565b6002546001600160a01b031633146108675760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166000908152600160205260409020805460ff191682158015919091179091556108cc576040516001600160a01b038316907fb907822409611d127ab6a64611591b98e03a6a85ade4f258bae26b7c1efdfeaf90600090a25050565b6040516001600160a01b038316907f393b8be3e26787f19285ecd039dfd80bc6507828750f4d50367e6efe2524695c90600090a25050565b600054600214156109475760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166109a75760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6109b587878787878761104c565b505060016000555050505050565b60005460021415610a065760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610a665760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610a80610a78368490038401846119e6565b8a333061125d565b610a8f89898989898989610dc3565b5050600160005550505050505050565b60005460021415610ae25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610b425760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610b5c610b54368490038401846119e6565b89333061125d565b61081188888888888861104c565b6002546001600160a01b03163314610bb15760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b038116610bf65760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6002546001600160a01b0382811691161415610c545760405162461bcd60e51b815260206004820152600a60248201527f53414d455f4f574e4552000000000000000000000000000000000000000000006044820152606401610128565b600280546001600160a01b038381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316811790935560405191169182917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a35050565b60006040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050610d11816113f1565b610d5d5760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610128565b50505050565b600080600080600085875af1905080610dbe5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610128565b505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e919061197f565b9050610e3c88333086611438565b610e508887610e4b85876119ae565b6114ee565b600080876001600160a01b0316348888604051610e6e9291906119c5565b60006040518083038185875af1925050503d8060008114610eab576040519150601f19603f3d011682016040523d82523d6000602084013e610eb0565b606091505b509150915081610ec35780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908c169063dd62ed3e90604401602060405180830381865afa158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f37919061197f565b90508015610f875760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff2919061197f565b905080851061102f5760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b61103e8b3361071e88856119ae565b505050505050505050505050565b600061105834476119ae565b905061106687333086611438565b6110718787856114ee565b600080876001600160a01b031634888860405161108f9291906119c5565b60006040518083038185875af1925050503d80600081146110cc576040519150601f19603f3d011682016040523d82523d6000602084013e6110d1565b606091505b5091509150816110e45780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908b169063dd62ed3e90604401602060405180830381865afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611158919061197f565b905080156111a85760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b4760006111b586836119ae565b9050600081116112075760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f4554485f4241434b0000000000000000000000000000000000000000006044820152606401610128565b861561124d576000670de0b6b3a76400006112228984611a86565b61122c9190611aa5565b9050600061123a82846119ae565b90506112463382610d63565b505061103e565b801561103e5761103e3382610d63565b836060015115611331576020840151604080860151608087015160a088015160c089015193517f8fcbaf0c0000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528781166024830152604482019690965260648101939093526001608484015260ff90911660a483015260c482015260e481019190915290841690638fcbaf0c9061010401600060405180830381600087803b15801561131457600080fd5b505af1158015611328573d6000803e3d6000fd5b50505050610d5d565b8351604080860151608087015160a088015160c089015193517fd505accf0000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301526044820196909652606481019390935260ff909116608483015260a482015260c48101919091529084169063d505accf9060e401600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b5050505050505050565b60003d8261140357806000803e806000fd5b806020811461141b57801561142c5760009250611431565b816000803e60005115159250611431565b600192505b5050919050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526001600160a01b038416602482015282604482015260008060648360008a5af191505061149b816113f1565b6114e75760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610128565b5050505050565b60006040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050611542816113f1565b610d5d5760405162461bcd60e51b815260206004820152600e60248201527f415050524f56455f4641494c45440000000000000000000000000000000000006044820152606401610128565b6001600160a01b03811681146115a357600080fd5b50565b6000806000606084860312156115bb57600080fd5b83356115c68161158e565b925060208401356115d68161158e565b929592945050506040919091013590565b600080604083850312156115fa57600080fd5b82356116058161158e565b946020939093013593505050565b60008083601f84011261162557600080fd5b50813567ffffffffffffffff81111561163d57600080fd5b60208301915083602082850101111561165557600080fd5b9250929050565b60008060008060006080868803121561167457600080fd5b853561167f8161158e565b9450602086013561168f8161158e565b9350604086013567ffffffffffffffff8111156116ab57600080fd5b6116b788828901611613565b96999598509660600135949350505050565b600080600080600080600060c0888a0312156116e457600080fd5b87356116ef8161158e565b965060208801356116ff8161158e565b9550604088013561170f8161158e565b9450606088013567ffffffffffffffff81111561172b57600080fd5b6117378a828b01611613565b989b979a50959895979660808701359660a0013595509350505050565b60006020828403121561176657600080fd5b81356117718161158e565b9392505050565b8035801515811461178857600080fd5b919050565b600080604083850312156117a057600080fd5b82356117ab8161158e565b91506117b960208401611778565b90509250929050565b60008060008060008060a087890312156117db57600080fd5b86356117e68161158e565b955060208701356117f68161158e565b9450604087013567ffffffffffffffff81111561181257600080fd5b61181e89828a01611613565b979a9699509760608101359660809091013595509350505050565b600060e0828403121561184b57600080fd5b50919050565b6000806000806000806000806101a0898b03121561186e57600080fd5b88356118798161158e565b975060208901356118898161158e565b965060408901356118998161158e565b9550606089013567ffffffffffffffff8111156118b557600080fd5b6118c18b828c01611613565b9096509450506080890135925060a089013591506118e28a60c08b01611839565b90509295985092959890939650565b6000806000806000806000610180888a03121561190d57600080fd5b87356119188161158e565b965060208801356119288161158e565b9550604088013567ffffffffffffffff81111561194457600080fd5b6119508a828b01611613565b90965094505060608801359250608088013591506119718960a08a01611839565b905092959891949750929550565b60006020828403121561199157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119c0576119c0611998565b500390565b8183823760009101908152919050565b803560ff8116811461178857600080fd5b600060e082840312156119f857600080fd5b60405160e0810181811067ffffffffffffffff82111715611a2957634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152611a5260608401611778565b6060820152611a63608084016119d5565b608082015260a083013560a082015260c083013560c08201528091505092915050565b6000816000190483118215151615611aa057611aa0611998565b500290565b600082611ac257634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209870dd0dc3fb83baf72036a002768c9388c9b2cbf93b6d7b09369fddefaaf87764736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106100c05760003560e01c80638da5cb5b11610074578063b0480bbd1161004e578063b0480bbd1461024e578063b309383814610261578063f2fde38b1461027457600080fd5b80638da5cb5b146101e357806397bbda0e1461021b578063999b64641461023b57600080fd5b80633c2b9a7d116100a55780633c2b9a7d1461017857806355e4b7be1461018b57806383c4a19d1461019e57600080fd5b806301e33667146101385780631b9a91a41461015857600080fd5b3661013357600054600214806100e057506002546001600160a01b031633145b6101315760405162461bcd60e51b815260206004820152600a60248201527f4e4f5f524543454956450000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561014457600080fd5b506101316101533660046115a6565b610294565b34801561016457600080fd5b506101316101733660046115e7565b61037d565b61013161018636600461165c565b61045a565b6101316101993660046116c9565b61075f565b3480156101aa57600080fd5b506101ce6101b9366004611754565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156101ef57600080fd5b50600254610203906001600160a01b031681565b6040516001600160a01b0390911681526020016101da565b34801561022757600080fd5b5061013161023636600461178d565b610820565b6101316102493660046117c2565b610904565b61013161025c366004611851565b6109c3565b61013161026f3660046118f1565b610a9f565b34801561028057600080fd5b5061013161028f366004611754565b610b6a565b6002546001600160a01b031633146102db5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166103205760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b61032b838383610cbd565b816001600160a01b0316836001600160a01b03167f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e56208360405161037091815260200190565b60405180910390a3505050565b6002546001600160a01b031633146103c45760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166104095760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6104138282610d63565b816001600160a01b03167f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8260405161044e91815260200190565b60405180910390a25050565b6000546002141561049d5760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038516815260016020526040902054849060ff166104fd5760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610568919061197f565b9050600061057634476119ae565b9050600061058485346119ae565b9050600080896001600160a01b0316838a8a6040516105a49291906119c5565b60006040518083038185875af1925050503d80600081146105e1576040519150601f19603f3d011682016040523d82523d6000602084013e6105e6565b606091505b5091509150816105f95780518082602001fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038d16906370a0823190602401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610664919061197f565b90508086106106a15760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b506040516370a0823160e01b8152306004820152610723908c90339088906001600160a01b038416906370a0823190602401602060405180830381865afa1580156106f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610714919061197f565b61071e91906119ae565b610cbd565b600061072f88476119ae565b90508481111561074c5761074c3361074787846119ae565b610d63565b5050600160005550505050505050505050565b600054600214156107a25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166108025760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b61081188888888888888610dc3565b50506001600055505050505050565b6002546001600160a01b031633146108675760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b0382166000908152600160205260409020805460ff191682158015919091179091556108cc576040516001600160a01b038316907fb907822409611d127ab6a64611591b98e03a6a85ade4f258bae26b7c1efdfeaf90600090a25050565b6040516001600160a01b038316907f393b8be3e26787f19285ecd039dfd80bc6507828750f4d50367e6efe2524695c90600090a25050565b600054600214156109475760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038616815260016020526040902054859060ff166109a75760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b6109b587878787878761104c565b505060016000555050505050565b60005460021415610a065760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610a665760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610a80610a78368490038401846119e6565b8a333061125d565b610a8f89898989898989610dc3565b5050600160005550505050505050565b60005460021415610ae25760405162461bcd60e51b815260206004820152600d60248201526c1393d397d49151539514905395609a1b6044820152606401610128565b600260009081556001600160a01b038716815260016020526040902054869060ff16610b425760405162461bcd60e51b815260206004820152600f60248201526e0a882a48e8aa8be9c9ea8be82aaa89608b1b6044820152606401610128565b610b5c610b54368490038401846119e6565b89333061125d565b61081188888888888861104c565b6002546001600160a01b03163314610bb15760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b6044820152606401610128565b6001600160a01b038116610bf65760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610128565b6002546001600160a01b0382811691161415610c545760405162461bcd60e51b815260206004820152600a60248201527f53414d455f4f574e4552000000000000000000000000000000000000000000006044820152606401610128565b600280546001600160a01b038381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316811790935560405191169182917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a35050565b60006040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050610d11816113f1565b610d5d5760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610128565b50505050565b600080600080600085875af1905080610dbe5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610128565b505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e919061197f565b9050610e3c88333086611438565b610e508887610e4b85876119ae565b6114ee565b600080876001600160a01b0316348888604051610e6e9291906119c5565b60006040518083038185875af1925050503d8060008114610eab576040519150601f19603f3d011682016040523d82523d6000602084013e610eb0565b606091505b509150915081610ec35780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908c169063dd62ed3e90604401602060405180830381865afa158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f37919061197f565b90508015610f875760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b6040516370a0823160e01b81523060048201526000906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff2919061197f565b905080851061102f5760405162461bcd60e51b81526020600482015260096024820152684e4f5f544f4b454e5360b81b6044820152606401610128565b61103e8b3361071e88856119ae565b505050505050505050505050565b600061105834476119ae565b905061106687333086611438565b6110718787856114ee565b600080876001600160a01b031634888860405161108f9291906119c5565b60006040518083038185875af1925050503d80600081146110cc576040519150601f19603f3d011682016040523d82523d6000602084013e6110d1565b606091505b5091509150816110e45780518082602001fd5b604051636eb1769f60e11b81523060048201526001600160a01b038981166024830152600091908b169063dd62ed3e90604401602060405180830381865afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611158919061197f565b905080156111a85760405162461bcd60e51b815260206004820152601260248201527f414c4c4f57414e43455f4e4f545f5a45524f00000000000000000000000000006044820152606401610128565b4760006111b586836119ae565b9050600081116112075760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f4554485f4241434b0000000000000000000000000000000000000000006044820152606401610128565b861561124d576000670de0b6b3a76400006112228984611a86565b61122c9190611aa5565b9050600061123a82846119ae565b90506112463382610d63565b505061103e565b801561103e5761103e3382610d63565b836060015115611331576020840151604080860151608087015160a088015160c089015193517f8fcbaf0c0000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528781166024830152604482019690965260648101939093526001608484015260ff90911660a483015260c482015260e481019190915290841690638fcbaf0c9061010401600060405180830381600087803b15801561131457600080fd5b505af1158015611328573d6000803e3d6000fd5b50505050610d5d565b8351604080860151608087015160a088015160c089015193517fd505accf0000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301526044820196909652606481019390935260ff909116608483015260a482015260c48101919091529084169063d505accf9060e401600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b5050505050505050565b60003d8261140357806000803e806000fd5b806020811461141b57801561142c5760009250611431565b816000803e60005115159250611431565b600192505b5050919050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526001600160a01b038416602482015282604482015260008060648360008a5af191505061149b816113f1565b6114e75760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610128565b5050505050565b60006040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201528260248201526000806044836000895af1915050611542816113f1565b610d5d5760405162461bcd60e51b815260206004820152600e60248201527f415050524f56455f4641494c45440000000000000000000000000000000000006044820152606401610128565b6001600160a01b03811681146115a357600080fd5b50565b6000806000606084860312156115bb57600080fd5b83356115c68161158e565b925060208401356115d68161158e565b929592945050506040919091013590565b600080604083850312156115fa57600080fd5b82356116058161158e565b946020939093013593505050565b60008083601f84011261162557600080fd5b50813567ffffffffffffffff81111561163d57600080fd5b60208301915083602082850101111561165557600080fd5b9250929050565b60008060008060006080868803121561167457600080fd5b853561167f8161158e565b9450602086013561168f8161158e565b9350604086013567ffffffffffffffff8111156116ab57600080fd5b6116b788828901611613565b96999598509660600135949350505050565b600080600080600080600060c0888a0312156116e457600080fd5b87356116ef8161158e565b965060208801356116ff8161158e565b9550604088013561170f8161158e565b9450606088013567ffffffffffffffff81111561172b57600080fd5b6117378a828b01611613565b989b979a50959895979660808701359660a0013595509350505050565b60006020828403121561176657600080fd5b81356117718161158e565b9392505050565b8035801515811461178857600080fd5b919050565b600080604083850312156117a057600080fd5b82356117ab8161158e565b91506117b960208401611778565b90509250929050565b60008060008060008060a087890312156117db57600080fd5b86356117e68161158e565b955060208701356117f68161158e565b9450604087013567ffffffffffffffff81111561181257600080fd5b61181e89828a01611613565b979a9699509760608101359660809091013595509350505050565b600060e0828403121561184b57600080fd5b50919050565b6000806000806000806000806101a0898b03121561186e57600080fd5b88356118798161158e565b975060208901356118898161158e565b965060408901356118998161158e565b9550606089013567ffffffffffffffff8111156118b557600080fd5b6118c18b828c01611613565b9096509450506080890135925060a089013591506118e28a60c08b01611839565b90509295985092959890939650565b6000806000806000806000610180888a03121561190d57600080fd5b87356119188161158e565b965060208801356119288161158e565b9550604088013567ffffffffffffffff81111561194457600080fd5b6119508a828b01611613565b90965094505060608801359250608088013591506119718960a08a01611839565b905092959891949750929550565b60006020828403121561199157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119c0576119c0611998565b500390565b8183823760009101908152919050565b803560ff8116811461178857600080fd5b600060e082840312156119f857600080fd5b60405160e0810181811067ffffffffffffffff82111715611a2957634e487b7160e01b600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152611a5260608401611778565b6060820152611a63608084016119d5565b608082015260a083013560a082015260c083013560c08201528091505092915050565b6000816000190483118215151615611aa057611aa0611998565b500290565b600082611ac257634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209870dd0dc3fb83baf72036a002768c9388c9b2cbf93b6d7b09369fddefaaf87764736f6c634300080b0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 1.30% | $4,062.04 | 0.2742 | $1,113.89 | |
ETH | 1.24% | $1 | 1,056.9698 | $1,056.97 | |
ETH | 1.13% | $4,068.28 | 0.237 | $964.23 | |
ETH | 1.11% | $0.009518 | 100,072.5699 | $952.49 | |
ETH | 1.10% | $17.98 | 52.4944 | $943.85 | |
ETH | 1.10% | $101,314 | 0.00930109 | $942.33 | |
ETH | 1.08% | $43.02 | 21.3769 | $919.64 | |
ETH | 1.06% | $286.27 | 3.1626 | $905.36 | |
ETH | 1.03% | $0.000022 | 40,022,417.5639 | $881.69 | |
ETH | 0.99% | $0.139528 | 6,089.7835 | $849.7 | |
ETH | 0.97% | <$0.000001 | 5,677,997,315.7125 | $828.12 | |
ETH | 0.87% | $1.04 | 714.4414 | $739.45 | |
ETH | 0.86% | $16.17 | 45.2239 | $731.27 | |
ETH | 0.83% | $4.99 | 142.8764 | $712.95 | |
ETH | 0.82% | $1.1 | 640.3371 | $701.17 | |
ETH | 0.81% | $2.04 | 339.4775 | $692.53 | |
ETH | 0.78% | $0.565359 | 1,177.8742 | $665.92 | |
ETH | 0.73% | $4,298.38 | 0.1448 | $622.38 | |
ETH | 0.68% | $7.2 | 80.1464 | $577.05 | |
ETH | 0.66% | $0.06138 | 9,238.2333 | $567.05 | |
ETH | 0.66% | $1.28 | 439.4802 | $563.13 | |
ETH | 0.60% | $0.342496 | 1,502.2355 | $514.51 | |
ETH | 0.58% | $1 | 496.4837 | $497.48 | |
ETH | 0.58% | $3.55 | 140 | $497 | |
ETH | 0.55% | $24.74 | 19.0917 | $472.33 | |
ETH | 0.55% | $0.742246 | 629.515 | $467.25 | |
ETH | 0.53% | $1.9 | 239.1876 | $454.46 | |
ETH | 0.53% | $4,062.04 | 0.1109 | $450.47 | |
ETH | 0.52% | $0.07911 | 5,612.7588 | $444.02 | |
ETH | 0.48% | $1.05 | 385.6221 | $406.06 | |
ETH | 0.47% | $0.055604 | 7,266.0904 | $404.02 | |
ETH | 0.47% | $0.397802 | 1,013.513 | $403.18 | |
ETH | 0.46% | $0.005074 | 77,624.1366 | $393.9 | |
ETH | 0.46% | $2,288.79 | 0.17 | $389.04 | |
ETH | 0.42% | $0.128578 | 2,770.2284 | $356.19 | |
ETH | 0.42% | $0.000595 | 597,549.5903 | $355.65 | |
ETH | 0.41% | $7.01 | 49.9705 | $350.29 | |
ETH | 0.41% | $90.2 | 3.8546 | $347.69 | |
ETH | 0.40% | $4.18 | 80.7746 | $337.64 | |
ETH | 0.39% | $10.72 | 31.0409 | $332.76 | |
ETH | 0.38% | $0.017324 | 18,924.4901 | $327.85 | |
ETH | 0.38% | $40.69 | 7.8905 | $321.07 | |
ETH | 0.37% | $0.032151 | 9,759.8421 | $313.78 | |
ETH | 0.36% | $0.032795 | 9,490.3884 | $311.24 | |
ETH | 0.35% | $0.075009 | 4,003.915 | $300.33 | |
ETH | 0.35% | $165.38 | 1.7875 | $295.61 | |
ETH | 0.34% | $0.113245 | 2,539.2362 | $287.56 | |
ETH | 0.32% | $0.156831 | 1,724.4714 | $270.45 | |
ETH | 0.31% | $0.001498 | 178,378.58 | $267.24 | |
ETH | 0.31% | $4.29 | 61.4028 | $263.42 | |
ETH | 0.31% | $0.439277 | 599.1552 | $263.2 | |
ETH | 0.29% | $8.18 | 30.6482 | $250.7 | |
ETH | 0.28% | $0.000114 | 2,088,435.1672 | $238.81 | |
ETH | 0.28% | $0.034643 | 6,863.6413 | $237.78 | |
ETH | 0.28% | $0.000019 | 12,278,225.1334 | $237.68 | |
ETH | 0.27% | $0.043128 | 5,310.8821 | $229.05 | |
ETH | 0.27% | $0.408438 | 557.8189 | $227.83 | |
ETH | 0.27% | $8.31 | 27.381 | $227.54 | |
ETH | 0.26% | $0.997096 | 224.8479 | $224.19 | |
ETH | 0.26% | $0.010961 | 20,266.329 | $222.13 | |
ETH | 0.24% | $0.42374 | 486.2397 | $206.04 | |
ETH | 0.24% | $0.103112 | 1,990.6114 | $205.26 | |
ETH | 0.23% | $3.12 | 64.2041 | $200.32 | |
ETH | 0.23% | $0.005173 | 37,817.5345 | $195.61 | |
ETH | 0.23% | $0.001809 | 106,967.0176 | $193.51 | |
ETH | 0.23% | $1.7 | 113.3919 | $192.77 | |
ETH | 0.22% | $0.177845 | 1,040.2208 | $185 | |
ETH | 0.21% | $7.35 | 24.923 | $183.06 | |
ETH | 0.21% | $0.362637 | 497.6559 | $180.47 | |
ETH | 0.21% | $0.21795 | 814.3841 | $177.5 | |
ETH | 0.21% | $101,543 | 0.00173289 | $175.96 | |
ETH | 0.20% | $0.000285 | 611,474.0651 | $174.23 | |
ETH | 0.20% | $0.003159 | 54,964.6146 | $173.62 | |
ETH | 0.20% | $0.000167 | 1,030,957.3616 | $172.14 | |
ETH | 0.20% | $0.195354 | 880.3323 | $171.98 | |
ETH | 0.20% | $0.006843 | 24,717.5802 | $169.15 | |
ETH | 0.20% | $2.56 | 65.7434 | $167.98 | |
ETH | 0.19% | $0.512177 | 323.8588 | $165.87 | |
ETH | 0.19% | $0.000134 | 1,203,486.4991 | $161.7 | |
ETH | 0.18% | $60.59 | 2.5837 | $156.54 | |
ETH | 0.18% | $0.049126 | 3,085.6486 | $151.59 | |
ETH | 0.17% | $0.000998 | 149,015.1081 | $148.75 | |
ETH | 0.17% | $51.47 | 2.8353 | $145.95 | |
ETH | 0.17% | $2.34 | 61.8364 | $144.7 | |
ETH | 0.17% | $0.294124 | 491.14 | $144.46 | |
ETH | 0.17% | $0.055095 | 2,616.895 | $144.18 | |
ETH | 0.17% | $4.01 | 35.1874 | $141.1 | |
ETH | 0.16% | $4,561.46 | 0.0307 | $140.22 | |
ETH | 0.16% | $0.937208 | 148.7541 | $139.41 | |
ETH | 0.16% | $4.39 | 31.6873 | $138.95 | |
ETH | 0.16% | $0.001689 | 82,127.7637 | $138.74 | |
ETH | 0.16% | $31.54 | 4.39 | $138.46 | |
ETH | 0.16% | $0.381052 | 360.4177 | $137.34 | |
ETH | 0.16% | $3.82 | 35.5316 | $135.73 | |
ETH | 0.16% | $2.58 | 51.4272 | $132.68 | |
ETH | 0.15% | $30.74 | 4.2401 | $130.34 | |
ETH | 0.15% | $9.68 | 13.0509 | $126.39 | |
ETH | 0.15% | $87.61 | 1.439 | $126.07 | |
ETH | 0.15% | $14.87 | 8.4466 | $125.6 | |
ETH | 0.15% | <$0.000001 | 9,392,523,220.4146 | $125.23 | |
ETH | 0.14% | $807.64 | 0.1507 | $121.71 | |
ETH | 0.14% | $0.017146 | 7,076.9271 | $121.34 | |
ETH | 0.14% | $1 | 119.6898 | $120.05 | |
ETH | 0.14% | $5 | 23.5536 | $117.77 | |
ETH | 0.14% | $0.059764 | 1,944.9824 | $116.24 | |
ETH | 0.14% | $6.83 | 16.981 | $115.98 | |
ETH | 0.13% | $0.036038 | 3,175.4235 | $114.43 | |
ETH | 0.13% | $0.45601 | 238.2716 | $108.65 | |
ETH | 0.13% | $0.001561 | 69,208.4875 | $108.07 | |
ETH | 0.12% | $2.39 | 44.3582 | $106.02 | |
ETH | 0.12% | $1 | 105.63 | $105.74 | |
ETH | 0.12% | $75.15 | 1.4008 | $105.27 | |
ETH | 0.12% | $0.682445 | 153.1909 | $104.54 | |
ETH | 0.12% | $0.024867 | 4,190.3572 | $104.2 | |
ETH | 0.12% | $2.15 | 47.3354 | $101.77 | |
ETH | 0.12% | $4,121.07 | 0.0246 | $101.5 | |
ETH | 0.12% | $0.808786 | 123.2419 | $99.68 | |
ETH | 0.12% | <$0.000001 | 4,467,158,276.8727 | $99.55 | |
ETH | 0.12% | $0.44246 | 223.2782 | $98.79 | |
ETH | 0.12% | $5,500.54 | 0.018 | $98.76 | |
ETH | 0.11% | $0.060626 | 1,591.493 | $96.49 | |
ETH | 0.11% | <$0.000001 | 54,661,125,756.009 | $96.37 | |
ETH | 0.11% | $0.529359 | 179.919 | $95.24 | |
ETH | 0.11% | <$0.000001 | 265,078,561.703 | $93.54 | |
ETH | 0.11% | $0.378799 | 246.5833 | $93.41 | |
ETH | 0.11% | $0.433719 | 215.2976 | $93.38 | |
ETH | 0.11% | $0.915113 | 100.5474 | $92.01 | |
ETH | 0.11% | $2.05 | 44.294 | $90.8 | |
ETH | 0.11% | <$0.000001 | 3,263,345,570.3515 | $90.03 | |
ETH | 0.11% | $740.75 | 0.1215 | $89.98 | |
ETH | 0.10% | $3.04 | 29.1707 | $88.68 | |
ETH | 0.10% | $0.000031 | 2,843,599.5691 | $88.52 | |
ETH | 0.10% | $0.086212 | 1,024.8002 | $88.35 | |
ETH | 0.10% | $1.87 | 46.92 | $87.74 | |
ETH | 0.10% | $0.766257 | 111.4068 | $85.37 | |
ETH | 0.10% | $0.007857 | 10,805.6588 | $84.89 | |
ETH | 0.10% | $0.142501 | 595.6903 | $84.89 | |
ETH | 0.10% | $0.001156 | 72,674.8363 | $84.04 | |
ETH | 0.10% | <$0.000001 | 285,190,437.4095 | $82.97 | |
ETH | 0.10% | $2.18 | 38.0418 | $82.93 | |
ETH | 0.10% | $0.897296 | 91.5206 | $82.12 | |
ETH | 0.10% | $0.540114 | 151.5644 | $81.86 | |
ETH | 0.10% | $1.78 | 45.8246 | $81.41 | |
ETH | 0.10% | $4,362.53 | 0.0186 | $81.19 | |
ETH | 0.09% | $0.100392 | 790.0738 | $79.32 | |
ETH | 0.09% | $0.062396 | 1,251.1028 | $78.06 | |
ETH | 0.09% | <$0.000001 | 5,776,584,157.1907 | $77.35 | |
ETH | 0.09% | $0.000005 | 16,204,046.4402 | $76.48 | |
ETH | 0.09% | $0.552005 | 136.5323 | $75.37 | |
ETH | 0.09% | $0.000194 | 385,603.7733 | $74.61 | |
ETH | 0.09% | <$0.000001 | 29,392,052,963.7812 | $73.85 | |
ETH | 0.09% | $0.403715 | 182.2103 | $73.56 | |
ETH | 0.08% | $20.67 | 3.4745 | $71.82 | |
ETH | 0.08% | $0.041604 | 1,707.9668 | $71.06 | |
ETH | 0.08% | $4,411.79 | 0.016 | $70.67 | |
ETH | 0.08% | $2.33 | 29.8754 | $69.61 | |
ETH | 0.08% | $0.155726 | 440.4965 | $68.6 | |
ETH | 0.08% | $0.63673 | 107.5811 | $68.5 | |
ETH | 0.08% | $1.68 | 40.6171 | $68.24 | |
ETH | 0.08% | $0.057637 | 1,178.7259 | $67.94 | |
ETH | 0.08% | $1.35 | 50.2758 | $67.87 | |
ETH | 0.08% | <$0.000001 | 3,145,000,000 | $66.82 | |
ETH | 0.08% | $0.000009 | 7,066,924.7656 | $65.09 | |
ETH | 0.08% | $0.014864 | 4,358.5888 | $64.78 | |
ETH | 0.08% | $0.262937 | 245.7323 | $64.61 | |
ETH | 0.08% | $4.78 | 13.5139 | $64.6 | |
ETH | 0.07% | $0.000012 | 5,100,000 | $63.39 | |
ETH | 0.07% | $0.221089 | 286.236 | $63.28 | |
ETH | 0.07% | $0.66344 | 94.8795 | $62.95 | |
ETH | 0.07% | $300.91 | 0.2061 | $62.02 | |
ETH | 0.07% | $0.624489 | 99.1015 | $61.89 | |
ETH | 0.07% | $0.000166 | 371,760.3657 | $61.65 | |
ETH | 0.07% | $0.000194 | 316,146.487 | $61.33 | |
ETH | 0.07% | $0.000044 | 1,383,129.8813 | $61.07 | |
ETH | 0.07% | $0.015913 | 3,818.7745 | $60.77 | |
ETH | 0.07% | $0.04511 | 1,335.7572 | $60.26 | |
ETH | 0.07% | $0.033524 | 1,779.1894 | $59.65 | |
ETH | 0.07% | $0.495701 | 119.2146 | $59.09 | |
ETH | 0.07% | $21.67 | 2.7018 | $58.55 | |
ETH | 0.07% | $52.75 | 1.1062 | $58.35 | |
ETH | 0.07% | $0.227231 | 256.4515 | $58.27 | |
ETH | 0.07% | $0.041739 | 1,387.7124 | $57.92 | |
ETH | 0.07% | $708.01 | 0.0815 | $57.71 | |
ETH | 0.07% | $23.08 | 2.4954 | $57.59 | |
ETH | 0.07% | $0.008116 | 7,072.691 | $57.4 | |
ETH | 0.07% | $0.170838 | 333.2373 | $56.93 | |
ETH | 0.07% | $0.000001 | 99,439,104.2921 | $56.88 | |
ETH | 0.07% | $0.031412 | 1,802.8186 | $56.63 | |
ETH | 0.07% | $1.24 | 45.5494 | $56.34 | |
ETH | 0.07% | $0.001573 | 35,772.4454 | $56.25 | |
ETH | 0.06% | $0.318421 | 173.7432 | $55.32 | |
ETH | 0.06% | $22.86 | 2.4021 | $54.92 | |
ETH | 0.06% | $0.09168 | 596.7992 | $54.71 | |
ETH | 0.06% | $0.059823 | 911.4718 | $54.53 | |
ETH | 0.06% | $0.409746 | 131.2734 | $53.79 | |
ETH | 0.06% | $71.34 | 0.7517 | $53.62 | |
ETH | 0.06% | $0.102754 | 520.3068 | $53.46 | |
ETH | 0.06% | $4,193.04 | 0.0127 | $53.31 | |
ETH | 0.06% | $1.61 | 33.0885 | $53.27 | |
ETH | 0.06% | $0.325232 | 162.948 | $53 | |
ETH | 0.06% | $0.00018 | 292,906.1057 | $52.59 | |
ETH | 0.06% | $60.72 | 0.85 | $51.61 | |
ETH | 0.06% | $0.2578 | 196.1699 | $50.57 | |
ETH | 0.06% | $0.751921 | 67.1918 | $50.52 | |
ETH | 0.06% | $0.094219 | 535.1523 | $50.42 | |
ETH | 0.06% | $0.312965 | 157.6266 | $49.33 | |
ETH | 0.06% | $0.552798 | 88.9039 | $49.15 | |
ETH | 0.06% | $1.97 | 24.9213 | $49.09 | |
ETH | 0.06% | $0.050537 | 969.8837 | $49.01 | |
ETH | 0.06% | <$0.000001 | 4,165,464,155.7912 | $48.98 | |
ETH | 0.06% | $1.22 | 40.1086 | $48.93 | |
ETH | 0.06% | $27.44 | 1.7748 | $48.7 | |
ETH | 0.06% | $15.5 | 3.1393 | $48.66 | |
ETH | 0.06% | $0.638929 | 76.0568 | $48.59 | |
ETH | 0.06% | $97,130 | 0.00049705 | $48.28 | |
ETH | 0.06% | $0.018228 | 2,627.7562 | $47.9 | |
ETH | 0.06% | $0.00414 | 11,530.2011 | $47.73 | |
ETH | 0.06% | $0.579352 | 81.4294 | $47.18 | |
ETH | 0.05% | $0.198266 | 236.9665 | $46.98 | |
ETH | 0.05% | $1 | 46.9404 | $46.94 | |
ETH | 0.05% | $0.005288 | 8,855.2051 | $46.83 | |
ETH | 0.05% | $0.638589 | 72.7191 | $46.44 | |
ETH | 0.05% | $0.505352 | 90.9373 | $45.96 | |
ETH | 0.05% | $1.06 | 43.514 | $45.95 | |
ETH | 0.05% | $1.18 | 38.8922 | $45.89 | |
ETH | 0.05% | $1.41 | 32.4728 | $45.88 | |
ETH | 0.05% | $0.000003 | 17,269,888.3361 | $45.77 | |
ETH | 0.05% | $2.06 | 21.9645 | $45.25 | |
ETH | 0.05% | $4,802.83 | 0.00938585 | $45.08 | |
ETH | 0.05% | $1.55 | 29.0874 | $45.07 | |
ETH | 0.05% | $0.18346 | 244.6315 | $44.88 | |
ETH | 0.05% | $0.000096 | 463,445.8148 | $44.58 | |
ETH | 0.05% | $0.039698 | 1,114.494 | $44.24 | |
ETH | 0.05% | $0.029009 | 1,515.3836 | $43.96 | |
ETH | 0.05% | $0.375299 | 116.4511 | $43.7 | |
ETH | 0.05% | $3.79 | 11.5217 | $43.67 | |
ETH | 0.05% | $0.049429 | 882.7456 | $43.63 | |
ETH | 0.05% | $34.57 | 1.2538 | $43.34 | |
ETH | 0.05% | <$0.000001 | 342,611,860.1877 | $43.28 | |
ETH | 0.05% | $0.715312 | 60.3479 | $43.17 | |
ETH | 0.05% | $1.62 | 26.6285 | $43.14 | |
ETH | 0.05% | $0.18921 | 226.6825 | $42.89 | |
ETH | 0.05% | $9.5 | 4.4969 | $42.72 | |
ETH | 0.05% | $0.200471 | 211.9871 | $42.5 | |
ETH | 0.05% | $0.080668 | 523.9912 | $42.27 | |
ETH | 0.05% | $0.094664 | 441.15 | $41.76 | |
ETH | 0.05% | $11.62 | 3.5354 | $41.09 | |
ETH | 0.05% | $0.60241 | 68 | $40.96 | |
ETH | 0.05% | $0.010477 | 3,882.2334 | $40.67 | |
ETH | 0.05% | $0.036655 | 1,109.1696 | $40.66 | |
ETH | 0.05% | $0.000843 | 48,181.4751 | $40.6 | |
ETH | 0.05% | $8.03 | 5.0534 | $40.58 | |
ETH | 0.05% | $0.453758 | 88.8848 | $40.33 | |
ETH | 0.05% | $0.000001 | 30,117,171.4168 | $39.75 | |
ETH | 0.05% | $2.41 | 16.4808 | $39.72 | |
ETH | 0.05% | $1.57 | 25.2179 | $39.59 | |
ETH | 0.05% | $3.95 | 9.9501 | $39.3 | |
ETH | 0.05% | $0.186572 | 209.8126 | $39.15 | |
ETH | 0.05% | $0.189779 | 204.9261 | $38.89 | |
ETH | 0.05% | <$0.000001 | 7,081,470,123.6697 | $38.88 | |
ETH | 0.05% | $0.126416 | 307.0993 | $38.82 | |
ETH | 0.04% | $2.27 | 16.9215 | $38.41 | |
ETH | 0.04% | $0.999892 | 37.515 | $37.51 | |
ETH | 0.04% | $1.66 | 22.3142 | $37.04 | |
ETH | 0.04% | <$0.000001 | 4,990,740,794.7702 | $36.6 | |
ETH | 0.04% | $0.124888 | 292.9458 | $36.59 | |
ETH | 0.04% | $0.199775 | 182.1424 | $36.39 | |
ETH | 0.04% | $1,018.71 | 0.0354 | $36.08 | |
ETH | 0.04% | <$0.000001 | 11,101,258,362.6911 | $35.73 | |
ETH | 0.04% | $0.31162 | 114.5435 | $35.69 | |
ETH | 0.04% | $1.06 | 33.6239 | $35.54 | |
ETH | 0.04% | $0.000372 | 95,400.719 | $35.45 | |
ETH | 0.04% | $0.119911 | 294.6812 | $35.34 | |
ETH | 0.04% | $69.29 | 0.5095 | $35.31 | |
ETH | 0.04% | <$0.000001 | 144,355,427.6863 | $34.93 | |
ETH | 0.04% | $0.123053 | 275.7644 | $33.93 | |
ETH | 0.04% | $0.04635 | 729.6875 | $33.82 | |
ETH | 0.04% | $0.129905 | 259.0019 | $33.65 | |
ETH | 0.04% | $0.295034 | 112.6765 | $33.24 | |
ETH | 0.04% | <$0.000001 | 207,963,637,365.3179 | $33.17 | |
ETH | 0.04% | $0.0118 | 2,796.5 | $33 | |
ETH | 0.04% | $0.025882 | 1,264.7357 | $32.73 | |
ETH | 0.04% | $2.45 | 13.2061 | $32.35 | |
ETH | 0.04% | $0.000044 | 738,965.8859 | $32.2 | |
ETH | 0.04% | $0.045984 | 694.9693 | $31.96 | |
ETH | 0.04% | $0.060692 | 518.9466 | $31.5 | |
ETH | 0.04% | $1.25 | 25.1564 | $31.45 | |
ETH | 0.04% | $0.208919 | 149.3154 | $31.19 | |
ETH | 0.04% | $0.000019 | 1,615,000 | $31.14 | |
ETH | 0.04% | $0.004004 | 7,682.2161 | $30.76 | |
ETH | 0.04% | <$0.000001 | 162,620,772.6804 | $30.7 | |
ETH | 0.04% | $0.888918 | 34.3336 | $30.52 | |
ETH | 0.04% | $1.17 | 25.9621 | $30.38 | |
ETH | 0.03% | $344.68 | 0.0863 | $29.76 | |
ETH | 0.03% | $0.228068 | 129.6682 | $29.57 | |
ETH | 0.03% | $0.296221 | 99.4944 | $29.47 | |
ETH | 0.03% | $3.98 | 7.375 | $29.35 | |
ETH | 0.03% | $1.91 | 15.2304 | $29.16 | |
ETH | 0.03% | $0.008338 | 3,482.9731 | $29.04 | |
ETH | 0.03% | $0.008816 | 3,258.8715 | $28.73 | |
ETH | 0.03% | $0.152052 | 188.6062 | $28.68 | |
ETH | 0.03% | <$0.000001 | 356,069,519.797 | $28.58 | |
ETH | 0.03% | $0.073327 | 386.4744 | $28.34 | |
ETH | 0.03% | $4,094.02 | 0.00687596 | $28.15 | |
ETH | 0.03% | $0.450063 | 62.3784 | $28.07 | |
ETH | 0.03% | $0.000007 | 4,231,649.1669 | $28.01 | |
ETH | 0.03% | $9.26 | 3.0056 | $27.83 | |
ETH | 0.03% | $0.000027 | 1,024,412.4254 | $27.44 | |
ETH | 0.03% | $0.035836 | 764.0285 | $27.38 | |
ETH | 0.03% | $0.031094 | 878.6853 | $27.32 | |
ETH | 0.03% | $0.071994 | 378.7128 | $27.26 | |
ETH | 0.03% | $0.00001 | 2,578,319.0915 | $27.05 | |
ETH | 0.03% | $0.938611 | 28.7077 | $26.95 | |
ETH | 0.03% | $0.066495 | 403.75 | $26.85 | |
ETH | 0.03% | $39.77 | 0.6718 | $26.72 | |
ETH | 0.03% | <$0.000001 | 4,506,919,451.0494 | $26.68 | |
ETH | 0.03% | <$0.000001 | 8,919,063,978.8323 | $26.57 | |
ETH | 0.03% | $0.00555 | 4,742 | $26.32 | |
ETH | 0.03% | $119.34 | 0.2202 | $26.27 | |
ETH | 0.03% | $0.082386 | 318.7796 | $26.26 | |
ETH | 0.03% | $0.319417 | 81.3534 | $25.99 | |
ETH | 0.03% | $1.01 | 25.5 | $25.84 | |
ETH | 0.03% | $286.27 | 0.0902 | $25.82 | |
ETH | 0.03% | $1.44 | 17.9248 | $25.81 | |
ETH | 0.03% | $0.804521 | 31.518 | $25.36 | |
ETH | 0.03% | $0.795838 | 31.828 | $25.33 | |
ETH | 0.03% | $2.3 | 10.9791 | $25.22 | |
ETH | 0.03% | $0.029193 | 856.0834 | $24.99 | |
ETH | 0.03% | $4.34 | 5.7286 | $24.86 | |
ETH | 0.03% | $0.054397 | 455.2901 | $24.77 | |
ETH | 0.03% | $0.164334 | 147.0737 | $24.17 | |
ETH | 0.03% | $0.158657 | 151.7083 | $24.07 | |
ETH | 0.03% | $0.000037 | 649,267.3695 | $23.97 | |
ETH | 0.03% | $14.13 | 1.6928 | $23.92 | |
ETH | 0.03% | $0.002967 | 7,954.6727 | $23.6 | |
ETH | 0.03% | $1.79 | 13.0639 | $23.38 | |
ETH | 0.03% | $0.143572 | 157.6224 | $22.63 | |
ETH | 0.03% | $0.026432 | 840.1892 | $22.21 | |
ETH | 0.03% | $0.161212 | 137.5795 | $22.18 | |
ETH | 0.03% | $0.00117 | 18,897.0545 | $22.1 | |
ETH | 0.03% | <$0.000001 | 1,478,453,390.7652 | $21.64 | |
ETH | 0.03% | $0.130666 | 165.2376 | $21.59 | |
ETH | 0.03% | $0.00858 | 2,503.1397 | $21.48 | |
ETH | 0.02% | $0.000017 | 1,246,243.3632 | $21.34 | |
ETH | 0.02% | $147.44 | 0.1441 | $21.24 | |
ETH | 0.02% | $0.246931 | 85.9125 | $21.21 | |
ETH | 0.02% | $0.272766 | 77.0389 | $21.01 | |
ETH | 0.02% | $2.89 | 7.2655 | $21 | |
ETH | 0.02% | $0.018174 | 1,146.9006 | $20.84 | |
ETH | 0.02% | $0.001166 | 17,757.435 | $20.71 | |
ETH | 0.02% | $1.06 | 19.4603 | $20.71 | |
ETH | 0.02% | $0.077661 | 264.8101 | $20.57 | |
ETH | 0.02% | $1.6 | 12.8561 | $20.54 | |
ETH | 0.02% | $30.13 | 0.6802 | $20.5 | |
ETH | 0.02% | $0.0009 | 22,723.3983 | $20.45 | |
ETH | 0.02% | $0.118682 | 172.1809 | $20.43 | |
ETH | 0.02% | $0.997711 | 20.4 | $20.35 | |
ETH | 0.02% | $0.000012 | 1,681,806.9129 | $20.06 | |
ETH | 0.02% | $0.030297 | 654.791 | $19.84 | |
ETH | 0.02% | <$0.000001 | 339,530,579.0159 | $19.7 | |
ETH | 0.02% | $1.34 | 14.6193 | $19.59 | |
ETH | 0.02% | $0.080218 | 243.4551 | $19.53 | |
ETH | 0.02% | $0.567816 | 34.3858 | $19.52 | |
ETH | 0.02% | $0.000398 | 48,922.9096 | $19.49 | |
ETH | 0.02% | $1.51 | 12.8178 | $19.35 | |
ETH | 0.02% | $0.011947 | 1,604.7358 | $19.17 | |
ETH | 0.02% | $21.73 | 0.8754 | $19.02 | |
ETH | 0.02% | $10.15 | 1.8662 | $18.94 | |
ETH | 0.02% | $0.135729 | 139.381 | $18.92 | |
ETH | 0.02% | $0.01073 | 1,757.0218 | $18.85 | |
ETH | 0.02% | $2,210.07 | 0.0085 | $18.79 | |
ETH | 0.02% | $0.000014 | 1,367,387.0142 | $18.62 | |
ETH | 0.02% | $0.000045 | 410,842.4947 | $18.4 | |
ETH | 0.02% | $0.001041 | 17,622.9241 | $18.35 | |
ETH | 0.02% | $0.000006 | 2,821,772.7631 | $18.18 | |
ETH | 0.02% | $61.46 | 0.2951 | $18.14 | |
ETH | 0.02% | <$0.000001 | 64,314,650,040.1513 | $18.13 | |
ETH | 0.02% | $0.127803 | 141.4624 | $18.08 | |
ETH | 0.02% | $0.001532 | 11,741.1425 | $17.99 | |
ETH | 0.02% | $0.017167 | 1,040.108 | $17.86 | |
ETH | 0.02% | $0.000002 | 11,341,031.7736 | $17.75 | |
ETH | 0.02% | $0.001607 | 11,011.0086 | $17.7 | |
ETH | 0.02% | $299.87 | 0.0588 | $17.63 | |
ETH | 0.02% | $4,279.38 | 0.0041021 | $17.55 | |
ETH | 0.02% | $1.13 | 15.4118 | $17.42 | |
ETH | 0.02% | $0.997528 | 17.4445 | $17.4 | |
ETH | 0.02% | $0.000049 | 350,954.5206 | $17.34 | |
ETH | 0.02% | $0.64976 | 26.5815 | $17.27 | |
ETH | 0.02% | $0.127015 | 135.6043 | $17.22 | |
ETH | 0.02% | $0.133744 | 128.4472 | $17.18 | |
ETH | 0.02% | $1.29 | 13.3023 | $17.12 | |
ETH | 0.02% | $7.37 | 2.3029 | $16.97 | |
ETH | 0.02% | $395.96 | 0.0427 | $16.93 | |
ETH | 0.02% | $0.79641 | 21.222 | $16.9 | |
ETH | 0.02% | $46.02 | 0.3668 | $16.88 | |
ETH | 0.02% | $0.961955 | 17.4419 | $16.78 | |
ETH | 0.02% | $0.018131 | 916.3084 | $16.61 | |
ETH | 0.02% | $0.940154 | 17.3834 | $16.34 | |
ETH | 0.02% | $0.000285 | 57,419.0543 | $16.34 | |
ETH | 0.02% | $0.16649 | 97.9659 | $16.31 | |
ETH | 0.02% | $0.030369 | 531.0794 | $16.13 | |
ETH | 0.02% | $0.002054 | 7,843.2438 | $16.11 | |
ETH | 0.02% | $0.001369 | 11,767.4767 | $16.11 | |
ETH | 0.02% | $0.066393 | 241.6061 | $16.04 | |
ETH | 0.02% | $0.000732 | 21,886.5786 | $16.02 | |
ETH | 0.02% | <$0.000001 | 34,528,094.327 | $15.98 | |
ETH | 0.02% | $1.05 | 15.0835 | $15.9 | |
ETH | 0.02% | $0.000009 | 1,708,911.1146 | $15.76 | |
ETH | 0.02% | <$0.000001 | 391,718,019.443 | $15.71 | |
ETH | 0.02% | $0.000006 | 2,849,219.0696 | $15.67 | |
ETH | 0.02% | $0.014833 | 1,037.0734 | $15.38 | |
ETH | 0.02% | $6.62 | 2.3202 | $15.36 | |
ETH | 0.02% | $0.07725 | 197.7433 | $15.28 | |
ETH | 0.02% | $0.882821 | 17.3016 | $15.27 | |
ETH | 0.02% | $1.79 | 8.5262 | $15.26 | |
ETH | 0.02% | $22.69 | 0.6708 | $15.22 | |
ETH | 0.02% | $0.340264 | 44.4613 | $15.13 | |
ETH | 0.02% | $0.705046 | 21.3544 | $15.06 | |
ETH | 0.02% | $0.218493 | 68.3036 | $14.92 | |
ETH | 0.02% | $0.220226 | 67.6776 | $14.9 | |
ETH | 0.02% | $0.010102 | 1,472.9484 | $14.88 | |
ETH | 0.02% | $0.000003 | 5,927,265.0688 | $14.86 | |
ETH | 0.02% | $0.056006 | 265.1651 | $14.85 | |
ETH | 0.02% | $0.000007 | 2,012,873.2416 | $14.46 | |
ETH | 0.02% | $3.65 | 3.9502 | $14.42 | |
ETH | 0.02% | $0.081783 | 175.2049 | $14.33 | |
ETH | 0.02% | $0.000007 | 2,069,299.4659 | $14.09 | |
ETH | 0.02% | $0.008354 | 1,679.0344 | $14.03 | |
ETH | 0.02% | $1.97 | 7.0961 | $13.98 | |
ETH | 0.02% | $0.000001 | 20,919,539.5734 | $13.86 | |
ETH | 0.02% | <$0.000001 | 2,107,716,428.8369 | $13.82 | |
ETH | 0.02% | $0.000001 | 10,866,821.9193 | $13.71 | |
ETH | 0.02% | $100,161 | 0.000136 | $13.62 | |
ETH | 0.02% | $28.02 | 0.4833 | $13.54 | |
ETH | 0.02% | $0.068176 | 197.2707 | $13.45 | |
ETH | 0.02% | $0.000319 | 41,660.9815 | $13.29 | |
ETH | 0.02% | $1.09 | 12.1527 | $13.23 | |
ETH | 0.02% | $0.659849 | 20.0488 | $13.23 | |
ETH | 0.02% | $0.146076 | 90.3645 | $13.2 | |
ETH | 0.02% | $3.57 | 3.6826 | $13.15 | |
ETH | 0.02% | $0.469 | 27.9004 | $13.09 | |
ETH | 0.02% | <$0.000001 | 698,158,398.8623 | $12.86 | |
ETH | 0.02% | $2.53 | 5.0745 | $12.84 | |
ETH | 0.01% | $0.007138 | 1,785.7464 | $12.75 | |
ETH | 0.01% | $0.000088 | 144,202 | $12.7 | |
ETH | 0.01% | $2.03 | 6.2352 | $12.67 | |
ETH | 0.01% | $0.237588 | 53.1575 | $12.63 | |
ETH | 0.01% | $0.021896 | 573.359 | $12.55 | |
ETH | 0.01% | $0.000001 | 13,228,765.685 | $12.53 | |
ETH | 0.01% | $0.000004 | 3,469,908.2107 | $12.47 | |
ETH | 0.01% | $1.79 | 6.9557 | $12.44 | |
ETH | 0.01% | $0.324561 | 38.25 | $12.41 | |
ETH | 0.01% | $0.006893 | 1,790.8883 | $12.34 | |
ETH | 0.01% | $4.14 | 2.9724 | $12.31 | |
ETH | 0.01% | $0.726323 | 16.9167 | $12.29 | |
ETH | 0.01% | $1.4 | 8.721 | $12.21 | |
ETH | 0.01% | $0.189884 | 63.7899 | $12.11 | |
ETH | 0.01% | $0.278257 | 43.4557 | $12.09 | |
ETH | 0.01% | $1.03 | 11.6746 | $12.07 | |
ETH | 0.01% | $0.011619 | 1,030.5698 | $11.97 | |
ETH | 0.01% | $0.013994 | 850.6958 | $11.9 | |
ETH | 0.01% | $0.142582 | 83.4828 | $11.9 | |
ETH | 0.01% | $0.000887 | 13,349.7064 | $11.84 | |
ETH | 0.01% | <$0.000001 | 24,463,879.9844 | $11.71 | |
ETH | 0.01% | $0.268705 | 43.4467 | $11.67 | |
ETH | 0.01% | $0.015486 | 752.3071 | $11.65 | |
ETH | 0.01% | $0.00308 | 3,776.8312 | $11.63 | |
ETH | 0.01% | <$0.000001 | 2,961,021,515.9471 | $11.39 | |
ETH | 0.01% | $0.010888 | 1,044.6496 | $11.37 | |
ETH | 0.01% | $0.000007 | 1,717,283.8027 | $11.28 | |
ETH | 0.01% | $0.030572 | 366.3789 | $11.2 | |
ETH | 0.01% | $0.020374 | 549.5251 | $11.2 | |
ETH | 0.01% | $0.092919 | 120.1535 | $11.16 | |
ETH | 0.01% | $20.12 | 0.5464 | $10.99 | |
ETH | 0.01% | $1.82 | 6.0313 | $10.98 | |
ETH | 0.01% | $0.002456 | 4,462.5 | $10.96 | |
ETH | 0.01% | $0.991298 | 11.05 | $10.95 | |
ETH | 0.01% | $0.000741 | 14,737.2924 | $10.92 | |
ETH | 0.01% | $0.02168 | 498.3646 | $10.8 | |
ETH | 0.01% | $0.476074 | 22.4546 | $10.69 | |
ETH | 0.01% | $0.061346 | 172.5298 | $10.58 | |
ETH | 0.01% | $0.049174 | 215.2231 | $10.58 | |
ETH | 0.01% | $0.116831 | 90.1801 | $10.54 | |
ETH | 0.01% | $0.016312 | 644.573 | $10.51 | |
ETH | 0.01% | $0.000236 | 44,440.4202 | $10.49 | |
ETH | 0.01% | $0.343879 | 29.892 | $10.28 | |
ETH | 0.01% | $0.000602 | 17,000 | $10.23 | |
ETH | 0.01% | $0.155117 | 65.6242 | $10.18 | |
ETH | 0.01% | $0.067223 | 150.2847 | $10.1 | |
ETH | 0.01% | <$0.000001 | 68,308,654.7935 | $10.06 | |
ETH | 0.01% | $0.088442 | 112.764 | $9.97 | |
ETH | 0.01% | $0.089935 | 110.5595 | $9.94 | |
ETH | 0.01% | $0.001041 | 9,469.7797 | $9.86 | |
ETH | 0.01% | $0.001499 | 6,445.7955 | $9.66 | |
ETH | 0.01% | $0.714134 | 13.4686 | $9.62 | |
ETH | 0.01% | $1.75 | 5.409 | $9.47 | |
ETH | 0.01% | $0.015587 | 605.0379 | $9.43 | |
ETH | 0.01% | $0.004318 | 2,181.1569 | $9.42 | |
ETH | 0.01% | $0.155117 | 60.6372 | $9.41 | |
ETH | 0.01% | $4.05 | 2.2744 | $9.22 | |
ETH | 0.01% | $0.002336 | 3,913.5125 | $9.14 | |
ETH | 0.01% | $0.044729 | 204.4054 | $9.14 | |
ETH | 0.01% | $0.000411 | 22,117.3202 | $9.1 | |
ETH | 0.01% | $0.011821 | 765 | $9.04 | |
ETH | 0.01% | $0.53256 | 16.8272 | $8.96 | |
ETH | 0.01% | $1.71 | 5.18 | $8.86 | |
ETH | 0.01% | $0.000002 | 4,141,027.3347 | $8.82 | |
ETH | 0.01% | $0.014229 | 613.5748 | $8.73 | |
ETH | 0.01% | $0.324898 | 26.7391 | $8.69 | |
ETH | 0.01% | $0.511873 | 16.8839 | $8.64 | |
ETH | 0.01% | $0.996466 | 8.6445 | $8.61 | |
ETH | 0.01% | $0.001772 | 4,847.4202 | $8.59 | |
ETH | <0.01% | $0.163938 | 51.8083 | $8.49 | |
ETH | <0.01% | <$0.000001 | 812,807,335.3001 | $8.49 | |
ETH | <0.01% | <$0.000001 | 18,766,116.756 | $8.42 | |
ETH | <0.01% | $0.131898 | 63.7025 | $8.4 | |
ETH | <0.01% | $0.000966 | 8,666.3326 | $8.37 | |
ETH | <0.01% | $18.23 | 0.459 | $8.37 | |
ETH | <0.01% | $0.490146 | 17 | $8.33 | |
ETH | <0.01% | $0.341011 | 24.3644 | $8.31 | |
ETH | <0.01% | <$0.000001 | 387,906,250.7352 | $8.19 | |
ETH | <0.01% | $2,640.2 | 0.0031 | $8.18 | |
ETH | <0.01% | $0.047952 | 170.5927 | $8.18 | |
ETH | <0.01% | $0.002051 | 3,982.8467 | $8.17 | |
ETH | <0.01% | $0.124742 | 65.3668 | $8.15 | |
ETH | <0.01% | $0.000012 | 653,076.867 | $8.13 | |
ETH | <0.01% | $0.037777 | 213.3868 | $8.06 | |
ETH | <0.01% | $0.079107 | 101.62 | $8.04 | |
ETH | <0.01% | $0.006897 | 1,156.3202 | $7.98 | |
ETH | <0.01% | $0.341483 | 23.3237 | $7.96 | |
ETH | <0.01% | $0.000004 | 2,125,000.0085 | $7.92 | |
ETH | <0.01% | $0.226069 | 35.005 | $7.91 | |
ETH | <0.01% | $346.26 | 0.0226 | $7.81 | |
ETH | <0.01% | $0.001608 | 4,806.9331 | $7.73 | |
ETH | <0.01% | $0.481265 | 16.0073 | $7.7 | |
ETH | <0.01% | $0.117571 | 65.5194 | $7.7 | |
ETH | <0.01% | $0.010742 | 710.4542 | $7.63 | |
ETH | <0.01% | $0.000001 | 7,576,862.9719 | $7.56 | |
ETH | <0.01% | $0.380352 | 19.7277 | $7.5 | |
ETH | <0.01% | <$0.000001 | 65,995,421.5601 | $7.45 | |
ETH | <0.01% | $0.580648 | 12.7434 | $7.4 | |
ETH | <0.01% | $3.08 | 2.3903 | $7.37 | |
ETH | <0.01% | $0.000007 | 1,107,700.41 | $7.32 | |
ETH | <0.01% | $0.003885 | 1,882.7364 | $7.31 | |
ETH | <0.01% | $0.326828 | 22.2203 | $7.26 | |
ETH | <0.01% | $0.999201 | 7.225 | $7.22 | |
ETH | <0.01% | $0.161532 | 44.622 | $7.21 | |
ETH | <0.01% | $0.000424 | 16,807.8605 | $7.13 | |
ETH | <0.01% | $4,063.8 | 0.0017502 | $7.11 | |
ETH | <0.01% | $0.000048 | 148,556.2803 | $7.07 | |
ETH | <0.01% | $0.132771 | 53.2755 | $7.07 | |
ETH | <0.01% | $0.652436 | 10.6038 | $6.92 | |
ETH | <0.01% | $0.000812 | 8,500.0076 | $6.9 | |
ETH | <0.01% | $0.053316 | 127.8821 | $6.82 | |
ETH | <0.01% | $0.000585 | 11,625.6176 | $6.8 | |
ETH | <0.01% | <$0.000001 | 2,899,880,472.6245 | $6.78 | |
ETH | <0.01% | $0.542595 | 12.4025 | $6.73 | |
ETH | <0.01% | $0.014362 | 462.5766 | $6.64 | |
ETH | <0.01% | $0.048295 | 137.4568 | $6.64 | |
ETH | <0.01% | $0.03228 | 205.2317 | $6.62 | |
ETH | <0.01% | $0.172484 | 38.3186 | $6.61 | |
ETH | <0.01% | $0.4028 | 16.362 | $6.59 | |
ETH | <0.01% | $0.037541 | 174.0484 | $6.53 | |
ETH | <0.01% | $0.014285 | 455.6313 | $6.51 | |
ETH | <0.01% | $0.51615 | 12.5729 | $6.49 | |
ETH | <0.01% | $0.373469 | 17.3575 | $6.48 | |
ETH | <0.01% | <$0.000001 | 45,050,000,000 | $6.48 | |
ETH | <0.01% | $0.812192 | 7.9419 | $6.45 | |
ETH | <0.01% | $0.000001 | 5,510,495.5947 | $6.45 | |
ETH | <0.01% | $0.006638 | 970.9301 | $6.44 | |
ETH | <0.01% | $2.33 | 2.7558 | $6.42 | |
ETH | <0.01% | $1 | 6.3998 | $6.4 | |
ETH | <0.01% | $0.716109 | 8.8828 | $6.36 | |
ETH | <0.01% | $0.02574 | 246.7015 | $6.35 | |
ETH | <0.01% | $0.073829 | 85.8784 | $6.34 | |
ETH | <0.01% | $14.28 | 0.4439 | $6.34 | |
ETH | <0.01% | $4,116.11 | 0.00152387 | $6.27 | |
ETH | <0.01% | $0.000002 | 3,339,918.1582 | $6.27 | |
ETH | <0.01% | $26.17 | 0.2372 | $6.21 | |
ETH | <0.01% | $0.729706 | 8.5 | $6.2 | |
ETH | <0.01% | $0.060501 | 101.329 | $6.13 | |
ETH | <0.01% | $0.057767 | 105.9919 | $6.12 | |
ETH | <0.01% | $49.13 | 0.1241 | $6.1 | |
ETH | <0.01% | $3.31 | 1.802 | $5.96 | |
ETH | <0.01% | $2.32 | 2.55 | $5.91 | |
ETH | <0.01% | $1 | 5.8668 | $5.87 | |
ETH | <0.01% | $0.821703 | 7.14 | $5.87 | |
ETH | <0.01% | $0.189296 | 30.9019 | $5.85 | |
ETH | <0.01% | $5.41 | 1.0754 | $5.82 | |
ETH | <0.01% | $0.00823 | 703.8663 | $5.79 | |
ETH | <0.01% | $0.002915 | 1,971.24 | $5.75 | |
ETH | <0.01% | $0.161679 | 35.3823 | $5.72 | |
ETH | <0.01% | $0.002682 | 2,125 | $5.7 | |
ETH | <0.01% | $1.19 | 4.7165 | $5.61 | |
ETH | <0.01% | $0.00623 | 893.7925 | $5.57 | |
ETH | <0.01% | $1.05 | 5.2942 | $5.54 | |
ETH | <0.01% | $0.029539 | 187.144 | $5.53 | |
ETH | <0.01% | $2.7 | 2.0351 | $5.49 | |
ETH | <0.01% | $0.033034 | 165.7857 | $5.48 | |
ETH | <0.01% | $9.45 | 0.5792 | $5.47 | |
ETH | <0.01% | $0.025942 | 209.8799 | $5.44 | |
ETH | <0.01% | <$0.000001 | 3,665,333,705.4162 | $5.43 | |
ETH | <0.01% | <$0.000001 | 204,000,000 | $5.37 | |
ETH | <0.01% | $0.010326 |