Files
tycho-protocol-sdk/substreams/ethereum-ekubo-v2/abi/twamm.json
die-herdplatte 1ff97ff43f Ekubo TWAMM & MEV-resist integration (#192)
* 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
2025-06-30 14:45:08 +00:00

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": []
}
]