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("error", sa.String(256), nullable=True),
|
||||||
sa.Column("seller_address", sa.String(256), nullable=False),
|
sa.Column("seller_address", sa.String(256), nullable=False),
|
||||||
sa.Column("buyer_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("payment_amount", sa.Numeric, nullable=False),
|
||||||
sa.Column("collection_address", sa.String(256), nullable=False),
|
sa.Column("collection_address", sa.String(256), nullable=False),
|
||||||
sa.Column("token_id", sa.Numeric, nullable=False),
|
sa.Column("token_id", sa.Numeric, nullable=False),
|
||||||
|
@ -12,7 +12,7 @@ def create_nft_trade_from_transfers(
|
|||||||
collection_address: str,
|
collection_address: str,
|
||||||
seller_address: str,
|
seller_address: str,
|
||||||
buyer_address: str,
|
buyer_address: str,
|
||||||
exchange_wallet_address: Optional[str],
|
exchange_wallet_address: str,
|
||||||
) -> Optional[NftTrade]:
|
) -> Optional[NftTrade]:
|
||||||
transfers_to_buyer = _filter_transfers(child_transfers, to_address=buyer_address)
|
transfers_to_buyer = _filter_transfers(child_transfers, to_address=buyer_address)
|
||||||
transfers_to_seller = _filter_transfers(child_transfers, to_address=seller_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:
|
if transfers_to_buyer[0].token_address != collection_address:
|
||||||
return None
|
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
|
payment_amount = transfers_to_seller[0].amount
|
||||||
token_id = transfers_to_buyer[0].amount
|
token_id = transfers_to_buyer[0].amount
|
||||||
|
|
||||||
if exchange_wallet_address is not None:
|
transfers_from_seller_to_exchange = _filter_transfers(
|
||||||
transfers_from_seller_to_exchange = _filter_transfers(
|
child_transfers,
|
||||||
child_transfers,
|
from_address=seller_address,
|
||||||
from_address=seller_address,
|
to_address=exchange_wallet_address,
|
||||||
to_address=exchange_wallet_address,
|
)
|
||||||
)
|
transfers_from_buyer_to_exchange = _filter_transfers(
|
||||||
transfers_from_buyer_to_exchange = _filter_transfers(
|
child_transfers,
|
||||||
child_transfers,
|
from_address=buyer_address,
|
||||||
from_address=buyer_address,
|
to_address=exchange_wallet_address,
|
||||||
to_address=exchange_wallet_address,
|
)
|
||||||
)
|
for fee in [
|
||||||
for fee in [
|
*transfers_from_seller_to_exchange,
|
||||||
*transfers_from_seller_to_exchange,
|
*transfers_from_buyer_to_exchange,
|
||||||
*transfers_from_buyer_to_exchange,
|
]:
|
||||||
]:
|
# Assumes that exchange fees are paid with the same token as the sale
|
||||||
# Assumes that exchange fees are paid with the same token as the sale
|
payment_amount -= fee.amount
|
||||||
payment_amount -= fee.amount
|
|
||||||
|
|
||||||
return NftTrade(
|
return NftTrade(
|
||||||
abi_name=trace.abi_name,
|
abi_name=trace.abi_name,
|
||||||
@ -55,7 +54,7 @@ def create_nft_trade_from_transfers(
|
|||||||
error=trace.error,
|
error=trace.error,
|
||||||
seller_address=seller_address,
|
seller_address=seller_address,
|
||||||
buyer_address=buyer_address,
|
buyer_address=buyer_address,
|
||||||
payment_token=payment_token,
|
payment_token_address=payment_token_address,
|
||||||
payment_amount=payment_amount,
|
payment_amount=payment_amount,
|
||||||
collection_address=collection_address,
|
collection_address=collection_address,
|
||||||
token_id=token_id,
|
token_id=token_id,
|
||||||
|
@ -15,7 +15,7 @@ class NftTradeModel(Base):
|
|||||||
error = Column(String, nullable=True)
|
error = Column(String, nullable=True)
|
||||||
seller_address = Column(String, nullable=False)
|
seller_address = Column(String, nullable=False)
|
||||||
buyer_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)
|
payment_amount = Column(Numeric, nullable=False)
|
||||||
collection_address = Column(String, nullable=False)
|
collection_address = Column(String, nullable=False)
|
||||||
token_id = Column(Numeric, nullable=False)
|
token_id = Column(Numeric, nullable=False)
|
||||||
|
@ -15,7 +15,7 @@ class NftTrade(BaseModel):
|
|||||||
error: Optional[str]
|
error: Optional[str]
|
||||||
seller_address: str
|
seller_address: str
|
||||||
buyer_address: str
|
buyer_address: str
|
||||||
payment_token: str
|
payment_token_address: str
|
||||||
payment_amount: int
|
payment_amount: int
|
||||||
collection_address: str
|
collection_address: str
|
||||||
token_id: int
|
token_id: int
|
||||||
|
Loading…
x
Reference in New Issue
Block a user