Skip to content

Commit cf324d8

Browse files
committed
get current holder from transfer events
1 parent 565bf4d commit cf324d8

File tree

2 files changed

+9
-25
lines changed

2 files changed

+9
-25
lines changed

app/[locale]/10years/page.tsx

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import { fetch10YearEvents } from "@/lib/api/fetch10YearEvents"
4545
import { fetch10YearStories } from "@/lib/api/fetch10YearStories"
4646
import { fetchTorchHolders } from "@/lib/api/fetchTorchHolders"
4747
import {
48-
getCurrentHolderAddress,
48+
getCurrentHolder,
4949
getHolderEvents,
5050
getTransferEvents,
5151
isAddressFiltered,
@@ -93,6 +93,8 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
9393
const adoptionCards = await getAdoptionCards()
9494

9595
// Torch NFT data fetching logic
96+
const transferEvents = await getTransferEvents()
97+
9698
const torchHolderMap: Record<string, (typeof allTorchHolders)[0]> =
9799
allTorchHolders.reduce(
98100
(acc, holder) => {
@@ -102,7 +104,6 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
102104
{} as Record<string, (typeof allTorchHolders)[0]>
103105
)
104106

105-
const transferEvents = await getTransferEvents()
106107
const torchHoldersEvents = await getHolderEvents(
107108
torchHolderMap,
108109
transferEvents
@@ -112,14 +113,10 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
112113
let currentHolder: TorchHolderEvent | null = null
113114
try {
114115
isBurned = await isTorchBurned()
115-
const currentHolderAddress = await getCurrentHolderAddress()
116-
const isFiltered = isAddressFiltered(currentHolderAddress)
117-
const currentHolderEvent = torchHoldersEvents.find(
118-
(holder) =>
119-
holder.address.toLowerCase() === currentHolderAddress.toLowerCase()
120-
)
116+
const currentHolderEvent = getCurrentHolder(torchHoldersEvents)
117+
const isFiltered = isAddressFiltered(currentHolderEvent.address)
121118

122-
currentHolder = !isFiltered ? (currentHolderEvent ?? null) : null
119+
currentHolder = !isFiltered ? currentHolderEvent : null
123120
} catch (error) {
124121
console.error("Error fetching torch data:", error)
125122
}

src/lib/torch/index.ts

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -94,22 +94,9 @@ export const getHolderEvents = async (
9494
})
9595
}
9696

97-
export const getCurrentHolderAddress = cache(
98-
async () => {
99-
const publicClient = getPublicClient(config)
100-
101-
// If not burned, get the current holder
102-
const currentHolderAddress = (await publicClient.readContract({
103-
address: TORCH_CONTRACT_ADDRESS,
104-
abi: TORCH_ABI,
105-
functionName: "currentHolder",
106-
})) as Address
107-
108-
return currentHolderAddress
109-
},
110-
["torch-current-holder"],
111-
{ revalidate: 86400 }
112-
)
97+
export const getCurrentHolder = (holderEvents: TorchHolderEvent[]) => {
98+
return holderEvents[holderEvents.length - 1]
99+
}
113100

114101
export const isTorchBurned = cache(
115102
async () => {

0 commit comments

Comments
 (0)