Contract-Design

編寫合約以接受不同的代幣(ETH 除外)

  • June 16, 2019

我正在為 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是您要使用的代幣的合約。

引用自:https://ethereum.stackexchange.com/questions/71893