Skip to content

Add SpcxStrategyHook hook on robinhood#1124

Merged
marktoda merged 1 commit into
mainfrom
hooks/robinhood/0xf7c46f4ddb5d6b8c6a040e19cf2064e832d32444
Jul 21, 2026
Merged

Add SpcxStrategyHook hook on robinhood#1124
marktoda merged 1 commit into
mainfrom
hooks/robinhood/0xf7c46f4ddb5d6b8c6a040e19cf2064e832d32444

Conversation

@hooklist-generator

Copy link
Copy Markdown
Contributor

Summary

A fee-taking hook for a single ETH/SPCXSTR pool that charges a decaying buy tax (95%→10% at ~1%/min via block.timestamp) and a flat 10% sell tax via afterSwapReturnsDelta. Token-denominated fees are converted to ETH mid-swap via a nested pool swap; ETH shortfalls are deferred as ERC-6909 claims. Collected ETH is split 90/10 between a mutable controller address and a dev address. Exact-output swaps are unconditionally reverted.

Flags

Flag Value
beforeInitialize true
afterInitialize false
beforeAddLiquidity false
afterAddLiquidity true
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-proposed description rejected: attributes behavior to external contracts (SPCX accumulation and SPCXSTR burns by the controller) and includes external branding ("stockworks.fun") not verifiable from the hook source. Using AI-generated description.

Closes #1123

@vercel

vercel Bot commented Jul 21, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
hooklist Ready Ready Preview, Comment Jul 21, 2026 12:15am

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/robinhood/0xf7c46f4ddb5d6b8c6a040e19cf2064e832d32444.json

Flags

Address last 14 bits: 0x2444 → bits 13, 10, 6, 2 set.

Flag Address bit JSON Source getHookPermissions()
beforeInitialize 1 true true
afterInitialize 0 false false
beforeAddLiquidity 0 false false
afterAddLiquidity 1 true true
beforeRemoveLiquidity 0 false false
afterRemoveLiquidity 0 false false
beforeSwap 0 false false
afterSwap 1 true true
beforeDonate 0 false false
afterDonate 0 false false
beforeSwapReturnsDelta 0 false false
afterSwapReturnsDelta 1 true true
afterAddLiquidityReturnsDelta 0 false false
afterRemoveLiquidityReturnsDelta 0 false false

All flags match. ✓

Properties

  • dynamicFee: false — No beforeSwap, no updateDynamicLPFee() call. The hook takes fees via afterSwapReturnsDelta, not an LP fee override. ✓
  • upgradeable: false — No proxy, delegatecall, or SELFDESTRUCT. source_meta.json confirms "proxy": false. ✓
  • requiresCustomSwapData: false — The hookData parameter in _afterSwap is never decoded or inspected; swaps succeed with empty bytes. ✓
  • vanillaSwap: false — Correct; afterSwapReturnsDelta is true and the hook materially alters swap output by skimming fees. ✓
  • swapAccess: "none" — No beforeSwap flag; the hook's ExactOutputNotAllowed revert is a swap-type restriction (not caller-based access control), and the bootstrapper exemption is an internal fee bypass, not a swap gate. ✓

Metadata

  • name "SpcxStrategyHook" matches the on-chain contract name. ✓
  • chainId 4663 matches chains.json entry for "robinhood". ✓
  • verifiedSource: true matches source_meta.json "verified": true. ✓
  • description is accurate and fully substantiated by the source:
    • Decaying buy tax 95%→10%: confirmed by STARTING_BUY_FEE = 9_500, DEFAULT_FEE = 1_000, DECAY_STEP_SECONDS = 60 in calculateFee(). ✓
    • Flat 10% sell tax: confirmed by calculateFee(false) returning DEFAULT_FEE. ✓
    • Token→ETH conversion via nested swap: confirmed by _swapToEth(). ✓
    • ETH shortfalls as ERC-6909 claims: confirmed by _takeEthOrDefer() calling poolManager.mint(). ✓
    • 90/10 split to mutable controller/dev: confirmed by TREASURY_PCT = 90, setController(), setDev(). ✓
    • Exact-output unconditionally reverted: confirmed by if (params.amountSpecified > 0) revert ExactOutputNotAllowed(). ✓
    • No promotional, audit, safety, or unsubstantiated language. ✓

All checks pass.

@marktoda marktoda 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.

Bot review verified. SpcxStrategyHook (robinhood). Flags: beforeInitialize, afterAddLiquidity, afterSwap, afterSwapReturnsDelta. Description 430 chars (under limit). LGTM.

@marktoda
marktoda merged commit 615145e into main Jul 21, 2026
7 checks passed
@marktoda
marktoda deleted the hooks/robinhood/0xf7c46f4ddb5d6b8c6a040e19cf2064e832d32444 branch July 21, 2026 16:23
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: SpcxStrategyHook

1 participant