188 lines
6.0 KiB
Python
188 lines
6.0 KiB
Python
from mev_inspect.schemas.classified_traces import (
|
|
Classification,
|
|
ClassifierSpec,
|
|
Protocol,
|
|
)
|
|
|
|
|
|
ZEROX_CONTRACT_SPECS = [
|
|
ClassifierSpec(
|
|
abi_name="exchangeProxy",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xdef1c0ded9bec7f1a1670819833240f027b25eff"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="exchangeProxyAllowanceTarget",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xf740b67da229f2f10bcbd38a7979992fcc71b8eb"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="exchangeProxyFlashWallet",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x22f9dcf4647084d6c31b2765f6910cd85c178c18"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="exchangeProxyGovernor",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x618f9c67ce7bf1a50afa1e7e0238422601b0ff6e"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="exchangeProxyLiquidityProviderSandbox",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x407b4128e9ecad8769b2332312a9f655cb9f5f3a"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="exchangeProxyTransformerDeployer",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x39dce47a67ad34344eab877eae3ef1fa2a1d50bb"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="wethTransformer",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xb2bc06a4efb20fc6553a69dbfa49b7be938034a7"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="payTakerTransformer",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x4638a7ebe75b911b995d0ec73a81e4f85f41f24e"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="fillQuoteTransformer",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x5ce5174d7442061135ea849970ffc7763920e0fd"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="affiliateFeeTransformer",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xda6d9fc5998f550a094585cf9171f0e8ee3ac59f"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="staking",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x2a17c35ff147b32f13f19f2e311446eeb02503f3"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="stakingProxy",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xa26e80e7dea86279c6d778d702cc413e6cffa777"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="zrxToken",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xe41d2489571d322189246dafa5ebde1f4699f498"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="zrxVault",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xba7f8b5fb1b19c1211c5d49550fcd149177a5eaf"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="devUtils",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0x74134cf88b21383713e096a5ecf59e297dc7f547"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="etherToken",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="erc20BridgeSampler",
|
|
protocol=Protocol.zerox,
|
|
valid_contract_addresses=["0xd8c38704c9937ea3312de29f824b4ad3450a5e61"],
|
|
),
|
|
]
|
|
|
|
|
|
UNISWAP_V3_CONTRACT_SPECS = [
|
|
ClassifierSpec(
|
|
abi_name="UniswapV3Factory",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0x1F98431c8aD98523631AE4a59f267346ea31F984"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="Multicall2",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="ProxyAdmin",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="TickLens",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0xbfd8137f7d1516D3ea5cA83523914859ec47F573"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="Quoter",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="SwapRouter",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0xE592427A0AEce92De3Edee1F18E0157C05861564"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="NFTDescriptor",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0x42B24A95702b9986e82d421cC3568932790A48Ec"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="NonfungibleTokenPositionDescriptor",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0x91ae842A5Ffd8d12023116943e72A606179294f3"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="TransparentUpgradeableProxy",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0xEe6A57eC80ea46401049E92587E52f5Ec1c24785"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="NonfungiblePositionManager",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0xC36442b4a4522E871399CD717aBDD847Ab11FE88"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="V3Migrator",
|
|
protocol=Protocol.uniswap_v3,
|
|
valid_contract_addresses=["0xA5644E29708357803b5A882D272c41cC0dF92B34"],
|
|
),
|
|
]
|
|
|
|
UNISWAP_V3_POOL_SPEC = ClassifierSpec(
|
|
abi_name="UniswapV3Pool",
|
|
classifications={
|
|
"swap(address,bool,int256,uint160,bytes)": Classification.swap,
|
|
},
|
|
)
|
|
|
|
UNISWAPPY_V2_CONTRACT_SPECS = [
|
|
ClassifierSpec(
|
|
abi_name="UniswapV2Router",
|
|
protocol=Protocol.uniswap_v2,
|
|
valid_contract_addresses=["0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"],
|
|
),
|
|
ClassifierSpec(
|
|
abi_name="UniswapV2Router",
|
|
protocol=Protocol.sushiswap,
|
|
valid_contract_addresses=["0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F"],
|
|
),
|
|
]
|
|
|
|
UNISWAPPY_V2_PAIR_SPEC = ClassifierSpec(
|
|
abi_name="UniswapV2Pair",
|
|
classifications={
|
|
"swap(uint256,uint256,address,bytes)": Classification.swap,
|
|
},
|
|
)
|
|
|
|
UNISWAP_CLASSIFIER_SPECS = [
|
|
*UNISWAP_V3_CONTRACT_SPECS,
|
|
*UNISWAPPY_V2_CONTRACT_SPECS,
|
|
UNISWAP_V3_POOL_SPEC,
|
|
UNISWAPPY_V2_PAIR_SPEC,
|
|
]
|