Skip to content

Add EulerSwap hook on ethereum - #7147

Merged
Ponx merged 1 commit into
mainfrom
hooks/ethereum/0x5ecf6c62d1368ea8de372296951d3f5ed1a9a8a8
Sep 17, 2026
Merged

Ponx merged 1 commit into
mainfrom
hooks/ethereum/0x5ecf6c62d1368ea8de372296951d3f5ed1a9a8a8

Conversation

@hooklist-generator

Copy link
Copy Markdown
Contributor

Summary

A custom-curve AMM hook that routes swaps entirely through Euler lending vaults. In beforeSwap, it computes a quote against a configurable bonding curve, takes input tokens into an Euler vault, withdraws output tokens from another vault, and returns a BeforeSwapDelta to handle all accounting—bypassing Uniswap concentrated liquidity entirely. Standard LP positions are blocked.

Flags

Flag Value
beforeInitialize true
afterInitialize false
beforeAddLiquidity true
afterAddLiquidity false
beforeRemoveLiquidity false
afterRemoveLiquidity false
beforeSwap true
afterSwap false
beforeDonate true
afterDonate false
beforeSwapReturnsDelta true
afterSwapReturnsDelta false
afterAddLiquidityReturnsDelta false
afterRemoveLiquidityReturnsDelta false

Properties

Property Value
dynamicFee false
upgradeable false
requiresCustomSwapData false
vanillaSwap false
swapAccess none

Warnings

  • Submitter did not provide a name. Using AI-derived "EulerSwap".
  • Submitter did not provide a description. Using AI-generated description.

Closes #7129

@vercel

vercel Bot commented Sep 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
hooklist Ready Ready Preview Sep 16, 2026 9:17pm UTC

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: hooks/ethereum/0x5ecf6c62d1368ea8de372296951d3f5ed1a9a8a8.json

Flag Verification

Address 0x5ecf6c62d1368ea8de372296951d3f5ed1a9a8a8 — lowest 14 bits: 0xa8a8 & 0x3FFF = 0x28A8 = 10 1000 1010 1000 binary.

All 14 flags match the getHookPermissions() return in src_UniswapHook.sol exactly:

  • beforeInitialize: true ✓
  • afterInitialize: false ✓
  • beforeAddLiquidity: true ✓
  • afterAddLiquidity: false ✓
  • beforeRemoveLiquidity: false ✓
  • afterRemoveLiquidity: false ✓
  • beforeSwap: true ✓
  • afterSwap: false ✓
  • beforeDonate: true ✓
  • afterDonate: false ✓
  • beforeSwapReturnsDelta: true ✓
  • afterSwapReturnsDelta: false ✓
  • afterAddLiquidityReturnsDelta: false ✓
  • afterRemoveLiquidityReturnsDelta: false ✓

Properties Verification

  • dynamicFee: false ✓ — _beforeSwap returns a hardcoded fee of 0 as the third return value. No calls to updateDynamicLPFee() anywhere in hook code.

  • upgradeable: false ✓ — The source comment notes instances are delegatecall proxies, but the implementation address is fixed at deployment (immutable). There is no admin-configurable implementation storage or upgrade mechanism in the source. This is a factory-clone pattern, not an upgradeable proxy.

  • requiresCustomSwapData: false ✓ — In _beforeSwap, the bytes calldata parameter is unnamed and completely unused. Swaps work correctly without any hookData.

  • vanillaSwap: false ✓ — Correctly false: beforeSwapReturnsDelta is true and the hook fully bypasses Uniswap concentrated liquidity by computing its own AMM curve, depositing input into Euler vaults, and withdrawing output from Euler vaults.

  • swapAccess: "none" ✓ — _beforeSwap contains no access control on the caller. The only gate is the nonReentrantHook reentrancy guard, which is not identity-based.

Metadata Verification

  • verifiedSource: true ✓ — Confirmed by source_meta.json ("verified": true).
  • chainId: 1 ✓ — Ethereum mainnet.
  • name: "EulerSwap" ✓ — Matches contractName from Etherscan ("contractName": "EulerSwap").
  • description ✓ — Accurately describes the custom-curve AMM routing through Euler lending vaults. The _beforeSwap logic confirms: it computes a quote via QuoteLib, takes input tokens to an Euler vault (FundsLib.depositAssets), withdraws output from another vault (FundsLib.withdrawAssets), and returns a BeforeSwapDelta. beforeAddLiquidity reverts to block standard LP positions. No promotional or audit language present.

All checks pass.

@Ponx Ponx left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bot review verified; bitmask/flags/properties check out. LGTM.

@Ponx
Ponx merged commit 757ba95 into main Sep 17, 2026
7 checks passed
@Ponx
Ponx deleted the hooks/ethereum/0x5ecf6c62d1368ea8de372296951d3f5ed1a9a8a8 branch September 17, 2026 00:13
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.

hook: 0x5ecf6c62d1368ea8de372296951d3f5ed1a9a8a8 on ethereum

1 participant