From 1a911d3a5b4d07ee0c9791c587570466fd9d42a5 Mon Sep 17 00:00:00 2001 From: Luke Van Seters Date: Tue, 19 Oct 2021 10:08:43 -0400 Subject: [PATCH] Add support for ribbon deposits --- mev_inspect/abis/ribbon/RibbonThetaVault.json | 40 +++++++++++++++++++ mev_inspect/classifiers/specs/__init__.py | 2 + mev_inspect/classifiers/specs/ribbon.py | 19 +++++++++ mev_inspect/schemas/classified_traces.py | 1 + 4 files changed, 62 insertions(+) create mode 100644 mev_inspect/abis/ribbon/RibbonThetaVault.json create mode 100644 mev_inspect/classifiers/specs/ribbon.py diff --git a/mev_inspect/abis/ribbon/RibbonThetaVault.json b/mev_inspect/abis/ribbon/RibbonThetaVault.json new file mode 100644 index 0000000..a89a701 --- /dev/null +++ b/mev_inspect/abis/ribbon/RibbonThetaVault.json @@ -0,0 +1,40 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "depositETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "creditor", + "type": "address" + } + ], + "name": "depositFor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/mev_inspect/classifiers/specs/__init__.py b/mev_inspect/classifiers/specs/__init__.py index b079e8d..c1df739 100644 --- a/mev_inspect/classifiers/specs/__init__.py +++ b/mev_inspect/classifiers/specs/__init__.py @@ -11,6 +11,7 @@ from .weth import WETH_CLASSIFIER_SPECS, WETH_ADDRESS from .zero_ex import ZEROX_CLASSIFIER_SPECS from .balancer import BALANCER_CLASSIFIER_SPECS from .compound import COMPOUND_CLASSIFIER_SPECS +from .ribbon import RIBBON_VAULT_SPEC ALL_CLASSIFIER_SPECS = ( ERC20_CLASSIFIER_SPECS @@ -21,6 +22,7 @@ ALL_CLASSIFIER_SPECS = ( + ZEROX_CLASSIFIER_SPECS + BALANCER_CLASSIFIER_SPECS + COMPOUND_CLASSIFIER_SPECS + + [RIBBON_VAULT_SPEC] ) _SPECS_BY_ABI_NAME_AND_PROTOCOL: Dict[ diff --git a/mev_inspect/classifiers/specs/ribbon.py b/mev_inspect/classifiers/specs/ribbon.py new file mode 100644 index 0000000..24b9528 --- /dev/null +++ b/mev_inspect/classifiers/specs/ribbon.py @@ -0,0 +1,19 @@ +from mev_inspect.schemas.classified_traces import Protocol +from mev_inspect.schemas.classifiers import ClassifierSpec + + +RIBBON_VAULT_ADDRESSES = [ + "0x65a833afDc250D9d38f8CD9bC2B1E3132dB13B2F", + "0x0FABaF48Bbf864a3947bdd0Ba9d764791a60467A", + "0x8b5876f5B0Bf64056A89Aa7e97511644758c3E8c", + "0x16772a7f4a3ca291C21B8AcE76F9332dDFfbb5Ef", + "0x8FE74471F198E426e96bE65f40EeD1F8BA96e54f", + "0x25751853Eab4D0eB3652B5eB6ecB102A2789644B", +] + + +RIBBON_VAULT_SPEC = ClassifierSpec( + abi_name="RibbonThetaVault", + protocol=Protocol.ribbon, + valid_contract_address=RIBBON_VAULT_ADDRESSES, +) diff --git a/mev_inspect/schemas/classified_traces.py b/mev_inspect/schemas/classified_traces.py index 56dfc2a..c3566ef 100644 --- a/mev_inspect/schemas/classified_traces.py +++ b/mev_inspect/schemas/classified_traces.py @@ -23,6 +23,7 @@ class Protocol(Enum): balancer_v1 = "balancer_v1" compound_v2 = "compound_v2" cream = "cream" + ribbon = "ribbon" class ClassifiedTrace(Trace):