Contract-Design
編寫合約以接受不同的代幣(ETH 除外)
我正在為 Decentraland 開發一個 DApp,它將接受他們的 ERC-20 代幣 MANA 付款。如何編寫智能合約以接受 Eth 以外的代幣?msg.value 如何知道不同令牌的值?
另外,我如何將 MANA 儲存在智能合約中(作為地址(this).balance)?
address(this).balance
並且msg.value
只與乙太有關,所以你不能讓那些以某種方式顯示你的代幣數量。但是要接受token,呼叫者需要先呼叫
approve(<address>, <amount>)
token,這裡<address>
是你合約的地址,<amount>
是token的數量。然後當他們在你的合約上呼叫一個函式時,你可以呼叫token.transferFrom(msg.sender, address(this), amount)
將代幣轉移到合約中。您可以使用 來查看合約的代幣餘額token.balanceOf(address(this))
。在這些呼叫中,token
是您要使用的代幣的合約。