try improve seaport

master
lza_menace 2 years ago
parent f33fc332c2
commit 4440ef4e2a

@ -175,39 +175,20 @@ class Scrape extends Collection {
let fromAddress; let fromAddress;
let toAddress; let toAddress;
let amountWei; let amountWei;
let amountEther;
let tokenId; let tokenId;
if (log.topics[0].toLowerCase() === SEAPORT_SALE_TOPIC.toLowerCase()) { if (log.topics[0].toLowerCase() === SEAPORT_SALE_TOPIC.toLowerCase()) {
// Handle Opensea/Seaport sales // Handle Opensea/Seaport sales
const logDescription = seaportInterface.parseLog(log); const logDescription = seaportInterface.parseLog(log);
const matchingEthOffer = logDescription.args.offer.filter(
o => o.token.toLowerCase() == this.contractAddress.toLowerCase()
);
const matchingWethOffer = logDescription.args.offer.filter(
o => o.token.toLowerCase() == WETH_ADDRESS.toLowerCase()
);
// skip if logs do not match contract address
if (matchingEthOffer.length === 0 && matchingWethOffer.length === 0) return;
sale = true; sale = true;
platform = 'opensea'; platform = 'opensea';
fromAddress = logDescription.args.offerer.toLowerCase(); fromAddress = logDescription.args.offerer.toLowerCase();
toAddress = logDescription.args.recipient.toLowerCase(); toAddress = logDescription.args.recipient.toLowerCase();
tokenId = logDescription.args.offer[0].identifier.toString(); amountWei = BigNumber.from(logDescription.args.offer[0].amount).toString();
// slightly different logic if wETH offer accepted vs ETH purchase let rl = receipt.logs.filter(
if (matchingWethOffer.length > 0) { l => l.logIndex === log.logIndex + 2 && l.topics[0].toLowerCase() === TRANSFER_TOPIC
// wETH accepted bids provide the grand total in the offer );
amountWei = BigInt(matchingWethOffer.map( if (rl.length > 0) {
o => (o.amount > 0) ? o.amount : 0 tokenId = BigInt(rl[0].topics[3]);
));
} else {
// ETH accepted offers provide the fee amounts to tally up
const allAmounts = logDescription.args.consideration.map(
_f => BigInt(_f.amount)
);
amountWei = allAmounts.reduce(
(prev, cur) => prev + cur,
BigInt(0)
);
} }
} else if (log.topics[0].toLowerCase() === WYVERN_SALE_TOPIC.toLowerCase()) { } else if (log.topics[0].toLowerCase() === WYVERN_SALE_TOPIC.toLowerCase()) {
// Handle Opensea/Wyvern sales // Handle Opensea/Wyvern sales
@ -278,7 +259,7 @@ class Scrape extends Collection {
} }
} }
if (sale) { if (sale) {
amountEther = ethers.utils.formatEther(amountWei); let amountEther = ethers.utils.formatEther(amountWei);
let msg = `[ ${timestamp.toISOString()} ][ ${this.contractName} ][ sale ] #${tokenId}: ${fromAddress} => ${toAddress} for ${amountEther}Ξ (${platform}) in tx ${txHash}:${logIndex}\n`; let msg = `[ ${timestamp.toISOString()} ][ ${this.contractName} ][ sale ] #${tokenId}: ${fromAddress} => ${toAddress} for ${amountEther}Ξ (${platform}) in tx ${txHash}:${logIndex}\n`;
console.log(msg); console.log(msg);
const q = { const q = {

Loading…
Cancel
Save