Skip to content

Comments

feat: A comprehensive, standards-compliant NFT contract using Soroban SDK#32

Closed
Naomi-Gift wants to merge 13 commits intoNFTopia-Foundation:mainfrom
Naomi-Gift:main
Closed

feat: A comprehensive, standards-compliant NFT contract using Soroban SDK#32
Naomi-Gift wants to merge 13 commits intoNFTopia-Foundation:mainfrom
Naomi-Gift:main

Conversation

@Naomi-Gift
Copy link

Closes #20

@Naomi-Gift
Copy link
Author

@Oluwaseyi89 PR is ready for review.

@Oluwaseyi89
Copy link
Contributor

@Naomi-Gift please, pull our main branch and push again

@Naomi-Gift
Copy link
Author

Okayy @Oluwaseyi89 i will do that.

@Naomi-Gift
Copy link
Author

@Oluwaseyi89 Everything is running now perfectly

@Oluwaseyi89
Copy link
Contributor

@Naomi-Gift still pull and push, please.

Naomi-Gift and others added 3 commits January 27, 2026 12:33
- Fix nftopia-stellar workflow: add proper wasm32 target, make checks non-blocking
- Add Dockerfile and .dockerignore for frontend
- Improve contract building logic in CI
@Naomi-Gift
Copy link
Author

@Oluwaseyi89 Done!

@Oluwaseyi89
Copy link
Contributor

@Naomi-Gift you did not resolve the pending merge conflict. Please, pull resolve merge conflict and push again.

@Naomi-Gift
Copy link
Author

@Oluwaseyi89 I just did, It wasn't showing thta they were more conflicts,please can you check again if theres anything else?

please dont forget add points for me if we get to merge

@Oluwaseyi89
Copy link
Contributor

@Naomi-Gift you are working on the main branch, which is not allowed. Backup your work somewhere and change to another branch, fetch and merge with our main branch then implement your task in the new branch. Note resolve these warnings:

 Compiling nft_contract v0.1.0 (/home/seyi/Documents/nftopia/nftopia-stellar/nftopia-stellar/contracts/nft_contract)
warning: unused import: `Vec`
 --> contracts/nft_contract/src/events.rs:1:53
  |
1 | use soroban_sdk::{Address, String as SorobanString, Vec, contracttype, symbol_short};
  |                                                     ^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `crate::error::ContractError`
 --> contracts/nft_contract/src/storage.rs:1:5
  |
1 | use crate::error::ContractError;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `TokenAttribute`
 --> contracts/nft_contract/src/storage.rs:2:33
  |
2 | use crate::token::{RoyaltyInfo, TokenAttribute, TokenData};
  |                                 ^^^^^^^^^^^^^^

warning: unused import: `Map`
 --> contracts/nft_contract/src/storage.rs:3:33
  |
3 | use soroban_sdk::{Address, Env, Map, String as SorobanString, Vec, contracttype};
  |                                 ^^^

warning: unused import: `Map`
 --> contracts/nft_contract/src/token.rs:1:28
  |
1 | use soroban_sdk::{Address, Map, String as SorobanString, Vec, contracttype};
  |                            ^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
  --> contracts/nft_contract/src/events.rs:92:22
   |
92 |         env.events().publish(
   |                      ^^^^^^^
   |
   = note: `#[warn(deprecated)]` on by default

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
  --> contracts/nft_contract/src/events.rs:99:22
   |
99 |         env.events().publish(
   |                      ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:115:22
    |
115 |         env.events().publish(
    |                      ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:132:22
    |
132 |         env.events().publish(
    |                      ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:145:14
    |
145 |             .publish((symbol_short!("burn"),), BurnEvent { from, token_id });
    |              ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:153:22
    |
153 |         env.events().publish(
    |                      ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:163:22
    |
163 |         env.events().publish(
    |                      ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:175:22
    |
175 |         env.events().publish(
    |                      ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:187:14
    |
187 |             .publish((symbol_short!("pause"),), PauseEvent { is_paused });
    |              ^^^^^^^

warning: use of deprecated method `soroban_sdk::events::Events::publish`: use the #[contractevent] macro on a contract event type
   --> contracts/nft_contract/src/events.rs:196:22
    |
196 |         env.events().publish(
    |                      ^^^^^^^

warning: associated functions `require_metadata_updater`, `require_token_owner_or_approved`, and `require_token_owner` are never used
  --> contracts/nft_contract/src/access_control.rs:45:12
   |
7  | impl AccessControl {
   | ------------------ associated functions in this implementation
...
45 |     pub fn require_metadata_updater(env: &Env, caller: &Address) -> Result<(), ContractError> {
   |            ^^^^^^^^^^^^^^^^^^^^^^^^
...
65 |     pub fn require_token_owner_or_approved(
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
93 |     pub fn require_token_owner(
   |            ^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: associated function `is_metadata_frozen` is never used
   --> contracts/nft_contract/src/metadata.rs:105:12
    |
10  | impl Metadata {
    | ------------- associated function in this implementation
...
105 |     pub fn is_metadata_frozen(env: &Env) -> Result<bool, ContractError> {
    |            ^^^^^^^^^^^^^^^^^^

warning: associated function `get_default_royalty` is never used
  --> contracts/nft_contract/src/royalty.rs:90:12
   |
10 | impl Royalty {
   | ------------ associated function in this implementation
...
90 |     pub fn get_default_royalty(env: &Env) -> Result<RoyaltyInfo, ContractError> {
   |            ^^^^^^^^^^^^^^^^^^^

warning: associated functions `set_invoker` and `is_valid_token_id` are never used
  --> contracts/nft_contract/src/utils.rs:15:12
   |
5  | impl Utils {
   | ---------- associated functions in this implementation
...
15 |     pub fn set_invoker(env: &Env, invoker: &Address) {
   |            ^^^^^^^^^^^
...
37 |     pub fn is_valid_token_id(token_id: u64) -> bool {
   |            ^^^^^^^^^^^^^^^^^

warning: `nft_contract` (lib) generated 19 warnings (run `cargo fix --lib -p nft_contract` to apply 5 suggestions)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 38s
seyi@seyi-Latitude-E5450:~/Documents/nftopia/nftopia-stellar/nftopia-stellar$ 

@Naomi-Gift
Copy link
Author

Naomi-Gift commented Jan 28, 2026

surpressed by #61

@Naomi-Gift Naomi-Gift closed this Jan 28, 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