From 14469268d316b9de2986e5910d71e5d53df68e93 Mon Sep 17 00:00:00 2001 From: Luke Van Seters Date: Fri, 30 Jul 2021 15:18:47 -0400 Subject: [PATCH] Add WETH ABI --- mev_inspect/abis/weth/WETH9.json | 1 + mev_inspect/classifier_specs.py | 11 +++++++++++ mev_inspect/schemas/classified_traces.py | 1 + 3 files changed, 13 insertions(+) create mode 100644 mev_inspect/abis/weth/WETH9.json diff --git a/mev_inspect/abis/weth/WETH9.json b/mev_inspect/abis/weth/WETH9.json new file mode 100644 index 0000000..68e6e23 --- /dev/null +++ b/mev_inspect/abis/weth/WETH9.json @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"dst","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"dst","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Withdrawal","type":"event"}] diff --git a/mev_inspect/classifier_specs.py b/mev_inspect/classifier_specs.py index e677d3d..fa01ae9 100644 --- a/mev_inspect/classifier_specs.py +++ b/mev_inspect/classifier_specs.py @@ -99,10 +99,21 @@ ERC20_SPEC = ClassifierSpec( }, ) +WETH_SPEC = ClassifierSpec( + abi_name="WETH9", + protocol=Protocol.weth, + valid_contract_addresses=["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"], + classifications={ + "transferFrom(address,address,uint256)": Classification.transfer, + "transfer(address,uint256)": Classification.transfer, + }, +) + CLASSIFIER_SPECS = [ *UNISWAP_V3_CONTRACT_SPECS, *UNISWAPPY_V2_CONTRACT_SPECS, + WETH_SPEC, ERC20_SPEC, UNISWAP_V3_POOL_SPEC, UNISWAPPY_V2_PAIR_SPEC, diff --git a/mev_inspect/schemas/classified_traces.py b/mev_inspect/schemas/classified_traces.py index 645413b..b2dccec 100644 --- a/mev_inspect/schemas/classified_traces.py +++ b/mev_inspect/schemas/classified_traces.py @@ -17,6 +17,7 @@ class Protocol(Enum): uniswap_v2 = "uniswap_v2" uniswap_v3 = "uniswap_v3" sushiswap = "sushiswap" + weth = "weth" class ClassifiedTrace(BaseModel):