Reading the hook.
The address, the bytecode, then a swap each way through its pool. A few seconds.
v4 hook · Robinhood Chain · block 93,239,018
0x568C…a0cc
The eight checks
5 pools use this hook, the first one 69 d 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.30%, written in the pool key.
- 05caution
No one holds the switchNo owner() but it has SWEEP_DELAY, claimable, sweepStrayEth, sweep, setRouter, claimCreator.
- 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.
- 08pass
Track record5 pools over 69 days.
Measured at block 93,239,018. 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 / ASTEROID
fee 0.30%- Swap ETH → ASTEROIDno liquidity at the current price
- Swap ASTEROID → ETHno liquidity at the current price
- Add, then remove liquiditycame back whole
pool 0xb9538749ba40957145712504d3a4a9e056ac9ce17db34b621b26a8f051643f43
Read from the bytecode
- Code size
- 24,073 bytes
- Owner
- none found
- Proxy
- no
- DELEGATECALL
- absent
- SELFDESTRUCT
- absent
- Outside calls
- 18
- 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.
- 0xf10bfb5c roundSeedOf
- 0xf2c80cd2 remitTreasuryToken
- 0xf887ea40 router
- 0xfeb2d8a8 SWEEP_DELAY
- 0xe1b4af69 afterDonate
- 0xe98e98fb hasSwitched
- 0xea96e270
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.
claimable
0xeedb8ef2 cancelRouter0xd632fdec pendingRouterAt0xdc4c90d3 poolManager0xdc98354e beforeInitialize0xe0d18efd sweepStrayEth0xc45a0155 unknown0xcbf09802 rateOf0xcc76a13d commitRouter0xd2f7f1cf switchSide0xb6a8b0fa beforeDonate0xb7535bc8 sweep0xc0d78655 setRouter0xc134d449 claimCreator0x9f063efc afterAddLiquidity0xb0a9e02c SIDE_B0xb47b2fb1 afterSwap0xb49a0461 currentRound0x85100ea9 SIDE_A0x8549d9be REQUIRED_FLAGS0x91dd7346 unlockCallback0x95a0b925 SIDE_NONE0x75f4925d proposeRouter0x765ac9f9 buyReward0x79f48d4c settle0x7b103999 registry0x6fe7e6eb afterInitialize0x726aa7e1 remitBurn0x73931bbf getGame0x7543d167 score0x6641ea08 ROUND_DURATION0x684c3baf switchCost0x68f4a786 TAX_BPS0x6c2bbe7e afterRemoveLiquidity0x5bb47808 setFactory0x5db29cac getRound0x61d027b3 treasury0x63f44968 claim0x45904567 CREATOR_BPS0x4cfa7eca claimMany0x4d1975b4 gameCount0x575e24b4 beforeSwap0x38bb3d32 convertPot0x401dbd0b claimed0x407d1b95 sideOf0x44a9755d registerGame0x2ed6b75d pendingTreasury0x350722ce LOCK_WINDOW0x3584aa35 setRewards0x371f530a pendingBurn0x213eb3cb pendingTreasuryToken0x21d0ee70 beforeRemoveLiquidity0x259982e5 beforeAddLiquidity0x27810b6e burner0x02fae3c9 remitTreasury0x04c4afd9 join0x1558ebdb pendingRouter0x15cfc405 statsOf