Skip to content
This repository has been archived by the owner on Sep 5, 2022. It is now read-only.

NFTBounceable Standard Extension #67

Closed
tolya-yanot opened this issue Feb 12, 2022 · 5 comments
Closed

NFTBounceable Standard Extension #67

tolya-yanot opened this issue Feb 12, 2022 · 5 comments

Comments

@tolya-yanot
Copy link
Member

tolya-yanot commented Feb 12, 2022

⚠️ WARNING: Standards are now published and discussed in the TEPs repository. This page may be out of date.

NFTBounceable

Summary

Optional extension for NFT Standard.

Standardizes the way NFT transfers are rolled back if the recipient has rejected the notification message.

For example, if the NFT was sent to the wrong address and the recipient smart contract does not know how to interact with the NFT

Specification

If NFT item smart contract receive ownership_assigned message with bounced flag set it should revert ownership change and set prev_owner as current owner.

If NFT item smart contract receive editorship_assigned message with bounced flag set it should revert editorship change and set prev_editor as current editor.

@tvorogme
Copy link

It'll be perfect to add slice get_prev_owner() method_id { method, so third-party software can display previous owner while NFT in sell contract / marketplace.

@EmelyanenkoK
Copy link
Member

Looks like it should be solved on sell contract side. Indeed the chain of transfers may be arbitrary long: for instance user sends NFT to marketplace contract, marketplace deploy desired auction and send NFT there. In this case prev owner will not show practical previous owner. Besides when NFT will be sent to buyer prev_owner still will be presented for no reason.

Probably something like TemporaryNFTOwner standard (or at least template) which expose slice effective_owner() method_id {} will match here

@tvorogme
Copy link

I thought about this question a little more.

It seems to me that it is better not to make a TemporaryNFTOwner because the scheme turns out to be too confusing.

It is much easier to make system operations on the NFT that will save prev_owner.

We can separate the operations of marketplaces / sell contracts and user operations.

What do you think?

Also bounce from sell contract to marketplace could be implemented by marketplace.

@tvorogme
Copy link

tvorogme commented Mar 19, 2022

It is much easier to make system operations on the NFT that will save prev_owner.

We can separate the operations of marketplaces / sell contracts and user operations.

Long chains of transactions in this case will be even easier to organize

In system transactions, we can pass prev_owner inside payload, so when the sale contract is canceled, the NFT will go directly to the previous owner: here

@tolya-yanot
Copy link
Member Author

Further discussion in TEPs

@tolya-yanot tolya-yanot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants