Skip to content

Add PactHook hook on ethereum - #7160

Merged
Ponx merged 1 commit into
mainfrom
hooks/ethereum/0x9f3c19ad49f71f513817e4c40a53b0c5ce410044
Sep 16, 2026
Merged

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

Conversation

@hooklist-generator

Copy link
Copy Markdown
Contributor

Summary

Charges a fixed 3% fee on each swap's output token, taking 2% to a game contract (pactGame) and 1% to a dev wallet (devWallet) via afterSwap with a return delta. Fee recipient addresses are mutable by an owner.

Flags

Flag Value
beforeInitialize false
afterInitialize false
beforeAddLiquidity false
afterAddLiquidity false
beforeRemoveLiquidity false
afterRemoveLiquidity false
beforeSwap false
afterSwap true
beforeDonate false
afterDonate false
beforeSwapReturnsDelta false
afterSwapReturnsDelta true
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 "PactHook".
  • Submitter did not provide a description. Using AI-generated description.
  • Contract extends BaseTestHooks (a test contract from v4-core) rather than BaseHook — unusual for a production deployment.
  • pactGame and devWallet addresses are mutable by owner with no timelock, creating centralization risk over fee routing.

Closes #7146

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

Address Flags

Address suffix 0x0044 = 0b01000100 → lowest 14 bits confirmed:

  • Bit 6 → afterSwap: true
  • Bit 2 → afterSwapReturnsDelta: true
  • All other bits = 0; all other flags false

Properties

Property Filed Verdict
dynamicFee false ✓ — No lpFeeOverride or updateDynamicLPFee(). Fee is a hardcoded 3% taken in afterSwap.
upgradeable false ✓ — poolManager is immutable. pactGame/devWallet are mutable fee-recipient addresses, not upgradeable logic. No proxy, no delegatecall, no SELFDESTRUCT.
requiresCustomSwapData false ✓ — hookData parameter is explicitly ignored in afterSwap.
vanillaSwap false ✓ — afterSwapReturnsDelta is true; hook returns totalFee.toInt128() to take 3% of the output token, modifying what swappers receive.
swapAccess "none" ✓ — No beforeSwap flag. The onlyPoolManager modifier on afterSwap is standard callback authentication, not swap-access gating.

Metadata

  • verifiedSource: true — confirmed by source metadata ✓
  • chainId: 1 — ethereum mainnet ✓
  • name: "PactHook" — matches on-chain contract name ✓
  • description — accurately describes the fixed 3% fee split (2% to pactGame, 1% to devWallet) via afterSwap return delta, with owner-controlled mutable recipient addresses ✓

All fields are correct and consistent with the verified on-chain source.

@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 a0516f1 into main Sep 16, 2026
5 checks passed
@Ponx
Ponx deleted the hooks/ethereum/0x9f3c19ad49f71f513817e4c40a53b0c5ce410044 branch September 16, 2026 23:04
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: 0x9f3c19ad49f71f513817e4c40a53b0c5ce410044 on ethereum

1 participant