Require exchange_wallet_address and rename payment_token -> payment_token_address
This commit is contained in:
parent
66e1e64675
commit
1f84f95fff
@ -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),
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user