// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import * as Uni from "./uni/Interfaces.sol";
import "./uni/libraries/TickMath.sol";
import "./EtherToken.sol";
import { FeeLockerV3 as Locker } from "./FeeLockerV3.sol";
import "./RewardsRegistry.sol";
/// @notice Minimal interface for a Uniswap V3 pool exposing only `swap`.
interface IUniV3PoolSwap {
function swap(
address recipient,
bool zeroForOne,
int256 amountSpecified,
uint160 sqrtPriceLimitX96,
bytes calldata data
) external returns (int256 amount0, int256 amount1);
}
/// @notice Tiny ERC-20 interface with transfer used in the swap callback.
interface IERC20 {
function transfer(address to, uint256 value) external returns (bool);
}
library AddressCheck {
function mustBeContract(address a, string memory err) internal view {
require(a.code.length > 0, err);
}
}
contract EtherV3Factory {
using AddressCheck for address;
// ── Immutables ───────────────────────────────────────────────────────────
address public immutable POSITION_MANAGER;
address public immutable SWAP_ROUTER02; // kept for Locker compatibility; not used for dev buy
address public immutable WETH;
address public immutable PLATFORM;
address public immutable REGISTRY;
// ✅ NEW: shared locker address (one for all tokens)
address public immutable LOCKER;
// ── Launch max-wallet cap (anti-sniper) ───────────────────────────────────
// Every token launched arms an on-chain max-wallet cap: for the first
// `maxWalletWindowSecs` seconds, no wallet may hold more than `maxWalletBips`
// of supply, so snipers can't accumulate a big bag and dump. No time buy-lock
// is needed — the dev buy is atomic inside launch() (always first) and the
// pool doesn't exist until launch completes, so block-0/1 sniping is
// impossible on its own. Owner-tunable for future launches with no frontend
// change; capped for safety.
address public owner;
uint256 public maxWalletBips = 200; // 2% default
uint256 public maxWalletWindowSecs = 900; // 15min default
uint256 public constant MIN_MAX_WALLET_BIPS = 100; // never below 1% (avoid unbuyable)
uint256 public constant MAX_MAX_WALLET_WINDOW = 3600; // 1h ceiling
/// @param bips cap as bips of supply (200 = 2%); 10000 disables the cap.
function setMaxWalletBips(uint256 bips) external {
require(msg.sender == owner, "not owner");
require(bips >= MIN_MAX_WALLET_BIPS && bips <= 10_000, "bips out of range");
maxWalletBips = bips;
}
function setMaxWalletWindow(uint256 secs) external {
require(msg.sender == owner, "not owner");
require(secs <= MAX_MAX_WALLET_WINDOW, "window too long");
maxWalletWindowSecs = secs;
}
function transferOwnership(address newOwner) external {
require(msg.sender == owner, "not owner");
require(newOwner != address(0), "zero owner");
owner = newOwner;
}
function registry() external view returns (address) { return REGISTRY; }
function _v3Factory() internal view returns (Uni.IUniswapV3Factory f) {
f = Uni.IUniswapV3Factory(Uni.INonfungiblePositionManager(POSITION_MANAGER).factory());
}
// ── Events ───────────────────────────────────────────────────────────────
event PoolReady(address indexed token, address indexed pool, address token0, address token1, int24 initTick);
event TokenLaunched(address indexed token, address locker, uint256 lpTokenId, address indexed creator, address indexed pool);
event DevBuyPlanned(address indexed token, address indexed pool, address indexed recipient, uint256 amountETH);
event DevBuyExecuted(address indexed token, address indexed pool, address indexed recipient, uint256 amountETH, uint256 amountOut);
// ── Errors ───────────────────────────────────────────────────────────────
error BadMsgValue();
error NotExpectedPool();
error NoTokenBalance();
// ✅ CHANGED: add _locker param
constructor(address _pm, address _router, address _weth, address _platform, address _registry, address _locker) {
require(
_pm != address(0) &&
_router != address(0) &&
_weth != address(0) &&
_platform != address(0) &&
_registry != address(0) &&
_locker != address(0),
"zero"
);
_pm.mustBeContract("bad PM");
_router.mustBeContract("bad router");
_weth.mustBeContract("bad WETH");
_registry.mustBeContract("bad registry");
_locker.mustBeContract("bad locker");
POSITION_MANAGER = _pm;
SWAP_ROUTER02 = _router; // not used by dev buy; kept for Locker ctor parity
WETH = _weth;
PLATFORM = _platform;
REGISTRY = _registry;
// ✅ NEW
LOCKER = _locker;
owner = msg.sender; // can tune maxWalletBips / maxWalletWindowSecs later
}
struct LaunchParams {
string name;
string symbol;
bool doDevBuy;
uint256 devBuyETH; // wei
}
// ── Constants (mirroring AS choices) ──────────────────────────────
uint256 constant ONE_BILLION = 1_000_000_000;
uint24 constant FEE_TIER = 10_000; // 1%
int24 constant TICK_SPACING = 200;
int24 constant MIN_TICK = -887272;
int24 constant MAX_TICK = 887272;
uint256 constant BURN_DUST = 1;
int24 constant TARGET_TICK = -207_800;
// ── Launch ───────────────────────────────────────────────────────────────
function launch(LaunchParams calldata p)
external
payable
returns (address token, address locker, uint256 lpTokenId)
{
if (msg.value != (p.doDevBuy ? p.devBuyETH : 0)) revert BadMsgValue();
address creator = msg.sender;
// 1) Deploy token
token = address(new EtherToken(p.name, p.symbol, ONE_BILLION * 1e18, address(this)));
if (BURN_DUST > 0) {
EtherToken(token).transfer(0x000000000000000000000000000000000000dEaD, BURN_DUST);
}
// ✅ CHANGED: use shared locker (no per-token deployment)
locker = LOCKER;
// 3) Determine ordering & init tick
(address token0, address token1) = token < WETH ? (token, WETH) : (WETH, token);
int24 initTick = (token0 == token) ? TARGET_TICK : -TARGET_TICK;
// 4) Create/init pool
address pool = _createPoolAndInitialize(token0, token1, initTick);
// 5) Single-sided mint around the price to supply just one side
lpTokenId = _mintInitialLiquiditySingleSided(token, token0, token1, initTick);
// Burn any residual minted tokens (keeps parity with AS)
_burnAnyResidual(token);
// ✅ CHANGED: NFT goes to shared locker, register token->tokenId on locker
Uni.INonfungiblePositionManager(POSITION_MANAGER).safeTransferFrom(address(this), locker, lpTokenId);
Locker(payable(locker)).setPositionFor(token, lpTokenId);
uint16 cBips = RewardsRegistry(REGISTRY).defaultCreatorBips();
uint16 pBips = uint16(10_000 - cBips);
RewardsRegistry(REGISTRY).setRecipients(token, creator, cBips, PLATFORM, pBips);
RewardsRegistry(REGISTRY).setLocker(token, locker);
emit PoolReady(token, pool, token0, token1, initTick);
emit TokenLaunched(token, locker, lpTokenId, creator, pool);
// 7) Optional dev buy via direct pool swap (WETH -> token)
if (p.doDevBuy) {
uint256 amountOut = _devBuyAfterMint(token, p.devBuyETH, creator);
emit DevBuyExecuted(token, pool, creator, p.devBuyETH, amountOut);
}
// 8) Arm the max-wallet cap AFTER the dev buy, so the dev buy (exempt from
// the cap) lands first. For `maxWalletWindowSecs`, no wallet may hold
// more than `maxWalletBips` of supply. Sells/transfers stay open.
EtherToken(token).initMaxWallet(pool, creator, maxWalletBips, maxWalletWindowSecs);
}
// ── Internals ────────────────────────────────────────────────────────────
function _createPoolAndInitialize(address token0, address token1, int24 initTick)
internal
returns (address pool)
{
Uni.IUniswapV3Factory uf = _v3Factory();
pool = uf.getPool(token0, token1, FEE_TIER);
if (pool == address(0)) {
pool = uf.createPool(token0, token1, FEE_TIER);
uint160 sqrtP = TickMath.getSqrtRatioAtTick(initTick);
Uni.IUniswapV3Pool(pool).initialize(sqrtP);
}
}
function _alignToSpacing(int24 tick, int24 spacing) internal pure returns (int24) {
// floor toward -∞ so negatives align correctly
int24 r = tick % spacing;
return r == 0 ? tick : (r > 0 ? tick - r : tick - (r + spacing));
}
/// @dev Mint single-sided by placing the range fully on one side of current tick.
function _mintInitialLiquiditySingleSided(
address token,
address token0,
address token1,
int24 initTick
) internal returns (uint256 lpTokenId) {
EtherToken(token).approve(POSITION_MANAGER, type(uint256).max);
uint256 tokenBal = EtherToken(token).balanceOf(address(this));
if (tokenBal == 0) revert NoTokenBalance();
int24 lower;
int24 upper;
if (token == token1) {
// token1-only: put range below the price
upper = _alignToSpacing(initTick - 1, TICK_SPACING);
lower = _alignToSpacing(upper - (TICK_SPACING * 2000), TICK_SPACING);
if (lower < _alignToSpacing(MIN_TICK + TICK_SPACING, TICK_SPACING)) {
lower = _alignToSpacing(MIN_TICK + TICK_SPACING, TICK_SPACING);
}
} else {
// token0-only: put range above the price
lower = _alignToSpacing(initTick + 1, TICK_SPACING);
upper = _alignToSpacing(lower + (TICK_SPACING * 2000), TICK_SPACING);
if (upper > _alignToSpacing(MAX_TICK - TICK_SPACING, TICK_SPACING)) {
upper = _alignToSpacing(MAX_TICK - TICK_SPACING, TICK_SPACING);
}
}
(lpTokenId,,,) = Uni.INonfungiblePositionManager(POSITION_MANAGER).mint(
Uni.INonfungiblePositionManager.MintParams({
token0: token0,
token1: token1,
fee: FEE_TIER,
tickLower: lower,
tickUpper: upper,
amount0Desired: (token0 == token) ? tokenBal : 0,
amount1Desired: (token1 == token) ? tokenBal : 0,
amount0Min: 0,
amount1Min: 0,
recipient: address(this),
deadline: block.timestamp
})
);
}
function _burnAnyResidual(address token) internal {
uint256 rem = EtherToken(token).balanceOf(address(this));
if (rem > 0) {
EtherToken(token).transfer(0x000000000000000000000000000000000000dEaD, rem);
}
}
/// @dev After LP mint, perform WETH→token dev buy by swapping directly against the pool.
function _devBuyAfterMint(address token, uint256 amountETH, address recipient)
internal
returns (uint256 amountOut)
{
// Find pool and emit plan
(address token0, address token1) = token < WETH ? (token, WETH) : (WETH, token);
address pool = _v3Factory().getPool(token0, token1, FEE_TIER);
emit DevBuyPlanned(token, pool, recipient, amountETH);
// Wrap ETH to WETH
Uni.IWETH(WETH).deposit{value: amountETH}();
// Determine swap direction and safety price limit
bool zeroForOne = (WETH == token0);
uint160 sqrtPriceLimitX96 =
zeroForOne ? TickMath.MIN_SQRT_RATIO + 1 : TickMath.MAX_SQRT_RATIO - 1;
// Execute exact-input swap (pool will pull owed leg in the callback)
(int256 a0, int256 a1) = IUniV3PoolSwap(pool).swap(
recipient,
zeroForOne,
int256(amountETH), // exact input
sqrtPriceLimitX96,
abi.encode(token) // decoded in callback
);
// Amount of output tokens received
amountOut = uint256(-(zeroForOne ? a1 : a0));
}
/// @notice Uniswap v3 swap callback: pay the owed leg (WETH or token) to the pool and verify caller.
function uniswapV3SwapCallback(
int256 amount0Delta,
int256 amount1Delta,
bytes calldata data
) external {
address launchedToken = abi.decode(data, (address));
(address token0, address token1) = launchedToken < WETH ? (launchedToken, WETH) : (WETH, launchedToken);
address expectedPool = _v3Factory().getPool(token0, token1, FEE_TIER);
if (msg.sender != expectedPool) revert NotExpectedPool();
if (amount0Delta > 0) {
if (token0 == WETH) {
// pay WETH as ERC20 using local IERC20
require(IERC20(WETH).transfer(msg.sender, uint256(amount0Delta)), "WETH transfer0 failed");
} else {
require(IERC20(token0).transfer(msg.sender, uint256(amount0Delta)), "token0 transfer failed");
}
}
if (amount1Delta > 0) {
if (token1 == WETH) {
// pay WETH as ERC20 using local IERC20
require(IERC20(WETH).transfer(msg.sender, uint256(amount1Delta)), "WETH transfer1 failed");
} else {
require(IERC20(token1).transfer(msg.sender, uint256(amount1Delta)), "token1 transfer failed");
}
}
}
receive() external payable {}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_pm",
"type": "address",
"internalType": "address"
},
{
"name": "_router",
"type": "address",
"internalType": "address"
},
{
"name": "_weth",
"type": "address",
"internalType": "address"
},
{
"name": "_platform",
"type": "address",
"internalType": "address"
},
{
"name": "_registry",
"type": "address",
"internalType": "address"
},
{
"name": "_locker",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "BadMsgValue",
"type": "error",
"inputs": []
},
{
"name": "NoTokenBalance",
"type": "error",
"inputs": []
},
{
"name": "NotExpectedPool",
"type": "error",
"inputs": []
},
{
"name": "DevBuyExecuted",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amountETH",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "amountOut",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "DevBuyPlanned",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amountETH",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "PoolReady",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token0",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "initTick",
"type": "int24",
"indexed": false,
"internalType": "int24"
}
],
"anonymous": false
},
{
"name": "TokenLaunched",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "locker",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "lpTokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "creator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "LOCKER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "MAX_MAX_WALLET_WINDOW",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MIN_MAX_WALLET_BIPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "PLATFORM",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "POSITION_MANAGER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "REGISTRY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "SWAP_ROUTER02",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "WETH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "launch",
"type": "function",
"inputs": [
{
"name": "p",
"type": "tuple",
"components": [
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"internalType": "string"
},
{
"name": "doDevBuy",
"type": "bool",
"internalType": "bool"
},
{
"name": "devBuyETH",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct EtherV3Factory.LaunchParams"
}
],
"outputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "locker",
"type": "address",
"internalType": "address"
},
{
"name": "lpTokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "maxWalletBips",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "maxWalletWindowSecs",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "registry",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "setMaxWalletBips",
"type": "function",
"inputs": [
{
"name": "bips",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMaxWalletWindow",
"type": "function",
"inputs": [
{
"name": "secs",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "uniswapV3SwapCallback",
"type": "function",
"inputs": [
{
"name": "amount0Delta",
"type": "int256",
"internalType": "int256"
},
{
"name": "amount1Delta",
"type": "int256",
"internalType": "int256"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x610140604052346102e957612fa760c0813803918261001d816102ed565b9384928339810103126102e95761003381610326565b9061004060208201610326565b61004c60408301610326565b61005860608401610326565b9161007160a061006a60808701610326565b9501610326565b60c8600155610384600255946001600160a01b0381161515806102d7575b806102c5575b806102b3575b806102a1575b8061028f575b15610264576100d26100b960406102ed565b600681526562616420504d60d01b60208201528261033a565b6100fc6100df60406102ed565b600a8152693130b2103937baba32b960b11b60208201528361033a565b61012461010960406102ed565b60088152670c4c2c840ae8aa8960c31b60208201528461033a565b61015061013160406102ed565b600c81526b62616420726567697374727960a01b60208201528661033a565b61017a61015d60406102ed565b600a8152693130b2103637b1b5b2b960b11b60208201528761033a565b60805260a05260c05260e05261010052610120525f80546001600160a01b03191633179055604051612c249081610383823960805181818161083801528181610a6201528181610ac701528181610b2a01528181611b390152611d7d015260a051816105c4015260c051818181610157015281816107550152818161078601528181610df901528181610e3001528181610eed01528181610f3001528181610f6c0152818161112b015281816118f9015261197a015260e051818181610c3f01526119e5015261010051818181610bc00152611bf90152610120518181816107330152611bb50152f35b606460405162461bcd60e51b81526020600482015260046024820152637a65726f60e01b6044820152fd5b506001600160a01b03861615156100a7565b506001600160a01b03851615156100a1565b506001600160a01b038416151561009b565b506001600160a01b0383161515610095565b506001600160a01b038216151561008f565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761031257604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102e957565b3b156103435750565b604460209160405192839162461bcd60e51b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c806306433b1b14611be457806308ecd9a614611ba057806311ac03c114611b8357806318e7354b14611b685780631bea83fe14611b245780632f695e5414611b085780634c54a6e514611a9b5780636d51c44314611a195780637b10399914611a145780637efc77fa146119d05780638da5cb5b146119a9578063ad5c464814611965578063be3e10e214610611578063c1793492146105f3578063dc4712d9146105ae578063f2fde38b146105255763fa461e33146100e0575061000e565b34610522576060366003190112610522576024359060043560443567ffffffffffffffff811161051c573660238201121561051c57806004013567ffffffffffffffff8111610520578101366024820111610520576020908290031261051c57602401359260018060a01b03841680940361051c577f0000000000000000000000000000000000000000000000000000000000000000936001600160a01b03851690818110156105165794925b6001600160a01b0361019d611d68565b604051630b4c774160e11b81526001600160a01b0389811660048301528716602482015261271060448201529160209183916064918391165afa90811561050b5786916104dc575b506001600160a01b031633036104cd57849585821361036e575b505083821361020d57505050f35b6020926001600160a01b03168181036102d6575060405163a9059cbb60e01b815233600482015260248101929092529092839160449183915af19081156102cb57829161029c575b501561025f575b80f35b60405162461bcd60e51b815260206004820152601560248201527415d15512081d1c985b9cd9995c8c4819985a5b1959605a1b6044820152606490fd5b6102be915060203d6020116102c4575b6102b68183611cc0565b810190611ce2565b5f610255565b503d6102ac565b6040513d84823e3d90fd5b60405163a9059cbb60e01b8152336004820152602481019390935291938492604492508391905af19081156102cb57829161034f575b5061025c5760405162461bcd60e51b81526020600482015260166024820152751d1bdad95b8c481d1c985b9cd9995c8819985a5b195960521b6044820152606490fd5b610368915060203d6020116102c4576102b68183611cc0565b5f61030c565b919490916001600160a01b031680860361042e57505060405163a9059cbb60e01b8152336004820152602481019190915260208160448188885af1908115610423578591610404575b50156103c75783925b5f806101ff565b60405162461bcd60e51b815260206004820152601560248201527415d15512081d1c985b9cd9995c8c0819985a5b1959605a1b6044820152606490fd5b61041d915060203d6020116102c4576102b68183611cc0565b5f6103b7565b6040513d87823e3d90fd5b60405163a9059cbb60e01b81523360048201526024810193909352602091839160449183915af19081156104235785916104ae575b50156104705783926103c0565b60405162461bcd60e51b81526020600482015260166024820152751d1bdad95b8c081d1c985b9cd9995c8819985a5b195960521b6044820152606490fd5b6104c7915060203d6020116102c4576102b68183611cc0565b5f610463565b6324e09c7360e21b8552600485fd5b6104fe915060203d602011610504575b6104f68183611cc0565b810190611cfa565b5f6101e5565b503d6104ec565b6040513d88823e3d90fd5b9261018d565b8280fd5b835b80fd5b5034610522576020366003190112610522576004356001600160a01b038116908190036105aa578154610562336001600160a01b03831614611c28565b8115610578576001600160a01b03191617815580f35b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379037bbb732b960b11b6044820152606490fd5b5080fd5b50346105225780600319360112610522576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346105225780600319360112610522576020600154604051908152f35b5060203660031901126112a35767ffffffffffffffff600435116112a3576004356004016080600319600435360301126112a357610653604460043501611c60565b1561195f57606460043501355b340361195057806106748161068393611c6d565b92909160246004350190611c6d565b909260405193610dcd928386019386851067ffffffffffffffff86111761193c5786956106cf946106c192611e228939608087526080870191611ca0565b918483036020860152611ca0565b906b033b2e3c9fd0803ce8000000604082015260603091015203905ff080156116185760405163a9059cbb60e01b815261dead6004820152600160248201526001600160a01b0391909116906020816044815f865af180156116185761191d575b507f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168210156118f5577f000000000000000000000000000000000000000000000000000000000000000090825b6001600160a01b03811684149283156118eb5762032bb719915b6001600160a01b036107d2611d68565b604051630b4c774160e11b81526001600160a01b0384811660048301528516602482015261271060448201529116602082606481845afa918215611618575f926118ca575b506001600160a01b0382161561140f575b5060405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201525f196024820152602081604481898c5af1801561050b576113f2575b506040516370a0823160e01b81523060048201526020816024818b5afa90811561050b5786916113c0575b5080156113b1576001600160a01b038416880361134a57600285900b5f1901627fffff198112627fffff821317611336576108e690611de1565b906108fc6108f762061a8084611d4b565b611de1565b97620d891f1961090b81611de1565b60020b8a60020b12611324575b505b1561131d57805b6001600160a01b0386168a0361131557915b604051988961016081011067ffffffffffffffff6101608c011117611301576101608a0160405260018060a01b0386168a5260018060a01b03871660208b015261271060408b015260020b60608a015260020b608089015260a088015260c08701528460e087015284610100870152306101208701524261014087015261014060405196634418b22b60e11b885260018060a01b03815116600489015260018060a01b03602082015116602489015262ffffff6040820151166044890152606081015160020b6064890152608081015160020b608489015260a081015160a489015260c081015160c489015260e081015160e489015261010081015161010489015260018060a01b03610120820151166101248901520151610144870152608086610164818860018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19586156104235785966112af575b506040516370a0823160e01b81523060048201526020816024818b5afa90811561050b578691611279575b508061122a575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b156110cc57604051632142170760e11b81523060048201526001600160a01b038916602482015260448101879052858180606481010381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561050b57908691611215575b50506001600160a01b038816803b156112065760405163451d0acd60e01b81526001600160a01b038916600482015260248101889052868160448183865af1801561120a579087916111f1575b5050604051633e9d4d2160e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081600481865afa801561118b5788906111ae575b61ffff915016806127100361ffff811161119a57833b1561119657604051637cc7597b60e11b8152600481018c905233602482015260448101929092527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316606483015261ffff166084820152878160a48183875af1801561118b57908891611176575b5050813b1561117257869060448a8360405195869485936319767a1160e21b8552600485015260248401525af1801561050b57889392918791611155575b5050604080516001600160a01b039384168152948316602086015260029590950b948401949094529092169182917f91194d608f96404a06e1e376a0ae6b37886ad0993b10957c74ee0933886cd04c90606090a3604080516001600160a01b0387168152602081018590528291339187917ff9bd8997a2a41bb839254909d3141aee77a50e4e6239e2475a4e25881ffe72bb91a4610d6c604460043501611c60565b610df0575b60015460025490853b15610520576040519263d7ac5ab760e01b8452600484015233602484015260448301526064820152818160848183885af180156102cb57610ddb575b5050604080516001600160a01b03938416815293909216602084015290820152606090f35b610de6828092611cc0565b6105225780610db6565b600435606401357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168510156111295784610ea160207f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03610e60611d68565b604051630b4c774160e11b81526001600160a01b03808816600483015290931660248401526127106044840152919384929190911690829081906064820190565b03915afa90811561042357859161110a575b5060018060a01b03169060405183815282887fd8ad54019a099d4ebfea41e25b364d2c825674e4508809cfa42357047884b13960203394a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b156110cc57604051630d0e30db60e41b81528581600481877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561050b579086916110f5575b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169116149081156110d85760406401000276a4915b81519060208201938a855260208352610fc38484611cc0565b8860c48551809781968295630251596160e31b84523360048501528b60248501528c604485015260018060a01b0316606484015260a060848401525180918160a48501528484015e8181018301849052601f01601f191681010301925af19182156104235785918693611099575b501561109257505b600160ff1b811461107e576040519182528303602082015281857f24905ff35751445fa7edf8e57db16ac1b66be70127c782a7d5fffb7c2d9ad7b960403394a4610d71565b634e487b7160e01b84526011600452602484fd5b9050611039565b915091506040813d6040116110d0575b816110b660409383611cc0565b810103126110cc5760208151910151915f611031565b8480fd5b3d91506110a9565b604073fffd8963efd1fc6a506488495d951d5263988d2591610faa565b816110ff91611cc0565b6110cc57845f610f68565b611123915060203d602011610504576104f68183611cc0565b5f610eb3565b7f0000000000000000000000000000000000000000000000000000000000000000610ea1602087610e50565b81929394509061116491611cc0565b6110cc57908691855f610cca565b8680fd5b8161118091611cc0565b61117257865f610c8c565b6040513d8a823e3d90fd5b8880fd5b634e487b7160e01b89526011600452602489fd5b506020813d6020116111e9575b816111c860209383611cc0565b810103126111e5575161ffff811681036111e55761ffff90610c00565b8780fd5b3d91506111bb565b816111fb91611cc0565b61120657855f610baf565b8580fd5b6040513d89823e3d90fd5b8161121f91611cc0565b6110cc57845f610b62565b6040519063a9059cbb60e01b825261dead60048301526024820152602081604481898c5af1801561050b5715610ac4576112729060203d6020116102c4576102b68183611cc0565b505f610ac4565b90506020813d6020116112a7575b8161129460209383611cc0565b810103126112a357515f610abd565b5f80fd5b3d9150611287565b9095506080813d6080116112f9575b816112cb60809383611cc0565b810103126110cc57602081519101516fffffffffffffffffffffffffffffffff8116036110cc57945f610a92565b3d91506112be565b634e487b7160e01b89526041600452602489fd5b508691610933565b8690610921565b61132f919950611de1565b975f610918565b634e487b7160e01b87526011600452602487fd5b9560018560020b01627fffff198112627fffff8213176113365761136d90611de1565b9661137e6108f762061a808a611d19565b91620d892061138c81611de1565b60020b8460020b1361139f575b5061091a565b6113aa919350611de1565b915f611399565b633dbd9b6d60e11b8652600486fd5b90506020813d6020116113ea575b816113db60209383611cc0565b810103126112a357515f6108ac565b3d91506113ce565b61140a9060203d6020116102c4576102b68183611cc0565b610881565b60405163a167129560e01b81526001600160a01b0384811660048301528516602482015261271060448201529150602090829060649082905f905af1908115611618575f916118ab575b50808460020b620d89e7198112158061189e575b15611875575f81121561186e57855f0360020b905b6001821660020b1561185c576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b16916002811660020b611840575b6004811660020b611824575b6008811660020b611808575b6010811660020b6117ec575b6020811660020b6117d0575b6040811660020b6117b4575b6080811660020b611798575b610100811660020b61177c575b610200811660020b611760575b610400811660020b611744575b610800811660020b611728575b611000811660020b61170c575b612000811660020b6116f0575b614000811660020b6116d4575b618000811660020b6116b8575b62010000811660020b61169c575b62020000811660020b611681575b62040000811660020b611666575b620800001660020b61164d575b5f1261162b575b63ffffffff8116611623575f915b6001600160a01b031691823b156112a35760405163f637731d60e01b815260209290921c60ff909116016001600160a01b03166004820152905f908290602490829084905af180156116185715610828576116109195505f90611cc0565b5f935f610828565b6040513d5f823e3d90fd5b6001916115b2565b8015611639575f19046115a4565b634e487b7160e01b5f52601260045260245ffd5b6b048a170391f7dc42444e8fa290910260801c9061159d565b6d2216e584f5fa1ea926041bedfe9890920260801c91611590565b916e5d6af8dedb81196699c329225ee6040260801c91611582565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91611574565b916f31be135f97d08fd981231505542fcfa60260801c91611566565b916f70d869a156d2a1b890bb3df62baf32f70260801c91611559565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161154c565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161153f565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91611532565b916ff3392b0822b70005940c7a398e4b70f30260801c91611525565b916ff987a7253ac413176f2b074cf7815e540260801c91611518565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161150b565b916ffe5dee046a99a2a811c461f1969c30530260801c916114fe565b916fff2ea16466c96a3843ec78b326b528610260801c916114f2565b916fff973b41fa98c081472e6896dfb254c00260801c916114e6565b916fffcb9843d60f6159c9db58835c9266440260801c916114da565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916114ce565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916114c2565b916ffff97272373d413259a46990580e213a0260801c916114b6565b6001600160881b03600160801b6114a8565b8590611482565b60405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606490fd5b50620d89e881131561146d565b6118c4915060203d602011610504576104f68183611cc0565b5f611459565b6118e491925060203d602011610504576104f68183611cc0565b905f610817565b62032bb8916107c2565b81907f00000000000000000000000000000000000000000000000000000000000000006107a8565b6119359060203d6020116102c4576102b68183611cc0565b505f610730565b634e487b7160e01b5f52604160045260245ffd5b632125a1e760e11b5f5260045ffd5b5f610660565b346112a3575f3660031901126112a3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346112a3575f3660031901126112a3575f546040516001600160a01b039091168152602090f35b346112a3575f3660031901126112a3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b611be4565b346112a35760203660031901126112a357600435611a4160018060a01b035f54163314611c28565b606481101580611a8f575b15611a5657600155005b60405162461bcd60e51b815260206004820152601160248201527062697073206f7574206f662072616e676560781b6044820152606490fd5b50612710811115611a4c565b346112a35760203660031901126112a357600435611ac360018060a01b035f54163314611c28565b610e108111611ad157600255005b60405162461bcd60e51b815260206004820152600f60248201526e77696e646f7720746f6f206c6f6e6760881b6044820152606490fd5b346112a3575f3660031901126112a3576020604051610e108152f35b346112a3575f3660031901126112a3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346112a3575f3660031901126112a357602060405160648152f35b346112a3575f3660031901126112a3576020600254604051908152f35b346112a3575f3660031901126112a3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346112a3575f3660031901126112a3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b15611c2f57565b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b3580151581036112a35790565b903590601e19813603018212156112a3570180359067ffffffffffffffff82116112a3576020019181360383136112a357565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761193c57604052565b908160209103126112a3575180151581036112a35790565b908160209103126112a357516001600160a01b03811681036112a35790565b9060020b9060020b0190627fffff198212627fffff831317611d3757565b634e487b7160e01b5f52601160045260245ffd5b600291820b910b0390627fffff198212627fffff831317611d3757565b60405163c45a015560e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611618575f91611dc2575b506001600160a01b031690565b611ddb915060203d602011610504576104f68183611cc0565b5f611db5565b60c88160020b07908160020b80155f14611dfc575090505b90565b5f1215611e0d5790611df991611d4b565b611e1b60c8611df993611d19565b90611d4b56fe60806040523461039a57610dcd803803806100198161039e565b92833981019060808183031261039a5780516001600160401b03811161039a57826100459183016103c3565b602082015190926001600160401b03821161039a576100659183016103c3565b60408201516060909201516001600160a01b03811692919083900361039a5783516001600160401b0381116102a3575f54600181811c91168015610390575b602082101461028557601f8111610323575b50602094601f82116001146102c2579481929394955f926102b7575b50508160011b915f199060031b1c1916175f555b8051906001600160401b0382116102a357600154600181811c91168015610299575b602082101461028557601f8111610217575b50602090601f83116001146101a05792825f516020610dad5f395f51905f52936020935f968792610195575b50508160011b9186199060031b1c1916176001555b6002819055848452600382526040808520829055600580546001600160a01b0319163317905551908152a360405161099890816104158239f35b015190505f80610146565b90601f1983169160015f52815f20925f5b8181106101ff5750936020935f9693600193835f516020610dad5f395f51905f5298106101e7575b505050811b0160015561015b565b0151871960f88460031b161c191690555f80806101d9565b929360206001819287860151815501950193016101b1565b8281111561011a5760015f52601f830160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66020851061027d575b81601f9101920160051c03905f5b82811061027057505061011a565b5f82820155600101610262565b5f9150610254565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610108565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d2565b601f198216955f8052805f20915f5b88811061030b575083600195969798106102f3575b505050811b015f556100e6565b01515f1960f88460031b161c191690555f80806102e6565b919260206001819286850151815501940192016102d1565b818111156100b6575f8052601f820160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360208410610388575b81601f9101920160051c03905f5b82811061037b5750506100b6565b5f8282015560010161036d565b5f915061035f565b90607f16906100a4565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102a357604052565b81601f8201121561039a578051906001600160401b0382116102a3576103f2601f8301601f191660200161039e565b928284526020838301011161039a57815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816302d05d3f1461072f5750806306fdde031461065d578063095ea7b3146105e457806311ac03c1146105c757806316f0115b1461059f57806318160ddd1461058257806323b872dd146104b9578063313ce5671461049e57806370a0823114610466578063790ca413146104495780638b00cb7b1461042757806395d89b4114610309578063a9059cbb146102d8578063c45a0155146102b0578063d7ac5ab714610148578063dd62ed3e146100f85763f8b45b05146100d7575f80fd5b346100f4575f3660031901126100f4576020600954604051908152f35b5f80fd5b346100f45760403660031901126100f45761011161077c565b610119610792565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b346100f45760803660031901126100f45761016161077c565b610169610792565b60055490916064359160443591906001600160a01b0316330361027c57600b549060ff821661024f5760018060a01b031693846bffffffffffffffffffffffff60a01b600654161760065560018060a01b03166bffffffffffffffffffffffff60a01b60075416176007554260085560025482810292818404149015171561023b577f60807e3513391f1e1a80986a914dd67d5d029c6f16d661561c3fdd630971232c92600161271060609404928360095582600a5560ff191617600b556040519142835260208301526040820152a2005b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b8152602060048201526005602482015264185c9b595960da1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b6f6e6c7920666163746f727960a01b6044820152606490fd5b346100f4575f3660031901126100f4576005546040516001600160a01b039091168152602090f35b346100f45760403660031901126100f4576102fe6102f461077c565b60243590336107b5565b602060405160018152f35b346100f4575f3660031901126100f4576040515f6001548060011c9060018116801561041d575b602083108114610409578285529081156103ed5750600114610397575b50819003601f01601f191681019067ffffffffffffffff821181831017610383576040829052819061037f9082610752565b0390f35b634e487b7160e01b5f52604160045260245ffd5b60015f9081529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8282106103d75750602091508201018261034d565b60018160209254838588010152019101906103c2565b90506020925060ff191682840152151560051b8201018261034d565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610330565b346100f4575f3660031901126100f457602060ff600b54166040519015158152f35b346100f4575f3660031901126100f4576020600854604051908152f35b346100f45760203660031901126100f4576001600160a01b0361048761077c565b165f526003602052602060405f2054604051908152f35b346100f4575f3660031901126100f457602060405160128152f35b346100f45760603660031901126100f4576104d261077c565b6104da610792565b6001600160a01b0382165f81815260046020908152604080832033845290915290205490926044359291838110610551576001810161051f575b506102fe93506107b5565b83810390811161023b576102fe945f52600460205260405f2060018060a01b0333165f5260205260405f205584610514565b60405162461bcd60e51b8152602060048201526009602482015268616c6c6f77616e636560b81b6044820152606490fd5b346100f4575f3660031901126100f4576020600254604051908152f35b346100f4575f3660031901126100f4576006546040516001600160a01b039091168152602090f35b346100f4575f3660031901126100f4576020600a54604051908152f35b346100f45760403660031901126100f4576105fd61077c565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f4575f3660031901126100f4576040515f5f548060011c90600181168015610725575b602083108114610409578285529081156103ed57506001146106d15750819003601f01601f191681019067ffffffffffffffff821181831017610383576040829052819061037f9082610752565b5f8080529091507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b82821061070f5750602091508201018261034d565b60018160209254838588010152019101906106fa565b91607f1691610683565b346100f4575f3660031901126100f4576007546001600160a01b03168152602090f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100f457565b602435906001600160a01b03821682036100f457565b9190820180921161023b57565b60ff600b541680610957575b80610940575b80610928575b80610910575b806108f8575b806108e6575b610887575b60018060a01b031690815f5260036020528260405f2054106108585760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91835f526003825260405f2085815403905560018060a01b031693845f526003825260405f20818154019055604051908152a3565b60405162461bcd60e51b815260206004820152600760248201526662616c616e636560c81b6044820152606490fd5b60018060a01b0382165f5260036020526108a58360405f20546107a8565b60095410156107e45760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606490fd5b506001600160a01b03821615156107df565b506005546001600160a01b03838116911614156107d9565b506007546001600160a01b03838116911614156107d3565b506006546001600160a01b03838116911614156107cd565b50610950600854600a54906107a8565b42106107c7565b5060095415156107c156fea264697066735822122024800f20e7b8d0c2656ba1cbfc13bd4ba1bfedea34cfc2c66a1c625b9f23fa8f64736f6c63430008220033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dfbb8401a7f27f9dd3f7936677e60bccbf7a220ac64bd2f35f805f7ca795ef1364736f6c6343000822003300000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d3000000000000000000000000caf681a66d020601342297493863e78c959e5cb20000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad730000000000000000000000002a3f345e5838b27147a0e96fedacc01327486d410000000000000000000000006e3482c66dcf5075eb85725d9a4d540c1d6ecea4000000000000000000000000ce75f1bd51e733e773936180c0f7af9f2aa2334b
0x6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c806306433b1b14611be457806308ecd9a614611ba057806311ac03c114611b8357806318e7354b14611b685780631bea83fe14611b245780632f695e5414611b085780634c54a6e514611a9b5780636d51c44314611a195780637b10399914611a145780637efc77fa146119d05780638da5cb5b146119a9578063ad5c464814611965578063be3e10e214610611578063c1793492146105f3578063dc4712d9146105ae578063f2fde38b146105255763fa461e33146100e0575061000e565b34610522576060366003190112610522576024359060043560443567ffffffffffffffff811161051c573660238201121561051c57806004013567ffffffffffffffff8111610520578101366024820111610520576020908290031261051c57602401359260018060a01b03841680940361051c577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73936001600160a01b03851690818110156105165794925b6001600160a01b0361019d611d68565b604051630b4c774160e11b81526001600160a01b0389811660048301528716602482015261271060448201529160209183916064918391165afa90811561050b5786916104dc575b506001600160a01b031633036104cd57849585821361036e575b505083821361020d57505050f35b6020926001600160a01b03168181036102d6575060405163a9059cbb60e01b815233600482015260248101929092529092839160449183915af19081156102cb57829161029c575b501561025f575b80f35b60405162461bcd60e51b815260206004820152601560248201527415d15512081d1c985b9cd9995c8c4819985a5b1959605a1b6044820152606490fd5b6102be915060203d6020116102c4575b6102b68183611cc0565b810190611ce2565b5f610255565b503d6102ac565b6040513d84823e3d90fd5b60405163a9059cbb60e01b8152336004820152602481019390935291938492604492508391905af19081156102cb57829161034f575b5061025c5760405162461bcd60e51b81526020600482015260166024820152751d1bdad95b8c481d1c985b9cd9995c8819985a5b195960521b6044820152606490fd5b610368915060203d6020116102c4576102b68183611cc0565b5f61030c565b919490916001600160a01b031680860361042e57505060405163a9059cbb60e01b8152336004820152602481019190915260208160448188885af1908115610423578591610404575b50156103c75783925b5f806101ff565b60405162461bcd60e51b815260206004820152601560248201527415d15512081d1c985b9cd9995c8c0819985a5b1959605a1b6044820152606490fd5b61041d915060203d6020116102c4576102b68183611cc0565b5f6103b7565b6040513d87823e3d90fd5b60405163a9059cbb60e01b81523360048201526024810193909352602091839160449183915af19081156104235785916104ae575b50156104705783926103c0565b60405162461bcd60e51b81526020600482015260166024820152751d1bdad95b8c081d1c985b9cd9995c8819985a5b195960521b6044820152606490fd5b6104c7915060203d6020116102c4576102b68183611cc0565b5f610463565b6324e09c7360e21b8552600485fd5b6104fe915060203d602011610504575b6104f68183611cc0565b810190611cfa565b5f6101e5565b503d6104ec565b6040513d88823e3d90fd5b9261018d565b8280fd5b835b80fd5b5034610522576020366003190112610522576004356001600160a01b038116908190036105aa578154610562336001600160a01b03831614611c28565b8115610578576001600160a01b03191617815580f35b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379037bbb732b960b11b6044820152606490fd5b5080fd5b50346105225780600319360112610522576040517f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b03168152602090f35b50346105225780600319360112610522576020600154604051908152f35b5060203660031901126112a35767ffffffffffffffff600435116112a3576004356004016080600319600435360301126112a357610653604460043501611c60565b1561195f57606460043501355b340361195057806106748161068393611c6d565b92909160246004350190611c6d565b909260405193610dcd928386019386851067ffffffffffffffff86111761193c5786956106cf946106c192611e228939608087526080870191611ca0565b918483036020860152611ca0565b906b033b2e3c9fd0803ce8000000604082015260603091015203905ff080156116185760405163a9059cbb60e01b815261dead6004820152600160248201526001600160a01b0391909116906020816044815f865af180156116185761191d575b507f000000000000000000000000ce75f1bd51e733e773936180c0f7af9f2aa2334b917f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03168210156118f5577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7390825b6001600160a01b03811684149283156118eb5762032bb719915b6001600160a01b036107d2611d68565b604051630b4c774160e11b81526001600160a01b0384811660048301528516602482015261271060448201529116602082606481845afa918215611618575f926118ca575b506001600160a01b0382161561140f575b5060405163095ea7b360e01b81527f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b031660048201525f196024820152602081604481898c5af1801561050b576113f2575b506040516370a0823160e01b81523060048201526020816024818b5afa90811561050b5786916113c0575b5080156113b1576001600160a01b038416880361134a57600285900b5f1901627fffff198112627fffff821317611336576108e690611de1565b906108fc6108f762061a8084611d4b565b611de1565b97620d891f1961090b81611de1565b60020b8a60020b12611324575b505b1561131d57805b6001600160a01b0386168a0361131557915b604051988961016081011067ffffffffffffffff6101608c011117611301576101608a0160405260018060a01b0386168a5260018060a01b03871660208b015261271060408b015260020b60608a015260020b608089015260a088015260c08701528460e087015284610100870152306101208701524261014087015261014060405196634418b22b60e11b885260018060a01b03815116600489015260018060a01b03602082015116602489015262ffffff6040820151166044890152606081015160020b6064890152608081015160020b608489015260a081015160a489015260c081015160c489015260e081015160e489015261010081015161010489015260018060a01b03610120820151166101248901520151610144870152608086610164818860018060a01b037f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d3165af19586156104235785966112af575b506040516370a0823160e01b81523060048201526020816024818b5afa90811561050b578691611279575b508061122a575b507f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03163b156110cc57604051632142170760e11b81523060048201526001600160a01b038916602482015260448101879052858180606481010381837f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165af1801561050b57908691611215575b50506001600160a01b038816803b156112065760405163451d0acd60e01b81526001600160a01b038916600482015260248101889052868160448183865af1801561120a579087916111f1575b5050604051633e9d4d2160e21b81527f0000000000000000000000006e3482c66dcf5075eb85725d9a4d540c1d6ecea46001600160a01b03169190602081600481865afa801561118b5788906111ae575b61ffff915016806127100361ffff811161119a57833b1561119657604051637cc7597b60e11b8152600481018c905233602482015260448101929092527f0000000000000000000000002a3f345e5838b27147a0e96fedacc01327486d416001600160a01b0316606483015261ffff166084820152878160a48183875af1801561118b57908891611176575b5050813b1561117257869060448a8360405195869485936319767a1160e21b8552600485015260248401525af1801561050b57889392918791611155575b5050604080516001600160a01b039384168152948316602086015260029590950b948401949094529092169182917f91194d608f96404a06e1e376a0ae6b37886ad0993b10957c74ee0933886cd04c90606090a3604080516001600160a01b0387168152602081018590528291339187917ff9bd8997a2a41bb839254909d3141aee77a50e4e6239e2475a4e25881ffe72bb91a4610d6c604460043501611c60565b610df0575b60015460025490853b15610520576040519263d7ac5ab760e01b8452600484015233602484015260448301526064820152818160848183885af180156102cb57610ddb575b5050604080516001600160a01b03938416815293909216602084015290820152606090f35b610de6828092611cc0565b6105225780610db6565b600435606401357f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03168510156111295784610ea160207f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad735b6001600160a01b03610e60611d68565b604051630b4c774160e11b81526001600160a01b03808816600483015290931660248401526127106044840152919384929190911690829081906064820190565b03915afa90811561042357859161110a575b5060018060a01b03169060405183815282887fd8ad54019a099d4ebfea41e25b364d2c825674e4508809cfa42357047884b13960203394a47f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03163b156110cc57604051630d0e30db60e41b81528581600481877f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03165af1801561050b579086916110f5575b50507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b039081169116149081156110d85760406401000276a4915b81519060208201938a855260208352610fc38484611cc0565b8860c48551809781968295630251596160e31b84523360048501528b60248501528c604485015260018060a01b0316606484015260a060848401525180918160a48501528484015e8181018301849052601f01601f191681010301925af19182156104235785918693611099575b501561109257505b600160ff1b811461107e576040519182528303602082015281857f24905ff35751445fa7edf8e57db16ac1b66be70127c782a7d5fffb7c2d9ad7b960403394a4610d71565b634e487b7160e01b84526011600452602484fd5b9050611039565b915091506040813d6040116110d0575b816110b660409383611cc0565b810103126110cc5760208151910151915f611031565b8480fd5b3d91506110a9565b604073fffd8963efd1fc6a506488495d951d5263988d2591610faa565b816110ff91611cc0565b6110cc57845f610f68565b611123915060203d602011610504576104f68183611cc0565b5f610eb3565b7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73610ea1602087610e50565b81929394509061116491611cc0565b6110cc57908691855f610cca565b8680fd5b8161118091611cc0565b61117257865f610c8c565b6040513d8a823e3d90fd5b8880fd5b634e487b7160e01b89526011600452602489fd5b506020813d6020116111e9575b816111c860209383611cc0565b810103126111e5575161ffff811681036111e55761ffff90610c00565b8780fd5b3d91506111bb565b816111fb91611cc0565b61120657855f610baf565b8580fd5b6040513d89823e3d90fd5b8161121f91611cc0565b6110cc57845f610b62565b6040519063a9059cbb60e01b825261dead60048301526024820152602081604481898c5af1801561050b5715610ac4576112729060203d6020116102c4576102b68183611cc0565b505f610ac4565b90506020813d6020116112a7575b8161129460209383611cc0565b810103126112a357515f610abd565b5f80fd5b3d9150611287565b9095506080813d6080116112f9575b816112cb60809383611cc0565b810103126110cc57602081519101516fffffffffffffffffffffffffffffffff8116036110cc57945f610a92565b3d91506112be565b634e487b7160e01b89526041600452602489fd5b508691610933565b8690610921565b61132f919950611de1565b975f610918565b634e487b7160e01b87526011600452602487fd5b9560018560020b01627fffff198112627fffff8213176113365761136d90611de1565b9661137e6108f762061a808a611d19565b91620d892061138c81611de1565b60020b8460020b1361139f575b5061091a565b6113aa919350611de1565b915f611399565b633dbd9b6d60e11b8652600486fd5b90506020813d6020116113ea575b816113db60209383611cc0565b810103126112a357515f6108ac565b3d91506113ce565b61140a9060203d6020116102c4576102b68183611cc0565b610881565b60405163a167129560e01b81526001600160a01b0384811660048301528516602482015261271060448201529150602090829060649082905f905af1908115611618575f916118ab575b50808460020b620d89e7198112158061189e575b15611875575f81121561186e57855f0360020b905b6001821660020b1561185c576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b16916002811660020b611840575b6004811660020b611824575b6008811660020b611808575b6010811660020b6117ec575b6020811660020b6117d0575b6040811660020b6117b4575b6080811660020b611798575b610100811660020b61177c575b610200811660020b611760575b610400811660020b611744575b610800811660020b611728575b611000811660020b61170c575b612000811660020b6116f0575b614000811660020b6116d4575b618000811660020b6116b8575b62010000811660020b61169c575b62020000811660020b611681575b62040000811660020b611666575b620800001660020b61164d575b5f1261162b575b63ffffffff8116611623575f915b6001600160a01b031691823b156112a35760405163f637731d60e01b815260209290921c60ff909116016001600160a01b03166004820152905f908290602490829084905af180156116185715610828576116109195505f90611cc0565b5f935f610828565b6040513d5f823e3d90fd5b6001916115b2565b8015611639575f19046115a4565b634e487b7160e01b5f52601260045260245ffd5b6b048a170391f7dc42444e8fa290910260801c9061159d565b6d2216e584f5fa1ea926041bedfe9890920260801c91611590565b916e5d6af8dedb81196699c329225ee6040260801c91611582565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91611574565b916f31be135f97d08fd981231505542fcfa60260801c91611566565b916f70d869a156d2a1b890bb3df62baf32f70260801c91611559565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161154c565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161153f565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91611532565b916ff3392b0822b70005940c7a398e4b70f30260801c91611525565b916ff987a7253ac413176f2b074cf7815e540260801c91611518565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161150b565b916ffe5dee046a99a2a811c461f1969c30530260801c916114fe565b916fff2ea16466c96a3843ec78b326b528610260801c916114f2565b916fff973b41fa98c081472e6896dfb254c00260801c916114e6565b916fffcb9843d60f6159c9db58835c9266440260801c916114da565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916114ce565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916114c2565b916ffff97272373d413259a46990580e213a0260801c916114b6565b6001600160881b03600160801b6114a8565b8590611482565b60405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606490fd5b50620d89e881131561146d565b6118c4915060203d602011610504576104f68183611cc0565b5f611459565b6118e491925060203d602011610504576104f68183611cc0565b905f610817565b62032bb8916107c2565b81907f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736107a8565b6119359060203d6020116102c4576102b68183611cc0565b505f610730565b634e487b7160e01b5f52604160045260245ffd5b632125a1e760e11b5f5260045ffd5b5f610660565b346112a3575f3660031901126112a3576040517f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03168152602090f35b346112a3575f3660031901126112a3575f546040516001600160a01b039091168152602090f35b346112a3575f3660031901126112a3576040517f0000000000000000000000002a3f345e5838b27147a0e96fedacc01327486d416001600160a01b03168152602090f35b611be4565b346112a35760203660031901126112a357600435611a4160018060a01b035f54163314611c28565b606481101580611a8f575b15611a5657600155005b60405162461bcd60e51b815260206004820152601160248201527062697073206f7574206f662072616e676560781b6044820152606490fd5b50612710811115611a4c565b346112a35760203660031901126112a357600435611ac360018060a01b035f54163314611c28565b610e108111611ad157600255005b60405162461bcd60e51b815260206004820152600f60248201526e77696e646f7720746f6f206c6f6e6760881b6044820152606490fd5b346112a3575f3660031901126112a3576020604051610e108152f35b346112a3575f3660031901126112a3576040517f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03168152602090f35b346112a3575f3660031901126112a357602060405160648152f35b346112a3575f3660031901126112a3576020600254604051908152f35b346112a3575f3660031901126112a3576040517f000000000000000000000000ce75f1bd51e733e773936180c0f7af9f2aa2334b6001600160a01b03168152602090f35b346112a3575f3660031901126112a3576040517f0000000000000000000000006e3482c66dcf5075eb85725d9a4d540c1d6ecea46001600160a01b03168152602090f35b15611c2f57565b60405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b3580151581036112a35790565b903590601e19813603018212156112a3570180359067ffffffffffffffff82116112a3576020019181360383136112a357565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761193c57604052565b908160209103126112a3575180151581036112a35790565b908160209103126112a357516001600160a01b03811681036112a35790565b9060020b9060020b0190627fffff198212627fffff831317611d3757565b634e487b7160e01b5f52601160045260245ffd5b600291820b910b0390627fffff198212627fffff831317611d3757565b60405163c45a015560e01b81526020816004817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa908115611618575f91611dc2575b506001600160a01b031690565b611ddb915060203d602011610504576104f68183611cc0565b5f611db5565b60c88160020b07908160020b80155f14611dfc575090505b90565b5f1215611e0d5790611df991611d4b565b611e1b60c8611df993611d19565b90611d4b56fe60806040523461039a57610dcd803803806100198161039e565b92833981019060808183031261039a5780516001600160401b03811161039a57826100459183016103c3565b602082015190926001600160401b03821161039a576100659183016103c3565b60408201516060909201516001600160a01b03811692919083900361039a5783516001600160401b0381116102a3575f54600181811c91168015610390575b602082101461028557601f8111610323575b50602094601f82116001146102c2579481929394955f926102b7575b50508160011b915f199060031b1c1916175f555b8051906001600160401b0382116102a357600154600181811c91168015610299575b602082101461028557601f8111610217575b50602090601f83116001146101a05792825f516020610dad5f395f51905f52936020935f968792610195575b50508160011b9186199060031b1c1916176001555b6002819055848452600382526040808520829055600580546001600160a01b0319163317905551908152a360405161099890816104158239f35b015190505f80610146565b90601f1983169160015f52815f20925f5b8181106101ff5750936020935f9693600193835f516020610dad5f395f51905f5298106101e7575b505050811b0160015561015b565b0151871960f88460031b161c191690555f80806101d9565b929360206001819287860151815501950193016101b1565b8281111561011a5760015f52601f830160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66020851061027d575b81601f9101920160051c03905f5b82811061027057505061011a565b5f82820155600101610262565b5f9150610254565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610108565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d2565b601f198216955f8052805f20915f5b88811061030b575083600195969798106102f3575b505050811b015f556100e6565b01515f1960f88460031b161c191690555f80806102e6565b919260206001819286850151815501940192016102d1565b818111156100b6575f8052601f820160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360208410610388575b81601f9101920160051c03905f5b82811061037b5750506100b6565b5f8282015560010161036d565b5f915061035f565b90607f16906100a4565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102a357604052565b81601f8201121561039a578051906001600160401b0382116102a3576103f2601f8301601f191660200161039e565b928284526020838301011161039a57815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816302d05d3f1461072f5750806306fdde031461065d578063095ea7b3146105e457806311ac03c1146105c757806316f0115b1461059f57806318160ddd1461058257806323b872dd146104b9578063313ce5671461049e57806370a0823114610466578063790ca413146104495780638b00cb7b1461042757806395d89b4114610309578063a9059cbb146102d8578063c45a0155146102b0578063d7ac5ab714610148578063dd62ed3e146100f85763f8b45b05146100d7575f80fd5b346100f4575f3660031901126100f4576020600954604051908152f35b5f80fd5b346100f45760403660031901126100f45761011161077c565b610119610792565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b346100f45760803660031901126100f45761016161077c565b610169610792565b60055490916064359160443591906001600160a01b0316330361027c57600b549060ff821661024f5760018060a01b031693846bffffffffffffffffffffffff60a01b600654161760065560018060a01b03166bffffffffffffffffffffffff60a01b60075416176007554260085560025482810292818404149015171561023b577f60807e3513391f1e1a80986a914dd67d5d029c6f16d661561c3fdd630971232c92600161271060609404928360095582600a5560ff191617600b556040519142835260208301526040820152a2005b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b8152602060048201526005602482015264185c9b595960da1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b6f6e6c7920666163746f727960a01b6044820152606490fd5b346100f4575f3660031901126100f4576005546040516001600160a01b039091168152602090f35b346100f45760403660031901126100f4576102fe6102f461077c565b60243590336107b5565b602060405160018152f35b346100f4575f3660031901126100f4576040515f6001548060011c9060018116801561041d575b602083108114610409578285529081156103ed5750600114610397575b50819003601f01601f191681019067ffffffffffffffff821181831017610383576040829052819061037f9082610752565b0390f35b634e487b7160e01b5f52604160045260245ffd5b60015f9081529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8282106103d75750602091508201018261034d565b60018160209254838588010152019101906103c2565b90506020925060ff191682840152151560051b8201018261034d565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610330565b346100f4575f3660031901126100f457602060ff600b54166040519015158152f35b346100f4575f3660031901126100f4576020600854604051908152f35b346100f45760203660031901126100f4576001600160a01b0361048761077c565b165f526003602052602060405f2054604051908152f35b346100f4575f3660031901126100f457602060405160128152f35b346100f45760603660031901126100f4576104d261077c565b6104da610792565b6001600160a01b0382165f81815260046020908152604080832033845290915290205490926044359291838110610551576001810161051f575b506102fe93506107b5565b83810390811161023b576102fe945f52600460205260405f2060018060a01b0333165f5260205260405f205584610514565b60405162461bcd60e51b8152602060048201526009602482015268616c6c6f77616e636560b81b6044820152606490fd5b346100f4575f3660031901126100f4576020600254604051908152f35b346100f4575f3660031901126100f4576006546040516001600160a01b039091168152602090f35b346100f4575f3660031901126100f4576020600a54604051908152f35b346100f45760403660031901126100f4576105fd61077c565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100f4575f3660031901126100f4576040515f5f548060011c90600181168015610725575b602083108114610409578285529081156103ed57506001146106d15750819003601f01601f191681019067ffffffffffffffff821181831017610383576040829052819061037f9082610752565b5f8080529091507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b82821061070f5750602091508201018261034d565b60018160209254838588010152019101906106fa565b91607f1691610683565b346100f4575f3660031901126100f4576007546001600160a01b03168152602090f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100f457565b602435906001600160a01b03821682036100f457565b9190820180921161023b57565b60ff600b541680610957575b80610940575b80610928575b80610910575b806108f8575b806108e6575b610887575b60018060a01b031690815f5260036020528260405f2054106108585760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91835f526003825260405f2085815403905560018060a01b031693845f526003825260405f20818154019055604051908152a3565b60405162461bcd60e51b815260206004820152600760248201526662616c616e636560c81b6044820152606490fd5b60018060a01b0382165f5260036020526108a58360405f20546107a8565b60095410156107e45760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606490fd5b506001600160a01b03821615156107df565b506005546001600160a01b03838116911614156107d9565b506007546001600160a01b03838116911614156107d3565b506006546001600160a01b03838116911614156107cd565b50610950600854600a54906107a8565b42106107c7565b5060095415156107c156fea264697066735822122024800f20e7b8d0c2656ba1cbfc13bd4ba1bfedea34cfc2c66a1c625b9f23fa8f64736f6c63430008220033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dfbb8401a7f27f9dd3f7936677e60bccbf7a220ac64bd2f35f805f7ca795ef1364736f6c63430008220033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xb496f0…470da9 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x24905f…d7b9 | [0] 0x000000000000…4c93c09e [1] 0x000000000000…8ba24fb4 [2] 0x000000000000…a7111dbc data: 0x000000000000000000…743a6263 |
| 0xb496f0…470da9 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0xd8ad54…b139 | [0] 0x000000000000…4c93c09e [1] 0x000000000000…8ba24fb4 [2] 0x000000000000…a7111dbc data: 0x000000000000000000…df820000 |
| 0xb496f0…470da9 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0xf9bd89…72bb | [0] 0x000000000000…4c93c09e [1] 0x000000000000…a7111dbc [2] 0x000000000000…8ba24fb4 data: 0x000000000000000000…00046e40 |
| 0xb496f0…470da9 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x91194d…d04c | [0] 0x000000000000…4c93c09e [1] 0x000000000000…8ba24fb4 data: 0x000000000000000000…00032bb8 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x7cc3…eccc | OUT | 0xf59d…4fb4 | 0.02 WETH | WETH (WETH) | |
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x0000…0000 | IN | 0x7cc3…eccc | 0.02 WETH | WETH (WETH) | |
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x7cc3…eccc | OUT | 0x0000…dead | 0.000000 YEEP | Yeep By Matt Furie (YEEP) | |
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x7cc3…eccc | OUT | 0xf59d…4fb4 | 1,000,000,000.000000 YEEP | Yeep By Matt Furie (YEEP) | |
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x7cc3…eccc | OUT | 0x0000…dead | 0.000000 YEEP | Yeep By Matt Furie (YEEP) | |
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x0000…0000 | IN | 0x7cc3…eccc | 1,000,000,000.000000 YEEP | Yeep By Matt Furie (YEEP) |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x7cc3…eccc | OUT | 0xce75…334b | Transfer | Uniswap V3 Positions NFT-V1 (UNI-V3-POS) #290368 | |
| 0xb496f0ef…470da9 | Transfer | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0x0000…0000 | IN | 0x7cc3…eccc | Mint | Uniswap V3 Positions NFT-V1 (UNI-V3-POS) #290368 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0xb496f0…470da9 | CALL | launch | 0x7cc3…eccc | OUT | 0x0bd7…ad73 | 0.02 ETH |
| 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0xb496f0…470da9 | CREATE | launch | 0x7cc3…eccc | OUT | 0x9586…c09e | 0 ETH |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xb496f0…470da9 | launch | 15,868,552 | 27 days agoTue, 21 Jul 2026 20:58:23 UTC | 0xcf35…1dbc | IN | EtherV3Factory | $37.800.02 ETH | 0.00043574 |