Reading the hook.
The address, the bytecode, then a swap each way through its pool. A few seconds.
v4 hook · Robinhood Chain · block 93,456,089
0xFb4a…20CC
The eight checks
1 pool use this hook, the first one 22 h ago.
- 01caution
Permissions that touch your moneyThe address enables before swap returns delta, after swap returns delta. The hook is allowed to take; the next two checks measure whether it does.
- 02n/a
What it takes from a swapNo pool with liquidity to swap through yet.
- 03pass
LPs can get outLiquidity added and removed in the same block came back whole.
- 04pass
The fee is the feeA fixed fee of 0%, written in the pool key.
- 05caution
No one holds the switchNo owner() but it has transferOwnership, transfer, transferFrom.
- 06pass
The code cannot changeNot a proxy, no DELEGATECALL, no SELFDESTRUCT.
- 07pass
Only the PoolManager can call itEach callback refused a call that did not come from the PoolManager.
- 08caution
Track record1 pool, first seen 0 days ago.
Measured at block 93,456,089. A hook with an owner or a dynamic fee can behave differently later; scan again before a large trade.
What the address allows
A v4 hook's permissions are the last fourteen bits of its address. The PoolManager calls only what they switch on.
address & 0x3fff0x20cc · 10000011001100
- bit 13Before initialize
- bit 12After initialize
- bit 11Before add liquidity
- bit 10After add liquidity
- bit 9Before remove liquidity
- bit 8After remove liquidity
- bit 7Before swap
- bit 6After swap
- bit 5Before donate
What it did to a real swap
A small swap each way and a liquidity round trip, run through the PoolManager and this hook inside a call that is never sent. The pool fee is expected; anything else missing is the hook.
ETH / NECTAR
fee 0%- Swap ETH → NECTARno liquidity at the current price
- Swap NECTAR → ETHno liquidity at the current price
- Add, then remove liquiditycame back whole
pool 0xeb01e304b99e9c46d4cc600fef0a6c83a883c5e154781a4fafd5311bfc54a09e
Read from the bytecode
- Code size
- 11,326 bytes
- Owner
- none found
- Proxy
- no
- DELEGATECALL
- absent
- SELFDESTRUCT
- absent
- Outside calls
- 4
- Callbacks open to anyone
- none
Its functions, uncensored
Selectors found in the dispatcher, named from the public signature database. Red ones are what an owner usually keeps for itself.
- 0xf2fde38b transferOwnership
- 0xf3ccaac0 image
- 0xf4383a73 homePool
- 0xfa11510c cells
- 0xe1b4af69 afterDonate
- 0xe8a3d485 contractURI
- 0xefedce21 hivedAt
bit 4
After donate
bit 3Before swap returns deltabit 2After swap returns deltabit 1After add returns deltabit 0After remove returns delta- Before initialize. Runs once, when a pool is created.
- Before swap. Runs before every swap. On a dynamic-fee pool it can set the fee each time.
- After swap. Runs after every swap.
- Before swap returns delta. Can take part of what you put into a swap, or change how much is swapped.
- After swap returns delta. Can take part of what you get out of every swap.
0xc09cb8ea
HONEY_BPS
0xc4e833ce getHookPermissions0xd505accf permit0xdc98354e beforeInitialize0xdd62ed3e allowance0xe14da5a0 harvestedTotal0xaced1661 keeper0xb270d39b harvest0xb47b2fb1 afterSwap0xb6a8b0fa beforeDonate0x9f063efc afterAddLiquidity0xa9059cbb transfer0xabfaeee0 twitter0x84b0196e eip712Domain0x862a179e KEEPER0x8da5cb5b owner0x91dd7346 unlockCallback0x95d89b41 symbol0x9d856bdc queen0x6fe7e6eb afterInitialize0x70a08231 balanceOf0x715018a6 renounceOwnership0x7ecebe00 nonces0x5e1d5482 about0x64ca7f50 QUEEN0x6c2bbe7e afterRemoveLiquidity0x3712e48b honeyedTotal0x383f7a53 MEADOW0x458ab339 COMBS0x481c6a75 manager0x4b175a86 hived0x575e24b4 beforeSwap0x259982e5 beforeAddLiquidity0x30f66169 meadow0x313ce567 decimals0x3644e515 DOMAIN_SEPARATOR0x1c4695f4 link0x21d0ee70 beforeRemoveLiquidity0x23b872dd transferFrom0x02a1f4d3 HOME_TICK_SPACING0x03662a4a payee0x06fdde03 name0x095ea7b3 approve0x13f1effe apiary0x18160ddd totalSupply