SeawaterAMM

Git Source

Inherits: ISeawaterAMM

Functions

onlyProxyAdmin

modifier onlyProxyAdmin();

constructor

constructor function, sets proxy details and then forwards to the seawater initialiser

constructor(
    address _proxyAdmin,
    address _seawaterAdmin,
    address _nftManager,
    address _emergencyCouncil,
    ISeawaterExecutorSwapA _executorSwapA,
    ISeawaterExecutorSwapPermit2A _executorSwapPermit2A,
    ISeawaterExecutorQuoteA _executorQuoteA,
    ISeawaterExecutorPosition _executorPosition,
    ISeawaterExecutorUpdatePosition _executorUpdatePosition,
    ISeawaterExecutorAdmin _executorAdmin,
    ISeawaterExecutorAdjustPositionA _executorAdjustPositionsA,
    ISeawaterExecutorSwapPermit2B _executorSwapPermit2B,
    ISeawaterExecutorAdjustPositionB _executorAdjustPositionsB,
    ISeawaterExecutorSwapB _executorSwapB,
    ISeawaterExecutorQuoteB _executorQuoteB,
    ISeawaterExecutorFallback _executorFallback
);

Parameters

NameTypeDescription
_proxyAdminaddressthe admin that can control proxy functions (change addresses)
_seawaterAdminaddressthe admin of the AMM
_nftManageraddressthe account that can transfer position NFTs
_emergencyCounciladdress
_executorSwapAISeawaterExecutorSwapAthe deployed code for the swap executor (swap 1)
_executorSwapPermit2AISeawaterExecutorSwapPermit2Athe deployed code for the swap_permit2 executor (facet A)
_executorQuoteAISeawaterExecutorQuoteAthe deployed code for the quote A executor
_executorPositionISeawaterExecutorPositionthe deployed code for the positions executor
_executorUpdatePositionISeawaterExecutorUpdatePosition
_executorAdminISeawaterExecutorAdminthe deployed code for the admin executor
_executorAdjustPositionsAISeawaterExecutorAdjustPositionAthe deployed code for the adjust positions executor (facet A)
_executorSwapPermit2BISeawaterExecutorSwapPermit2Bthe deployed code for the swap_permit2 executor (facet B)
_executorAdjustPositionsBISeawaterExecutorAdjustPositionBthe deployed code for the adjust positions executor (facet B)
_executorSwapBISeawaterExecutorSwapBthe deployed code for the swap executor (swap 2)
_executorQuoteBISeawaterExecutorQuoteBthe deployed code for the quote B executor (quote 2)
_executorFallbackISeawaterExecutorFallbackan address that functions not matching a specific executor get set to

updateProxyAdmin

updates the proxy admin. only usable by the proxy admin

function updateProxyAdmin(address newAdmin) public onlyProxyAdmin;

Parameters

NameTypeDescription
newAdminaddressthe new proxy admin to set

directDelegate

function directDelegate(address to) internal;

createPool653F395E

initialises a new pool. only usable by the seawater admin

function createPool653F395E(address, uint256, uint32) external;

Parameters

NameTypeDescription
<none>address
<none>uint256
<none>uint32

collectProtocol7540FA9F

collects protocol fees. only usable by the seawater admin

function collectProtocol7540FA9F(address, uint128, uint128, address) external returns (uint128, uint128);

Parameters

NameTypeDescription
<none>address
<none>uint128
<none>uint128
<none>address

Returns

NameTypeDescription
<none>uint128the amount of token0 and token1 fees collected
<none>uint128

enablePool579DA658

enables or disables a pool

function enablePool579DA658(address, bool) external;

Parameters

NameTypeDescription
<none>address
<none>bool

authoriseEnabler5B17C274

authorise an address to create and enable pools on its own

function authoriseEnabler5B17C274(address, bool) external;

Parameters

NameTypeDescription
<none>address
<none>bool

setSqrtPriceFF4DB98C

set the sqrt price for a pool in the event of misconfiguration.

function setSqrtPriceFF4DB98C(address, uint256) external;

Parameters

NameTypeDescription
<none>address
<none>uint256

setFeeProtocolCBD3EC35

function setFeeProtocolCBD3EC35(address, uint8, uint8) external;

updateNftManager9BDF41F6

set the NFT manager.

function updateNftManager9BDF41F6(address) external;

Parameters

NameTypeDescription
<none>address

updateSeawaterAdminD25D364D

set the new admin.

function updateSeawaterAdminD25D364D(address) external;

Parameters

NameTypeDescription
<none>address

updateEmergencyCouncil7D0C1C58

updateEmergencyCouncil to a new address.

function updateEmergencyCouncil7D0C1C58(address) external;

Parameters

NameTypeDescription
<none>address

swap904369BE

swaps within a pool

function swap904369BE(address, bool, int256, uint256) external returns (int256, int256);

Parameters

NameTypeDescription
<none>address
<none>bool
<none>int256
<none>uint256

Returns

NameTypeDescription
<none>int256(token0, token1) delta
<none>int256

quote72E2ADE7

reverts with the expected amount of fUSDC or pool token for a swap with the given parameters

function quote72E2ADE7(address, bool, int256, uint256) external;

Parameters

NameTypeDescription
<none>address
<none>bool
<none>int256
<none>uint256

quote2A9EFFCC6

reverts with the expected amount of tokenOut for a 2-token swap with the given parameters

function quote2A9EFFCC6(address, address, uint256, uint256) external;

Parameters

NameTypeDescription
<none>address
<none>address
<none>uint256
<none>uint256

swapPermit2EE84AD91

swaps within a pool using permit2 for token transfers

function swapPermit2EE84AD91(address, bool, int256, uint256, uint256, uint256, uint256, bytes memory)
    external
    returns (int256, int256);

Parameters

NameTypeDescription
<none>address
<none>bool
<none>int256
<none>uint256
<none>uint256
<none>uint256
<none>uint256
<none>bytes

Returns

NameTypeDescription
<none>int256(token0, token1) delta
<none>int256

swap2ExactInPermit254A7DBB1

performs a two stage swap across two pools using permit2 for token transfers

function swap2ExactInPermit254A7DBB1(address, address, uint256, uint256, uint256, uint256, bytes memory)
    external
    returns (uint256, uint256);

Parameters

NameTypeDescription
<none>address
<none>address
<none>uint256
<none>uint256
<none>uint256
<none>uint256
<none>bytes

Returns

NameTypeDescription
<none>uint256(amount in, amount out)
<none>uint256

swap2ExactInED91BB1D

performs a two stage swap across two pools

function swap2ExactInED91BB1D(address, address, uint256, uint256) external returns (uint256, uint256);

Parameters

NameTypeDescription
<none>address
<none>address
<none>uint256
<none>uint256

Returns

NameTypeDescription
<none>uint256(amount in, amount out)
<none>uint256

swapIn32502CA71

swaps _token for USDC

function swapIn32502CA71(address token, uint256 amountIn, uint256 minOut) external returns (int256, int256);

Parameters

NameTypeDescription
tokenaddress
amountInuint256
minOutuint256

Returns

NameTypeDescription
<none>int256amount of usdc out
<none>int256

swapInPermit2CEAAB576

swaps _token for USDC

function swapInPermit2CEAAB576(
    address token,
    uint256 amountIn,
    uint256 minOut,
    uint256 nonce,
    uint256 deadline,
    uint256 maxAmount,
    bytes memory sig
) external returns (int256, int256);

Parameters

NameTypeDescription
tokenaddress
amountInuint256
minOutuint256
nonceuint256
deadlineuint256
maxAmountuint256
sigbytes

Returns

NameTypeDescription
<none>int256amount of usdc out
<none>int256

swapOut5E08A399

swaps USDC for _token

function swapOut5E08A399(address token, uint256 amountIn, uint256 minOut) external returns (int256, int256);

Parameters

NameTypeDescription
tokenaddress
amountInuint256
minOutuint256

Returns

NameTypeDescription
<none>int256amount of token out
<none>int256

swapOutPermit23273373B

swaps USDC for _token

function swapOutPermit23273373B(
    address token,
    uint256 amountIn,
    uint256 minOut,
    uint256 nonce,
    uint256 deadline,
    uint256 maxAmount,
    bytes memory sig
) external returns (int256, int256);

Parameters

NameTypeDescription
tokenaddress
amountInuint256
minOutuint256
nonceuint256
deadlineuint256
maxAmountuint256
sigbytes

Returns

NameTypeDescription
<none>int256amount of token out
<none>int256

