TelegramMessenger / telemint

Telegram Auction Platform smart contracts
GNU General Public License v3.0
345 stars 70 forks source link

NFT shouldn't be inited during auction #66

Open tvorogme opened 2 years ago

tvorogme commented 2 years ago

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#L212

https://github.com/TelegramMessenger/telemint/blob/main/func/nft-item.fc#L281

arseny30 commented 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.

tvorogme commented 2 years ago

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.

tvorogme commented 2 years ago

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 🤷‍♂️

EmelyanenkoK commented 2 years ago

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?