This repository contains the Uniswap V4 hooks for upgrading/downgrading SuperTokens in Uniswap V4 pools.
These hooks are inspired by the WETHHook from the Uniswap V4 Periphery repository.
Due to the different types of SuperTokens that Superfluid Protocol offers, it exists two types of hooks:
- SuperTokenWrapperHook : used for Wrapper SuperToken upgrading/downgrading
- SETHHook : used for Native Asset SuperToken upgrading/downgrading
For these hook to work, Uniswap V4 PoolManager contract must hold the SuperToken and the underlying token. These assets may be provided in any pools.
$ forge build$ forge script script/SETH/DeploySETHHook.s.sol:DeployHookScript --rpc-url <your_rpc_url> --private-key <your_private_key>$ forge script script/wrapper-supertoken/DeploySuperTokenWrapperHook.s.sol:DeploySuperTokenWrapperHookScript --rpc-url <your_rpc_url> --private-key <your_private_key>forge script script/SETH/DeploySETHHook.s.sol:DeployHookScript --rpc-url $BASE_RPC_URL --account UNISWAP_DEPLOYER --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY
[⠊] Compiling...
No files changed, compilation skipped
Enter keystore password:
Script ran successfully.
== Logs ==
===> DEPLOYMENT CONFIGURATION
--- UniswapV4 Position Manager : 0x7C5f5A4bBd8fD63184577525326123B519429bDc
--- UniswapV4 Pool Manager : 0x498581fF718922c3f8e6A244956aF099B2652b2b
--- Permit2 address : 0x000000000022D473030F116dDEE9F6B43aC78BA3
--- SETH address : 0x46fd5cfB4c12D87acD3a13e92BAa53240C661D93
===> DEPLOYING SETHHook
--- Chain ID : 8453
--- Deployer address : 0x820C691030AEA686C4072F734D9d357d725c9446
--- Deployer balance : 0 ETH
===> DEPLOYMENT RESULTS
--- SETHHook : 0xE0E522e5888e398d9E5d4D90A48c489425cb2888
## Setting up 1 EVM.
==========================
Chain 8453
Estimated gas price: 0.019379344 gwei
Estimated total gas used for script: 1821089
Estimated amount required: 0.000035291510185616 ETH
==========================
##### base
✅ [Success] Hash: 0x064096ed29acd6f48fded84ec06449930ea844ae75a3f082ba12523ef4bce13b
Block: 37216789
Paid: 0.000013601550066608 ETH (1318436 gas * 0.010316428 gwei)
✅ Sequence #1 on base | Total Paid: 0.000013601550066608 ETH (1318436 gas * avg 0.010316428 gwei)
==========================
ONCHAIN EXECUTION COMPLETE & SUCCESSFUL.
##forge script script/wrapper-supertoken/DeploySuperTokenWrapperHook.s.sol:DeploySuperTokenWrapperHookScript --rpc-url $BASE_RPC_URL --account UNISWAP_DEPLOYER --broadcast --verify $ETHERSCAN_API_KEY
[⠊] Compiling...
No files changed, compilation skipped
Enter keystore password:
Script ran successfully.
== Logs ==
===> DEPLOYMENT CONFIGURATION
--- UniswapV4 Position Manager : 0x7C5f5A4bBd8fD63184577525326123B519429bDc
--- UniswapV4 Pool Manager : 0x498581fF718922c3f8e6A244956aF099B2652b2b
--- Permit2 address : 0x000000000022D473030F116dDEE9F6B43aC78BA3
--- fUSDC address : 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
--- fUSDCx address : 0xD04383398dD2426297da660F9CCA3d439AF9ce1b
===> DEPLOYING SuperTokenWrapperHook
--- Chain ID : 8453
--- Deployer address : 0x820C691030AEA686C4072F734D9d357d725c9446
--- Deployer balance : 0 ETH
===> DEPLOYMENT RESULTS
--- SuperTokenWrapperHook : 0xa09FF20120D0dC9B9840C3260EA4F2be7e6cE888
## Setting up 1 EVM.
==========================
Chain 8453
Estimated gas price: 0.019294476 gwei
Estimated total gas used for script: 1881896
Estimated amount required: 0.000036310197206496 ETH
==========================
##### base
✅ [Success] Hash: 0x1014507a03bf97b0e7dafbe27376ed2e3e49ac4c257844d5dcaeb594074c9a42
Block: 37216925
Paid: 0.00001374126881226 ETH (1362460 gas * 0.010085631 gwei)
✅ Sequence #1 on base | Total Paid: 0.00001374126881226 ETH (1362460 gas * avg 0.010085631 gwei)
==========================
ONCHAIN EXECUTION COMPLETE & SUCCESSFUL.
##