Go-Ethereum

使用 json-rpc api 發送 erc20 令牌

  • March 22, 2021

我需要以自動方式發送 ERC20 令牌(準確地說是 golem),所以我設置了一個 geth json-rpc 伺服器

./geth --fast --rpc

所以我可以呼叫api就好了。

eth_sendtransaction的文件使將乙太坊發送到另一個地址變得很容易,但我找不到如何發送 ERC20 令牌。我看到了允許觸發智能合約的數據欄位。所以我想我需要在 ERC20 代幣的智能合約中觸發一個函式,但由於我需要學習可靠性並通讀整個 golem 智能合約,所以我想我先在這裡問一下。

謝謝 !

要發送符合 ERC20 的代幣,您需要呼叫transfer合約方法。要使用 geth 執行此操作,您正確選擇了eth_sendTransactionRPC 呼叫。

data參數中,您應該使用此處transfer描述的編碼參數指定 ABI 編碼函式(ABI 編碼)。

要對參數進行編碼,您可能需要使用線上工具https://abi.hashex.org。您輸入函式名稱(傳輸)並添加帶有類型和值的參數。或者您可以粘貼令牌 abi 並transfer在下拉列表“功能類型”中選擇功能。這是使用此工具的範例。

在此處輸入圖像描述

如果您想自動執行此操作,還有一個用於編碼參數的javascript 庫。

獲得 ABI 編碼數據後,將其設置為dataGeth RPC 呼叫中的欄位,設置其他值,然後就可以呼叫 Geth 並傳輸令牌了。

請注意,您從(fromRPC 呼叫中的參數)發送令牌的帳戶應該在 Geth 中解鎖以簽署交易。

謝謝,嘗試了你的方法,它確實轉移了,ETH而不是令牌。我們如何以及在哪裡定義合約地址(以便它知道 ABI 屬於合約),以便我們可以發送正確的令牌。

<– 編輯–>

剛剛找到解決方案: To: token合約的地址,因為那是函式呼叫的接收者。

value = 0(要發送的乙太坊數量。)

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