Skip to content

chore: allowlist ephemeral hook on mainnet - #1415

Open
siriusthemaster wants to merge 2 commits into
Uniswap:mainfrom
siriusthemaster:siriusthemaster-patch-1
Open

siriusthemaster wants to merge 2 commits into
Uniswap:mainfrom
siriusthemaster:siriusthemaster-patch-1

Conversation

@siriusthemaster

Copy link
Copy Markdown

chore: allowlist ephemeral hook on mainnet

Hook: 0xb7424b2d72ad941763b198d13a3eb07fc0e768cc (Ethereum mainnet, verified on Etherscan)
Pool: ETH / EPH, fee 0, tickSpacing 60, id 0x5a481d3f91304b0e5b1813983178e65806cbf54832eeba60f13c1d28f019d243
https://app.uniswap.org/explore/pools/ethereum/0x5a481d3f91304b0e5b1813983178e65806cbf54832eeba60f13c1d28f019d243
Token: 0xc1a5d2a623c44408553fe720570530e1710b9f46

What the hook does

  • Serves one pool only: beforeInitialize accepts only the launcher and only ETH/EPH, fee 0, tickSpacing 60.
  • Takes a time-based fee in ETH on buys and sells via beforeSwap / afterSwap return deltas: 40% (0–1 min), 30% (to 10 min), 25% (to 20), 20% (to 30), 15% (to 45), 10% (to 60), then 2% forever. LP fee is 0, so the hook fee is the whole fee. feeBps(sender) returns the current rate.
  • No owner, no pause, no blacklist, no max-tx or max-wallet. The schedule is constant in bytecode.
  • Only the launcher can add liquidity (one position at launch), so all volume goes through swaps.
  • Source + tests: https://github.com/siriusthemaster/ephemeral (verified on Etherscan).

Quoting notes

  • ETH is currency0. Exact-input buys and exact-output sells take the fee in beforeSwap on the specified ETH amount; exact-input sells and exact-output buys take it in afterSwap on the unspecified ETH amount.
  • If a price limit stops a swap early after a beforeSwap fee, the swap reverts with PartialFill() instead of keeping a fee on unswapped ETH. Quotes without a price limit are unaffected.
  • The pool is initialized by the launch transaction. Until then it does not exist and EPH cannot be transferred except by the launcher.

Checklist

  • address lower case
  • example pool link
  • added to HOOKS_ADDRESSES_ALLOWLIST[ChainId.MAINNET]

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.

1 participant