From 1f84f95fffe6af77262f3b0cf08df684d3f5eaf0 Mon Sep 17 00:00:00 2001 From: Shea Ketsdever Date: Thu, 23 Dec 2021 18:57:11 -0600 Subject: [PATCH] Require exchange_wallet_address and rename payment_token -> payment_token_address --- .../3c54832385e3_create_nft_trades_table.py | 2 +- mev_inspect/classifiers/helpers.py | 39 +++++++++---------- mev_inspect/models/nft_trades.py | 2 +- mev_inspect/schemas/nft_trades.py | 2 +- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/alembic/versions/3c54832385e3_create_nft_trades_table.py b/alembic/versions/3c54832385e3_create_nft_trades_table.py index 6baebd6..0eb55b5 100644 --- a/alembic/versions/3c54832385e3_create_nft_trades_table.py +++ b/alembic/versions/3c54832385e3_create_nft_trades_table.py @@ -28,7 +28,7 @@ def upgrade(): sa.Column("error", sa.String(256), nullable=True), sa.Column("seller_address", sa.String(256), nullable=False), sa.Column("buyer_address", sa.String(256), nullable=False), - sa.Column("payment_token", sa.String(256), nullable=False), + sa.Column("payment_token_address", sa.String(256), nullable=False), sa.Column("payment_amount", sa.Numeric, nullable=False), sa.Column("collection_address", sa.String(256), nullable=False), sa.Column("token_id", sa.Numeric, nullable=False), diff --git a/mev_inspect/classifiers/helpers.py b/mev_inspect/classifiers/helpers.py index 0094172..ced108f 100644 --- a/mev_inspect/classifiers/helpers.py +++ b/mev_inspect/classifiers/helpers.py @@ -12,7 +12,7 @@ def create_nft_trade_from_transfers( collection_address: str, seller_address: str, buyer_address: str, - exchange_wallet_address: Optional[str], + exchange_wallet_address: str, ) -> Optional[NftTrade]: transfers_to_buyer = _filter_transfers(child_transfers, to_address=buyer_address) transfers_to_seller = _filter_transfers(child_transfers, to_address=seller_address) @@ -23,27 +23,26 @@ def create_nft_trade_from_transfers( if transfers_to_buyer[0].token_address != collection_address: return None - payment_token = transfers_to_seller[0].token_address + payment_token_address = transfers_to_seller[0].token_address payment_amount = transfers_to_seller[0].amount token_id = transfers_to_buyer[0].amount - if exchange_wallet_address is not None: - transfers_from_seller_to_exchange = _filter_transfers( - child_transfers, - from_address=seller_address, - to_address=exchange_wallet_address, - ) - transfers_from_buyer_to_exchange = _filter_transfers( - child_transfers, - from_address=buyer_address, - to_address=exchange_wallet_address, - ) - for fee in [ - *transfers_from_seller_to_exchange, - *transfers_from_buyer_to_exchange, - ]: - # Assumes that exchange fees are paid with the same token as the sale - payment_amount -= fee.amount + transfers_from_seller_to_exchange = _filter_transfers( + child_transfers, + from_address=seller_address, + to_address=exchange_wallet_address, + ) + transfers_from_buyer_to_exchange = _filter_transfers( + child_transfers, + from_address=buyer_address, + to_address=exchange_wallet_address, + ) + for fee in [ + *transfers_from_seller_to_exchange, + *transfers_from_buyer_to_exchange, + ]: + # Assumes that exchange fees are paid with the same token as the sale + payment_amount -= fee.amount return NftTrade( abi_name=trace.abi_name, @@ -55,7 +54,7 @@ def create_nft_trade_from_transfers( error=trace.error, seller_address=seller_address, buyer_address=buyer_address, - payment_token=payment_token, + payment_token_address=payment_token_address, payment_amount=payment_amount, collection_address=collection_address, token_id=token_id, diff --git a/mev_inspect/models/nft_trades.py b/mev_inspect/models/nft_trades.py index db55084..c8c1643 100644 --- a/mev_inspect/models/nft_trades.py +++ b/mev_inspect/models/nft_trades.py @@ -15,7 +15,7 @@ class NftTradeModel(Base): error = Column(String, nullable=True) seller_address = Column(String, nullable=False) buyer_address = Column(String, nullable=False) - payment_token = Column(String, nullable=False) + payment_token_address = Column(String, nullable=False) payment_amount = Column(Numeric, nullable=False) collection_address = Column(String, nullable=False) token_id = Column(Numeric, nullable=False) diff --git a/mev_inspect/schemas/nft_trades.py b/mev_inspect/schemas/nft_trades.py index 9448cdd..bf5b8cd 100644 --- a/mev_inspect/schemas/nft_trades.py +++ b/mev_inspect/schemas/nft_trades.py @@ -15,7 +15,7 @@ class NftTrade(BaseModel): error: Optional[str] seller_address: str buyer_address: str - payment_token: str + payment_token_address: str payment_amount: int collection_address: str token_id: int