Skip to content

Conversation

@raizo07
Copy link

@raizo07 raizo07 commented Jan 22, 2026

Closes #342

I've Implemented a full Soroban NFT contract module set with roles, mint/burn/transfer/approval, metadata + royalties, batch ops, pause/whitelist/reveal controls, events, interface detection, and basic tests under nftopia-stellar/contracts/nft_contract/src.

The contract now has explicit storage/layout and helpers to support provenance tracking and safe transfers with receiver validation.

Key changes and locations:

  • Core contract and public API in nftopia-stellar/contracts/nft_contract/src/lib.rs.
  • Storage, roles, metadata, royalty, transfers, events, and interface helpers split into src/storage.rs, src/access_control.rs, * src/metadata.rs, src/royalty.rs, src/transfer.rs, src/events.rs, src/interface.rs, src/utils.rs.
  • Data structures in src/token.rs and error types in src/error.rs.
  • Basic unit tests in src/test.rs.
  • Updated Soroban dependencies and lib config in nftopia-stellar/contracts/nft_contract/Cargo.toml.

Notes:
safe_transfer_from calls on_nft_received on contract recipients and requires true to proceed.
token_uri falls back to base_uri when unrevealed or when token URI is empty.
Royalties are computed via get_royalty_info (EIP-2981-style); actual payment remains a marketplace responsibility.

@Oluwaseyi89
Copy link
Contributor

@raizo07 please pull our main branch and push again to get updated.

@raizo07
Copy link
Author

raizo07 commented Jan 27, 2026

@Oluwaseyi89 Done

@Oluwaseyi89
Copy link
Contributor

@raizo07 your PR failed checks.

@Oluwaseyi89
Copy link
Contributor

@raizo07 checks failed again. Please, review your code and ensure it builds successfully and passes all tests.

@raizo07 raizo07 closed this by deleting the head repository Jan 29, 2026
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.

Implement a comprehensive, standards-compliant NFT contract using Soroban SDK

2 participants