mintPositionBC5B086D

creates a new position

function mintPositionBC5B086D(address, int32, int32) external returns (uint256);

Parameters

NameTypeDescription
<none>address
<none>int32
<none>int32

positionOwnerD7878480

gets the owner of a position

function positionOwnerD7878480(uint256) external returns (address);

Parameters

NameTypeDescription
<none>uint256

Returns

NameTypeDescription
<none>addressthe owner of the position

transferPositionEEC7A3CD

transferPosition transfers a position. usable only by the NFT manager

function transferPositionEEC7A3CD(uint256, address, address) external;

Parameters

NameTypeDescription
<none>uint256
<none>address
<none>address

positionBalance4F32C7DB

gets the number of positions owned by a user

function positionBalance4F32C7DB(address) external returns (uint256);

Parameters

NameTypeDescription
<none>address

Returns

NameTypeDescription
<none>uint256the number of positions owned by the user

positionLiquidity8D11C045

gets the amount of liquidity in a position

function positionLiquidity8D11C045(address, uint256) external returns (uint128);

Parameters

NameTypeDescription
<none>address
<none>uint256

Returns

NameTypeDescription
<none>uint128the amount of liquidity contained in the position

positionTickLower2F77CCE1

get the lower tick of the position id

function positionTickLower2F77CCE1(address, uint256) external returns (int32);

Parameters

NameTypeDescription
<none>address
<none>uint256

Returns

NameTypeDescription
<none>int32the lower tick of the position given

positionTickUpper67FD55BA

get the upper tick of the position id

function positionTickUpper67FD55BA(address, uint256) external returns (int32);

Parameters

NameTypeDescription
<none>address
<none>uint256

Returns

NameTypeDescription
<none>int32the lower tick of the position given

sqrtPriceX967B8F5FC5

gets the current sqrt price of the pool

function sqrtPriceX967B8F5FC5(address) external returns (uint256);

Parameters

NameTypeDescription
<none>address

Returns

NameTypeDescription
<none>uint256the current sqrtPriceX96 for the pool

feesOwed22F28DBD

feesOwed to a position ID given.

function feesOwed22F28DBD(address, uint256) external returns (uint128, uint128);

Parameters

NameTypeDescription
<none>address
<none>uint256

Returns

NameTypeDescription
<none>uint128the amount of token0 and token1 to get in return
<none>uint128

curTick181C6FD9

gets the currently used tick of the pool

function curTick181C6FD9(address) external returns (int32);

Parameters

NameTypeDescription
<none>address

Returns

NameTypeDescription
<none>int32the current active tick in the pool

tickSpacing653FE28F

gets the tick spacing of the pool

function tickSpacing653FE28F(address) external returns (uint8);

Parameters

NameTypeDescription
<none>address

Returns

NameTypeDescription
<none>uint8the tick spacing of the pool

feeBB3CF608

gets the fee for a specific pool

function feeBB3CF608(address) external returns (uint32);

Parameters

NameTypeDescription
<none>address

Returns

NameTypeDescription
<none>uint32the fee for the pool

feeGrowthGlobal038B5665B

gets the fee growth for token 0

function feeGrowthGlobal038B5665B(address) external returns (uint256);

Parameters

NameTypeDescription
<none>address

Returns

NameTypeDescription
<none>uint256the fee growth for the other token

feeGrowthGlobal1A33A5A1B

gets the fee growth for token 1

function feeGrowthGlobal1A33A5A1B(address) external returns (uint256);

Parameters

NameTypeDescription
<none>address

Returns

NameTypeDescription
<none>uint256the fee growth for fUSDC

collectSingleTo6D76575F

collect a single position's yield

function collectSingleTo6D76575F(address, uint256, address) external returns (uint128, uint128);

Parameters

NameTypeDescription
<none>address
<none>uint256
<none>address

Returns

NameTypeDescription
<none>uint128amount0 and amount1
<none>uint128

collect7F21947C

collects fees from from positions

function collect7F21947C(address[] memory pools, uint256[] memory ids)
    external
    returns (CollectResult[] memory results);

Parameters

NameTypeDescription
poolsaddress[]to claim accumulated yield from
idsuint256[]to claim the positions of

updatePositionC7F1F740

refreshes a position's fees, and adds or removes liquidity

