Skip to content

Add EulerSwap hook on ethereum - #7136

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

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

Conversation

@hooklist-generator

Copy link
Copy Markdown
Contributor

Summary

A custom-curve AMM hook backed by Euler Finance lending vaults. It handles swaps entirely in beforeSwap by depositing input tokens into and withdrawing output tokens from Euler vaults using a concentrated invariant curve, replacing standard Uniswap pool mechanics. Native LP positions and donations are blocked via revert.

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 #7115

@vercel

vercel Bot commented Sep 16, 2026

Copy link
Copy Markdown

Deployment failed for project hooklist with the following error:

Resource is limited - try again in 60 minutes (more than 450, code: "api-deployments-paid-per-hour").

Learn More: https://vercel.com/uniswap?upgradeToPro=build-rate-limit

@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/0xcd36cc7d9892b5d50e7bcfbf81d56e3e6c1028a8.json

Flag Verification

Address suffix 0x28a8 = 10408 = 10100010101000 binary (14 bits). All 14 flags match both the address bitmask and the getHookPermissions() function in src_UniswapHook.sol:

  • 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 (selector, returnDelta, 0) — the fee override is hardcoded to 0. No OVERRIDE_FEE_FLAG or updateDynamicLPFee call in the hook source. Fee is set statically at activation time via uint24 fee = uint24(p.fee / 1e12).

upgradeable: false ✓ — source_meta.json shows "proxy": false. Hook instances use a fixed-target delegatecall pattern (EIP-1167-style) to an immutable implementation; there is no admin function to change the implementation address. The delegatecall is to a fixed deployment address, not an upgrade path.

requiresCustomSwapData: false ✓ — The bytes calldata (hookData) parameter in _beforeSwap is unnamed and completely unused. Swaps work correctly with empty hookData.

vanillaSwap: false ✓ — beforeSwapReturnsDelta is true, which mandates false. Additionally, the hook handles swaps entirely in beforeSwap by depositing into and withdrawing from Euler vaults using a custom curve invariant, replacing standard Uniswap pool mechanics.

swapAccess: "none" ✓ — _beforeSwap has no access control. The nonReentrantHook modifier is a reentrancy guard, not a gating mechanism. No allowlist, governance flag, or temporal gating is present.

Metadata Verification

  • verifiedSource: true ✓ — source_meta.json confirms "verified": true.
  • chainId: 1 ✓ — chains.json maps ethereum to chainId 1.
  • name: "EulerSwap" ✓ — Matches contractName from source_meta.json. No promotional or endorsement language.
  • description ✓ — Accurately describes the on-chain logic: custom-curve AMM backed by Euler Finance lending vaults, swaps handled entirely in beforeSwap via vault deposits/withdrawals, native LP positions and donations blocked via revert. No audit claims or marketing language.

Summary

All flags, properties, and metadata are correct and substantiated by the verified on-chain source code.

@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 6f5906c into main Sep 17, 2026
5 of 6 checks passed
@Ponx
Ponx deleted the hooks/ethereum/0xcd36cc7d9892b5d50e7bcfbf81d56e3e6c1028a8 branch September 17, 2026 00:55
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: 0xcd36cc7d9892b5d50e7bcfbf81d56e3e6c1028a8 on ethereum

1 participant