Files
Zizou 63f9c89429 fix: small fix and refactor after testing EkuboV2 (#188)
* fix: add `balance_owner` attribute for ekubo_v2 components

* refactor: rename `ekubo` into `ekubo-v2`

* refactor: freeze `substreams-helper` version in ekubo V2 module

* docs: improve integration test comment

* docs: add TODO to remove `balance_owner` in favor of `AccountBalances`

---------

Co-authored-by: zizou <111426680+flopell@users.noreply.github.com>
2025-03-27 13:45:03 +00:00

1267 lines
25 KiB
JSON

[
{
"type": "constructor",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
},
{
"type": "function",
"name": "accumulateAsFees",
"inputs": [
{
"name": "poolKey",
"type": "tuple",
"internalType": "struct PoolKey",
"components": [
{
"name": "token0",
"type": "address",
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"internalType": "address"
},
{
"name": "config",
"type": "bytes32",
"internalType": "Config"
}
]
},
{
"name": "amount0",
"type": "uint128",
"internalType": "uint128"
},
{
"name": "amount1",
"type": "uint128",
"internalType": "uint128"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "cancelOwnershipHandover",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "collectFees",
"inputs": [
{
"name": "poolKey",
"type": "tuple",
"internalType": "struct PoolKey",
"components": [
{
"name": "token0",
"type": "address",
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"internalType": "address"
},
{
"name": "config",
"type": "bytes32",
"internalType": "Config"
}
]
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "bounds",
"type": "tuple",
"internalType": "struct Bounds",
"components": [
{
"name": "lower",
"type": "int32",
"internalType": "int32"
},
{
"name": "upper",
"type": "int32",
"internalType": "int32"
}
]
}
],
"outputs": [
{
"name": "amount0",
"type": "uint128",
"internalType": "uint128"
},
{
"name": "amount1",
"type": "uint128",
"internalType": "uint128"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "completeOwnershipHandover",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "forward",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getPoolFeesPerLiquidityInside",
"inputs": [
{
"name": "poolKey",
"type": "tuple",
"internalType": "struct PoolKey",
"components": [
{
"name": "token0",
"type": "address",
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"internalType": "address"
},
{
"name": "config",
"type": "bytes32",
"internalType": "Config"
}
]
},
{
"name": "bounds",
"type": "tuple",
"internalType": "struct Bounds",
"components": [
{
"name": "lower",
"type": "int32",
"internalType": "int32"
},
{
"name": "upper",
"type": "int32",
"internalType": "int32"
}
]
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct FeesPerLiquidity",
"components": [
{
"name": "value0",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "value1",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initializePool",
"inputs": [
{
"name": "poolKey",
"type": "tuple",
"internalType": "struct PoolKey",
"components": [
{
"name": "token0",
"type": "address",
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"internalType": "address"
},
{
"name": "config",
"type": "bytes32",
"internalType": "Config"
}
]
},
{
"name": "tick",
"type": "int32",
"internalType": "int32"
}
],
"outputs": [
{
"name": "sqrtRatio",
"type": "uint96",
"internalType": "SqrtRatio"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "load",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "amount",
"type": "uint128",
"internalType": "uint128"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "lock",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "nextInitializedTick",
"inputs": [
{
"name": "poolId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "fromTick",
"type": "int32",
"internalType": "int32"
},
{
"name": "tickSpacing",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "skipAhead",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "tick",
"type": "int32",
"internalType": "int32"
},
{
"name": "isInitialized",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "owner",
"inputs": [],
"outputs": [
{
"name": "result",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "ownershipHandoverExpiresAt",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "result",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pay",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "payment",
"type": "uint128",
"internalType": "uint128"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "prevInitializedTick",
"inputs": [
{
"name": "poolId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "fromTick",
"type": "int32",
"internalType": "int32"
},
{
"name": "tickSpacing",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "skipAhead",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "tick",
"type": "int32",
"internalType": "int32"
},
{
"name": "isInitialized",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "registerExtension",
"inputs": [
{
"name": "expectedCallPoints",
"type": "tuple",
"internalType": "struct CallPoints",
"components": [
{
"name": "beforeInitializePool",
"type": "bool",
"internalType": "bool"
},
{
"name": "afterInitializePool",
"type": "bool",
"internalType": "bool"
},
{
"name": "beforeSwap",
"type": "bool",
"internalType": "bool"
},
{
"name": "afterSwap",
"type": "bool",
"internalType": "bool"
},
{
"name": "beforeUpdatePosition",
"type": "bool",
"internalType": "bool"
},
{
"name": "afterUpdatePosition",
"type": "bool",
"internalType": "bool"
},
{
"name": "beforeCollectFees",
"type": "bool",
"internalType": "bool"
},
{
"name": "afterCollectFees",
"type": "bool",
"internalType": "bool"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceOwnership",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "requestOwnershipHandover",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "save",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "amount",
"type": "uint128",
"internalType": "uint128"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "sload",
"inputs": [
{
"name": "slot",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "swap",
"inputs": [
{
"name": "poolKey",
"type": "tuple",
"internalType": "struct PoolKey",
"components": [
{
"name": "token0",
"type": "address",
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"internalType": "address"
},
{
"name": "config",
"type": "bytes32",
"internalType": "Config"
}
]
},
{
"name": "params",
"type": "tuple",
"internalType": "struct SwapParameters",
"components": [
{
"name": "amount",
"type": "int128",
"internalType": "int128"
},
{
"name": "isToken1",
"type": "bool",
"internalType": "bool"
},
{
"name": "sqrtRatioLimit",
"type": "uint96",
"internalType": "SqrtRatio"
},
{
"name": "skipAhead",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [
{
"name": "delta0",
"type": "int128",
"internalType": "int128"
},
{
"name": "delta1",
"type": "int128",
"internalType": "int128"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "tload",
"inputs": [
{
"name": "slot",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "transferOwnership",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "updatePosition",
"inputs": [
{
"name": "poolKey",
"type": "tuple",
"internalType": "struct PoolKey",
"components": [
{
"name": "token0",
"type": "address",
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"internalType": "address"
},
{
"name": "config",
"type": "bytes32",
"internalType": "Config"
}
]
},
{
"name": "params",
"type": "tuple",
"internalType": "struct UpdatePositionParameters",
"components": [
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "bounds",
"type": "tuple",
"internalType": "struct Bounds",
"components": [
{
"name": "lower",
"type": "int32",
"internalType": "int32"
},
{
"name": "upper",
"type": "int32",
"internalType": "int32"
}
]
},
{
"name": "liquidityDelta",
"type": "int128",
"internalType": "int128"
}
]
}
],
"outputs": [
{
"name": "delta0",
"type": "int128",
"internalType": "int128"
},
{
"name": "delta1",
"type": "int128",
"internalType": "int128"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "withdraw",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint128",
"internalType": "uint128"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "withdrawProtocolFees",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "event",
"name": "ExtensionRegistered",
"inputs": [
{
"name": "extension",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "FeesAccumulated",
"inputs": [
{
"name": "poolId",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "amount0",
"type": "uint128",
"indexed": false,
"internalType": "uint128"
},
{
"name": "amount1",
"type": "uint128",
"indexed": false,
"internalType": "uint128"
}
],
"anonymous": false
},
{
"type": "event",
"name": "LoadedBalance",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "salt",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "amount",
"type": "uint128",
"indexed": false,
"internalType": "uint128"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipHandoverCanceled",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipHandoverRequested",
"inputs": [
{
"name": "pendingOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipTransferred",
"inputs": [
{
"name": "oldOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "PoolInitialized",
"inputs": [
{
"name": "poolId",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "poolKey",
"type": "tuple",
"indexed": false,
"internalType": "struct PoolKey",
"components": [
{
"name": "token0",
"type": "address",
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"internalType": "address"
},
{
"name": "config",
"type": "bytes32",
"internalType": "Config"
}
]
},
{
"name": "tick",
"type": "int32",
"indexed": false,
"internalType": "int32"
},
{
"name": "sqrtRatio",
"type": "uint96",
"indexed": false,
"internalType": "SqrtRatio"
}
],
"anonymous": false
},
{
"type": "event",
"name": "PositionFeesCollected",
"inputs": [
{
"name": "poolId",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "positionKey",
"type": "tuple",
"indexed": false,
"internalType": "struct PositionKey",
"components": [
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "bounds",
"type": "tuple",
"internalType": "struct Bounds",
"components": [
{
"name": "lower",
"type": "int32",
"internalType": "int32"
},
{
"name": "upper",
"type": "int32",
"internalType": "int32"
}
]
}
]
},
{
"name": "amount0",
"type": "uint128",
"indexed": false,
"internalType": "uint128"
},
{
"name": "amount1",
"type": "uint128",
"indexed": false,
"internalType": "uint128"
}
],
"anonymous": false
},
{
"type": "event",
"name": "PositionUpdated",
"inputs": [
{
"name": "locker",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "poolId",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "params",
"type": "tuple",
"indexed": false,
"internalType": "struct UpdatePositionParameters",
"components": [
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "bounds",
"type": "tuple",
"internalType": "struct Bounds",
"components": [
{
"name": "lower",
"type": "int32",
"internalType": "int32"
},
{
"name": "upper",
"type": "int32",
"internalType": "int32"
}
]
},
{
"name": "liquidityDelta",
"type": "int128",
"internalType": "int128"
}
]
},
{
"name": "delta0",
"type": "int128",
"indexed": false,
"internalType": "int128"
},
{
"name": "delta1",
"type": "int128",
"indexed": false,
"internalType": "int128"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ProtocolFeesWithdrawn",
"inputs": [
{
"name": "recipient",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SavedBalance",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "salt",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "amount",
"type": "uint128",
"indexed": false,
"internalType": "uint128"
}
],
"anonymous": false
},
{
"type": "error",
"name": "AlreadyInitialized",
"inputs": []
},
{
"type": "error",
"name": "Amount0DeltaOverflow",
"inputs": []
},
{
"type": "error",
"name": "Amount1DeltaOverflow",
"inputs": []
},
{
"type": "error",
"name": "AmountBeforeFeeOverflow",
"inputs": []
},
{
"type": "error",
"name": "BoundsOrder",
"inputs": []
},
{
"type": "error",
"name": "BoundsTickSpacing",
"inputs": []
},
{
"type": "error",
"name": "DebtsNotZeroed",
"inputs": [
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ExtensionAlreadyRegistered",
"inputs": []
},
{
"type": "error",
"name": "ExtensionNotRegistered",
"inputs": []
},
{
"type": "error",
"name": "FailedRegisterInvalidCallPoints",
"inputs": []
},
{
"type": "error",
"name": "FullRangeOnlyPool",
"inputs": []
},
{
"type": "error",
"name": "InsufficientSavedBalance",
"inputs": []
},
{
"type": "error",
"name": "InvalidSqrtRatioLimit",
"inputs": []
},
{
"type": "error",
"name": "InvalidTick",
"inputs": [
{
"name": "tick",
"type": "int32",
"internalType": "int32"
}
]
},
{
"type": "error",
"name": "InvalidTickSpacing",
"inputs": []
},
{
"type": "error",
"name": "LockerOnly",
"inputs": []
},
{
"type": "error",
"name": "MinMaxBounds",
"inputs": []
},
{
"type": "error",
"name": "MustCollectFeesBeforeWithdrawingAllLiquidity",
"inputs": []
},
{
"type": "error",
"name": "NewOwnerIsZeroAddress",
"inputs": []
},
{
"type": "error",
"name": "NoHandoverRequest",
"inputs": []
},
{
"type": "error",
"name": "NoPaymentMade",
"inputs": []
},
{
"type": "error",
"name": "NotLocked",
"inputs": []
},
{
"type": "error",
"name": "PaymentOverflow",
"inputs": []
},
{
"type": "error",
"name": "PoolAlreadyInitialized",
"inputs": []
},
{
"type": "error",
"name": "PoolNotInitialized",
"inputs": []
},
{
"type": "error",
"name": "SqrtRatioLimitOutOfRange",
"inputs": []
},
{
"type": "error",
"name": "SqrtRatioLimitWrongDirection",
"inputs": []
},
{
"type": "error",
"name": "TokensMustBeSorted",
"inputs": []
},
{
"type": "error",
"name": "Unauthorized",
"inputs": []
},
{
"type": "error",
"name": "ZeroLiquidityNextSqrtRatioFromAmount0",
"inputs": []
},
{
"type": "error",
"name": "ZeroLiquidityNextSqrtRatioFromAmount1",
"inputs": []
}
]