// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
import {Ownable, Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol";
import {Pausable} from "@openzeppelin/contracts/utils/Pausable.sol";
import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {LinkedInuLaunchToken} from "./LinkedInuLaunchToken.sol";
import {LinkedInuVesting} from "./LinkedInuVesting.sol";
import {TickMath} from "./lib/TickMath.sol";
import {IUniswapV3Factory, IUniswapV3Pool, INonfungiblePositionManager} from "./interfaces/IUniswapV3.sol";
/**
* @title LinkedInuStockLaunchpad
* @notice Stock-paired sibling of LinkedInuLaunchpad, deployed alongside it and never
* replacing it. Same economics — fixed 1B supply, 20% vested, 80% as
* SINGLE-SIDED token liquidity permanently held by this launchpad, swap fees
* split creator/platform 90/10 — except the pool is quoted in a tokenized
* equity from an owner-controlled whitelist instead of WETH, and the start
* price comes from that quote's referenceAmount because each equity trades at
* a different price. The token address is CREATE2-mined below the quote so the
* pool reports live liquidity from the very first block.
*/
contract LinkedInuStockLaunchpad is Ownable2Step, Pausable, ReentrancyGuard {
using SafeERC20 for IERC20;
// First four slots mirror LinkedInuLaunchpad so the same decoders work.
struct Coin { address creator; address pool; uint256 lpTokenId; uint256 marketTokens; address quote; address vesting; }
// referenceAmount is in the quote's own decimals and prices START_REFERENCE_TOKENS.
struct QuoteConfig { bool allowed; uint256 referenceAmount; }
// Grouped so createCoin stays within the EVM stack limit.
struct Market { address pool; uint256 lpTokenId; uint256 usedToken; int24 tickLower; int24 tickUpper; uint160 sqrtPriceX96; }
uint256 public constant TOTAL_SUPPLY = 1_000_000_000e18;
uint256 public constant BPS = 10_000;
uint256 public constant MINT_MIN_BPS = 9_900; // tolerated v3 rounding dust
uint24 public constant POOL_FEE = 10_000; // Uniswap V3 1% tier
int24 public constant RANGE_WIDTH = 120_000; // width of the single-sided range
uint256 public constant START_REFERENCE_TOKENS = 10_000_000e18; // token side of the start price
uint256 private constant MAX_SALT_ITERATIONS = 4_000;
uint160 private constant MIN_SQRT_RATIO = 4_295_128_739;
uint160 private constant MAX_SQRT_RATIO = 1_461_446_703_485_210_103_287_273_052_203_988_822_378_723_970_342;
IUniswapV3Factory public immutable v3Factory;
INonfungiblePositionManager public immutable positionManager;
address public protocolTreasury;
address public creatorVestingWallet; // beneficiary of the vest, NOT the caller
// Launch defaults (owner-editable, future launches only).
uint256 public vestBps = 2_000; // 20% vested to creator
uint256 public vestReleaseBps = 2_000; // whole allocation per period
uint256 public vestPeriod = 1; // unlocks one second after launch
uint256 public creatorFeeShareBps = 9_000; // creator 90% / platform 10%
// Final gate on quote assets; calling the contract directly cannot bypass it.
mapping(address quote => QuoteConfig) public quoteConfig;
address[] public allQuotes;
mapping(address token => Coin) public coins;
mapping(address quote => mapping(address account => uint256 amount)) public claimableFees; // dashboard use
mapping(address token => mapping(address account => uint256 quoteAmount)) public claimableQuoteFees;
mapping(address token => mapping(address account => uint256 tokenAmount)) public claimableTokenFees;
address[] public allCoins;
event CoinCreated(
address indexed token,
address indexed creator,
address indexed pool,
address quote,
uint24 fee,
uint160 initialSqrtPriceX96,
string name,
string symbol
);
event CreatorAllocation(
address indexed token,
address indexed vesting,
address indexed beneficiary,
uint256 amount,
uint256 releasePerPeriod,
uint256 periodSeconds
);
event LiquidityLocked(
address indexed token,
address indexed pool,
uint256 indexed lpTokenId,
uint256 tokenAmount,
int24 tickLower,
int24 tickUpper
);
event PoolFeesCollected(address indexed token, address indexed quote, uint256 quoteAmount, uint256 tokenAmount);
event FeesClaimed(address indexed token, address indexed account, uint256 quoteAmount, uint256 tokenAmount);
event QuoteConfigured(address indexed quote, bool allowed, uint256 referenceAmount);
event ProtocolTreasuryUpdated(address indexed treasury);
event CreatorVestingWalletUpdated(address indexed wallet);
event LaunchDefaultsUpdated(
uint256 vestBps, uint256 vestReleaseBps, uint256 vestPeriod, uint256 creatorFeeShareBps
);
error UnknownCoin();
error ZeroAddress();
error ZeroAmount();
error EmptyMetadata();
error MetadataTooLong();
error InvalidTickSpacing();
error InvalidRange();
error PoolAlreadyExists();
error LiquidityMintFailed();
error QuoteNotAllowed();
error InvalidStartingPrice();
error SaltMiningFailed();
error TokenOrdering();
error VestingUnderfunded();
error InvalidLaunchDefaults();
constructor(
IUniswapV3Factory v3Factory_,
INonfungiblePositionManager positionManager_,
address protocolTreasury_,
address creatorVestingWallet_
) Ownable(msg.sender) {
if (
address(v3Factory_) == address(0) || address(positionManager_) == address(0)
|| protocolTreasury_ == address(0) || creatorVestingWallet_ == address(0)
) revert ZeroAddress();
v3Factory = v3Factory_;
positionManager = positionManager_;
protocolTreasury = protocolTreasury_;
creatorVestingWallet = creatorVestingWallet_;
}
/// @notice Whitelist a Stock Token and fix the starting price against it.
/// @param quote Stock Token address, verified off-chain against the explorer.
/// @param referenceAmount Quote units (in the quote's own decimals) that
/// START_REFERENCE_TOKENS tokens are worth at launch. Zero disables.
function setQuote(address quote, bool allowed, uint256 referenceAmount) external onlyOwner {
if (quote == address(0)) revert ZeroAddress();
if (allowed && referenceAmount == 0) revert ZeroAmount();
QuoteConfig storage cfg = quoteConfig[quote];
if (cfg.referenceAmount == 0 && !cfg.allowed) allQuotes.push(quote);
cfg.allowed = allowed;
cfg.referenceAmount = referenceAmount;
emit QuoteConfigured(quote, allowed, referenceAmount);
}
function quoteCount() external view returns (uint256) {
return allQuotes.length;
}
/// @notice Create a fixed-supply coin and its permanent V3 market against a
/// whitelisted Stock Token. No quote asset is pulled from the caller.
function createCoin(string calldata name, string calldata symbol, address quote)
external
nonReentrant
whenNotPaused
returns (address token)
{
if (bytes(name).length == 0 || bytes(symbol).length == 0) revert EmptyMetadata();
if (bytes(name).length > 60 || bytes(symbol).length > 10) revert MetadataTooLong();
QuoteConfig memory cfg = quoteConfig[quote];
if (!cfg.allowed || cfg.referenceAmount == 0) revert QuoteNotAllowed();
token = _deployToken(name, symbol, quote);
IERC20 launchedToken = IERC20(token);
uint256 creatorAllocation = (TOTAL_SUPPLY * vestBps) / BPS;
uint256 marketSupply = TOTAL_SUPPLY - creatorAllocation;
if (marketSupply == 0) revert ZeroAmount();
Coin storage c = coins[token];
c.creator = msg.sender;
c.quote = quote;
if (creatorAllocation > 0) {
uint256 releasePerPeriod = (TOTAL_SUPPLY * vestReleaseBps) / BPS;
address beneficiary = creatorVestingWallet;
address vesting =
address(new LinkedInuVesting(token, beneficiary, creatorAllocation, releasePerPeriod, vestPeriod));
launchedToken.safeTransfer(vesting, creatorAllocation);
if (launchedToken.balanceOf(vesting) < creatorAllocation) revert VestingUnderfunded();
c.vesting = vesting;
emit CreatorAllocation(token, vesting, beneficiary, creatorAllocation, releasePerPeriod, vestPeriod);
}
Market memory m = _createLockedMarket(token, launchedToken, quote, cfg.referenceAmount, marketSupply);
c.pool = m.pool;
c.lpTokenId = m.lpTokenId;
c.marketTokens = m.usedToken;
allCoins.push(token);
emit CoinCreated(token, msg.sender, m.pool, quote, POOL_FEE, m.sqrtPriceX96, name, symbol);
emit LiquidityLocked(token, m.pool, m.lpTokenId, m.usedToken, m.tickLower, m.tickUpper);
}
// Mines a token address below the quote so the token is always token0 — the only
// side that can be fully token-funded and in range, i.e. liquidity() != 0.
function _deployToken(string calldata name, string calldata symbol, address quote)
private
returns (address token)
{
bytes32 initCodeHash =
keccak256(abi.encodePacked(type(LinkedInuLaunchToken).creationCode, abi.encode(name, symbol, TOTAL_SUPPLY)));
uint256 launchNonce = allCoins.length;
bytes32 salt;
address predicted;
bool found;
for (uint256 i = 0; i < MAX_SALT_ITERATIONS; ++i) {
salt = keccak256(abi.encodePacked(msg.sender, launchNonce, i));
predicted = address(
uint160(uint256(keccak256(abi.encodePacked(bytes1(0xff), address(this), salt, initCodeHash))))
);
if (predicted < quote && predicted.code.length == 0) {
found = true;
break;
}
}
if (!found) revert SaltMiningFailed();
token = address(new LinkedInuLaunchToken{salt: salt}(name, symbol, TOTAL_SUPPLY));
if (token != predicted) revert SaltMiningFailed();
}
function _createLockedMarket(
address token,
IERC20 launchedToken,
address quote,
uint256 referenceQuote,
uint256 marketSupply
) private returns (Market memory m) {
if (token >= quote) revert TokenOrdering(); // the tick math below assumes token0
if (v3Factory.getPool(token, quote, POOL_FEE) != address(0)) revert PoolAlreadyExists();
m.pool = v3Factory.createPool(token, quote, POOL_FEE);
(m.tickLower, m.tickUpper) = _rangeFor(referenceQuote);
// Init exactly AT tickLower so the token-only position is in range at zero quote.
m.sqrtPriceX96 = TickMath.getSqrtRatioAtTick(m.tickLower);
if (m.sqrtPriceX96 <= MIN_SQRT_RATIO || m.sqrtPriceX96 >= MAX_SQRT_RATIO) revert InvalidStartingPrice();
IUniswapV3Pool(m.pool).initialize(m.sqrtPriceX96);
launchedToken.forceApprove(address(positionManager), marketSupply);
uint256 used0;
(m.lpTokenId,, used0,) = positionManager.mint(
INonfungiblePositionManager.MintParams({
token0: token,
token1: quote,
fee: POOL_FEE,
tickLower: m.tickLower,
tickUpper: m.tickUpper,
amount0Desired: marketSupply,
amount1Desired: 0,
amount0Min: (marketSupply * MINT_MIN_BPS) / BPS,
amount1Min: 0,
recipient: address(this),
deadline: block.timestamp
})
);
launchedToken.forceApprove(address(positionManager), 0);
m.usedToken = used0;
if (m.usedToken < (marketSupply * MINT_MIN_BPS) / BPS) revert LiquidityMintFailed();
// Any negligible V3 rounding dust is burned; it can never be swept.
uint256 dust = marketSupply - m.usedToken;
if (dust > 0) LinkedInuLaunchToken(token).burn(dust);
}
// Single-sided token0 range, lower bound floored to the spacing.
function _rangeFor(uint256 referenceQuote) private view returns (int24 tickLower, int24 tickUpper) {
int24 spacing = v3Factory.feeAmountTickSpacing(POOL_FEE);
if (spacing <= 0 || RANGE_WIDTH % spacing != 0) revert InvalidTickSpacing();
tickLower = _floorToSpacing(TickMath.getTickAtSqrtRatio(_startingSqrtPriceX96(referenceQuote)), spacing);
tickUpper = tickLower + RANGE_WIDTH;
if (tickUpper > 887_200 || tickLower < -887_200) revert InvalidRange();
}
// Both sides are raw units, so a 6- or 8-decimal quote needs no scaling factor.
function _startingSqrtPriceX96(uint256 referenceQuote) private pure returns (uint160 sqrtPriceX96) {
sqrtPriceX96 = uint160(Math.sqrt(Math.mulDiv(referenceQuote, 1 << 96, START_REFERENCE_TOKENS)) << 48);
if (sqrtPriceX96 <= MIN_SQRT_RATIO || sqrtPriceX96 >= MAX_SQRT_RATIO) revert InvalidStartingPrice();
}
function _floorToSpacing(int24 tick, int24 spacing) private pure returns (int24) {
int24 compressed = tick / spacing;
if (tick < 0 && tick % spacing != 0) compressed--;
return compressed * spacing;
}
/// @notice Harvest locked LP fees. Both assets use the same creator/platform split.
function collectPoolFees(address token) external nonReentrant returns (uint256 quoteAmount, uint256 tokenAmount) {
return _collectPoolFees(token);
}
function _collectPoolFees(address token) private returns (uint256 quoteAmount, uint256 tokenAmount) {
Coin storage c = coins[token];
if (c.creator == address(0)) revert UnknownCoin();
address quote = c.quote;
(uint256 a0, uint256 a1) = positionManager.collect(
INonfungiblePositionManager.CollectParams({
tokenId: c.lpTokenId,
recipient: address(this),
amount0Max: type(uint128).max,
amount1Max: type(uint128).max
})
);
(quoteAmount, tokenAmount) = quote < token ? (a0, a1) : (a1, a0);
if (quoteAmount > 0) {
uint256 creatorAmount = (quoteAmount * creatorFeeShareBps) / BPS;
uint256 protocolAmount = quoteAmount - creatorAmount;
claimableFees[quote][c.creator] += creatorAmount;
claimableFees[quote][protocolTreasury] += protocolAmount;
claimableQuoteFees[token][c.creator] += creatorAmount;
claimableQuoteFees[token][protocolTreasury] += protocolAmount;
}
if (tokenAmount > 0) {
uint256 creatorTokenAmount = (tokenAmount * creatorFeeShareBps) / BPS;
claimableTokenFees[token][c.creator] += creatorTokenAmount;
claimableTokenFees[token][protocolTreasury] += tokenAmount - creatorTokenAmount;
}
emit PoolFeesCollected(token, quote, quoteAmount, tokenAmount);
}
function claimFees(address token) external nonReentrant returns (uint256 quoteAmount, uint256 tokenAmount) {
if (coins[token].creator == address(0)) revert UnknownCoin();
return _claimFees(token, msg.sender);
}
/// @notice Creator harvests the LP and claims both fee assets in one tx.
function collectAndClaimCreatorFees(address token)
external
nonReentrant
returns (uint256 quoteAmount, uint256 tokenAmount)
{
if (coins[token].creator != msg.sender) revert UnknownCoin();
_collectPoolFees(token);
return _claimFees(token, msg.sender);
}
function _claimFees(address token, address account) private returns (uint256 quoteAmount, uint256 tokenAmount) {
address quote = coins[token].quote;
quoteAmount = claimableQuoteFees[token][account];
tokenAmount = claimableTokenFees[token][account];
if (quoteAmount == 0 && tokenAmount == 0) revert ZeroAmount();
claimableQuoteFees[token][account] = 0;
claimableTokenFees[token][account] = 0;
if (quoteAmount > 0) {
claimableFees[quote][account] -= quoteAmount;
IERC20(quote).safeTransfer(account, quoteAmount);
}
if (tokenAmount > 0) IERC20(token).safeTransfer(account, tokenAmount);
emit FeesClaimed(token, account, quoteAmount, tokenAmount);
}
function pendingCreatorFees(address token) external view returns (uint256 quoteAmount, uint256 tokenAmount) {
address creator = coins[token].creator;
if (creator == address(0)) revert UnknownCoin();
return (claimableQuoteFees[token][creator], claimableTokenFees[token][creator]);
}
function lpIsLocked(address token) external view returns (bool) {
Coin storage c = coins[token];
if (c.creator == address(0) || c.lpTokenId == 0) return false;
return IERC721(address(positionManager)).ownerOf(c.lpTokenId) == address(this);
}
function coinCount() external view returns (uint256) {
return allCoins.length;
}
/// @notice The exact sqrt price a pool is initialised at for a given tick.
function startSqrtPriceForTick(int24 tick) external pure returns (uint160) {
return TickMath.getSqrtRatioAtTick(tick);
}
function setProtocolTreasury(address treasury) external onlyOwner {
if (treasury == address(0)) revert ZeroAddress();
protocolTreasury = treasury;
emit ProtocolTreasuryUpdated(treasury);
}
/// @notice Point future allocations at a different wallet. Launched tokens keep
/// their own immutable beneficiary.
function setCreatorVestingWallet(address wallet) external onlyOwner {
if (wallet == address(0)) revert ZeroAddress();
creatorVestingWallet = wallet;
emit CreatorVestingWalletUpdated(wallet);
}
/// @notice Retune the defaults applied to FUTURE launches only. `vestPeriod_` is
/// unbounded and `vestReleaseBps_` may equal `vestBps_`; read a token's own
/// immutable LinkedInuVesting for its real terms.
function setLaunchDefaults(
uint256 vestBps_,
uint256 vestReleaseBps_,
uint256 vestPeriod_,
uint256 creatorFeeShareBps_
) external onlyOwner {
if (vestBps_ > BPS) revert InvalidLaunchDefaults();
if (creatorFeeShareBps_ > BPS) revert InvalidLaunchDefaults();
if (vestBps_ > 0) {
if (vestReleaseBps_ == 0 || vestReleaseBps_ > vestBps_) revert InvalidLaunchDefaults();
if (vestPeriod_ == 0) revert InvalidLaunchDefaults();
}
if (vestBps_ == BPS) revert InvalidLaunchDefaults(); // marketSupply must stay > 0
vestBps = vestBps_;
vestReleaseBps = vestReleaseBps_;
vestPeriod = vestPeriod_;
creatorFeeShareBps = creatorFeeShareBps_;
emit LaunchDefaultsUpdated(vestBps_, vestReleaseBps_, vestPeriod_, creatorFeeShareBps_);
}
function pause() external onlyOwner {
_pause();
}
function unpause() external onlyOwner {
_unpause();
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "v3Factory_",
"type": "address",
"internalType": "contract IUniswapV3Factory"
},
{
"name": "positionManager_",
"type": "address",
"internalType": "contract INonfungiblePositionManager"
},
{
"name": "protocolTreasury_",
"type": "address",
"internalType": "address"
},
{
"name": "creatorVestingWallet_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "EmptyMetadata",
"type": "error",
"inputs": []
},
{
"name": "EnforcedPause",
"type": "error",
"inputs": []
},
{
"name": "ExpectedPause",
"type": "error",
"inputs": []
},
{
"name": "InvalidLaunchDefaults",
"type": "error",
"inputs": []
},
{
"name": "InvalidRange",
"type": "error",
"inputs": []
},
{
"name": "InvalidStartingPrice",
"type": "error",
"inputs": []
},
{
"name": "InvalidTickSpacing",
"type": "error",
"inputs": []
},
{
"name": "LiquidityMintFailed",
"type": "error",
"inputs": []
},
{
"name": "MetadataTooLong",
"type": "error",
"inputs": []
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "PoolAlreadyExists",
"type": "error",
"inputs": []
},
{
"name": "QuoteNotAllowed",
"type": "error",
"inputs": []
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "SaltMiningFailed",
"type": "error",
"inputs": []
},
{
"name": "TickOutOfBounds",
"type": "error",
"inputs": []
},
{
"name": "TokenOrdering",
"type": "error",
"inputs": []
},
{
"name": "UnknownCoin",
"type": "error",
"inputs": []
},
{
"name": "VestingUnderfunded",
"type": "error",
"inputs": []
},
{
"name": "ZeroAddress",
"type": "error",
"inputs": []
},
{
"name": "ZeroAmount",
"type": "error",
"inputs": []
},
{
"name": "CoinCreated",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "creator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quote",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"indexed": false,
"internalType": "uint24"
},
{
"name": "initialSqrtPriceX96",
"type": "uint160",
"indexed": false,
"internalType": "uint160"
},
{
"name": "name",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "CreatorAllocation",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "vesting",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "beneficiary",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "releasePerPeriod",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "periodSeconds",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "CreatorVestingWalletUpdated",
"type": "event",
"inputs": [
{
"name": "wallet",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "FeesClaimed",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quoteAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "LaunchDefaultsUpdated",
"type": "event",
"inputs": [
{
"name": "vestBps",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "vestReleaseBps",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "vestPeriod",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "creatorFeeShareBps",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "LiquidityLocked",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pool",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "lpTokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tickLower",
"type": "int24",
"indexed": false,
"internalType": "int24"
},
{
"name": "tickUpper",
"type": "int24",
"indexed": false,
"internalType": "int24"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferStarted",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "Paused",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PoolFeesCollected",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quote",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quoteAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ProtocolTreasuryUpdated",
"type": "event",
"inputs": [
{
"name": "treasury",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "QuoteConfigured",
"type": "event",
"inputs": [
{
"name": "quote",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "allowed",
"type": "bool",
"indexed": false,
"internalType": "bool"
},
{
"name": "referenceAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Unpaused",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MINT_MIN_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "POOL_FEE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint24",
"internalType": "uint24"
}
],
"stateMutability": "view"
},
{
"name": "RANGE_WIDTH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "int24",
"internalType": "int24"
}
],
"stateMutability": "view"
},
{
"name": "START_REFERENCE_TOKENS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "TOTAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "acceptOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "allCoins",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "allQuotes",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "claimFees",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "claimableFees",
"type": "function",
"inputs": [
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "claimableQuoteFees",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "claimableTokenFees",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "tokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "coinCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "coins",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "creator",
"type": "address",
"internalType": "address"
},
{
"name": "pool",
"type": "address",
"internalType": "address"
},
{
"name": "lpTokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "marketTokens",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "vesting",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "collectAndClaimCreatorFees",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "collectPoolFees",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "createCoin",
"type": "function",
"inputs": [
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"internalType": "string"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "creatorFeeShareBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "creatorVestingWallet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "lpIsLocked",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "pause",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "paused",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "pendingCreatorFees",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pendingOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "positionManager",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract INonfungiblePositionManager"
}
],
"stateMutability": "view"
},
{
"name": "protocolTreasury",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "quoteConfig",
"type": "function",
"inputs": [
{
"name": "quote",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "allowed",
"type": "bool",
"internalType": "bool"
},
{
"name": "referenceAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "quoteCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setCreatorVestingWallet",
"type": "function",
"inputs": [
{
"name": "wallet",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setLaunchDefaults",
"type": "function",
"inputs": [
{
"name": "vestBps_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "vestReleaseBps_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "vestPeriod_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "creatorFeeShareBps_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setProtocolTreasury",
"type": "function",
"inputs": [
{
"name": "treasury",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setQuote",
"type": "function",
"inputs": [
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "allowed",
"type": "bool",
"internalType": "bool"
},
{
"name": "referenceAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "startSqrtPriceForTick",
"type": "function",
"inputs": [
{
"name": "tick",
"type": "int24",
"internalType": "int24"
}
],
"outputs": [
{
"name": "",
"type": "uint160",
"internalType": "uint160"
}
],
"stateMutability": "pure"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "unpause",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "v3Factory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IUniswapV3Factory"
}
],
"stateMutability": "view"
},
{
"name": "vestBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "vestPeriod",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "vestReleaseBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
}
]0x60c03461022757601f61449938819003918201601f19168301916001600160401b0383118484101761022b578084926080946040528339810103126102275780516001600160a01b038116918282036102275760208101516001600160a01b0381169283820361022757610081606061007a6040860161023f565b940161023f565b93331561021457600180546001600160a01b03199081169091555f805433928116831782556040519892916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00556107d06004556107d060055560016006556123286007551590811561020b575b5080156101fa575b80156101e9575b6101da5760805260a052600280546001600160a01b039283166001600160a01b031991821617909155600380549390921692169190911790556142459081610254823960805181818161078901528181610808015281816108700152611a83015260a051818181610c4701528181610dcd01528181610e13015281816110aa015281816110e6015281816111c60152818161121301528181611bb40152818161227301526128dc0152f35b63d92e233d60e01b5f5260045ffd5b506001600160a01b0384161561012f565b506001600160a01b03831615610128565b9050155f610120565b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102275756fe60806040526004361015610011575f80fd5b5f5f3560e01c806306aebc031461213e5780630c5a61f8146120d65780630d55a5b31461208657806313560cac1461202257806315a0ea6a14611fd557806317de3c7e14611faa578063249d39e914611f8e5780632982782614611f715780632bd0efa814611ea55780633f4ba83a14611e375780634d1d106114611e1a57806353c7cfa814611dca5780635ada784314611dad5780635c975abb14611d8857806360a2356b14611d6057806363668fea14611cdb578063678fd28914611cbe5780636ee85cfc14611c46578063715018a614611be3578063791b98bc14611b9f57806379ba509714611b1a5780637c84d92d14611ab25780637c887c5914611a6e5780637d0f7a88146119e7578063803db96d146119bf5780638456cb591461195e57806384f41c79146118005780638da5cb5b146117d9578063902d55a5146117b45780639cd57cad1461175a578063a1ad17ab1461172d578063a59c0fda14610423578063b602e392146103d0578063c598b2f91461033a578063d86bcd7d1461031d578063dd1b9c4a14610300578063dd3a153b146102e2578063dd86b598146102c4578063e0d7bfc0146102a6578063e30c39781461027d578063f2fde38b146102105763f8f83e97146101e8575f80fd5b3461020d578060031936011261020d5760206040516a084595161401484a0000008152f35b80fd5b503461020d57602036600319011261020d5761022a612179565b610232612695565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b503461020d578060031936011261020d576001546040516001600160a01b039091168152602090f35b503461020d578060031936011261020d576020600554604051908152f35b503461020d578060031936011261020d576020600454604051908152f35b503461020d578060031936011261020d576020600654604051908152f35b503461020d578060031936011261020d5760206040516127108152f35b503461020d578060031936011261020d5760206040516126ac8152f35b503461020d57602036600319011261020d576001600160a01b0361035c612179565b16808252600a60205260408220546001600160a01b031680156103c15760408383829552600c60205281812060018060a01b0384165f52602052815f2054938152600d602052209060018060a01b03165f52602052815f205482519182526020820152f35b6306c3ce4560e41b8352600483fd5b503461020d57604036600319011261020d5760406103ec612179565b916103f561218f565b9260018060a01b03168152600b602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461127d57606036600319011261127d5760043567ffffffffffffffff811161127d576104559036906004016121ba565b919060243567ffffffffffffffff811161127d576104779036906004016121ba565b60443592916001600160a01b038416840361127d576104946126a8565b61049c612b21565b85158015611725575b61171657603c8611801561170c575b6116fd576001600160a01b0384165f908152600860205260409081902081519591860167ffffffffffffffff81118782101761145f5760405260ff815416156001811592838952015490816020890152916116f4575b506116e5576040516105216020610b0b01826121e8565b610b0b815260208101610b0b6136e582396105bc6040519160208b61058b8561056c6105598d86840195606087526080850191612314565b828103601f190160408401528c8c612314565b676765c793fa10079d601b1b606083015203601f1981018752866121e8565b60405194859383850197518091895e840190838201905f8252519283915e01015f815203601f1981018352826121e8565b519020600e545f97918891829182915b610fa08310611642575b5050501561163357604051610b0b810181811067ffffffffffffffff82111761145f578190676765c793fa10079d601b1b60406106376106288f8d90610b0b6136e58939606087526060870191612314565b84810360208601528b8b612314565b92015203905ff5968715611272576001600160a01b0390811690881603611633576004549586676765c793fa10079d601b1b0296676765c793fa10079d601b1b8804036112cb57676765c793fa10079d601b1b61271088048103116112cb576127108704676765c793fa10079d601b1b14611624576001600160a01b038881165f908152600a6020526040902080546001600160a01b03199081163317825560048201805490911692861692909217909155906127108804611473575b60200151966040519760c0890189811067ffffffffffffffff82111761145f5760409081525f808b5260208b01819052908a0181905260608a0181905260808a0181905260a08a01526001600160a01b03858116908b16101561145057604051630b4c774160e11b81526001600160a01b03808c166004830152861660248201526127106044820152602081806064810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611272575f91611431575b506001600160a01b03166114225760405163a167129560e01b81526001600160a01b03808c166004830152861660248201526127106044820152602081806064810103815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115611272575f916113f3575b506001600160a01b039081168a526040516322afcccb60e01b8152612710600482015290602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115611272575f916113b7575b5060020b905f82138015906113a0575b611391576108c06108c591612cac565b612d4f565b603081901b6001600160a01b0316906401000276a38211801590611373575b611281576401000276a382108015611355575b61134657640100000000600160c01b039060501b16806001600160801b03811160071b90811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c1196171717171717179060808210155f1461133c57607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c6780000000000000001690607f190160401b1717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa919810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f14611318575090505b60020b811561130457627fffff1981145f198314166112cb5781810590825f821291826112f5575b50506112df575b60020b028060020b9081036112cb576201d4c08101627fffff8113627fffff198212176112cb5760020b620d89a0811380156112be575b6112af5760808a0152606089018190526001600160a01b0390610bc590612334565b168060a08a01526401000276a3811190811591611290575b5061128157875160a08901516001600160a01b039182169116813b1561127d575f9160248392604051948593849263f637731d60e01b845260048401525af180156112725761125d575b50610c706127108204676765c793fa10079d601b1b036001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908c16612bc0565b156111b9575b606088015160020b608089015160020b6126ac6127108404676765c793fa10079d601b1b0302906127108404676765c793fa10079d601b1b0382046126ac036111a557604051928361016081011067ffffffffffffffff6101608601111761119157610160840160409081526001600160a01b038e8116865289811660208701908152612710838801818152606089019586526080808a01978852828b04676765c793fa10079d601b1b0360a08b0190815260c08b018e8152938a0460e08c019081526101008c018f8152306101208e01908152426101408f019081529951634418b22b60e11b81529d51891660048f01529651881660248e0152935162ffffff1660448d01529751600290810b60648d0152985190980b60848b0152965160a48a0152905160c4890152935160e488015292516101048701529151821661012486015251610144850152839061016490829089907f0000000000000000000000000000000000000000000000000000000000000000165af19182156111865785908693611130575b5060208b0152610e3c856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908e16612bc0565b1561109d575b612710908260408c0152041161108e57610e729061271060408a01519104676765c793fa10079d601b1b03612307565b8061101b575b5086516001820180546001600160a01b0319166001600160a01b0392909216919091179055602087015160028201556040870151600390910155600e5490600160401b8210156110075750967fe4256d01cfd090c94245eeebeff34972a42c03128d66b7709d7bafeb7e27e55a91610f1c610efd8a600160209c01600e55600e6121a5565b81546001600160a01b038c811660039390931b92831b921b1916179055565b865160a080890151604080516001600160a01b0395861681526127108e8201529185169082015260608101829052929091169691928392610f7e92610f649290850191612314565b828103608084015233966001600160a01b038b1696612314565b0390a460018060a01b0381511683820151916040810151906080606082015160020b91015160020b906040519283528683015260408201527f7ab83fbfd18d00801ccc746413c5c943431fe2141f152ecdcfd492ed1feaa77b606060018060a01b03861692a460015f5160206141f05f395f51905f52556040516001600160a01b039091168152f35b634e487b7160e01b81526041600452602490fd5b6001600160a01b0389163b1561108a57604051630852cd8d60e31b815260048101919091528281602481836001600160a01b038e165af1801561107f57908391611066575b50610e78565b81611070916121e8565b61107b57815f611060565b5080fd5b6040513d85823e3d90fd5b8280fd5b63244a822560e11b8352600483fd5b6110d36001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908d16612c0d565b156111145761110f856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908e16612c71565b610e42575b635274afe760e01b85526001600160a01b038b16600452602485fd5b9250506080823d60801161117e575b8161114c608093836121e8565b8101031261117a5781519160208101516001600160801b038116036111765760400151915f610dff565b8580fd5b8480fd5b3d915061113f565b6040513d87823e3d90fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b86526011600452602486fd5b6111ef6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908b16612c0d565b156112415761123c6127108204676765c793fa10079d601b1b036001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908c16612c71565b610c76575b635274afe760e01b83526001600160a01b038916600452602483fd5b61126a9193505f906121e8565b5f915f610c27565b6040513d5f823e3d90fd5b5f80fd5b6310d687b960e11b5f5260045ffd5b73fffd8963efd1fc6a506488495d951d5263988d26915010155f610bdd565b63561ce9bb60e01b5f5260045ffd5b50620d899f198212610ba3565b634e487b7160e01b5f52601160045260245ffd5b60020b627fffff1981146112cb575f1901610b6c565b0760020b15159050825f610b65565b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0361132984612334565b16116113355750610b3d565b9050610b3d565b81607f031b610984565b633e1f710360e21b5f5260045ffd5b5073fffd8963efd1fc6a506488495d951d5263988d268210156108f7565b5073fffd8963efd1fc6a506488495d951d5263988d268210156108e4565b63013840ad60e51b5f5260045ffd5b50811561130457816201d4c00760020b15156108b0565b90506020813d6020116113eb575b816113d2602093836121e8565b8101031261127d57518060020b810361127d575f6108a0565b3d91506113c5565b611415915060203d60201161141b575b61140d81836121e8565b81019061220a565b5f610840565b503d611403565b630188c99160e11b5f5260045ffd5b61144a915060203d60201161141b5761140d81836121e8565b5f6107c1565b6303e67ae160e21b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b6005549081676765c793fa10079d601b1b0291676765c793fa10079d601b1b8304036112cb5760018060a01b0360035416600654604051908161087081011067ffffffffffffffff6108708401111761145f57610870612e7583396001600160a01b038d16610870830190815260208101849052612710808e04604083015286046060820152608081019190915281900360a001905ff08015611272576001600160a01b039081169061152f906127108d049083908f16612b3f565b602460208d604051928380926370a0823160e01b825286600483015260018060a01b03165afa908115611272575f916115f2575b506127108c04116115e3578a7fa1b7b226f23b5fe2edb4fd419e3504dc83ca270fcba23bae98a1351711e9ec9e60608e60209760058a0160018060a01b0387166bffffffffffffffffffffffff60a01b8254161790556127106006549181604051970487520489860152604085015260018060a01b031692a490506106f4565b630d2b1e4f60e11b5f5260045ffd5b90506020813d60201161161c575b8161160d602093836121e8565b8101031261127d57515f611563565b3d9150611600565b631f2a200560e01b5f5260045ffd5b637cb5018b60e11b5f5260045ffd5b919a50925060405160208101903360601b82528260348201528b6054820152605481526116706074826121e8565b519020926040516020810160ff60f81b81523060601b6021830152856035830152826055830152605582526116a66075836121e8565b905190206001600160a01b039081169b9087168c10806116dc575b6116ce57600101916105cc565b5050505060015f80806105d6565b508b3b156116c1565b636a80224560e11b5f5260045ffd5b9050155f61050a565b63216e38bd60e21b5f5260045ffd5b50600a82116104b4565b63ae92135760e01b5f5260045ffd5b5081156104a5565b3461127d57602036600319011261127d57602061175061174b612179565b612229565b6040519015158152f35b3461127d57602036600319011261127d576001600160a01b0361177b612179565b165f52600860205260405f20600160ff825416910154906117b060405192839283602090939291936040810194151581520152565b0390f35b3461127d575f36600319011261127d576020604051676765c793fa10079d601b1b8152f35b3461127d575f36600319011261127d575f546040516001600160a01b039091168152602090f35b3461127d57606036600319011261127d57611819612179565b6024358015159081810361127d5760443590611833612695565b6001600160a01b03841693841561194f578180611947575b61162457845f52600860205260405f2060018101918254158061193b575b6118c4575b509083917fa89864cdceff9dfca4b774ced00b0ddc2bc65beaf6369d8854e1d8066f5137539560ff80198354169116179055556118bf60405192839283602090939291936040810194151581520152565b0390a2005b919060095495600160401b87101561145f57611932869461190e8960017fa89864cdceff9dfca4b774ced00b0ddc2bc65beaf6369d8854e1d8066f5137539b0160095560096121a5565b81546001600160a01b0393841660039290921b91821b9390911b1916919091179055565b9550909161186e565b5060ff82541615611869565b50821561184b565b63d92e233d60e01b5f5260045ffd5b3461127d575f36600319011261127d57611976612695565b61197e612b21565b6001805460ff60a01b1916600160a01b1790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a1005b3461127d575f36600319011261127d576002546040516001600160a01b039091168152602090f35b3461127d57602036600319011261127d576001600160a01b03611a08612179565b165f908152600a60209081526040918290208054600182015460028301546003840154600485015460059095015487516001600160a01b0395861681529385169684019690965295820152606081019490945290811660808401521660a082015260c090f35b3461127d575f36600319011261127d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461127d57602036600319011261127d57611acb612179565b611ad3612695565b6001600160a01b0316801561194f57600380546001600160a01b031916821790557f604040e39028ddf873a804d55878ad4b5be41e8bb2565ca6804012b5ac1335435f80a2005b3461127d575f36600319011261127d57600154336001600160a01b0390911603611b8c57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461127d575f36600319011261127d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461127d575f36600319011261127d57611bfb612695565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461127d57602036600319011261127d5760043560095481101561127d57600954811015611caa5760095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b3461127d575f36600319011261127d576020600e54604051908152f35b3461127d57602036600319011261127d57611cf4612179565b611cfc6126a8565b6001600160a01b038181165f908152600a6020526040902054163303611d5157611d3481611d2b604093612824565b505033906126e0565b60015f5160206141f05f395f51905f525582519182526020820152f35b6306c3ce4560e41b5f5260045ffd5b3461127d575f36600319011261127d576003546040516001600160a01b039091168152602090f35b3461127d575f36600319011261127d57602060ff60015460a01c166040519015158152f35b3461127d575f36600319011261127d5760206040516201d4c08152f35b3461127d57604036600319011261127d57611de3612179565b611deb61218f565b6001600160a01b039182165f908152600c60209081526040808320949093168252928352819020549051908152f35b3461127d575f36600319011261127d576020600954604051908152f35b3461127d575f36600319011261127d57611e4f612695565b60015460ff8160a01c1615611e965760ff60a01b19166001556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a1005b638dfc202b60e01b5f5260045ffd5b3461127d57608036600319011261127d57604435602435600435606435611eca612695565b6127108211611f38576127108111611f385781611f47575b6127108214611f38577f64be8b8fb22098b9df18da9a866d103fe4a02397ba7a8c86433cd8e4431411779360809383600455806005558160065582600755604051938452602084015260408301526060820152a1005b637bd5dc6360e11b5f5260045ffd5b82158015611f68575b611f385783611ee257637bd5dc6360e11b5f5260045ffd5b50818311611f50565b3461127d575f36600319011261127d576020600754604051908152f35b3461127d575f36600319011261127d5760206040516127108152f35b3461127d57602036600319011261127d576040611d34611fc8612179565b611fd06126a8565b612824565b3461127d57602036600319011261127d57611fee612179565b611ff66126a8565b6001600160a01b038181165f908152600a60205260409020541615611d5157611d3460409133906126e0565b3461127d57602036600319011261127d57600435600e5481101561127d57600e54811015611caa57600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd01546040516001600160a01b039091168152602090f35b3461127d57604036600319011261127d5761209f612179565b6120a761218f565b6001600160a01b039182165f908152600d60209081526040808320949093168252928352819020549051908152f35b3461127d57602036600319011261127d576120ef612179565b6120f7612695565b6001600160a01b0316801561194f57600280546001600160a01b031916821790557fb141872ee67913e1bc546464f29b6b07a65159d45c6af64fdecf8b4129157faf5f80a2005b3461127d57602036600319011261127d576004358060020b810361127d57612167602091612334565b6040516001600160a01b039091168152f35b600435906001600160a01b038216820361127d57565b602435906001600160a01b038216820361127d57565b8054821015611caa575f5260205f2001905f90565b9181601f8401121561127d5782359167ffffffffffffffff831161127d576020838186019501011161127d57565b90601f8019910116810190811067ffffffffffffffff82111761145f57604052565b9081602091031261127d57516001600160a01b038116810361127d5790565b6001600160a01b039081165f908152600a6020526040902080549091161580156122de575b6122d957600201546040516331a9108f60e11b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611272575f916122ba575b506001600160a01b0316301490565b6122d3915060203d60201161141b5761140d81836121e8565b5f6122ab565b505f90565b5060028101541561224e565b818102929181159184041417156112cb57565b8115611304570490565b919082039182116112cb57565b908060209392818452848401375f828201840152601f01601f1916010190565b60020b5f81121561268f57805f03905b620d89e8821161134657600182161561267d576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b169160028116612661575b60048116612645575b60088116612629575b6010811661260d575b602081166125f1575b604081166125d5575b608081166125b9575b610100811661259d575b6102008116612581575b6104008116612565575b6108008116612549575b611000811661252d575b6120008116612511575b61400081166124f5575b61800081166124d9575b6201000081166124bd575b6202000081166124a2575b620400008116612487575b620800001661246e575b5f12612460575b63ffffffff8116612458575f905b60201c60ff91909116016001600160a01b031690565b600190612442565b8015611304575f1904612434565b6b048a170391f7dc42444e8fa290910260801c9061242d565b6d2216e584f5fa1ea926041bedfe9890920260801c91612423565b916e5d6af8dedb81196699c329225ee6040260801c91612418565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161240d565b916f31be135f97d08fd981231505542fcfa60260801c91612402565b916f70d869a156d2a1b890bb3df62baf32f70260801c916123f8565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916123ee565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916123e4565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916123da565b916ff3392b0822b70005940c7a398e4b70f30260801c916123d0565b916ff987a7253ac413176f2b074cf7815e540260801c916123c6565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916123bc565b916ffe5dee046a99a2a811c461f1969c30530260801c916123b2565b916fff2ea16466c96a3843ec78b326b528610260801c916123a9565b916fff973b41fa98c081472e6896dfb254c00260801c916123a0565b916fffcb9843d60f6159c9db58835c9266440260801c91612397565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161238e565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91612385565b916ffff97272373d413259a46990580e213a0260801c9161237c565b6001600160881b03600160801b612371565b80612344565b5f546001600160a01b03163303611b8c57565b60025f5160206141f05f395f51905f5254146126d15760025f5160206141f05f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b039081165f818152600a6020908152604080832060040154600c835281842087871680865290845282852054868652600d85528386209186529352922054909590949093909291168515808061280f575b611624575f838152600c602090815260408083206001600160a01b038816808552908352818420849055868452600d835281842090845290915281205586908490156127d3575b505050836127c3575b7f916d60cf5360c058722c013df4e95816ae5ddf71f4c218eb89d1afb76e047bb8604080519387855286602086015260018060a01b031693a3565b6127ce848383612b3f565b612788565b82612807935f52600b60205260405f2060018060a01b0383165f5260205260405f20612800848254612307565b9055612b3f565b5f858361277f565b508515612738565b919082018092116112cb57565b6001600160a01b039081165f818152600a602052604090208054909391921615611d515760018060a01b03600484015416600284015492604051936080850185811067ffffffffffffffff82111761145f57604090815290855230602086019081526001600160801b0386830181815260608801828152845163fc6f786560e01b8152985160048a015292516001600160a01b0390811660248a01529051821660448901529151166064870152859060849082905f907f0000000000000000000000000000000000000000000000000000000000000000165af1938415611272575f905f95612ae7575b5081831015612abd5760407ff7f7e3bcda2a69d38b6f331dbfbc91c495190456687c361307cedbf8a0759ccf915b868198826129dd575b81612959575b5082519182526020820152a3565b6129a79061271061296c600754856122ea565b0490875f52600d602052855f209060018060a01b0390541660018060a01b03165f52602052845f2061299f828254612817565b905582612307565b5f868152600d60209081528582206002546001600160a01b031683529052849020805490916129d591612817565b90555f61294b565b6127106129ec600754856122ea565b046129f78185612307565b5f898152600b602090815287822085546001600160a01b0316835290528690208054919291612a27908390612817565b90555f898152600b60209081528782206002546001600160a01b0316835290528690208054612a57908490612817565b90555f888152600c602090815287822085546001600160a01b03168352905286902080549091612a8691612817565b90555f878152600c60209081528682206002546001600160a01b03168352905285902080549091612ab691612817565b9055612945565b9360407ff7f7e3bcda2a69d38b6f331dbfbc91c495190456687c361307cedbf8a0759ccf9161293c565b9450506040843d604011612b19575b81612b03604093836121e8565b8101031261127d5760208451940151935f61290e565b3d9150612af6565b60ff60015460a01c16612b3057565b63d93c066560e01b5f5260045ffd5b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615612b9f575b60405215612b7f5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b906001811516612bb757823b15153d15161690612b74565b503d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615612bfc575b50604052565b3d15903b151516909216915f612bf6565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f5114841615612c4f5750604052565b60018492941516612c68573b15153d151616915f612bf6565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615612c4f5750604052565b905f5f19600160601b84098360601b91828083109203918083039214612d3b57816a084595161401484a0000001115612d2957506a084595161401484a0000007f58d10ca10c67639a01c8126b31bc1cc7fb9e575516fb70c108d55d224bfed7ad9394600160601b900990828211900360e71b910360191c170290565b634e487b71905260116020526024601cfd5b50506a084595161401484a00000090049150565b6001811115612e7157806001600160801b821015612e60575b600482600160401b612e12941015612e53575b640100000000811015612e46575b62010000811015612e39575b610100811015612e2d575b6010811015612e21575b1015612e19575b60030260011c612dc181846122fd565b0160011c612dcf81846122fd565b0160011c612ddd81846122fd565b0160011c612deb81846122fd565b0160011c612df981846122fd565b0160011c612e0781846122fd565b0160011c80926122fd565b8111900390565b60011b612db1565b811c9160021b91612daa565b60081c91811b91612da0565b60101c9160081b91612d95565b60201c9160101b91612d89565b60401c9160201b91612d7b565b5050608081901c600160401b612d68565b9056fe6101403461019d57601f61087038819003918201601f19168301916001600160401b038311848410176101a15780849260a09460405283398101031261019d57610048816101b5565b90610055602082016101b5565b6040820151606083015160809093015160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055939091906001600160a01b03811615801561018c575b61017d5782158015610175575b801561016d575b61015e5760805260a05260c05260e0526101005242610120526040516106a690816101ca823960805181818161015e0152610349015260a0518181816103190152610446015260c05181818160d40152818161048c0152818161051e015261063f015260e05181818160af015281816101fa01526106180152610100518181816101a40152818161057401526105f10152610120518181816102590152818161054501526105ca0152f35b636c345c1d60e11b5f5260045ffd5b5084156100b3565b5083156100ac565b63d92e233d60e01b5f5260045ffd5b506001600160a01b0382161561009f565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361019d5756fe60806040526004361015610011575f80fd5b5f3560e01c8063193ba56b146104af5780631a39d8ef1461047557806338af3eed146104315780634e71d92d1461027c57806378e9792514610242578063af38d7571461021d578063e5808f78146101e3578063e834a834146101c7578063f4514fa31461018d578063fc0c546a14610149578063fea5657c1461012f5763fea708f61461009d575f80fd5b3461012b575f36600319011261012b577f00000000000000000000000000000000000000000000000000000000000000006100f8817f00000000000000000000000000000000000000000000000000000000000000006104f4565b5f1981019081116101175760209161010f916104d6565b604051908152f35b634e487b7160e01b5f52601160045260245ffd5b5f80fd5b3461012b575f36600319011261012b57602061010f6105bf565b3461012b575f36600319011261012b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b5760205f54604051908152f35b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b57602061010f61023a6105bf565b5f54906104c9565b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b5760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054146104225760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00556102e16105bf565b6102ed5f5480926104c9565b90811561041357816102fe916104f4565b5f90815560405163a9059cbb60e01b82526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600481905260248590529193927f00000000000000000000000000000000000000000000000000000000000000009091169060209060448180855af160015f51148116156103f4575b84604052156103e257507fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a60208484829652a260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055604051908152f35b635274afe760e01b5f5260045260245ffd5b600181151661040a57813b15153d151616610383565b843d5f823e3d90fd5b6312d37ee560e31b5f5260045ffd5b633ee5aeb560e01b5f5260045ffd5b3461012b575f36600319011261012b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b57602061010f610514565b9190820391821161011757565b81156104e0570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161011757565b8181029291811591840414171561011757565b61051c6105bf565b7f000000000000000000000000000000000000000000000000000000000000000011156105bb577f000000000000000000000000000000000000000000000000000000000000000061056e81426104c9565b9061059a7f000000000000000000000000000000000000000000000000000000000000000080936104d6565b60018101809111610117576105b8926105b291610501565b906104f4565b90565b5f90565b61063d6106166105ef7f0000000000000000000000000000000000000000000000000000000000000000426104c9565b7f0000000000000000000000000000000000000000000000000000000000000000906104d6565b7f000000000000000000000000000000000000000000000000000000000000000090610501565b7f0000000000000000000000000000000000000000000000000000000000000000908181111561066b575090565b90509056fea26469706673582212205bd5e341bc661be127ee76c63901d847b4d6871f10e307bb3b03aa967c8f7f6a64736f6c634300081c003360a0604052346103a257610b0b80380380610019816103a6565b9283398101906060818303126103a25780516001600160401b0381116103a257826100459183016103cb565b60208201519092906001600160401b0381116103a2576040916100699184016103cb565b91015182516001600160401b0381116102b357600354600181811c91168015610398575b602082101461029557601f8111610335575b506020601f82116001146102d257819293945f926102c7575b50508160011b915f199060031b1c1916176003555b81516001600160401b0381116102b357600454600181811c911680156102a9575b602082101461029557601f8111610232575b50602092601f82116001146101d157928192935f926101c6575b50508160011b915f199060031b1c1916176004555b3360805233156101b35760025481810180911161019f57600255335f525f60205260405f208181540190556040519081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a36040516106ee908161041d8239608051816105890152f35b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b015190505f8061011a565b601f1982169360045f52805f20915f5b86811061021a5750836001959610610202575b505050811b0160045561012f565b01515f1960f88460031b161c191690555f80806101f4565b919260206001819286850151815501940192016101e1565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061028b575b601f0160051c01905b8181106102805750610100565b5f8155600101610273565b909150819061026a565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100ee565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b8565b601f1982169060035f52805f20915f5b81811061031d57509583600195969710610305575b505050811b016003556100cd565b01515f1960f88460031b161c191690555f80806102f7565b9192602060018192868b0151815501940192016102e2565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061038e575b601f0160051c01905b818110610383575061009f565b5f8155600101610376565b909150819061036d565b90607f169061008d565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102b357604052565b81601f820112156103a2578051906001600160401b0382116102b3576103fa601f8301601f19166020016103a6565b92828452602083830101116103a257815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816302669b52146105775750806306fdde03146104a5578063095ea7b31461042357806318160ddd1461040657806323b872dd14610327578063313ce5671461030c57806342966c681461026c57806370a082311461023557806395d89b411461011a578063a9059cbb146100e95763dd62ed3e14610095575f80fd5b346100e55760403660031901126100e5576100ae6105e2565b6100b66105f8565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100e55760403660031901126100e55761010f6101056105e2565b602435903361060e565b602060405160018152f35b346100e5575f3660031901126100e5576040515f6004548060011c9060018116801561022b575b602083108114610217578285529081156101fb57506001146101a6575b50819003601f01601f191681019067ffffffffffffffff8211818310176101925761018e829182604052826105b8565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106101e55750602091508201018261015e565b60018160209254838588010152019101906101d0565b90506020925060ff191682840152151560051b8201018261015e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610141565b346100e55760203660031901126100e5576001600160a01b036102566105e2565b165f525f602052602060405f2054604051908152f35b346100e55760203660031901126100e55760043533156102f957335f525f60205260405f20548181106102e05790805f923384528360205203604083205580600254036002556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b63391434e360e21b5f523360045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b346100e5575f3660031901126100e557602060405160128152f35b346100e55760603660031901126100e5576103406105e2565b6103486105f8565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f198110610386575b5061010f935061060e565b8381106103eb5784156103d85733156103c55761010f945f52600160205260405f2060018060a01b0333165f526020528360405f20910390558461037b565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b346100e5575f3660031901126100e5576020600254604051908152f35b346100e55760403660031901126100e55761043c6105e2565b6024359033156103d8576001600160a01b03169081156103c557335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e5575f3660031901126100e5576040515f6003548060011c9060018116801561056d575b602083108114610217578285529081156101fb57506001146105185750819003601f01601f191681019067ffffffffffffffff8211818310176101925761018e829182604052826105b8565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b8282106105575750602091508201018261015e565b6001816020925483858801015201910190610542565b91607f16916104cc565b346100e5575f3660031901126100e5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100e557565b602435906001600160a01b03821682036100e557565b6001600160a01b03169081156102f9576001600160a01b03169182156106a557815f525f60205260405f205481811061068c57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffdfea2646970667358221220713ae0d2c03f8ddebe67a4a8263782412e9be1d88aacfbb584489e1eb96f037064736f6c634300081c00339b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220a9f64ea5cf870d52155d80afbd018e300baed0f1aa0c8c7e8e816d47bf32a59c64736f6c634300081c00330000000000000000000000001f7d7550b1b028f7571e69a784071f0205fd2efa00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d30000000000000000000000003a5bf2dab2e2f7fe05f6efb882e543e5f91490f2000000000000000000000000899ef37d3efacf5c073b3a723ee20f338a159add
0x60806040526004361015610011575f80fd5b5f5f3560e01c806306aebc031461213e5780630c5a61f8146120d65780630d55a5b31461208657806313560cac1461202257806315a0ea6a14611fd557806317de3c7e14611faa578063249d39e914611f8e5780632982782614611f715780632bd0efa814611ea55780633f4ba83a14611e375780634d1d106114611e1a57806353c7cfa814611dca5780635ada784314611dad5780635c975abb14611d8857806360a2356b14611d6057806363668fea14611cdb578063678fd28914611cbe5780636ee85cfc14611c46578063715018a614611be3578063791b98bc14611b9f57806379ba509714611b1a5780637c84d92d14611ab25780637c887c5914611a6e5780637d0f7a88146119e7578063803db96d146119bf5780638456cb591461195e57806384f41c79146118005780638da5cb5b146117d9578063902d55a5146117b45780639cd57cad1461175a578063a1ad17ab1461172d578063a59c0fda14610423578063b602e392146103d0578063c598b2f91461033a578063d86bcd7d1461031d578063dd1b9c4a14610300578063dd3a153b146102e2578063dd86b598146102c4578063e0d7bfc0146102a6578063e30c39781461027d578063f2fde38b146102105763f8f83e97146101e8575f80fd5b3461020d578060031936011261020d5760206040516a084595161401484a0000008152f35b80fd5b503461020d57602036600319011261020d5761022a612179565b610232612695565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b503461020d578060031936011261020d576001546040516001600160a01b039091168152602090f35b503461020d578060031936011261020d576020600554604051908152f35b503461020d578060031936011261020d576020600454604051908152f35b503461020d578060031936011261020d576020600654604051908152f35b503461020d578060031936011261020d5760206040516127108152f35b503461020d578060031936011261020d5760206040516126ac8152f35b503461020d57602036600319011261020d576001600160a01b0361035c612179565b16808252600a60205260408220546001600160a01b031680156103c15760408383829552600c60205281812060018060a01b0384165f52602052815f2054938152600d602052209060018060a01b03165f52602052815f205482519182526020820152f35b6306c3ce4560e41b8352600483fd5b503461020d57604036600319011261020d5760406103ec612179565b916103f561218f565b9260018060a01b03168152600b602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461127d57606036600319011261127d5760043567ffffffffffffffff811161127d576104559036906004016121ba565b919060243567ffffffffffffffff811161127d576104779036906004016121ba565b60443592916001600160a01b038416840361127d576104946126a8565b61049c612b21565b85158015611725575b61171657603c8611801561170c575b6116fd576001600160a01b0384165f908152600860205260409081902081519591860167ffffffffffffffff81118782101761145f5760405260ff815416156001811592838952015490816020890152916116f4575b506116e5576040516105216020610b0b01826121e8565b610b0b815260208101610b0b6136e582396105bc6040519160208b61058b8561056c6105598d86840195606087526080850191612314565b828103601f190160408401528c8c612314565b676765c793fa10079d601b1b606083015203601f1981018752866121e8565b60405194859383850197518091895e840190838201905f8252519283915e01015f815203601f1981018352826121e8565b519020600e545f97918891829182915b610fa08310611642575b5050501561163357604051610b0b810181811067ffffffffffffffff82111761145f578190676765c793fa10079d601b1b60406106376106288f8d90610b0b6136e58939606087526060870191612314565b84810360208601528b8b612314565b92015203905ff5968715611272576001600160a01b0390811690881603611633576004549586676765c793fa10079d601b1b0296676765c793fa10079d601b1b8804036112cb57676765c793fa10079d601b1b61271088048103116112cb576127108704676765c793fa10079d601b1b14611624576001600160a01b038881165f908152600a6020526040902080546001600160a01b03199081163317825560048201805490911692861692909217909155906127108804611473575b60200151966040519760c0890189811067ffffffffffffffff82111761145f5760409081525f808b5260208b01819052908a0181905260608a0181905260808a0181905260a08a01526001600160a01b03858116908b16101561145057604051630b4c774160e11b81526001600160a01b03808c166004830152861660248201526127106044820152602081806064810103817f0000000000000000000000001f7d7550b1b028f7571e69a784071f0205fd2efa6001600160a01b03165afa908115611272575f91611431575b506001600160a01b03166114225760405163a167129560e01b81526001600160a01b03808c166004830152861660248201526127106044820152602081806064810103815f7f0000000000000000000000001f7d7550b1b028f7571e69a784071f0205fd2efa6001600160a01b03165af1908115611272575f916113f3575b506001600160a01b039081168a526040516322afcccb60e01b8152612710600482015290602090829060249082907f0000000000000000000000001f7d7550b1b028f7571e69a784071f0205fd2efa165afa908115611272575f916113b7575b5060020b905f82138015906113a0575b611391576108c06108c591612cac565b612d4f565b603081901b6001600160a01b0316906401000276a38211801590611373575b611281576401000276a382108015611355575b61134657640100000000600160c01b039060501b16806001600160801b03811160071b90811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c1196171717171717179060808210155f1461133c57607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c6780000000000000001690607f190160401b1717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa919810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f14611318575090505b60020b811561130457627fffff1981145f198314166112cb5781810590825f821291826112f5575b50506112df575b60020b028060020b9081036112cb576201d4c08101627fffff8113627fffff198212176112cb5760020b620d89a0811380156112be575b6112af5760808a0152606089018190526001600160a01b0390610bc590612334565b168060a08a01526401000276a3811190811591611290575b5061128157875160a08901516001600160a01b039182169116813b1561127d575f9160248392604051948593849263f637731d60e01b845260048401525af180156112725761125d575b50610c706127108204676765c793fa10079d601b1b036001600160a01b037f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d38116908c16612bc0565b156111b9575b606088015160020b608089015160020b6126ac6127108404676765c793fa10079d601b1b0302906127108404676765c793fa10079d601b1b0382046126ac036111a557604051928361016081011067ffffffffffffffff6101608601111761119157610160840160409081526001600160a01b038e8116865289811660208701908152612710838801818152606089019586526080808a01978852828b04676765c793fa10079d601b1b0360a08b0190815260c08b018e8152938a0460e08c019081526101008c018f8152306101208e01908152426101408f019081529951634418b22b60e11b81529d51891660048f01529651881660248e0152935162ffffff1660448d01529751600290810b60648d0152985190980b60848b0152965160a48a0152905160c4890152935160e488015292516101048701529151821661012486015251610144850152839061016490829089907f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d3165af19182156111865785908693611130575b5060208b0152610e3c856001600160a01b037f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d38116908e16612bc0565b1561109d575b612710908260408c0152041161108e57610e729061271060408a01519104676765c793fa10079d601b1b03612307565b8061101b575b5086516001820180546001600160a01b0319166001600160a01b0392909216919091179055602087015160028201556040870151600390910155600e5490600160401b8210156110075750967fe4256d01cfd090c94245eeebeff34972a42c03128d66b7709d7bafeb7e27e55a91610f1c610efd8a600160209c01600e55600e6121a5565b81546001600160a01b038c811660039390931b92831b921b1916179055565b865160a080890151604080516001600160a01b0395861681526127108e8201529185169082015260608101829052929091169691928392610f7e92610f649290850191612314565b828103608084015233966001600160a01b038b1696612314565b0390a460018060a01b0381511683820151916040810151906080606082015160020b91015160020b906040519283528683015260408201527f7ab83fbfd18d00801ccc746413c5c943431fe2141f152ecdcfd492ed1feaa77b606060018060a01b03861692a460015f5160206141f05f395f51905f52556040516001600160a01b039091168152f35b634e487b7160e01b81526041600452602490fd5b6001600160a01b0389163b1561108a57604051630852cd8d60e31b815260048101919091528281602481836001600160a01b038e165af1801561107f57908391611066575b50610e78565b81611070916121e8565b61107b57815f611060565b5080fd5b6040513d85823e3d90fd5b8280fd5b63244a822560e11b8352600483fd5b6110d36001600160a01b037f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d38116908d16612c0d565b156111145761110f856001600160a01b037f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d38116908e16612c71565b610e42575b635274afe760e01b85526001600160a01b038b16600452602485fd5b9250506080823d60801161117e575b8161114c608093836121e8565b8101031261117a5781519160208101516001600160801b038116036111765760400151915f610dff565b8580fd5b8480fd5b3d915061113f565b6040513d87823e3d90fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b86526011600452602486fd5b6111ef6001600160a01b037f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d38116908b16612c0d565b156112415761123c6127108204676765c793fa10079d601b1b036001600160a01b037f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d38116908c16612c71565b610c76575b635274afe760e01b83526001600160a01b038916600452602483fd5b61126a9193505f906121e8565b5f915f610c27565b6040513d5f823e3d90fd5b5f80fd5b6310d687b960e11b5f5260045ffd5b73fffd8963efd1fc6a506488495d951d5263988d26915010155f610bdd565b63561ce9bb60e01b5f5260045ffd5b50620d899f198212610ba3565b634e487b7160e01b5f52601160045260245ffd5b60020b627fffff1981146112cb575f1901610b6c565b0760020b15159050825f610b65565b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0361132984612334565b16116113355750610b3d565b9050610b3d565b81607f031b610984565b633e1f710360e21b5f5260045ffd5b5073fffd8963efd1fc6a506488495d951d5263988d268210156108f7565b5073fffd8963efd1fc6a506488495d951d5263988d268210156108e4565b63013840ad60e51b5f5260045ffd5b50811561130457816201d4c00760020b15156108b0565b90506020813d6020116113eb575b816113d2602093836121e8565b8101031261127d57518060020b810361127d575f6108a0565b3d91506113c5565b611415915060203d60201161141b575b61140d81836121e8565b81019061220a565b5f610840565b503d611403565b630188c99160e11b5f5260045ffd5b61144a915060203d60201161141b5761140d81836121e8565b5f6107c1565b6303e67ae160e21b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b6005549081676765c793fa10079d601b1b0291676765c793fa10079d601b1b8304036112cb5760018060a01b0360035416600654604051908161087081011067ffffffffffffffff6108708401111761145f57610870612e7583396001600160a01b038d16610870830190815260208101849052612710808e04604083015286046060820152608081019190915281900360a001905ff08015611272576001600160a01b039081169061152f906127108d049083908f16612b3f565b602460208d604051928380926370a0823160e01b825286600483015260018060a01b03165afa908115611272575f916115f2575b506127108c04116115e3578a7fa1b7b226f23b5fe2edb4fd419e3504dc83ca270fcba23bae98a1351711e9ec9e60608e60209760058a0160018060a01b0387166bffffffffffffffffffffffff60a01b8254161790556127106006549181604051970487520489860152604085015260018060a01b031692a490506106f4565b630d2b1e4f60e11b5f5260045ffd5b90506020813d60201161161c575b8161160d602093836121e8565b8101031261127d57515f611563565b3d9150611600565b631f2a200560e01b5f5260045ffd5b637cb5018b60e11b5f5260045ffd5b919a50925060405160208101903360601b82528260348201528b6054820152605481526116706074826121e8565b519020926040516020810160ff60f81b81523060601b6021830152856035830152826055830152605582526116a66075836121e8565b905190206001600160a01b039081169b9087168c10806116dc575b6116ce57600101916105cc565b5050505060015f80806105d6565b508b3b156116c1565b636a80224560e11b5f5260045ffd5b9050155f61050a565b63216e38bd60e21b5f5260045ffd5b50600a82116104b4565b63ae92135760e01b5f5260045ffd5b5081156104a5565b3461127d57602036600319011261127d57602061175061174b612179565b612229565b6040519015158152f35b3461127d57602036600319011261127d576001600160a01b0361177b612179565b165f52600860205260405f20600160ff825416910154906117b060405192839283602090939291936040810194151581520152565b0390f35b3461127d575f36600319011261127d576020604051676765c793fa10079d601b1b8152f35b3461127d575f36600319011261127d575f546040516001600160a01b039091168152602090f35b3461127d57606036600319011261127d57611819612179565b6024358015159081810361127d5760443590611833612695565b6001600160a01b03841693841561194f578180611947575b61162457845f52600860205260405f2060018101918254158061193b575b6118c4575b509083917fa89864cdceff9dfca4b774ced00b0ddc2bc65beaf6369d8854e1d8066f5137539560ff80198354169116179055556118bf60405192839283602090939291936040810194151581520152565b0390a2005b919060095495600160401b87101561145f57611932869461190e8960017fa89864cdceff9dfca4b774ced00b0ddc2bc65beaf6369d8854e1d8066f5137539b0160095560096121a5565b81546001600160a01b0393841660039290921b91821b9390911b1916919091179055565b9550909161186e565b5060ff82541615611869565b50821561184b565b63d92e233d60e01b5f5260045ffd5b3461127d575f36600319011261127d57611976612695565b61197e612b21565b6001805460ff60a01b1916600160a01b1790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a1005b3461127d575f36600319011261127d576002546040516001600160a01b039091168152602090f35b3461127d57602036600319011261127d576001600160a01b03611a08612179565b165f908152600a60209081526040918290208054600182015460028301546003840154600485015460059095015487516001600160a01b0395861681529385169684019690965295820152606081019490945290811660808401521660a082015260c090f35b3461127d575f36600319011261127d576040517f0000000000000000000000001f7d7550b1b028f7571e69a784071f0205fd2efa6001600160a01b03168152602090f35b3461127d57602036600319011261127d57611acb612179565b611ad3612695565b6001600160a01b0316801561194f57600380546001600160a01b031916821790557f604040e39028ddf873a804d55878ad4b5be41e8bb2565ca6804012b5ac1335435f80a2005b3461127d575f36600319011261127d57600154336001600160a01b0390911603611b8c57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461127d575f36600319011261127d576040517f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03168152602090f35b3461127d575f36600319011261127d57611bfb612695565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461127d57602036600319011261127d5760043560095481101561127d57600954811015611caa5760095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b3461127d575f36600319011261127d576020600e54604051908152f35b3461127d57602036600319011261127d57611cf4612179565b611cfc6126a8565b6001600160a01b038181165f908152600a6020526040902054163303611d5157611d3481611d2b604093612824565b505033906126e0565b60015f5160206141f05f395f51905f525582519182526020820152f35b6306c3ce4560e41b5f5260045ffd5b3461127d575f36600319011261127d576003546040516001600160a01b039091168152602090f35b3461127d575f36600319011261127d57602060ff60015460a01c166040519015158152f35b3461127d575f36600319011261127d5760206040516201d4c08152f35b3461127d57604036600319011261127d57611de3612179565b611deb61218f565b6001600160a01b039182165f908152600c60209081526040808320949093168252928352819020549051908152f35b3461127d575f36600319011261127d576020600954604051908152f35b3461127d575f36600319011261127d57611e4f612695565b60015460ff8160a01c1615611e965760ff60a01b19166001556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a1005b638dfc202b60e01b5f5260045ffd5b3461127d57608036600319011261127d57604435602435600435606435611eca612695565b6127108211611f38576127108111611f385781611f47575b6127108214611f38577f64be8b8fb22098b9df18da9a866d103fe4a02397ba7a8c86433cd8e4431411779360809383600455806005558160065582600755604051938452602084015260408301526060820152a1005b637bd5dc6360e11b5f5260045ffd5b82158015611f68575b611f385783611ee257637bd5dc6360e11b5f5260045ffd5b50818311611f50565b3461127d575f36600319011261127d576020600754604051908152f35b3461127d575f36600319011261127d5760206040516127108152f35b3461127d57602036600319011261127d576040611d34611fc8612179565b611fd06126a8565b612824565b3461127d57602036600319011261127d57611fee612179565b611ff66126a8565b6001600160a01b038181165f908152600a60205260409020541615611d5157611d3460409133906126e0565b3461127d57602036600319011261127d57600435600e5481101561127d57600e54811015611caa57600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd01546040516001600160a01b039091168152602090f35b3461127d57604036600319011261127d5761209f612179565b6120a761218f565b6001600160a01b039182165f908152600d60209081526040808320949093168252928352819020549051908152f35b3461127d57602036600319011261127d576120ef612179565b6120f7612695565b6001600160a01b0316801561194f57600280546001600160a01b031916821790557fb141872ee67913e1bc546464f29b6b07a65159d45c6af64fdecf8b4129157faf5f80a2005b3461127d57602036600319011261127d576004358060020b810361127d57612167602091612334565b6040516001600160a01b039091168152f35b600435906001600160a01b038216820361127d57565b602435906001600160a01b038216820361127d57565b8054821015611caa575f5260205f2001905f90565b9181601f8401121561127d5782359167ffffffffffffffff831161127d576020838186019501011161127d57565b90601f8019910116810190811067ffffffffffffffff82111761145f57604052565b9081602091031261127d57516001600160a01b038116810361127d5790565b6001600160a01b039081165f908152600a6020526040902080549091161580156122de575b6122d957600201546040516331a9108f60e11b815260048101919091526020816024817f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d36001600160a01b03165afa908115611272575f916122ba575b506001600160a01b0316301490565b6122d3915060203d60201161141b5761140d81836121e8565b5f6122ab565b505f90565b5060028101541561224e565b818102929181159184041417156112cb57565b8115611304570490565b919082039182116112cb57565b908060209392818452848401375f828201840152601f01601f1916010190565b60020b5f81121561268f57805f03905b620d89e8821161134657600182161561267d576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b169160028116612661575b60048116612645575b60088116612629575b6010811661260d575b602081166125f1575b604081166125d5575b608081166125b9575b610100811661259d575b6102008116612581575b6104008116612565575b6108008116612549575b611000811661252d575b6120008116612511575b61400081166124f5575b61800081166124d9575b6201000081166124bd575b6202000081166124a2575b620400008116612487575b620800001661246e575b5f12612460575b63ffffffff8116612458575f905b60201c60ff91909116016001600160a01b031690565b600190612442565b8015611304575f1904612434565b6b048a170391f7dc42444e8fa290910260801c9061242d565b6d2216e584f5fa1ea926041bedfe9890920260801c91612423565b916e5d6af8dedb81196699c329225ee6040260801c91612418565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161240d565b916f31be135f97d08fd981231505542fcfa60260801c91612402565b916f70d869a156d2a1b890bb3df62baf32f70260801c916123f8565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916123ee565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916123e4565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916123da565b916ff3392b0822b70005940c7a398e4b70f30260801c916123d0565b916ff987a7253ac413176f2b074cf7815e540260801c916123c6565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916123bc565b916ffe5dee046a99a2a811c461f1969c30530260801c916123b2565b916fff2ea16466c96a3843ec78b326b528610260801c916123a9565b916fff973b41fa98c081472e6896dfb254c00260801c916123a0565b916fffcb9843d60f6159c9db58835c9266440260801c91612397565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161238e565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91612385565b916ffff97272373d413259a46990580e213a0260801c9161237c565b6001600160881b03600160801b612371565b80612344565b5f546001600160a01b03163303611b8c57565b60025f5160206141f05f395f51905f5254146126d15760025f5160206141f05f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b039081165f818152600a6020908152604080832060040154600c835281842087871680865290845282852054868652600d85528386209186529352922054909590949093909291168515808061280f575b611624575f838152600c602090815260408083206001600160a01b038816808552908352818420849055868452600d835281842090845290915281205586908490156127d3575b505050836127c3575b7f916d60cf5360c058722c013df4e95816ae5ddf71f4c218eb89d1afb76e047bb8604080519387855286602086015260018060a01b031693a3565b6127ce848383612b3f565b612788565b82612807935f52600b60205260405f2060018060a01b0383165f5260205260405f20612800848254612307565b9055612b3f565b5f858361277f565b508515612738565b919082018092116112cb57565b6001600160a01b039081165f818152600a602052604090208054909391921615611d515760018060a01b03600484015416600284015492604051936080850185811067ffffffffffffffff82111761145f57604090815290855230602086019081526001600160801b0386830181815260608801828152845163fc6f786560e01b8152985160048a015292516001600160a01b0390811660248a01529051821660448901529151166064870152859060849082905f907f00000000000000000000000073991a25c818bf1f1128deaab1492d45638de0d3165af1938415611272575f905f95612ae7575b5081831015612abd5760407ff7f7e3bcda2a69d38b6f331dbfbc91c495190456687c361307cedbf8a0759ccf915b868198826129dd575b81612959575b5082519182526020820152a3565b6129a79061271061296c600754856122ea565b0490875f52600d602052855f209060018060a01b0390541660018060a01b03165f52602052845f2061299f828254612817565b905582612307565b5f868152600d60209081528582206002546001600160a01b031683529052849020805490916129d591612817565b90555f61294b565b6127106129ec600754856122ea565b046129f78185612307565b5f898152600b602090815287822085546001600160a01b0316835290528690208054919291612a27908390612817565b90555f898152600b60209081528782206002546001600160a01b0316835290528690208054612a57908490612817565b90555f888152600c602090815287822085546001600160a01b03168352905286902080549091612a8691612817565b90555f878152600c60209081528682206002546001600160a01b03168352905285902080549091612ab691612817565b9055612945565b9360407ff7f7e3bcda2a69d38b6f331dbfbc91c495190456687c361307cedbf8a0759ccf9161293c565b9450506040843d604011612b19575b81612b03604093836121e8565b8101031261127d5760208451940151935f61290e565b3d9150612af6565b60ff60015460a01c16612b3057565b63d93c066560e01b5f5260045ffd5b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615612b9f575b60405215612b7f5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b906001811516612bb757823b15153d15161690612b74565b503d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615612bfc575b50604052565b3d15903b151516909216915f612bf6565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f5114841615612c4f5750604052565b60018492941516612c68573b15153d151616915f612bf6565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615612c4f5750604052565b905f5f19600160601b84098360601b91828083109203918083039214612d3b57816a084595161401484a0000001115612d2957506a084595161401484a0000007f58d10ca10c67639a01c8126b31bc1cc7fb9e575516fb70c108d55d224bfed7ad9394600160601b900990828211900360e71b910360191c170290565b634e487b71905260116020526024601cfd5b50506a084595161401484a00000090049150565b6001811115612e7157806001600160801b821015612e60575b600482600160401b612e12941015612e53575b640100000000811015612e46575b62010000811015612e39575b610100811015612e2d575b6010811015612e21575b1015612e19575b60030260011c612dc181846122fd565b0160011c612dcf81846122fd565b0160011c612ddd81846122fd565b0160011c612deb81846122fd565b0160011c612df981846122fd565b0160011c612e0781846122fd565b0160011c80926122fd565b8111900390565b60011b612db1565b811c9160021b91612daa565b60081c91811b91612da0565b60101c9160081b91612d95565b60201c9160101b91612d89565b60401c9160201b91612d7b565b5050608081901c600160401b612d68565b9056fe6101403461019d57601f61087038819003918201601f19168301916001600160401b038311848410176101a15780849260a09460405283398101031261019d57610048816101b5565b90610055602082016101b5565b6040820151606083015160809093015160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055939091906001600160a01b03811615801561018c575b61017d5782158015610175575b801561016d575b61015e5760805260a05260c05260e0526101005242610120526040516106a690816101ca823960805181818161015e0152610349015260a0518181816103190152610446015260c05181818160d40152818161048c0152818161051e015261063f015260e05181818160af015281816101fa01526106180152610100518181816101a40152818161057401526105f10152610120518181816102590152818161054501526105ca0152f35b636c345c1d60e11b5f5260045ffd5b5084156100b3565b5083156100ac565b63d92e233d60e01b5f5260045ffd5b506001600160a01b0382161561009f565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361019d5756fe60806040526004361015610011575f80fd5b5f3560e01c8063193ba56b146104af5780631a39d8ef1461047557806338af3eed146104315780634e71d92d1461027c57806378e9792514610242578063af38d7571461021d578063e5808f78146101e3578063e834a834146101c7578063f4514fa31461018d578063fc0c546a14610149578063fea5657c1461012f5763fea708f61461009d575f80fd5b3461012b575f36600319011261012b577f00000000000000000000000000000000000000000000000000000000000000006100f8817f00000000000000000000000000000000000000000000000000000000000000006104f4565b5f1981019081116101175760209161010f916104d6565b604051908152f35b634e487b7160e01b5f52601160045260245ffd5b5f80fd5b3461012b575f36600319011261012b57602061010f6105bf565b3461012b575f36600319011261012b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b5760205f54604051908152f35b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b57602061010f61023a6105bf565b5f54906104c9565b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b5760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054146104225760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00556102e16105bf565b6102ed5f5480926104c9565b90811561041357816102fe916104f4565b5f90815560405163a9059cbb60e01b82526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600481905260248590529193927f00000000000000000000000000000000000000000000000000000000000000009091169060209060448180855af160015f51148116156103f4575b84604052156103e257507fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a60208484829652a260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055604051908152f35b635274afe760e01b5f5260045260245ffd5b600181151661040a57813b15153d151616610383565b843d5f823e3d90fd5b6312d37ee560e31b5f5260045ffd5b633ee5aeb560e01b5f5260045ffd5b3461012b575f36600319011261012b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461012b575f36600319011261012b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461012b575f36600319011261012b57602061010f610514565b9190820391821161011757565b81156104e0570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161011757565b8181029291811591840414171561011757565b61051c6105bf565b7f000000000000000000000000000000000000000000000000000000000000000011156105bb577f000000000000000000000000000000000000000000000000000000000000000061056e81426104c9565b9061059a7f000000000000000000000000000000000000000000000000000000000000000080936104d6565b60018101809111610117576105b8926105b291610501565b906104f4565b90565b5f90565b61063d6106166105ef7f0000000000000000000000000000000000000000000000000000000000000000426104c9565b7f0000000000000000000000000000000000000000000000000000000000000000906104d6565b7f000000000000000000000000000000000000000000000000000000000000000090610501565b7f0000000000000000000000000000000000000000000000000000000000000000908181111561066b575090565b90509056fea26469706673582212205bd5e341bc661be127ee76c63901d847b4d6871f10e307bb3b03aa967c8f7f6a64736f6c634300081c003360a0604052346103a257610b0b80380380610019816103a6565b9283398101906060818303126103a25780516001600160401b0381116103a257826100459183016103cb565b60208201519092906001600160401b0381116103a2576040916100699184016103cb565b91015182516001600160401b0381116102b357600354600181811c91168015610398575b602082101461029557601f8111610335575b506020601f82116001146102d257819293945f926102c7575b50508160011b915f199060031b1c1916176003555b81516001600160401b0381116102b357600454600181811c911680156102a9575b602082101461029557601f8111610232575b50602092601f82116001146101d157928192935f926101c6575b50508160011b915f199060031b1c1916176004555b3360805233156101b35760025481810180911161019f57600255335f525f60205260405f208181540190556040519081525f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a36040516106ee908161041d8239608051816105890152f35b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b015190505f8061011a565b601f1982169360045f52805f20915f5b86811061021a5750836001959610610202575b505050811b0160045561012f565b01515f1960f88460031b161c191690555f80806101f4565b919260206001819286850151815501940192016101e1565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061028b575b601f0160051c01905b8181106102805750610100565b5f8155600101610273565b909150819061026a565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100ee565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b8565b601f1982169060035f52805f20915f5b81811061031d57509583600195969710610305575b505050811b016003556100cd565b01515f1960f88460031b161c191690555f80806102f7565b9192602060018192868b0151815501940192016102e2565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061038e575b601f0160051c01905b818110610383575061009f565b5f8155600101610376565b909150819061036d565b90607f169061008d565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102b357604052565b81601f820112156103a2578051906001600160401b0382116102b3576103fa601f8301601f19166020016103a6565b92828452602083830101116103a257815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816302669b52146105775750806306fdde03146104a5578063095ea7b31461042357806318160ddd1461040657806323b872dd14610327578063313ce5671461030c57806342966c681461026c57806370a082311461023557806395d89b411461011a578063a9059cbb146100e95763dd62ed3e14610095575f80fd5b346100e55760403660031901126100e5576100ae6105e2565b6100b66105f8565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100e55760403660031901126100e55761010f6101056105e2565b602435903361060e565b602060405160018152f35b346100e5575f3660031901126100e5576040515f6004548060011c9060018116801561022b575b602083108114610217578285529081156101fb57506001146101a6575b50819003601f01601f191681019067ffffffffffffffff8211818310176101925761018e829182604052826105b8565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106101e55750602091508201018261015e565b60018160209254838588010152019101906101d0565b90506020925060ff191682840152151560051b8201018261015e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610141565b346100e55760203660031901126100e5576001600160a01b036102566105e2565b165f525f602052602060405f2054604051908152f35b346100e55760203660031901126100e55760043533156102f957335f525f60205260405f20548181106102e05790805f923384528360205203604083205580600254036002556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b63391434e360e21b5f523360045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b346100e5575f3660031901126100e557602060405160128152f35b346100e55760603660031901126100e5576103406105e2565b6103486105f8565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f198110610386575b5061010f935061060e565b8381106103eb5784156103d85733156103c55761010f945f52600160205260405f2060018060a01b0333165f526020528360405f20910390558461037b565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b346100e5575f3660031901126100e5576020600254604051908152f35b346100e55760403660031901126100e55761043c6105e2565b6024359033156103d8576001600160a01b03169081156103c557335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e5575f3660031901126100e5576040515f6003548060011c9060018116801561056d575b602083108114610217578285529081156101fb57506001146105185750819003601f01601f191681019067ffffffffffffffff8211818310176101925761018e829182604052826105b8565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b8282106105575750602091508201018261015e565b6001816020925483858801015201910190610542565b91607f16916104cc565b346100e5575f3660031901126100e5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100e557565b602435906001600160a01b03821682036100e557565b6001600160a01b03169081156102f9576001600160a01b03169182156106a557815f525f60205260405f205481811061068c57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffdfea2646970667358221220713ae0d2c03f8ddebe67a4a8263782412e9be1d88aacfbb584489e1eb96f037064736f6c634300081c00339b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220a9f64ea5cf870d52155d80afbd018e300baed0f1aa0c8c7e8e816d47bf32a59c64736f6c634300081c0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| Uniswap V3 Positions NFT-V1 (UNI-V3-POS) | UNI-V3-POS | 8 | — | — |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x1f6cb4…4858b3 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x7ab83f…a77b | [0] 0x000000000000…a0859ad2 [1] 0x000000000000…688d5b01 [2] 0x000000000000…000a331e data: 0x000000000000000000…ffff5100 |
| 0x1f6cb4…4858b3 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0xe4256d…e55a | [0] 0x000000000000…a0859ad2 [1] 0x000000000000…f91490f2 [2] 0x000000000000…688d5b01 data: 0x000000000000000000…00000000 |
| 0x1f6cb4…4858b3 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…a0859ad2 [1] 0x000000000000…45327ddc [2] 0x000000000000…f91490f2 data: 0x000000000000000000…00000001 |
| 0xa81b75…324cbc | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0x7ab83f…a77b | [0] 0x000000000000…1fae7452 [1] 0x000000000000…6cb5f461 [2] 0x000000000000…000a330b data: 0x000000000000000000…fffec078 |
| 0xa81b75…324cbc | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0xe4256d…e55a | [0] 0x000000000000…1fae7452 [1] 0x000000000000…f91490f2 [2] 0x000000000000…6cb5f461 data: 0x000000000000000000…00000000 |
| 0xa81b75…324cbc | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…1fae7452 [1] 0x000000000000…aa97d55b [2] 0x000000000000…f91490f2 data: 0x000000000000000000…00000001 |
| 0x387e47…5efea3 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x7ab83f…a77b | [0] 0x000000000000…80086581 [1] 0x000000000000…4744a71e [2] 0x000000000000…0009c685 data: 0x000000000000000000…fffee468 |
| 0x387e47…5efea3 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0xe4256d…e55a | [0] 0x000000000000…80086581 [1] 0x000000000000…f91490f2 [2] 0x000000000000…4744a71e data: 0x000000000000000000…00000000 |
| 0x387e47…5efea3 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…80086581 [1] 0x000000000000…93534b0e [2] 0x000000000000…f91490f2 data: 0x000000000000000000…00000001 |
| 0x797cda…1d30bc | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x7ab83f…a77b | [0] 0x000000000000…93992c6b [1] 0x000000000000…a6fbdded [2] 0x000000000000…0009c665 data: 0x000000000000000000…fffef0e8 |
| 0x797cda…1d30bc | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0xe4256d…e55a | [0] 0x000000000000…93992c6b [1] 0x000000000000…f91490f2 [2] 0x000000000000…a6fbdded data: 0x000000000000000000…00000000 |
| 0x797cda…1d30bc | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…93992c6b [1] 0x000000000000…435a799d [2] 0x000000000000…f91490f2 data: 0x000000000000000000…00000001 |
| 0x160181…e916d6 | 8 days agoSun, 09 Aug 2026 20:26:13 UTC | 0x604040…3543 | [0] 0x000000000000…f91490f2 |
| 0xfaf6d3…6d0f3a | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0x7ab83f…a77b | [0] 0x000000000000…fe73498f [1] 0x000000000000…24021f28 [2] 0x000000000000…0009c646 data: 0x000000000000000000…fffef0e8 |
| 0xfaf6d3…6d0f3a | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0xe4256d…e55a | [0] 0x000000000000…fe73498f [1] 0x000000000000…f91490f2 [2] 0x000000000000…24021f28 data: 0x000000000000000000…00000000 |
| 0xfaf6d3…6d0f3a | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…fe73498f [1] 0x000000000000…3ebc4d21 [2] 0x000000000000…8a159add data: 0x000000000000000000…00000001 |
| 0x26c11f…10d14e | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x7ab83f…a77b | [0] 0x000000000000…d1b7dcf1 [1] 0x000000000000…7852bc0b [2] 0x000000000000…00094e99 data: 0x000000000000000000…ffff5100 |
| 0x26c11f…10d14e | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0xe4256d…e55a | [0] 0x000000000000…d1b7dcf1 [1] 0x000000000000…f91490f2 [2] 0x000000000000…7852bc0b data: 0x000000000000000000…00000000 |
| 0x26c11f…10d14e | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…d1b7dcf1 [1] 0x000000000000…b40984fe [2] 0x000000000000…8a159add data: 0x000000000000000000…00000001 |
| 0x49e48d…80c6e3 | 11 days agoThu, 06 Aug 2026 08:15:59 UTC | 0x7ab83f…a77b | [0] 0x000000000000…f932828e [1] 0x000000000000…18f68476 [2] 0x000000000000…000933d5 data: 0x000000000000000000…fffee468 |
| 0x49e48d…80c6e3 | 11 days agoThu, 06 Aug 2026 08:15:59 UTC | 0xe4256d…e55a | [0] 0x000000000000…f932828e [1] 0x000000000000…f91490f2 [2] 0x000000000000…18f68476 data: 0x000000000000000000…00000000 |
| 0x49e48d…80c6e3 | 11 days agoThu, 06 Aug 2026 08:15:59 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…f932828e [1] 0x000000000000…fbea7e12 [2] 0x000000000000…8a159add data: 0x000000000000000000…00000001 |
| 0x894930…1e96f6 | 11 days agoThu, 06 Aug 2026 08:15:45 UTC | 0x7ab83f…a77b | [0] 0x000000000000…41f0c814 [1] 0x000000000000…37b84134 [2] 0x000000000000…000933cd data: 0x000000000000000000…fffee468 |
| 0x894930…1e96f6 | 11 days agoThu, 06 Aug 2026 08:15:45 UTC | 0xe4256d…e55a | [0] 0x000000000000…41f0c814 [1] 0x000000000000…f91490f2 [2] 0x000000000000…37b84134 data: 0x000000000000000000…00000000 |
| 0x894930…1e96f6 | 11 days agoThu, 06 Aug 2026 08:15:45 UTC | 0xa1b7b2…ec9e | [0] 0x000000000000…41f0c814 [1] 0x000000000000…daa86181 [2] 0x000000000000…8a159add data: 0x000000000000000000…00000001 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x1f6cb4…4858b3 | createCoin | 34,599,534 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00031535 | |
| 0xa81b75…324cbc | createCoin | 34,598,192 | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00031780 | |
| 0x387e47…5efea3 | createCoin | 32,224,911 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00016962 | |
| 0x797cda…1d30bc | createCoin | 32,222,964 | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00017076 | |
| 0x160181…e916d6 | setCreatorVestingWallet | 32,222,159 | 8 days agoSun, 09 Aug 2026 20:26:13 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000083 | |
| 0xfaf6d3…6d0f3a | createCoin | 32,219,682 | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00016863 | |
| 0x26c11f…10d14e | createCoin | 29,614,446 | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00018758 | |
| 0x49e48d…80c6e3 | createCoin | 29,197,568 | 11 days agoThu, 06 Aug 2026 08:15:59 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00016608 | |
| 0x894930…1e96f6 | createCoin | 29,197,429 | 11 days agoThu, 06 Aug 2026 08:15:45 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00016729 | |
| 0x0195b5…7a21c3 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0x7c88de…3da61f | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xda8167…e6a11b | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000271 | |
| 0x23bda2…fbb529 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xe91587…063cf2 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0x28a691…7e38a5 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0x710e65…897c08 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xf428d6…9ee34e | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xce7c11…3cdbf2 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xb8a2aa…16c7ed | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0x8c159d…735269 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xfd6421…ed789c | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xfa9192…93194f | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0xad4c50…455742 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 | |
| 0x597825…aad4b4 | setQuote | 28,735,925 | 12 days agoWed, 05 Aug 2026 19:25:32 UTC | 0x3a5b…90f2 | IN | LinkedInuStockLaunchpad | $0.000 ETH | 0.00000231 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x1f6cb44e…4858b3 | Transfer | 34,599,534 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x8abc…5e8e | OUT | 0x0000…0000 | 0.000000 GAMESTOP | GAME STOP (GAMESTOP) | |
| 0x1f6cb44e…4858b3 | Transfer | 34,599,534 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x8abc…5e8e | OUT | 0xff76…5b01 | 800,000,000.000000 GAMESTOP | GAME STOP (GAMESTOP) | |
| 0x1f6cb44e…4858b3 | Transfer | 34,599,534 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x8abc…5e8e | OUT | 0x8a25…7ddc | 200,000,000.000000 GAMESTOP | GAME STOP (GAMESTOP) | |
| 0x1f6cb44e…4858b3 | Transfer | 34,599,534 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x0000…0000 | IN | 0x8abc…5e8e | 1,000,000,000.000000 GAMESTOP | GAME STOP (GAMESTOP) | |
| 0xa81b7540…324cbc | Transfer | 34,598,192 | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0x8abc…5e8e | OUT | 0x0000…0000 | 0.000000 STONKCAT | STONK CAT (STONKCAT) | |
| 0xa81b7540…324cbc | Transfer | 34,598,192 | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0x8abc…5e8e | OUT | 0xf209…f461 | 800,000,000.000000 STONKCAT | STONK CAT (STONKCAT) | |
| 0xa81b7540…324cbc | Transfer | 34,598,192 | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0x8abc…5e8e | OUT | 0x1f5e…d55b | 200,000,000.000000 STONKCAT | STONK CAT (STONKCAT) | |
| 0xa81b7540…324cbc | Transfer | 34,598,192 | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0x0000…0000 | IN | 0x8abc…5e8e | 1,000,000,000.000000 STONKCAT | STONK CAT (STONKCAT) | |
| 0x387e4760…5efea3 | Transfer | 32,224,911 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x8abc…5e8e | OUT | 0x0000…0000 | 0.000000 POOLS | POOLS APPLE (POOLS) | |
| 0x387e4760…5efea3 | Transfer | 32,224,911 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x8abc…5e8e | OUT | 0x1746…a71e | 800,000,000.000000 POOLS | POOLS APPLE (POOLS) | |
| 0x387e4760…5efea3 | Transfer | 32,224,911 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x8abc…5e8e | OUT | 0x134c…4b0e | 200,000,000.000000 POOLS | POOLS APPLE (POOLS) | |
| 0x387e4760…5efea3 | Transfer | 32,224,911 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x0000…0000 | IN | 0x8abc…5e8e | 1,000,000,000.000000 POOLS | POOLS APPLE (POOLS) | |
| 0x797cda48…1d30bc | Transfer | 32,222,964 | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x8abc…5e8e | OUT | 0x0000…0000 | 0.000000 NASCAT | NASCAT NVIDIA (NASCAT) | |
| 0x797cda48…1d30bc | Transfer | 32,222,964 | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x8abc…5e8e | OUT | 0xbca2…dded | 800,000,000.000000 NASCAT | NASCAT NVIDIA (NASCAT) | |
| 0x797cda48…1d30bc | Transfer | 32,222,964 | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x8abc…5e8e | OUT | 0x6c42…799d | 200,000,000.000000 NASCAT | NASCAT NVIDIA (NASCAT) | |
| 0x797cda48…1d30bc | Transfer | 32,222,964 | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x0000…0000 | IN | 0x8abc…5e8e | 1,000,000,000.000000 NASCAT | NASCAT NVIDIA (NASCAT) | |
| 0xfaf6d320…6d0f3a | Transfer | 32,219,682 | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0x8abc…5e8e | OUT | 0x0000…0000 | 0.000000 LINKEDINU | LinkedInu (LINKEDINU) | |
| 0xfaf6d320…6d0f3a | Transfer | 32,219,682 | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0x8abc…5e8e | OUT | 0x5279…1f28 | 800,000,000.000000 LINKEDINU | LinkedInu (LINKEDINU) | |
| 0xfaf6d320…6d0f3a | Transfer | 32,219,682 | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0x8abc…5e8e | OUT | 0x66dc…4d21 | 200,000,000.000000 LINKEDINU | LinkedInu (LINKEDINU) | |
| 0xfaf6d320…6d0f3a | Transfer | 32,219,682 | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0x0000…0000 | IN | 0x8abc…5e8e | 1,000,000,000.000000 LINKEDINU | LinkedInu (LINKEDINU) | |
| 0x26c11fcc…10d14e | Transfer | 29,614,446 | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x8abc…5e8e | OUT | 0x0000…0000 | 0.000000 MOCHI | Mochi (MOCHI) | |
| 0x26c11fcc…10d14e | Transfer | 29,614,446 | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x8abc…5e8e | OUT | 0x3da6…bc0b | 800,000,000.000000 MOCHI | Mochi (MOCHI) | |
| 0x26c11fcc…10d14e | Transfer | 29,614,446 | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x8abc…5e8e | OUT | 0x040d…84fe | 200,000,000.000000 MOCHI | Mochi (MOCHI) | |
| 0x26c11fcc…10d14e | Transfer | 29,614,446 | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x0000…0000 | IN | 0x8abc…5e8e | 1,000,000,000.000000 MOCHI | Mochi (MOCHI) | |
| 0x49e48d1c…80c6e3 | Transfer | 29,197,568 | 11 days agoThu, 06 Aug 2026 08:15:59 UTC | 0x8abc…5e8e | OUT | 0x0000…0000 | 0.000000 TOMATO | Tomato (TOMATO) |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 34,599,534 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x1f6cb4…4858b3 | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x8a25…7ddc | 0 ETH |
| 34,599,534 | 5 days agoWed, 12 Aug 2026 14:27:00 UTC | 0x1f6cb4…4858b3 | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0x0a08…9ad2 | 0 ETH |
| 34,598,192 | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0xa81b75…324cbc | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x1f5e…d55b | 0 ETH |
| 34,598,192 | 5 days agoWed, 12 Aug 2026 14:24:45 UTC | 0xa81b75…324cbc | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0x0605…7452 | 0 ETH |
| 32,224,911 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x387e47…5efea3 | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x134c…4b0e | 0 ETH |
| 32,224,911 | 8 days agoSun, 09 Aug 2026 20:30:48 UTC | 0x387e47…5efea3 | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0x28c9…6581 | 0 ETH |
| 32,222,964 | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x797cda…1d30bc | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x6c42…799d | 0 ETH |
| 32,222,964 | 8 days agoSun, 09 Aug 2026 20:27:32 UTC | 0x797cda…1d30bc | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0x600d…2c6b | 0 ETH |
| 32,219,682 | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0xfaf6d3…6d0f3a | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x66dc…4d21 | 0 ETH |
| 32,219,682 | 8 days agoSun, 09 Aug 2026 20:22:04 UTC | 0xfaf6d3…6d0f3a | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0xb9ba…498f | 0 ETH |
| 29,614,446 | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x26c11f…10d14e | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x040d…84fe | 0 ETH |
| 29,614,446 | 11 days agoThu, 06 Aug 2026 19:52:11 UTC | 0x26c11f…10d14e | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0x00ca…dcf1 | 0 ETH |
| 29,197,568 | 11 days agoThu, 06 Aug 2026 08:15:59 UTC | 0x49e48d…80c6e3 | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x0bf2…7e12 | 0 ETH |
| 29,197,568 | 11 days agoThu, 06 Aug 2026 08:15:59 UTC | 0x49e48d…80c6e3 | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0x9b14…828e | 0 ETH |
| 29,197,429 | 11 days agoThu, 06 Aug 2026 08:15:45 UTC | 0x894930…1e96f6 | CREATE | createCoin | 0x8abc…5e8e | OUT | 0x38f1…6181 | 0 ETH |
| 29,197,429 | 11 days agoThu, 06 Aug 2026 08:15:45 UTC | 0x894930…1e96f6 | CREATE2 | createCoin | 0x8abc…5e8e | OUT | 0x5575…c814 | 0 ETH |