More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 795 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Rescue | 21120319 | 75 days ago | IN | 0 ETH | 0.00023539 | ||||
Increase Liquidi... | 21120058 | 75 days ago | IN | 0 ETH | 0.00113099 | ||||
Increase Liquidi... | 21119984 | 75 days ago | IN | 0 ETH | 0.0008803 | ||||
Increase Liquidi... | 21119883 | 75 days ago | IN | 0 ETH | 0.00093085 | ||||
Increase Liquidi... | 21119781 | 75 days ago | IN | 0 ETH | 0.00091343 | ||||
Increase Liquidi... | 21119680 | 75 days ago | IN | 0 ETH | 0.00088409 | ||||
Collect | 21119679 | 75 days ago | IN | 0 ETH | 0.00012012 | ||||
Increase Liquidi... | 21119578 | 75 days ago | IN | 0 ETH | 0.00070569 | ||||
Increase Liquidi... | 21119478 | 76 days ago | IN | 0 ETH | 0.000789 | ||||
Increase Liquidi... | 21119379 | 76 days ago | IN | 0 ETH | 0.00064983 | ||||
Increase Liquidi... | 21119278 | 76 days ago | IN | 0 ETH | 0.00064107 | ||||
Collect | 21119277 | 76 days ago | IN | 0 ETH | 0.00009069 | ||||
Increase Liquidi... | 21119177 | 76 days ago | IN | 0 ETH | 0.00075501 | ||||
Increase Liquidi... | 21119077 | 76 days ago | IN | 0 ETH | 0.00082781 | ||||
Increase Liquidi... | 21118976 | 76 days ago | IN | 0 ETH | 0.00128382 | ||||
Increase Liquidi... | 21118876 | 76 days ago | IN | 0 ETH | 0.00092664 | ||||
Increase Liquidi... | 21118775 | 76 days ago | IN | 0 ETH | 0.00113115 | ||||
Collect | 21118774 | 76 days ago | IN | 0 ETH | 0.00016697 | ||||
Increase Liquidi... | 21118675 | 76 days ago | IN | 0 ETH | 0.00109345 | ||||
Increase Liquidi... | 21118575 | 76 days ago | IN | 0 ETH | 0.00126504 | ||||
Collect | 21118573 | 76 days ago | IN | 0 ETH | 0.00018806 | ||||
Increase Liquidi... | 21118474 | 76 days ago | IN | 0 ETH | 0.00105459 | ||||
Increase Liquidi... | 21118374 | 76 days ago | IN | 0 ETH | 0.00142196 | ||||
Increase Liquidi... | 21118274 | 76 days ago | IN | 0 ETH | 0.00123673 | ||||
Increase Liquidi... | 21118173 | 76 days ago | IN | 0 ETH | 0.00114571 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
21120319 | 75 days ago | 251.39046675 ETH | ||||
21120058 | 75 days ago | 251.39046675 ETH | ||||
21120058 | 75 days ago | 251.48953558 ETH | ||||
21120058 | 75 days ago | 0.1 ETH | ||||
21119984 | 75 days ago | 251.58953558 ETH | ||||
21119984 | 75 days ago | 251.6886054 ETH | ||||
21119984 | 75 days ago | 0.1 ETH | ||||
21119883 | 75 days ago | 251.7886054 ETH | ||||
21119883 | 75 days ago | 251.88767785 ETH | ||||
21119883 | 75 days ago | 0.1 ETH | ||||
21119781 | 75 days ago | 251.98767785 ETH | ||||
21119781 | 75 days ago | 252.08675041 ETH | ||||
21119781 | 75 days ago | 0.1 ETH | ||||
21119680 | 75 days ago | 252.18675041 ETH | ||||
21119680 | 75 days ago | 252.28582303 ETH | ||||
21119680 | 75 days ago | 0.1 ETH | ||||
21119679 | 75 days ago | 1.7022 ETH | ||||
21119578 | 75 days ago | 250.68362303 ETH | ||||
21119578 | 75 days ago | 250.7826953 ETH | ||||
21119578 | 75 days ago | 0.1 ETH | ||||
21119478 | 76 days ago | 250.8826953 ETH | ||||
21119478 | 76 days ago | 250.98176814 ETH | ||||
21119478 | 76 days ago | 0.1 ETH | ||||
21119379 | 76 days ago | 251.08176814 ETH | ||||
21119379 | 76 days ago | 251.18084098 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FeeCollector
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "openzeppelin-contracts/contracts/access/Ownable.sol"; import "openzeppelin-contracts/contracts/interfaces/IERC20.sol"; import "./interfaces/IEthCoin.sol"; import "./interfaces/uniswap-v3-periphery/INonfungiblePositionManager.sol"; import "./interfaces/uniswap-v3-periphery/ISwapRouter.sol"; contract FeeCollector is Ownable { /// @notice Uniswap v3 swapRouter ISwapRouter public immutable swapRouter; /// @notice Uniswap v3 nonfungiblePositionManager contract INonfungiblePositionManager public immutable nonfungiblePositionManager; /// @notice The address of Ethcoin address public immutable ETHC; /// @notice The address of WETH address public immutable WETH; /// @notice The token id of uniswap v3 ETHC/WETH position that this contract would add liquidity to uint256 public immutable tokenId; /// @notice The fee tier of the ETHC/WETH uniswap v3 pool uint24 public immutable fee; /// @notice The address of the operator address public operator; constructor( address _ETHC, address _WETH, address _swapRouter, address _nonfungiblePositionManager, uint256 _tokenId, address _operator ) Ownable(msg.sender) { operator = _operator; ETHC = _ETHC; WETH = _WETH; swapRouter = ISwapRouter(_swapRouter); nonfungiblePositionManager = INonfungiblePositionManager(_nonfungiblePositionManager); tokenId = _tokenId; (,,,, fee,,,,,,,) = nonfungiblePositionManager.positions(tokenId); IERC20(ETHC).approve(address(nonfungiblePositionManager), type(uint256).max); } receive() external payable {} /// @notice Collect all fee (ETH) in Ethcoin function collect() external { require(msg.sender == operator, "FeeCollector: not operator"); IEthCoin(ETHC).collect(ETHC.balance); } /** * @notice Increase liquidity by using ETH that collected from Ethcoin * @param amountIn the amount of ETH that we want to swap for ETHC * @param amountOutMinimum the minimum amount of ETHC that we want to received */ function increaseLiquidity(uint256 amountIn, uint256 amountOutMinimum, uint256 dustTolerance, uint256 allowedExtra) external { require(msg.sender == operator, "FeeCollector: not operator"); uint256 extra = IERC20(ETHC).balanceOf(address(this)); if (extra > allowedExtra) { extra = allowedExtra; } // Buy ETHC uint256 amountOut = swapRouter.exactInputSingle{value: amountIn}( ISwapRouter.ExactInputSingleParams({ tokenIn: WETH, tokenOut: ETHC, fee: fee, recipient: address(this), deadline: block.timestamp, amountIn: amountIn, amountOutMinimum: amountOutMinimum, sqrtPriceLimitX96: 0 }) ); uint256 amount0Desired = address(this).balance; uint256 amount1Desired = amountOut + extra; uint256 amount0Min = 0; uint256 amount1Min = amountOut - dustTolerance; if (ETHC < WETH) { (amount0Desired, amount1Desired) = (amount1Desired, amount0Desired); (amount0Min, amount1Min) = (amount1Min, amount0Min); } // increase liquidity nonfungiblePositionManager.increaseLiquidity{value: address(this).balance}( INonfungiblePositionManager.IncreaseLiquidityParams({ tokenId: tokenId, amount0Desired: amount0Desired, amount1Desired: amount1Desired, amount0Min: amount0Min, amount1Min: amount1Min, deadline: block.timestamp }) ); nonfungiblePositionManager.refundETH(); } /** * @notice deployer can rescue ETH */ function rescue() external onlyOwner { payable(owner()).transfer(address(this).balance); } /** * @notice set operator * @param _operator The address of the operator */ function setOperator(address _operator) external onlyOwner { operator = _operator; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol) pragma solidity ^0.8.20; import {IERC20} from "../token/ERC20/IERC20.sol";
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface IEthCoin { function collect(uint256 amount) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface INonfungiblePositionManager { struct MintParams { address token0; address token1; uint24 fee; int24 tickLower; int24 tickUpper; uint256 amount0Desired; uint256 amount1Desired; uint256 amount0Min; uint256 amount1Min; address recipient; uint256 deadline; } function mint(MintParams calldata params) external payable returns ( uint256 tokenId, uint128 liquidity, uint256 amount0, uint256 amount1 ); struct IncreaseLiquidityParams { uint256 tokenId; uint256 amount0Desired; uint256 amount1Desired; uint256 amount0Min; uint256 amount1Min; uint256 deadline; } function increaseLiquidity(IncreaseLiquidityParams calldata params) external payable returns ( uint128 liquidity, uint256 amount0, uint256 amount1 ); function positions(uint256 tokenId) external view returns ( uint96 nonce, address operator, address token0, address token1, uint24 fee, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint256 tokensOwed0, uint256 tokensOwed1 ); function refundETH() external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface ISwapRouter { struct ExactInputSingleParams { address tokenIn; address tokenOut; uint24 fee; address recipient; uint256 deadline; uint256 amountIn; uint256 amountOutMinimum; uint160 sqrtPriceLimitX96; } function exactInputSingle(ExactInputSingleParams calldata params) external payable returns (uint256 amountOut); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
{ "remappings": [ "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "@chainlink/contracts/=lib/foundry-chainlink-toolkit/lib/chainlink-brownie-contracts/contracts/src/", "chainlink-brownie-contracts/=lib/foundry-chainlink-toolkit/lib/chainlink-brownie-contracts/contracts/src/v0.6/vendor/@arbitrum/nitro-contracts/src/", "foundry-chainlink-toolkit/=lib/foundry-chainlink-toolkit/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_ETHC","type":"address"},{"internalType":"address","name":"_WETH","type":"address"},{"internalType":"address","name":"_swapRouter","type":"address"},{"internalType":"address","name":"_nonfungiblePositionManager","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"ETHC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"},{"internalType":"uint256","name":"dustTolerance","type":"uint256"},{"internalType":"uint256","name":"allowedExtra","type":"uint256"}],"name":"increaseLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6101406040523480156200001257600080fd5b5060405162000f7938038062000f7983398101604081905262000035916200021f565b33806200005c57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006781620001b2565b50600180546001600160a01b0319166001600160a01b038381169190911790915586811660c05285811660e052848116608052831660a081905261010083905260405163133f757160e31b8152600481018490526399fbab889060240161018060405180830381865afa158015620000e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001099190620002d6565b5050505062ffffff9390931661012052505060c05160a05160405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116955063095ea7b3945060440192506200015f915050565b6020604051808303816000875af11580156200017f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a59190620003b4565b50505050505050620003df565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021a57600080fd5b919050565b60008060008060008060c087890312156200023957600080fd5b620002448762000202565b9550620002546020880162000202565b9450620002646040880162000202565b9350620002746060880162000202565b9250608087015191506200028b60a0880162000202565b90509295509295509295565b805162ffffff811681146200021a57600080fd5b8051600281900b81146200021a57600080fd5b80516001600160801b03811681146200021a57600080fd5b6000806000806000806000806000806000806101808d8f031215620002fa57600080fd5b8c516001600160601b03811681146200031257600080fd5b9b506200032260208e0162000202565b9a506200033260408e0162000202565b99506200034260608e0162000202565b98506200035260808e0162000297565b97506200036260a08e01620002ab565b96506200037260c08e01620002ab565b95506200038260e08e01620002be565b94506101008d015193506101208d015192506101408d015191506101608d015190509295989b509295989b509295989b565b600060208284031215620003c757600080fd5b81518015158114620003d857600080fd5b9392505050565b60805160a05160c05160e0516101005161012051610afe6200047b600039600081816102b801526105fc01526000818160ff01526107940152600081816101fc015281816105a0015261072b0152600081816101950152818161043401528181610513015281816105ce015261075501526000818161025001528181610816015261088a01526000818161028401526106990152610afe6000f3fe6080604052600436106100e15760003560e01c8063b3ab15fb1161007f578063ddca3f4311610059578063ddca3f43146102a6578063e5225381146102ee578063e78a432f14610303578063f2fde38b1461032357600080fd5b8063b3ab15fb1461021e578063b44a27221461023e578063c31c9c071461027257600080fd5b806357396373116100bb5780635739637314610183578063715018a6146101b75780638da5cb5b146101cc578063ad5c4648146101ea57600080fd5b806317d70f7c146100ed5780631fbe197914610134578063570ca7351461014b57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b34801561014057600080fd5b50610149610343565b005b34801561015757600080fd5b5060015461016b906001600160a01b031681565b6040516001600160a01b03909116815260200161012b565b34801561018f57600080fd5b5061016b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156101c357600080fd5b50610149610388565b3480156101d857600080fd5b506000546001600160a01b031661016b565b3480156101f657600080fd5b5061016b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561022a57600080fd5b506101496102393660046109bf565b61039c565b34801561024a57600080fd5b5061016b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561027e57600080fd5b5061016b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b257600080fd5b506102da7f000000000000000000000000000000000000000000000000000000000000000081565b60405162ffffff909116815260200161012b565b3480156102fa57600080fd5b506101496103c6565b34801561030f57600080fd5b5061014961031e3660046109ef565b6104a1565b34801561032f57600080fd5b5061014961033e3660046109bf565b610907565b61034b610942565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610385573d6000803e3d6000fd5b50565b610390610942565b61039a600061096f565b565b6103a4610942565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146104255760405162461bcd60e51b815260206004820152601a60248201527f466565436f6c6c6563746f723a206e6f74206f70657261746f7200000000000060448201526064015b60405180910390fd5b60405163ce3f865f60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803160048301529063ce3f865f90602401600060405180830381600087803b15801561048757600080fd5b505af115801561049b573d6000803e3d6000fd5b50505050565b6001546001600160a01b031633146104fb5760405162461bcd60e51b815260206004820152601a60248201527f466565436f6c6c6563746f723a206e6f74206f70657261746f72000000000000604482015260640161041c565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190610a21565b9050818111156105935750805b60408051610100810182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811682527f000000000000000000000000000000000000000000000000000000000000000081166020830190815262ffffff7f000000000000000000000000000000000000000000000000000000000000000081168486019081523060608601908152426080870190815260a087018d815260c088018d8152600060e08a018181529a5163414bf38960e01b81529951891660048b01529651881660248a015293519094166044880152905185166064870152516084860152905160a48501525160c48401529251811660e48301527f0000000000000000000000000000000000000000000000000000000000000000169063414bf3899088906101040160206040518083038185885af11580156106e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107099190610a21565b90504760006107188484610a50565b90506000806107278886610a69565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316101561078857919291905b6040805160c0810182527f000000000000000000000000000000000000000000000000000000000000000081526020810186815281830186815260608301868152608084018681524260a08601908152955163219f5d1760e01b8152945160048601529251602485015290516044840152516064830152516084820152905160a48201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063219f5d1790479060c40160606040518083038185885af1158015610860573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108859190610a7c565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156108e357600080fd5b505af11580156108f7573d6000803e3d6000fd5b5050505050505050505050505050565b61090f610942565b6001600160a01b03811661093957604051631e4fbdf760e01b81526000600482015260240161041c565b6103858161096f565b6000546001600160a01b0316331461039a5760405163118cdaa760e01b815233600482015260240161041c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156109d157600080fd5b81356001600160a01b03811681146109e857600080fd5b9392505050565b60008060008060808587031215610a0557600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215610a3357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a6357610a63610a3a565b92915050565b81810381811115610a6357610a63610a3a565b600080600060608486031215610a9157600080fd5b83516fffffffffffffffffffffffffffffffff81168114610ab157600080fd5b60208501516040909501519096949550939250505056fea26469706673582212200a78fcd185a30722f7a9d5ecaf5068d4a13cf93fa1b6304812b793e619ea06df64736f6c63430008180033000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e29000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8800000000000000000000000000000000000000000000000000000000000ce9f0000000000000000000000000dbd74502ff6187adc4a1e15567e163a5d89dadc8
Deployed Bytecode
0x6080604052600436106100e15760003560e01c8063b3ab15fb1161007f578063ddca3f4311610059578063ddca3f43146102a6578063e5225381146102ee578063e78a432f14610303578063f2fde38b1461032357600080fd5b8063b3ab15fb1461021e578063b44a27221461023e578063c31c9c071461027257600080fd5b806357396373116100bb5780635739637314610183578063715018a6146101b75780638da5cb5b146101cc578063ad5c4648146101ea57600080fd5b806317d70f7c146100ed5780631fbe197914610134578063570ca7351461014b57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b506101217f00000000000000000000000000000000000000000000000000000000000ce9f081565b6040519081526020015b60405180910390f35b34801561014057600080fd5b50610149610343565b005b34801561015757600080fd5b5060015461016b906001600160a01b031681565b6040516001600160a01b03909116815260200161012b565b34801561018f57600080fd5b5061016b7f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e2981565b3480156101c357600080fd5b50610149610388565b3480156101d857600080fd5b506000546001600160a01b031661016b565b3480156101f657600080fd5b5061016b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b34801561022a57600080fd5b506101496102393660046109bf565b61039c565b34801561024a57600080fd5b5061016b7f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8881565b34801561027e57600080fd5b5061016b7f000000000000000000000000e592427a0aece92de3edee1f18e0157c0586156481565b3480156102b257600080fd5b506102da7f000000000000000000000000000000000000000000000000000000000000271081565b60405162ffffff909116815260200161012b565b3480156102fa57600080fd5b506101496103c6565b34801561030f57600080fd5b5061014961031e3660046109ef565b6104a1565b34801561032f57600080fd5b5061014961033e3660046109bf565b610907565b61034b610942565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610385573d6000803e3d6000fd5b50565b610390610942565b61039a600061096f565b565b6103a4610942565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146104255760405162461bcd60e51b815260206004820152601a60248201527f466565436f6c6c6563746f723a206e6f74206f70657261746f7200000000000060448201526064015b60405180910390fd5b60405163ce3f865f60e01b81527f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e296001600160a01b0316803160048301529063ce3f865f90602401600060405180830381600087803b15801561048757600080fd5b505af115801561049b573d6000803e3d6000fd5b50505050565b6001546001600160a01b031633146104fb5760405162461bcd60e51b815260206004820152601a60248201527f466565436f6c6c6563746f723a206e6f74206f70657261746f72000000000000604482015260640161041c565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e296001600160a01b0316906370a0823190602401602060405180830381865afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190610a21565b9050818111156105935750805b60408051610100810182527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0390811682527f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e2981166020830190815262ffffff7f000000000000000000000000000000000000000000000000000000000000271081168486019081523060608601908152426080870190815260a087018d815260c088018d8152600060e08a018181529a5163414bf38960e01b81529951891660048b01529651881660248a015293519094166044880152905185166064870152516084860152905160a48501525160c48401529251811660e48301527f000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564169063414bf3899088906101040160206040518083038185885af11580156106e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107099190610a21565b90504760006107188484610a50565b90506000806107278886610a69565b90507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03167f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e296001600160a01b0316101561078857919291905b6040805160c0810182527f00000000000000000000000000000000000000000000000000000000000ce9f081526020810186815281830186815260608301868152608084018681524260a08601908152955163219f5d1760e01b8152945160048601529251602485015290516044840152516064830152516084820152905160a48201526001600160a01b037f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88169063219f5d1790479060c40160606040518083038185885af1158015610860573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108859190610a7c565b5050507f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156108e357600080fd5b505af11580156108f7573d6000803e3d6000fd5b5050505050505050505050505050565b61090f610942565b6001600160a01b03811661093957604051631e4fbdf760e01b81526000600482015260240161041c565b6103858161096f565b6000546001600160a01b0316331461039a5760405163118cdaa760e01b815233600482015260240161041c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156109d157600080fd5b81356001600160a01b03811681146109e857600080fd5b9392505050565b60008060008060808587031215610a0557600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215610a3357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a6357610a63610a3a565b92915050565b81810381811115610a6357610a63610a3a565b600080600060608486031215610a9157600080fd5b83516fffffffffffffffffffffffffffffffff81168114610ab157600080fd5b60208501516040909501519096949550939250505056fea26469706673582212200a78fcd185a30722f7a9d5ecaf5068d4a13cf93fa1b6304812b793e619ea06df64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e29000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8800000000000000000000000000000000000000000000000000000000000ce9f0000000000000000000000000dbd74502ff6187adc4a1e15567e163a5d89dadc8
-----Decoded View---------------
Arg [0] : _ETHC (address): 0xE957ea0b072910f508dD2009F4acB7238C308E29
Arg [1] : _WETH (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [2] : _swapRouter (address): 0xE592427A0AEce92De3Edee1F18E0157C05861564
Arg [3] : _nonfungiblePositionManager (address): 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
Arg [4] : _tokenId (uint256): 846320
Arg [5] : _operator (address): 0xDbd74502FF6187AdC4a1e15567E163A5D89DADC8
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e29
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [2] : 000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564
Arg [3] : 000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88
Arg [4] : 00000000000000000000000000000000000000000000000000000000000ce9f0
Arg [5] : 000000000000000000000000dbd74502ff6187adc4a1e15567e163a5d89dadc8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.