FullRangeLBPStrategy on Ethereum

Uniswap v4 Hook Contract 0x890681cff5ad2069f020027f41f5f68f6a292000 on Ethereum · Launchpad · Verified contract

Volume (24h)
$19.36K
Value locked (TVL)
$810.34K
All-time volume
$40.17M
Pools using this hook
1
Swaps (24h)
46 (41 traders)
Total swaps
40,701

What it does

Appears to be a Uniswap v4 launch hook that initializes a pool for a token distribution, using a configured LP fee, tick spacing and reserve amount, with time-based migration and sweep phases.

How it works step by step

  • Validates and configures the pool in beforeInitialize
  • Exposes launch parameters such as poolLPFee, poolTickSpacing and reserveTokenAmount
  • Tracks migrationBlock, endBlock and sweepBlock to gate launch phases
  • Receives tokens through onTokensReceived and holds a reserve token amount
  • Provides sweepToken and sweepCurrency to recover assets after the launch
  • Caps liquidity provisioning through maxCurrencyAmountForLP
Swap behaviour
beforeSwap and afterSwap selectors are present, but no specific swap logic was decoded from the bytecode.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present in the dispatcher, but their bodies were not decoded in detail. Selectors such as maxCurrencyAmountForLP and reserveTokenAmount hint that liquidity is restricted to a capped amount and reserved for a launch, though this is unconfirmed.
Fee behaviour
Exposes poolLPFee() and poolTickSpacing(), suggesting it initializes the pool with a configured LP fee and tick spacing rather than changing fees dynamically; no fee manipulation logic was decoded.
Owner & admin controls
Storage slot 0 (an address) is read by the migrate, initializer and onTokensReceived selectors and written by onTokensReceived, which suggests a stored initializer or operator address; no owner setter was decoded. Parameters appear fixed at initialization through initializerParameters, and the only write path found is onTokensReceived.

Enabled Uniswap v4 callbacks

beforeInitialize

beforeInitialize is the only enabled permission and is used to validate and configure the pool at creation time, likely checking currency and initializer parameters.

Security & trust assessment

Risk level: medium (decoded bytecode, low confidence).

Who controls it: Without verified source, the operator and initializer roles cannot be fully assessed; a privileged operator may control sweepToken, sweepCurrency and fund routing, which could redirect proceeds.

Risk to user funds: The hook may hold tokens during the launch and can potentially transfer them through the sweep functions and the migration path; exact access control on these functions could not be verified from bytecode alone.

Security findings

  • [medium] Sweep functions can move held assets: Selectors sweepToken and sweepCurrency are nonpayable and not gated by any decoded access check; if they are callable by the operator they can move tokens held by the hook.
  • [info] Time-gated launch phases controlled by operator: The hook is deployed as an address with an operator and fundsRecipient, and migrationBlock, endBlock and sweepBlock indicate time-gated phases that depend on the operator.
  • [info] No upgrade mechanism detected: No proxy or upgrade selectors were found, so the contract appears non-upgradeable from the decoded bytecode.

Contract details

Verified source
Yes (FullRangeLBPStrategy)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
14,852 bytes
Upgradeable proxy
No
Detected patterns
erc20

Pools using FullRangeLBPStrategy