Source Code
Latest 25 from a total of 1,855 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Collect | 22713946 | 116 days ago | IN | 0 ETH | 0.00001483 | ||||
Collect | 22413107 | 159 days ago | IN | 0 ETH | 0.00001558 | ||||
Collect | 22406067 | 160 days ago | IN | 0 ETH | 0.00001368 | ||||
Collect | 22397718 | 161 days ago | IN | 0 ETH | 0.00002626 | ||||
Collect | 22297442 | 175 days ago | IN | 0 ETH | 0.00001694 | ||||
Collect | 21955666 | 222 days ago | IN | 0 ETH | 0.00002809 | ||||
Collect | 21926837 | 227 days ago | IN | 0 ETH | 0.00003571 | ||||
Collect | 21881730 | 233 days ago | IN | 0 ETH | 0.00003642 | ||||
Collect | 21871776 | 234 days ago | IN | 0 ETH | 0.00003403 | ||||
Collect | 21854557 | 237 days ago | IN | 0 ETH | 0.0000296 | ||||
Fund Subscriptio... | 21853561 | 237 days ago | IN | 0 ETH | 0.00004361 | ||||
Collect | 21848202 | 238 days ago | IN | 0 ETH | 0.00003124 | ||||
Collect | 21836240 | 239 days ago | IN | 0 ETH | 0.00004332 | ||||
Collect | 21828495 | 240 days ago | IN | 0 ETH | 0.00003235 | ||||
Collect | 21818632 | 242 days ago | IN | 0 ETH | 0.0000383 | ||||
Collect | 21809469 | 243 days ago | IN | 0 ETH | 0.00004188 | ||||
Collect | 21804187 | 244 days ago | IN | 0 ETH | 0.00003496 | ||||
Collect | 21799908 | 244 days ago | IN | 0 ETH | 0.00003298 | ||||
Collect | 21772307 | 248 days ago | IN | 0 ETH | 0.00006056 | ||||
Fund Subscriptio... | 21753069 | 251 days ago | IN | 0 ETH | 0.00015865 | ||||
Fund Subscriptio... | 21677203 | 261 days ago | IN | 0 ETH | 0.00041842 | ||||
Fund Subscriptio... | 21664816 | 263 days ago | IN | 0 ETH | 0.00151049 | ||||
Collect | 21664813 | 263 days ago | IN | 0 ETH | 0.00117974 | ||||
Fund Subscriptio... | 21646392 | 266 days ago | IN | 0 ETH | 0.00051292 | ||||
Transfer | 21642658 | 266 days ago | IN | 3 ETH | 0.00010948 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 22713946 | 116 days ago | 1.00374411 ETH | ||||
Transfer | 22413107 | 159 days ago | 1.00545567 ETH | ||||
Transfer | 22406067 | 160 days ago | 1.037518 ETH | ||||
Transfer | 22397718 | 161 days ago | 1.07875101 ETH | ||||
Transfer | 22297442 | 175 days ago | 1.00169075 ETH | ||||
Transfer | 21955666 | 222 days ago | 1.02985745 ETH | ||||
Transfer | 21926837 | 227 days ago | 1.00028496 ETH | ||||
Transfer | 21881730 | 233 days ago | 1.02431927 ETH | ||||
Transfer | 21871776 | 234 days ago | 1.02982721 ETH | ||||
Transfer | 21854557 | 237 days ago | 1.01991655 ETH | ||||
Fund Subscriptio... | 21853561 | 237 days ago | 2.00414905 ETH | ||||
Transfer | 21848202 | 238 days ago | 1.01334819 ETH | ||||
Transfer | 21836240 | 239 days ago | 1.02965875 ETH | ||||
Transfer | 21828495 | 240 days ago | 1.00499507 ETH | ||||
Transfer | 21818632 | 242 days ago | 1.02592659 ETH | ||||
Transfer | 21809469 | 243 days ago | 1.00048425 ETH | ||||
Transfer | 21804187 | 244 days ago | 1.03056651 ETH | ||||
Transfer | 21799908 | 244 days ago | 1.01607054 ETH | ||||
Transfer | 21772307 | 248 days ago | 1.00124 ETH | ||||
Fund Subscriptio... | 21753069 | 251 days ago | 2.00399303 ETH | ||||
Fund Subscriptio... | 21677203 | 261 days ago | 2.0095337 ETH | ||||
Transfer | 21664975 | 263 days ago | 11.24829 ETH | ||||
Fund Subscriptio... | 21664816 | 263 days ago | 3.09043621 ETH | ||||
Transfer | 21664813 | 263 days ago | 5.51671489 ETH | ||||
Fund Subscriptio... | 21646392 | 266 days ago | 2.00245162 ETH |
Cross-Chain Transactions
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/uniswap-v3-periphery/INonfungiblePositionManager.sol"; import "./interfaces/uniswap-v3-periphery/ISwapRouter.sol"; import "./interfaces/IEthCoin.sol"; import "./interfaces/IVRFCoordinator.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 ChainLink VRF coordinator IVRFCoordinator public immutable vrfCoordinator; /// @notice The subscription id of the ChainLink VRF request uint256 public subscriptionId; /// @notice The address of the operator address public operator; modifier onlyOperator() { require(msg.sender == operator, "FeeCollector: not operator"); _; } constructor( address _ETHC, address _WETH, address _swapRouter, address _nonfungiblePositionManager, uint256 _tokenId, address _vrfCoordinator, uint256 _subscriptionId, address _operator ) Ownable(msg.sender) { ETHC = _ETHC; WETH = _WETH; swapRouter = ISwapRouter(_swapRouter); nonfungiblePositionManager = INonfungiblePositionManager(_nonfungiblePositionManager); tokenId = _tokenId; (,,,, fee,,,,,,,) = nonfungiblePositionManager.positions(tokenId); vrfCoordinator = IVRFCoordinator(_vrfCoordinator); IERC20(ETHC).approve(address(nonfungiblePositionManager), type(uint256).max); subscriptionId = _subscriptionId; operator = _operator; } /** * @notice Collect all ETH from Ethcoin. * @param amount The amount of ETH to collect */ function collect(uint256 amount) external onlyOperator { IEthCoin(ETHC).collect(amount); } /** * @notice Fund the ChainLink VRF subscription with ETH. * @param amount The amount of ETH to fund the subscription */ function fundSubscription(uint256 amount) external onlyOperator { vrfCoordinator.fundSubscriptionWithNative{value: amount}(subscriptionId); } /** * @notice Buy Ethcoin with ETH. * @param amountIn The amount of ETH to swap for Ethcoin * @param amountOutMinimum The minimum amount of Ethcoin to receive * @return The amount of Ethcoin bought */ function buyEthcoin(uint256 amountIn, uint256 amountOutMinimum) external onlyOperator returns (uint256) { return swapRouter.exactInputSingle{value: amountIn}( ISwapRouter.ExactInputSingleParams({ tokenIn: WETH, tokenOut: ETHC, fee: fee, recipient: address(this), deadline: block.timestamp, amountIn: amountIn, amountOutMinimum: amountOutMinimum, sqrtPriceLimitX96: 0 }) ); } /** * @notice Withdraw Ethcoin to the owner. * @param amount The amount of Ethcoin to withdraw */ function withdrawEthcoin(uint256 amount) external onlyOperator { uint256 balance = IERC20(ETHC).balanceOf(address(this)); require(balance >= amount, "FeeCollector: insufficient balance"); IERC20(ETHC).transfer(owner(), amount); } /** * @notice Increase the liquidity of the Ethcoin/WETH Uniswap v3 pool. * @param amountEthcoinDesired The amount of ETHC that we want to add * @param amountEthDesired The amount of WETH that we want to add * @param amountEthcoinMin The minimum amount of ETHC that we want to add * @param amountEthMin The minimum amount of WETH that we want to add */ function increaseLiquidity( uint256 amountEthcoinDesired, uint256 amountEthDesired, uint256 amountEthcoinMin, uint256 amountEthMin ) external onlyOperator { nonfungiblePositionManager.increaseLiquidity{value: address(this).balance}( INonfungiblePositionManager.IncreaseLiquidityParams({ tokenId: tokenId, amount0Desired: amountEthDesired, amount1Desired: amountEthcoinDesired, amount0Min: amountEthMin, amount1Min: amountEthcoinMin, 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; } receive() external payable {} }
// 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 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 pragma solidity ^0.8.13; interface IEthCoin { function collect(uint256 amount) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface IVRFCoordinator { function fundSubscriptionWithNative(uint256 subId) external payable; }
// 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
Contract ABI
API[{"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":"_vrfCoordinator","type":"address"},{"internalType":"uint256","name":"_subscriptionId","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":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"}],"name":"buyEthcoin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundSubscription","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountEthcoinDesired","type":"uint256"},{"internalType":"uint256","name":"amountEthDesired","type":"uint256"},{"internalType":"uint256","name":"amountEthcoinMin","type":"uint256"},{"internalType":"uint256","name":"amountEthMin","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":"subscriptionId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[],"name":"vrfCoordinator","outputs":[{"internalType":"contract IVRFCoordinator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEthcoin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6101606040523480156200001257600080fd5b50604051620012203803806200122083398101604081905262000035916200022d565b33806200005c57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006781620001c0565b506001600160a01b0388811660c05287811660e052868116608052851660a081905261010085905260405163133f757160e31b8152600481018690526399fbab889060240161018060405180830381865afa158015620000cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f1919062000302565b5050505062ffffff9390931661012052505050506001600160a01b038681166101405260c05160a05160405163095ea7b360e01b8152908316600482015260001960248201529116935063095ea7b3925060440190506020604051808303816000875af115801562000167573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018d9190620003e0565b50600191909155600280546001600160a01b0319166001600160a01b03909216919091179055506200040b945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200022857600080fd5b919050565b600080600080600080600080610100898b0312156200024b57600080fd5b620002568962000210565b97506200026660208a0162000210565b96506200027660408a0162000210565b95506200028660608a0162000210565b9450608089015193506200029d60a08a0162000210565b925060c08901519150620002b460e08a0162000210565b90509295985092959890939650565b805162ffffff811681146200022857600080fd5b8051600281900b81146200022857600080fd5b80516001600160801b03811681146200022857600080fd5b6000806000806000806000806000806000806101808d8f0312156200032657600080fd5b8c516001600160601b03811681146200033e57600080fd5b9b506200034e60208e0162000210565b9a506200035e60408e0162000210565b99506200036e60608e0162000210565b98506200037e60808e01620002c3565b97506200038e60a08e01620002d7565b96506200039e60c08e01620002d7565b9550620003ae60e08e01620002ea565b94506101008d015193506101208d015192506101408d015191506101608d015190509295989b509295989b509295989b565b600060208284031215620003f357600080fd5b815180151581146200040457600080fd5b9392505050565b60805160a05160c05160e051610100516101205161014051610d6d620004b36000396000818161028901526108730152600081816103b9015261052201526000818161015f01526109be0152600081816102bd01526104d30152600081816101e2015281816104f80152818161067e01528181610750015261092101526000818161031101528181610a400152610ab401526000818161036501526105c30152610d6d6000f3fe6080604052600436106101185760003560e01c8063a3e56fa8116100a0578063c31c9c0711610064578063c31c9c0714610353578063ce3f865f14610387578063ddca3f43146103a7578063e78a432f146103ef578063f2fde38b1461040f57600080fd5b8063a3e56fa814610277578063ad5c4648146102ab578063b3ab15fb146102df578063b44a2722146102ff578063c10606531461033357600080fd5b806357396373116100e757806357396373146101d0578063715018a61461020457806372c41cf314610219578063771a6d41146102395780638da5cb5b1461025957600080fd5b806309c1ba2e1461012457806317d70f7c1461014d5780631fbe197914610181578063570ca7351461019857600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061013a60015481565b6040519081526020015b60405180910390f35b34801561015957600080fd5b5061013a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561018d57600080fd5b5061019661042f565b005b3480156101a457600080fd5b506002546101b8906001600160a01b031681565b6040516001600160a01b039091168152602001610144565b3480156101dc57600080fd5b506101b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561021057600080fd5b50610196610474565b34801561022557600080fd5b5061013a610234366004610be3565b610488565b34801561024557600080fd5b50610196610254366004610c05565b61063c565b34801561026557600080fd5b506000546001600160a01b03166101b8565b34801561028357600080fd5b506101b87f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b757600080fd5b506101b87f000000000000000000000000000000000000000000000000000000000000000081565b3480156102eb57600080fd5b506101966102fa366004610c1e565b610805565b34801561030b57600080fd5b506101b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561033f57600080fd5b5061019661034e366004610c05565b61082f565b34801561035f57600080fd5b506101b87f000000000000000000000000000000000000000000000000000000000000000081565b34801561039357600080fd5b506101966103a2366004610c05565b6108e1565b3480156103b357600080fd5b506103db7f000000000000000000000000000000000000000000000000000000000000000081565b60405162ffffff9091168152602001610144565b3480156103fb57600080fd5b5061019661040a366004610c47565b610988565b34801561041b57600080fd5b5061019661042a366004610c1e565b610b2b565b610437610b66565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610471573d6000803e3d6000fd5b50565b61047c610b66565b6104866000610b93565b565b6002546000906001600160a01b031633146104be5760405162461bcd60e51b81526004016104b590610c79565b60405180910390fd5b60408051610100810182526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f00000000000000000000000000000000000000000000000000000000000000008116602083019081527f000000000000000000000000000000000000000000000000000000000000000062ffffff9081168486019081523060608601908152426080870190815260a087018b815260c088018b8152600060e08a01908152995163414bf38960e01b81529851881660048a0152955187166024890152925190931660448701525184166064860152905160848501525160a48401525160c48301529151821660e48201527f00000000000000000000000000000000000000000000000000000000000000009091169063414bf3899085906101040160206040518083038185885af1158015610610573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106359190610cb0565b9392505050565b6002546001600160a01b031633146106665760405162461bcd60e51b81526004016104b590610c79565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610cb0565b90508181101561074e5760405162461bcd60e51b815260206004820152602260248201527f466565436f6c6c6563746f723a20696e73756666696369656e742062616c616e604482015261636560f01b60648201526084016104b5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb61078f6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af11580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190610cc9565b505050565b61080d610b66565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031633146108595760405162461bcd60e51b81526004016104b590610c79565b60015460405163256d573f60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916395b55cfc9184916108ac9160040190815260200190565b6000604051808303818588803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050505050565b6002546001600160a01b0316331461090b5760405162461bcd60e51b81526004016104b590610c79565b60405163ce3f865f60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce3f865f90602401600060405180830381600087803b15801561096d57600080fd5b505af1158015610981573d6000803e3d6000fd5b5050505050565b6002546001600160a01b031633146109b25760405162461bcd60e51b81526004016104b590610c79565b6040805160c0810182527f000000000000000000000000000000000000000000000000000000000000000081526020810185815281830187815260608301858152608084018781524260a08601908152955163219f5d1760e01b8152945160048601529251602485015290516044840152516064830152516084820152905160a48201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063219f5d1790479060c40160606040518083038185885af1158015610a8a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aaf9190610ceb565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b5050505050505050565b610b33610b66565b6001600160a01b038116610b5d57604051631e4fbdf760e01b8152600060048201526024016104b5565b61047181610b93565b6000546001600160a01b031633146104865760405163118cdaa760e01b81523360048201526024016104b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215610bf657600080fd5b50508035926020909101359150565b600060208284031215610c1757600080fd5b5035919050565b600060208284031215610c3057600080fd5b81356001600160a01b038116811461063557600080fd5b60008060008060808587031215610c5d57600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252601a908201527f466565436f6c6c6563746f723a206e6f74206f70657261746f72000000000000604082015260600190565b600060208284031215610cc257600080fd5b5051919050565b600060208284031215610cdb57600080fd5b8151801515811461063557600080fd5b600080600060608486031215610d0057600080fd5b83516fffffffffffffffffffffffffffffffff81168114610d2057600080fd5b60208501516040909501519096949550939250505056fea2646970667358221220f9e1ea0bb4ab8d7821def51a1f56f5abbfe6d5af4756da4f1b0423f93f2ab3dc64736f6c63430008180033000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e29000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8800000000000000000000000000000000000000000000000000000000000ce9f0000000000000000000000000d7f86b4b8cae7d942340ff628f82735b7a20893a45030cfff174cfa0ab040417d78b8af1778eee34d267fde2506f39c6ce79eb5a000000000000000000000000dbd74502ff6187adc4a1e15567e163a5d89dadc8
Deployed Bytecode
0x6080604052600436106101185760003560e01c8063a3e56fa8116100a0578063c31c9c0711610064578063c31c9c0714610353578063ce3f865f14610387578063ddca3f43146103a7578063e78a432f146103ef578063f2fde38b1461040f57600080fd5b8063a3e56fa814610277578063ad5c4648146102ab578063b3ab15fb146102df578063b44a2722146102ff578063c10606531461033357600080fd5b806357396373116100e757806357396373146101d0578063715018a61461020457806372c41cf314610219578063771a6d41146102395780638da5cb5b1461025957600080fd5b806309c1ba2e1461012457806317d70f7c1461014d5780631fbe197914610181578063570ca7351461019857600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061013a60015481565b6040519081526020015b60405180910390f35b34801561015957600080fd5b5061013a7f00000000000000000000000000000000000000000000000000000000000ce9f081565b34801561018d57600080fd5b5061019661042f565b005b3480156101a457600080fd5b506002546101b8906001600160a01b031681565b6040516001600160a01b039091168152602001610144565b3480156101dc57600080fd5b506101b87f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e2981565b34801561021057600080fd5b50610196610474565b34801561022557600080fd5b5061013a610234366004610be3565b610488565b34801561024557600080fd5b50610196610254366004610c05565b61063c565b34801561026557600080fd5b506000546001600160a01b03166101b8565b34801561028357600080fd5b506101b87f000000000000000000000000d7f86b4b8cae7d942340ff628f82735b7a20893a81565b3480156102b757600080fd5b506101b87f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b3480156102eb57600080fd5b506101966102fa366004610c1e565b610805565b34801561030b57600080fd5b506101b87f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8881565b34801561033f57600080fd5b5061019661034e366004610c05565b61082f565b34801561035f57600080fd5b506101b87f000000000000000000000000e592427a0aece92de3edee1f18e0157c0586156481565b34801561039357600080fd5b506101966103a2366004610c05565b6108e1565b3480156103b357600080fd5b506103db7f000000000000000000000000000000000000000000000000000000000000271081565b60405162ffffff9091168152602001610144565b3480156103fb57600080fd5b5061019661040a366004610c47565b610988565b34801561041b57600080fd5b5061019661042a366004610c1e565b610b2b565b610437610b66565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610471573d6000803e3d6000fd5b50565b61047c610b66565b6104866000610b93565b565b6002546000906001600160a01b031633146104be5760405162461bcd60e51b81526004016104b590610c79565b60405180910390fd5b60408051610100810182526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2811682527f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e298116602083019081527f000000000000000000000000000000000000000000000000000000000000271062ffffff9081168486019081523060608601908152426080870190815260a087018b815260c088018b8152600060e08a01908152995163414bf38960e01b81529851881660048a0152955187166024890152925190931660448701525184166064860152905160848501525160a48401525160c48301529151821660e48201527f000000000000000000000000e592427a0aece92de3edee1f18e0157c058615649091169063414bf3899085906101040160206040518083038185885af1158015610610573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106359190610cb0565b9392505050565b6002546001600160a01b031633146106665760405162461bcd60e51b81526004016104b590610c79565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e296001600160a01b0316906370a0823190602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610cb0565b90508181101561074e5760405162461bcd60e51b815260206004820152602260248201527f466565436f6c6c6563746f723a20696e73756666696369656e742062616c616e604482015261636560f01b60648201526084016104b5565b7f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e296001600160a01b031663a9059cbb61078f6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af11580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190610cc9565b505050565b61080d610b66565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031633146108595760405162461bcd60e51b81526004016104b590610c79565b60015460405163256d573f60e21b81526001600160a01b037f000000000000000000000000d7f86b4b8cae7d942340ff628f82735b7a20893a16916395b55cfc9184916108ac9160040190815260200190565b6000604051808303818588803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050505050565b6002546001600160a01b0316331461090b5760405162461bcd60e51b81526004016104b590610c79565b60405163ce3f865f60e01b8152600481018290527f000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e296001600160a01b03169063ce3f865f90602401600060405180830381600087803b15801561096d57600080fd5b505af1158015610981573d6000803e3d6000fd5b5050505050565b6002546001600160a01b031633146109b25760405162461bcd60e51b81526004016104b590610c79565b6040805160c0810182527f00000000000000000000000000000000000000000000000000000000000ce9f081526020810185815281830187815260608301858152608084018781524260a08601908152955163219f5d1760e01b8152945160048601529251602485015290516044840152516064830152516084820152905160a48201526001600160a01b037f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88169063219f5d1790479060c40160606040518083038185885af1158015610a8a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aaf9190610ceb565b5050507f000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b5050505050505050565b610b33610b66565b6001600160a01b038116610b5d57604051631e4fbdf760e01b8152600060048201526024016104b5565b61047181610b93565b6000546001600160a01b031633146104865760405163118cdaa760e01b81523360048201526024016104b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215610bf657600080fd5b50508035926020909101359150565b600060208284031215610c1757600080fd5b5035919050565b600060208284031215610c3057600080fd5b81356001600160a01b038116811461063557600080fd5b60008060008060808587031215610c5d57600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252601a908201527f466565436f6c6c6563746f723a206e6f74206f70657261746f72000000000000604082015260600190565b600060208284031215610cc257600080fd5b5051919050565b600060208284031215610cdb57600080fd5b8151801515811461063557600080fd5b600080600060608486031215610d0057600080fd5b83516fffffffffffffffffffffffffffffffff81168114610d2057600080fd5b60208501516040909501519096949550939250505056fea2646970667358221220f9e1ea0bb4ab8d7821def51a1f56f5abbfe6d5af4756da4f1b0423f93f2ab3dc64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e29000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe8800000000000000000000000000000000000000000000000000000000000ce9f0000000000000000000000000d7f86b4b8cae7d942340ff628f82735b7a20893a45030cfff174cfa0ab040417d78b8af1778eee34d267fde2506f39c6ce79eb5a000000000000000000000000dbd74502ff6187adc4a1e15567e163a5d89dadc8
-----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] : _vrfCoordinator (address): 0xD7f86b4b8Cae7D942340FF628F82735b7a20893a
Arg [6] : _subscriptionId (uint256): 31214976814610593129916042500178081708484101830800464239207821191224235780954
Arg [7] : _operator (address): 0xDbd74502FF6187AdC4a1e15567E163A5D89DADC8
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000e957ea0b072910f508dd2009f4acb7238c308e29
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [2] : 000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564
Arg [3] : 000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88
Arg [4] : 00000000000000000000000000000000000000000000000000000000000ce9f0
Arg [5] : 000000000000000000000000d7f86b4b8cae7d942340ff628f82735b7a20893a
Arg [6] : 45030cfff174cfa0ab040417d78b8af1778eee34d267fde2506f39c6ce79eb5a
Arg [7] : 000000000000000000000000dbd74502ff6187adc4a1e15567e163a5d89dadc8
Loading...
Loading
Loading...
Loading

Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,829.38 | 27.0754 | $103,681.78 |
Loading...
Loading
Loading...
Loading
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.