erc20 php,使用php将erc20令牌从一个帐户传输到另一个帐户
ERC20代幣轉賬是如何進行的?
即使erc20合同abi附帶了一個內置的傳輸方法,但這不是如何進行erc20令牌傳輸。傳遞令牌的方法涉及正確格式的契約的編碼,傳遞方法語句包括使用keccak算法傳遞的所有參數(shù)。這確實是一個復雜的過程,但是當一個庫不能使開發(fā)人員的工作變得更容易時,使用它有什么意義呢?所以,這里有一個簡單而聰明的方法來將ERC20令牌從一個以太坊地址轉移到另一個以太坊地址
交易費用說明:
以太坊區(qū)塊鏈上的任何交易都需要處理__gas__,因此,如果您打算從中轉移代幣的以太坊地址有足夠數(shù)量的代幣,但仍然沒有足夠數(shù)量的以太坊,交易將不會進行!
圖書館
此答案使用
erc20-php
庫,可以使用composer安裝:
composer require furqansiddiqui/erc20-php
ERC20代幣轉賬
讓我們從實例化必要的類開始:
declare(strict_types=1);
use EthereumRPC\EthereumRPC;
use ERC20\ERC20;
// Instantiate Ethereum RPC lib with your server credentials (i.e. Ethereum-Go)
// This example assumes Ethereum RPC server running on standard port 8545 on localhost
$geth = new EthereumRPC('127.0.0.1', 8545);
// Instantiate ERC20 lib by passing Instance of EthereumRPC lib as constructor argument
$erc20 = new ERC20($geth);
準備您的vars并獲取erc20令牌的實例:
$contract = "0x...contract-address"; // ERC20 contract address
$payer = "0x...payer-address"; // Sender's Ethereum account
$payee = "0x...payee-address"; // Recipient's Ethereum account
$amount = "1.2345"; // Amount of tokens to transfer
// Grab instance of ERC20_Token class
$token = $erc20->token($contract);
編碼令牌傳輸:
// First argument is payee/recipient of this transfer
// Second argument is the amount of tokens that will be sent
$data = $token->encodedTransferData($payee, $amount);
準備以太坊事務:
現(xiàn)在我們已經將所需的編碼傳輸方法十六進制字符串作為$data var輸入,接下來我們將準備并發(fā)送此事務,但這里是關鍵注意事項:
交易收款人:
erc20令牌傳輸交易發(fā)送到erc20合同地址,您在上一步中對原始收件人的地址進行了編碼,因此無需混淆,交易必須發(fā)送到智能合約的地址。
交易金額:
與收款人一樣,ERC20代幣轉賬金額已經編碼在我們的$data var中,因此交易金額應設為ETH。
準備交易:
$transaction = $geth->personal()->transaction($payer, $contract) // from $payer to $contract address
->amount("0") // Amount should be ZERO
->data($data); // Our encoded ERC20 token transfer data from previous step
就這樣!但是說真的,不要忘記發(fā)送這個事務:
// Send transaction with ETH account passphrase
$txId = $transaction->send("secret"); // Replace "secret" with actual passphrase of SENDER's ethereum account
恭喜,您的erc20令牌傳輸事務已發(fā)送到以太坊p2p網(wǎng)絡。您將從send()方法接收事務ID作為return,您可以使用該事務ID在任何以太坊區(qū)塊鏈資源管理器上檢查該事務的狀態(tài)!
謝謝你的閱讀!讓我知道它是如何為你解決的,我的博客上也有其他類似的主題:
https://www.furqansiddiqui.com/
總結
以上是生活随笔為你收集整理的erc20 php,使用php将erc20令牌从一个帐户传输到另一个帐户的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu 定时执行php文件,Ubu
- 下一篇: php 请求转发 重定向,PHP怎么实现