diff --git a/package.json b/package.json index ce4575b..3d07202 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "skate-spots", "private": true, - "version": "1.2.39", + "version": "1.2.40", "type": "module", "homepage": "https://skate-spots.com", "scripts": { diff --git a/src/components/SpotOwnership.tsx b/src/components/SpotOwnership.tsx index 9e7f55b..fde9421 100644 --- a/src/components/SpotOwnership.tsx +++ b/src/components/SpotOwnership.tsx @@ -148,12 +148,15 @@ export function SpotOwnership({ spot }: SpotOwnershipProps) { // This creates a new addressable event with the same d-tag but new owner const eventTags: string[][] = []; - // Copy all original tags except the ones we're changing + // Copy all original tags EXCEPT provenance markers we're about to (re)set. + // Without this filter, claiming a spot that was itself a prior claim would + // stack multiple claim-from/claim-reason pairs on the event. for (const tag of spot.event.tags) { + if (tag[0] === 'claim-from' || tag[0] === 'claim-reason') continue; eventTags.push([...tag]); } - // Add claim reference + // Add a single, fresh claim reference pointing at the immediate prior owner. eventTags.push(['claim-from', spot.pubkey]); eventTags.push(['claim-reason', isAbandoned ? 'abandoned' : 'transfer']);