Skip to content

Conversation

@CapChuyan
Copy link

@Ponx
Copy link
Contributor

Ponx commented Nov 19, 2025

@CapChuyan, the pool has no TVL - is this still the right version of the hook? If so, for us to process the PR, can you add a small amount of liquidity to the pool for us to run a simulation check?

@CapChuyan CapChuyan closed this Nov 20, 2025
@CapChuyan CapChuyan reopened this Nov 20, 2025
@CapChuyan
Copy link
Author

@CapChuyan, the pool has no TVL - is this still the right version of the hook? If so, for us to process the PR, can you add a small amount of liquidity to the pool for us to run a simulation check?

Hi Ponx, yes, this is still the right version of the hook. It has $ATH-$vATH TVL, and is now in production use. Here are additional information for your reference.

Hook Address
https://arbiscan.io/address/0xbf4b4a83708474528a93c123f817e7f2a0637a88

Uniswap V4 Pool Address with this hook
https://app.uniswap.org/explore/pools/arbitrum/0xd360506b12c1f313676625b3b224df0ff76efb59127b9ae13e9a4ca0af7f3567

Hook Source Code
https://github.com/zoofiio/zoo-lnt-vault-public/blob/main/src/market/VTSwapHook.sol

Hook Asset Token

Note
Please note that, our hook is a custom curve hook based on OpenZeppline's BaseCustomCurve contract (https://docs.openzeppelin.com/uniswap-hooks/api/base#BaseCustomCurve), and manages liquidity by itself ($ATH and $vATH are still hold by Uniswap PoolManager contract).

Here are related contract functions for liquidity and quote query:

  • function getVTAndTReserves() external view returns (uint256 reserveVT, uint256 reserveT)
  • function getAmountOutTforVT(uint256 amountT) external view returns (uint256 amountVT)
  • function getAmountOutVTforT(uint256 amountVT) external view returns (uint256 amountT)

Also, our hook contract inherits addLiquidity() and removeLiquidity from OpenZeppline's BaseCustomCurve contract

  • function addLiquidity(AddLiquidityParams calldata params) external payable virtual ensure(params.deadline) returns (BalanceDelta delta)
  • function removeLiquidity(RemoveLiquidityParams calldata params) external virtual ensure(params.deadline) returns (BalanceDelta delta)

@CapChuyan
Copy link
Author

@CapChuyan, the pool has no TVL - is this still the right version of the hook? If so, for us to process the PR, can you add a small amount of liquidity to the pool for us to run a simulation check?

Also, we are already using this hook in our ZOO LNT product:
https://app.zoofi.io/lnt/vaults?vault=0xf8dfaa0967c812a43d02059f2b14786dceb84e8b

From technical perspective, here is how we use it:

But it would be great if we could integrate our hook into Uniswap interface and UniswapX protocol. Please let us know if you need more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants