Skip to content

feat: buyer purchase history / license library ("My Beats" page) #10

Description

@brightpixel-dev

Difficulty: Hard · Priority: Critical

Overview

There's no page showing what a connected wallet has purchased. getLicense(holder, sampleId) already exists in crate.ts but is never called anywhere. Add a "My Beats" library page.

Acceptance Criteria

  • New route/page listing samples the connected wallet owns a license for
  • Each entry shows license tier and a working IPFS download link
  • Ownership reconfirmed via getLicense before exposing the download link
  • Persists across sessions (not just the transient post-purchase state in SampleDetail)

Technical Approach

No on-chain "list samples owned by X" function exists — build a per-address purchase index from purchase_license events (reuse the event-polling approach from the notifications issue), cache resolved sample data client-side keyed by wallet.

The contract's read surface doesn't support this query shape at all, so the indexing/caching layer has to be built from scratch client-side rather than a simple new API call.

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions