Skip to content

Conversation

@hentony124
Copy link
Contributor

Objective

Add a new Deck claim extension that enables creators to initialize claims with multiple token variations (card deck-style distribution), where a designated signer can deliver mints to specified recipients.

Summary of Changes

  • New contracts:

    • contracts/deckClaims/IDeck.sol - Base interface with shared types (StorageProtocol enum, ClaimMint struct, VariationMint struct) and error definitions
    • contracts/deckClaims/Deck.sol - Abstract base contract with admin controls, signer validation, and withdraw functionality
    • contracts/deckClaims/IERC1155Deck.sol - ERC1155-specific interface extending IDeck
    • contracts/deckClaims/ERC1155Deck.sol - Full implementation with claim initialization, token URI handling, and batch mint delivery
  • Test coverage:

    • test/deck/ERC1155Deck.t.sol - Comprehensive Foundry tests (25 test cases) covering access control, claim initialization, mint delivery, token URI generation, and edge cases
  • Documentation:

    • CLAUDE.md - AI assistant guidelines for the project

Key Flows

  1. Claim Initialization: Creator admin calls initializeClaim() with storage protocol, token variations count, and metadata location. This mints the initial token variations to the caller.

  2. Mint Delivery: Designated signer calls deliverMints() with array of ClaimMint structs specifying recipients, variation indices, and amounts. Tokens are minted to recipients via mintExtensionExisting().

  3. Token URI Resolution: URIs are constructed from storage protocol prefix (ARWEAVE/IPFS/NONE) + location + variation index.

Test Plan

  • All 25 Foundry tests pass
  • Access control tests (admin-only functions)
  • Claim initialization with different storage protocols
  • Mint delivery with valid/invalid variation indices
  • Multiple claims per creator contract
  • Multiple creator contracts
  • Token URI generation for ARWEAVE/IPFS/NONE protocols
  • Deprecation functionality
  • Withdraw functionality
  • Signer management

🤖 Generated with Claude Code

hentony124 and others added 3 commits December 15, 2025 08:30
Introduces a new Deck claim extension that allows creators to initialize
claims with multiple token variations. A designated signer can then
deliver mints to specified recipients.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@donpdang donpdang merged commit 8905a21 into main Dec 22, 2025
4 of 7 checks passed
@donpdang donpdang deleted the don/deck-contract branch December 22, 2025 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants