V3OpenFeeAdapter

Ethereum

0xf2371551fe3937db7c750f4dfabe5c2fffdcbf5a

Solidity v0.8.29+commit.ab55807c

🤖
Query this contract from your AI
Reference: 0xf2371551fe3937db7c750f4dfabe5c2fffdcbf5a
Sample prompt: “Tell me the current state of eth/0xf2371551fe3937db7c750f4dfabe5c2fffdcbf5a”
No AI wired up yet? → mcp.smarts.md

Admin & Risk

Who can change the rules?

Block #25,170,020

Detected ownable controls from the verified ABI.

Ownable

Current controls

Owner
0x1a9c8182c09f50c8318d769245bea52c32be35bc ↗ Etherscan → smarts

Overview

Read Functions
11
Write Functions
16
Events
8

Read Functions

Block #25,170,020 · just now
FACTORY() view → 0x1f98431c8ad98523631ae4a59f267346ea31f984

Returns

Name Type Description
address The Uniswap V3 Factory contract.
TOKEN_JAR() view → 0xf38521f130fccf29db1961597bc5d2b60f995f85

Returns

Name Type Description
address The address where collected fees are sent.
ZERO_FEE_SENTINEL() view → 255

Sentinel value stored to represent an explicit zero fee (disabled)

dev: type(uint8).max because 0 in storage means "not set"

Returns

Name Type Description
uint8
defaultFee() view → 68

The global default fee applied when no tier or pool override is set

Returns

Name Type Description
uint8 The encoded global default fee value
defaultFees(feeTier: uint24) view

Legacy getter for backwards compatibility

dev: Applies waterfall resolution: fee tier default → global default. Returns 0 only when neither a tier default nor a global default is configured.

Parameters

Name Type Description
feeTier uint24

Returns

Name Type Description
uint8
feeSetter() view → 0x1a9c8182c09f50c8318d769245bea52c32be35bc

Returns

Name Type Description
address The authorized address to set fees-by-fee-tier
feeTierDefaults(feeTier: uint24) view

Returns the fee tier default for a given fee tier

Parameters

Name Type Description
feeTier uint24 The fee tier to query

Returns

Name Type Description
feeValue uint8 feeValue The encoded fee value for the tier (0 if not set)
feeTiers(uint256) view

Parameters

Name Type Description
uint256

Returns

Name Type Description
uint24 The fee tiers enabled on the factory
getFee(pool: address) view

Resolves the fee for a pool using waterfall: pool override → tier default → global

Parameters

Name Type Description
pool address The pool address to resolve fee for

Returns

Name Type Description
fee uint8 fee The resolved fee value (decoded)
owner() view → 0x1a9c8182c09f50c8318d769245bea52c32be35bc

Returns the current owner of the factory

dev: Can be changed by the current owner via setOwner

Returns

Name Type Description
address The address of the factory owner
poolOverrides(pool: address) view

Returns the pool-specific override for a given pool

Parameters

Name Type Description
pool address The pool address to query

Returns

Name Type Description
feeValue uint8 feeValue The encoded fee value for the pool (0 if not set)

Write Functions

batchTriggerFeeUpdate(pairs: tuple[]) nonpayable

Triggers fee updates for multiple pairs of tokens. Permissionless.

Parameters

Name Type Description
pairs tuple[] The pairs of two tokens. There may be multiple pools initialized from the same pair.
batchTriggerFeeUpdateByPool(pools: address[]) nonpayable

Triggers fee updates for multiple pools directly. Permissionless.

Parameters

Name Type Description
pools address[] The pool addresses to update the fees for.
clearFeeTierDefault(feeTier: uint24) nonpayable

Clears the fee tier default, falling back to global default

dev: Only callable by `feeSetter`

Parameters

Name Type Description
feeTier uint24 The fee tier to clear
clearPoolOverride(pool: address) nonpayable

Clears the pool override, falling back to tier/global defaults

dev: Only callable by `feeSetter`

Parameters

Name Type Description
pool address The pool address to clear
collect(collectParams: tuple[]) nonpayable

Collects protocol fees from the specified pools to the designated `TOKEN_JAR`

Parameters

Name Type Description
collectParams tuple[] Array of collection parameters for each pool.

Returns

Name Type Description
amountsCollected tuple[] amountsCollected Array of collected amounts for each pool.
enableFeeAmount(fee: uint24, tickSpacing: int24) nonpayable

