// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity =0.7.6;
pragma abicoder v2;
import '@uniswap/v3-core/contracts/libraries/SafeCast.sol';
import '@uniswap/v3-core/contracts/libraries/TickMath.sol';
import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol';
import './interfaces/ISwapRouter.sol';
import './base/PeripheryImmutableState.sol';
import './base/PeripheryValidation.sol';
import './base/PeripheryPaymentsWithFee.sol';
import './base/Multicall.sol';
import './base/SelfPermit.sol';
import './libraries/Path.sol';
import './libraries/PoolAddress.sol';
import './libraries/CallbackValidation.sol';
import './interfaces/external/IWETH9.sol';
/// @title Uniswap V3 Swap Router
/// @notice Router for stateless execution of swaps against Uniswap V3
contract SwapRouter is
ISwapRouter,
PeripheryImmutableState,
PeripheryValidation,
PeripheryPaymentsWithFee,
Multicall,
SelfPermit
{
using Path for bytes;
using SafeCast for uint256;
/// @dev Used as the placeholder value for amountInCached, because the computed amount in for an exact output swap
/// can never actually be this value
uint256 private constant DEFAULT_AMOUNT_IN_CACHED = type(uint256).max;
/// @dev Transient storage variable used for returning the computed amount in for an exact output swap.
uint256 private amountInCached = DEFAULT_AMOUNT_IN_CACHED;
constructor(address _factory, address _WETH9) PeripheryImmutableState(_factory, _WETH9) {}
/// @dev Returns the pool for the given token pair and fee. The pool contract may or may not exist.
function getPool(
address tokenA,
address tokenB,
uint24 fee
) private view returns (IUniswapV3Pool) {
return IUniswapV3Pool(PoolAddress.computeAddress(factory, PoolAddress.getPoolKey(tokenA, tokenB, fee)));
}
struct SwapCallbackData {
bytes path;
address payer;
}
/// @inheritdoc IUniswapV3SwapCallback
function uniswapV3SwapCallback(
int256 amount0Delta,
int256 amount1Delta,
bytes calldata _data
) external override {
require(amount0Delta > 0 || amount1Delta > 0); // swaps entirely within 0-liquidity regions are not supported
SwapCallbackData memory data = abi.decode(_data, (SwapCallbackData));
(address tokenIn, address tokenOut, uint24 fee) = data.path.decodeFirstPool();
CallbackValidation.verifyCallback(factory, tokenIn, tokenOut, fee);
(bool isExactInput, uint256 amountToPay) =
amount0Delta > 0
? (tokenIn < tokenOut, uint256(amount0Delta))
: (tokenOut < tokenIn, uint256(amount1Delta));
if (isExactInput) {
pay(tokenIn, data.payer, msg.sender, amountToPay);
} else {
// either initiate the next swap or pay
if (data.path.hasMultiplePools()) {
data.path = data.path.skipToken();
exactOutputInternal(amountToPay, msg.sender, 0, data);
} else {
amountInCached = amountToPay;
tokenIn = tokenOut; // swap in/out because exact output swaps are reversed
pay(tokenIn, data.payer, msg.sender, amountToPay);
}
}
}
/// @dev Performs a single exact input swap
function exactInputInternal(
uint256 amountIn,
address recipient,
uint160 sqrtPriceLimitX96,
SwapCallbackData memory data
) private returns (uint256 amountOut) {
// allow swapping to the router address with address 0
if (recipient == address(0)) recipient = address(this);
(address tokenIn, address tokenOut, uint24 fee) = data.path.decodeFirstPool();
bool zeroForOne = tokenIn < tokenOut;
(int256 amount0, int256 amount1) =
getPool(tokenIn, tokenOut, fee).swap(
recipient,
zeroForOne,
amountIn.toInt256(),
sqrtPriceLimitX96 == 0
? (zeroForOne ? TickMath.MIN_SQRT_RATIO + 1 : TickMath.MAX_SQRT_RATIO - 1)
: sqrtPriceLimitX96,
abi.encode(data)
);
return uint256(-(zeroForOne ? amount1 : amount0));
}
/// @inheritdoc ISwapRouter
function exactInputSingle(ExactInputSingleParams calldata params)
external
payable
override
checkDeadline(params.deadline)
returns (uint256 amountOut)
{
amountOut = exactInputInternal(
params.amountIn,
params.recipient,
params.sqrtPriceLimitX96,
SwapCallbackData({path: abi.encodePacked(params.tokenIn, params.fee, params.tokenOut), payer: msg.sender})
);
require(amountOut >= params.amountOutMinimum, 'Too little received');
}
/// @inheritdoc ISwapRouter
function exactInput(ExactInputParams memory params)
external
payable
override
checkDeadline(params.deadline)
returns (uint256 amountOut)
{
address payer = msg.sender; // msg.sender pays for the first hop
while (true) {
bool hasMultiplePools = params.path.hasMultiplePools();
// the outputs of prior swaps become the inputs to subsequent ones
params.amountIn = exactInputInternal(
params.amountIn,
hasMultiplePools ? address(this) : params.recipient, // for intermediate swaps, this contract custodies
0,
SwapCallbackData({
path: params.path.getFirstPool(), // only the first pool in the path is necessary
payer: payer
})
);
// decide whether to continue or terminate
if (hasMultiplePools) {
payer = address(this); // at this point, the caller has paid
params.path = params.path.skipToken();
} else {
amountOut = params.amountIn;
break;
}
}
require(amountOut >= params.amountOutMinimum, 'Too little received');
}
/// @dev Performs a single exact output swap
function exactOutputInternal(
uint256 amountOut,
address recipient,
uint160 sqrtPriceLimitX96,
SwapCallbackData memory data
) private returns (uint256 amountIn) {
// allow swapping to the router address with address 0
if (recipient == address(0)) recipient = address(this);
(address tokenOut, address tokenIn, uint24 fee) = data.path.decodeFirstPool();
bool zeroForOne = tokenIn < tokenOut;
(int256 amount0Delta, int256 amount1Delta) =
getPool(tokenIn, tokenOut, fee).swap(
recipient,
zeroForOne,
-amountOut.toInt256(),
sqrtPriceLimitX96 == 0
? (zeroForOne ? TickMath.MIN_SQRT_RATIO + 1 : TickMath.MAX_SQRT_RATIO - 1)
: sqrtPriceLimitX96,
abi.encode(data)
);
uint256 amountOutReceived;
(amountIn, amountOutReceived) = zeroForOne
? (uint256(amount0Delta), uint256(-amount1Delta))
: (uint256(amount1Delta), uint256(-amount0Delta));
// it's technically possible to not receive the full output amount,
// so if no price limit has been specified, require this possibility away
if (sqrtPriceLimitX96 == 0) require(amountOutReceived == amountOut);
}
/// @inheritdoc ISwapRouter
function exactOutputSingle(ExactOutputSingleParams calldata params)
external
payable
override
checkDeadline(params.deadline)
returns (uint256 amountIn)
{
// avoid an SLOAD by using the swap return data
amountIn = exactOutputInternal(
params.amountOut,
params.recipient,
params.sqrtPriceLimitX96,
SwapCallbackData({path: abi.encodePacked(params.tokenOut, params.fee, params.tokenIn), payer: msg.sender})
);
require(amountIn <= params.amountInMaximum, 'Too much requested');
// has to be reset even though we don't use it in the single hop case
amountInCached = DEFAULT_AMOUNT_IN_CACHED;
}
/// @inheritdoc ISwapRouter
function exactOutput(ExactOutputParams calldata params)
external
payable
override
checkDeadline(params.deadline)
returns (uint256 amountIn)
{
// it's okay that the payer is fixed to msg.sender here, as they're only paying for the "final" exact output
// swap, which happens first, and subsequent swaps are paid for within nested callback frames
exactOutputInternal(
params.amountOut,
params.recipient,
0,
SwapCallbackData({path: params.path, payer: msg.sender})
);
amountIn = amountInCached;
require(amountIn <= params.amountInMaximum, 'Too much requested');
amountInCached = DEFAULT_AMOUNT_IN_CACHED;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_factory",
"type": "address",
"internalType": "address"
},
{
"name": "_WETH9",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "WETH9",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "exactInput",
"type": "function",
"inputs": [
{
"name": "params",
"type": "tuple",
"components": [
{
"name": "path",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountOutMinimum",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct ISwapRouter.ExactInputParams"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "exactInputSingle",
"type": "function",
"inputs": [
{
"name": "params",
"type": "tuple",
"components": [
{
"name": "tokenIn",
"type": "address",
"internalType": "address"
},
{
"name": "tokenOut",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountOutMinimum",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "sqrtPriceLimitX96",
"type": "uint160",
"internalType": "uint160"
}
],
"internalType": "struct ISwapRouter.ExactInputSingleParams"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "exactOutput",
"type": "function",
"inputs": [
{
"name": "params",
"type": "tuple",
"components": [
{
"name": "path",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountInMaximum",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct ISwapRouter.ExactOutputParams"
}
],
"outputs": [
{
"name": "amountIn",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "exactOutputSingle",
"type": "function",
"inputs": [
{
"name": "params",
"type": "tuple",
"components": [
{
"name": "tokenIn",
"type": "address",
"internalType": "address"
},
{
"name": "tokenOut",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "amountInMaximum",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "sqrtPriceLimitX96",
"type": "uint160",
"internalType": "uint160"
}
],
"internalType": "struct ISwapRouter.ExactOutputSingleParams"
}
],
"outputs": [
{
"name": "amountIn",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "factory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "multicall",
"type": "function",
"inputs": [
{
"name": "data",
"type": "bytes[]",
"internalType": "bytes[]"
}
],
"outputs": [
{
"name": "results",
"type": "bytes[]",
"internalType": "bytes[]"
}
],
"stateMutability": "payable"
},
{
"name": "refundETH",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "selfPermit",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "selfPermitAllowed",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "nonce",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "selfPermitAllowedIfNecessary",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "nonce",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "selfPermitIfNecessary",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "sweepToken",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "amountMinimum",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "sweepTokenWithFee",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "amountMinimum",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "feeBips",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeRecipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"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"
},
{
"name": "unwrapWETH9",
"type": "function",
"inputs": [
{
"name": "amountMinimum",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "unwrapWETH9WithFee",
"type": "function",
"inputs": [
{
"name": "amountMinimum",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "feeBips",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "feeRecipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60c06040526000196000553480156200001757600080fd5b5060405162002845380380620028458339810160408190526200003a9162000076565b6001600160601b0319606092831b8116608052911b1660a052620000ad565b80516001600160a01b03811681146200007157600080fd5b919050565b6000806040838503121562000089578182fd5b620000948362000059565b9150620000a46020840162000059565b90509250929050565b60805160601c60a05160601c61273c620001096000398061012252806104eb52806105d6528061066352806106a3528061078e528061175a52806117a05280611814525080610bc752806110c252806118ef525061273c6000f3fe6080604052600436106101125760003560e01c8063c04b8d59116100a5578063df2ab5bb11610074578063f28c049811610059578063f28c0498146102ce578063f3995c67146102e1578063fa461e33146102f457610196565b8063df2ab5bb146102a8578063e0e189a0146102bb57610196565b8063c04b8d591461025a578063c2e3140a1461026d578063c45a015514610280578063db3e21981461029557610196565b80634aa4a4fc116100e15780634aa4a4fc146101f25780639b2c0a3714610214578063a4a78f0c14610227578063ac9650d81461023a57610196565b806312210e8a1461019b578063414bf389146101a35780634659a494146101cc57806349404b7c146101df57610196565b3661019657336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610194576040805162461bcd60e51b815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610194610314565b6101b66101b13660046122cd565b610326565b6040516101c39190612650565b60405180910390f35b6101946101da36600461204b565b61044d565b6101946101ed3660046123d4565b6104e7565b3480156101fe57600080fd5b50610207610661565b6040516101c391906124db565b610194610222366004612403565b610685565b61019461023536600461204b565b610851565b61024d6102483660046120ab565b6108e2565b6040516101c39190612534565b6101b6610268366004612222565b610a22565b61019461027b36600461204b565b610b36565b34801561028c57600080fd5b50610207610bc5565b6101b66102a33660046122cd565b610be9565b6101946102b6366004611fac565b610d10565b6101946102c9366004611fed565b610dee565b6101b66102dc3660046122e9565b610f15565b6101946102ef36600461204b565b61100b565b34801561030057600080fd5b5061019461030f36600461213d565b61107d565b4715610324576103243347611190565b565b600081608001358061033661127f565b111561037f576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b61041860a08401356103976080860160608701611f89565b6103a8610100870160e08801611f89565b60408051808201909152806103c060208a018a611f89565b6103d060608b0160408c016123b1565b6103e060408c0160208d01611f89565b6040516020016103f293929190612478565b6040516020818303038152906040528152602001336001600160a01b0316815250611283565b91508260c001358210156104475760405162461bcd60e51b815260040161043e906125de565b60405180910390fd5b50919050565b604080516323f2ebc360e21b815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e4810183905290516001600160a01b03881691638fcbaf0c9161010480830192600092919082900301818387803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b50505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561055657600080fd5b505afa15801561056a573d6000803e3d6000fd5b505050506040513d602081101561058057600080fd5b50519050828110156105ce576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e7420574554483960701b604482015290519081900360640190fd5b801561065c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561063a57600080fd5b505af115801561064e573d6000803e3d6000fd5b5050505061065c8282611190565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600082118015610696575060648211155b61069f57600080fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561070e57600080fd5b505afa158015610722573d6000803e3d6000fd5b505050506040513d602081101561073857600080fd5b5051905084811015610786576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e7420574554483960701b604482015290519081900360640190fd5b801561084a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156107f257600080fd5b505af1158015610806573d6000803e3d6000fd5b50505050600061271061082285846113d590919063ffffffff16565b8161082957fe5b049050801561083c5761083c8382611190565b61084885828403611190565b505b5050505050565b60408051636eb1769f60e11b81523360048201523060248201529051600019916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d60208110156108cc57600080fd5b505110156108485761084886868686868661044d565b60608167ffffffffffffffff811180156108fb57600080fd5b5060405190808252806020026020018201604052801561092f57816020015b606081526020019060019003908161091a5790505b50905060005b82811015610a1b576000803086868581811061094d57fe5b905060200281019061095f9190612659565b60405161096d9291906124cb565b600060405180830381855af49150503d80600081146109a8576040519150601f19603f3d011682016040523d82523d6000602084013e6109ad565b606091505b5091509150816109f9576044815110156109c657600080fd5b600481019050808060200190518101906109e091906121b8565b60405162461bcd60e51b815260040161043e9190612594565b80848481518110610a0657fe5b60209081029190910101525050600101610935565b5092915050565b6000816040015180610a3261127f565b1115610a7b576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b335b6000610a8c85600001516113ff565b9050610ad8856060015182610aa5578660200151610aa7565b305b60006040518060400160405280610ac18b6000015161140b565b8152602001876001600160a01b0316815250611283565b60608601528015610af8578451309250610af19061141a565b8552610b05565b8460600151935050610b0b565b50610a7d565b8360800151831015610b2f5760405162461bcd60e51b815260040161043e906125de565b5050919050565b60408051636eb1769f60e11b8152336004820152306024820152905186916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d6020811015610baf57600080fd5b505110156108485761084886868686868661100b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000816080013580610bf961127f565b1115610c42576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b610cde60a0840135610c5a6080860160608701611f89565b610c6b610100870160e08801611f89565b6040518060400160405280886020016020810190610c899190611f89565b610c9960608b0160408c016123b1565b610ca660208c018c611f89565b604051602001610cb893929190612478565b6040516020818303038152906040528152602001336001600160a01b0316815250611431565b91508260c00135821115610d045760405162461bcd60e51b815260040161043e906125a7565b50600019600055919050565b6000836001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d5f57600080fd5b505afa158015610d73573d6000803e3d6000fd5b505050506040513d6020811015610d8957600080fd5b5051905082811015610dd7576040805162461bcd60e51b815260206004820152601260248201527124b739bab33334b1b4b2b73a103a37b5b2b760711b604482015290519081900360640190fd5b8015610de857610de88483836115ac565b50505050565b600082118015610dff575060648211155b610e0857600080fd5b6000856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610e5757600080fd5b505afa158015610e6b573d6000803e3d6000fd5b505050506040513d6020811015610e8157600080fd5b5051905084811015610ecf576040805162461bcd60e51b815260206004820152601260248201527124b739bab33334b1b4b2b73a103a37b5b2b760711b604482015290519081900360640190fd5b8015610848576000612710610ee483866113d5565b81610eeb57fe5b0490508015610eff57610eff8784836115ac565b610f0c87868385036115ac565b50505050505050565b6000816040013580610f2561127f565b1115610f6e576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b610fe16060840135610f866040860160208701611f89565b6040805180820190915260009080610f9e8980612659565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525033602090910152611431565b5060005491508260800135821115610d045760405162461bcd60e51b815260040161043e906125a7565b6040805163d505accf60e01b8152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c4810183905290516001600160a01b0388169163d505accf9160e480830192600092919082900301818387803b1580156104c757600080fd5b600084138061108c5750600083135b61109557600080fd5b60006110a382840184612321565b905060008060006110b78460000151611708565b9250925092506110e97f0000000000000000000000000000000000000000000000000000000000000000848484611739565b5060008060008a1361111057846001600160a01b0316846001600160a01b03161089611127565b836001600160a01b0316856001600160a01b0316108a5b915091508115611146576111418587602001513384611758565b6104db565b8551611151906113ff565b156111765785516111619061141a565b86526111708133600089611431565b506104db565b806000819055508394506104db8587602001513384611758565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106111dc5780518252601f1990920191602091820191016111bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461123e576040519150601f19603f3d011682016040523d82523d6000602084013e611243565b606091505b505090508061065c576040805162461bcd60e51b815260206004820152600360248201526253544560e81b604482015290519081900360640190fd5b4290565b60006001600160a01b038416611297573093505b60008060006112a98560000151611708565b919450925090506001600160a01b03808316908416106000806112cd8686866118e8565b6001600160a01b031663128acb088b856112e68f611926565b6001600160a01b038e16156112fb578d611321565b8761131a5773fffd8963efd1fc6a506488495d951d5263988d25611321565b6401000276a45b8d6040516020016113329190612615565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016113619594939291906124ef565b6040805180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b2919061211a565b91509150826113c157816113c3565b805b6000039b9a5050505050505050505050565b60008215806113f0575050818102818382816113ed57fe5b04145b6113f957600080fd5b92915050565b8051604211155b919050565b60606113f9826000602b61193c565b80516060906113f99083906017906016190161193c565b60006001600160a01b038416611445573093505b60008060006114578560000151611708565b919450925090506001600160a01b038084169083161060008061147b8587866118e8565b6001600160a01b031663128acb088b856114948f611926565b6000036001600160a01b038e16156114ac578d6114d2565b876114cb5773fffd8963efd1fc6a506488495d951d5263988d256114d2565b6401000276a45b8d6040516020016114e39190612615565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016115129594939291906124ef565b6040805180830381600087803b15801561152b57600080fd5b505af115801561153f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611563919061211a565b9150915060008361157857818360000361157e565b82826000035b90985090506001600160a01b038a1661159d578b811461159d57600080fd5b50505050505050949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1781529251825160009485949389169392918291908083835b6020831061163d5780518252601f19909201916020918201910161161e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461169f576040519150601f19603f3d011682016040523d82523d6000602084013e6116a4565b606091505b50915091508180156116d25750805115806116d257508080602001905160208110156116cf57600080fd5b50515b61084a576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b600080806117168482611a99565b9250611723846014611b65565b9050611730846017611a99565b91509193909250565b600061174f8561174a868686611c21565b611c77565b95945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161480156117995750804710155b156118bb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561188957600080fd5b505af115801561189d573d6000803e3d6000fd5b505050506040513d60208110156118b357600080fd5b50610de89050565b6001600160a01b0383163014156118dc576118d78483836115ac565b610de8565b610de884848484611c9a565b600061191e7f0000000000000000000000000000000000000000000000000000000000000000611919868686611c21565b611dff565b949350505050565b6000600160ff1b821061193857600080fd5b5090565b60608182601f011015611987576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b8282840110156119cf576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b81830184511015611a27576040805162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015611a465760405191506000825260208201604052611a90565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611a7f578051835260209283019201611a67565b5050858452601f01601f1916604052505b50949350505050565b600081826014011015611af3576040805162461bcd60e51b815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015611b4c576040805162461bcd60e51b815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015611bbf576040805162461bcd60e51b815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015611c18576040805162461bcd60e51b815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b611c29611efb565b826001600160a01b0316846001600160a01b03161115611c47579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b6000611c838383611dff565b9050336001600160a01b038216146113f957600080fd5b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b178152925182516000948594938a169392918291908083835b60208310611d335780518252601f199092019160209182019101611d14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611d95576040519150601f19603f3d011682016040523d82523d6000602084013e611d9a565b606091505b5091509150818015611dc8575080511580611dc85750808060200190516020811015611dc557600080fd5b50515b610848576040805162461bcd60e51b815260206004820152600360248201526229aa2360e91b604482015290519081900360640190fd5b600081602001516001600160a01b031682600001516001600160a01b031610611e2757600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527f18332d3ae5703e695a0f01aa77d9c7aa38e67787ed1b2983a1954b9ddbba47f760d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803561140681612717565b600082601f830112611f36578081fd5b8135611f49611f44826126c9565b6126a5565b818152846020838601011115611f5d578283fd5b816020850160208301379081016020019190915292915050565b60006101008284031215610447578081fd5b600060208284031215611f9a578081fd5b8135611fa581612717565b9392505050565b600080600060608486031215611fc0578182fd5b8335611fcb81612717565b9250602084013591506040840135611fe281612717565b809150509250925092565b600080600080600060a08688031215612004578081fd5b853561200f81612717565b945060208601359350604086013561202681612717565b925060608601359150608086013561203d81612717565b809150509295509295909350565b60008060008060008060c08789031215612063578081fd5b863561206e81612717565b95506020870135945060408701359350606087013560ff81168114612091578182fd5b9598949750929560808101359460a0909101359350915050565b600080602083850312156120bd578182fd5b823567ffffffffffffffff808211156120d4578384fd5b818501915085601f8301126120e7578384fd5b8135818111156120f5578485fd5b8660208083028501011115612108578485fd5b60209290920196919550909350505050565b6000806040838503121561212c578182fd5b505080516020909101519092909150565b60008060008060608587031215612152578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115612177578384fd5b818701915087601f83011261218a578384fd5b813581811115612198578485fd5b8860208285010111156121a9578485fd5b95989497505060200194505050565b6000602082840312156121c9578081fd5b815167ffffffffffffffff8111156121df578182fd5b8201601f810184136121ef578182fd5b80516121fd611f44826126c9565b818152856020838501011115612211578384fd5b61174f8260208301602086016126eb565b600060208284031215612233578081fd5b813567ffffffffffffffff8082111561224a578283fd5b9083019060a0828603121561225d578283fd5b60405160a08101818110838211171561227257fe5b604052823582811115612283578485fd5b61228f87828601611f26565b82525061229e60208401611f1b565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b600061010082840312156122df578081fd5b611fa58383611f77565b6000602082840312156122fa578081fd5b813567ffffffffffffffff811115612310578182fd5b820160a08185031215611fa5578182fd5b600060208284031215612332578081fd5b813567ffffffffffffffff80821115612349578283fd5b908301906040828603121561235c578283fd5b60405160408101818110838211171561237157fe5b604052823582811115612382578485fd5b61238e87828601611f26565b825250602083013592506123a183612717565b6020810192909252509392505050565b6000602082840312156123c2578081fd5b813562ffffff81168114611fa5578182fd5b600080604083850312156123e6578182fd5b8235915060208301356123f881612717565b809150509250929050565b60008060008060808587031215612418578182fd5b84359350602085013561242a81612717565b925060408501359150606085013561244181612717565b939692955090935050565b600081518084526124648160208601602086016126eb565b601f01601f19169290920160200192915050565b606093841b6bffffffffffffffffffffffff19908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b60006001600160a01b038088168352861515602084015285604084015280851660608401525060a0608083015261252960a083018461244c565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561258757603f1988860301845261257585835161244c565b94509285019290850190600101612559565b5092979650505050505050565b600060208252611fa5602083018461244c565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060208252825160406020840152612631606084018261244c565b90506001600160a01b0360208501511660408401528091505092915050565b90815260200190565b6000808335601e1984360301811261266f578283fd5b83018035915067ffffffffffffffff821115612689578283fd5b60200191503681900382131561269e57600080fd5b9250929050565b60405181810167ffffffffffffffff811182821017156126c157fe5b604052919050565b600067ffffffffffffffff8211156126dd57fe5b50601f01601f191660200190565b60005b838110156127065781810151838201526020016126ee565b83811115610de85750506000910152565b6001600160a01b038116811461272c57600080fd5b5056fea164736f6c6343000706000a000000000000000000000000d479e71c45aeb1e846a7b549c346d62fe77b39ba0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73
0x6080604052600436106101125760003560e01c8063c04b8d59116100a5578063df2ab5bb11610074578063f28c049811610059578063f28c0498146102ce578063f3995c67146102e1578063fa461e33146102f457610196565b8063df2ab5bb146102a8578063e0e189a0146102bb57610196565b8063c04b8d591461025a578063c2e3140a1461026d578063c45a015514610280578063db3e21981461029557610196565b80634aa4a4fc116100e15780634aa4a4fc146101f25780639b2c0a3714610214578063a4a78f0c14610227578063ac9650d81461023a57610196565b806312210e8a1461019b578063414bf389146101a35780634659a494146101cc57806349404b7c146101df57610196565b3661019657336001600160a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad731614610194576040805162461bcd60e51b815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610194610314565b6101b66101b13660046122cd565b610326565b6040516101c39190612650565b60405180910390f35b6101946101da36600461204b565b61044d565b6101946101ed3660046123d4565b6104e7565b3480156101fe57600080fd5b50610207610661565b6040516101c391906124db565b610194610222366004612403565b610685565b61019461023536600461204b565b610851565b61024d6102483660046120ab565b6108e2565b6040516101c39190612534565b6101b6610268366004612222565b610a22565b61019461027b36600461204b565b610b36565b34801561028c57600080fd5b50610207610bc5565b6101b66102a33660046122cd565b610be9565b6101946102b6366004611fac565b610d10565b6101946102c9366004611fed565b610dee565b6101b66102dc3660046122e9565b610f15565b6101946102ef36600461204b565b61100b565b34801561030057600080fd5b5061019461030f36600461213d565b61107d565b4715610324576103243347611190565b565b600081608001358061033661127f565b111561037f576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b61041860a08401356103976080860160608701611f89565b6103a8610100870160e08801611f89565b60408051808201909152806103c060208a018a611f89565b6103d060608b0160408c016123b1565b6103e060408c0160208d01611f89565b6040516020016103f293929190612478565b6040516020818303038152906040528152602001336001600160a01b0316815250611283565b91508260c001358210156104475760405162461bcd60e51b815260040161043e906125de565b60405180910390fd5b50919050565b604080516323f2ebc360e21b815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e4810183905290516001600160a01b03881691638fcbaf0c9161010480830192600092919082900301818387803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b50505050505050505050565b60007f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561055657600080fd5b505afa15801561056a573d6000803e3d6000fd5b505050506040513d602081101561058057600080fd5b50519050828110156105ce576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e7420574554483960701b604482015290519081900360640190fd5b801561065c577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561063a57600080fd5b505af115801561064e573d6000803e3d6000fd5b5050505061065c8282611190565b505050565b7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b600082118015610696575060648211155b61069f57600080fd5b60007f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561070e57600080fd5b505afa158015610722573d6000803e3d6000fd5b505050506040513d602081101561073857600080fd5b5051905084811015610786576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e7420574554483960701b604482015290519081900360640190fd5b801561084a577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156107f257600080fd5b505af1158015610806573d6000803e3d6000fd5b50505050600061271061082285846113d590919063ffffffff16565b8161082957fe5b049050801561083c5761083c8382611190565b61084885828403611190565b505b5050505050565b60408051636eb1769f60e11b81523360048201523060248201529051600019916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d60208110156108cc57600080fd5b505110156108485761084886868686868661044d565b60608167ffffffffffffffff811180156108fb57600080fd5b5060405190808252806020026020018201604052801561092f57816020015b606081526020019060019003908161091a5790505b50905060005b82811015610a1b576000803086868581811061094d57fe5b905060200281019061095f9190612659565b60405161096d9291906124cb565b600060405180830381855af49150503d80600081146109a8576040519150601f19603f3d011682016040523d82523d6000602084013e6109ad565b606091505b5091509150816109f9576044815110156109c657600080fd5b600481019050808060200190518101906109e091906121b8565b60405162461bcd60e51b815260040161043e9190612594565b80848481518110610a0657fe5b60209081029190910101525050600101610935565b5092915050565b6000816040015180610a3261127f565b1115610a7b576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b335b6000610a8c85600001516113ff565b9050610ad8856060015182610aa5578660200151610aa7565b305b60006040518060400160405280610ac18b6000015161140b565b8152602001876001600160a01b0316815250611283565b60608601528015610af8578451309250610af19061141a565b8552610b05565b8460600151935050610b0b565b50610a7d565b8360800151831015610b2f5760405162461bcd60e51b815260040161043e906125de565b5050919050565b60408051636eb1769f60e11b8152336004820152306024820152905186916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d6020811015610baf57600080fd5b505110156108485761084886868686868661100b565b7f000000000000000000000000d479e71c45aeb1e846a7b549c346d62fe77b39ba81565b6000816080013580610bf961127f565b1115610c42576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b610cde60a0840135610c5a6080860160608701611f89565b610c6b610100870160e08801611f89565b6040518060400160405280886020016020810190610c899190611f89565b610c9960608b0160408c016123b1565b610ca660208c018c611f89565b604051602001610cb893929190612478565b6040516020818303038152906040528152602001336001600160a01b0316815250611431565b91508260c00135821115610d045760405162461bcd60e51b815260040161043e906125a7565b50600019600055919050565b6000836001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d5f57600080fd5b505afa158015610d73573d6000803e3d6000fd5b505050506040513d6020811015610d8957600080fd5b5051905082811015610dd7576040805162461bcd60e51b815260206004820152601260248201527124b739bab33334b1b4b2b73a103a37b5b2b760711b604482015290519081900360640190fd5b8015610de857610de88483836115ac565b50505050565b600082118015610dff575060648211155b610e0857600080fd5b6000856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610e5757600080fd5b505afa158015610e6b573d6000803e3d6000fd5b505050506040513d6020811015610e8157600080fd5b5051905084811015610ecf576040805162461bcd60e51b815260206004820152601260248201527124b739bab33334b1b4b2b73a103a37b5b2b760711b604482015290519081900360640190fd5b8015610848576000612710610ee483866113d5565b81610eeb57fe5b0490508015610eff57610eff8784836115ac565b610f0c87868385036115ac565b50505050505050565b6000816040013580610f2561127f565b1115610f6e576040805162461bcd60e51b8152602060048201526013602482015272151c985b9cd858dd1a5bdb881d1bdbc81bdb19606a1b604482015290519081900360640190fd5b610fe16060840135610f866040860160208701611f89565b6040805180820190915260009080610f9e8980612659565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525033602090910152611431565b5060005491508260800135821115610d045760405162461bcd60e51b815260040161043e906125a7565b6040805163d505accf60e01b8152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c4810183905290516001600160a01b0388169163d505accf9160e480830192600092919082900301818387803b1580156104c757600080fd5b600084138061108c5750600083135b61109557600080fd5b60006110a382840184612321565b905060008060006110b78460000151611708565b9250925092506110e97f000000000000000000000000d479e71c45aeb1e846a7b549c346d62fe77b39ba848484611739565b5060008060008a1361111057846001600160a01b0316846001600160a01b03161089611127565b836001600160a01b0316856001600160a01b0316108a5b915091508115611146576111418587602001513384611758565b6104db565b8551611151906113ff565b156111765785516111619061141a565b86526111708133600089611431565b506104db565b806000819055508394506104db8587602001513384611758565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106111dc5780518252601f1990920191602091820191016111bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461123e576040519150601f19603f3d011682016040523d82523d6000602084013e611243565b606091505b505090508061065c576040805162461bcd60e51b815260206004820152600360248201526253544560e81b604482015290519081900360640190fd5b4290565b60006001600160a01b038416611297573093505b60008060006112a98560000151611708565b919450925090506001600160a01b03808316908416106000806112cd8686866118e8565b6001600160a01b031663128acb088b856112e68f611926565b6001600160a01b038e16156112fb578d611321565b8761131a5773fffd8963efd1fc6a506488495d951d5263988d25611321565b6401000276a45b8d6040516020016113329190612615565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016113619594939291906124ef565b6040805180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b2919061211a565b91509150826113c157816113c3565b805b6000039b9a5050505050505050505050565b60008215806113f0575050818102818382816113ed57fe5b04145b6113f957600080fd5b92915050565b8051604211155b919050565b60606113f9826000602b61193c565b80516060906113f99083906017906016190161193c565b60006001600160a01b038416611445573093505b60008060006114578560000151611708565b919450925090506001600160a01b038084169083161060008061147b8587866118e8565b6001600160a01b031663128acb088b856114948f611926565b6000036001600160a01b038e16156114ac578d6114d2565b876114cb5773fffd8963efd1fc6a506488495d951d5263988d256114d2565b6401000276a45b8d6040516020016114e39190612615565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016115129594939291906124ef565b6040805180830381600087803b15801561152b57600080fd5b505af115801561153f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611563919061211a565b9150915060008361157857818360000361157e565b82826000035b90985090506001600160a01b038a1661159d578b811461159d57600080fd5b50505050505050949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1781529251825160009485949389169392918291908083835b6020831061163d5780518252601f19909201916020918201910161161e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461169f576040519150601f19603f3d011682016040523d82523d6000602084013e6116a4565b606091505b50915091508180156116d25750805115806116d257508080602001905160208110156116cf57600080fd5b50515b61084a576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b600080806117168482611a99565b9250611723846014611b65565b9050611730846017611a99565b91509193909250565b600061174f8561174a868686611c21565b611c77565b95945050505050565b7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316846001600160a01b03161480156117995750804710155b156118bb577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50505050507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561188957600080fd5b505af115801561189d573d6000803e3d6000fd5b505050506040513d60208110156118b357600080fd5b50610de89050565b6001600160a01b0383163014156118dc576118d78483836115ac565b610de8565b610de884848484611c9a565b600061191e7f000000000000000000000000d479e71c45aeb1e846a7b549c346d62fe77b39ba611919868686611c21565b611dff565b949350505050565b6000600160ff1b821061193857600080fd5b5090565b60608182601f011015611987576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b8282840110156119cf576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b81830184511015611a27576040805162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015611a465760405191506000825260208201604052611a90565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611a7f578051835260209283019201611a67565b5050858452601f01601f1916604052505b50949350505050565b600081826014011015611af3576040805162461bcd60e51b815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015611b4c576040805162461bcd60e51b815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015611bbf576040805162461bcd60e51b815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015611c18576040805162461bcd60e51b815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b611c29611efb565b826001600160a01b0316846001600160a01b03161115611c47579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b6000611c838383611dff565b9050336001600160a01b038216146113f957600080fd5b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b178152925182516000948594938a169392918291908083835b60208310611d335780518252601f199092019160209182019101611d14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611d95576040519150601f19603f3d011682016040523d82523d6000602084013e611d9a565b606091505b5091509150818015611dc8575080511580611dc85750808060200190516020811015611dc557600080fd5b50515b610848576040805162461bcd60e51b815260206004820152600360248201526229aa2360e91b604482015290519081900360640190fd5b600081602001516001600160a01b031682600001516001600160a01b031610611e2757600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527f18332d3ae5703e695a0f01aa77d9c7aa38e67787ed1b2983a1954b9ddbba47f760d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803561140681612717565b600082601f830112611f36578081fd5b8135611f49611f44826126c9565b6126a5565b818152846020838601011115611f5d578283fd5b816020850160208301379081016020019190915292915050565b60006101008284031215610447578081fd5b600060208284031215611f9a578081fd5b8135611fa581612717565b9392505050565b600080600060608486031215611fc0578182fd5b8335611fcb81612717565b9250602084013591506040840135611fe281612717565b809150509250925092565b600080600080600060a08688031215612004578081fd5b853561200f81612717565b945060208601359350604086013561202681612717565b925060608601359150608086013561203d81612717565b809150509295509295909350565b60008060008060008060c08789031215612063578081fd5b863561206e81612717565b95506020870135945060408701359350606087013560ff81168114612091578182fd5b9598949750929560808101359460a0909101359350915050565b600080602083850312156120bd578182fd5b823567ffffffffffffffff808211156120d4578384fd5b818501915085601f8301126120e7578384fd5b8135818111156120f5578485fd5b8660208083028501011115612108578485fd5b60209290920196919550909350505050565b6000806040838503121561212c578182fd5b505080516020909101519092909150565b60008060008060608587031215612152578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115612177578384fd5b818701915087601f83011261218a578384fd5b813581811115612198578485fd5b8860208285010111156121a9578485fd5b95989497505060200194505050565b6000602082840312156121c9578081fd5b815167ffffffffffffffff8111156121df578182fd5b8201601f810184136121ef578182fd5b80516121fd611f44826126c9565b818152856020838501011115612211578384fd5b61174f8260208301602086016126eb565b600060208284031215612233578081fd5b813567ffffffffffffffff8082111561224a578283fd5b9083019060a0828603121561225d578283fd5b60405160a08101818110838211171561227257fe5b604052823582811115612283578485fd5b61228f87828601611f26565b82525061229e60208401611f1b565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b600061010082840312156122df578081fd5b611fa58383611f77565b6000602082840312156122fa578081fd5b813567ffffffffffffffff811115612310578182fd5b820160a08185031215611fa5578182fd5b600060208284031215612332578081fd5b813567ffffffffffffffff80821115612349578283fd5b908301906040828603121561235c578283fd5b60405160408101818110838211171561237157fe5b604052823582811115612382578485fd5b61238e87828601611f26565b825250602083013592506123a183612717565b6020810192909252509392505050565b6000602082840312156123c2578081fd5b813562ffffff81168114611fa5578182fd5b600080604083850312156123e6578182fd5b8235915060208301356123f881612717565b809150509250929050565b60008060008060808587031215612418578182fd5b84359350602085013561242a81612717565b925060408501359150606085013561244181612717565b939692955090935050565b600081518084526124648160208601602086016126eb565b601f01601f19169290920160200192915050565b606093841b6bffffffffffffffffffffffff19908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b60006001600160a01b038088168352861515602084015285604084015280851660608401525060a0608083015261252960a083018461244c565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561258757603f1988860301845261257585835161244c565b94509285019290850190600101612559565b5092979650505050505050565b600060208252611fa5602083018461244c565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060208252825160406020840152612631606084018261244c565b90506001600160a01b0360208501511660408401528091505092915050565b90815260200190565b6000808335601e1984360301811261266f578283fd5b83018035915067ffffffffffffffff821115612689578283fd5b60200191503681900382131561269e57600080fd5b9250929050565b60405181810167ffffffffffffffff811182821017156126c157fe5b604052919050565b600067ffffffffffffffff8211156126dd57fe5b50601f01601f191660200190565b60005b838110156127065781810151838201526020016126ee565b83811115610de85750506000910152565b6001600160a01b038116811461272c57600080fd5b5056fea164736f6c6343000706000a
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| no event logs emitted by this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xbb6802…72b5f9 | multicall | 35,816,512 | 3 days agoFri, 14 Aug 2026 00:19:58 UTC | 0xdd07…012f | IN | SwapRouter | $0.000 ETH | 0.00000701 | |
| 0xc4b58b…213fa8 | multicall | 32,640,029 | 7 days agoMon, 10 Aug 2026 08:03:49 UTC | 0x4183…150c | IN | SwapRouter | $0.190.0001 ETH | 0.00000413 | |
| 0x2bbbe7…998408 | multicall | 29,409,439 | 11 days agoThu, 06 Aug 2026 14:09:59 UTC | 0x543b…0707 | IN | SwapRouter | $0.000 ETH | 0.00000474 | |
| 0xcee627…5f8ac9 | exactInput | 26,675,945 | 14 days agoMon, 03 Aug 2026 10:04:10 UTC | 0x4183…150c | IN | SwapRouter | $0.000 ETH | 0.00000450 | |
| 0xf11e9a…e5575d | multicall | 26,106,807 | 15 days agoSun, 02 Aug 2026 18:13:21 UTC | 0x0c6f…ebfa | IN | SwapRouter | $0.000 ETH | 0.00000323 | |
| 0x58a22a…a91ea0 | multicall | 25,967,353 | 15 days agoSun, 02 Aug 2026 14:20:18 UTC | 0x1985…955e | IN | SwapRouter | $1.900.001 ETH | 0.00000292 | |
| 0x5916d2…5ccb68 | multicall | 24,004,522 | 17 days agoFri, 31 Jul 2026 07:39:40 UTC | 0x19ef…c5d6 | IN | SwapRouter | $0.210.00010 ETH | 0.00000321 | |
| 0xd084d6…8f89ba | multicall | 19,237,052 | 23 days agoSat, 25 Jul 2026 18:48:30 UTC | 0xc881…b29c | IN | SwapRouter | $0.000 ETH | 0.00001214 | |
| 0x075465…3788fd | multicall | 19,232,136 | 23 days agoSat, 25 Jul 2026 18:40:16 UTC | 0xe88a…3545 | IN | SwapRouter | $1.050.00055 ETH | 0.00001084 | |
| 0x4492ae…59ba47 | multicall | 18,162,598 | 24 days agoFri, 24 Jul 2026 12:51:41 UTC | 0x6e10…796c | IN | SwapRouter | $1.050.00055 ETH | 0.00001546 | |
| 0xdfcc47…4880b5 | multicall | 18,028,016 | 24 days agoFri, 24 Jul 2026 09:06:18 UTC | 0x4b0f…b3bb | IN | SwapRouter | $0.020.00001 ETH | 0.00001822 | |
| 0x4878f1…acf7bc | multicall | 16,068,361 | 26 days agoWed, 22 Jul 2026 02:31:48 UTC | 0x1985…955e | IN | SwapRouter | $380.750.2 ETH | 0.00001283 | |
| 0xd88bbb…4a84d5 | multicall | 15,713,923 | 27 days agoTue, 21 Jul 2026 16:40:15 UTC | 0x1985…955e | IN | SwapRouter | $380.750.2 ETH | 0.00001086 | |
| 0x1e3cad…e9de00 | multicall | 15,712,103 | 27 days agoTue, 21 Jul 2026 16:37:12 UTC | 0x1985…955e | IN | SwapRouter | $190.370.1 ETH | 0.00000972 | |
| 0x9f285c…8e2b18 | multicall | 15,711,911 | 27 days agoTue, 21 Jul 2026 16:36:53 UTC | 0x1985…955e | IN | SwapRouter | $190.370.1 ETH | 0.00001079 | |
| 0x864e6a…5ff66e | multicall | 15,706,756 | 27 days agoTue, 21 Jul 2026 16:28:18 UTC | 0x1985…955e | IN | SwapRouter | $380.750.2 ETH | 0.00001068 | |
| 0xaa74b2…41292e | multicall | 15,703,195 | 27 days agoTue, 21 Jul 2026 16:22:21 UTC | 0x1985…955e | IN | SwapRouter | $380.750.2 ETH | 0.00000959 | |
| 0xd88eed…138d2f | multicall | 15,702,930 | 27 days agoTue, 21 Jul 2026 16:21:55 UTC | 0x1985…955e | IN | SwapRouter | $380.750.2 ETH | 0.00001070 | |
| 0x6d2e44…99479d | multicall | 15,691,401 | 27 days agoTue, 21 Jul 2026 16:02:40 UTC | 0x1985…955e | IN | SwapRouter | $380.750.2 ETH | 0.00000944 | |
| 0xc0f3fa…1b0236 | multicall | 15,465,928 | 27 days agoTue, 21 Jul 2026 09:46:08 UTC | 0x1985…955e | IN | SwapRouter | $0.000 ETH | 0.00000996 | |
| 0x10219f…8e5c04 | multicall | 15,464,831 | 27 days agoTue, 21 Jul 2026 09:44:18 UTC | 0x1985…955e | IN | SwapRouter | $0.000 ETH | 0.00000976 | |
| 0xe97965…e37980 | multicall | 15,463,969 | 27 days agoTue, 21 Jul 2026 09:42:51 UTC | 0x1985…955e | IN | SwapRouter | $0.000 ETH | 0.00000984 | |
| 0x49a254…1263ed | multicall | 15,461,345 | 27 days agoTue, 21 Jul 2026 09:38:29 UTC | 0x1985…955e | IN | SwapRouter | $0.000 ETH | 0.00000975 | |
| 0xbb9cce…e4afa0 | multicall | 15,454,199 | 27 days agoTue, 21 Jul 2026 09:26:32 UTC | 0x4183…150c | IN | SwapRouter | $0.000 ETH | 0.00000972 | |
| 0x6b26b0…bda186 | multicall | 15,443,139 | 27 days agoTue, 21 Jul 2026 09:08:01 UTC | 0x4183…150c | IN | SwapRouter | $0.000.00000 ETH | 0.00000830 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xbb680228…72b5f9 | Transfer | 35,816,512 | 3 days agoFri, 14 Aug 2026 00:19:58 UTC | 0x44e6…d292 | OUT | 0x0000…0000 | 0.001578 WETH | WETH (WETH) | |
| 0xbb680228…72b5f9 | Transfer | 35,816,512 | 3 days agoFri, 14 Aug 2026 00:19:58 UTC | 0x4e2a…3a35 | IN | 0x44e6…d292 | 0.001578 WETH | WETH (WETH) | |
| 0xc4b58b62…213fa8 | Transfer | 32,640,029 | 7 days agoMon, 10 Aug 2026 08:03:49 UTC | 0x44e6…d292 | OUT | 0x2401…b089 | 0.0001 WETH | WETH (WETH) | |
| 0xc4b58b62…213fa8 | Transfer | 32,640,029 | 7 days agoMon, 10 Aug 2026 08:03:49 UTC | 0x0000…0000 | IN | 0x44e6…d292 | 0.0001 WETH | WETH (WETH) | |
| 0x2bbbe7fb…998408 | Transfer | 29,409,439 | 11 days agoThu, 06 Aug 2026 14:09:59 UTC | 0x44e6…d292 | OUT | 0x0000…0000 | 0.010396 WETH | WETH (WETH) | |
| 0x2bbbe7fb…998408 | Transfer | 29,409,439 | 11 days agoThu, 06 Aug 2026 14:09:59 UTC | 0x4e2a…3a35 | IN | 0x44e6…d292 | 0.010396 WETH | WETH (WETH) | |
| 0xcee6274a…5f8ac9 | Transfer | 26,675,945 | 14 days agoMon, 03 Aug 2026 10:04:10 UTC | 0x44e6…d292 | OUT | 0x9cc1…ddcf | 0.000000 WETH | WETH (WETH) | |
| 0xcee6274a…5f8ac9 | Transfer | 26,675,945 | 14 days agoMon, 03 Aug 2026 10:04:10 UTC | 0x4e2a…3a35 | IN | 0x44e6…d292 | 0.000000 WETH | WETH (WETH) | |
| 0xf11e9a26…e5575d | Transfer | 26,106,807 | 15 days agoSun, 02 Aug 2026 18:13:21 UTC | 0x44e6…d292 | OUT | 0x0000…0000 | 0.000490 WETH | WETH (WETH) | |
| 0xf11e9a26…e5575d | Transfer | 26,106,807 | 15 days agoSun, 02 Aug 2026 18:13:21 UTC | 0x4e2a…3a35 | IN | 0x44e6…d292 | 0.000490 WETH | WETH (WETH) | |
| 0x58a22af8…a91ea0 | Transfer | 25,967,353 | 15 days agoSun, 02 Aug 2026 14:20:18 UTC | 0x44e6…d292 | OUT | 0x4e2a…3a35 | 0.001 WETH | WETH (WETH) | |
| 0x58a22af8…a91ea0 | Transfer | 25,967,353 | 15 days agoSun, 02 Aug 2026 14:20:18 UTC | 0x0000…0000 | IN | 0x44e6…d292 | 0.001 WETH | WETH (WETH) | |
| 0x5916d28f…5ccb68 | Transfer | 24,004,522 | 17 days agoFri, 31 Jul 2026 07:39:40 UTC | 0x44e6…d292 | OUT | 0x4e2a…3a35 | 0.000108 WETH | WETH (WETH) | |
| 0x5916d28f…5ccb68 | Transfer | 24,004,522 | 17 days agoFri, 31 Jul 2026 07:39:40 UTC | 0x0000…0000 | IN | 0x44e6…d292 | 0.000108 WETH | WETH (WETH) | |
| 0xb444e743…a4d2cb | Transfer | 19,724,418 | 22 days agoSun, 26 Jul 2026 08:23:50 UTC | 0xcaf7…5d11 | IN | 0x44e6…d292 | $0.001 DIH | ||
| 0xd084d647…8f89ba | Transfer | 19,237,052 | 23 days agoSat, 25 Jul 2026 18:48:30 UTC | 0x44e6…d292 | OUT | 0x0000…0000 | 0.001066 WETH | WETH (WETH) | |
| 0xd084d647…8f89ba | Transfer | 19,237,052 | 23 days agoSat, 25 Jul 2026 18:48:30 UTC | 0x12ee…a679 | IN | 0x44e6…d292 | 0.001066 WETH | WETH (WETH) | |
| 0x075465fb…3788fd | Transfer | 19,232,136 | 23 days agoSat, 25 Jul 2026 18:40:16 UTC | 0x44e6…d292 | OUT | 0x12ee…a679 | 0.00055 WETH | WETH (WETH) | |
| 0x075465fb…3788fd | Transfer | 19,232,136 | 23 days agoSat, 25 Jul 2026 18:40:16 UTC | 0x0000…0000 | IN | 0x44e6…d292 | 0.00055 WETH | WETH (WETH) | |
| 0x4492ae75…59ba47 | Transfer | 18,162,598 | 24 days agoFri, 24 Jul 2026 12:51:41 UTC | 0x44e6…d292 | OUT | 0x12ee…a679 | 0.00055 WETH | WETH (WETH) | |
| 0x4492ae75…59ba47 | Transfer | 18,162,598 | 24 days agoFri, 24 Jul 2026 12:51:41 UTC | 0x0000…0000 | IN | 0x44e6…d292 | 0.00055 WETH | WETH (WETH) | |
| 0xdfcc4795…4880b5 | Transfer | 18,028,016 | 24 days agoFri, 24 Jul 2026 09:06:18 UTC | 0x44e6…d292 | OUT | 0x12ee…a679 | 0.00001 WETH | WETH (WETH) | |
| 0xdfcc4795…4880b5 | Transfer | 18,028,016 | 24 days agoFri, 24 Jul 2026 09:06:18 UTC | 0x0000…0000 | IN | 0x44e6…d292 | 0.00001 WETH | WETH (WETH) | |
| 0x4878f108…acf7bc | Transfer | 16,068,361 | 26 days agoWed, 22 Jul 2026 02:31:48 UTC | 0x44e6…d292 | OUT | 0x12ee…a679 | 0.2 WETH | WETH (WETH) | |
| 0x4878f108…acf7bc | Transfer | 16,068,361 | 26 days agoWed, 22 Jul 2026 02:31:48 UTC | 0x0000…0000 | IN | 0x44e6…d292 | 0.2 WETH | WETH (WETH) |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 35,816,512 | 3 days agoFri, 14 Aug 2026 00:19:58 UTC | 0xbb6802…72b5f9 | CALL | multicall | 0x44e6…d292 | OUT | 0xdd07…012f | 0.00157 ETH |
| 35,816,512 | 3 days agoFri, 14 Aug 2026 00:19:58 UTC | 0xbb6802…72b5f9 | CALL | multicall | 0x0bd7…ad73 | IN | 0x44e6…d292 | 0.00157 ETH |
| 32,640,029 | 7 days agoMon, 10 Aug 2026 08:03:49 UTC | 0xc4b58b…213fa8 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.0001 ETH |
| 32,640,029 | 7 days agoMon, 10 Aug 2026 08:03:49 UTC | 0xc4b58b…213fa8 | CALL | multicall | 0x44e6…d292 | OUT | 0x0bd7…ad73 | 0.0001 ETH |
| 32,640,029 | 7 days agoMon, 10 Aug 2026 08:03:49 UTC | 0xc4b58b…213fa8 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.0001 ETH |
| 29,409,439 | 11 days agoThu, 06 Aug 2026 14:09:59 UTC | 0x2bbbe7…998408 | CALL | multicall | 0x44e6…d292 | OUT | 0x543b…0707 | 0.01039 ETH |
| 29,409,439 | 11 days agoThu, 06 Aug 2026 14:09:59 UTC | 0x2bbbe7…998408 | CALL | multicall | 0x0bd7…ad73 | IN | 0x44e6…d292 | 0.01039 ETH |
| 26,106,807 | 15 days agoSun, 02 Aug 2026 18:13:21 UTC | 0xf11e9a…e5575d | CALL | multicall | 0x44e6…d292 | OUT | 0x0c6f…ebfa | 0.00049 ETH |
| 26,106,807 | 15 days agoSun, 02 Aug 2026 18:13:21 UTC | 0xf11e9a…e5575d | CALL | multicall | 0x0bd7…ad73 | IN | 0x44e6…d292 | 0.00049 ETH |
| 25,967,353 | 15 days agoSun, 02 Aug 2026 14:20:18 UTC | 0x58a22a…a91ea0 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.001 ETH |
| 25,967,353 | 15 days agoSun, 02 Aug 2026 14:20:18 UTC | 0x58a22a…a91ea0 | CALL | multicall | 0x44e6…d292 | OUT | 0x0bd7…ad73 | 0.001 ETH |
| 25,967,353 | 15 days agoSun, 02 Aug 2026 14:20:18 UTC | 0x58a22a…a91ea0 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.001 ETH |
| 24,004,522 | 17 days agoFri, 31 Jul 2026 07:39:40 UTC | 0x5916d2…5ccb68 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.00010 ETH |
| 24,004,522 | 17 days agoFri, 31 Jul 2026 07:39:40 UTC | 0x5916d2…5ccb68 | CALL | multicall | 0x44e6…d292 | OUT | 0x0bd7…ad73 | 0.00010 ETH |
| 24,004,522 | 17 days agoFri, 31 Jul 2026 07:39:40 UTC | 0x5916d2…5ccb68 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.00010 ETH |
| 19,237,052 | 23 days agoSat, 25 Jul 2026 18:48:30 UTC | 0xd084d6…8f89ba | CALL | multicall | 0x44e6…d292 | OUT | 0xc881…b29c | 0.00106 ETH |
| 19,237,052 | 23 days agoSat, 25 Jul 2026 18:48:30 UTC | 0xd084d6…8f89ba | CALL | multicall | 0x0bd7…ad73 | IN | 0x44e6…d292 | 0.00106 ETH |
| 19,232,136 | 23 days agoSat, 25 Jul 2026 18:40:16 UTC | 0x075465…3788fd | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.00055 ETH |
| 19,232,136 | 23 days agoSat, 25 Jul 2026 18:40:16 UTC | 0x075465…3788fd | CALL | multicall | 0x44e6…d292 | OUT | 0x0bd7…ad73 | 0.00055 ETH |
| 19,232,136 | 23 days agoSat, 25 Jul 2026 18:40:16 UTC | 0x075465…3788fd | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.00055 ETH |
| 18,162,598 | 24 days agoFri, 24 Jul 2026 12:51:41 UTC | 0x4492ae…59ba47 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.00055 ETH |
| 18,162,598 | 24 days agoFri, 24 Jul 2026 12:51:41 UTC | 0x4492ae…59ba47 | CALL | multicall | 0x44e6…d292 | OUT | 0x0bd7…ad73 | 0.00055 ETH |
| 18,162,598 | 24 days agoFri, 24 Jul 2026 12:51:41 UTC | 0x4492ae…59ba47 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.00055 ETH |
| 18,028,016 | 24 days agoFri, 24 Jul 2026 09:06:18 UTC | 0xdfcc47…4880b5 | DELEGATECALL | multicall | 0x44e6…d292 | OUT | 0x44e6…d292 | 0.00001 ETH |
| 18,028,016 | 24 days agoFri, 24 Jul 2026 09:06:18 UTC | 0xdfcc47…4880b5 | CALL | multicall | 0x44e6…d292 | OUT | 0x0bd7…ad73 | 0.00001 ETH |