function updatePositionC7F1F740(address, uint256, int128) external returns (int256, int256);

Parameters

NameTypeDescription
<none>address
<none>uint256
<none>int128

Returns

NameTypeDescription
<none>int256the deltas for token0 and token1 for the user
<none>int256

incrPositionE2437399

refreshes and takes a position's fees, and returns liquidity, preventing less than the minimum from being taken to be sent to the user.

function incrPositionE2437399(address, uint256, uint256, uint256, uint256, uint256)
    external
    returns (uint256, uint256);

Parameters

NameTypeDescription
<none>address
<none>uint256
<none>uint256
<none>uint256
<none>uint256
<none>uint256

Returns

NameTypeDescription
<none>uint256the deltas for token0, and token1
<none>uint256

decrPosition9A7D32E2

refreshes and takes a position's fees, and adds liquidity, preventing less than the minimum from being taken.

function decrPosition9A7D32E2(address, uint256, uint256, uint256, uint256, uint256)
    external
    returns (uint256, uint256);

Parameters

NameTypeDescription
<none>address
<none>uint256
<none>uint256
<none>uint256
<none>uint256
<none>uint256

Returns

NameTypeDescription
<none>uint256the deltas for token0, and token1
<none>uint256

setExecutorSwapA

function setExecutorSwapA(address a) external onlyProxyAdmin;

setExecutorSwapPermit2A

function setExecutorSwapPermit2A(address a) external onlyProxyAdmin;

setExecutorQuoteA

function setExecutorQuoteA(address a) external onlyProxyAdmin;

setExecutorPosition

function setExecutorPosition(address a) external onlyProxyAdmin;

setExecutorUpdatePosition

function setExecutorUpdatePosition(address a) external onlyProxyAdmin;

setExecutorAdmin

function setExecutorAdmin(address a) external onlyProxyAdmin;

setExecutorAdjustPositionA

function setExecutorAdjustPositionA(address a) external onlyProxyAdmin;

setExecutorSwapPermit2B

function setExecutorSwapPermit2B(address a) external onlyProxyAdmin;

setExecutorSwapB

function setExecutorSwapB(address a) external onlyProxyAdmin;

setExecutorQuoteB

function setExecutorQuoteB(address a) external onlyProxyAdmin;

setExecutorFallback

function setExecutorFallback(address a) external onlyProxyAdmin;

fallback

fallback() external;

_getExecutorSwapA

function _getExecutorSwapA() internal view returns (address);

_getExecutorSwapPermit2A

function _getExecutorSwapPermit2A() internal view returns (address);

_getExecutorQuoteA

function _getExecutorQuoteA() internal view returns (address);

_getExecutorPosition

function _getExecutorPosition() internal view returns (address);

_getExecutorUpdatePosition

function _getExecutorUpdatePosition() internal view returns (address);

_getExecutorAdmin

function _getExecutorAdmin() internal view returns (address);

_getExecutorAdjustPositionA

function _getExecutorAdjustPositionA() internal view returns (address);

_getExecutorAdjustPositionB

function _getExecutorAdjustPositionB() internal view returns (address);

_getExecutorSwapPermit2B

function _getExecutorSwapPermit2B() internal view returns (address);

_getExecutorSwapB

function _getExecutorSwapB() internal view returns (address);

_getExecutorQuoteB

function _getExecutorQuoteB() internal view returns (address);

_getExecutorFallback

function _getExecutorFallback() internal view returns (address);

_setProxyAdmin

function _setProxyAdmin(address newAdmin) internal;

_setProxies

function _setProxies(
    ISeawaterExecutorSwapA executorSwapA,
    ISeawaterExecutorSwapPermit2A executorSwapPermit2A,
    ISeawaterExecutorQuoteA executorQuoteA,
    ISeawaterExecutorPosition executorPosition,
    ISeawaterExecutorUpdatePosition executorUpdatePosition,
    ISeawaterExecutorAdmin executorAdmin,
    ISeawaterExecutorAdjustPositionA executorAdjustPositionA,
    ISeawaterExecutorSwapPermit2B executorSwapPermit2B,
    ISeawaterExecutorAdjustPositionB executorAdjustPositionB,
    ISeawaterExecutorSwapB executorSwapB,
    ISeawaterExecutorQuoteB executorQuoteB,
    ISeawaterExecutorFallback executorFallback
) internal;