Erc-721
在不儲存乙太幣的情況下創建拍賣智能合約
我目前正在研究為 NFT 拍賣創建智能合約。但是由於某些法律限制,我們不允許在拍賣期間儲存乙太幣出價(通常拍賣契約就是這樣做的)。因此,首選的結果是使用者可以在不失去乙太幣的情況下出價,然後如果他們贏得了買賣雙方之間的交易,就會得到處理。我看到 opensea 似乎在他們的拍賣中用包裹的乙太做類似的事情。但我仍然試圖弄清楚他們如何在不將乙太幣儲存在合約中的情況下進行交換。
感謝所有的幫助和建議!
打包的乙太合約的行為類似於 ERC-20 合約。所以可以呼叫
approve
它。有了這個功能,NFT 買家可以允許拍賣合約按照出價花費他的代幣。拍賣合約要做的是呼叫該transferFrom
函式。它會起作用,因為拍賣契約已獲批准。如果 NFT 持有者也要求
approve
他們的代幣,則允許拍賣合約進行雙向轉賬。使用這種設置,拍賣合約永遠不會持有乙太幣、打包的乙太幣或 NFT。它只會在時機成熟時自動交換它們。
編輯:在 NFT 上命名該函式。
編輯2:我在這裡部署了這麼一個小契約,其中重要的幾行是:
IERC721(collection).safeTransferFrom(seller, buyer, tokenId); require(IERC20(token).transferFrom(buyer, seller, price));