Skip to content

Feat/allfixes - #153

Merged
manoahLinks merged 4 commits into
crowdpass-live:mainfrom
Otaiki1:feat/allfixes
Mar 29, 2026
Merged

Feat/allfixes#153
manoahLinks merged 4 commits into
crowdpass-live:mainfrom
Otaiki1:feat/allfixes

Conversation

@Otaiki1

@Otaiki1 Otaiki1 commented Mar 29, 2026

Copy link
Copy Markdown
Contributor

This PR closes #25
This PR closes #81
This PR closes #103

Here is a summary of the changes made:

  1. Token Metadata Support (Add token metadata support to ticket_nft contract (name, symbol, URI) #25)
    Contract Updates: Added Name, Symbol, BaseUri, and per-token TokenUri storage.
    New Methods: Implemented

name()
,

symbol()
,

token_uri(token_id)
, and

set_token_uri(token_id, uri)
(minter-only).
Constructor: Updated the contract constructor to accept

name
,

symbol
, and base_uri.
2. Transfer Restrictions and Cooldown (#81)
Restriction Logic: Added a global transfer toggle, blocklist support, and a configurable transfer cooldown period.
Error Handling: Introduced specific error variants for TransferDisabled, TransferCooldownActive, and AddressBlocked.
Management: Added minter-only functions to manage restrictions (

set_transfer_restrictions
,

set_blocklist
) and track the OriginalPrice for future resale cap enforcement.
Testing: Added 12 comprehensive tests in

test.rs
covering minting, burning, metadata, and all transfer restrictions (cooldown, blocklist, etc.). All tests passed successfully.
3. QR Code Generation for Verification (#103)
Contract Support: Added

get_token_id(owner)
to the

ticket_nft
contract to allow the client to retrieve the specific NFT ID for an owner for QR generation.
Client Implementation:
My Tickets Page: Created a new /my-tickets page that lists all tickets owned by the connected user.
Ticket QR Modal: Implemented a modal that generates a QR code containing ticket data (

token_id
, event_id,

owner
).
Cryptographic Signing: Added a "Generate Verified QR" feature that uses the Freighter wallet to sign the ticket data, ensuring the QR code cannot be easily forged or spoofed by screenshots.
Verifier Page: Created a /verifier scanner page for event organizers. It supports offline verification by checking the cryptographic signature and online verification by querying the Soroban network for current ownership.
Dependencies: Installed react-qr-code and html5-qrcode in the soroban-client package.
Key Files Modified:

lib.rs
: Core contract logic for metadata and restrictions.

test.rs
: Comprehensive unit tests.

soroban.ts
: SDK wrapper for new contract calls.

my-tickets/page.tsx
: User ticket wallet.

verifier/page.tsx
: Organizer ticket verifier.

@drips-wave

drips-wave Bot commented Mar 29, 2026

Copy link
Copy Markdown

@Otaiki1 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@manoahLinks
manoahLinks merged commit 5c718d4 into crowdpass-live:main Mar 29, 2026
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants