Source Code
Overview
ETH Balance
0.000868 ETH
Eth Value
$1.77 (@ $2,039.64/ETH)Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60e06040 | 23387191 | 162 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x660641E2...46c86e691 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
BoredStrategyHook
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-09-18
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
/* ---------- Strategy fee intake interface (unchanged) ---------- */
interface IBoredStrategy {
function addFees() external payable;
}
/* ---------- Minimal ETH transfer helper ---------- */
library SafeTransferLib {
function forceSafeTransferETH(address to, uint256 amount) internal {
(bool success, ) = to.call{value: amount, gas: 30_000}("");
require(success, "ETH_TRANSFER_FAILED");
}
}
/* ---------- Minimal v4 types (same as your earlier hook) ---------- */
type PoolId is bytes32;
struct PoolKey {
address currency0;
address currency1;
uint24 fee;
int24 tickSpacing;
IHooks hooks;
}
struct SwapParams {
bool zeroForOne;
int256 amountSpecified;
uint160 sqrtPriceLimitX96;
}
type BalanceDelta is int256;
type BeforeSwapDelta is int256;
library BeforeSwapDeltaLibrary {
BeforeSwapDelta public constant ZERO_DELTA = BeforeSwapDelta.wrap(0);
}
interface IHooks {
function beforeSwap(
address sender, PoolKey calldata key, SwapParams calldata params, bytes calldata hookData
) external returns (bytes4, BeforeSwapDelta, uint24);
function afterSwap(
address sender, PoolKey calldata key, SwapParams calldata params, BalanceDelta delta, bytes calldata hookData
) external returns (bytes4, int128);
}
interface IPoolManager {}
abstract contract BaseHook is IHooks {
IPoolManager public immutable poolManager;
constructor(IPoolManager _poolManager) { poolManager = _poolManager; }
modifier onlyPoolManager() {
require(msg.sender == address(poolManager), "InvalidCaller");
_;
}
}
library PoolIdLibrary {
function toId(PoolKey memory poolKey) internal pure returns (PoolId poolId) {
assembly ("memory-safe") {
// keccak256 over 0xa0 bytes: (currency0, currency1, fee, tickSpacing, hooks)
poolId := keccak256(poolKey, 0xa0)
}
}
}
library Hooks {
struct Permissions {
bool beforeSwap;
bool afterSwap;
bool beforeInitialize;
bool afterInitialize;
bool beforeAddLiquidity;
bool afterAddLiquidity;
bool beforeRemoveLiquidity;
bool afterRemoveLiquidity;
bool beforeDonate;
bool afterDonate;
bool beforeSwapReturnsDelta;
bool afterSwapReturnsDelta;
bool afterAddLiquidityReturnsDelta;
bool afterRemoveLiquidityReturnsDelta;
}
}
/* ================================================================
* BoredStrategyHook (adjustable Team/Spotlight)
* Strategy share fixed at 80% by invariant
* ================================================================ */
contract BoredStrategyHook is BaseHook {
using PoolIdLibrary for PoolKey;
/* --- Monitoring (optional) --- */
mapping(PoolId => uint256) public beforeSwapCount;
mapping(PoolId => uint256) public afterSwapCount;
/* --- Uniswap v4 dynamic swap fee (1,000,000-denom) --- */
uint24 public constant swapFeeBips = 100_000; // 10%
/* --- Allocation denominator (BPS) & fixed strategy share --- */
uint16 private constant ALLOC_DENOM_BPS = 10_000; // 100%
uint16 private constant STRATEGY_FIXED_BPS = 8_000; // 80% (unchangeable)
/* --- Mutable allocation for Team & Spotlight (must sum to 2,000) --- */
uint16 public teamAllocBps; // e.g., 1_000 = 10%
uint16 public spotlightAllocBps; // e.g., 1_000 = 10%
/* --- Wallets & roles --- */
address public teamWallet; // Team destination
address public spotlightWallet; // Spotlight destination
address public immutable boredStrategy; // Strategy contract (receives addFees)
address public immutable owner; // <- FIX: set explicitly via constructor arg
/* --- Events --- */
event TeamWalletUpdated(address indexed oldWallet, address indexed newWallet);
event SpotlightWalletUpdated(address indexed oldWallet, address indexed newWallet);
event AllocationBpsUpdated(uint16 oldTeamBps, uint16 oldSpotBps, uint16 newTeamBps, uint16 newSpotBps);
/* --- Errors --- */
error OnlyOwner();
error BadAllocationSum(); // team+spotlight must be 2,000 to keep Strategy at 8,000
/* --- Modifiers --- */
modifier onlyOwner() {
if (msg.sender != owner) revert OnlyOwner();
_;
}
/* ---------------- Constructor (5 args; explicit owner) ----------------
Args (in order):
- IPoolManager _poolManager
- address _boredStrategy
- address _teamWallet
- address _spotlightWallet
- address _owner // <- FIX: explicit owner
----------------------------------------------------------------------*/
constructor(
IPoolManager _poolManager,
address _boredStrategy,
address _teamWallet,
address _spotlightWallet,
address _owner
) BaseHook(_poolManager) {
owner = _owner; // <- FIX
boredStrategy = _boredStrategy;
teamWallet = _teamWallet;
spotlightWallet = _spotlightWallet;
// default: 10% / 10% / 80%
teamAllocBps = 1_000;
spotlightAllocBps = 1_000;
}
/* ---------------- Admin ---------------- */
function setTeamWallet(address _teamWallet) external onlyOwner {
emit TeamWalletUpdated(teamWallet, _teamWallet);
teamWallet = _teamWallet;
}
function setSpotlightWallet(address _spotlightWallet) external onlyOwner {
emit SpotlightWalletUpdated(spotlightWallet, _spotlightWallet);
spotlightWallet = _spotlightWallet;
}
/// @notice Adjust Team/Spotlight allocations. Strategy stays fixed at 80%.
/// @dev Enforces team + spotlight == 2,000 bps so Strategy remains 8,000 bps.
function setAllocationBps(uint16 _teamBps, uint16 _spotBps) external onlyOwner {
if (uint256(_teamBps) + uint256(_spotBps) != (ALLOC_DENOM_BPS - STRATEGY_FIXED_BPS)) {
revert BadAllocationSum();
}
emit AllocationBpsUpdated(teamAllocBps, spotlightAllocBps, _teamBps, _spotBps);
teamAllocBps = _teamBps;
spotlightAllocBps = _spotBps;
}
/* ---------------- Hook permissions ---------------- */
function getHookPermissions() public pure returns (Hooks.Permissions memory) {
return Hooks.Permissions({
beforeSwap: true,
afterSwap: true,
beforeInitialize: false,
afterInitialize: false,
beforeAddLiquidity: false,
afterAddLiquidity: false,
beforeRemoveLiquidity: false,
afterRemoveLiquidity: false,
beforeDonate: false,
afterDonate: false,
beforeSwapReturnsDelta: false,
afterSwapReturnsDelta: false,
afterAddLiquidityReturnsDelta: false,
afterRemoveLiquidityReturnsDelta: false
});
}
/* --------- Signals the strategy may ping (must not revert) -------- */
function feeCooldown() external { /* no-op */ }
function apesAreAccumulating() external { /* no-op */ }
/* ---------------- Core hooks ---------------- */
function beforeSwap(
address,
PoolKey calldata key,
SwapParams calldata,
bytes calldata
) external override onlyPoolManager returns (bytes4, BeforeSwapDelta, uint24) {
beforeSwapCount[key.toId()]++;
return (IHooks.beforeSwap.selector, BeforeSwapDeltaLibrary.ZERO_DELTA, swapFeeBips);
}
function afterSwap(
address,
PoolKey calldata key,
SwapParams calldata,
BalanceDelta,
bytes calldata
) external override onlyPoolManager returns (bytes4, int128) {
afterSwapCount[key.toId()]++;
uint256 bal = address(this).balance;
if (bal > 0) {
// Base cuts from current BPS settings
uint256 teamCutBase = (bal * teamAllocBps) / ALLOC_DENOM_BPS;
uint256 spotCutBase = (bal * spotlightAllocBps) / ALLOC_DENOM_BPS;
// Strategy gets the remainder (ensures 100% distributed, absorbs rounding)
uint256 stratCut = bal - teamCutBase - spotCutBase;
// If either wallet is unset, fold that share into Strategy
if (teamWallet == address(0)) {
stratCut += teamCutBase;
teamCutBase = 0;
}
if (spotlightWallet == address(0)) {
stratCut += spotCutBase;
spotCutBase = 0;
}
// Payouts
if (teamCutBase > 0) {
SafeTransferLib.forceSafeTransferETH(teamWallet, teamCutBase);
}
if (spotlightWallet != address(0) && spotCutBase > 0) {
SafeTransferLib.forceSafeTransferETH(spotlightWallet, spotCutBase);
}
if (stratCut > 0) {
IBoredStrategy(boredStrategy).addFees{value: stratCut}();
}
}
return (IHooks.afterSwap.selector, 0);
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IPoolManager","name":"_poolManager","type":"address"},{"internalType":"address","name":"_boredStrategy","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"},{"internalType":"address","name":"_spotlightWallet","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BadAllocationSum","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldTeamBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"oldSpotBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newTeamBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newSpotBps","type":"uint16"}],"name":"AllocationBpsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"},{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"SpotlightWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"},{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"TeamWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct SwapParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"","type":"bytes32"}],"name":"afterSwapCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"apesAreAccumulating","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct SwapParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"","type":"bytes32"}],"name":"beforeSwapCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boredStrategy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getHookPermissions","outputs":[{"components":[{"internalType":"bool","name":"beforeSwap","type":"bool"},{"internalType":"bool","name":"afterSwap","type":"bool"},{"internalType":"bool","name":"beforeInitialize","type":"bool"},{"internalType":"bool","name":"afterInitialize","type":"bool"},{"internalType":"bool","name":"beforeAddLiquidity","type":"bool"},{"internalType":"bool","name":"afterAddLiquidity","type":"bool"},{"internalType":"bool","name":"beforeRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"beforeDonate","type":"bool"},{"internalType":"bool","name":"afterDonate","type":"bool"},{"internalType":"bool","name":"beforeSwapReturnsDelta","type":"bool"},{"internalType":"bool","name":"afterSwapReturnsDelta","type":"bool"},{"internalType":"bool","name":"afterAddLiquidityReturnsDelta","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidityReturnsDelta","type":"bool"}],"internalType":"struct Hooks.Permissions","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_teamBps","type":"uint16"},{"internalType":"uint16","name":"_spotBps","type":"uint16"}],"name":"setAllocationBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spotlightWallet","type":"address"}],"name":"setSpotlightWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"spotlightAllocBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"spotlightWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeBips","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAllocBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
0x60e060405234801561000f575f80fd5b506040516111fd3803806111fd83398101604081905261002e916100b8565b6001600160a01b03948516608052841660c05291831660a05260028054600380546001600160a01b031916948616949094179093556103e863ffff0001600160c01b0319909316640100000000929094169190910261ffff1916929092171763ffff000019166303e80000179055610129565b6001600160a01b03811681146100b5575f80fd5b50565b5f805f805f60a086880312156100cc575f80fd5b85516100d7816100a1565b60208701519095506100e8816100a1565b60408701519094506100f9816100a1565b606087015190935061010a816100a1565b608087015190925061011b816100a1565b809150509295509295909350565b60805160a05160c05161108061017d5f395f81816102b501528181610539015281816105f501526107a201525f81816103610152610a7301525f81816104ec015281816106c401526108c901526110805ff3fe608060405260043610610126575f3560e01c80639eed191d116100a1578063c7dc13be11610071578063dc4c90d311610057578063dc4c90d3146104db578063e0fce8e814610171578063f1092f411461050e575f80fd5b8063c7dc13be14610483578063dacdbe77146104b0575f80fd5b80639eed191d146102d7578063b47b2fb1146102f6578063bb3162c014610350578063c4e833ce14610383575f80fd5b8063575e24b4116100f65780635b090886116100dc5780635b090886146102415780635c338d321461026b5780638da5cb5b146102a4575f80fd5b8063575e24b4146101b8578063599270441461021a575f80fd5b80630b982232146101315780631525ff7d1461015257806324fd7a6d1461017157806330ef9c1d1461017c575f80fd5b3661012d57005b5f80fd5b34801561013c575f80fd5b5061015061014b366004610be6565b61052e565b005b34801561015d575f80fd5b5061015061016c366004610be6565b6105ea565b348015610150575f80fd5b348015610187575f80fd5b5060035461019b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c3575f80fd5b506101d76101d2366004610c73565b6106b6565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff16908201526060016101af565b348015610225575f80fd5b5060025461019b9064010000000090046001600160a01b031681565b34801561024c575f80fd5b50610257620186a081565b60405162ffffff90911681526020016101af565b348015610276575f80fd5b50610296610285366004610cea565b5f6020819052908152604090205481565b6040519081526020016101af565b3480156102af575f80fd5b5061019b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102e2575f80fd5b506101506102f1366004610d12565b610797565b348015610301575f80fd5b50610315610310366004610d43565b6108bc565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b6020830152016101af565b34801561035b575f80fd5b5061019b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561038e575f80fd5b50610476604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c081018252600180825260208201525f918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915290565b6040516101af9190610dc4565b34801561048e575f80fd5b5060025461049d9061ffff1681565b60405161ffff90911681526020016101af565b3480156104bb575f80fd5b506102966104ca366004610cea565b60016020525f908152604090205481565b3480156104e6575f80fd5b5061019b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610519575f80fd5b5060025461049d9062010000900461ffff1681565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461057757604051635fc483c560e01b815260040160405180910390fd5b6003546040516001600160a01b038084169216907ff7df2f3bb10d0d6fc0e204dd3254c760c53c844ac652bff9644fccb177af6121905f90a3600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461063357604051635fc483c560e01b815260040160405180910390fd5b6002546040516001600160a01b0380841692640100000000900416907fd9a2a08302ed3220f4e646ff99d6780d87e27baddf1af05679dc930ce8113095905f90a3600280546001600160a01b03909216640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff909216919091179055565b5f8080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b221b0b63632b960991b60448201526064015b60405180910390fd5b5f8061074161073a368b90038b018b610f08565b60a0902090565b81526020019081526020015f205f81548092919061075e90610fb6565b909155507f575e24b400000000000000000000000000000000000000000000000000000000995f9950620186a098509650505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107e057604051635fc483c560e01b815260040160405180910390fd5b6107ee611f40612710610fce565b61ffff168161ffff168361ffff166108069190610fee565b1461083d576040517f96eb3ed800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546040805161ffff80841682526201000090930483166020820152848316818301529183166060830152517f7955efbd2a3e0dbea152eabc536a03e3cab1da1cebb46480c5526998a0251f5d9181900360800190a16002805461ffff928316620100000263ffffffff199091169290931691909117919091179055565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109265760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b221b0b63632b960991b604482015260640161071d565b60015f61093b61073a368b90038b018b610f08565b81526020019081526020015f205f81548092919061095890610fb6565b909155504790508015610ae6576002545f906127109061097c9061ffff1684611001565b6109869190611018565b6002549091505f90612710906109a69062010000900461ffff1685611001565b6109b09190611018565b90505f816109be8486611037565b6109c89190611037565b60025490915064010000000090046001600160a01b03166109f3576109ed8382610fee565b90505f92505b6003546001600160a01b0316610a1357610a0d8282610fee565b90505f91505b8215610a3757600254610a379064010000000090046001600160a01b031684610b16565b6003546001600160a01b031615801590610a5057505f82115b15610a6b57600354610a6b906001600160a01b031683610b16565b8015610ae2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166319d6150d826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aca575f80fd5b505af1158015610adc573d5f803e3d5ffd5b50505050505b5050505b507fb47b2fb100000000000000000000000000000000000000000000000000000000985f98509650505050505050565b5f826001600160a01b031682617530906040515f60405180830381858888f193505050503d805f8114610b64576040519150601f19603f3d011682016040523d82523d5f602084013e610b69565b606091505b5050905080610bba5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c454400000000000000000000000000604482015260640161071d565b505050565b6001600160a01b0381168114610bd3575f80fd5b50565b8035610be181610bbf565b919050565b5f60208284031215610bf6575f80fd5b8135610c0181610bbf565b9392505050565b5f60a08284031215610c18575f80fd5b50919050565b5f60608284031215610c18575f80fd5b5f8083601f840112610c3e575f80fd5b50813567ffffffffffffffff811115610c55575f80fd5b602083019150836020828501011115610c6c575f80fd5b9250929050565b5f805f805f6101408688031215610c88575f80fd5b8535610c9381610bbf565b9450610ca28760208801610c08565b9350610cb18760c08801610c1e565b925061012086013567ffffffffffffffff811115610ccd575f80fd5b610cd988828901610c2e565b969995985093965092949392505050565b5f60208284031215610cfa575f80fd5b5035919050565b803561ffff81168114610be1575f80fd5b5f8060408385031215610d23575f80fd5b610d2c83610d01565b9150610d3a60208401610d01565b90509250929050565b5f805f805f806101608789031215610d59575f80fd5b8635610d6481610bbf565b9550610d738860208901610c08565b9450610d828860c08901610c1e565b9350610120870135925061014087013567ffffffffffffffff811115610da6575f80fd5b610db289828a01610c2e565b979a9699509497509295939492505050565b8151151581526101c081016020830151610de2602084018215159052565b506040830151610df6604084018215159052565b506060830151610e0a606084018215159052565b506080830151610e1e608084018215159052565b5060a0830151610e3260a084018215159052565b5060c0830151610e4660c084018215159052565b5060e0830151610e5a60e084018215159052565b50610100830151610e7061010084018215159052565b50610120830151610e8661012084018215159052565b50610140830151610e9c61014084018215159052565b50610160830151610eb261016084018215159052565b50610180830151610ec861018084018215159052565b506101a0830151610ede6101a084018215159052565b5092915050565b803562ffffff81168114610be1575f80fd5b8035600281900b8114610be1575f80fd5b5f60a0828403128015610f19575f80fd5b5060405160a0810167ffffffffffffffff81118282101715610f4957634e487b7160e01b5f52604160045260245ffd5b604052610f5583610bd6565b8152610f6360208401610bd6565b6020820152610f7460408401610ee5565b6040820152610f8560608401610ef7565b6060820152610f9660808401610bd6565b60808201529392505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610fc757610fc7610fa2565b5060010190565b61ffff8281168282160390811115610fe857610fe8610fa2565b92915050565b80820180821115610fe857610fe8610fa2565b8082028115828204841417610fe857610fe8610fa2565b5f8261103257634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610fe857610fe8610fa256fea26469706673582212201ea146124706c70f4e49e2972f037a8a5e6e30aabccc90b5823661efcd562ad864736f6c634300081a0033000000000000000000000000000000000004444c5dc75cb358380d2e3de08a900000000000000000000000000b291dd62c58dcaa04358057da30d2bc067d679d000000000000000000000000cf097b9f91a6051e7f9f01cb9a571f42041ba08f000000000000000000000000ab219d39fc115db5450ad6ed469c11d13e2cf819000000000000000000000000cf097b9f91a6051e7f9f01cb9a571f42041ba08f
Deployed Bytecode
0x608060405260043610610126575f3560e01c80639eed191d116100a1578063c7dc13be11610071578063dc4c90d311610057578063dc4c90d3146104db578063e0fce8e814610171578063f1092f411461050e575f80fd5b8063c7dc13be14610483578063dacdbe77146104b0575f80fd5b80639eed191d146102d7578063b47b2fb1146102f6578063bb3162c014610350578063c4e833ce14610383575f80fd5b8063575e24b4116100f65780635b090886116100dc5780635b090886146102415780635c338d321461026b5780638da5cb5b146102a4575f80fd5b8063575e24b4146101b8578063599270441461021a575f80fd5b80630b982232146101315780631525ff7d1461015257806324fd7a6d1461017157806330ef9c1d1461017c575f80fd5b3661012d57005b5f80fd5b34801561013c575f80fd5b5061015061014b366004610be6565b61052e565b005b34801561015d575f80fd5b5061015061016c366004610be6565b6105ea565b348015610150575f80fd5b348015610187575f80fd5b5060035461019b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c3575f80fd5b506101d76101d2366004610c73565b6106b6565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff16908201526060016101af565b348015610225575f80fd5b5060025461019b9064010000000090046001600160a01b031681565b34801561024c575f80fd5b50610257620186a081565b60405162ffffff90911681526020016101af565b348015610276575f80fd5b50610296610285366004610cea565b5f6020819052908152604090205481565b6040519081526020016101af565b3480156102af575f80fd5b5061019b7f000000000000000000000000cf097b9f91a6051e7f9f01cb9a571f42041ba08f81565b3480156102e2575f80fd5b506101506102f1366004610d12565b610797565b348015610301575f80fd5b50610315610310366004610d43565b6108bc565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b6020830152016101af565b34801561035b575f80fd5b5061019b7f0000000000000000000000000b291dd62c58dcaa04358057da30d2bc067d679d81565b34801561038e575f80fd5b50610476604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c081018252600180825260208201525f918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915290565b6040516101af9190610dc4565b34801561048e575f80fd5b5060025461049d9061ffff1681565b60405161ffff90911681526020016101af565b3480156104bb575f80fd5b506102966104ca366004610cea565b60016020525f908152604090205481565b3480156104e6575f80fd5b5061019b7f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9081565b348015610519575f80fd5b5060025461049d9062010000900461ffff1681565b336001600160a01b037f000000000000000000000000cf097b9f91a6051e7f9f01cb9a571f42041ba08f161461057757604051635fc483c560e01b815260040160405180910390fd5b6003546040516001600160a01b038084169216907ff7df2f3bb10d0d6fc0e204dd3254c760c53c844ac652bff9644fccb177af6121905f90a3600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b336001600160a01b037f000000000000000000000000cf097b9f91a6051e7f9f01cb9a571f42041ba08f161461063357604051635fc483c560e01b815260040160405180910390fd5b6002546040516001600160a01b0380841692640100000000900416907fd9a2a08302ed3220f4e646ff99d6780d87e27baddf1af05679dc930ce8113095905f90a3600280546001600160a01b03909216640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff909216919091179055565b5f8080336001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9016146107265760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b221b0b63632b960991b60448201526064015b60405180910390fd5b5f8061074161073a368b90038b018b610f08565b60a0902090565b81526020019081526020015f205f81548092919061075e90610fb6565b909155507f575e24b400000000000000000000000000000000000000000000000000000000995f9950620186a098509650505050505050565b336001600160a01b037f000000000000000000000000cf097b9f91a6051e7f9f01cb9a571f42041ba08f16146107e057604051635fc483c560e01b815260040160405180910390fd5b6107ee611f40612710610fce565b61ffff168161ffff168361ffff166108069190610fee565b1461083d576040517f96eb3ed800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546040805161ffff80841682526201000090930483166020820152848316818301529183166060830152517f7955efbd2a3e0dbea152eabc536a03e3cab1da1cebb46480c5526998a0251f5d9181900360800190a16002805461ffff928316620100000263ffffffff199091169290931691909117919091179055565b5f80336001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9016146109265760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b221b0b63632b960991b604482015260640161071d565b60015f61093b61073a368b90038b018b610f08565b81526020019081526020015f205f81548092919061095890610fb6565b909155504790508015610ae6576002545f906127109061097c9061ffff1684611001565b6109869190611018565b6002549091505f90612710906109a69062010000900461ffff1685611001565b6109b09190611018565b90505f816109be8486611037565b6109c89190611037565b60025490915064010000000090046001600160a01b03166109f3576109ed8382610fee565b90505f92505b6003546001600160a01b0316610a1357610a0d8282610fee565b90505f91505b8215610a3757600254610a379064010000000090046001600160a01b031684610b16565b6003546001600160a01b031615801590610a5057505f82115b15610a6b57600354610a6b906001600160a01b031683610b16565b8015610ae2577f0000000000000000000000000b291dd62c58dcaa04358057da30d2bc067d679d6001600160a01b03166319d6150d826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aca575f80fd5b505af1158015610adc573d5f803e3d5ffd5b50505050505b5050505b507fb47b2fb100000000000000000000000000000000000000000000000000000000985f98509650505050505050565b5f826001600160a01b031682617530906040515f60405180830381858888f193505050503d805f8114610b64576040519150601f19603f3d011682016040523d82523d5f602084013e610b69565b606091505b5050905080610bba5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c454400000000000000000000000000604482015260640161071d565b505050565b6001600160a01b0381168114610bd3575f80fd5b50565b8035610be181610bbf565b919050565b5f60208284031215610bf6575f80fd5b8135610c0181610bbf565b9392505050565b5f60a08284031215610c18575f80fd5b50919050565b5f60608284031215610c18575f80fd5b5f8083601f840112610c3e575f80fd5b50813567ffffffffffffffff811115610c55575f80fd5b602083019150836020828501011115610c6c575f80fd5b9250929050565b5f805f805f6101408688031215610c88575f80fd5b8535610c9381610bbf565b9450610ca28760208801610c08565b9350610cb18760c08801610c1e565b925061012086013567ffffffffffffffff811115610ccd575f80fd5b610cd988828901610c2e565b969995985093965092949392505050565b5f60208284031215610cfa575f80fd5b5035919050565b803561ffff81168114610be1575f80fd5b5f8060408385031215610d23575f80fd5b610d2c83610d01565b9150610d3a60208401610d01565b90509250929050565b5f805f805f806101608789031215610d59575f80fd5b8635610d6481610bbf565b9550610d738860208901610c08565b9450610d828860c08901610c1e565b9350610120870135925061014087013567ffffffffffffffff811115610da6575f80fd5b610db289828a01610c2e565b979a9699509497509295939492505050565b8151151581526101c081016020830151610de2602084018215159052565b506040830151610df6604084018215159052565b506060830151610e0a606084018215159052565b506080830151610e1e608084018215159052565b5060a0830151610e3260a084018215159052565b5060c0830151610e4660c084018215159052565b5060e0830151610e5a60e084018215159052565b50610100830151610e7061010084018215159052565b50610120830151610e8661012084018215159052565b50610140830151610e9c61014084018215159052565b50610160830151610eb261016084018215159052565b50610180830151610ec861018084018215159052565b506101a0830151610ede6101a084018215159052565b5092915050565b803562ffffff81168114610be1575f80fd5b8035600281900b8114610be1575f80fd5b5f60a0828403128015610f19575f80fd5b5060405160a0810167ffffffffffffffff81118282101715610f4957634e487b7160e01b5f52604160045260245ffd5b604052610f5583610bd6565b8152610f6360208401610bd6565b6020820152610f7460408401610ee5565b6040820152610f8560608401610ef7565b6060820152610f9660808401610bd6565b60808201529392505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610fc757610fc7610fa2565b5060010190565b61ffff8281168282160390811115610fe857610fe8610fa2565b92915050565b80820180821115610fe857610fe8610fa2565b8082028115828204841417610fe857610fe8610fa2565b5f8261103257634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610fe857610fe8610fa256fea26469706673582212201ea146124706c70f4e49e2972f037a8a5e6e30aabccc90b5823661efcd562ad864736f6c634300081a0033
Deployed Bytecode Sourcemap
2847:6563:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5669:199;;;;;;;;;;-1:-1:-1;5669:199:0;;;;;:::i;:::-;;:::i;:::-;;5497:164;;;;;;;;;;-1:-1:-1;5497:164:0;;;;;:::i;:::-;;:::i;7285:47::-;;;;;;;;;3728:30;;;;;;;;;;-1:-1:-1;3728:30:0;;;;-1:-1:-1;;;;;3728:30:0;;;;;;-1:-1:-1;;;;;728:55:1;;;710:74;;698:2;683:18;3728:30:0;;;;;;;;7457:349;;;;;;;;;;-1:-1:-1;7457:349:0;;;;;:::i;:::-;;:::i;:::-;;;;2538:66:1;2526:79;;;2508:98;;2637:2;2622:18;;2615:34;;;;2697:8;2685:21;2665:18;;;2658:49;2496:2;2481:18;7457:349:0;2277:436:1;3663:25:0;;;;;;;;;;-1:-1:-1;3663:25:0;;;;;;;-1:-1:-1;;;;;3663:25:0;;;3152:44;;;;;;;;;;;;3189:7;3152:44;;;;;2892:8:1;2880:21;;;2862:40;;2850:2;2835:18;3152:44:0;2718:190:1;2974:49:0;;;;;;;;;;-1:-1:-1;2974:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3269:25:1;;;3257:2;3242:18;2974:49:0;3123:177:1;3883:30:0;;;;;;;;;;;;;;;6041:396;;;;;;;;;;-1:-1:-1;6041:396:0;;;;;:::i;:::-;;:::i;7814:1556::-;;;;;;;;;;-1:-1:-1;7814:1556:0;;;;;:::i;:::-;;:::i;:::-;;;;4836:66:1;4824:79;;;4806:98;;4951:2;4940:22;;;;4935:2;4920:18;;4913:50;4779:18;7814:1556:0;4636:333:1;3798:38:0;;;;;;;;;;;;;;;6507:692;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6602:589:0;;;;;;;;6647:4;6602:589;;;;;;;-1:-1:-1;6602:589:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6507:692;;;;;;;;:::i;3506:26::-;;;;;;;;;;-1:-1:-1;3506:26:0;;;;;;;;;;;7046:6:1;7034:19;;;7016:38;;7004:2;6989:18;3506:26:0;6872:188:1;3030:48:0;;;;;;;;;;-1:-1:-1;3030:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;1488:41;;;;;;;;;;;;;;;3566:31;;;;;;;;;;-1:-1:-1;3566:31:0;;;;;;;;;;;5669:199;4492:10;-1:-1:-1;;;;;4506:5:0;4492:19;;4488:43;;4520:11;;-1:-1:-1;;;4520:11:0;;;;;;;;;;;4488:43;5781:15:::1;::::0;5758:57:::1;::::0;-1:-1:-1;;;;;5758:57:0;;::::1;::::0;5781:15:::1;::::0;5758:57:::1;::::0;5781:15:::1;::::0;5758:57:::1;5826:15;:34:::0;;;::::1;-1:-1:-1::0;;;;;5826:34:0;;;::::1;::::0;;;::::1;::::0;;5669:199::o;5497:164::-;4492:10;-1:-1:-1;;;;;4506:5:0;4492:19;;4488:43;;4520:11;;-1:-1:-1;;;4520:11:0;;;;;;;;;;;4488:43;5594:10:::1;::::0;5576:42:::1;::::0;-1:-1:-1;;;;;5576:42:0;;::::1;::::0;5594:10;;::::1;;::::0;5576:42:::1;::::0;;;::::1;5629:10;:24:::0;;-1:-1:-1;;;;;5629:24:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;5497:164::o;7457:349::-;7631:6;;;1658:10;-1:-1:-1;;;;;1680:11:0;1658:34;;1650:60;;;;-1:-1:-1;;;1650:60:0;;7518:2:1;1650:60:0;;;7500:21:1;7557:2;7537:18;;;7530:30;-1:-1:-1;;;7576:18:1;;;7569:43;7629:18;;1650:60:0;;;;;;;;;7675:15:::1;::::0;7691:10:::1;:8;;::::0;;::::1;::::0;::::1;:3:::0;:8:::1;:::i;:::-;2013:4:::0;1994:24;;;1766:270;7691:10:::1;7675:27;;;;;;;;;;;;:29;;;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;7723:26:0;;1008:1:::1;::::0;-1:-1:-1;3189:7:0::1;::::0;-1:-1:-1;7457:349:0;-1:-1:-1;;;;;;;7457:349:0:o;6041:396::-;4492:10;-1:-1:-1;;;;;4506:5:0;4492:19;;4488:43;;4520:11;;-1:-1:-1;;;4520:11:0;;;;;;;;;;;4488:43;6177:36:::1;3391:5;3325:6;6177:36;:::i;:::-;6135:79;;6163:8;6155:17;;6143:8;6135:17;;:37;;;;:::i;:::-;:79;6131:137;;6238:18;;;;;;;;;;;;;;6131:137;6304:12;::::0;6283:73:::1;::::0;;6304:12:::1;::::0;;::::1;9761:38:1::0;;6318:17:0;;;::::1;::::0;::::1;9830:2:1::0;9815:18;;9808:47;9891:19;;;9871:18;;;9864:47;9947:19;;;9942:2;9927:18;;9920:47;6283:73:0;::::1;::::0;;;;9748:3:1;6283:73:0;;::::1;6367:12;:23:::0;;::::1;6401:28:::0;;::::1;::::0;::::1;-1:-1:-1::0;;6401:28:0;;;6367:23;;;::::1;6401:28:::0;;;;;;;::::1;::::0;;6041:396::o;7814:1556::-;8010:6;;1658:10;-1:-1:-1;;;;;1680:11:0;1658:34;;1650:60;;;;-1:-1:-1;;;1650:60:0;;7518:2:1;1650:60:0;;;7500:21:1;7557:2;7537:18;;;7530:30;-1:-1:-1;;;7576:18:1;;;7569:43;7629:18;;1650:60:0;7316:337:1;1650:60:0;8037:14:::1;:26;8052:10;:8;;::::0;;::::1;::::0;::::1;:3:::0;:8:::1;:::i;:10::-;8037:26;;;;;;;;;;;;:28;;;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8092:21:0::1;::::0;-1:-1:-1;8128:7:0;;8124:1189:::1;;8233:12;::::0;8204:19:::1;::::0;3325:6:::1;::::0;8227:18:::1;::::0;8226:38:::1;8233:12;8227:3:::0;:18:::1;:::i;:::-;8226:38;;;;:::i;:::-;8308:17;::::0;8204:60;;-1:-1:-1;8279:19:0::1;::::0;3325:6:::1;::::0;8302:23:::1;::::0;8308:17;;::::1;8301:43;8308:17;8302:3:::0;:23:::1;:::i;:::-;8301:43;;;;:::i;:::-;8279:65:::0;-1:-1:-1;8450:16:0::1;8279:65:::0;8469:17:::1;8475:11:::0;8469:3;:17:::1;:::i;:::-;:31;;;;:::i;:::-;8594:10;::::0;8450:50;;-1:-1:-1;8594:10:0;;::::1;-1:-1:-1::0;;;;;8594:10:0::1;8590:122;;8639:23;8651:11:::0;8639:23;::::1;:::i;:::-;;;8695:1;8681:15;;8590:122;8730:15;::::0;-1:-1:-1;;;;;8730:15:0::1;8726:127;;8780:23;8792:11:::0;8780:23;::::1;:::i;:::-;;;8836:1;8822:15;;8726:127;8897:15:::0;;8893:117:::1;;8970:10;::::0;8933:61:::1;::::0;8970:10;;::::1;-1:-1:-1::0;;;;;8970:10:0::1;8982:11:::0;8933:36:::1;:61::i;:::-;9028:15;::::0;-1:-1:-1;;;;;9028:15:0::1;:29:::0;;::::1;::::0;:48:::1;;;9075:1;9061:11;:15;9028:48;9024:155;;;9134:15;::::0;9097:66:::1;::::0;-1:-1:-1;;;;;9134:15:0::1;9151:11:::0;9097:36:::1;:66::i;:::-;9197:12:::0;;9193:109:::1;;9245:13;-1:-1:-1::0;;;;;9230:37:0::1;;9275:8;9230:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;9193:109;8137:1176;;;8124:1189;-1:-1:-1::0;9333:25:0;;9360:1:::1;::::0;-1:-1:-1;7814:1556:0;-1:-1:-1;;;;;;;7814:1556:0:o;295:194::-;374:12;392:2;-1:-1:-1;;;;;392:7:0;407:6;420;392:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;373:58;;;450:7;442:39;;;;-1:-1:-1;;;442:39:0;;10975:2:1;442:39:0;;;10957:21:1;11014:2;10994:18;;;10987:30;11053:21;11033:18;;;11026:49;11092:18;;442:39:0;10773:343:1;442:39:0;362:127;295:194;;:::o;14:154:1:-;-1:-1:-1;;;;;93:5:1;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:134::-;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;:::-;548:5;312:247;-1:-1:-1;;;312:247:1:o;795:156::-;855:5;900:3;891:6;886:3;882:16;878:26;875:46;;;917:1;914;907:12;875:46;-1:-1:-1;939:6:1;795:156;-1:-1:-1;795:156:1:o;956:158::-;1019:5;1064:2;1055:6;1050:3;1046:16;1042:25;1039:45;;;1080:1;1077;1070:12;1119:347;1170:8;1180:6;1234:3;1227:4;1219:6;1215:17;1211:27;1201:55;;1252:1;1249;1242:12;1201:55;-1:-1:-1;1275:20:1;;1318:18;1307:30;;1304:50;;;1350:1;1347;1340:12;1304:50;1387:4;1379:6;1375:17;1363:29;;1439:3;1432:4;1423:6;1415;1411:19;1407:30;1404:39;1401:59;;;1456:1;1453;1446:12;1401:59;1119:347;;;;;:::o;1471:801::-;1621:6;1629;1637;1645;1653;1706:3;1694:9;1685:7;1681:23;1677:33;1674:53;;;1723:1;1720;1713:12;1674:53;1762:9;1749:23;1781:31;1806:5;1781:31;:::i;:::-;1831:5;-1:-1:-1;1855:63:1;1910:7;1905:2;1890:18;;1855:63;:::i;:::-;1845:73;;1937:67;1996:7;1990:3;1979:9;1975:19;1937:67;:::i;:::-;1927:77;;2055:3;2044:9;2040:19;2027:33;2083:18;2075:6;2072:30;2069:50;;;2115:1;2112;2105:12;2069:50;2154:58;2204:7;2195:6;2184:9;2180:22;2154:58;:::i;:::-;1471:801;;;;-1:-1:-1;1471:801:1;;-1:-1:-1;2231:8:1;;2128:84;1471:801;-1:-1:-1;;;1471:801:1:o;2913:205::-;2997:6;3050:2;3038:9;3029:7;3025:23;3021:32;3018:52;;;3066:1;3063;3056:12;3018:52;-1:-1:-1;3089:23:1;;2913:205;-1:-1:-1;2913:205:1:o;3305:159::-;3372:20;;3432:6;3421:18;;3411:29;;3401:57;;3454:1;3451;3444:12;3469:256;3535:6;3543;3596:2;3584:9;3575:7;3571:23;3567:32;3564:52;;;3612:1;3609;3602:12;3564:52;3635:28;3653:9;3635:28;:::i;:::-;3625:38;;3682:37;3715:2;3704:9;3700:18;3682:37;:::i;:::-;3672:47;;3469:256;;;;;:::o;3730:901::-;3920:6;3928;3936;3944;3952;3960;4013:3;4001:9;3992:7;3988:23;3984:33;3981:53;;;4030:1;4027;4020:12;3981:53;4069:9;4056:23;4088:31;4113:5;4088:31;:::i;:::-;4138:5;-1:-1:-1;4162:63:1;4217:7;4212:2;4197:18;;4162:63;:::i;:::-;4152:73;;4244:67;4303:7;4297:3;4286:9;4282:19;4244:67;:::i;:::-;4234:77;;4358:3;4347:9;4343:19;4330:33;4320:43;;4414:3;4403:9;4399:19;4386:33;4442:18;4434:6;4431:30;4428:50;;;4474:1;4471;4464:12;4428:50;4513:58;4563:7;4554:6;4543:9;4539:22;4513:58;:::i;:::-;3730:901;;;;-1:-1:-1;3730:901:1;;-1:-1:-1;3730:901:1;;4590:8;;3730:901;-1:-1:-1;;;3730:901:1:o;5070:1797::-;5289:13;;5044;5037:21;5025:34;;5260:3;5245:19;;5361:4;5353:6;5349:17;5343:24;5376:51;5421:4;5410:9;5406:20;5392:12;5044:13;5037:21;5025:34;;4974:91;5376:51;;5476:4;5468:6;5464:17;5458:24;5491:53;5538:4;5527:9;5523:20;5507:14;5044:13;5037:21;5025:34;;4974:91;5491:53;;5593:4;5585:6;5581:17;5575:24;5608:53;5655:4;5644:9;5640:20;5624:14;5044:13;5037:21;5025:34;;4974:91;5608:53;;5710:4;5702:6;5698:17;5692:24;5725:53;5772:4;5761:9;5757:20;5741:14;5044:13;5037:21;5025:34;;4974:91;5725:53;;5827:4;5819:6;5815:17;5809:24;5842:53;5889:4;5878:9;5874:20;5858:14;5044:13;5037:21;5025:34;;4974:91;5842:53;;5944:4;5936:6;5932:17;5926:24;5959:53;6006:4;5995:9;5991:20;5975:14;5044:13;5037:21;5025:34;;4974:91;5959:53;;6061:4;6053:6;6049:17;6043:24;6076:53;6123:4;6112:9;6108:20;6092:14;5044:13;5037:21;5025:34;;4974:91;6076:53;;6178:6;6170;6166:19;6160:26;6195:55;6242:6;6231:9;6227:22;6211:14;5044:13;5037:21;5025:34;;4974:91;6195:55;;6299:6;6291;6287:19;6281:26;6316:55;6363:6;6352:9;6348:22;6332:14;5044:13;5037:21;5025:34;;4974:91;6316:55;;6420:6;6412;6408:19;6402:26;6437:55;6484:6;6473:9;6469:22;6453:14;5044:13;5037:21;5025:34;;4974:91;6437:55;;6542:6;6534;6530:19;6524:26;6559:56;6607:6;6596:9;6592:22;6575:15;5044:13;5037:21;5025:34;;4974:91;6559:56;;6665:6;6657;6653:19;6647:26;6682:56;6730:6;6719:9;6715:22;6698:15;5044:13;5037:21;5025:34;;4974:91;6682:56;;6788:6;6780;6776:19;6770:26;6805:56;6853:6;6842:9;6838:22;6821:15;5044:13;5037:21;5025:34;;4974:91;6805:56;;5070:1797;;;;:::o;7658:161::-;7725:20;;7785:8;7774:20;;7764:31;;7754:59;;7809:1;7806;7799:12;7824:160;7890:20;;7950:1;7939:20;;;7929:31;;7919:59;;7974:1;7971;7964:12;7989:922;8071:6;8131:3;8119:9;8110:7;8106:23;8102:33;8147:2;8144:22;;;8162:1;8159;8152:12;8144:22;-1:-1:-1;8211:2:1;8205:9;8253:3;8241:16;;8287:18;8272:34;;8308:22;;;8269:62;8266:242;;;-1:-1:-1;;;8361:1:1;8354:88;8465:4;8462:1;8455:15;8493:4;8490:1;8483:15;8266:242;8524:2;8517:22;8563:29;8582:9;8563:29;:::i;:::-;8555:6;8548:45;8626:38;8660:2;8649:9;8645:18;8626:38;:::i;:::-;8621:2;8613:6;8609:15;8602:63;8698:37;8731:2;8720:9;8716:18;8698:37;:::i;:::-;8693:2;8685:6;8681:15;8674:62;8769:36;8801:2;8790:9;8786:18;8769:36;:::i;:::-;8764:2;8756:6;8752:15;8745:61;8840:39;8874:3;8863:9;8859:19;8840:39;:::i;:::-;8834:3;8822:16;;8815:65;8826:6;7989:922;-1:-1:-1;;;7989:922:1:o;8916:184::-;-1:-1:-1;;;8965:1:1;8958:88;9065:4;9062:1;9055:15;9089:4;9086:1;9079:15;9105:135;9144:3;9165:17;;;9162:43;;9185:18;;:::i;:::-;-1:-1:-1;9232:1:1;9221:13;;9105:135::o;9245:158::-;9338:6;9331:14;;;9315;;;9311:35;;9358:16;;9355:42;;;9377:18;;:::i;:::-;9245:158;;;;:::o;9408:125::-;9473:9;;;9494:10;;;9491:36;;;9507:18;;:::i;9978:168::-;10051:9;;;10082;;10099:15;;;10093:22;;10079:37;10069:71;;10120:18;;:::i;10151:274::-;10191:1;10217;10207:189;;-1:-1:-1;;;10249:1:1;10242:88;10353:4;10350:1;10343:15;10381:4;10378:1;10371:15;10207:189;-1:-1:-1;10410:9:1;;10151:274::o;10430:128::-;10497:9;;;10518:11;;;10515:37;;;10532:18;;:::i
Swarm Source
ipfs://1ea146124706c70f4e49e2972f037a8a5e6e30aabccc90b5823661efcd562ad8
Loading...
Loading
Loading...
Loading
Net Worth in USD
$1.77
Net Worth in ETH
0.000868
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,039.64 | 0.000868 | $1.77 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.