Open tvorogme opened 2 years ago
It is unclear from the standard what the desired behavior is. The nft itself is initialized. It has content. It even will respond to get_static_data. For example, this smart contract almost always returns -1.
Sure, but as for backends (as I think) it'll much easier to run one get method, to know can we use NFTs in our dApps or not.
All dApps uses transfer method to interact with it: any games, marketplaces, etc.
It's sad, that official DNS contract have such behavior, but I personally think that we don't need to populate such behavior further.
Otherwise, you will have to download every time NFT data&code and run TVM to check the transfers locally to see if you can use them in your apps or not. This is very uncomfortable, as for me, you'll need to adapt to each NFT instead trust one bit in GET method 🤷♂️
I don't think it's a problem to show an NFT as initiated when it's actually initiated but hasn't found its owner yet. This shouldn't create a problem since no one can transfer this NFT anyway.
But what about secondary auctions? NFTs cannot be transferred, but get_nft_data
does not give any hint of this (thus wallets will not properly handle this situation by default). Maybe it makes sense to show NFT owner as zero_address when the auction is active?
According to standard in get_nft_data -
init? - if not zero, then this NFT is fully initialized and ready for interaction.
, but if it's in auction state it's not ready for interaction, I guess? Because transfer is blocked while auction cell is not null https://github.com/TelegramMessenger/telemint/blob/26376dec9577cd210c8c8d11509f7f87dae720c8/func/nft-item.fc#L212https://github.com/TelegramMessenger/telemint/blob/main/func/nft-item.fc#L281