* Add Ekubo TWAMM support * Change order of words * Account TWAMM order balances * Fix tracking wrong component balance deltas Swapped and PositionUpdated are the only events affecting pool TVL * Fix fee addition Fees are a .64 instead of a .128 since v2 & the result is rounded * Consistent naming * cargo fmt * Add method for selecting store method from change type * Only store the affected sale rate delta on OrderUpdated events * Remove unnecessary parameterization * Index Ekubo MEV-resist pools * cargo clippy
720 lines
16 KiB
JSON
720 lines
16 KiB
JSON
[
|
|
{
|
|
"type": "constructor",
|
|
"inputs": [
|
|
{
|
|
"name": "core",
|
|
"type": "address",
|
|
"internalType": "contract ICore"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "afterCollectFees",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "",
|
|
"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": "",
|
|
"type": "bytes32",
|
|
"internalType": "bytes32"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "tuple",
|
|
"internalType": "struct Bounds",
|
|
"components": [
|
|
{
|
|
"name": "lower",
|
|
"type": "int32",
|
|
"internalType": "int32"
|
|
},
|
|
{
|
|
"name": "upper",
|
|
"type": "int32",
|
|
"internalType": "int32"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint128",
|
|
"internalType": "uint128"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint128",
|
|
"internalType": "uint128"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "afterInitializePool",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "key",
|
|
"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": "",
|
|
"type": "int32",
|
|
"internalType": "int32"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint96",
|
|
"internalType": "SqrtRatio"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "afterSwap",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "",
|
|
"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": "",
|
|
"type": "int128",
|
|
"internalType": "int128"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint96",
|
|
"internalType": "SqrtRatio"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "int128",
|
|
"internalType": "int128"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "int128",
|
|
"internalType": "int128"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "afterUpdatePosition",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "",
|
|
"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": "",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "int128",
|
|
"internalType": "int128"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "int128",
|
|
"internalType": "int128"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "beforeCollectFees",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "",
|
|
"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": "",
|
|
"type": "bytes32",
|
|
"internalType": "bytes32"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "tuple",
|
|
"internalType": "struct Bounds",
|
|
"components": [
|
|
{
|
|
"name": "lower",
|
|
"type": "int32",
|
|
"internalType": "int32"
|
|
},
|
|
{
|
|
"name": "upper",
|
|
"type": "int32",
|
|
"internalType": "int32"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "beforeInitializePool",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "",
|
|
"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": "",
|
|
"type": "int32",
|
|
"internalType": "int32"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "beforeSwap",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"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": "",
|
|
"type": "int128",
|
|
"internalType": "int128"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint96",
|
|
"internalType": "SqrtRatio"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "beforeUpdatePosition",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"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": "",
|
|
"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": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "forwarded",
|
|
"inputs": [
|
|
{
|
|
"name": "id",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "originalLocker",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "locked",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "sload",
|
|
"inputs": [
|
|
{
|
|
"name": "slot",
|
|
"type": "bytes32",
|
|
"internalType": "bytes32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "bytes32",
|
|
"internalType": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "tload",
|
|
"inputs": [
|
|
{
|
|
"name": "slot",
|
|
"type": "bytes32",
|
|
"internalType": "bytes32"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "bytes32",
|
|
"internalType": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "OrderProceedsWithdrawn",
|
|
"inputs": [
|
|
{
|
|
"name": "owner",
|
|
"type": "address",
|
|
"indexed": false,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "salt",
|
|
"type": "bytes32",
|
|
"indexed": false,
|
|
"internalType": "bytes32"
|
|
},
|
|
{
|
|
"name": "orderKey",
|
|
"type": "tuple",
|
|
"indexed": false,
|
|
"internalType": "struct OrderKey",
|
|
"components": [
|
|
{
|
|
"name": "sellToken",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "buyToken",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "fee",
|
|
"type": "uint64",
|
|
"internalType": "uint64"
|
|
},
|
|
{
|
|
"name": "startTime",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "endTime",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "uint128",
|
|
"indexed": false,
|
|
"internalType": "uint128"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "OrderUpdated",
|
|
"inputs": [
|
|
{
|
|
"name": "owner",
|
|
"type": "address",
|
|
"indexed": false,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "salt",
|
|
"type": "bytes32",
|
|
"indexed": false,
|
|
"internalType": "bytes32"
|
|
},
|
|
{
|
|
"name": "orderKey",
|
|
"type": "tuple",
|
|
"indexed": false,
|
|
"internalType": "struct OrderKey",
|
|
"components": [
|
|
{
|
|
"name": "sellToken",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "buyToken",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "fee",
|
|
"type": "uint64",
|
|
"internalType": "uint64"
|
|
},
|
|
{
|
|
"name": "startTime",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "endTime",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "saleRateDelta",
|
|
"type": "int112",
|
|
"indexed": false,
|
|
"internalType": "int112"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "BaseForwardeeAccountantOnly",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "CallPointNotImplemented",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "CoreOnly",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "InvalidTimestamps",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "MaxSaleRateDeltaPerTick",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "MustCollectProceedsBeforeCanceling",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "OrderAlreadyEnded",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "TickSpacingMustBeMaximum",
|
|
"inputs": []
|
|
},
|
|
{
|
|
"type": "error",
|
|
"name": "TimeNumOrdersOverflow",
|
|
"inputs": []
|
|
}
|
|
] |