diff --git a/mev_inspect/abis/uniswap_v3/IUniswapV3FlashCallback.json b/mev_inspect/abis/uniswap_v3/IUniswapV3FlashCallback.json new file mode 100644 index 0000000..8efda76 --- /dev/null +++ b/mev_inspect/abis/uniswap_v3/IUniswapV3FlashCallback.json @@ -0,0 +1,25 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "fee0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fee1", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "uniswapV3FlashCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/mev_inspect/abis/uniswap_v3/IUniswapV3MintCallback.json b/mev_inspect/abis/uniswap_v3/IUniswapV3MintCallback.json new file mode 100644 index 0000000..c94beb1 --- /dev/null +++ b/mev_inspect/abis/uniswap_v3/IUniswapV3MintCallback.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"amount0Owed","type":"uint256"},{"internalType":"uint256","name":"amount1Owed","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"uniswapV3MintCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}] diff --git a/mev_inspect/abis/uniswap_v3/IUniswapV3SwapCallback.json b/mev_inspect/abis/uniswap_v3/IUniswapV3SwapCallback.json new file mode 100644 index 0000000..3d14c8f --- /dev/null +++ b/mev_inspect/abis/uniswap_v3/IUniswapV3SwapCallback.json @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"uniswapV3SwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}] diff --git a/mev_inspect/classifiers/specs/uniswap.py b/mev_inspect/classifiers/specs/uniswap.py index 3bf17a8..e6c9f5a 100644 --- a/mev_inspect/classifiers/specs/uniswap.py +++ b/mev_inspect/classifiers/specs/uniswap.py @@ -63,12 +63,24 @@ UNISWAP_V3_CONTRACT_SPECS = [ ), ] -UNISWAP_V3_POOL_SPEC = ClassifierSpec( - abi_name="UniswapV3Pool", - classifications={ - "swap(address,bool,int256,uint160,bytes)": Classification.swap, - }, -) +UNISWAP_V3_GENERAL_SPECS = [ + ClassifierSpec( + abi_name="UniswapV3Pool", + classifications={ + "swap(address,bool,int256,uint160,bytes)": Classification.swap, + }, + ), + ClassifierSpec( + abi_name="IUniswapV3SwapCallback", + ), + ClassifierSpec( + abi_name="IUniswapV3MintCallback", + ), + ClassifierSpec( + abi_name="IUniswapV3FlashCallback", + ), +] + UNISWAPPY_V2_CONTRACT_SPECS = [ ClassifierSpec( @@ -93,6 +105,6 @@ UNISWAPPY_V2_PAIR_SPEC = ClassifierSpec( UNISWAP_CLASSIFIER_SPECS = [ *UNISWAP_V3_CONTRACT_SPECS, *UNISWAPPY_V2_CONTRACT_SPECS, - UNISWAP_V3_POOL_SPEC, + *UNISWAP_V3_GENERAL_SPECS, UNISWAPPY_V2_PAIR_SPEC, ]