Overview
ETH Balance
ETH Value
$222.26 (@ $2,216.56/ETH)Latest 7 from a total of 7 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Execute Buyback | 43657481 | 21 days ago | IN | 0 ETH | 0.0000008 | ||||
| Set Pool Key | 43657466 | 21 days ago | IN | 0 ETH | 0.00000019 | ||||
| Execute Buyback | 43235898 | 31 days ago | IN | 0 ETH | 0.00000107 | ||||
| Execute Buyback | 42709138 | 43 days ago | IN | 0 ETH | 0.00000407 | ||||
| Set Pool Key | 42709129 | 43 days ago | IN | 0 ETH | 0.00000147 | ||||
| Execute Buyback | 42709073 | 43 days ago | IN | 0 ETH | 0.00000035 | ||||
| Set Min Buyback ... | 42709064 | 43 days ago | IN | 0 ETH | 0.00000035 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 44562561 | 16 hrs ago | 0.00128645 ETH | ||||
| 44554221 | 20 hrs ago | 0.00094526 ETH | ||||
| 44546691 | 24 hrs ago | 0.00118937 ETH | ||||
| 44540541 | 28 hrs ago | 0.00110153 ETH | ||||
| 44534271 | 31 hrs ago | 0.00061224 ETH | ||||
| 44534181 | 31 hrs ago | 0.00012148 ETH | ||||
| 44527071 | 35 hrs ago | 0.00029187 ETH | ||||
| 44526981 | 35 hrs ago | 0.00105177 ETH | ||||
| 44519391 | 40 hrs ago | 0.00006379 ETH | ||||
| 44519331 | 40 hrs ago | 0.00133166 ETH | ||||
| 44512611 | 43 hrs ago | 0.00032574 ETH | ||||
| 44512581 | 43 hrs ago | 0.00035441 ETH | ||||
| 44504571 | 2 days ago | 0.00063287 ETH | ||||
| 44504541 | 2 days ago | 0.00011101 ETH | ||||
| 44496470 | 2 days ago | 0.00044521 ETH | ||||
| 44496440 | 2 days ago | 0.00079459 ETH | ||||
| 44489504 | 2 days ago | 0.00051451 ETH | ||||
| 44489444 | 2 days ago | 0.00029097 ETH | ||||
| 44485310 | 2 days ago | 0.00395079 ETH | ||||
| 44483024 | 2 days ago | 0.00088613 ETH | ||||
| 44474374 | 2 days ago | 0.00128118 ETH | ||||
| 44469213 | 2 days ago | 0.00054983 ETH | ||||
| 44469094 | 2 days ago | 0.00045724 ETH | ||||
| 44460212 | 3 days ago | 0.00055615 ETH | ||||
| 44454601 | 3 days ago | 0.00057737 ETH |
Cross-Chain Transactions
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2026-02-27
*/
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.24;
// ============================================================================
// BuybackVault
// Accumulates ETH from sell fees and executes buyback-and-burn operations.
// No withdraw function - ETH can only exit via swap to PR then burn.
// ============================================================================
// Uniswap V4 Types
type Currency is address;
struct PoolKey {
Currency currency0;
Currency currency1;
uint24 fee;
int24 tickSpacing;
address hooks;
}
type BalanceDelta is int256;
interface IPoolManager {
struct SwapParams {
bool zeroForOne;
int256 amountSpecified;
uint160 sqrtPriceLimitX96;
}
function swap(PoolKey calldata key, SwapParams calldata params, bytes calldata hookData)
external returns (BalanceDelta);
function take(Currency currency, address to, uint256 amount) external;
function settle() external payable returns (uint256);
function sync(Currency currency) external;
function unlock(bytes calldata data) external returns (bytes memory);
}
interface IPrimerToken {
function burn(uint256 amount) external;
function balanceOf(address account) external view returns (uint256);
function totalSupply() external view returns (uint256);
}
interface IUnlockCallback {
function unlockCallback(bytes calldata data) external returns (bytes memory);
}
/// @title BuybackVault
/// @notice Accumulates ETH from sells and executes buyback-and-burn operations
/// @dev No withdraw function - ETH can only exit via swap to PR then burn
contract BuybackVault is IUnlockCallback {
// =========================================================================
// CONSTANTS (Base Mainnet)
// =========================================================================
IPoolManager constant POOL_MANAGER = IPoolManager(0x498581fF718922c3f8e6A244956aF099B2652b2b);
IPrimerToken constant PR_TOKEN = IPrimerToken(0x2357110F5F0c5344EEf75966500c75116A4aA153);
Currency constant ETH_CURRENCY = Currency.wrap(address(0));
// =========================================================================
// MUTABLE CONFIGURATION (owner only)
// =========================================================================
address public owner;
address public executor;
PoolKey public poolKey;
bool public prIsToken0;
uint256 public minBuybackAmount = 0.01 ether;
// =========================================================================
// STATE
// =========================================================================
uint256 public totalBuybacks;
uint256 public totalEthUsed;
uint256 public totalPrBurned;
// =========================================================================
// EVENTS
// =========================================================================
event BuybackExecuted(
address indexed caller,
uint256 ethUsed,
uint256 prBurned
);
event EthReceived(address indexed from, uint256 amount);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event ExecutorUpdated(address indexed previousExecutor, address indexed newExecutor);
event PoolKeyUpdated();
event MinBuybackAmountUpdated(uint256 oldAmount, uint256 newAmount);
// =========================================================================
// ERRORS
// =========================================================================
error Unauthorized();
error InsufficientBalance();
error NotPoolManager();
error ZeroAddress();
error PoolKeyNotSet();
// =========================================================================
// MODIFIERS
// =========================================================================
modifier onlyOwner() {
if (msg.sender != owner) revert Unauthorized();
_;
}
modifier onlyOwnerOrExecutor() {
if (msg.sender != owner && msg.sender != executor) revert Unauthorized();
_;
}
// =========================================================================
// CONSTRUCTOR
// =========================================================================
/// @notice Deploy the buyback vault
constructor() {
owner = msg.sender;
emit OwnershipTransferred(address(0), msg.sender);
}
// =========================================================================
// RECEIVE ETH
// =========================================================================
receive() external payable {
emit EthReceived(msg.sender, msg.value);
}
// =========================================================================
// BUYBACK EXECUTION
// =========================================================================
/// @notice Execute a buyback using all available ETH
/// @return prBurned Amount of PR burned
function executeBuyback() external onlyOwnerOrExecutor returns (uint256 prBurned) {
if (poolKey.hooks == address(0)) revert PoolKeyNotSet();
uint256 ethBalance = address(this).balance;
if (ethBalance < minBuybackAmount) {
revert InsufficientBalance();
}
POOL_MANAGER.unlock(abi.encode(ethBalance));
uint256 prBalance = PR_TOKEN.balanceOf(address(this));
if (prBalance > 0) {
PR_TOKEN.burn(prBalance);
prBurned = prBalance;
}
totalBuybacks++;
totalEthUsed += ethBalance;
totalPrBurned += prBurned;
emit BuybackExecuted(msg.sender, ethBalance, prBurned);
return prBurned;
}
/// @notice Execute a partial buyback with specific ETH amount
/// @param ethAmount Amount of ETH to use
/// @return prBurned Amount of PR burned
function executeBuybackPartial(uint256 ethAmount) external onlyOwnerOrExecutor returns (uint256 prBurned) {
if (poolKey.hooks == address(0)) revert PoolKeyNotSet();
uint256 ethBalance = address(this).balance;
if (ethAmount > ethBalance || ethAmount < minBuybackAmount) {
revert InsufficientBalance();
}
POOL_MANAGER.unlock(abi.encode(ethAmount));
uint256 prBalance = PR_TOKEN.balanceOf(address(this));
if (prBalance > 0) {
PR_TOKEN.burn(prBalance);
prBurned = prBalance;
}
totalBuybacks++;
totalEthUsed += ethAmount;
totalPrBurned += prBurned;
emit BuybackExecuted(msg.sender, ethAmount, prBurned);
return prBurned;
}
/// @notice Callback from PoolManager.unlock()
function unlockCallback(bytes calldata data) external override returns (bytes memory) {
if (msg.sender != address(POOL_MANAGER)) revert NotPoolManager();
uint256 ethAmount = abi.decode(data, (uint256));
bool zeroForOne = !prIsToken0;
IPoolManager.SwapParams memory swapParams = IPoolManager.SwapParams({
zeroForOne: zeroForOne,
amountSpecified: -int256(ethAmount), // Negative = exact input
sqrtPriceLimitX96: zeroForOne
? 4295128740
: 1461446703485210103287273052203988822378723970341
});
// 1. Execute swap (creates debt)
BalanceDelta delta = POOL_MANAGER.swap(poolKey, swapParams, "");
// 2. Settle ETH debt (pay what we owe)
POOL_MANAGER.settle{value: ethAmount}();
// 3. Take PR we're owed
int128 prDelta = prIsToken0
? int128(int256(BalanceDelta.unwrap(delta)) >> 128)
: int128(int256(BalanceDelta.unwrap(delta)));
// V4 sign convention: positive = we receive tokens
uint256 prReceived = prDelta > 0 ? uint256(uint128(prDelta)) : 0;
if (prReceived > 0) {
POOL_MANAGER.take(
prIsToken0 ? poolKey.currency0 : poolKey.currency1,
address(this),
prReceived
);
}
return abi.encode(prReceived);
}
// =========================================================================
// ADMIN FUNCTIONS
// =========================================================================
/// @notice Set the executor address
function setExecutor(address _executor) external onlyOwner {
emit ExecutorUpdated(executor, _executor);
executor = _executor;
}
/// @notice Update the pool key (call after pool is created)
function setPoolKey(PoolKey memory _poolKey) external onlyOwner {
poolKey = _poolKey;
prIsToken0 = Currency.unwrap(_poolKey.currency0) == address(PR_TOKEN);
emit PoolKeyUpdated();
}
/// @notice Update minimum buyback amount
function setMinBuybackAmount(uint256 _amount) external onlyOwner {
emit MinBuybackAmountUpdated(minBuybackAmount, _amount);
minBuybackAmount = _amount;
}
/// @notice Transfer ownership
function transferOwnership(address _newOwner) external onlyOwner {
if (_newOwner == address(0)) revert ZeroAddress();
emit OwnershipTransferred(owner, _newOwner);
owner = _newOwner;
}
// =========================================================================
// VIEW FUNCTIONS
// =========================================================================
/// @notice Get current ETH balance available for buyback
function getBalance() external view returns (uint256) {
return address(this).balance;
}
/// @notice Check if buyback can be executed
function canExecute() external view returns (bool) {
return address(this).balance >= minBuybackAmount && poolKey.hooks != address(0);
}
/// @notice Preview buyback parameters
function previewBuyback() external view returns (
uint256 ethAvailable,
uint256 minRequired,
bool canBuyback
) {
ethAvailable = address(this).balance;
minRequired = minBuybackAmount;
canBuyback = ethAvailable >= minRequired && poolKey.hooks != address(0);
}
/// @notice Get vault statistics
function getStats() external view returns (
uint256 buybackCount,
uint256 ethUsed,
uint256 prBurned,
uint256 currentBalance
) {
return (totalBuybacks, totalEthUsed, totalPrBurned, address(this).balance);
}
/// @notice Get the pool key this vault uses for buybacks
function getPoolKey() external view returns (PoolKey memory) {
return poolKey;
}
/// @notice Check if an address can execute buybacks
function canExecuteBuyback(address account) external view returns (bool) {
return account == owner || account == executor;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[],"name":"PoolKeyNotSet","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethUsed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prBurned","type":"uint256"}],"name":"BuybackExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousExecutor","type":"address"},{"indexed":true,"internalType":"address","name":"newExecutor","type":"address"}],"name":"ExecutorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"MinBuybackAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"PoolKeyUpdated","type":"event"},{"inputs":[],"name":"canExecute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"canExecuteBuyback","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"executeBuyback","outputs":[{"internalType":"uint256","name":"prBurned","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"executeBuybackPartial","outputs":[{"internalType":"uint256","name":"prBurned","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPoolKey","outputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStats","outputs":[{"internalType":"uint256","name":"buybackCount","type":"uint256"},{"internalType":"uint256","name":"ethUsed","type":"uint256"},{"internalType":"uint256","name":"prBurned","type":"uint256"},{"internalType":"uint256","name":"currentBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBuybackAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolKey","outputs":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prIsToken0","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previewBuyback","outputs":[{"internalType":"uint256","name":"ethAvailable","type":"uint256"},{"internalType":"uint256","name":"minRequired","type":"uint256"},{"internalType":"bool","name":"canBuyback","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_executor","type":"address"}],"name":"setExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinBuybackAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_poolKey","type":"tuple"}],"name":"setPoolKey","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBuybacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthUsed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPrBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052662386f26fc1000060065534801561001a575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36113ba806100665f395ff3fe608060405260043610610129575f3560e01c806391dd7346116100a8578063c59d48471161006d578063c59d48471461048a578063cb371f83146104c0578063dde111b9146104d5578063f0ec98d7146104ea578063f19000aa14610509578063f2fde38b1461051e575f80fd5b806391dd7346146103f2578063a03b0df11461041e578063ad8940391461043d578063bbeb759514610456578063c34c08e51461046b575f80fd5b80635d97263c116100ee5780635d97263c14610270578063683e76e0146102a157806378b90337146103845780638da5cb5b146103a85780638e10e77a146103de575f80fd5b806312065fe01461016957806315bd70541461018a578063182148ef146101a95780631c3c0ea81461023057806354941a3514610251575f80fd5b366101655760405134815233907f85177f287940f2f05425a4029951af0e047a7f9c4eaa9a6e6917bcd869f866959060200160405180910390a2005b5f80fd5b348015610174575f80fd5b50475b6040519081526020015b60405180910390f35b348015610195575f80fd5b506101776101a4366004611018565b61053d565b3480156101b4575f80fd5b50600280546003546004546101f0936001600160a01b03938416938381169362ffffff600160a01b82041693600160b81b90910490920b911685565b604080516001600160a01b039687168152948616602086015262ffffff9093169284019290925260020b606083015291909116608082015260a001610181565b34801561023b575f80fd5b5061024f61024a366004611051565b6107d1565b005b34801561025c575f80fd5b5061024f61026b366004611018565b610855565b34801561027b575f80fd5b506102846108bf565b604080519384526020840192909252151590820152606001610181565b3480156102ac575f80fd5b506103316040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506040805160a081018252600280546001600160a01b039081168352600354808216602085015262ffffff600160a01b82041694840194909452600160b81b909304900b6060820152600454909116608082015290565b604051610181919081516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015160020b90830152608092830151169181019190915260a00190565b34801561038f575f80fd5b506103986108e6565b6040519015158152602001610181565b3480156103b3575f80fd5b505f546103c6906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b3480156103e9575f80fd5b50610177610908565b3480156103fd575f80fd5b5061041161040c366004611073565b610b90565b6040516101819190611101565b348015610429575f80fd5b50610398610438366004611051565b610e42565b348015610448575f80fd5b506005546103989060ff1681565b348015610461575f80fd5b5061017760095481565b348015610476575f80fd5b506001546103c6906001600160a01b031681565b348015610495575f80fd5b5060075460085460095447604080519485526020850193909352918301526060820152608001610181565b3480156104cb575f80fd5b5061017760075481565b3480156104e0575f80fd5b5061017760085481565b3480156104f5575f80fd5b5061024f610504366004611147565b610e6e565b348015610514575f80fd5b5061017760065481565b348015610529575f80fd5b5061024f610538366004611051565b610f6f565b5f80546001600160a01b0316331480159061056357506001546001600160a01b03163314155b15610580576040516282b42960e81b815260040160405180910390fd5b6004546001600160a01b03166105a957604051633382f3a560e01b815260040160405180910390fd5b47808311806105b9575060065483105b156105d757604051631e9acf1760e31b815260040160405180910390fd5b604080516020810185905273498581ff718922c3f8e6a244956af099b2652b2b916348c8949191016040516020818303038152906040526040518263ffffffff1660e01b815260040161062a9190611101565b5f604051808303815f875af1158015610645573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261066c91908101906111e8565b506040516370a0823160e01b81523060048201525f90732357110f5f0c5344eef75966500c75116a4aa153906370a0823190602401602060405180830381865afa1580156106bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e09190611290565b9050801561074c57604051630852cd8d60e31b815260048101829052732357110f5f0c5344eef75966500c75116a4aa153906342966c68906024015f604051808303815f87803b158015610732575f80fd5b505af1158015610744573d5f803e3d5ffd5b505050508092505b60078054905f61075b836112bb565b91905055508360085f82825461077191906112d3565b925050819055508260095f82825461078991906112d3565b9091555050604080518581526020810185905233917fce6abc4aa99ab2d137d5f7e34bec0e883a186fd2d76b29f2e1c30afcc68d7336910160405180910390a250505b919050565b5f546001600160a01b031633146107fa576040516282b42960e81b815260040160405180910390fd5b6001546040516001600160a01b038084169216907f0ef3c7eb9dbcf33ddf032f4cce366a07eda85eed03e3172e4a90c4cc16d57886905f90a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461087e576040516282b42960e81b815260040160405180910390fd5b60065460408051918252602082018390527f26e1a7263b9e45e83672290931e36ba6b6909bfb08be34ffc4af2765fb761628910160405180910390a1600655565b60065447905f8183108015906108df57506004546001600160a01b031615155b9050909192565b5f600654471015801561090357506004546001600160a01b031615155b905090565b5f80546001600160a01b0316331480159061092e57506001546001600160a01b03163314155b1561094b576040516282b42960e81b815260040160405180910390fd5b6004546001600160a01b031661097457604051633382f3a560e01b815260040160405180910390fd5b600654479081101561099957604051631e9acf1760e31b815260040160405180910390fd5b604080516020810183905273498581ff718922c3f8e6a244956af099b2652b2b916348c8949191016040516020818303038152906040526040518263ffffffff1660e01b81526004016109ec9190611101565b5f604051808303815f875af1158015610a07573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a2e91908101906111e8565b506040516370a0823160e01b81523060048201525f90732357110f5f0c5344eef75966500c75116a4aa153906370a0823190602401602060405180830381865afa158015610a7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa29190611290565b90508015610b0e57604051630852cd8d60e31b815260048101829052732357110f5f0c5344eef75966500c75116a4aa153906342966c68906024015f604051808303815f87803b158015610af4575f80fd5b505af1158015610b06573d5f803e3d5ffd5b505050508092505b60078054905f610b1d836112bb565b91905055508160085f828254610b3391906112d3565b925050819055508260095f828254610b4b91906112d3565b9091555050604080518381526020810185905233917fce6abc4aa99ab2d137d5f7e34bec0e883a186fd2d76b29f2e1c30afcc68d7336910160405180910390a2505090565b60603373498581ff718922c3f8e6a244956af099b2652b2b14610bc65760405163570c108560e11b815260040160405180910390fd5b5f610bd383850185611018565b600554604080516060810190915260ff909116158082529192505f9060208101610bfc856112e6565b815260200183610c205773fffd8963efd1fc6a506488495d951d5263988d25610c27565b6401000276a45b6001600160a01b03169052604051633cf3645360e21b81529091505f9073498581ff718922c3f8e6a244956af099b2652b2b9063f3cd914c90610c71906002908690600401611300565b6020604051808303815f875af1158015610c8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb19190611290565b905073498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b03166311da60b4856040518263ffffffff1660e01b815260040160206040518083038185885af1158015610d05573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d2a9190611290565b506005545f9060ff16610d3d5781610d43565b608082901d5b90505f8082600f0b13610d56575f610d6a565b816fffffffffffffffffffffffffffffffff165b90508015610e185760055473498581ff718922c3f8e6a244956af099b2652b2b90630b0d9c099060ff16610da9576003546001600160a01b0316610db6565b6002546001600160a01b03165b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018490526064015f604051808303815f87803b158015610e01575f80fd5b505af1158015610e13573d5f803e3d5ffd5b505050505b60408051602081018390520160405160208183030381529060405296505050505050505b92915050565b5f80546001600160a01b0383811691161480610e3c5750506001546001600160a01b0390811691161490565b5f546001600160a01b03163314610e97576040516282b42960e81b815260040160405180910390fd5b8051600280546001600160a01b039283166001600160a01b03199182168117909255602084015160038054604080880151606089015162ffffff908116600160b81b0262ffffff60b81b1991909216600160a01b026001600160b81b0319909416958916959095179290921793909316179055608085015160048054919095169216919091179092556005805460ff1916732357110f5f0c5344eef75966500c75116a4aa153909214919091179055517fa2905f5ba755f74cd1bcfa456add3ecbd7109ec7aca7297516c18f5169c1842f905f90a150565b5f546001600160a01b03163314610f98576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116610fbf5760405163d92e233d60e01b815260040160405180910390fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f60208284031215611028575f80fd5b5035919050565b6001600160a01b0381168114611043575f80fd5b50565b80356107cc8161102f565b5f60208284031215611061575f80fd5b813561106c8161102f565b9392505050565b5f8060208385031215611084575f80fd5b823567ffffffffffffffff8082111561109b575f80fd5b818501915085601f8301126110ae575f80fd5b8135818111156110bc575f80fd5b8660208285010111156110cd575f80fd5b60209290920196919550909350505050565b5f5b838110156110f95781810151838201526020016110e1565b50505f910152565b602081525f825180602084015261111f8160408501602087016110df565b601f01601f19169190910160400192915050565b634e487b7160e01b5f52604160045260245ffd5b5f60a08284031215611157575f80fd5b60405160a0810181811067ffffffffffffffff8211171561117a5761117a611133565b60405282356111888161102f565b815260208301356111988161102f565b6020820152604083013562ffffff811681146111b2575f80fd5b60408201526060830135600281900b81146111cb575f80fd5b60608201526111dc60808401611046565b60808201529392505050565b5f602082840312156111f8575f80fd5b815167ffffffffffffffff8082111561120f575f80fd5b818401915084601f830112611222575f80fd5b81518181111561123457611234611133565b604051601f8201601f19908116603f0116810190838211818310171561125c5761125c611133565b81604052828152876020848701011115611274575f80fd5b6112858360208301602088016110df565b979650505050505050565b5f602082840312156112a0575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016112cc576112cc6112a7565b5060010190565b80820180821115610e3c57610e3c6112a7565b5f600160ff1b82016112fa576112fa6112a7565b505f0390565b5f61012060018060a01b038086541684526001860154818116602086015262ffffff8160a01c1660408601528060b81c60020b6060860152508060028701541660808501528451151560a0850152602085015160c08501528060408601511660e0850152508061010084015261137b8184015f815260200190565b9594505050505056fea26469706673582212209b430d87d91e28da944fff711dd04ec7b1d733db53a609713f6a772f4409192c64736f6c63430008180033
Deployed Bytecode
0x608060405260043610610129575f3560e01c806391dd7346116100a8578063c59d48471161006d578063c59d48471461048a578063cb371f83146104c0578063dde111b9146104d5578063f0ec98d7146104ea578063f19000aa14610509578063f2fde38b1461051e575f80fd5b806391dd7346146103f2578063a03b0df11461041e578063ad8940391461043d578063bbeb759514610456578063c34c08e51461046b575f80fd5b80635d97263c116100ee5780635d97263c14610270578063683e76e0146102a157806378b90337146103845780638da5cb5b146103a85780638e10e77a146103de575f80fd5b806312065fe01461016957806315bd70541461018a578063182148ef146101a95780631c3c0ea81461023057806354941a3514610251575f80fd5b366101655760405134815233907f85177f287940f2f05425a4029951af0e047a7f9c4eaa9a6e6917bcd869f866959060200160405180910390a2005b5f80fd5b348015610174575f80fd5b50475b6040519081526020015b60405180910390f35b348015610195575f80fd5b506101776101a4366004611018565b61053d565b3480156101b4575f80fd5b50600280546003546004546101f0936001600160a01b03938416938381169362ffffff600160a01b82041693600160b81b90910490920b911685565b604080516001600160a01b039687168152948616602086015262ffffff9093169284019290925260020b606083015291909116608082015260a001610181565b34801561023b575f80fd5b5061024f61024a366004611051565b6107d1565b005b34801561025c575f80fd5b5061024f61026b366004611018565b610855565b34801561027b575f80fd5b506102846108bf565b604080519384526020840192909252151590820152606001610181565b3480156102ac575f80fd5b506103316040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506040805160a081018252600280546001600160a01b039081168352600354808216602085015262ffffff600160a01b82041694840194909452600160b81b909304900b6060820152600454909116608082015290565b604051610181919081516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015160020b90830152608092830151169181019190915260a00190565b34801561038f575f80fd5b506103986108e6565b6040519015158152602001610181565b3480156103b3575f80fd5b505f546103c6906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b3480156103e9575f80fd5b50610177610908565b3480156103fd575f80fd5b5061041161040c366004611073565b610b90565b6040516101819190611101565b348015610429575f80fd5b50610398610438366004611051565b610e42565b348015610448575f80fd5b506005546103989060ff1681565b348015610461575f80fd5b5061017760095481565b348015610476575f80fd5b506001546103c6906001600160a01b031681565b348015610495575f80fd5b5060075460085460095447604080519485526020850193909352918301526060820152608001610181565b3480156104cb575f80fd5b5061017760075481565b3480156104e0575f80fd5b5061017760085481565b3480156104f5575f80fd5b5061024f610504366004611147565b610e6e565b348015610514575f80fd5b5061017760065481565b348015610529575f80fd5b5061024f610538366004611051565b610f6f565b5f80546001600160a01b0316331480159061056357506001546001600160a01b03163314155b15610580576040516282b42960e81b815260040160405180910390fd5b6004546001600160a01b03166105a957604051633382f3a560e01b815260040160405180910390fd5b47808311806105b9575060065483105b156105d757604051631e9acf1760e31b815260040160405180910390fd5b604080516020810185905273498581ff718922c3f8e6a244956af099b2652b2b916348c8949191016040516020818303038152906040526040518263ffffffff1660e01b815260040161062a9190611101565b5f604051808303815f875af1158015610645573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261066c91908101906111e8565b506040516370a0823160e01b81523060048201525f90732357110f5f0c5344eef75966500c75116a4aa153906370a0823190602401602060405180830381865afa1580156106bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e09190611290565b9050801561074c57604051630852cd8d60e31b815260048101829052732357110f5f0c5344eef75966500c75116a4aa153906342966c68906024015f604051808303815f87803b158015610732575f80fd5b505af1158015610744573d5f803e3d5ffd5b505050508092505b60078054905f61075b836112bb565b91905055508360085f82825461077191906112d3565b925050819055508260095f82825461078991906112d3565b9091555050604080518581526020810185905233917fce6abc4aa99ab2d137d5f7e34bec0e883a186fd2d76b29f2e1c30afcc68d7336910160405180910390a250505b919050565b5f546001600160a01b031633146107fa576040516282b42960e81b815260040160405180910390fd5b6001546040516001600160a01b038084169216907f0ef3c7eb9dbcf33ddf032f4cce366a07eda85eed03e3172e4a90c4cc16d57886905f90a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461087e576040516282b42960e81b815260040160405180910390fd5b60065460408051918252602082018390527f26e1a7263b9e45e83672290931e36ba6b6909bfb08be34ffc4af2765fb761628910160405180910390a1600655565b60065447905f8183108015906108df57506004546001600160a01b031615155b9050909192565b5f600654471015801561090357506004546001600160a01b031615155b905090565b5f80546001600160a01b0316331480159061092e57506001546001600160a01b03163314155b1561094b576040516282b42960e81b815260040160405180910390fd5b6004546001600160a01b031661097457604051633382f3a560e01b815260040160405180910390fd5b600654479081101561099957604051631e9acf1760e31b815260040160405180910390fd5b604080516020810183905273498581ff718922c3f8e6a244956af099b2652b2b916348c8949191016040516020818303038152906040526040518263ffffffff1660e01b81526004016109ec9190611101565b5f604051808303815f875af1158015610a07573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a2e91908101906111e8565b506040516370a0823160e01b81523060048201525f90732357110f5f0c5344eef75966500c75116a4aa153906370a0823190602401602060405180830381865afa158015610a7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa29190611290565b90508015610b0e57604051630852cd8d60e31b815260048101829052732357110f5f0c5344eef75966500c75116a4aa153906342966c68906024015f604051808303815f87803b158015610af4575f80fd5b505af1158015610b06573d5f803e3d5ffd5b505050508092505b60078054905f610b1d836112bb565b91905055508160085f828254610b3391906112d3565b925050819055508260095f828254610b4b91906112d3565b9091555050604080518381526020810185905233917fce6abc4aa99ab2d137d5f7e34bec0e883a186fd2d76b29f2e1c30afcc68d7336910160405180910390a2505090565b60603373498581ff718922c3f8e6a244956af099b2652b2b14610bc65760405163570c108560e11b815260040160405180910390fd5b5f610bd383850185611018565b600554604080516060810190915260ff909116158082529192505f9060208101610bfc856112e6565b815260200183610c205773fffd8963efd1fc6a506488495d951d5263988d25610c27565b6401000276a45b6001600160a01b03169052604051633cf3645360e21b81529091505f9073498581ff718922c3f8e6a244956af099b2652b2b9063f3cd914c90610c71906002908690600401611300565b6020604051808303815f875af1158015610c8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb19190611290565b905073498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b03166311da60b4856040518263ffffffff1660e01b815260040160206040518083038185885af1158015610d05573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d2a9190611290565b506005545f9060ff16610d3d5781610d43565b608082901d5b90505f8082600f0b13610d56575f610d6a565b816fffffffffffffffffffffffffffffffff165b90508015610e185760055473498581ff718922c3f8e6a244956af099b2652b2b90630b0d9c099060ff16610da9576003546001600160a01b0316610db6565b6002546001600160a01b03165b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018490526064015f604051808303815f87803b158015610e01575f80fd5b505af1158015610e13573d5f803e3d5ffd5b505050505b60408051602081018390520160405160208183030381529060405296505050505050505b92915050565b5f80546001600160a01b0383811691161480610e3c5750506001546001600160a01b0390811691161490565b5f546001600160a01b03163314610e97576040516282b42960e81b815260040160405180910390fd5b8051600280546001600160a01b039283166001600160a01b03199182168117909255602084015160038054604080880151606089015162ffffff908116600160b81b0262ffffff60b81b1991909216600160a01b026001600160b81b0319909416958916959095179290921793909316179055608085015160048054919095169216919091179092556005805460ff1916732357110f5f0c5344eef75966500c75116a4aa153909214919091179055517fa2905f5ba755f74cd1bcfa456add3ecbd7109ec7aca7297516c18f5169c1842f905f90a150565b5f546001600160a01b03163314610f98576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116610fbf5760405163d92e233d60e01b815260040160405180910390fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f60208284031215611028575f80fd5b5035919050565b6001600160a01b0381168114611043575f80fd5b50565b80356107cc8161102f565b5f60208284031215611061575f80fd5b813561106c8161102f565b9392505050565b5f8060208385031215611084575f80fd5b823567ffffffffffffffff8082111561109b575f80fd5b818501915085601f8301126110ae575f80fd5b8135818111156110bc575f80fd5b8660208285010111156110cd575f80fd5b60209290920196919550909350505050565b5f5b838110156110f95781810151838201526020016110e1565b50505f910152565b602081525f825180602084015261111f8160408501602087016110df565b601f01601f19169190910160400192915050565b634e487b7160e01b5f52604160045260245ffd5b5f60a08284031215611157575f80fd5b60405160a0810181811067ffffffffffffffff8211171561117a5761117a611133565b60405282356111888161102f565b815260208301356111988161102f565b6020820152604083013562ffffff811681146111b2575f80fd5b60408201526060830135600281900b81146111cb575f80fd5b60608201526111dc60808401611046565b60808201529392505050565b5f602082840312156111f8575f80fd5b815167ffffffffffffffff8082111561120f575f80fd5b818401915084601f830112611222575f80fd5b81518181111561123457611234611133565b604051601f8201601f19908116603f0116810190838211818310171561125c5761125c611133565b81604052828152876020848701011115611274575f80fd5b6112858360208301602088016110df565b979650505050505050565b5f602082840312156112a0575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016112cc576112cc6112a7565b5060010190565b80820180821115610e3c57610e3c6112a7565b5f600160ff1b82016112fa576112fa6112a7565b505f0390565b5f61012060018060a01b038086541684526001860154818116602086015262ffffff8160a01c1660408601528060b81c60020b6060860152508060028701541660808501528451151560a0850152602085015160c08501528060408601511660e0850152508061010084015261137b8184015f815260200190565b9594505050505056fea26469706673582212209b430d87d91e28da944fff711dd04ec7b1d733db53a609713f6a772f4409192c64736f6c63430008180033
Deployed Bytecode Sourcemap
1685:9490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4849:34;;4873:9;160:25:1;;4861:10:0;;4849:34;;148:2:1;133:18;4849:34:0;;;;;;;1685:9490;;;;;9816:101;;;;;;;;;;-1:-1:-1;9888:21:0;9816:101;;;160:25:1;;;148:2;133:18;9816:101:0;;;;;;;;6107:788;;;;;;;;;;-1:-1:-1;6107:788:0;;;;;:::i;:::-;;:::i;2465:22::-;;;;;;;;;;-1:-1:-1;2465:22:0;;;;;;;;;-1:-1:-1;;;;;2465:22:0;;;;;;;;;-1:-1:-1;;;2465:22:0;;;;-1:-1:-1;;;2465:22:0;;;;;;;;;;;;;;-1:-1:-1;;;;;742:15:1;;;724:34;;794:15;;;789:2;774:18;;767:43;858:8;846:21;;;826:18;;;819:49;;;;915:1;904:21;899:2;884:18;;877:49;963:15;;;;957:3;942:19;;935:44;673:3;658:19;2465:22:0;381:604:1;8629:150:0;;;;;;;;;;-1:-1:-1;8629:150:0;;;;;:::i;:::-;;:::i;:::-;;9121:176;;;;;;;;;;-1:-1:-1;9121:176:0;;;;;:::i;:::-;;:::i;10176:321::-;;;;;;;;;;;;;:::i;:::-;;;;1713:25:1;;;1769:2;1754:18;;1747:34;;;;1824:14;1817:22;1797:18;;;1790:50;1701:2;1686:18;10176:321:0;1517:329:1;10874:94:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10946:14:0;;;;;;;;10953:7;10946:14;;-1:-1:-1;;;;;10946:14:0;;;;;;;;;;;;;;;-1:-1:-1;;;10946:14:0;;;;;;;;;;-1:-1:-1;;;10946:14:0;;;;;;;;;;;;;;;;;;;10874:94;;;;;;;2104:13:1;;-1:-1:-1;;;;;2100:22:1;;;2082:41;;2183:4;2171:17;;;2165:24;2161:33;;2139:20;;;2132:63;2255:4;2243:17;;;2237:24;2263:8;2233:39;2211:20;;;2204:69;2343:4;2331:17;;;2325:24;2322:1;2311:39;2289:20;;;2282:69;2411:4;2399:17;;;2393:24;2389:33;2367:20;;;2360:63;;;;2031:3;2016:19;;1851:578;9975:149:0;;;;;;;;;;;;;:::i;:::-;;;2599:14:1;;2592:22;2574:41;;2562:2;2547:18;9975:149:0;2434:187:1;2406:20:0;;;;;;;;;;-1:-1:-1;2406:20:0;;;;-1:-1:-1;;;;;2406:20:0;;;;;;-1:-1:-1;;;;;2790:32:1;;;2772:51;;2760:2;2745:18;2406:20:0;2626:203:1;5196:742:0;;;;;;;;;;;;;:::i;6955:1434::-;;;;;;;;;;-1:-1:-1;6955:1434:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11034:138::-;;;;;;;;;;-1:-1:-1;11034:138:0;;;;;:::i;:::-;;:::i;2494:22::-;;;;;;;;;;-1:-1:-1;2494:22:0;;;;;;;;2827:28;;;;;;;;;;;;;;;;2433:23;;;;;;;;;;-1:-1:-1;2433:23:0;;;;-1:-1:-1;;;;;2433:23:0;;;10543:260;;;;;;;;;;-1:-1:-1;10729:13:0;;10744:12;;10758:13;;10773:21;10543:260;;;4456:25:1;;;4512:2;4497:18;;4490:34;;;;4540:18;;;4533:34;4598:2;4583:18;;4576:34;4443:3;4428:19;10543:260:0;4225:391:1;2758:28:0;;;;;;;;;;;;;;;;2793:27;;;;;;;;;;;;;;;;8853:213;;;;;;;;;;-1:-1:-1;8853:213:0;;;;;:::i;:::-;;:::i;2525:44::-;;;;;;;;;;;;;;;;9341:215;;;;;;;;;;-1:-1:-1;9341:215:0;;;;;:::i;:::-;;:::i;6107:788::-;6195:16;4191:5;;-1:-1:-1;;;;;4191:5:0;4177:10;:19;;;;:45;;-1:-1:-1;4214:8:0;;-1:-1:-1;;;;;4214:8:0;4200:10;:22;;4177:45;4173:72;;;4231:14;;-1:-1:-1;;;4231:14:0;;;;;;;;;;;4173:72;6228:13;;-1:-1:-1;;;;;6228:13:0::1;6224:55;;6264:15;;-1:-1:-1::0;;;6264:15:0::1;;;;;;;;;;;6224:55;6313:21;6349:22:::0;;::::1;::::0;:54:::1;;;6387:16;;6375:9;:28;6349:54;6345:115;;;6427:21;;-1:-1:-1::0;;;6427:21:0::1;;;;;;;;;;;6345:115;6492:21;::::0;;::::1;::::0;::::1;160:25:1::0;;;1984:42:0::1;::::0;6472:19:::1;::::0;133:18:1;6492:21:0::1;;;;;;;;;;;;6472:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;6472:42:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;6547:33:0::1;::::0;-1:-1:-1;;;6547:33:0;;6574:4:::1;6547:33;::::0;::::1;2772:51:1::0;6527:17:0::1;::::0;2080:42:::1;::::0;6547:18:::1;::::0;2745::1;;6547:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6527:53:::0;-1:-1:-1;6595:13:0;;6591:105:::1;;6625:24;::::0;-1:-1:-1;;;6625:24:0;;::::1;::::0;::::1;160:25:1::0;;;2080:42:0::1;::::0;6625:13:::1;::::0;133:18:1;;6625:24:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6675:9;6664:20;;6591:105;6708:13;:15:::0;;;:13:::1;:15;::::0;::::1;:::i;:::-;;;;;;6750:9;6734:12;;:25;;;;;;;:::i;:::-;;;;;;;;6787:8;6770:13;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6813:48:0::1;::::0;;7480:25:1;;;7536:2;7521:18;;7514:34;;;6829:10:0::1;::::0;6813:48:::1;::::0;7453:18:1;6813:48:0::1;;;;;;;6872:15;;4256:1;6107:788:::0;;;:::o;8629:150::-;4075:5;;-1:-1:-1;;;;;4075:5:0;4061:10;:19;4057:46;;4089:14;;-1:-1:-1;;;4089:14:0;;;;;;;;;;;4057:46;8720:8:::1;::::0;8704:36:::1;::::0;-1:-1:-1;;;;;8704:36:0;;::::1;::::0;8720:8:::1;::::0;8704:36:::1;::::0;8720:8:::1;::::0;8704:36:::1;8751:8;:20:::0;;-1:-1:-1;;;;;;8751:20:0::1;-1:-1:-1::0;;;;;8751:20:0;;;::::1;::::0;;;::::1;::::0;;8629:150::o;9121:176::-;4075:5;;-1:-1:-1;;;;;4075:5:0;4061:10;:19;4057:46;;4089:14;;-1:-1:-1;;;4089:14:0;;;;;;;;;;;4057:46;9226:16:::1;::::0;9202:50:::1;::::0;;7480:25:1;;;7536:2;7521:18;;7514:34;;;9202:50:0::1;::::0;7453:18:1;9202:50:0::1;;;;;;;9263:16;:26:::0;9121:176::o;10176:321::-;10391:16;;10345:21;;10235:20;10431:27;;;;;;:58;;-1:-1:-1;10462:13:0;;-1:-1:-1;;;;;10462:13:0;:27;;10431:58;10418:71;;10176:321;;;:::o;9975:149::-;10020:4;10069:16;;10044:21;:41;;:72;;;;-1:-1:-1;10089:13:0;;-1:-1:-1;;;;;10089:13:0;:27;;10044:72;10037:79;;9975:149;:::o;5196:742::-;5260:16;4191:5;;-1:-1:-1;;;;;4191:5:0;4177:10;:19;;;;:45;;-1:-1:-1;4214:8:0;;-1:-1:-1;;;;;4214:8:0;4200:10;:22;;4177:45;4173:72;;;4231:14;;-1:-1:-1;;;4231:14:0;;;;;;;;;;;4173:72;5293:13;;-1:-1:-1;;;;;5293:13:0::1;5289:55;;5329:15;;-1:-1:-1::0;;;5329:15:0::1;;;;;;;;;;;5289:55;5427:16;::::0;5378:21:::1;::::0;5414:29;::::1;5410:90;;;5467:21;;-1:-1:-1::0;;;5467:21:0::1;;;;;;;;;;;5410:90;5532:22;::::0;;::::1;::::0;::::1;160:25:1::0;;;1984:42:0::1;::::0;5512:19:::1;::::0;133:18:1;5532:22:0::1;;;;;;;;;;;;5512:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;5512:43:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;5588:33:0::1;::::0;-1:-1:-1;;;5588:33:0;;5615:4:::1;5588:33;::::0;::::1;2772:51:1::0;5568:17:0::1;::::0;2080:42:::1;::::0;5588:18:::1;::::0;2745::1;;5588:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5568:53:::0;-1:-1:-1;5636:13:0;;5632:105:::1;;5666:24;::::0;-1:-1:-1;;;5666:24:0;;::::1;::::0;::::1;160:25:1::0;;;2080:42:0::1;::::0;5666:13:::1;::::0;133:18:1;;5666:24:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5716:9;5705:20;;5632:105;5749:13;:15:::0;;;:13:::1;:15;::::0;::::1;:::i;:::-;;;;;;5791:10;5775:12;;:26;;;;;;;:::i;:::-;;;;;;;;5829:8;5812:13;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;5855:49:0::1;::::0;;7480:25:1;;;7536:2;7521:18;;7514:34;;;5871:10:0::1;::::0;5855:49:::1;::::0;7453:18:1;5855:49:0::1;;;;;;;5915:15;;5196:742:::0;:::o;6955:1434::-;7027:12;7056:10;1984:42;7056:35;7052:64;;7100:16;;-1:-1:-1;;;7100:16:0;;;;;;;;;;;7052:64;7129:17;7149:27;;;;7160:4;7149:27;:::i;:::-;7206:10;;7273:292;;;;;;;;;7206:10;;;;7205:11;7273:292;;;7129:47;;-1:-1:-1;7187:15:0;;7273:292;;;7366:18;7129:47;7366:18;:::i;:::-;7273:292;;;;7444:10;:109;;7504:49;7444:109;;;7474:10;7444:109;-1:-1:-1;;;;;7273:292:0;;;7642:42;;-1:-1:-1;;;7642:42:0;;7229:336;;-1:-1:-1;7621:18:0;;1984:42;;7642:17;;:42;;7660:7;;7229:336;;7642:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7621:63;;1984:42;-1:-1:-1;;;;;7746:19:0;;7773:9;7746:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7849:10:0;;7832:14;;7849:10;;:133;;7974:5;7849:133;;;7920:3;7909:5;7882:41;;7849:133;7832:150;;8054:18;8085:1;8075:7;:11;;;:43;;8117:1;8075:43;;;8105:7;8089:25;;8075:43;8054:64;-1:-1:-1;8135:14:0;;8131:209;;8202:10;;1984:42;;8166:17;;8202:10;;:50;;8235:17;;-1:-1:-1;;;;;8235:17:0;8202:50;;;8215:7;:17;-1:-1:-1;;;;;8215:17:0;8202:50;8166:162;;-1:-1:-1;;;;;;8166:162:0;;;;;;;-1:-1:-1;;;;;9283:15:1;;;8166:162:0;;;9265:34:1;8279:4:0;9315:18:1;;;9308:43;9367:18;;;9360:34;;;9200:18;;8166:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8131:209;8359:22;;;;;;160:25:1;;;133:18;8359:22:0;;;;;;;;;;;;8352:29;;;;;;;;6955:1434;;;;;:::o;11034:138::-;11101:4;11136:5;;-1:-1:-1;;;;;11125:16:0;;;11136:5;;11125:16;;:39;;-1:-1:-1;;11156:8:0;;-1:-1:-1;;;;;11156:8:0;;;11145:19;;;;11034:138::o;8853:213::-;4075:5;;-1:-1:-1;;;;;4075:5:0;4061:10;:19;4057:46;;4089:14;;-1:-1:-1;;;4089:14:0;;;;;;;;;;;4057:46;8928:18;;:7:::1;:18:::0;;-1:-1:-1;;;;;8928:18:0;;::::1;-1:-1:-1::0;;;;;;8928:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;8928:18:0::1;-1:-1:-1::0;;;;8928:18:0;;;::::1;-1:-1:-1::0;;;8928:18:0::1;-1:-1:-1::0;;;;;;8928:18:0;;;;;::::1;::::0;;;;;;;::::1;::::0;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;8957:10:::1;:69:::0;;-1:-1:-1;;8957:69:0::1;2080:42;8970:56:::0;;::::1;8957:69:::0;;;::::1;::::0;;9042:16;::::1;::::0;8928:18:::1;::::0;9042:16:::1;8853:213:::0;:::o;9341:215::-;4075:5;;-1:-1:-1;;;;;4075:5:0;4061:10;:19;4057:46;;4089:14;;-1:-1:-1;;;4089:14:0;;;;;;;;;;;4057:46;-1:-1:-1;;;;;9421:23:0;::::1;9417:49;;9453:13;;-1:-1:-1::0;;;9453:13:0::1;;;;;;;;;;;9417:49;9503:5;::::0;;9482:38:::1;::::0;-1:-1:-1;;;;;9482:38:0;;::::1;::::0;9503:5;::::1;::::0;9482:38:::1;::::0;::::1;9531:5;:17:::0;;-1:-1:-1;;;;;;9531:17:0::1;-1:-1:-1::0;;;;;9531:17:0;;;::::1;::::0;;;::::1;::::0;;9341:215::o;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;990:131::-;-1:-1:-1;;;;;1065:31:1;;1055:42;;1045:70;;1111:1;1108;1101:12;1045:70;990:131;:::o;1126:134::-;1194:20;;1223:31;1194:20;1223:31;:::i;1265:247::-;1324:6;1377:2;1365:9;1356:7;1352:23;1348:32;1345:52;;;1393:1;1390;1383:12;1345:52;1432:9;1419:23;1451:31;1476:5;1451:31;:::i;:::-;1501:5;1265:247;-1:-1:-1;;;1265:247:1:o;2834:591::-;2904:6;2912;2965:2;2953:9;2944:7;2940:23;2936:32;2933:52;;;2981:1;2978;2971:12;2933:52;3021:9;3008:23;3050:18;3091:2;3083:6;3080:14;3077:34;;;3107:1;3104;3097:12;3077:34;3145:6;3134:9;3130:22;3120:32;;3190:7;3183:4;3179:2;3175:13;3171:27;3161:55;;3212:1;3209;3202:12;3161:55;3252:2;3239:16;3278:2;3270:6;3267:14;3264:34;;;3294:1;3291;3284:12;3264:34;3339:7;3334:2;3325:6;3321:2;3317:15;3313:24;3310:37;3307:57;;;3360:1;3357;3350:12;3307:57;3391:2;3383:11;;;;;3413:6;;-1:-1:-1;2834:591:1;;-1:-1:-1;;;;2834:591:1:o;3571:250::-;3656:1;3666:113;3680:6;3677:1;3674:13;3666:113;;;3756:11;;;3750:18;3737:11;;;3730:39;3702:2;3695:10;3666:113;;;-1:-1:-1;;3813:1:1;3795:16;;3788:27;3571:250::o;3826:394::-;3973:2;3962:9;3955:21;3936:4;4005:6;3999:13;4048:6;4043:2;4032:9;4028:18;4021:34;4064:79;4136:6;4131:2;4120:9;4116:18;4111:2;4103:6;4099:15;4064:79;:::i;:::-;4204:2;4183:15;-1:-1:-1;;4179:29:1;4164:45;;;;4211:2;4160:54;;3826:394;-1:-1:-1;;3826:394:1:o;4621:127::-;4682:10;4677:3;4673:20;4670:1;4663:31;4713:4;4710:1;4703:15;4737:4;4734:1;4727:15;4753:1056;4835:6;4888:3;4876:9;4867:7;4863:23;4859:33;4856:53;;;4905:1;4902;4895:12;4856:53;4938:2;4932:9;4980:3;4972:6;4968:16;5050:6;5038:10;5035:22;5014:18;5002:10;4999:34;4996:62;4993:88;;;5061:18;;:::i;:::-;5097:2;5090:22;5134:23;;5166:31;5134:23;5166:31;:::i;:::-;5206:21;;5279:2;5264:18;;5251:32;5292:33;5251:32;5292:33;:::i;:::-;5353:2;5341:15;;5334:32;5418:2;5403:18;;5390:32;5466:8;5453:22;;5441:35;;5431:63;;5490:1;5487;5480:12;5431:63;5522:2;5510:15;;5503:32;5587:2;5572:18;;5559:32;5633:1;5622:22;;;5610:35;;5600:63;;5659:1;5656;5649:12;5600:63;5691:2;5679:15;;5672:32;5738:39;5772:3;5757:19;;5738:39;:::i;:::-;5732:3;5720:16;;5713:65;5724:6;4753:1056;-1:-1:-1;;;4753:1056:1:o;5814:896::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:52;;;5962:1;5959;5952:12;5914:52;5995:9;5989:16;6024:18;6065:2;6057:6;6054:14;6051:34;;;6081:1;6078;6071:12;6051:34;6119:6;6108:9;6104:22;6094:32;;6164:7;6157:4;6153:2;6149:13;6145:27;6135:55;;6186:1;6183;6176:12;6135:55;6215:2;6209:9;6237:2;6233;6230:10;6227:36;;;6243:18;;:::i;:::-;6318:2;6312:9;6286:2;6372:13;;-1:-1:-1;;6368:22:1;;;6392:2;6364:31;6360:40;6348:53;;;6416:18;;;6436:22;;;6413:46;6410:72;;;6462:18;;:::i;:::-;6502:10;6498:2;6491:22;6537:2;6529:6;6522:18;6577:7;6572:2;6567;6563;6559:11;6555:20;6552:33;6549:53;;;6598:1;6595;6588:12;6549:53;6611:68;6676:2;6671;6663:6;6659:15;6654:2;6650;6646:11;6611:68;:::i;:::-;6698:6;5814:896;-1:-1:-1;;;;;;;5814:896:1:o;6715:184::-;6785:6;6838:2;6826:9;6817:7;6813:23;6809:32;6806:52;;;6854:1;6851;6844:12;6806:52;-1:-1:-1;6877:16:1;;6715:184;-1:-1:-1;6715:184:1:o;6904:127::-;6965:10;6960:3;6956:20;6953:1;6946:31;6996:4;6993:1;6986:15;7020:4;7017:1;7010:15;7036:135;7075:3;7096:17;;;7093:43;;7116:18;;:::i;:::-;-1:-1:-1;7163:1:1;7152:13;;7036:135::o;7176:125::-;7241:9;;;7262:10;;;7259:36;;;7275:18;;:::i;7559:136::-;7594:3;-1:-1:-1;;;7615:22:1;;7612:48;;7640:18;;:::i;:::-;-1:-1:-1;7680:1:1;7676:13;;7559:136::o;7700:1074::-;8015:4;8044:3;8083:1;8079;8074:3;8070:11;8066:19;8131:2;8122:6;8116:13;8112:22;8101:9;8094:41;8179:4;8171:6;8167:17;8161:24;8238:2;8227:9;8223:18;8216:4;8205:9;8201:20;8194:48;8305:8;8293:9;8288:3;8284:19;8280:34;8273:4;8262:9;8258:20;8251:64;8376:9;8371:3;8367:19;8364:1;8353:34;8346:4;8335:9;8331:20;8324:64;;8453:2;8448:1;8440:6;8436:14;8430:21;8426:30;8419:4;8408:9;8404:20;8397:60;8514:6;8508:13;8501:21;8494:29;8488:3;8477:9;8473:19;8466:58;8579:4;8571:6;8567:17;8561:24;8555:3;8544:9;8540:19;8533:53;8653:2;8645:4;8637:6;8633:17;8627:24;8623:33;8617:3;8606:9;8602:19;8595:62;;8694:2;8688:3;8677:9;8673:19;8666:31;8714:54;8764:2;8753:9;8749:18;3520:1;3508:14;;3555:4;3546:14;;3430:136;8714:54;8706:62;7700:1074;-1:-1:-1;;;;;7700:1074:1:o
Swarm Source
ipfs://9b430d87d91e28da944fff711dd04ec7b1d733db53a609713f6a772f4409192c
Net Worth in USD
Net Worth in ETH
Token Allocations
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BASE | 100.00% | $2,216.56 | 0.1003 | $222.26 |
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.