Source Code
Latest 15 from a total of 15 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Rates | 44428976 | 3 days ago | IN | 0 ETH | 0.00000018 | ||||
| Set Rates | 44428897 | 3 days ago | IN | 0 ETH | 0.00000018 | ||||
| Set Rates | 44428617 | 3 days ago | IN | 0 ETH | 0.00000017 | ||||
| Set Rates | 44428549 | 3 days ago | IN | 0 ETH | 0.00000017 | ||||
| Set Rates | 43826436 | 17 days ago | IN | 0 ETH | 0.00000018 | ||||
| Set Rates | 43652737 | 21 days ago | IN | 0 ETH | 0.00000021 | ||||
| Set Bounds | 43652725 | 21 days ago | IN | 0 ETH | 0.00000032 | ||||
| Set Rates | 43652693 | 21 days ago | IN | 0 ETH | 0.00000026 | ||||
| Set Rates | 43620116 | 22 days ago | IN | 0 ETH | 0.00000031 | ||||
| Set Bounds | 43620102 | 22 days ago | IN | 0 ETH | 0.00000034 | ||||
| Set Rates | 43620068 | 22 days ago | IN | 0 ETH | 0.00000031 | ||||
| Set Rates | 43620038 | 22 days ago | IN | 0 ETH | 0.00000024 | ||||
| Set Rates | 42712097 | 43 days ago | IN | 0 ETH | 0.00000063 | ||||
| Set Rates | 42709308 | 43 days ago | IN | 0 ETH | 0.00000035 | ||||
| Set Vault | 42709035 | 43 days ago | IN | 0 ETH | 0.00000037 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 42708196 | 43 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AdaptiveBurnHookV4
Compiler Version
v0.8.24+commit.e11b9ed9
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;
// ============================================================================
// Uniswap V4 Dependencies (Flattened)
// ============================================================================
// Currency Type
type Currency is address;
library CurrencyLibrary {
Currency public constant ADDRESS_ZERO = Currency.wrap(address(0));
function unwrap(Currency currency) internal pure returns (address) {
return Currency.unwrap(currency);
}
function isAddressZero(Currency currency) internal pure returns (bool) {
return Currency.unwrap(currency) == address(0);
}
}
// BalanceDelta Type
type BalanceDelta is int256;
library BalanceDeltaLibrary {
function amount0(BalanceDelta balanceDelta) internal pure returns (int128) {
return int128(int256(BalanceDelta.unwrap(balanceDelta)) >> 128);
}
function amount1(BalanceDelta balanceDelta) internal pure returns (int128) {
return int128(int256(BalanceDelta.unwrap(balanceDelta)));
}
}
// PoolKey Struct
struct PoolKey {
Currency currency0;
Currency currency1;
uint24 fee;
int24 tickSpacing;
address hooks;
}
// PoolId Type
type PoolId is bytes32;
library PoolIdLibrary {
function toId(PoolKey memory poolKey) internal pure returns (PoolId poolId) {
assembly {
poolId := keccak256(poolKey, 0xa0)
}
}
}
// IPoolManager Interface
interface IPoolManager {
struct SwapParams {
bool zeroForOne;
int256 amountSpecified;
uint160 sqrtPriceLimitX96;
}
struct ModifyLiquidityParams {
int24 tickLower;
int24 tickUpper;
int256 liquidityDelta;
bytes32 salt;
}
function take(Currency currency, address to, uint256 amount) external;
function settle() external payable returns (uint256);
function mint(address to, uint256 id, uint256 amount) external;
function burn(address from, uint256 id, uint256 amount) external;
}
// Hooks Library
library Hooks {
struct Permissions {
bool beforeInitialize;
bool afterInitialize;
bool beforeAddLiquidity;
bool afterAddLiquidity;
bool beforeRemoveLiquidity;
bool afterRemoveLiquidity;
bool beforeSwap;
bool afterSwap;
bool beforeDonate;
bool afterDonate;
bool beforeSwapReturnDelta;
bool afterSwapReturnDelta;
bool afterAddLiquidityReturnDelta;
bool afterRemoveLiquidityReturnDelta;
}
uint160 internal constant ALL_HOOK_MASK = uint160((1 << 14) - 1);
uint160 internal constant BEFORE_INITIALIZE_FLAG = 1 << 13;
uint160 internal constant AFTER_INITIALIZE_FLAG = 1 << 12;
uint160 internal constant BEFORE_ADD_LIQUIDITY_FLAG = 1 << 11;
uint160 internal constant AFTER_ADD_LIQUIDITY_FLAG = 1 << 10;
uint160 internal constant BEFORE_REMOVE_LIQUIDITY_FLAG = 1 << 9;
uint160 internal constant AFTER_REMOVE_LIQUIDITY_FLAG = 1 << 8;
uint160 internal constant BEFORE_SWAP_FLAG = 1 << 7;
uint160 internal constant AFTER_SWAP_FLAG = 1 << 6;
uint160 internal constant BEFORE_DONATE_FLAG = 1 << 5;
uint160 internal constant AFTER_DONATE_FLAG = 1 << 4;
uint160 internal constant BEFORE_SWAP_RETURNS_DELTA_FLAG = 1 << 3;
uint160 internal constant AFTER_SWAP_RETURNS_DELTA_FLAG = 1 << 2;
uint160 internal constant AFTER_ADD_LIQUIDITY_RETURNS_DELTA_FLAG = 1 << 1;
uint160 internal constant AFTER_REMOVE_LIQUIDITY_RETURNS_DELTA_FLAG = 1 << 0;
function validateHookPermissions(address hookAddress, Permissions memory permissions) internal pure {
uint160 addressFlags = uint160(hookAddress) & ALL_HOOK_MASK;
uint160 expectedFlags = permissionsToFlags(permissions);
require(addressFlags == expectedFlags, "Hook address flags mismatch");
}
function permissionsToFlags(Permissions memory permissions) internal pure returns (uint160) {
uint160 flags = 0;
if (permissions.beforeInitialize) flags |= BEFORE_INITIALIZE_FLAG;
if (permissions.afterInitialize) flags |= AFTER_INITIALIZE_FLAG;
if (permissions.beforeAddLiquidity) flags |= BEFORE_ADD_LIQUIDITY_FLAG;
if (permissions.afterAddLiquidity) flags |= AFTER_ADD_LIQUIDITY_FLAG;
if (permissions.beforeRemoveLiquidity) flags |= BEFORE_REMOVE_LIQUIDITY_FLAG;
if (permissions.afterRemoveLiquidity) flags |= AFTER_REMOVE_LIQUIDITY_FLAG;
if (permissions.beforeSwap) flags |= BEFORE_SWAP_FLAG;
if (permissions.afterSwap) flags |= AFTER_SWAP_FLAG;
if (permissions.beforeDonate) flags |= BEFORE_DONATE_FLAG;
if (permissions.afterDonate) flags |= AFTER_DONATE_FLAG;
if (permissions.beforeSwapReturnDelta) flags |= BEFORE_SWAP_RETURNS_DELTA_FLAG;
if (permissions.afterSwapReturnDelta) flags |= AFTER_SWAP_RETURNS_DELTA_FLAG;
if (permissions.afterAddLiquidityReturnDelta) flags |= AFTER_ADD_LIQUIDITY_RETURNS_DELTA_FLAG;
if (permissions.afterRemoveLiquidityReturnDelta) flags |= AFTER_REMOVE_LIQUIDITY_RETURNS_DELTA_FLAG;
return flags;
}
}
// BeforeSwapDelta Type
type BeforeSwapDelta is int256;
library BeforeSwapDeltaLibrary {
BeforeSwapDelta public constant ZERO_DELTA = BeforeSwapDelta.wrap(0);
}
// IHooks Interface
interface IHooks {
function beforeInitialize(address sender, PoolKey calldata key, uint160 sqrtPriceX96)
external returns (bytes4);
function afterInitialize(address sender, PoolKey calldata key, uint160 sqrtPriceX96, int24 tick)
external returns (bytes4);
function beforeAddLiquidity(
address sender,
PoolKey calldata key,
IPoolManager.ModifyLiquidityParams calldata params,
bytes calldata hookData
) external returns (bytes4);
function afterAddLiquidity(
address sender,
PoolKey calldata key,
IPoolManager.ModifyLiquidityParams calldata params,
BalanceDelta delta,
BalanceDelta feesAccrued,
bytes calldata hookData
) external returns (bytes4, BalanceDelta);
function beforeRemoveLiquidity(
address sender,
PoolKey calldata key,
IPoolManager.ModifyLiquidityParams calldata params,
bytes calldata hookData
) external returns (bytes4);
function afterRemoveLiquidity(
address sender,
PoolKey calldata key,
IPoolManager.ModifyLiquidityParams calldata params,
BalanceDelta delta,
BalanceDelta feesAccrued,
bytes calldata hookData
) external returns (bytes4, BalanceDelta);
function beforeSwap(
address sender,
PoolKey calldata key,
IPoolManager.SwapParams calldata params,
bytes calldata hookData
) external returns (bytes4, BeforeSwapDelta, uint24);
function afterSwap(
address sender,
PoolKey calldata key,
IPoolManager.SwapParams calldata params,
BalanceDelta delta,
bytes calldata hookData
) external returns (bytes4, int128);
function beforeDonate(
address sender,
PoolKey calldata key,
uint256 amount0,
uint256 amount1,
bytes calldata hookData
) external returns (bytes4);
function afterDonate(
address sender,
PoolKey calldata key,
uint256 amount0,
uint256 amount1,
bytes calldata hookData
) external returns (bytes4);
}
// BaseHook Abstract Contract
abstract contract BaseHook is IHooks {
IPoolManager public immutable poolManager;
error NotPoolManager();
error HookNotImplemented();
modifier onlyPoolManager() {
if (msg.sender != address(poolManager)) revert NotPoolManager();
_;
}
constructor(IPoolManager _poolManager) {
poolManager = _poolManager;
Hooks.validateHookPermissions(address(this), getHookPermissions());
}
function getHookPermissions() public pure virtual returns (Hooks.Permissions memory);
// Default implementations - override as needed
function beforeInitialize(address, PoolKey calldata, uint160) external virtual returns (bytes4) {
revert HookNotImplemented();
}
function afterInitialize(address, PoolKey calldata, uint160, int24) external virtual returns (bytes4) {
revert HookNotImplemented();
}
function beforeAddLiquidity(address, PoolKey calldata, IPoolManager.ModifyLiquidityParams calldata, bytes calldata)
external virtual returns (bytes4) {
revert HookNotImplemented();
}
function afterAddLiquidity(address, PoolKey calldata, IPoolManager.ModifyLiquidityParams calldata, BalanceDelta, BalanceDelta, bytes calldata)
external virtual returns (bytes4, BalanceDelta) {
revert HookNotImplemented();
}
function beforeRemoveLiquidity(address, PoolKey calldata, IPoolManager.ModifyLiquidityParams calldata, bytes calldata)
external virtual returns (bytes4) {
revert HookNotImplemented();
}
function afterRemoveLiquidity(address, PoolKey calldata, IPoolManager.ModifyLiquidityParams calldata, BalanceDelta, BalanceDelta, bytes calldata)
external virtual returns (bytes4, BalanceDelta) {
revert HookNotImplemented();
}
function beforeSwap(address, PoolKey calldata, IPoolManager.SwapParams calldata, bytes calldata)
external virtual onlyPoolManager returns (bytes4, BeforeSwapDelta, uint24) {
revert HookNotImplemented();
}
function afterSwap(address sender, PoolKey calldata key, IPoolManager.SwapParams calldata params, BalanceDelta delta, bytes calldata hookData)
external virtual onlyPoolManager returns (bytes4, int128) {
return _afterSwap(sender, key, params, delta, hookData);
}
function beforeDonate(address, PoolKey calldata, uint256, uint256, bytes calldata)
external virtual returns (bytes4) {
revert HookNotImplemented();
}
function afterDonate(address, PoolKey calldata, uint256, uint256, bytes calldata)
external virtual returns (bytes4) {
revert HookNotImplemented();
}
function _afterSwap(address, PoolKey calldata, IPoolManager.SwapParams calldata, BalanceDelta, bytes calldata)
internal virtual returns (bytes4, int128) {
revert HookNotImplemented();
}
}
// ============================================================================
// AdaptiveBurnHook V4
// Uniswap V4 hook implementing automatic token burns on swaps.
// Hook address must end in 0x44 (afterSwap + afterSwapReturnDelta flags)
// ============================================================================
interface IPrimerToken {
function burn(uint256 amount) external;
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
}
interface IBuybackVault {
function deposit() external payable;
}
/// @title AdaptiveBurnHookV4
/// @notice Uniswap V4 hook that burns PR on buys and captures ETH on sells
/// @dev Requires hook address ending in 0x44
contract AdaptiveBurnHookV4 is BaseHook {
using CurrencyLibrary for Currency;
using BalanceDeltaLibrary for BalanceDelta;
uint256 private constant BPS_DENOMINATOR = 10000;
uint256 public constant ABSOLUTE_MAX_BPS = 500;
IPrimerToken public immutable prToken;
Currency public immutable prCurrency;
Currency public immutable ethCurrency;
address public owner;
address public operator;
address public vault;
uint16 public buyBurnBps;
uint16 public sellBurnBps;
uint16 public minBuyBps;
uint16 public maxBuyBps;
uint16 public minSellBps;
uint16 public maxSellBps;
bool public paused;
uint256 public totalBurned;
uint256 public totalCapturedEth;
event RatesUpdated(uint16 buyBps, uint16 sellBps, uint256 timestamp);
event BoundsUpdated(uint16 minBuy, uint16 maxBuy, uint16 minSell, uint16 maxSell);
event TokensBurned(address indexed swapper, uint256 amount, bool isBuy);
event EthCaptured(address indexed swapper, uint256 amount);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event OperatorUpdated(address indexed previousOperator, address indexed newOperator);
event VaultUpdated(address indexed previousVault, address indexed newVault);
event PauseStateChanged(bool isPaused);
error Unauthorized();
error BuyMustNotExceedSell();
error RateOutOfBounds();
error ExceedsAbsoluteMax();
error ZeroAddress();
error InvalidBounds();
error VaultNotSet();
modifier onlyOwner() {
if (msg.sender != owner) revert Unauthorized();
_;
}
modifier onlyOwnerOrOperator() {
if (msg.sender != owner && msg.sender != operator) revert Unauthorized();
_;
}
constructor(
IPoolManager _poolManager,
address _prToken,
address _ethCurrency,
address _vault,
address _owner,
uint16 _initialBuyBps,
uint16 _initialSellBps
) BaseHook(_poolManager) {
if (_prToken == address(0) || _owner == address(0)) revert ZeroAddress();
if (_initialBuyBps > _initialSellBps) revert BuyMustNotExceedSell();
if (_initialBuyBps > ABSOLUTE_MAX_BPS || _initialSellBps > ABSOLUTE_MAX_BPS) {
revert ExceedsAbsoluteMax();
}
prToken = IPrimerToken(_prToken);
prCurrency = Currency.wrap(_prToken);
ethCurrency = Currency.wrap(_ethCurrency);
vault = _vault;
owner = _owner;
buyBurnBps = _initialBuyBps;
sellBurnBps = _initialSellBps;
minBuyBps = 50;
maxBuyBps = 300;
minSellBps = 100;
maxSellBps = 400;
emit RatesUpdated(_initialBuyBps, _initialSellBps, block.timestamp);
}
function getHookPermissions() public pure override returns (Hooks.Permissions memory) {
return Hooks.Permissions({
beforeInitialize: false,
afterInitialize: false,
beforeAddLiquidity: false,
afterAddLiquidity: false,
beforeRemoveLiquidity: false,
afterRemoveLiquidity: false,
beforeSwap: false,
afterSwap: true,
beforeDonate: false,
afterDonate: false,
beforeSwapReturnDelta: false,
afterSwapReturnDelta: true,
afterAddLiquidityReturnDelta: false,
afterRemoveLiquidityReturnDelta: false
});
}
// =========================================================================
// CORE SWAP LOGIC
// =========================================================================
function _afterSwap(
address sender,
PoolKey calldata key,
IPoolManager.SwapParams calldata params,
BalanceDelta delta,
bytes calldata
) internal override returns (bytes4, int128) {
if (paused) {
return (this.afterSwap.selector, 0);
}
bool prIsToken0 = Currency.unwrap(key.currency0) == Currency.unwrap(prCurrency);
bool prInPool = prIsToken0 || Currency.unwrap(key.currency1) == Currency.unwrap(prCurrency);
if (!prInPool) {
return (this.afterSwap.selector, 0);
}
bool isSell = (prIsToken0 && params.zeroForOne) || (!prIsToken0 && !params.zeroForOne);
int128 prDelta = prIsToken0 ? delta.amount0() : delta.amount1();
int128 ethDelta = prIsToken0 ? delta.amount1() : delta.amount0();
if (isSell) {
// SELL: User receives ETH (ethDelta > 0), capture portion for vault
if (ethDelta <= 0 || vault == address(0)) {
return (this.afterSwap.selector, 0);
}
uint256 ethOutput = uint256(uint128(ethDelta));
uint256 captureAmount = (ethOutput * sellBurnBps) / BPS_DENOMINATOR;
if (captureAmount == 0) {
return (this.afterSwap.selector, 0);
}
require(captureAmount <= uint128(type(int128).max), "capture too large");
Currency otherCurrency = prIsToken0 ? key.currency1 : key.currency0;
poolManager.take(otherCurrency, vault, captureAmount);
unchecked {
totalCapturedEth += captureAmount;
}
emit EthCaptured(sender, captureAmount);
return (this.afterSwap.selector, int128(int256(captureAmount)));
} else {
// BUY: User receives PR (prDelta > 0), burn portion
if (prDelta <= 0) {
return (this.afterSwap.selector, 0);
}
uint256 prOutput = uint256(uint128(prDelta));
uint256 burnAmount = (prOutput * buyBurnBps) / BPS_DENOMINATOR;
if (burnAmount == 0) {
return (this.afterSwap.selector, 0);
}
require(burnAmount <= uint128(type(int128).max), "burn too large");
poolManager.take(prCurrency, address(this), burnAmount);
prToken.burn(burnAmount);
unchecked {
totalBurned += burnAmount;
}
emit TokensBurned(sender, burnAmount, true);
return (this.afterSwap.selector, int128(int256(burnAmount)));
}
}
// =========================================================================
// ADMIN FUNCTIONS
// =========================================================================
function setRates(uint16 _buyBps, uint16 _sellBps) external onlyOwnerOrOperator {
if (_buyBps > _sellBps) revert BuyMustNotExceedSell();
if (_buyBps < minBuyBps || _buyBps > maxBuyBps) revert RateOutOfBounds();
if (_sellBps < minSellBps || _sellBps > maxSellBps) revert RateOutOfBounds();
buyBurnBps = _buyBps;
sellBurnBps = _sellBps;
emit RatesUpdated(_buyBps, _sellBps, block.timestamp);
}
function setOperator(address _operator) external onlyOwner {
emit OperatorUpdated(operator, _operator);
operator = _operator;
}
function setVault(address _vault) external onlyOwner {
emit VaultUpdated(vault, _vault);
vault = _vault;
}
function setBounds(uint16 _minBuy, uint16 _maxBuy, uint16 _minSell, uint16 _maxSell) external onlyOwner {
if (_maxBuy > ABSOLUTE_MAX_BPS || _maxSell > ABSOLUTE_MAX_BPS) revert ExceedsAbsoluteMax();
if (_minBuy > _maxBuy || _minSell > _maxSell) revert InvalidBounds();
minBuyBps = _minBuy;
maxBuyBps = _maxBuy;
minSellBps = _minSell;
maxSellBps = _maxSell;
emit BoundsUpdated(_minBuy, _maxBuy, _minSell, _maxSell);
}
function setPaused(bool _paused) external onlyOwner {
paused = _paused;
emit PauseStateChanged(_paused);
}
function transferOwnership(address _newOwner) external onlyOwner {
if (_newOwner == address(0)) revert ZeroAddress();
emit OwnershipTransferred(owner, _newOwner);
owner = _newOwner;
}
// =========================================================================
// VIEW FUNCTIONS
// =========================================================================
function getRates() external view returns (uint16, uint16) {
return (buyBurnBps, sellBurnBps);
}
function getBounds() external view returns (uint16, uint16, uint16, uint16) {
return (minBuyBps, maxBuyBps, minSellBps, maxSellBps);
}
function previewBurn(uint256 amount, bool isBuy) external view returns (uint256) {
return (amount * (isBuy ? buyBurnBps : sellBurnBps)) / BPS_DENOMINATOR;
}
function canUpdateRates(address account) external view returns (bool) {
return account == owner || account == operator;
}
function getStats() external view returns (uint256 burned, uint256 captured) {
return (totalBurned, totalCapturedEth);
}
// =========================================================================
// RESCUE FUNCTIONS
// =========================================================================
function rescueTokens(address token, uint256 amount, address to) external onlyOwner {
if (token == address(prToken)) {
prToken.burn(amount);
} else {
if (to == address(0)) revert ZeroAddress();
IPrimerToken(token).transfer(to, amount);
}
}
}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":"_prToken","type":"address"},{"internalType":"address","name":"_ethCurrency","type":"address"},{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint16","name":"_initialBuyBps","type":"uint16"},{"internalType":"uint16","name":"_initialSellBps","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BuyMustNotExceedSell","type":"error"},{"inputs":[],"name":"ExceedsAbsoluteMax","type":"error"},{"inputs":[],"name":"HookNotImplemented","type":"error"},{"inputs":[],"name":"InvalidBounds","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[],"name":"RateOutOfBounds","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"VaultNotSet","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"minBuy","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"maxBuy","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"minSell","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"maxSell","type":"uint16"}],"name":"BoundsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"swapper","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthCaptured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorUpdated","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":[{"indexed":false,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"PauseStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"buyBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"sellBps","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"RatesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"swapper","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isBuy","type":"bool"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"}],"name":"VaultUpdated","type":"event"},{"inputs":[],"name":"ABSOLUTE_MAX_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"internalType":"uint160","name":"","type":"uint160"},{"internalType":"int24","name":"","type":"int24"}],"name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"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":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IPoolManager.SwapParams","name":"params","type":"tuple"},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"internalType":"uint160","name":"","type":"uint160"}],"name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IPoolManager.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":[],"name":"buyBurnBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"canUpdateRates","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethCurrency","outputs":[{"internalType":"Currency","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBounds","outputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHookPermissions","outputs":[{"components":[{"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":"beforeSwap","type":"bool"},{"internalType":"bool","name":"afterSwap","type":"bool"},{"internalType":"bool","name":"beforeDonate","type":"bool"},{"internalType":"bool","name":"afterDonate","type":"bool"},{"internalType":"bool","name":"beforeSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterAddLiquidityReturnDelta","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidityReturnDelta","type":"bool"}],"internalType":"struct Hooks.Permissions","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getRates","outputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStats","outputs":[{"internalType":"uint256","name":"burned","type":"uint256"},{"internalType":"uint256","name":"captured","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBuyBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSellBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prCurrency","outputs":[{"internalType":"Currency","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prToken","outputs":[{"internalType":"contract IPrimerToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"}],"name":"previewBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_minBuy","type":"uint16"},{"internalType":"uint16","name":"_maxBuy","type":"uint16"},{"internalType":"uint16","name":"_minSell","type":"uint16"},{"internalType":"uint16","name":"_maxSell","type":"uint16"}],"name":"setBounds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_buyBps","type":"uint16"},{"internalType":"uint16","name":"_sellBps","type":"uint16"}],"name":"setRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCapturedEth","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":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
61010060405234801562000011575f80fd5b506040516200203938038062002039833981016040819052620000349162000446565b6001600160a01b0387166080528662000135306200012f604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c08101829052600160e0820181905261010082018390526101208201839052610140820183905261016082015261018081018290526101a081019190915290565b620002b3565b506001600160a01b03861615806200015457506001600160a01b038316155b15620001735760405163d92e233d60e01b815260040160405180910390fd5b8061ffff168261ffff1611156200019d576040516378c5623560e01b815260040160405180910390fd5b6101f48261ffff161180620001b757506101f48161ffff16115b15620001d65760405163f2c8ebdb60e01b815260040160405180910390fd5b6001600160a01b0386811660a081905260c05285811660e052600280545f80546001600160a01b0319168785161790559186166001600160b01b031990921691909117600160a01b61ffff8581169182029290921763ffffffff60b01b1916600160b01b92851692830261ffff60c01b191617601960c11b176001600160d01b031664640019004b60d21b1790925560408051928352602083019190915242908201527f59f5b5d0be96f1a5b9b82414d4babf5c04060413a6b968fa5d5df1f2524ddeea9060600160405180910390a150505050505050620004e4565b613fff82165f620002c48362000332565b9050806001600160a01b0316826001600160a01b0316146200032c5760405162461bcd60e51b815260206004820152601b60248201527f486f6f6b206164647265737320666c616773206d69736d617463680000000000604482015260640160405180910390fd5b50505050565b80515f908190156200034357612000175b8260200151156200035357611000175b8260400151156200036357610800175b8260600151156200037357610400175b8260800151156200038357610200175b8260a00151156200039357610100175b8260c0015115620003a2576080175b8260e0015115620003b1576040175b82610100015115620003c1576020175b82610120015115620003d1576010175b82610140015115620003e1576008175b82610160015115620003f1576004175b8261018001511562000401576002175b826101a001511562000411576001175b92915050565b6001600160a01b03811681146200042c575f80fd5b50565b805161ffff8116811462000441575f80fd5b919050565b5f805f805f805f60e0888a0312156200045d575f80fd5b87516200046a8162000417565b60208901519097506200047d8162000417565b6040890151909650620004908162000417565b6060890151909550620004a38162000417565b6080890151909450620004b68162000417565b9250620004c660a089016200042f565b9150620004d660c089016200042f565b905092959891949750929550565b60805160a05160c05160e051611adb6200055e5f395f61029f01525f818161030a01528181610f4801528181610f93015261133201525f818161048401528181610bc101528181610c0e01526113d201525f81816106920152818161095101528181610da00152818161119901526113670152611adb5ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c80638da5cb5b11610135578063d89135cd116100b4578063f2fde38b11610079578063f2fde38b146106d7578063f57dbbb5146106ea578063f84b2d8f146106fd578063fa7fa19814610710578063fbfa77cf14610725575f80fd5b8063d89135cd14610684578063dc4c90d31461068d578063dc98354e146106b4578063dfb3f51a146106c2578063e1b4af6914610552575f80fd5b8063b47b2fb1116100fa578063b47b2fb11461051c578063b6a8b0fa14610552578063bf1be3ac14610560578063c4e833ce14610575578063c59d484714610669575f80fd5b80638da5cb5b146104b95780639accab55146104cb5780639f063efc1461043e578063b37fd190146104f6578063b3ab15fb14610509575f80fd5b806356c4854b116101c15780636817031b116101865780636817031b1461042b5780636c2bbe7e1461043e5780636fe7e6eb14610471578063891ca6a61461047f578063893f3b47146104a6575f80fd5b806356c4854b146103a1578063570ca735146103b4578063575e24b4146103c75780635c975abb1461040557806365f5f1a214610422575f80fd5b8063259982e511610207578063259982e5146102d957806327fa9ceb1461030557806339d7dda21461032c5780633b8f954b146103435780633cc87a2014610358575f80fd5b80630a971dbf146102435780630e1c5d5c1461027057806316c38b3c146102855780631f34dab91461029a57806321d0ee70146102d9575b5f80fd5b60025461025890600160f01b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b60025461025890600160e01b900461ffff1681565b6102986102933660046114b9565b610738565b005b6102c17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610267565b6102ec6102e736600461155a565b6107a8565b6040516001600160e01b03199091168152602001610267565b6102c17f000000000000000000000000000000000000000000000000000000000000000081565b61033560055481565b604051908152602001610267565b60025461025890600160c01b900461ffff1681565b6002546040805161ffff600160c01b840481168252600160d01b840481166020830152600160e01b8404811692820192909252600160f01b909204166060820152608001610267565b6102986103af3660046115e7565b6107c2565b6001546102c1906001600160a01b031681565b6103da6103d5366004611628565b610943565b604080516001600160e01b03199094168452602084019290925262ffffff1690820152606001610267565b6003546104129060ff1681565b6040519015158152602001610267565b6103356101f481565b610298610439366004611682565b6109a8565b61045161044c36600461169d565b610a2c565b604080516001600160e01b03199093168352602083019190915201610267565b6102ec6102e7366004611728565b6102c17f000000000000000000000000000000000000000000000000000000000000000081565b6102986104b4366004611787565b610a47565b5f546102c1906001600160a01b031681565b6002546040805161ffff600160a01b840481168252600160b01b909304909216602083015201610267565b6102986105043660046117d8565b610b96565b610298610517366004611682565b610d0f565b61052f61052a366004611817565b610d93565b604080516001600160e01b03199093168352600f9190910b602083015201610267565b6102ec6102e7366004611898565b60025461025890600160b01b900461ffff1681565b61065c604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c08101829052600160e0820181905261010082018390526101208201839052610140820183905261016082015261018081018290526101a081019190915290565b60405161026791906118f2565b60045460055460408051928352602083019190915201610267565b61033560045481565b6102c17f000000000000000000000000000000000000000000000000000000000000000081565b6102ec6102e73660046119de565b60025461025890600160d01b900461ffff1681565b6102986106e5366004611682565b610dfc565b6103356106f8366004611a1a565b610ea5565b61041261070b366004611682565b610ef1565b60025461025890600160a01b900461ffff1681565b6002546102c1906001600160a01b031681565b5f546001600160a01b03163314610761576040516282b42960e81b815260040160405180910390fd5b6003805460ff19168215159081179091556040519081527f4543baa938cb97f5073ec206ad35638cdb1f4db8f677d31579b2f6fe7d18c14a9060200160405180910390a150565b5f604051630a85dc2960e01b815260040160405180910390fd5b5f546001600160a01b031633148015906107e757506001546001600160a01b03163314155b15610804576040516282b42960e81b815260040160405180910390fd5b8061ffff168261ffff16111561082d576040516378c5623560e01b815260040160405180910390fd5b60025461ffff600160c01b9091048116908316108061085c575060025461ffff600160d01b9091048116908316115b1561087a57604051632e2039ab60e21b815260040160405180910390fd5b60025461ffff600160e01b909104811690821610806108a9575060025461ffff600160f01b9091048116908216115b156108c757604051632e2039ab60e21b815260040160405180910390fd5b6002805463ffffffff60a01b1916600160a01b61ffff85811691820261ffff60b01b191692909217600160b01b9285169283021790925560408051928352602083019190915242908201527f59f5b5d0be96f1a5b9b82414d4babf5c04060413a6b968fa5d5df1f2524ddeea9060600160405180910390a15050565b5f8080336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461098f5760405163570c108560e11b815260040160405180910390fd5b604051630a85dc2960e01b815260040160405180910390fd5b5f546001600160a01b031633146109d1576040516282b42960e81b815260040160405180910390fd5b6002546040516001600160a01b038084169216907f483bdedaaf23706a9800ac1af0d852b34927780d79f9d6ba60a80c7cad75ea39905f90a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f80604051630a85dc2960e01b815260040160405180910390fd5b5f546001600160a01b03163314610a70576040516282b42960e81b815260040160405180910390fd5b6101f48361ffff161180610a8957506101f48161ffff16115b15610aa75760405163f2c8ebdb60e01b815260040160405180910390fd5b8261ffff168461ffff161180610ac457508061ffff168261ffff16115b15610ae25760405163a883435760e01b815260040160405180910390fd5b6002805463ffffffff60c01b1916600160c01b61ffff87811691820261ffff60d01b191692909217600160d01b878416908102919091176001600160e01b0316600160e01b8785169081026001600160f01b031691909117600160f01b9487169485021790945560408051928352602083019190915281019290925260608201527f7382a72a2b2a6f08ed9f677a4d0ee36943d93658b4111c01c3d22fe7cdd75ea79060800160405180910390a150505050565b5f546001600160a01b03163314610bbf576040516282b42960e81b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610c7257604051630852cd8d60e31b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c68906024015f604051808303815f87803b158015610c57575f80fd5b505af1158015610c69573d5f803e3d5ffd5b50505050505050565b6001600160a01b038116610c995760405163d92e233d60e01b815260040160405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610ce5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d099190611a48565b50505050565b5f546001600160a01b03163314610d38576040516282b42960e81b815260040160405180910390fd5b6001546040516001600160a01b038084169216907ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03905f90a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dde5760405163570c108560e11b815260040160405180910390fd5b610dec888888888888610f1d565b915091505b965096945050505050565b5f546001600160a01b03163314610e25576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116610e4c5760405163d92e233d60e01b815260040160405180910390fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f61271082610ec157600254600160b01b900461ffff16610ed0565b600254600160a01b900461ffff165b610ede9061ffff1685611a63565b610ee89190611a86565b90505b92915050565b5f80546001600160a01b0383811691161480610eeb5750506001546001600160a01b0390811691161490565b6003545f90819060ff1615610f3d575063b47b2fb160e01b90505f610df1565b5f6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610f7560208a018a611682565b6001600160a01b03161490505f8180610fce57506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610fc360408b0160208c01611682565b6001600160a01b0316145b905080610fea575063b47b2fb160e01b92505f9150610df19050565b5f828015611000575061100060208a018a6114b9565b8061101e57508215801561101e575061101c60208a018a6114b9565b155b90505f8361102c5788611036565b6110368960801d90565b90505f8461104d576110488a60801d90565b61104f565b895b9050821561125b575f81600f0b13158061107257506002546001600160a01b0316155b1561108f575063b47b2fb160e01b95505f9450610df19350505050565b6002546001600160801b038216905f90612710906110b890600160b01b900461ffff1684611a63565b6110c29190611a86565b9050805f036110e5575063b47b2fb160e01b97505f9650610df195505050505050565b60016001607f1b038111156111355760405162461bcd60e51b81526020600482015260116024820152706361707475726520746f6f206c6172676560781b60448201526064015b60405180910390fd5b5f87611152578e5f01602081019061114d9190611682565b611165565b8e60200160208101906111659190611682565b600254604051630b0d9c0960e01b81526001600160a01b0380841660048301529182166024820152604481018590529192507f00000000000000000000000000000000000000000000000000000000000000001690630b0d9c09906064015f604051808303815f87803b1580156111da575f80fd5b505af11580156111ec573d5f803e3d5ffd5b505050508160055f82825401925050819055508f6001600160a01b03167f6736979c4f54e6c60d693b74f2fba36eec0193132342caec0466cc5196cd1bdc8360405161123a91815260200190565b60405180910390a25063b47b2fb160e01b98509650610df195505050505050565b5f82600f0b1361127d575063b47b2fb160e01b95505f9450610df19350505050565b6002546001600160801b038316905f90612710906112a690600160a01b900461ffff1684611a63565b6112b09190611a86565b9050805f036112d3575063b47b2fb160e01b97505f9650610df195505050505050565b60016001607f1b0381111561131b5760405162461bcd60e51b815260206004820152600e60248201526d6275726e20746f6f206c6172676560901b604482015260640161112c565b604051630b0d9c0960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152604482018390527f00000000000000000000000000000000000000000000000000000000000000001690630b0d9c09906064015f604051808303815f87803b1580156113a8575f80fd5b505af11580156113ba573d5f803e3d5ffd5b5050604051630852cd8d60e31b8152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b15801561141d575f80fd5b505af115801561142f573d5f803e3d5ffd5b505050508060045f82825401925050819055508e6001600160a01b03167f7b10bf146cdc5eae8410993ac44c741ece7649a7a07abf29f738ec0729bc69c68260016040516114899291909182521515602082015260400190565b60405180910390a263b47b2fb160e01b98509650610df195505050505050565b80151581146114b6575f80fd5b50565b5f602082840312156114c9575f80fd5b81356114d4816114a9565b9392505050565b6001600160a01b03811681146114b6575f80fd5b5f60a082840312156114ff575f80fd5b50919050565b5f608082840312156114ff575f80fd5b5f8083601f840112611525575f80fd5b50813567ffffffffffffffff81111561153c575f80fd5b602083019150836020828501011115611553575f80fd5b9250929050565b5f805f805f610160868803121561156f575f80fd5b853561157a816114db565b945061158987602088016114ef565b93506115988760c08801611505565b925061014086013567ffffffffffffffff8111156115b4575f80fd5b6115c088828901611515565b969995985093965092949392505050565b803561ffff811681146115e2575f80fd5b919050565b5f80604083850312156115f8575f80fd5b611601836115d1565b915061160f602084016115d1565b90509250929050565b5f606082840312156114ff575f80fd5b5f805f805f610140868803121561163d575f80fd5b8535611648816114db565b945061165787602088016114ef565b93506116668760c08801611618565b925061012086013567ffffffffffffffff8111156115b4575f80fd5b5f60208284031215611692575f80fd5b81356114d4816114db565b5f805f805f805f6101a0888a0312156116b4575f80fd5b87356116bf816114db565b96506116ce8960208a016114ef565b95506116dd8960c08a01611505565b94506101408801359350610160880135925061018088013567ffffffffffffffff811115611709575f80fd5b6117158a828b01611515565b989b979a50959850939692959293505050565b5f805f80610100858703121561173c575f80fd5b8435611747816114db565b935061175686602087016114ef565b925060c0850135611766816114db565b915060e0850135600281900b811461177c575f80fd5b939692955090935050565b5f805f806080858703121561179a575f80fd5b6117a3856115d1565b93506117b1602086016115d1565b92506117bf604086016115d1565b91506117cd606086016115d1565b905092959194509250565b5f805f606084860312156117ea575f80fd5b83356117f5816114db565b925060208401359150604084013561180c816114db565b809150509250925092565b5f805f805f80610160878903121561182d575f80fd5b8635611838816114db565b955061184788602089016114ef565b94506118568860c08901611618565b9350610120870135925061014087013567ffffffffffffffff81111561187a575f80fd5b61188689828a01611515565b979a9699509497509295939492505050565b5f805f805f8061012087890312156118ae575f80fd5b86356118b9816114db565b95506118c888602089016114ef565b945060c0870135935060e0870135925061010087013567ffffffffffffffff81111561187a575f80fd5b8151151581526101c081016020830151611910602084018215159052565b506040830151611924604084018215159052565b506060830151611938606084018215159052565b50608083015161194c608084018215159052565b5060a083015161196060a084018215159052565b5060c083015161197460c084018215159052565b5060e083015161198860e084018215159052565b5061010083810151151590830152610120808401511515908301526101408084015115159083015261016080840151151590830152610180808401511515908301526101a0928301511515929091019190915290565b5f805f60e084860312156119f0575f80fd5b83356119fb816114db565b9250611a0a85602086016114ef565b915060c084013561180c816114db565b5f8060408385031215611a2b575f80fd5b823591506020830135611a3d816114a9565b809150509250929050565b5f60208284031215611a58575f80fd5b81516114d4816114a9565b8082028115828204841417610eeb57634e487b7160e01b5f52601160045260245ffd5b5f82611aa057634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220a5b367d1d4867d888ce5ead07a5e13744f7a11f110a1ea937a6612a9f477556364736f6c63430008180033000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa1530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e5c3c17b90336f2ce85ea521b3f8ae54ba731ec500000000000000000000000090292b16888f20c83ec40aeba5ef47f96e8b80ea00000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000fa
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061023f575f3560e01c80638da5cb5b11610135578063d89135cd116100b4578063f2fde38b11610079578063f2fde38b146106d7578063f57dbbb5146106ea578063f84b2d8f146106fd578063fa7fa19814610710578063fbfa77cf14610725575f80fd5b8063d89135cd14610684578063dc4c90d31461068d578063dc98354e146106b4578063dfb3f51a146106c2578063e1b4af6914610552575f80fd5b8063b47b2fb1116100fa578063b47b2fb11461051c578063b6a8b0fa14610552578063bf1be3ac14610560578063c4e833ce14610575578063c59d484714610669575f80fd5b80638da5cb5b146104b95780639accab55146104cb5780639f063efc1461043e578063b37fd190146104f6578063b3ab15fb14610509575f80fd5b806356c4854b116101c15780636817031b116101865780636817031b1461042b5780636c2bbe7e1461043e5780636fe7e6eb14610471578063891ca6a61461047f578063893f3b47146104a6575f80fd5b806356c4854b146103a1578063570ca735146103b4578063575e24b4146103c75780635c975abb1461040557806365f5f1a214610422575f80fd5b8063259982e511610207578063259982e5146102d957806327fa9ceb1461030557806339d7dda21461032c5780633b8f954b146103435780633cc87a2014610358575f80fd5b80630a971dbf146102435780630e1c5d5c1461027057806316c38b3c146102855780631f34dab91461029a57806321d0ee70146102d9575b5f80fd5b60025461025890600160f01b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b60025461025890600160e01b900461ffff1681565b6102986102933660046114b9565b610738565b005b6102c17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610267565b6102ec6102e736600461155a565b6107a8565b6040516001600160e01b03199091168152602001610267565b6102c17f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa15381565b61033560055481565b604051908152602001610267565b60025461025890600160c01b900461ffff1681565b6002546040805161ffff600160c01b840481168252600160d01b840481166020830152600160e01b8404811692820192909252600160f01b909204166060820152608001610267565b6102986103af3660046115e7565b6107c2565b6001546102c1906001600160a01b031681565b6103da6103d5366004611628565b610943565b604080516001600160e01b03199094168452602084019290925262ffffff1690820152606001610267565b6003546104129060ff1681565b6040519015158152602001610267565b6103356101f481565b610298610439366004611682565b6109a8565b61045161044c36600461169d565b610a2c565b604080516001600160e01b03199093168352602083019190915201610267565b6102ec6102e7366004611728565b6102c17f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa15381565b6102986104b4366004611787565b610a47565b5f546102c1906001600160a01b031681565b6002546040805161ffff600160a01b840481168252600160b01b909304909216602083015201610267565b6102986105043660046117d8565b610b96565b610298610517366004611682565b610d0f565b61052f61052a366004611817565b610d93565b604080516001600160e01b03199093168352600f9190910b602083015201610267565b6102ec6102e7366004611898565b60025461025890600160b01b900461ffff1681565b61065c604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c08101829052600160e0820181905261010082018390526101208201839052610140820183905261016082015261018081018290526101a081019190915290565b60405161026791906118f2565b60045460055460408051928352602083019190915201610267565b61033560045481565b6102c17f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b81565b6102ec6102e73660046119de565b60025461025890600160d01b900461ffff1681565b6102986106e5366004611682565b610dfc565b6103356106f8366004611a1a565b610ea5565b61041261070b366004611682565b610ef1565b60025461025890600160a01b900461ffff1681565b6002546102c1906001600160a01b031681565b5f546001600160a01b03163314610761576040516282b42960e81b815260040160405180910390fd5b6003805460ff19168215159081179091556040519081527f4543baa938cb97f5073ec206ad35638cdb1f4db8f677d31579b2f6fe7d18c14a9060200160405180910390a150565b5f604051630a85dc2960e01b815260040160405180910390fd5b5f546001600160a01b031633148015906107e757506001546001600160a01b03163314155b15610804576040516282b42960e81b815260040160405180910390fd5b8061ffff168261ffff16111561082d576040516378c5623560e01b815260040160405180910390fd5b60025461ffff600160c01b9091048116908316108061085c575060025461ffff600160d01b9091048116908316115b1561087a57604051632e2039ab60e21b815260040160405180910390fd5b60025461ffff600160e01b909104811690821610806108a9575060025461ffff600160f01b9091048116908216115b156108c757604051632e2039ab60e21b815260040160405180910390fd5b6002805463ffffffff60a01b1916600160a01b61ffff85811691820261ffff60b01b191692909217600160b01b9285169283021790925560408051928352602083019190915242908201527f59f5b5d0be96f1a5b9b82414d4babf5c04060413a6b968fa5d5df1f2524ddeea9060600160405180910390a15050565b5f8080336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b161461098f5760405163570c108560e11b815260040160405180910390fd5b604051630a85dc2960e01b815260040160405180910390fd5b5f546001600160a01b031633146109d1576040516282b42960e81b815260040160405180910390fd5b6002546040516001600160a01b038084169216907f483bdedaaf23706a9800ac1af0d852b34927780d79f9d6ba60a80c7cad75ea39905f90a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f80604051630a85dc2960e01b815260040160405180910390fd5b5f546001600160a01b03163314610a70576040516282b42960e81b815260040160405180910390fd5b6101f48361ffff161180610a8957506101f48161ffff16115b15610aa75760405163f2c8ebdb60e01b815260040160405180910390fd5b8261ffff168461ffff161180610ac457508061ffff168261ffff16115b15610ae25760405163a883435760e01b815260040160405180910390fd5b6002805463ffffffff60c01b1916600160c01b61ffff87811691820261ffff60d01b191692909217600160d01b878416908102919091176001600160e01b0316600160e01b8785169081026001600160f01b031691909117600160f01b9487169485021790945560408051928352602083019190915281019290925260608201527f7382a72a2b2a6f08ed9f677a4d0ee36943d93658b4111c01c3d22fe7cdd75ea79060800160405180910390a150505050565b5f546001600160a01b03163314610bbf576040516282b42960e81b815260040160405180910390fd5b7f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa1536001600160a01b0316836001600160a01b031603610c7257604051630852cd8d60e31b8152600481018390527f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa1536001600160a01b0316906342966c68906024015f604051808303815f87803b158015610c57575f80fd5b505af1158015610c69573d5f803e3d5ffd5b50505050505050565b6001600160a01b038116610c995760405163d92e233d60e01b815260040160405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610ce5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d099190611a48565b50505050565b5f546001600160a01b03163314610d38576040516282b42960e81b815260040160405180910390fd5b6001546040516001600160a01b038084169216907ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03905f90a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f80336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1614610dde5760405163570c108560e11b815260040160405180910390fd5b610dec888888888888610f1d565b915091505b965096945050505050565b5f546001600160a01b03163314610e25576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116610e4c5760405163d92e233d60e01b815260040160405180910390fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f61271082610ec157600254600160b01b900461ffff16610ed0565b600254600160a01b900461ffff165b610ede9061ffff1685611a63565b610ee89190611a86565b90505b92915050565b5f80546001600160a01b0383811691161480610eeb5750506001546001600160a01b0390811691161490565b6003545f90819060ff1615610f3d575063b47b2fb160e01b90505f610df1565b5f6001600160a01b037f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa15316610f7560208a018a611682565b6001600160a01b03161490505f8180610fce57506001600160a01b037f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa15316610fc360408b0160208c01611682565b6001600160a01b0316145b905080610fea575063b47b2fb160e01b92505f9150610df19050565b5f828015611000575061100060208a018a6114b9565b8061101e57508215801561101e575061101c60208a018a6114b9565b155b90505f8361102c5788611036565b6110368960801d90565b90505f8461104d576110488a60801d90565b61104f565b895b9050821561125b575f81600f0b13158061107257506002546001600160a01b0316155b1561108f575063b47b2fb160e01b95505f9450610df19350505050565b6002546001600160801b038216905f90612710906110b890600160b01b900461ffff1684611a63565b6110c29190611a86565b9050805f036110e5575063b47b2fb160e01b97505f9650610df195505050505050565b60016001607f1b038111156111355760405162461bcd60e51b81526020600482015260116024820152706361707475726520746f6f206c6172676560781b60448201526064015b60405180910390fd5b5f87611152578e5f01602081019061114d9190611682565b611165565b8e60200160208101906111659190611682565b600254604051630b0d9c0960e01b81526001600160a01b0380841660048301529182166024820152604481018590529192507f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1690630b0d9c09906064015f604051808303815f87803b1580156111da575f80fd5b505af11580156111ec573d5f803e3d5ffd5b505050508160055f82825401925050819055508f6001600160a01b03167f6736979c4f54e6c60d693b74f2fba36eec0193132342caec0466cc5196cd1bdc8360405161123a91815260200190565b60405180910390a25063b47b2fb160e01b98509650610df195505050505050565b5f82600f0b1361127d575063b47b2fb160e01b95505f9450610df19350505050565b6002546001600160801b038316905f90612710906112a690600160a01b900461ffff1684611a63565b6112b09190611a86565b9050805f036112d3575063b47b2fb160e01b97505f9650610df195505050505050565b60016001607f1b0381111561131b5760405162461bcd60e51b815260206004820152600e60248201526d6275726e20746f6f206c6172676560901b604482015260640161112c565b604051630b0d9c0960e01b81526001600160a01b037f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa15381166004830152306024830152604482018390527f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1690630b0d9c09906064015f604051808303815f87803b1580156113a8575f80fd5b505af11580156113ba573d5f803e3d5ffd5b5050604051630852cd8d60e31b8152600481018490527f0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa1536001600160a01b031692506342966c6891506024015f604051808303815f87803b15801561141d575f80fd5b505af115801561142f573d5f803e3d5ffd5b505050508060045f82825401925050819055508e6001600160a01b03167f7b10bf146cdc5eae8410993ac44c741ece7649a7a07abf29f738ec0729bc69c68260016040516114899291909182521515602082015260400190565b60405180910390a263b47b2fb160e01b98509650610df195505050505050565b80151581146114b6575f80fd5b50565b5f602082840312156114c9575f80fd5b81356114d4816114a9565b9392505050565b6001600160a01b03811681146114b6575f80fd5b5f60a082840312156114ff575f80fd5b50919050565b5f608082840312156114ff575f80fd5b5f8083601f840112611525575f80fd5b50813567ffffffffffffffff81111561153c575f80fd5b602083019150836020828501011115611553575f80fd5b9250929050565b5f805f805f610160868803121561156f575f80fd5b853561157a816114db565b945061158987602088016114ef565b93506115988760c08801611505565b925061014086013567ffffffffffffffff8111156115b4575f80fd5b6115c088828901611515565b969995985093965092949392505050565b803561ffff811681146115e2575f80fd5b919050565b5f80604083850312156115f8575f80fd5b611601836115d1565b915061160f602084016115d1565b90509250929050565b5f606082840312156114ff575f80fd5b5f805f805f610140868803121561163d575f80fd5b8535611648816114db565b945061165787602088016114ef565b93506116668760c08801611618565b925061012086013567ffffffffffffffff8111156115b4575f80fd5b5f60208284031215611692575f80fd5b81356114d4816114db565b5f805f805f805f6101a0888a0312156116b4575f80fd5b87356116bf816114db565b96506116ce8960208a016114ef565b95506116dd8960c08a01611505565b94506101408801359350610160880135925061018088013567ffffffffffffffff811115611709575f80fd5b6117158a828b01611515565b989b979a50959850939692959293505050565b5f805f80610100858703121561173c575f80fd5b8435611747816114db565b935061175686602087016114ef565b925060c0850135611766816114db565b915060e0850135600281900b811461177c575f80fd5b939692955090935050565b5f805f806080858703121561179a575f80fd5b6117a3856115d1565b93506117b1602086016115d1565b92506117bf604086016115d1565b91506117cd606086016115d1565b905092959194509250565b5f805f606084860312156117ea575f80fd5b83356117f5816114db565b925060208401359150604084013561180c816114db565b809150509250925092565b5f805f805f80610160878903121561182d575f80fd5b8635611838816114db565b955061184788602089016114ef565b94506118568860c08901611618565b9350610120870135925061014087013567ffffffffffffffff81111561187a575f80fd5b61188689828a01611515565b979a9699509497509295939492505050565b5f805f805f8061012087890312156118ae575f80fd5b86356118b9816114db565b95506118c888602089016114ef565b945060c0870135935060e0870135925061010087013567ffffffffffffffff81111561187a575f80fd5b8151151581526101c081016020830151611910602084018215159052565b506040830151611924604084018215159052565b506060830151611938606084018215159052565b50608083015161194c608084018215159052565b5060a083015161196060a084018215159052565b5060c083015161197460c084018215159052565b5060e083015161198860e084018215159052565b5061010083810151151590830152610120808401511515908301526101408084015115159083015261016080840151151590830152610180808401511515908301526101a0928301511515929091019190915290565b5f805f60e084860312156119f0575f80fd5b83356119fb816114db565b9250611a0a85602086016114ef565b915060c084013561180c816114db565b5f8060408385031215611a2b575f80fd5b823591506020830135611a3d816114a9565b809150509250929050565b5f60208284031215611a58575f80fd5b81516114d4816114a9565b8082028115828204841417610eeb57634e487b7160e01b5f52601160045260245ffd5b5f82611aa057634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220a5b367d1d4867d888ce5ead07a5e13744f7a11f110a1ea937a6612a9f477556364736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa1530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e5c3c17b90336f2ce85ea521b3f8ae54ba731ec500000000000000000000000090292b16888f20c83ec40aeba5ef47f96e8b80ea00000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000fa
-----Decoded View---------------
Arg [0] : _poolManager (address): 0x498581fF718922c3f8e6A244956aF099B2652b2b
Arg [1] : _prToken (address): 0x2357110F5F0c5344EEf75966500c75116A4aA153
Arg [2] : _ethCurrency (address): 0x0000000000000000000000000000000000000000
Arg [3] : _vault (address): 0xE5C3C17b90336F2cE85eA521b3f8aE54Ba731Ec5
Arg [4] : _owner (address): 0x90292B16888f20C83eC40aEBA5Ef47F96E8B80Ea
Arg [5] : _initialBuyBps (uint16): 200
Arg [6] : _initialSellBps (uint16): 250
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b
Arg [1] : 0000000000000000000000002357110f5f0c5344eef75966500c75116a4aa153
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000e5c3c17b90336f2ce85ea521b3f8ae54ba731ec5
Arg [4] : 00000000000000000000000090292b16888f20c83ec40aeba5ef47f96e8b80ea
Arg [5] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [6] : 00000000000000000000000000000000000000000000000000000000000000fa
Deployed Bytecode Sourcemap
11468:9658:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12092:24;;;;;-1:-1:-1;;;12092:24:0;;;;;;;;;188:6:1;176:19;;;158:38;;146:2;131:18;12092:24:0;;;;;;;;12061;;;;;-1:-1:-1;;;12061:24:0;;;;;;19336:129;;;;;;:::i;:::-;;:::i;:::-;;11804:37;;;;;;;;-1:-1:-1;;;;;766:32:1;;;748:51;;736:2;721:18;11804:37:0;576:229:1;9111:208:0;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;2626:33:1;;;2608:52;;2596:2;2581:18;9111:208:0;2464:202:1;11761:36:0;;;;;12183:31;;;;;;;;;2817:25:1;;;2805:2;2790:18;12183:31:0;2671:177:1;12001:23:0;;;;;-1:-1:-1;;;12001:23:0;;;;;;20003:148;20098:9;;20003:148;;;20098:9;-1:-1:-1;;;20098:9:0;;;;3101:34:1;;-1:-1:-1;;;20109:9:0;;;;3166:2:1;3151:18;;3144:43;-1:-1:-1;;;20120:10:0;;;;3203:18:1;;;3196:43;;;;-1:-1:-1;;;20132:10:0;;;;3270:2:1;3255:18;;3248:43;3063:3;3048:19;20003:148:0;2853:444:1;18088:452:0;;;;;;:::i;:::-;;:::i;11877:23::-;;;;;-1:-1:-1;;;;;11877:23:0;;;9584:227;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;5156:33:1;;;5138:52;;5221:2;5206:18;;5199:34;;;;5281:8;5269:21;5249:18;;;5242:49;5126:2;5111:18;9584:227:0;4906:391:1;12125:18:0;;;;;;;;;;;;5563:14:1;;5556:22;5538:41;;5526:2;5511:18;12125::0;5398:187:1;11662:46:0;;11705:3;11662:46;;18706:129;;;;;;:::i;:::-;;:::i;9327:249::-;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;7092:33:1;;;7074:52;;7157:2;7142:18;;7135:34;;;;7047:18;9327:249:0;6872:303:1;8488:148:0;;;;;;:::i;11717:37::-;;;;;18843:485;;;;;;:::i;:::-;;:::i;11850:20::-;;;;;-1:-1:-1;;;;;11850:20:0;;;19885:110;19963:10;;19885:110;;;19963:10;-1:-1:-1;;;19963:10:0;;;;8699:34:1;;-1:-1:-1;;;19975:11:0;;;;;;8764:2:1;8749:18;;8742:43;8647:18;19885:110:0;8504:287:1;20813:310:0;;;;;;:::i;:::-;;:::i;18548:150::-;;;;;;:::i;:::-;;:::i;9819:284::-;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;10353:33:1;;;10335:52;;10434:2;10423:22;;;;10418:2;10403:18;;10396:50;10308:18;9819:284:0;10165:287:1;10111:172:0;;;;;;:::i;11967:25::-;;;;;-1:-1:-1;;;11967:25:0;;;;;;14324:697;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14428:585:0;;;;;;;;-1:-1:-1;14428:585:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14324:697;;;;;;;;:::i;20480:134::-;20576:11;;20589:16;;20480:134;;;13349:25:1;;;13405:2;13390:18;;13383:34;;;;13322:18;20480:134:0;13175:248:1;12150:26:0;;;;;;7780:41;;;;;8338:142;;;;;;:::i;12031:23::-;;;;;-1:-1:-1;;;12031:23:0;;;;;;19473:215;;;;;;:::i;:::-;;:::i;20159:170::-;;;;;;:::i;:::-;;:::i;20337:135::-;;;;;;:::i;:::-;;:::i;11936:24::-;;;;;-1:-1:-1;;;11936:24:0;;;;;;11907:20;;;;;-1:-1:-1;;;;;11907:20:0;;;19336:129;13096:5;;-1:-1:-1;;;;;13096:5:0;13082:10;:19;13078:46;;13110:14;;-1:-1:-1;;;13110:14:0;;;;;;;;;;;13078:46;19399:6:::1;:16:::0;;-1:-1:-1;;19399:16:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19431:26:::1;::::0;5538:41:1;;;19431:26:0::1;::::0;5526:2:1;5511:18;19431:26:0::1;;;;;;;19336:129:::0;:::o;9111:208::-;9265:6;9291:20;;-1:-1:-1;;;9291:20:0;;;;;;;;;;;18088:452;13212:5;;-1:-1:-1;;;;;13212:5:0;13198:10;:19;;;;:45;;-1:-1:-1;13235:8:0;;-1:-1:-1;;;;;13235:8:0;13221:10;:22;;13198:45;13194:72;;;13252:14;;-1:-1:-1;;;13252:14:0;;;;;;;;;;;13194:72;18193:8:::1;18183:18;;:7;:18;;;18179:53;;;18210:22;;-1:-1:-1::0;;;18210:22:0::1;;;;;;;;;;;18179:53;18257:9;::::0;::::1;-1:-1:-1::0;;;18257:9:0;;::::1;::::0;::::1;18247:19:::0;;::::1;;::::0;:42:::1;;-1:-1:-1::0;18280:9:0::1;::::0;::::1;-1:-1:-1::0;;;18280:9:0;;::::1;::::0;::::1;18270:19:::0;;::::1;;18247:42;18243:72;;;18298:17;;-1:-1:-1::0;;;18298:17:0::1;;;;;;;;;;;18243:72;18341:10;::::0;::::1;-1:-1:-1::0;;;18341:10:0;;::::1;::::0;::::1;18330:21:::0;;::::1;;::::0;:46:::1;;-1:-1:-1::0;18366:10:0::1;::::0;::::1;-1:-1:-1::0;;;18366:10:0;;::::1;::::0;::::1;18355:21:::0;;::::1;;18330:46;18326:76;;;18385:17;;-1:-1:-1::0;;;18385:17:0::1;;;;;;;;;;;18326:76;18415:10;:20:::0;;-1:-1:-1;;;;18446:22:0;-1:-1:-1;;;18415:20:0::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;;18446:22:0;;;;;-1:-1:-1;;;18446:22:0;;::::1;::::0;;::::1;;::::0;;;18484:48:::1;::::0;;14713:34:1;;;14778:2;14763:18;;14756:43;;;;18516:15:0::1;14815:18:1::0;;;14808:34;18484:48:0::1;::::0;14676:2:1;14661:18;18484:48:0::1;;;;;;;18088:452:::0;;:::o;9584:227::-;9732:6;;;7936:10;-1:-1:-1;;;;;7958:11:0;7936:34;;7932:63;;7979:16;;-1:-1:-1;;;7979:16:0;;;;;;;;;;;7932:63;9783:20:::1;;-1:-1:-1::0;;;9783:20:0::1;;;;;;;;;;;18706:129:::0;13096:5;;-1:-1:-1;;;;;13096:5:0;13082:10;:19;13078:46;;13110:14;;-1:-1:-1;;;13110:14:0;;;;;;;;;;;13078:46;18788:5:::1;::::0;18775:27:::1;::::0;-1:-1:-1;;;;;18775:27:0;;::::1;::::0;18788:5:::1;::::0;18775:27:::1;::::0;18788:5:::1;::::0;18775:27:::1;18813:5;:14:::0;;-1:-1:-1;;;;;;18813:14:0::1;-1:-1:-1::0;;;;;18813:14:0;;;::::1;::::0;;;::::1;::::0;;18706:129::o;9327:249::-;9508:6;9516:12;9548:20;;-1:-1:-1;;;9548:20:0;;;;;;;;;;;18843:485;13096:5;;-1:-1:-1;;;;;13096:5:0;13082:10;:19;13078:46;;13110:14;;-1:-1:-1;;;13110:14:0;;;;;;;;;;;13078:46;11705:3:::1;18962:7;:26;;;:57;;;;11705:3;18992:8;:27;;;18962:57;18958:90;;;19028:20;;-1:-1:-1::0;;;19028:20:0::1;;;;;;;;;;;18958:90;19073:7;19063:17;;:7;:17;;;:40;;;;19095:8;19084:19;;:8;:19;;;19063:40;19059:68;;;19112:15;;-1:-1:-1::0;;;19112:15:0::1;;;;;;;;;;;19059:68;19140:9;:19:::0;;-1:-1:-1;;;;19170:19:0;-1:-1:-1;;;19140:19:0::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;;19170:19:0;;;;;-1:-1:-1;;;19170:19:0;;::::1;::::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;;19232:21:0;-1:-1:-1;;;19200:21:0;;::::1;::::0;;::::1;-1:-1:-1::0;;;;;19232:21:0;;;;;-1:-1:-1;;;19232:21:0;;::::1;::::0;;::::1;;::::0;;;19269:51:::1;::::0;;3101:34:1;;;3166:2;3151:18;;3144:43;;;;3203:18;;3196:43;;;;3270:2;3255:18;;3248:43;19269:51:0::1;::::0;3063:3:1;3048:19;19269:51:0::1;;;;;;;18843:485:::0;;;;:::o;20813:310::-;13096:5;;-1:-1:-1;;;;;13096:5:0;13082:10;:19;13078:46;;13110:14;;-1:-1:-1;;;13110:14:0;;;;;;;;;;;13078:46;20929:7:::1;-1:-1:-1::0;;;;;20912:25:0::1;:5;-1:-1:-1::0;;;;;20912:25:0::1;::::0;20908:208:::1;;20954:20;::::0;-1:-1:-1;;;20954:20:0;;::::1;::::0;::::1;2817:25:1::0;;;20954:7:0::1;-1:-1:-1::0;;;;;20954:12:0::1;::::0;::::1;::::0;2790:18:1;;20954:20:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20813:310:::0;;;:::o;20908:208::-:1;-1:-1:-1::0;;;;;21011:16:0;::::1;21007:42;;21036:13;;-1:-1:-1::0;;;21036:13:0::1;;;;;;;;;;;21007:42;21064:40;::::0;-1:-1:-1;;;21064:40:0;;-1:-1:-1;;;;;15045:32:1;;;21064:40:0::1;::::0;::::1;15027:51:1::0;15094:18;;;15087:34;;;21064:28:0;::::1;::::0;::::1;::::0;15000:18:1;;21064:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20813:310:::0;;;:::o;18548:150::-;13096:5;;-1:-1:-1;;;;;13096:5:0;13082:10;:19;13078:46;;13110:14;;-1:-1:-1;;;13110:14:0;;;;;;;;;;;13078:46;18639:8:::1;::::0;18623:36:::1;::::0;-1:-1:-1;;;;;18623:36:0;;::::1;::::0;18639:8:::1;::::0;18623:36:::1;::::0;18639:8:::1;::::0;18623:36:::1;18670:8;:20:::0;;-1:-1:-1;;;;;;18670:20:0::1;-1:-1:-1::0;;;;;18670:20:0;;;::::1;::::0;;;::::1;::::0;;18548:150::o;9819:284::-;10013:6;;7936:10;-1:-1:-1;;;;;7958:11:0;7936:34;;7932:63;;7979:16;;-1:-1:-1;;;7979:16:0;;;;;;;;;;;7932:63;10047:48:::1;10058:6;10066:3;10071:6;10079:5;10086:8;;10047:10;:48::i;:::-;10040:55;;;;8006:1;9819:284:::0;;;;;;;;;:::o;19473:215::-;13096:5;;-1:-1:-1;;;;;13096:5:0;13082:10;:19;13078:46;;13110:14;;-1:-1:-1;;;13110:14:0;;;;;;;;;;;13078:46;-1:-1:-1;;;;;19553:23:0;::::1;19549:49;;19585:13;;-1:-1:-1::0;;;19585:13:0::1;;;;;;;;;;;19549:49;19635:5;::::0;;19614:38:::1;::::0;-1:-1:-1;;;;;19614:38:0;;::::1;::::0;19635:5;::::1;::::0;19614:38:::1;::::0;::::1;19663:5;:17:::0;;-1:-1:-1;;;;;;19663:17:0::1;-1:-1:-1::0;;;;;19663:17:0;;;::::1;::::0;;;::::1;::::0;;19473:215::o;20159:170::-;20231:7;11650:5;20269;:32;;20290:11;;-1:-1:-1;;;20290:11:0;;;;20269:32;;;20277:10;;-1:-1:-1;;;20277:10:0;;;;20269:32;20259:43;;;;:6;:43;:::i;:::-;20258:63;;;;:::i;:::-;20251:70;;20159:170;;;;;:::o;20337:135::-;20401:4;20436:5;;-1:-1:-1;;;;;20425:16:0;;;20436:5;;20425:16;;:39;;-1:-1:-1;;20456:8:0;;-1:-1:-1;;;;;20456:8:0;;;20445:19;;;;20337:135::o;15219:2671::-;15464:6;;15433;;;;15464;;15460:74;;;-1:-1:-1;;;;15495:23:0;-1:-1:-1;15520:1:0;15487:35;;15460:74;15546:15;-1:-1:-1;;;;;15614:10:0;15564:61;15580:13;;;;:3;:13;:::i;:::-;-1:-1:-1;;;;;15564:61:0;;15546:79;;15636:13;15652:10;:75;;;-1:-1:-1;;;;;;15716:10:0;15666:61;15682:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15666:61:0;;15652:75;15636:91;;15745:8;15740:77;;-1:-1:-1;;;;15778:23:0;-1:-1:-1;15803:1:0;;-1:-1:-1;15770:35:0;;-1:-1:-1;15770:35:0;15740:77;15829:11;15844:10;:31;;;;-1:-1:-1;15858:17:0;;;;:6;:17;:::i;:::-;15843:72;;;;15882:10;15881:11;:33;;;;-1:-1:-1;15897:17:0;;;;:6;:17;:::i;:::-;15896:18;15881:33;15829:86;;15928:14;15945:10;:46;;15976:5;15945:46;;;15958:15;:5;933:3;888:48;;788:157;15958:15;15928:63;;16002:15;16020:10;:46;;16051:15;:5;933:3;888:48;;788:157;16051:15;16020:46;;;16033:5;:15;16002:64;;16083:6;16079:1804;;;16204:1;16192:8;:13;;;;:36;;;-1:-1:-1;16209:5:0;;-1:-1:-1;;;;;16209:5:0;:19;16192:36;16188:112;;;-1:-1:-1;;;;16257:23:0;-1:-1:-1;16282:1:0;;-1:-1:-1;16249:35:0;;-1:-1:-1;;;;16249:35:0;16188:112;16414:11;;-1:-1:-1;;;;;16336:26:0;;;16316:17;;11650:5;;16402:23;;-1:-1:-1;;;16414:11:0;;;;16336:26;16402:23;:::i;:::-;16401:43;;;;:::i;:::-;16377:67;;16465:13;16482:1;16465:18;16461:94;;-1:-1:-1;;;;16512:23:0;-1:-1:-1;16537:1:0;;-1:-1:-1;16504:35:0;;-1:-1:-1;;;;;;16504:35:0;16461:94;-1:-1:-1;;;;;16579:42:0;;;16571:72;;;;-1:-1:-1;;;16571:72:0;;16354:2:1;16571:72:0;;;16336:21:1;16393:2;16373:18;;;16366:30;-1:-1:-1;;;16412:18:1;;;16405:47;16469:18;;16571:72:0;;;;;;;;;16660:22;16685:10;:42;;16714:3;:13;;;;;;;;;;:::i;:::-;16685:42;;;16698:3;:13;;;;;;;;;;:::i;:::-;16774:5;;16742:53;;-1:-1:-1;;;16742:53:0;;-1:-1:-1;;;;;16782:15:1;;;16742:53:0;;;16764:34:1;16774:5:0;;;16814:18:1;;;16807:43;16866:18;;;16859:34;;;16660:67:0;;-1:-1:-1;16742:11:0;:16;;;;16699:18:1;;16742:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16861:13;16841:16;;:33;;;;;;;;;;;16923:6;-1:-1:-1;;;;;16911:34:0;;16931:13;16911:34;;;;2817:25:1;;2805:2;2790:18;;2671:177;16911:34:0;;;;;;;;-1:-1:-1;;;;16968:23:0;-1:-1:-1;17007:13:0;-1:-1:-1;16960:63:0;;-1:-1:-1;;;;;;16960:63:0;16079:1804;17139:1;17128:7;:12;;;17124:88;;-1:-1:-1;;;;17169:23:0;-1:-1:-1;17194:1:0;;-1:-1:-1;17161:35:0;;-1:-1:-1;;;;17161:35:0;17124:88;17320:10;;-1:-1:-1;;;;;17247:25:0;;;17228:16;;11650:5;;17309:21;;-1:-1:-1;;;17320:10:0;;;;17247:25;17309:21;:::i;:::-;17308:41;;;;:::i;:::-;17287:62;;17370:10;17384:1;17370:15;17366:91;;-1:-1:-1;;;;17414:23:0;-1:-1:-1;17439:1:0;;-1:-1:-1;17406:35:0;;-1:-1:-1;;;;;;17406:35:0;17366:91;-1:-1:-1;;;;;17481:39:0;;;17473:66;;;;-1:-1:-1;;;17473:66:0;;17106:2:1;17473:66:0;;;17088:21:1;17145:2;17125:18;;;17118:30;-1:-1:-1;;;17164:18:1;;;17157:44;17218:18;;17473:66:0;16904:338:1;17473:66:0;17556:55;;-1:-1:-1;;;17556:55:0;;-1:-1:-1;;;;;17573:10:0;16782:15:1;;17556:55:0;;;16764:34:1;17593:4:0;16814:18:1;;;16807:43;16866:18;;;16859:34;;;17556:11:0;:16;;;;16699:18:1;;17556:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17626:24:0;;-1:-1:-1;;;17626:24:0;;;;;2817:25:1;;;17626:7:0;-1:-1:-1;;;;;17626:12:0;;-1:-1:-1;17626:12:0;;-1:-1:-1;2790:18:1;;17626:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17711:10;17696:11;;:25;;;;;;;;;;;17771:6;-1:-1:-1;;;;;17758:38:0;;17779:10;17791:4;17758:38;;;;;;17415:25:1;;;17483:14;17476:22;17471:2;17456:18;;17449:50;17403:2;17388:18;;17247:258;17758:38:0;;;;;;;;-1:-1:-1;;;17819:23:0;-1:-1:-1;17858:10:0;-1:-1:-1;17811:60:0;;-1:-1:-1;;;;;;17811:60:0;207:118:1;293:5;286:13;279:21;272:5;269:32;259:60;;315:1;312;305:12;259:60;207:118;:::o;330:241::-;386:6;439:2;427:9;418:7;414:23;410:32;407:52;;;455:1;452;445:12;407:52;494:9;481:23;513:28;535:5;513:28;:::i;:::-;560:5;330:241;-1:-1:-1;;;330:241:1:o;810:131::-;-1:-1:-1;;;;;885:31:1;;875:42;;865:70;;931:1;928;921:12;946:156;1006:5;1051:3;1042:6;1037:3;1033:16;1029:26;1026:46;;;1068:1;1065;1058:12;1026:46;-1:-1:-1;1090:6:1;946:156;-1:-1:-1;946:156:1:o;1107:170::-;1181:5;1226:3;1217:6;1212:3;1208:16;1204:26;1201:46;;;1243:1;1240;1233:12;1282:347;1333:8;1343:6;1397:3;1390:4;1382:6;1378:17;1374:27;1364:55;;1415:1;1412;1405:12;1364:55;-1:-1:-1;1438:20:1;;1481:18;1470:30;;1467:50;;;1513:1;1510;1503:12;1467:50;1550:4;1542:6;1538:17;1526:29;;1602:3;1595:4;1586:6;1578;1574:19;1570:30;1567:39;1564:59;;;1619:1;1616;1609:12;1564:59;1282:347;;;;;:::o;1634:825::-;1797:6;1805;1813;1821;1829;1882:3;1870:9;1861:7;1857:23;1853:33;1850:53;;;1899:1;1896;1889:12;1850:53;1938:9;1925:23;1957:31;1982:5;1957:31;:::i;:::-;2007:5;-1:-1:-1;2031:63:1;2086:7;2081:2;2066:18;;2031:63;:::i;:::-;2021:73;;2113:78;2183:7;2177:3;2166:9;2162:19;2113:78;:::i;:::-;2103:88;;2242:3;2231:9;2227:19;2214:33;2270:18;2262:6;2259:30;2256:50;;;2302:1;2299;2292:12;2256:50;2341:58;2391:7;2382:6;2371:9;2367:22;2341:58;:::i;:::-;1634:825;;;;-1:-1:-1;1634:825:1;;-1:-1:-1;2418:8:1;;2315:84;1634:825;-1:-1:-1;;;1634:825:1:o;3302:159::-;3369:20;;3429:6;3418:18;;3408:29;;3398:57;;3451:1;3448;3441:12;3398:57;3302:159;;;:::o;3466:256::-;3532:6;3540;3593:2;3581:9;3572:7;3568:23;3564:32;3561:52;;;3609:1;3606;3599:12;3561:52;3632:28;3650:9;3632:28;:::i;:::-;3622:38;;3679:37;3712:2;3701:9;3697:18;3679:37;:::i;:::-;3669:47;;3466:256;;;;;:::o;3935:158::-;3998:5;4043:2;4034:6;4029:3;4025:16;4021:25;4018:45;;;4059:1;4056;4049:12;4098:803;4250:6;4258;4266;4274;4282;4335:3;4323:9;4314:7;4310:23;4306:33;4303:53;;;4352:1;4349;4342:12;4303:53;4391:9;4378:23;4410:31;4435:5;4410:31;:::i;:::-;4460:5;-1:-1:-1;4484:63:1;4539:7;4534:2;4519:18;;4484:63;:::i;:::-;4474:73;;4566:67;4625:7;4619:3;4608:9;4604:19;4566:67;:::i;:::-;4556:77;;4684:3;4673:9;4669:19;4656:33;4712:18;4704:6;4701:30;4698:50;;;4744:1;4741;4734:12;5590:247;5649:6;5702:2;5690:9;5681:7;5677:23;5673:32;5670:52;;;5718:1;5715;5708:12;5670:52;5757:9;5744:23;5776:31;5801:5;5776:31;:::i;5842:1025::-;6085:6;6093;6101;6109;6117;6125;6133;6186:3;6174:9;6165:7;6161:23;6157:33;6154:53;;;6203:1;6200;6193:12;6154:53;6242:9;6229:23;6261:31;6286:5;6261:31;:::i;:::-;6311:5;-1:-1:-1;6335:63:1;6390:7;6385:2;6370:18;;6335:63;:::i;:::-;6325:73;;6417:78;6487:7;6481:3;6470:9;6466:19;6417:78;:::i;:::-;6407:88;;6542:3;6531:9;6527:19;6514:33;6504:43;;6594:3;6583:9;6579:19;6566:33;6556:43;;6650:3;6639:9;6635:19;6622:33;6678:18;6670:6;6667:30;6664:50;;;6710:1;6707;6700:12;6664:50;6749:58;6799:7;6790:6;6779:9;6775:22;6749:58;:::i;:::-;5842:1025;;;;-1:-1:-1;5842:1025:1;;-1:-1:-1;5842:1025:1;;;;6723:84;;-1:-1:-1;;;5842:1025:1:o;7180:685::-;7290:6;7298;7306;7314;7367:3;7355:9;7346:7;7342:23;7338:33;7335:53;;;7384:1;7381;7374:12;7335:53;7423:9;7410:23;7442:31;7467:5;7442:31;:::i;:::-;7492:5;-1:-1:-1;7516:63:1;7571:7;7566:2;7551:18;;7516:63;:::i;:::-;7506:73;;7631:3;7620:9;7616:19;7603:33;7645;7670:7;7645:33;:::i;:::-;7697:7;-1:-1:-1;7756:3:1;7741:19;;7728:33;7803:1;7792:22;;;7780:35;;7770:63;;7829:1;7826;7819:12;7770:63;7180:685;;;;-1:-1:-1;7180:685:1;;-1:-1:-1;;7180:685:1:o;8098:401::-;8180:6;8188;8196;8204;8257:3;8245:9;8236:7;8232:23;8228:33;8225:53;;;8274:1;8271;8264:12;8225:53;8297:28;8315:9;8297:28;:::i;:::-;8287:38;;8344:37;8377:2;8366:9;8362:18;8344:37;:::i;:::-;8334:47;;8400:37;8433:2;8422:9;8418:18;8400:37;:::i;:::-;8390:47;;8456:37;8489:2;8478:9;8474:18;8456:37;:::i;:::-;8446:47;;8098:401;;;;;;;:::o;8796:456::-;8873:6;8881;8889;8942:2;8930:9;8921:7;8917:23;8913:32;8910:52;;;8958:1;8955;8948:12;8910:52;8997:9;8984:23;9016:31;9041:5;9016:31;:::i;:::-;9066:5;-1:-1:-1;9118:2:1;9103:18;;9090:32;;-1:-1:-1;9174:2:1;9159:18;;9146:32;9187:33;9146:32;9187:33;:::i;:::-;9239:7;9229:17;;;8796:456;;;;;:::o;9257:903::-;9449:6;9457;9465;9473;9481;9489;9542:3;9530:9;9521:7;9517:23;9513:33;9510:53;;;9559:1;9556;9549:12;9510:53;9598:9;9585:23;9617:31;9642:5;9617:31;:::i;:::-;9667:5;-1:-1:-1;9691:63:1;9746:7;9741:2;9726:18;;9691:63;:::i;:::-;9681:73;;9773:67;9832:7;9826:3;9815:9;9811:19;9773:67;:::i;:::-;9763:77;;9887:3;9876:9;9872:19;9859:33;9849:43;;9943:3;9932:9;9928:19;9915:33;9971:18;9963:6;9960:30;9957:50;;;10003:1;10000;9993:12;9957:50;10042:58;10092:7;10083:6;10072:9;10068:22;10042:58;:::i;:::-;9257:903;;;;-1:-1:-1;9257:903:1;;-1:-1:-1;9257:903:1;;10119:8;;9257:903;-1:-1:-1;;;9257:903:1:o;10457:809::-;10589:6;10597;10605;10613;10621;10629;10682:3;10670:9;10661:7;10657:23;10653:33;10650:53;;;10699:1;10696;10689:12;10650:53;10738:9;10725:23;10757:31;10782:5;10757:31;:::i;:::-;10807:5;-1:-1:-1;10831:63:1;10886:7;10881:2;10866:18;;10831:63;:::i;:::-;10821:73;;10941:3;10930:9;10926:19;10913:33;10903:43;;10993:3;10982:9;10978:19;10965:33;10955:43;;11049:3;11038:9;11034:19;11021:33;11077:18;11069:6;11066:30;11063:50;;;11109:1;11106;11099:12;11271:1899;11490:13;;5372;5365:21;5353:34;;11461:3;11446:19;;11562:4;11554:6;11550:17;11544:24;11577:51;11622:4;11611:9;11607:20;11593:12;5372:13;5365:21;5353:34;;5302:91;11577:51;;11677:4;11669:6;11665:17;11659:24;11692:53;11739:4;11728:9;11724:20;11708:14;5372:13;5365:21;5353:34;;5302:91;11692:53;;11794:4;11786:6;11782:17;11776:24;11809:53;11856:4;11845:9;11841:20;11825:14;5372:13;5365:21;5353:34;;5302:91;11809:53;;11911:4;11903:6;11899:17;11893:24;11926:53;11973:4;11962:9;11958:20;11942:14;5372:13;5365:21;5353:34;;5302:91;11926:53;;12028:4;12020:6;12016:17;12010:24;12043:53;12090:4;12079:9;12075:20;12059:14;5372:13;5365:21;5353:34;;5302:91;12043:53;;12145:4;12137:6;12133:17;12127:24;12160:53;12207:4;12196:9;12192:20;12176:14;5372:13;5365:21;5353:34;;5302:91;12160:53;;12262:4;12254:6;12250:17;12244:24;12277:53;12324:4;12313:9;12309:20;12293:14;5372:13;5365:21;5353:34;;5302:91;12277:53;-1:-1:-1;12349:6:1;12392:15;;;12386:22;5372:13;5365:21;12449:18;;;5353:34;12487:6;12530:15;;;12524:22;5372:13;5365:21;12587:18;;;5353:34;12625:6;12668:15;;;12662:22;5372:13;5365:21;12725:18;;;5353:34;12763:6;12807:15;;;12801:22;5372:13;5365:21;12865:18;;;5353:34;12903:6;12947:15;;;12941:22;5372:13;5365:21;13005:18;;;5353:34;13043:6;13087:15;;;13081:22;5372:13;5365:21;13145:18;;;;5353:34;;;;11271:1899;:::o;13656:515::-;13759:6;13767;13775;13828:3;13816:9;13807:7;13803:23;13799:33;13796:53;;;13845:1;13842;13835:12;13796:53;13884:9;13871:23;13903:31;13928:5;13903:31;:::i;:::-;13953:5;-1:-1:-1;13977:63:1;14032:7;14027:2;14012:18;;13977:63;:::i;:::-;13967:73;;14092:3;14081:9;14077:19;14064:33;14106;14131:7;14106:33;:::i;14176:309::-;14241:6;14249;14302:2;14290:9;14281:7;14277:23;14273:32;14270:52;;;14318:1;14315;14308:12;14270:52;14354:9;14341:23;14331:33;;14414:2;14403:9;14399:18;14386:32;14427:28;14449:5;14427:28;:::i;:::-;14474:5;14464:15;;;14176:309;;;;;:::o;15132:245::-;15199:6;15252:2;15240:9;15231:7;15227:23;15223:32;15220:52;;;15268:1;15265;15258:12;15220:52;15300:9;15294:16;15319:28;15341:5;15319:28;:::i;15382:265::-;15455:9;;;15486;;15503:15;;;15497:22;;15483:37;15473:168;;15563:10;15558:3;15554:20;15551:1;15544:31;15598:4;15595:1;15588:15;15626:4;15623:1;15616:15;15652:217;15692:1;15718;15708:132;;15762:10;15757:3;15753:20;15750:1;15743:31;15797:4;15794:1;15787:15;15825:4;15822:1;15815:15;15708:132;-1:-1:-1;15854:9:1;;15652:217::o
Swarm Source
ipfs://a5b367d1d4867d888ce5ead07a5e13744f7a11f110a1ea937a6612a9f4775563
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.