使用 json-rpc api 發送 erc20 令牌
我需要以自動方式發送 ERC20 令牌(準確地說是 golem),所以我設置了一個 geth json-rpc 伺服器
./geth --fast --rpc
所以我可以呼叫api就好了。
eth_sendtransaction的文件使將乙太坊發送到另一個地址變得很容易,但我找不到如何發送 ERC20 令牌。我看到了允許觸發智能合約的數據欄位。所以我想我需要在 ERC20 代幣的智能合約中觸發一個函式,但由於我需要學習可靠性並通讀整個 golem 智能合約,所以我想我先在這裡問一下。
謝謝 !
要發送符合 ERC20 的代幣,您需要呼叫
transfer
合約方法。要使用 geth 執行此操作,您正確選擇了eth_sendTransaction
RPC 呼叫。在
data
參數中,您應該使用此處transfer
描述的編碼參數指定 ABI 編碼函式(ABI 編碼)。要對參數進行編碼,您可能需要使用線上工具https://abi.hashex.org。您輸入函式名稱(傳輸)並添加帶有類型和值的參數。或者您可以粘貼令牌 abi 並
transfer
在下拉列表“功能類型”中選擇功能。這是使用此工具的範例。如果您想自動執行此操作,還有一個用於編碼參數的javascript 庫。
獲得 ABI 編碼數據後,將其設置為
data
Geth RPC 呼叫中的欄位,設置其他值,然後就可以呼叫 Geth 並傳輸令牌了。請注意,您從(
from
RPC 呼叫中的參數)發送令牌的帳戶應該在 Geth 中解鎖以簽署交易。
謝謝,嘗試了你的方法,它確實轉移了,ETH而不是令牌。我們如何以及在哪裡定義合約地址(以便它知道 ABI 屬於合約),以便我們可以發送正確的令牌。
<– 編輯–>
剛剛找到解決方案: To: token合約的地址,因為那是函式呼叫的接收者。
value = 0(要發送的乙太坊數量。)