Enables a fee amount with the given tickSpacing

dev: Fee amounts may never be removed once enabled

Parameters

Name Type Description
fee uint24 The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)
tickSpacing int24 The spacing between ticks to be enforced for all pools created with the given fee amount
setDefaultFee(feeValue: uint8) nonpayable

Sets the global default fee value

dev: Only callable by `feeSetter`. Used as fallback when no tier/pool override exists.

Parameters

Name Type Description
feeValue uint8 The fee value (0 or in range [4,10] for each 4-bit component)
setDefaultFeeByFeeTier(feeTier: uint24, defaultFeeValue: uint8) nonpayable

Legacy function for backwards compatibility

dev: Renamed to setFeeTierDefault; this function is kept for existing integrations

Parameters

Name Type Description
feeTier uint24
defaultFeeValue uint8
setFactoryOwner(newOwner: address) nonpayable

Transfer ownership of the Uniswap V3 Factory to a new address

dev: Only callable by the owner of this contract. This is a critical operation as it transfers control of the V3 Factory

Parameters

Name Type Description
newOwner address The address that will become the new owner of the V3 Factory
setFeeSetter(newFeeSetter: address) nonpayable

Sets a new fee setter address.

dev: Only callable by `owner`

Parameters

Name Type Description
newFeeSetter address The new address authorized to set fees.
setFeeTierDefault(feeTier: uint24, feeValue: uint8) nonpayable

Sets the default fee for a specific fee tier

dev: Only callable by `feeSetter`

Parameters

Name Type Description
feeTier uint24 The fee tier to set the default for
feeValue uint8 The fee value (0 or in range [4,10] for each 4-bit component)
setPoolOverride(pool: address, feeValue: uint8) nonpayable

Sets a pool-specific fee override

dev: Only callable by `feeSetter`. Takes precedence over tier and global defaults.

Parameters

Name Type Description
pool address The pool address to override
feeValue uint8 The fee value (0 or in range [4,10] for each 4-bit component)
storeFeeTier(feeTier: uint24) nonpayable

Stores a fee tier.

dev: Must be a fee tier that exists on the Uniswap V3 Factory.

Parameters

Name Type Description
feeTier uint24 The fee tier to store.
transferOwnership(newOwner: address) nonpayable

///////////////////////////////////////////////////////////

Parameters

Name Type Description
newOwner address
triggerFeeUpdate(pool: address) nonpayable

Triggers a fee update for a single pool. Permissionless.

Parameters

Name Type Description
pool address The pool address to update the fee for.
triggerFeeUpdate(token0: address, token1: address) nonpayable

Triggers a fee update for a single pool. Permissionless.

Parameters

Name Type Description
token0 address
token1 address

Events

DefaultFeeUpdated(feeValue: uint8)

Emitted when the global default fee is updated

Name Type Indexed Description
feeValue uint8 The new global default fee value
FeeSetterUpdated(oldFeeSetter: address, newFeeSetter: address)

Emitted when the fee setter is updated

Name Type Indexed Description
oldFeeSetter address The previous fee setter address
newFeeSetter address The new fee setter address
FeeTierDefaultCleared(feeTier: uint24)

Emitted when a fee tier default is cleared (deleted from storage)

Name Type Indexed Description
feeTier uint24 The fee tier that was cleared
FeeTierDefaultUpdated(feeTier: uint24, feeValue: uint8)

Emitted when a fee tier default is updated

Name Type Indexed Description
feeTier uint24 The fee tier that was updated
feeValue uint8 The new fee value for the tier
FeeUpdateTriggered(caller: address, pool: address, feeValue: uint8)

Emitted when a fee update is triggered for a pool

Name Type Indexed Description
caller address The address that triggered the update
pool address The pool that was updated
feeValue uint8 The new fee value applied
OwnershipTransferred(user: address, newOwner: address)

///////////////////////////////////////////////////////////

Name Type Indexed Description
user address
newOwner address
PoolOverrideCleared(pool: address)

Emitted when a pool override is cleared (deleted from storage)

Name Type Indexed Description
pool address The pool that was cleared
PoolOverrideUpdated(pool: address, feeValue: uint8)

Emitted when a pool override is updated

Name Type Indexed Description
pool address The pool that was updated
feeValue uint8 The new fee value for the pool