Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 1,855 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Collect | 22713946 | 271 days ago | IN | 0 ETH | 0.00001483 | ||||
| Collect | 22413107 | 314 days ago | IN | 0 ETH | 0.00001558 | ||||
| Collect | 22406067 | 315 days ago | IN | 0 ETH | 0.00001368 | ||||
| Collect | 22397718 | 316 days ago | IN | 0 ETH | 0.00002626 | ||||
| Collect | 22297442 | 330 days ago | IN | 0 ETH | 0.00001694 | ||||
| Collect | 21955666 | 377 days ago | IN | 0 ETH | 0.00002809 | ||||
| Collect | 21926837 | 381 days ago | IN | 0 ETH | 0.00003571 | ||||
| Collect | 21881730 | 388 days ago | IN | 0 ETH | 0.00003642 | ||||
| Collect | 21871776 | 389 days ago | IN | 0 ETH | 0.00003403 | ||||
| Collect | 21854557 | 392 days ago | IN | 0 ETH | 0.0000296 | ||||
| Fund Subscriptio... | 21853561 | 392 days ago | IN | 0 ETH | 0.00004361 | ||||
| Collect | 21848202 | 392 days ago | IN | 0 ETH | 0.00003124 | ||||
| Collect | 21836240 | 394 days ago | IN | 0 ETH | 0.00004332 | ||||
| Collect | 21828495 | 395 days ago | IN | 0 ETH | 0.00003235 | ||||
| Collect | 21818632 | 397 days ago | IN | 0 ETH | 0.0000383 | ||||
| Collect | 21809469 | 398 days ago | IN | 0 ETH | 0.00004188 | ||||
| Collect | 21804187 | 399 days ago | IN | 0 ETH | 0.00003496 | ||||
| Collect | 21799908 | 399 days ago | IN | 0 ETH | 0.00003298 | ||||
| Collect | 21772307 | 403 days ago | IN | 0 ETH | 0.00006056 | ||||
| Fund Subscriptio... | 21753069 | 406 days ago | IN | 0 ETH | 0.00015865 | ||||
| Fund Subscriptio... | 21677203 | 416 days ago | IN | 0 ETH | 0.00041842 | ||||
| Fund Subscriptio... | 21664816 | 418 days ago | IN | 0 ETH | 0.00151049 | ||||
| Collect | 21664813 | 418 days ago | IN | 0 ETH | 0.00117974 | ||||
| Fund Subscriptio... | 21646392 | 421 days ago | IN | 0 ETH | 0.00051292 | ||||
| Transfer | 21642658 | 421 days ago | IN | 3 ETH | 0.00010948 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 22713946 | 271 days ago | 1.00374411 ETH | ||||
| Transfer | 22413107 | 314 days ago | 1.00545567 ETH | ||||
| Transfer | 22406067 | 315 days ago | 1.037518 ETH | ||||
| Transfer | 22397718 | 316 days ago | 1.07875101 ETH | ||||
| Transfer | 22297442 | 330 days ago | 1.00169075 ETH | ||||
| Transfer | 21955666 | 377 days ago | 1.02985745 ETH | ||||
| Transfer | 21926837 | 381 days ago | 1.00028496 ETH | ||||
| Transfer | 21881730 | 388 days ago | 1.02431927 ETH | ||||
| Transfer | 21871776 | 389 days ago | 1.02982721 ETH | ||||
| Transfer | 21854557 | 392 days ago | 1.01991655 ETH | ||||
| Fund Subscriptio... | 21853561 | 392 days ago | 2.00414905 ETH | ||||
| Transfer | 21848202 | 392 days ago | 1.01334819 ETH | ||||
| Transfer | 21836240 | 394 days ago | 1.02965875 ETH | ||||
| Transfer | 21828495 | 395 days ago | 1.00499507 ETH | ||||
| Transfer | 21818632 | 397 days ago | 1.02592659 ETH | ||||
| Transfer | 21809469 | 398 days ago | 1.00048425 ETH | ||||
| Transfer | 21804187 | 399 days ago | 1.03056651 ETH | ||||
| Transfer | 21799908 | 399 days ago | 1.01607054 ETH | ||||
| Transfer | 21772307 | 403 days ago | 1.00124 ETH | ||||
| Fund Subscriptio... | 21753069 | 406 days ago | 2.00399303 ETH | ||||
| Fund Subscriptio... | 21677203 | 416 days ago | 2.0095337 ETH | ||||
| Transfer | 21664975 | 418 days ago | 11.24829 ETH | ||||
| Fund Subscriptio... | 21664816 | 418 days ago | 3.09043621 ETH | ||||
| Transfer | 21664813 | 418 days ago | 5.51671489 ETH | ||||
| Fund Subscriptio... | 21646392 | 421 days ago | 2.00245162 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
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
Net Worth in USD
$56,510.74
Net Worth in ETH
27.075358
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,087.16 | 27.0754 | $56,510.74 |
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.