// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
/// @dev Minimal ERC-20.
interface IERC20 {
function balanceOf(address account) external view returns (uint256);
function totalSupply() external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function approve(address spender, uint256 amount) external returns (bool);
}
interface IPonsLaunchLocker {
function collectFees(address token) external returns (uint256 amount0, uint256 amount1);
function feeRedirects(address token) external view returns (address);
function getLaunchedToken(address token)
external
view
returns (
address tokenAddr,
address deployer,
address pairedToken,
address positionManager,
uint256 positionId,
uint256 dexId,
uint256 launchConfigId,
uint256 restrictionsEndBlock,
uint256 supply,
bool isToken0,
uint24 poolFee,
bool exists,
uint256 initialBuyAmount
);
}
interface INonfungiblePositionManager {
struct MintParams {
address token0;
address token1;
uint24 fee;
int24 tickLower;
int24 tickUpper;
uint256 amount0Desired;
uint256 amount1Desired;
uint256 amount0Min;
uint256 amount1Min;
address recipient;
uint256 deadline;
}
struct IncreaseLiquidityParams {
uint256 tokenId;
uint256 amount0Desired;
uint256 amount1Desired;
uint256 amount0Min;
uint256 amount1Min;
uint256 deadline;
}
function positions(uint256 tokenId)
external
view
returns (
uint96 nonce,
address operator,
address token0,
address token1,
uint24 fee,
int24 tickLower,
int24 tickUpper,
uint128 liquidity,
uint256 feeGrowthInside0LastX128,
uint256 feeGrowthInside1LastX128,
uint128 tokensOwed0,
uint128 tokensOwed1
);
function mint(MintParams calldata params)
external
payable
returns (uint256 tokenId, uint128 liquidity, uint256 amount0, uint256 amount1);
function increaseLiquidity(IncreaseLiquidityParams calldata params)
external
payable
returns (uint128 liquidity, uint256 amount0, uint256 amount1);
function factory() external view returns (address);
function ownerOf(uint256 tokenId) external view returns (address);
}
interface IUniswapV3Factory {
function getPool(address tokenA, address tokenB, uint24 fee) external view returns (address pool);
}
interface IUniswapV3Pool {
function tickSpacing() external view returns (int24);
}
/**
* @title PonsFeeCrank
* @notice Pons fee redirect. Anyone may `crank(token)`:
* 1) collect creator LP fees (if any)
* 2) tip caller 1% of *new* fees
* 3) take a SUBSET of free meme + free WETH inventory for Uni V3 LP
* (mint first NFT, then increaseLiquidity on same id)
* 4) remaining free meme → burn + reflect
* 5) remaining free WETH → owner
*
* @dev Free meme excludes reflectPool reservation. LP uses inventory, not only this-tx fee delta.
*/
contract PonsFeeCrank {
uint16 public constant BPS = 10_000;
uint16 public constant KEEPER_BPS = 100; // 1% of new fees to caller
/// @dev Of free inventory: this fraction goes to LP (both assets).
uint16 public constant LIQ_BPS = 5_000; // 50% of free meme + 50% of free WETH
/// @dev Keep this fraction of free meme/WETH after LP as working capital for next crank.
uint16 public constant INVENTORY_KEEP_BPS = 2_500; // 25% stays
/// @dev Of free meme *distributed* after LP+keep: burn vs reflect (must sum to BPS).
uint16 public constant BURN_OF_REST_BPS = 5_000;
uint16 public constant REFLECT_OF_REST_BPS = 5_000;
address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
int24 internal constant MIN_TICK = -887272;
int24 internal constant MAX_TICK = 887272;
IPonsLaunchLocker public immutable locker;
address public owner;
mapping(address token => uint256) public reflectPool;
mapping(address token => uint256) public reflectAcc;
mapping(address token => mapping(address user => uint256)) public reflectDebt;
mapping(address token => mapping(address user => uint256)) public claimedReflect;
/// @notice Uni V3 position NFT we keep topping up per launch token (0 = none yet).
mapping(address token => uint256) public liqTokenId;
error NotOwner();
error ZeroAddress();
error NotFeeRecipient(address token, address redirect);
error NoFees();
error TransferFailed();
error BadSplit();
error NothingToClaim();
event Cranked(
address indexed token,
address indexed caller,
uint256 keeperMeme,
uint256 keeperPair,
uint256 burnedMeme,
uint256 reflectedMeme,
uint256 liqMemeUsed,
uint256 liqPairUsed,
uint256 pairToOwner,
uint256 positionId
);
event ReflectClaimed(address indexed token, address indexed user, uint256 amount);
event OwnerUpdated(address indexed previous, address indexed next);
event OwnerSwept(address indexed asset, address indexed to, uint256 amount);
event LiqFailed(address indexed token, uint256 amount0Desired, uint256 amount1Desired);
modifier onlyOwner() {
if (msg.sender != owner) revert NotOwner();
_;
}
constructor(address locker_, address owner_) {
if (locker_ == address(0) || owner_ == address(0)) revert ZeroAddress();
if (uint256(BURN_OF_REST_BPS) + REFLECT_OF_REST_BPS != BPS) revert BadSplit();
locker = IPonsLaunchLocker(locker_);
owner = owner_;
}
receive() external payable {}
function transferOwnership(address next) external onlyOwner {
if (next == address(0)) revert ZeroAddress();
emit OwnerUpdated(owner, next);
owner = next;
}
/**
* @notice Permissionless collect + tip + inventory LP subset + burn/reflect + WETH to owner.
*/
function crank(address token) external returns (uint256 positionId) {
address redirect = locker.feeRedirects(token);
if (redirect != address(this)) revert NotFeeRecipient(token, redirect);
(
,
,
address pairedToken,
address positionManager,
uint256 launchPositionId,
,
,
,
,
,
uint24 poolFee,
bool exists,
) = locker.getLaunchedToken(token);
if (!exists) revert NoFees();
(,, address token0, address token1,,,,,,,,) =
INonfungiblePositionManager(positionManager).positions(launchPositionId);
bool memeIs0 = token0 == token;
address meme = token;
address pair = pairedToken;
uint256 bal0Before = _balance(token0);
uint256 bal1Before = _balance(token1);
// Collect if possible; inventory-only crank still ok if free bags exist.
try locker.collectFees(token) {} catch {}
uint256 got0 = _balance(token0) - bal0Before;
uint256 got1 = _balance(token1) - bal1Before;
// --- 1% keeper on NEW fees only ---
uint256 k0 = (got0 * KEEPER_BPS) / BPS;
uint256 k1 = (got1 * KEEPER_BPS) / BPS;
if (k0 != 0) _push(token0, msg.sender, k0);
if (k1 != 0) _push(token1, msg.sender, k1);
// Free inventory (exclude reflect pot)
uint256 freeMeme = _freeMeme(meme);
uint256 freeWeth = _balance(pair);
if (got0 == 0 && got1 == 0 && (freeMeme == 0 || freeWeth == 0)) {
// nothing new and can't LP
if (freeMeme == 0 && freeWeth == 0) revert NoFees();
// if only one side free, still process burn/owner without LP
}
// --- LP: take subset of BOTH free inventories ---
uint256 liqMemeTake = (freeMeme * LIQ_BPS) / BPS;
uint256 liqWethTake = (freeWeth * LIQ_BPS) / BPS;
uint256 liqMemeUsed;
uint256 liqPairUsed;
if (liqMemeTake > 0 && liqWethTake > 0) {
uint256 amount0Desired = memeIs0 ? liqMemeTake : liqWethTake;
uint256 amount1Desired = memeIs0 ? liqWethTake : liqMemeTake;
(positionId, liqMemeUsed, liqPairUsed) = _addOrIncreaseLiq(
INonfungiblePositionManager(positionManager),
token,
token0,
token1,
poolFee,
amount0Desired,
amount1Desired,
memeIs0
);
}
// --- remaining free meme → keep buffer, rest burn + reflect ---
freeMeme = _freeMeme(meme);
uint256 memeKeep = (freeMeme * INVENTORY_KEEP_BPS) / BPS;
uint256 memeOut = freeMeme - memeKeep;
uint256 burnAmt = (memeOut * BURN_OF_REST_BPS) / BPS;
uint256 reflectAmt = memeOut - burnAmt;
if (burnAmt != 0) _push(meme, DEAD, burnAmt);
if (reflectAmt != 0) _fundReflect(meme, reflectAmt);
// --- remaining free WETH → keep buffer, rest owner ---
freeWeth = _balance(pair);
uint256 wethKeep = (freeWeth * INVENTORY_KEEP_BPS) / BPS;
uint256 pairToOwner = freeWeth - wethKeep;
if (pairToOwner != 0) _push(pair, owner, pairToOwner);
uint256 keeperMeme = memeIs0 ? k0 : k1;
uint256 keeperPair = memeIs0 ? k1 : k0;
if (positionId == 0) positionId = liqTokenId[token];
emit Cranked(
token,
msg.sender,
keeperMeme,
keeperPair,
burnAmt,
reflectAmt,
liqMemeUsed,
liqPairUsed,
pairToOwner,
positionId
);
}
function claimReflect(address token) external returns (uint256 amount) {
uint256 accumulated = (IERC20(token).balanceOf(msg.sender) * reflectAcc[token]) / 1e18;
uint256 debt = reflectDebt[token][msg.sender];
if (accumulated <= debt) revert NothingToClaim();
amount = accumulated - debt;
uint256 pool = reflectPool[token];
if (amount > pool) amount = pool;
if (amount == 0) revert NothingToClaim();
reflectDebt[token][msg.sender] = accumulated;
reflectPool[token] = pool - amount;
claimedReflect[token][msg.sender] += amount;
_push(token, msg.sender, amount);
emit ReflectClaimed(token, msg.sender, amount);
}
function pendingReflect(address token, address user) external view returns (uint256) {
uint256 supply = IERC20(token).totalSupply();
if (supply == 0) return 0;
uint256 accumulated = (IERC20(token).balanceOf(user) * reflectAcc[token]) / 1e18;
uint256 debt = reflectDebt[token][user];
if (accumulated <= debt) return 0;
uint256 amount = accumulated - debt;
uint256 pool = reflectPool[token];
return amount > pool ? pool : amount;
}
function sweep(address asset, address to, uint256 amount) external onlyOwner {
if (to == address(0)) revert ZeroAddress();
if (asset == address(0)) {
(bool ok,) = payable(to).call{value: amount}("");
if (!ok) revert TransferFailed();
} else {
_push(asset, to, amount);
}
emit OwnerSwept(asset, to, amount);
}
// ─────────────────────────── internals ───────────────────────────
function _freeMeme(address meme) private view returns (uint256) {
uint256 bal = _balance(meme);
uint256 reserved = reflectPool[meme];
return bal > reserved ? bal - reserved : 0;
}
function _fundReflect(address token, uint256 amount) private {
uint256 supply = IERC20(token).totalSupply();
if (supply == 0 || amount == 0) {
if (amount != 0) _push(token, DEAD, amount);
return;
}
reflectPool[token] += amount;
reflectAcc[token] += (amount * 1e18) / supply;
}
/**
* @dev Mint full-range if no stored NFT; else increaseLiquidity on stored id.
* Returns (positionId, memeUsed, pairUsed).
*/
function _addOrIncreaseLiq(
INonfungiblePositionManager npm,
address token,
address token0,
address token1,
uint24 fee,
uint256 amount0Desired,
uint256 amount1Desired,
bool memeIs0
) private returns (uint256 positionId, uint256 memeUsed, uint256 pairUsed) {
if (amount0Desired == 0 || amount1Desired == 0) return (0, 0, 0);
uint256 bal0 = _balance(token0);
uint256 bal1 = _balance(token1);
if (amount0Desired > bal0) amount0Desired = bal0;
if (amount1Desired > bal1) amount1Desired = bal1;
if (amount0Desired == 0 || amount1Desired == 0) return (0, 0, 0);
address pool = IUniswapV3Factory(npm.factory()).getPool(token0, token1, fee);
if (pool == address(0)) return (0, 0, 0);
uint256 existing = liqTokenId[token];
if (existing != 0) {
// Verify we still own it
try npm.ownerOf(existing) returns (address o) {
if (o != address(this)) existing = 0;
} catch {
existing = 0;
}
}
_approve(token0, address(npm), amount0Desired);
_approve(token1, address(npm), amount1Desired);
uint256 used0;
uint256 used1;
if (existing != 0) {
try npm.increaseLiquidity(
INonfungiblePositionManager.IncreaseLiquidityParams({
tokenId: existing,
amount0Desired: amount0Desired,
amount1Desired: amount1Desired,
amount0Min: 0,
amount1Min: 0,
deadline: block.timestamp
})
) returns (uint128, uint256 a0, uint256 a1) {
positionId = existing;
used0 = a0;
used1 = a1;
} catch {
emit LiqFailed(token, amount0Desired, amount1Desired);
_approve(token0, address(npm), 0);
_approve(token1, address(npm), 0);
return (existing, 0, 0);
}
} else {
int24 spacing = IUniswapV3Pool(pool).tickSpacing();
int24 tickLower = _nearestUsableTick(MIN_TICK, spacing);
int24 tickUpper = _nearestUsableTick(MAX_TICK, spacing);
if (tickLower >= tickUpper) {
_approve(token0, address(npm), 0);
_approve(token1, address(npm), 0);
return (0, 0, 0);
}
try npm.mint(
INonfungiblePositionManager.MintParams({
token0: token0,
token1: token1,
fee: fee,
tickLower: tickLower,
tickUpper: tickUpper,
amount0Desired: amount0Desired,
amount1Desired: amount1Desired,
amount0Min: 0,
amount1Min: 0,
recipient: address(this),
deadline: block.timestamp
})
) returns (uint256 id, uint128, uint256 a0, uint256 a1) {
positionId = id;
liqTokenId[token] = id;
used0 = a0;
used1 = a1;
} catch {
emit LiqFailed(token, amount0Desired, amount1Desired);
_approve(token0, address(npm), 0);
_approve(token1, address(npm), 0);
return (0, 0, 0);
}
}
_approve(token0, address(npm), 0);
_approve(token1, address(npm), 0);
memeUsed = memeIs0 ? used0 : used1;
pairUsed = memeIs0 ? used1 : used0;
return (positionId, memeUsed, pairUsed);
}
function _nearestUsableTick(int24 tick, int24 spacing) private pure returns (int24) {
int24 compressed = tick / spacing;
if (tick < 0 && tick % spacing != 0) compressed--;
int24 rounded = compressed * spacing;
if (rounded < MIN_TICK) rounded += spacing;
if (rounded > MAX_TICK) rounded -= spacing;
return rounded;
}
function _balance(address token) private view returns (uint256) {
if (token == address(0)) return address(this).balance;
return IERC20(token).balanceOf(address(this));
}
function _approve(address token, address spender, uint256 amount) private {
if (token == address(0)) return;
(bool ok, bytes memory data) =
token.call(abi.encodeWithSelector(IERC20.approve.selector, spender, amount));
if (!ok || (data.length != 0 && !abi.decode(data, (bool)))) {
token.call(abi.encodeWithSelector(IERC20.approve.selector, spender, 0));
(ok, data) = token.call(abi.encodeWithSelector(IERC20.approve.selector, spender, amount));
if (!ok || (data.length != 0 && !abi.decode(data, (bool)))) revert TransferFailed();
}
}
function _push(address token, address to, uint256 amount) private {
if (amount == 0) return;
if (token == address(0)) {
(bool ok,) = payable(to).call{value: amount}("");
if (!ok) revert TransferFailed();
return;
}
(bool ok, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, amount));
if (!ok || (data.length != 0 && !abi.decode(data, (bool)))) revert TransferFailed();
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "locker_",
"type": "address",
"internalType": "address"
},
{
"name": "owner_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "BadSplit",
"type": "error",
"inputs": []
},
{
"name": "NoFees",
"type": "error",
"inputs": []
},
{
"name": "NotFeeRecipient",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "redirect",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "NotOwner",
"type": "error",
"inputs": []
},
{
"name": "NothingToClaim",
"type": "error",
"inputs": []
},
{
"name": "TransferFailed",
"type": "error",
"inputs": []
},
{
"name": "ZeroAddress",
"type": "error",
"inputs": []
},
{
"name": "Cranked",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "caller",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "keeperMeme",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "keeperPair",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "burnedMeme",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "reflectedMeme",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "liqMemeUsed",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "liqPairUsed",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "pairToOwner",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "positionId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "LiqFailed",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount0Desired",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "amount1Desired",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnerSwept",
"type": "event",
"inputs": [
{
"name": "asset",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnerUpdated",
"type": "event",
"inputs": [
{
"name": "previous",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "next",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "ReflectClaimed",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "BURN_OF_REST_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "DEAD",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "INVENTORY_KEEP_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "KEEPER_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "LIQ_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "REFLECT_OF_REST_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "claimReflect",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "claimedReflect",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "crank",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "positionId",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "liqTokenId",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "locker",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IPonsLaunchLocker"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "pendingReflect",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "reflectAcc",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "reflectDebt",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "reflectPool",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "sweep",
"type": "function",
"inputs": [
{
"name": "asset",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "next",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60a0346100ca57601f611cb638819003918201601f19168301916001600160401b038311848410176100ce5780849260409485528339810103126100ca57610052602061004b836100e2565b92016100e2565b906001600160a01b0316801580156100b9575b6100aa576080525f80546001600160a01b0319166001600160a01b0392909216919091179055604051611bbf90816100f782396080518181816101db01526105310152f35b63d92e233d60e01b5f5260045ffd5b506001600160a01b03821615610065565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100ca5756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816303fd2a4514610bf557508063249d39e914610bd95780632a7037f014610bbd578063351afe83146102fe5780634425005f14610b6d57806359b5152a146102fe57806362c0676714610a8a578063733cc0d3146104f557806387064e5f146104da5780638c300cc21461032a5780638da5cb5b14610303578063a7106cbe146102fe578063ad9a91d6146102c6578063c0922d7214610292578063c874330b1461025a578063cd453a1c1461020a578063d7b96d4e146101c6578063f2fde38b146101355763fef92eda146100f9575f61000f565b34610131576020366003190112610131576001600160a01b0361011a610c2b565b165f526005602052602060405f2054604051908152f35b5f80fd5b346101315760203660031901126101315761014e610c2b565b5f546001600160a01b03811691338390036101b7576001600160a01b03169182156101a85782907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d765f80a36001600160a01b031916175f55005b63d92e233d60e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b34610131575f366003190112610131576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013157604036600319011261013157610223610c2b565b61022b610c41565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b34610131576020366003190112610131576001600160a01b0361027b610c2b565b165f526002602052602060405f2054604051908152f35b346101315760403660031901126101315760206102be6102b0610c2b565b6102b8610c41565b90610daf565b604051908152f35b34610131576020366003190112610131576001600160a01b036102e7610c2b565b165f526001602052602060405f2054604051908152f35b610c0f565b34610131575f366003190112610131575f546040516001600160a01b039091168152602090f35b3461013157602036600319011261013157610343610c2b565b6040516370a0823160e01b81523360048201526001600160a01b03821690602081602481855afa9081156104cf575f9161049b575b50610399670de0b6b3a764000091835f52600260205260405f205490610d8f565b0490805f52600360205260405f2060018060a01b0333165f5260205260405f205480831115610483576103cc9083610d28565b91815f52600160205260405f205490818411610492575b8315610483576020946104188561044f948194875f5260038a5260405f2060018060a01b0333165f528a5260405f2055610d28565b5f85815260018852604080822092909255858152600488528181203382528852208054610446908490610da2565b90553390610fbc565b604051908282527f6e19166e51dc7b4e87f619bb639981b61c7171dafa685f2ca11a54454995369f843393a3604051908152f35b6312d37ee560e31b5f5260045ffd5b925080926103e3565b90506020813d6020116104c7575b816104b660209383610c57565b810103126101315751610399610378565b3d91506104a9565b6040513d5f823e3d90fd5b34610131575f36600319011261013157602060405160648152f35b346101315760203660031901126101315761050e610c2b565b604051636e73c06160e11b81526001600160a01b03828116600483018190525f927f000000000000000000000000000000000000000000000000000000000000000090921691602081602481865afa9081156104cf575f91610a50575b506001600160a01b0316308103610a3a5750604051631e7945ad60e11b815260048101829052916101a083602481845afa9081156104cf575f915f5f915f965f916109a0575b50156108645760405163133f757160e31b815260048101929092526001600160a01b031696610180826024818b5afa9283156104cf575f925f946108df575b506001600160a01b03831686149661060784611038565b5f604061061388611038565b9460248b8351948593849263a480ca7960e01b845260048401525af16108b4575b5061064a6106549161064587611038565b610d28565b9261064587611038565b9961271061066184610d49565b049261271061066f8d610d49565b0492846108a4575b83610894575b610686866110aa565b9c6106908a611038565b9215908161088b575b508061087b575b610856575b6127106106bf8160209f6106b890610d5f565b0493610d5f565b04975f975f998415158061084d575b610804575b5050505050506106f86106e5846110aa565b6127106106f182610d77565b0490610d28565b9161071061271061070885610d5f565b048094610d28565b93836107f5575b84806107e5575b505061072c6106e588611038565b9687806107c7575b505088156107c05780985b156107b957505b88156107a5575b6040519788528988015260408701526060860152608085015260a084015260c08301528260e08301527f92bce5d1474365f9fd6c1c28ca2ad80d7dd9d5e2fbd1e2d5ff1e06a3f045db986101003393a3604051908152f35b9750855f526005895260405f20549761074d565b9050610746565b819861073f565b5f546107de926001600160a01b0390911690610fbc565b8b87610734565b6107ee9161185a565b8b8461071e565b6107ff8482610f00565b610717565b889a5061082d989192939495969e508d979950875f1461084657855b881561083e5750956110e0565b9391929092978a80808080806106d3565b9050956110e0565b8095610820565b508015156106ce565b8c1580610873575b156106a5575b6303fbecdf60e51b5f5260045ffd5b50811561085e565b508c15806106a0575081156106a0565b9050158e610699565b61089f84338a610fbc565b61067d565b6108af853389610fbc565b610677565b604090813d83116108d8575b6108ca8183610c57565b81010312610131578b610634565b503d6108c0565b92509250610180823d8211610998575b816108fd6101809383610c57565b810103126101315781516bffffffffffffffffffffffff8116036101315761092760208301610ccc565b5061093460408301610ccc565b61098f61016061094660608601610ccc565b9461095360808201610ced565b5061096060a08201610cfd565b5061096d60c08201610cfd565b5061097a60e08201610d0b565b506109886101408201610d0b565b5001610d0b565b509192896105f0565b3d91506108ef565b945050505092506101a0813d8211610a32575b816109c16101a09383610c57565b81010312610131576109d281610ccc565b506109df60208201610ccc565b506109ec60408201610ccc565b926109f960608301610ccc565b916080810151610a0c6101208301610ce0565b50610a27610160610a206101408501610ced565b9301610ce0565b9593909195896105b1565b3d91506109b3565b90638ff7a05360e01b5f5260045260245260445ffd5b90506020813d602011610a82575b81610a6b60209383610c57565b8101031261013157610a7c90610ccc565b8561056b565b3d9150610a5e565b3461013157606036600319011261013157610aa3610c2b565b610aab610c41565b5f54909190604435906001600160a01b031633036101b7576001600160a01b0383169283156101a8576001600160a01b0383169283610b395750505f80808084875af1610af6610c8d565b5015610b2a5760207f3d96a9508b99e74d0f27d80064f61cf4b9974d8eb186dd805b8ccd52c53376ac915b604051908152a3005b6312171d8360e31b5f5260045ffd5b91610b68816020937f3d96a9508b99e74d0f27d80064f61cf4b9974d8eb186dd805b8ccd52c53376ac95610fbc565b610b21565b3461013157604036600319011261013157610b86610c2b565b610b8e610c41565b6001600160a01b039182165f908152600360209081526040808320949093168252928352819020549051908152f35b34610131575f3660031901126101315760206040516109c48152f35b34610131575f3660031901126101315760206040516127108152f35b34610131575f366003190112610131578061dead60209252f35b34610131575f3660031901126101315760206040516113888152f35b600435906001600160a01b038216820361013157565b602435906001600160a01b038216820361013157565b90601f8019910116810190811067ffffffffffffffff821117610c7957604052565b634e487b7160e01b5f52604160045260245ffd5b3d15610cc7573d9067ffffffffffffffff8211610c795760405191610cbc601f8201601f191660200184610c57565b82523d5f602084013e565b606090565b51906001600160a01b038216820361013157565b5190811515820361013157565b519062ffffff8216820361013157565b51908160020b820361013157565b51906fffffffffffffffffffffffffffffffff8216820361013157565b91908203918211610d3557565b634e487b7160e01b5f52601160045260245ffd5b90606482029180830460641490151715610d3557565b906113888202918083046113881490151715610d3557565b906109c48202918083046109c41490151715610d3557565b81810292918115918404141715610d3557565b91908201809211610d3557565b6040516318160ddd60e01b81526001600160a01b03919091169190602081600481865afa9081156104cf575f91610ece575b5015610ec8576040516370a0823160e01b81526001600160a01b0382166004820152602081602481865afa9081156104cf575f91610e94575b50610e3b670de0b6b3a764000091845f52600260205260405f205490610d8f565b0490825f52600360205260405f209060018060a01b03165f5260205260405f205480821115610e8d57610e6d91610d28565b905f52600160205260405f2054908181115f14610e88575090565b905090565b5050505f90565b90506020813d602011610ec0575b81610eaf60209383610c57565b810103126101315751610e3b610e1a565b3d9150610ea2565b50505f90565b90506020813d602011610ef8575b81610ee960209383610c57565b8101031261013157515f610de1565b3d9150610edc565b908015610fb8575f9182916001600160a01b03821615610f9e5782604051602081019263a9059cbb60e01b845261dead6024830152604482015260448152610f49606482610c57565b51925af1610f55610c8d565b9015908115610f66575b50610b2a57565b8051801515925082610f7b575b50505f610f5f565b8192509060209181010312610131576020610f969101610ce0565b155f80610f73565b829150819061dead5af1610fb0610c8d565b5015610b2a57565b5050565b9190918115611033575f9283926001600160a01b0383161561101b5760405163a9059cbb60e01b602082019081526001600160a01b03909316602482015260448101919091528390610f4981606481015b03601f198101835282610c57565b83925082916001600160a01b03165af1610fb0610c8d565b505050565b6001600160a01b031680156110a5576020602491604051928380926370a0823160e01b82523060048301525afa9081156104cf575f91611076575090565b90506020813d60201161109d575b8161109160209383610c57565b81010312610131575190565b3d9150611084565b504790565b6110b381611038565b6001600160a01b039091165f9081526001602052604090205480821115610ec8576110dd91610d28565b90565b979694919795909593929382158015611852575b6118295761110189611038565b61110a86611038565b9080851161184a575b50808311611842575b508215801561183a575b6118295760405163c45a015560e01b81526001600160a01b03919091169590936020856004818a5afa9485156104cf575f956117ed575b50604051630b4c774160e11b81526001600160a01b038b8116600483018190528882166024840181905262ffffff90941660448401819052979093929160209183916064918391165afa9081156104cf575f916117b3575b506001600160a01b031698891561179f576001600160a01b03165f81815260056020526040902054999096908c8b6116f9575b878b6111f392611a5d565b6111fe868b8b611a5d565b8a1561136f575050505060405160c0810181811067ffffffffffffffff821117610c79576040528781526020810184815260408201848152606083015f815260808401915f835260a08501934285526040519563219f5d1760e01b87525160048701525160248601525160448501525160648401525160848301525160a482015260608160c4815f8b5af1805f925f92611327575b506112e757505050966112db927f44c2ff26470c686d75eed440ee60246ea3641841f350b7e8aecd9fe2ca03f13b604087946112e0999a9b82519182526020820152a261194b565b61194b565b905f905f90565b95925097966113039450869350956112db91999698959661194b565b84156113205780945b15611318575091929190565b905091929190565b819461130c565b925090506060823d606011611367575b8161134460609383610c57565b810103126101315761135582610d0b565b5060406020830151920151905f611293565b3d9150611337565b6004919293949596979c98999a50602090604051928380926334324e9f60e21b82525afa9081156104cf575f916116bf575b5060020b8015611657578080620d89e7190581620d89e7190760020b6116a5575b60020b02908160020b918203610d355781620d89e7198112611688575b508160020b620d89e8811361166b575b508015611657578080620d89e80560020b02908160020b918203610d355781620d89e719811261163a575b508160020b620d89e8811361161e575b505060020b9060020b90808212156116065760405194610160860186811067ffffffffffffffff821117610c795760405285526020850193845260408501928352606085019182526080850190815260a0850188815260c086019088825260e08701925f84526101008801945f865262ffffff6101208a01973089526101408b0199428b526040519b634418b22b60e11b8d5260018060a01b0390511660048d015260018060a01b0390511660248c0152511660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e48501525161010484015260018060a01b0390511661012483015251610144820152608081610164815f8b5af1905f825f925f946115b4575b5061158b57505050509161158395967f44c2ff26470c686d75eed440ee60246ea3641841f350b7e8aecd9fe2ca03f13b604087946112db9682519182526020820152a261194b565b5f905f905f90565b611303955088945090816112db939798949b9a99929a5f52600560205260405f2055959661194b565b92509250506080813d6080116115fe575b816115d260809383610c57565b81010312610131578051906115e960208201610d0b565b5060606040820151910151919091925f61153b565b3d91506115c5565b5050505050505050611583939450826112db9161194b565b039050627fffff198112627fffff821317610d35575f8061142a565b81925001627fffff198112627fffff821317610d3557905f61141a565b634e487b7160e01b5f52601260045260245ffd5b81925003627fffff8113627fffff19821217610d3557905f6113ef565b81925001627fffff198112627fffff821317610d3557905f6113df565b60020b9050627fffff198114610d355781905f19016113c2565b90506020813d6020116116f1575b816116da60209383610c57565b81010312610131576116eb90610cfd565b5f6113a1565b3d91506116cd565b6040516331a9108f60e11b8152600481018d9052909b906020816024818f5afa5f9181611761575b506117395750506111f3878b5f9d5b925050506111e8565b909b90306001600160a01b0390911603611759575b878b6111f392611730565b5f9b5061174e565b9d50905060208d3d602011611797575b8161177e60209383610c57565b81010312610131576117908f9d610ccc565b905f611721565b3d9150611771565b5050505050505050505090505f905f905f90565b90506020813d6020116117e5575b816117ce60209383610c57565b81010312610131576117df90610ccc565b5f6111b5565b3d91506117c1565b9094506020813d602011611821575b8161180960209383610c57565b810103126101315761181a90610ccc565b935f61115d565b3d91506117fc565b5050505050505090505f905f905f90565b508115611126565b91505f61111c565b93505f611113565b5081156110f4565b6040516318160ddd60e01b81526001600160a01b038216929091602083600481875afa9283156104cf575f93611917575b5082159081801561190f575b6118f65750835f52600160205260405f206118b3838254610da2565b9055670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610d35576116575704905f5260026020526118f260405f20918254610da2565b9055565b935050809150611904575050565b61190d91610f00565b565b508215611897565b9092506020813d602011611943575b8161193360209383610c57565b810103126101315751915f61188b565b3d9150611926565b906001600160a01b03821615610fb8575f8060405192602084019063095ea7b360e01b825260018060a01b03169384602482015282604482015260448152611994606482610c57565b519082865af16119a2610c8d565b9015908115611a25575b506119b5575050565b5f9182918280604051602081019063095ea7b360e01b8252846024820152826044820152604481526119e8606482610c57565b519082865af1506119f7610c8d565b5082604051602081019263095ea7b360e01b8452602482015281604482015260448152610f49606482610c57565b8051801515925082611a3a575b50505f6119ac565b8192509060209181010312610131576020611a559101610ce0565b155f80611a32565b9091906001600160a01b038116156110335760405163095ea7b360e01b602082019081526001600160a01b0385166024830152604482018490525f91829190611aa9816064810161100d565b519082855af1611ab7610c8d565b9015908115611b51575b50611acb57505050565b5f928361100d610f4982958380604051602081019063095ea7b360e01b825260018060a01b038916602482015282604482015260448152611b0d606482610c57565b5190828a5af150611b1c610c8d565b5060405163095ea7b360e01b602082019081526001600160a01b03909616602482015260448101919091529182906064820190565b8051801515925082611b66575b50505f611ac1565b8192509060209181010312610131576020611b819101610ce0565b155f80611b5e56fea26469706673582212203a27ea4189c498e687feee5358181ea8cce103ae5b3b51d900df37a663f6ce6d64736f6c634300081e0033000000000000000000000000736d76699c26d0d966744cae304c000d471f7f3500000000000000000000000026e8134ecc3af5cce32f34b03e7bd2f318b25158
0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816303fd2a4514610bf557508063249d39e914610bd95780632a7037f014610bbd578063351afe83146102fe5780634425005f14610b6d57806359b5152a146102fe57806362c0676714610a8a578063733cc0d3146104f557806387064e5f146104da5780638c300cc21461032a5780638da5cb5b14610303578063a7106cbe146102fe578063ad9a91d6146102c6578063c0922d7214610292578063c874330b1461025a578063cd453a1c1461020a578063d7b96d4e146101c6578063f2fde38b146101355763fef92eda146100f9575f61000f565b34610131576020366003190112610131576001600160a01b0361011a610c2b565b165f526005602052602060405f2054604051908152f35b5f80fd5b346101315760203660031901126101315761014e610c2b565b5f546001600160a01b03811691338390036101b7576001600160a01b03169182156101a85782907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d765f80a36001600160a01b031916175f55005b63d92e233d60e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b34610131575f366003190112610131576040517f000000000000000000000000736d76699c26d0d966744cae304c000d471f7f356001600160a01b03168152602090f35b3461013157604036600319011261013157610223610c2b565b61022b610c41565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b34610131576020366003190112610131576001600160a01b0361027b610c2b565b165f526002602052602060405f2054604051908152f35b346101315760403660031901126101315760206102be6102b0610c2b565b6102b8610c41565b90610daf565b604051908152f35b34610131576020366003190112610131576001600160a01b036102e7610c2b565b165f526001602052602060405f2054604051908152f35b610c0f565b34610131575f366003190112610131575f546040516001600160a01b039091168152602090f35b3461013157602036600319011261013157610343610c2b565b6040516370a0823160e01b81523360048201526001600160a01b03821690602081602481855afa9081156104cf575f9161049b575b50610399670de0b6b3a764000091835f52600260205260405f205490610d8f565b0490805f52600360205260405f2060018060a01b0333165f5260205260405f205480831115610483576103cc9083610d28565b91815f52600160205260405f205490818411610492575b8315610483576020946104188561044f948194875f5260038a5260405f2060018060a01b0333165f528a5260405f2055610d28565b5f85815260018852604080822092909255858152600488528181203382528852208054610446908490610da2565b90553390610fbc565b604051908282527f6e19166e51dc7b4e87f619bb639981b61c7171dafa685f2ca11a54454995369f843393a3604051908152f35b6312d37ee560e31b5f5260045ffd5b925080926103e3565b90506020813d6020116104c7575b816104b660209383610c57565b810103126101315751610399610378565b3d91506104a9565b6040513d5f823e3d90fd5b34610131575f36600319011261013157602060405160648152f35b346101315760203660031901126101315761050e610c2b565b604051636e73c06160e11b81526001600160a01b03828116600483018190525f927f000000000000000000000000736d76699c26d0d966744cae304c000d471f7f3590921691602081602481865afa9081156104cf575f91610a50575b506001600160a01b0316308103610a3a5750604051631e7945ad60e11b815260048101829052916101a083602481845afa9081156104cf575f915f5f915f965f916109a0575b50156108645760405163133f757160e31b815260048101929092526001600160a01b031696610180826024818b5afa9283156104cf575f925f946108df575b506001600160a01b03831686149661060784611038565b5f604061061388611038565b9460248b8351948593849263a480ca7960e01b845260048401525af16108b4575b5061064a6106549161064587611038565b610d28565b9261064587611038565b9961271061066184610d49565b049261271061066f8d610d49565b0492846108a4575b83610894575b610686866110aa565b9c6106908a611038565b9215908161088b575b508061087b575b610856575b6127106106bf8160209f6106b890610d5f565b0493610d5f565b04975f975f998415158061084d575b610804575b5050505050506106f86106e5846110aa565b6127106106f182610d77565b0490610d28565b9161071061271061070885610d5f565b048094610d28565b93836107f5575b84806107e5575b505061072c6106e588611038565b9687806107c7575b505088156107c05780985b156107b957505b88156107a5575b6040519788528988015260408701526060860152608085015260a084015260c08301528260e08301527f92bce5d1474365f9fd6c1c28ca2ad80d7dd9d5e2fbd1e2d5ff1e06a3f045db986101003393a3604051908152f35b9750855f526005895260405f20549761074d565b9050610746565b819861073f565b5f546107de926001600160a01b0390911690610fbc565b8b87610734565b6107ee9161185a565b8b8461071e565b6107ff8482610f00565b610717565b889a5061082d989192939495969e508d979950875f1461084657855b881561083e5750956110e0565b9391929092978a80808080806106d3565b9050956110e0565b8095610820565b508015156106ce565b8c1580610873575b156106a5575b6303fbecdf60e51b5f5260045ffd5b50811561085e565b508c15806106a0575081156106a0565b9050158e610699565b61089f84338a610fbc565b61067d565b6108af853389610fbc565b610677565b604090813d83116108d8575b6108ca8183610c57565b81010312610131578b610634565b503d6108c0565b92509250610180823d8211610998575b816108fd6101809383610c57565b810103126101315781516bffffffffffffffffffffffff8116036101315761092760208301610ccc565b5061093460408301610ccc565b61098f61016061094660608601610ccc565b9461095360808201610ced565b5061096060a08201610cfd565b5061096d60c08201610cfd565b5061097a60e08201610d0b565b506109886101408201610d0b565b5001610d0b565b509192896105f0565b3d91506108ef565b945050505092506101a0813d8211610a32575b816109c16101a09383610c57565b81010312610131576109d281610ccc565b506109df60208201610ccc565b506109ec60408201610ccc565b926109f960608301610ccc565b916080810151610a0c6101208301610ce0565b50610a27610160610a206101408501610ced565b9301610ce0565b9593909195896105b1565b3d91506109b3565b90638ff7a05360e01b5f5260045260245260445ffd5b90506020813d602011610a82575b81610a6b60209383610c57565b8101031261013157610a7c90610ccc565b8561056b565b3d9150610a5e565b3461013157606036600319011261013157610aa3610c2b565b610aab610c41565b5f54909190604435906001600160a01b031633036101b7576001600160a01b0383169283156101a8576001600160a01b0383169283610b395750505f80808084875af1610af6610c8d565b5015610b2a5760207f3d96a9508b99e74d0f27d80064f61cf4b9974d8eb186dd805b8ccd52c53376ac915b604051908152a3005b6312171d8360e31b5f5260045ffd5b91610b68816020937f3d96a9508b99e74d0f27d80064f61cf4b9974d8eb186dd805b8ccd52c53376ac95610fbc565b610b21565b3461013157604036600319011261013157610b86610c2b565b610b8e610c41565b6001600160a01b039182165f908152600360209081526040808320949093168252928352819020549051908152f35b34610131575f3660031901126101315760206040516109c48152f35b34610131575f3660031901126101315760206040516127108152f35b34610131575f366003190112610131578061dead60209252f35b34610131575f3660031901126101315760206040516113888152f35b600435906001600160a01b038216820361013157565b602435906001600160a01b038216820361013157565b90601f8019910116810190811067ffffffffffffffff821117610c7957604052565b634e487b7160e01b5f52604160045260245ffd5b3d15610cc7573d9067ffffffffffffffff8211610c795760405191610cbc601f8201601f191660200184610c57565b82523d5f602084013e565b606090565b51906001600160a01b038216820361013157565b5190811515820361013157565b519062ffffff8216820361013157565b51908160020b820361013157565b51906fffffffffffffffffffffffffffffffff8216820361013157565b91908203918211610d3557565b634e487b7160e01b5f52601160045260245ffd5b90606482029180830460641490151715610d3557565b906113888202918083046113881490151715610d3557565b906109c48202918083046109c41490151715610d3557565b81810292918115918404141715610d3557565b91908201809211610d3557565b6040516318160ddd60e01b81526001600160a01b03919091169190602081600481865afa9081156104cf575f91610ece575b5015610ec8576040516370a0823160e01b81526001600160a01b0382166004820152602081602481865afa9081156104cf575f91610e94575b50610e3b670de0b6b3a764000091845f52600260205260405f205490610d8f565b0490825f52600360205260405f209060018060a01b03165f5260205260405f205480821115610e8d57610e6d91610d28565b905f52600160205260405f2054908181115f14610e88575090565b905090565b5050505f90565b90506020813d602011610ec0575b81610eaf60209383610c57565b810103126101315751610e3b610e1a565b3d9150610ea2565b50505f90565b90506020813d602011610ef8575b81610ee960209383610c57565b8101031261013157515f610de1565b3d9150610edc565b908015610fb8575f9182916001600160a01b03821615610f9e5782604051602081019263a9059cbb60e01b845261dead6024830152604482015260448152610f49606482610c57565b51925af1610f55610c8d565b9015908115610f66575b50610b2a57565b8051801515925082610f7b575b50505f610f5f565b8192509060209181010312610131576020610f969101610ce0565b155f80610f73565b829150819061dead5af1610fb0610c8d565b5015610b2a57565b5050565b9190918115611033575f9283926001600160a01b0383161561101b5760405163a9059cbb60e01b602082019081526001600160a01b03909316602482015260448101919091528390610f4981606481015b03601f198101835282610c57565b83925082916001600160a01b03165af1610fb0610c8d565b505050565b6001600160a01b031680156110a5576020602491604051928380926370a0823160e01b82523060048301525afa9081156104cf575f91611076575090565b90506020813d60201161109d575b8161109160209383610c57565b81010312610131575190565b3d9150611084565b504790565b6110b381611038565b6001600160a01b039091165f9081526001602052604090205480821115610ec8576110dd91610d28565b90565b979694919795909593929382158015611852575b6118295761110189611038565b61110a86611038565b9080851161184a575b50808311611842575b508215801561183a575b6118295760405163c45a015560e01b81526001600160a01b03919091169590936020856004818a5afa9485156104cf575f956117ed575b50604051630b4c774160e11b81526001600160a01b038b8116600483018190528882166024840181905262ffffff90941660448401819052979093929160209183916064918391165afa9081156104cf575f916117b3575b506001600160a01b031698891561179f576001600160a01b03165f81815260056020526040902054999096908c8b6116f9575b878b6111f392611a5d565b6111fe868b8b611a5d565b8a1561136f575050505060405160c0810181811067ffffffffffffffff821117610c79576040528781526020810184815260408201848152606083015f815260808401915f835260a08501934285526040519563219f5d1760e01b87525160048701525160248601525160448501525160648401525160848301525160a482015260608160c4815f8b5af1805f925f92611327575b506112e757505050966112db927f44c2ff26470c686d75eed440ee60246ea3641841f350b7e8aecd9fe2ca03f13b604087946112e0999a9b82519182526020820152a261194b565b61194b565b905f905f90565b95925097966113039450869350956112db91999698959661194b565b84156113205780945b15611318575091929190565b905091929190565b819461130c565b925090506060823d606011611367575b8161134460609383610c57565b810103126101315761135582610d0b565b5060406020830151920151905f611293565b3d9150611337565b6004919293949596979c98999a50602090604051928380926334324e9f60e21b82525afa9081156104cf575f916116bf575b5060020b8015611657578080620d89e7190581620d89e7190760020b6116a5575b60020b02908160020b918203610d355781620d89e7198112611688575b508160020b620d89e8811361166b575b508015611657578080620d89e80560020b02908160020b918203610d355781620d89e719811261163a575b508160020b620d89e8811361161e575b505060020b9060020b90808212156116065760405194610160860186811067ffffffffffffffff821117610c795760405285526020850193845260408501928352606085019182526080850190815260a0850188815260c086019088825260e08701925f84526101008801945f865262ffffff6101208a01973089526101408b0199428b526040519b634418b22b60e11b8d5260018060a01b0390511660048d015260018060a01b0390511660248c0152511660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e48501525161010484015260018060a01b0390511661012483015251610144820152608081610164815f8b5af1905f825f925f946115b4575b5061158b57505050509161158395967f44c2ff26470c686d75eed440ee60246ea3641841f350b7e8aecd9fe2ca03f13b604087946112db9682519182526020820152a261194b565b5f905f905f90565b611303955088945090816112db939798949b9a99929a5f52600560205260405f2055959661194b565b92509250506080813d6080116115fe575b816115d260809383610c57565b81010312610131578051906115e960208201610d0b565b5060606040820151910151919091925f61153b565b3d91506115c5565b5050505050505050611583939450826112db9161194b565b039050627fffff198112627fffff821317610d35575f8061142a565b81925001627fffff198112627fffff821317610d3557905f61141a565b634e487b7160e01b5f52601260045260245ffd5b81925003627fffff8113627fffff19821217610d3557905f6113ef565b81925001627fffff198112627fffff821317610d3557905f6113df565b60020b9050627fffff198114610d355781905f19016113c2565b90506020813d6020116116f1575b816116da60209383610c57565b81010312610131576116eb90610cfd565b5f6113a1565b3d91506116cd565b6040516331a9108f60e11b8152600481018d9052909b906020816024818f5afa5f9181611761575b506117395750506111f3878b5f9d5b925050506111e8565b909b90306001600160a01b0390911603611759575b878b6111f392611730565b5f9b5061174e565b9d50905060208d3d602011611797575b8161177e60209383610c57565b81010312610131576117908f9d610ccc565b905f611721565b3d9150611771565b5050505050505050505090505f905f905f90565b90506020813d6020116117e5575b816117ce60209383610c57565b81010312610131576117df90610ccc565b5f6111b5565b3d91506117c1565b9094506020813d602011611821575b8161180960209383610c57565b810103126101315761181a90610ccc565b935f61115d565b3d91506117fc565b5050505050505090505f905f905f90565b508115611126565b91505f61111c565b93505f611113565b5081156110f4565b6040516318160ddd60e01b81526001600160a01b038216929091602083600481875afa9283156104cf575f93611917575b5082159081801561190f575b6118f65750835f52600160205260405f206118b3838254610da2565b9055670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610d35576116575704905f5260026020526118f260405f20918254610da2565b9055565b935050809150611904575050565b61190d91610f00565b565b508215611897565b9092506020813d602011611943575b8161193360209383610c57565b810103126101315751915f61188b565b3d9150611926565b906001600160a01b03821615610fb8575f8060405192602084019063095ea7b360e01b825260018060a01b03169384602482015282604482015260448152611994606482610c57565b519082865af16119a2610c8d565b9015908115611a25575b506119b5575050565b5f9182918280604051602081019063095ea7b360e01b8252846024820152826044820152604481526119e8606482610c57565b519082865af1506119f7610c8d565b5082604051602081019263095ea7b360e01b8452602482015281604482015260448152610f49606482610c57565b8051801515925082611a3a575b50505f6119ac565b8192509060209181010312610131576020611a559101610ce0565b155f80611a32565b9091906001600160a01b038116156110335760405163095ea7b360e01b602082019081526001600160a01b0385166024830152604482018490525f91829190611aa9816064810161100d565b519082855af1611ab7610c8d565b9015908115611b51575b50611acb57505050565b5f928361100d610f4982958380604051602081019063095ea7b360e01b825260018060a01b038916602482015282604482015260448152611b0d606482610c57565b5190828a5af150611b1c610c8d565b5060405163095ea7b360e01b602082019081526001600160a01b03909616602482015260448101919091529182906064820190565b8051801515925082611b66575b50505f611ac1565b8192509060209181010312610131576020611b819101610ce0565b155f80611b5e56fea26469706673582212203a27ea4189c498e687feee5358181ea8cce103ae5b3b51d900df37a663f6ce6d64736f6c634300081e0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| SAFEMOONPONS | 2,715,822.274961 | $0.00000352 | $9.55 | |
WETH (WETH) | WETH | 0.000150 | $1,904.53 | $0.29 |
| DIH | 1 | $0.0000102 | $0 | |
| CashBon (CASHBON) | CASHBON | 17 | — | — |
| Uniswap V3 Positions NFT-V1 (UNI-V3-POS) | UNI-V3-POS | 1 | — | — |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x28c86f…889a1e | 22 days agoSun, 26 Jul 2026 20:20:57 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…03cb0025 data: 0x000000000000000000…a72b9d34 |
| 0xa542f3…47dd23 | 26 days agoWed, 22 Jul 2026 01:05:09 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…525bc457 data: 0x000000000000000000…af712b47 |
| 0x19c6be…632928 | 26 days agoTue, 21 Jul 2026 23:11:04 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…c1d094a1 data: 0x000000000000000000…2c5f0d67 |
| 0xc4b4df…be2141 | 26 days agoTue, 21 Jul 2026 23:10:08 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…c1d094a1 data: 0x000000000000000000…338909ff |
| 0x95e81c…39fc55 | 26 days agoTue, 21 Jul 2026 23:05:07 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…c1d094a1 data: 0x000000000000000000…c53c7a66 |
| 0x8ee602…93cf18 | 26 days agoTue, 21 Jul 2026 23:04:06 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…c1d094a1 data: 0x000000000000000000…d85b4111 |
| 0x4fc138…9922f9 | 27 days agoTue, 21 Jul 2026 20:00:17 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…e9e41f06 data: 0x000000000000000000…a85a3fe1 |
| 0x54f30a…d9e226 | 27 days agoTue, 21 Jul 2026 16:12:19 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…8fc1420d data: 0x000000000000000000…80f6ef1a |
| 0x95a8f6…8a898e | 27 days agoTue, 21 Jul 2026 16:10:33 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…8fc1420d data: 0x000000000000000000…c255b99a |
| 0x1e5f17…b98842 | 27 days agoTue, 21 Jul 2026 16:03:12 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…0538f13d data: 0x000000000000000000…91d6443a |
| 0xc4744a…b9fd95 | 27 days agoTue, 21 Jul 2026 15:52:10 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…03cb0025 data: 0x000000000000000000…e17ad0bb |
| 0xf435c4…4cb484 | 27 days agoTue, 21 Jul 2026 15:10:00 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…12b70824 data: 0x000000000000000000…41071297 |
| 0xa61c45…0d1e09 | 27 days agoTue, 21 Jul 2026 15:08:29 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…7b223b59 data: 0x000000000000000000…47f1a09d |
| 0x1487cd…aca172 | 27 days agoTue, 21 Jul 2026 15:03:02 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…03cb0025 data: 0x000000000000000000…76388eaf |
| 0x3e8076…75c750 | 27 days agoTue, 21 Jul 2026 14:58:04 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…03cb0025 data: 0x000000000000000000…9252ee58 |
| 0x46d733…8f39f3 | 27 days agoTue, 21 Jul 2026 11:57:31 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…0538f13d data: 0x000000000000000000…67368530 |
| 0xb590f5…79ec7f | 27 days agoTue, 21 Jul 2026 10:56:03 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…12b70824 data: 0x000000000000000000…3147a264 |
| 0xe25807…da1312 | 27 days agoTue, 21 Jul 2026 10:33:26 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…12b70824 data: 0x000000000000000000…7f0f1056 |
| 0xb7e0e4…cc6208 | 27 days agoTue, 21 Jul 2026 08:54:12 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…12b70824 data: 0x000000000000000000…94d7d421 |
| 0x3e1697…05b387 | 27 days agoTue, 21 Jul 2026 08:11:56 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…7b223b59 data: 0x000000000000000000…e0eb056e |
| 0x671252…643498 | 27 days agoTue, 21 Jul 2026 03:27:52 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…649e3b5e data: 0x000000000000000000…72ed5c06 |
| 0x03abf3…35c366 | 27 days agoMon, 20 Jul 2026 22:59:27 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…03cb0025 data: 0x000000000000000000…3694aa7a |
| 0xcbcc49…9df140 | 28 days agoMon, 20 Jul 2026 18:41:35 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…0a085e8e data: 0x000000000000000000…266dcefa |
| 0x84899b…e4dcce | 28 days agoMon, 20 Jul 2026 18:39:17 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…88999c0a data: 0x000000000000000000…42dbde86 |
| 0xa5d275…f2c89a | 28 days agoMon, 20 Jul 2026 17:47:51 UTC | 0x6e1916…369f | [0] 0x000000000000…b9be3523 [1] 0x000000000000…4741693c data: 0x000000000000000000…67e5cf98 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x28c86f…889a1e | claimReflect | 20,153,648 | 22 days agoSun, 26 Jul 2026 20:20:57 UTC | 0xc110…0025 | IN | PonsFeeCrank | $0.000 ETH | 0.00000295 | |
| 0xa542f3…47dd23 | claimReflect | 16,016,439 | 26 days agoWed, 22 Jul 2026 01:05:09 UTC | 0x53b6…c457 | IN | PonsFeeCrank | $0.000 ETH | 0.00000711 | |
| 0x19c6be…632928 | claimReflect | 15,948,090 | 26 days agoTue, 21 Jul 2026 23:11:04 UTC | 0x96c0…94a1 | IN | PonsFeeCrank | $0.000 ETH | 0.00000431 | |
| 0xc4b4df…be2141 | claimReflect | 15,947,539 | 26 days agoTue, 21 Jul 2026 23:10:08 UTC | 0x96c0…94a1 | IN | PonsFeeCrank | $0.000 ETH | 0.00000438 | |
| 0x95e81c…39fc55 | claimReflect | 15,944,524 | 26 days agoTue, 21 Jul 2026 23:05:07 UTC | 0x96c0…94a1 | IN | PonsFeeCrank | $0.000 ETH | 0.00000433 | |
| 0x8ee602…93cf18 | claimReflect | 15,943,916 | 26 days agoTue, 21 Jul 2026 23:04:06 UTC | 0x96c0…94a1 | IN | PonsFeeCrank | $0.000 ETH | 0.00000680 | |
| 0x4fc138…9922f9 | claimReflect | 15,833,739 | 27 days agoTue, 21 Jul 2026 20:00:17 UTC | 0x507a…1f06 | IN | PonsFeeCrank | $0.000 ETH | 0.00000635 | |
| 0x54f30a…d9e226 | claimReflect | 15,697,193 | 27 days agoTue, 21 Jul 2026 16:12:19 UTC | 0xa386…420d | IN | PonsFeeCrank | $0.000 ETH | 0.00000379 | |
| 0x95a8f6…8a898e | claimReflect | 15,696,139 | 27 days agoTue, 21 Jul 2026 16:10:33 UTC | 0xa386…420d | IN | PonsFeeCrank | $0.000 ETH | 0.00000598 | |
| 0x1e5f17…b98842 | claimReflect | 15,691,727 | 27 days agoTue, 21 Jul 2026 16:03:12 UTC | 0xff00…f13d | IN | PonsFeeCrank | $0.000 ETH | 0.00000381 | |
| 0xc4744a…b9fd95 | claimReflect | 15,685,130 | 27 days agoTue, 21 Jul 2026 15:52:10 UTC | 0xc110…0025 | IN | PonsFeeCrank | $0.000 ETH | 0.00000373 | |
| 0xf435c4…4cb484 | claimReflect | 15,659,838 | 27 days agoTue, 21 Jul 2026 15:10:00 UTC | 0x85a7…0824 | IN | PonsFeeCrank | $0.000 ETH | 0.00000364 | |
| 0xa61c45…0d1e09 | claimReflect | 15,658,934 | 27 days agoTue, 21 Jul 2026 15:08:29 UTC | 0x3148…3b59 | IN | PonsFeeCrank | $0.000 ETH | 0.00000364 | |
| 0x1487cd…aca172 | claimReflect | 15,655,659 | 27 days agoTue, 21 Jul 2026 15:03:02 UTC | 0xc110…0025 | IN | PonsFeeCrank | $0.000 ETH | 0.00000362 | |
| 0x3e8076…75c750 | claimReflect | 15,652,669 | 27 days agoTue, 21 Jul 2026 14:58:04 UTC | 0xc110…0025 | IN | PonsFeeCrank | $0.000 ETH | 0.00000369 | |
| 0x46d733…8f39f3 | claimReflect | 15,544,500 | 27 days agoTue, 21 Jul 2026 11:57:31 UTC | 0xff00…f13d | IN | PonsFeeCrank | $0.000 ETH | 0.00000541 | |
| 0xb590f5…79ec7f | claimReflect | 15,507,752 | 27 days agoTue, 21 Jul 2026 10:56:03 UTC | 0x85a7…0824 | IN | PonsFeeCrank | $0.000 ETH | 0.00000342 | |
| 0xe25807…da1312 | claimReflect | 15,494,234 | 27 days agoTue, 21 Jul 2026 10:33:26 UTC | 0x85a7…0824 | IN | PonsFeeCrank | $0.000 ETH | 0.00000343 | |
| 0xb7e0e4…cc6208 | claimReflect | 15,434,871 | 27 days agoTue, 21 Jul 2026 08:54:12 UTC | 0x85a7…0824 | IN | PonsFeeCrank | $0.000 ETH | 0.00000548 | |
| 0x3e1697…05b387 | claimReflect | 15,409,608 | 27 days agoTue, 21 Jul 2026 08:11:56 UTC | 0x3148…3b59 | IN | PonsFeeCrank | $0.000 ETH | 0.00000542 | |
| 0x671252…643498 | claimReflect | 15,239,690 | 27 days agoTue, 21 Jul 2026 03:27:52 UTC | 0xe8ee…3b5e | IN | PonsFeeCrank | $0.000 ETH | 0.00000547 | |
| 0x03abf3…35c366 | claimReflect | 15,079,023 | 27 days agoMon, 20 Jul 2026 22:59:27 UTC | 0xc110…0025 | IN | PonsFeeCrank | $0.000 ETH | 0.00000540 | |
| 0xcbcc49…9df140 | claimReflect | 14,924,539 | 28 days agoMon, 20 Jul 2026 18:41:35 UTC | 0x8ff9…5e8e | IN | PonsFeeCrank | $0.000 ETH | 0.00000508 | |
| 0x84899b…e4dcce | claimReflect | 14,923,167 | 28 days agoMon, 20 Jul 2026 18:39:17 UTC | 0x5cfa…9c0a | IN | PonsFeeCrank | $0.000 ETH | 0.00000510 | |
| 0xa5d275…f2c89a | claimReflect | 14,892,381 | 28 days agoMon, 20 Jul 2026 17:47:51 UTC | 0x6a1c…693c | IN | PonsFeeCrank | $0.000 ETH | 0.00000498 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x5a4f8994…3fc7e7 | Transfer | 14,136,780 | 29 days agoSun, 19 Jul 2026 20:43:52 UTC | 0x0000…0000 | IN | 0x83a9…54a0 | Mint | Uniswap V3 Positions NFT-V1 (UNI-V3-POS) #234770 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x28c86ff8…889a1e | Transfer | 20,153,648 | 22 days agoSun, 26 Jul 2026 20:20:57 UTC | 0x83a9…54a0 | OUT | 0xc110…0025 | $NaN8,209.726543 SAFEMOONPONS | ||
| 0x05917ab5…d00e0b | Transfer | 18,496,003 | 23 days agoFri, 24 Jul 2026 22:08:15 UTC | 0xcaf7…5d11 | IN | 0x83a9…54a0 | $0.001 DIH | ||
| 0xa542f3c1…47dd23 | Transfer | 16,016,439 | 26 days agoWed, 22 Jul 2026 01:05:09 UTC | 0x83a9…54a0 | OUT | 0x53b6…c457 | $NaN104,269.641138 SAFEMOONPONS | ||
| 0x19c6be0e…632928 | Transfer | 15,948,090 | 26 days agoTue, 21 Jul 2026 23:11:04 UTC | 0x83a9…54a0 | OUT | 0x96c0…94a1 | $0.000.026074 SAFEMOONPONS | ||
| 0xc4b4df9f…be2141 | Transfer | 15,947,539 | 26 days agoTue, 21 Jul 2026 23:10:08 UTC | 0x83a9…54a0 | OUT | 0x96c0…94a1 | $0.001.948412 SAFEMOONPONS | ||
| 0x95e81cd7…39fc55 | Transfer | 15,944,524 | 26 days agoTue, 21 Jul 2026 23:05:07 UTC | 0x83a9…54a0 | OUT | 0x96c0…94a1 | $0.0074.044088 SAFEMOONPONS | ||
| 0x8ee6026d…93cf18 | Transfer | 15,943,916 | 26 days agoTue, 21 Jul 2026 23:04:06 UTC | 0x83a9…54a0 | OUT | 0x96c0…94a1 | $NaN4,994.041384 SAFEMOONPONS | ||
| 0x4fc138fa…9922f9 | Transfer | 15,833,739 | 27 days agoTue, 21 Jul 2026 20:00:17 UTC | 0x83a9…54a0 | OUT | 0x507a…1f06 | $0.001.491149 SAFEMOONPONS | ||
| 0x54f30ae7…d9e226 | Transfer | 15,697,193 | 27 days agoTue, 21 Jul 2026 16:12:19 UTC | 0x83a9…54a0 | OUT | 0xa386…420d | $0.0024.575710 SAFEMOONPONS | ||
| 0x95a8f65a…8a898e | Transfer | 15,696,139 | 27 days agoTue, 21 Jul 2026 16:10:33 UTC | 0x83a9…54a0 | OUT | 0xa386…420d | $NaN1,664.523938 SAFEMOONPONS | ||
| 0x1e5f178f…b98842 | Transfer | 15,691,727 | 27 days agoTue, 21 Jul 2026 16:03:12 UTC | 0x83a9…54a0 | OUT | 0xff00…f13d | $NaN3,168.040717 SAFEMOONPONS | ||
| 0xc4744a61…b9fd95 | Transfer | 15,685,130 | 27 days agoTue, 21 Jul 2026 15:52:10 UTC | 0x83a9…54a0 | OUT | 0xc110…0025 | $NaN1,215.865142 SAFEMOONPONS | ||
| 0xf435c4b5…4cb484 | Transfer | 15,659,838 | 27 days agoTue, 21 Jul 2026 15:10:00 UTC | 0x83a9…54a0 | OUT | 0x85a7…0824 | $NaN3,231.441144 SAFEMOONPONS | ||
| 0xa61c4515…0d1e09 | Transfer | 15,658,934 | 27 days agoTue, 21 Jul 2026 15:08:29 UTC | 0x83a9…54a0 | OUT | 0x3148…3b59 | $0.00131.618966 SAFEMOONPONS | ||
| 0x1487cd09…aca172 | Transfer | 15,655,659 | 27 days agoTue, 21 Jul 2026 15:03:02 UTC | 0x83a9…54a0 | OUT | 0xc110…0025 | $NaN1,676.648913 SAFEMOONPONS | ||
| 0x3e8076e4…75c750 | Transfer | 15,652,669 | 27 days agoTue, 21 Jul 2026 14:58:04 UTC | 0x83a9…54a0 | OUT | 0xc110…0025 | $NaN12,345.195715 SAFEMOONPONS | ||
| 0x71227426…2536b3 | Transfer | 15,650,724 | 27 days agoTue, 21 Jul 2026 14:54:48 UTC | 0xb545…cc2c | IN | 0x83a9…54a0 | 17 CASHBON | CashBon (CASHBON) | |
| 0x46d733bf…8f39f3 | Transfer | 15,544,500 | 27 days agoTue, 21 Jul 2026 11:57:31 UTC | 0x83a9…54a0 | OUT | 0xff00…f13d | $NaN30,921.864817 SAFEMOONPONS | ||
| 0xb590f5b1…79ec7f | Transfer | 15,507,752 | 27 days agoTue, 21 Jul 2026 10:56:03 UTC | 0x83a9…54a0 | OUT | 0x85a7…0824 | $NaN34,247.617446 SAFEMOONPONS | ||
| 0xe258072f…da1312 | Transfer | 15,494,234 | 27 days agoTue, 21 Jul 2026 10:33:26 UTC | 0x83a9…54a0 | OUT | 0x85a7…0824 | $NaN2,279.015799 SAFEMOONPONS | ||
| 0xb7e0e47f…cc6208 | Transfer | 15,434,871 | 27 days agoTue, 21 Jul 2026 08:54:12 UTC | 0x83a9…54a0 | OUT | 0x85a7…0824 | $NaN20,216.146354 SAFEMOONPONS | ||
| 0x3e16970d…05b387 | Transfer | 15,409,608 | 27 days agoTue, 21 Jul 2026 08:11:56 UTC | 0x83a9…54a0 | OUT | 0x3148…3b59 | $NaN22,975.110781 SAFEMOONPONS | ||
| 0x67125216…643498 | Transfer | 15,239,690 | 27 days agoTue, 21 Jul 2026 03:27:52 UTC | 0x83a9…54a0 | OUT | 0xe8ee…3b5e | $NaN20,631.936344 SAFEMOONPONS | ||
| 0x03abf394…35c366 | Transfer | 15,079,023 | 27 days agoMon, 20 Jul 2026 22:59:27 UTC | 0x83a9…54a0 | OUT | 0xc110…0025 | $NaN29,855.334300 SAFEMOONPONS | ||
| 0xcbcc49d8…9df140 | Transfer | 14,924,539 | 28 days agoMon, 20 Jul 2026 18:41:35 UTC | 0x83a9…54a0 | OUT | 0x8ff9…5e8e | $NaN86,426.249930 SAFEMOONPONS |