Contract-Development

如何將代幣轉移到一個地址?

  • November 17, 2021

我使用 truffle 和 openzeppelin 來發行我的 ERC20 令牌。我已經可以添加和購買令牌,但仍然無法將令牌轉移到另一個。

當我 console.log 契約時,它告訴我: 契約

我為傳輸創建了前端

傳輸前端

但我有點困惑如何將它連接到合約以便能夠將令牌轉移到接收者地址。

現在我剛剛創建了這樣的函式轉移:

transferToken() {
   let web3 = store.getState().web3.web3Instance
   const receiver = this.state.receipt_add
   const token_value = this.state.token_amount

   const token = contract(IYoToken)
     token.setProvider(web3.currentProvider)

   token.deployed().then(inst => {
       inst.transfer({
           to: receiver,
           amount: token_value
       })
   })
}

但它不起作用,錯誤消息是: 在此處輸入圖像描述

要執行 ERC20 代幣的轉移,您必須transfer(address receiver, uint amount)從您的代幣合約中執行該功能。

在 javascript 中,它應該類似於

token.transfer(receiver, amount, { from: owner })

在你的情況下,這應該工作

transferToken() {
   let web3 = store.getState().web3.web3Instance
   const receiver = this.state.receipt_add
   const token_value = this.state.token_amount

   const token = contract(IYoToken)
   token.setProvider(web3.currentProvider)

   token.deployed().then(inst => {
       return inst.transfer(receiver,   // <----- ERC 20 token
           token_value,
           { from: token_owner })
   })
}

顯然this.state.token_amount是無效的。它應該是一個數字(整數)。也許this.state.receipt_add也是無效的。

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