Skip to content

Commit

Permalink
Pass previous nft owner to maybeIncreaseChannelCumulativeRevenueAfter…
Browse files Browse the repository at this point in the history
…Nft to correctly check ownership where owner was updated earlier in the logic flow (#356)
  • Loading branch information
DzhideX authored Feb 3, 2025
1 parent f1c3793 commit 45e54fe
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
6 changes: 3 additions & 3 deletions src/mappings/content/nft.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ export async function processEnglishAuctionSettledEvent({
// set last sale
nft.lastSalePrice = winningBid.amount
nft.lastSaleDate = new Date(block.timestamp)
await maybeIncreaseChannelCumulativeRevenueAfterNft(overlay, nft)
await maybeIncreaseChannelCumulativeRevenueAfterNft(overlay, nft, previousNftOwner)

// add new event
const event = overlay.getRepository(Event).new({
Expand Down Expand Up @@ -355,7 +355,7 @@ export async function processBidMadeCompletingAuctionEvent({
// set last sale
nft.lastSalePrice = winningBid.amount
nft.lastSaleDate = new Date(block.timestamp)
await maybeIncreaseChannelCumulativeRevenueAfterNft(overlay, nft)
await maybeIncreaseChannelCumulativeRevenueAfterNft(overlay, nft, previousNftOwner)

// add new event
const event = overlay.getRepository(Event).new({
Expand Down Expand Up @@ -411,7 +411,7 @@ export async function processOpenAuctionBidAcceptedEvent({
// set last sale
nft.lastSalePrice = winningBid.amount
nft.lastSaleDate = new Date(block.timestamp)
await maybeIncreaseChannelCumulativeRevenueAfterNft(overlay, nft)
await maybeIncreaseChannelCumulativeRevenueAfterNft(overlay, nft, previousNftOwner)

// add new event
const event = overlay.getRepository(Event).new({
Expand Down
7 changes: 5 additions & 2 deletions src/mappings/content/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -870,11 +870,14 @@ export function computeRoyalty(royaltyPct: number, price: bigint): bigint {

export async function maybeIncreaseChannelCumulativeRevenueAfterNft(
overlay: EntityManagerOverlay,
nft: Flat<OwnedNft>
nft: Flat<OwnedNft>,
previousNftOwner?: NftOwner
) {
const video = await overlay.getRepository(Video).getByIdOrFail(nft.videoId)
const channel = await overlay.getRepository(Channel).getByIdOrFail(assertNotNull(video.channelId))
if (nft.owner.isTypeOf === 'NftOwnerChannel') {
const nftOwnerType = previousNftOwner ? previousNftOwner.isTypeOf : nft.owner.isTypeOf

if (nftOwnerType === 'NftOwnerChannel') {
increaseChannelCumulativeRevenue(channel, assertNotNull(nft.lastSalePrice))
} else {
if (nft.creatorRoyalty) {
Expand Down

0 comments on commit 45e54fe

Please sign in to comment.