ERC20代币转账是如何进行的?

即使erc20合同abi附带了一个内置的传输方法,但这不是如何进行erc20令牌传输。传递令牌的方法涉及正确格式的契约的编码,传递方法语句包括使用keccak算法传递的所有参数。这确实是一个复杂的过程,但是当一个库不能使开发人员的工作变得更容易时,使用它有什么意义呢?所以,这里有一个简单而聪明的方法来将ERC20令牌从一个以太坊地址转移到另一个以太坊地址

交易费用说明:

以太坊区块链上的任何交易都需要处理__gas__,因此,如果您打算从中转移代币的以太坊地址有足够数量的代币,但仍然没有足够数量的以太坊,交易将不会进行!

图书馆

此答案使用

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);

准备以太坊事务:

现在我们已经将所需的编码传输方法十六进制字符串作为$data var输入,接下来我们将准备并发送此事务,但这里是关键注意事项:

交易收款人:

erc20令牌传输交易发送到erc20合同地址,您在上一步中对原始收件人的地址进行了编码,因此无需混淆,交易必须发送到智能合约的地址。

交易金额:

与收款人一样,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

就这样!但是说真的,不要忘记发送这个事务:

// Send transaction with ETH account passphrase

$txId = $transaction->send("secret"); // Replace "secret" with actual passphrase of SENDER's ethereum account

恭喜,您的erc20令牌传输事务已发送到以太坊p2p网络。您将从send()方法接收事务ID作为return,您可以使用该事务ID在任何以太坊区块链资源管理器上检查该事务的状态!

谢谢你的阅读!让我知道它是如何为你解决的,我的博客上也有其他类似的主题:

https://www.furqansiddiqui.com/

erc20 php,使用php将erc20令牌从一个帐户传输到另一个帐户相关推荐

  1. 人——Web3的新平台

    由 Jad Esber.Nir Kabessa 和 David Phelps 构思.概述和编辑,David Phelp撰写. 文章翻译:Block unicorn 在Web3中,平台通过成为协议而成功 ...

  2. USM Appliance 部署和用户文档

    USM Appliance 部署指导 系统概览 USM Appliance 部署 设置管理接口 注册USM Appliance USM Appliance初始设置 初始向导 IDS 配置 VPN 配置 ...

  3. 计算机网络试题及答案

    来自http://www.docin.com/p-74932423.html 计算机网络试题及答案 广域网试题及答案 一.选择题 (1)决定使用哪条途径通过子网,应属于下列OSI的哪一层处理? (A) ...

  4. 跨链桥是否有安全的未来?

    在13次单独的跨链桥黑客攻击中,有20亿美元的加密货币被盗,其中大部分是今年被盗的.到目前为止,对跨链桥的攻击占2022年被盗资金总额的69%. 好消息是,这些服务可以采取措施保护自己.在发生黑客攻击 ...

  5. STIR/SHAKEN 呼叫的身份认证带外传输

    CHAKEN方案使用带外传输方式传送可信呼叫信息:STIR/SHAKEN基本协议基于核心网部署,存在因中间网段不支持SIP协议或数据报文丢失等原因无法成功传输呼叫身份的情况,其同样采用带外传输作为解决 ...

  6. 计算机网络 局域网

    一.选择题 1局域网的协议结构一般不包括: (A)网络层(B)物理层(C)数据链路层(D)介质访问控制层 (第五章局域网知识点:局域网的体系结构答案: A ) 2在下列网间连接器中,在数据链路层实现网 ...

  7. 【Ethereum】以太坊ERC20 Token标准完整说明

    什么是ERC20 token 市面上出现了大量的用ETH做的代币,他们都遵守REC20协议,那么我们需要知道什么是REC20协议. 概述 token代表数字资产,具有价值,但是并不是都符合特定的规范. ...

  8. 创建自己的ERC20加密货币(可管理、增发、兑换、冻结等高级功能的代币)

    以太坊官方原文ERC20代币标准源码:Ethereum Developer Resources | ethereum.org (注:本文是在原文的基础上,根据个人的理解,修改部分内容并添加了一些注释) ...

  9. 在以太坊开发自己的ERC-20代币及如何ICO

    今天我将向你展示如何在以太坊区块链上开发你自己的加密货币并将其出售!我将向你展示如何使用以太坊智能合约逐步创建自己的ERC-20代币和众筹销售,如何测试智能合约,如何将智能合约部署到以太坊区块链,以及 ...

最新文章

  1. python安装pandas模块-python安装numpy和pandas的方法步骤
  2. linux中常用的压缩、解压命令详解
  3. C语言如何获取结构体中指定元素的大小?sizeof ( (X*)0 ) -> Y)(空指针操作)
  4. boost::type_erasure::is_placeholder相关的测试程序
  5. 名品折扣,谁与争锋!
  6. crf与bitrate对照表
  7. 微纪实 | 人工智能产业落地最真实的样子
  8. 首期openGauss训练营结营,48个FAQ和全部PPT通通给你,随附62人结营学员名单
  9. 西门子v90伺服说明书_干货 | 西门子1200与V90伺服PROFINET通信故障解决方法
  10. 19. Python 类的重写   类的私有变量和私有方法
  11. numpy linspace
  12. 计算机等级ms答题演示,计算机等级一级MS Office考试考题:第六套演示文稿题
  13. Python—常用的几种列表、字典
  14. Atitit 文档资料管理同步解决方案
  15. Docker入门之安装Tomcat
  16. 修改文件 火车票买下铺_12306修改代码买下铺?12306码农太弱了吧 (转载)
  17. 随机森林和多元线性回归R语言实现代码
  18. 6种方法轻松将PDF转换为Word文档,办公必备!
  19. 13-zinx-Golang-MMO游戏Proto3协议
  20. 用R语言拟合Eurogenes G25祖源坐标的学习笔记

热门文章

  1. EM算法(Expectation Maximization Algorithm)详解
  2. db2数据库还原找不到文件_DB2 还原数据库
  3. AUC 评价指标详解,准确率(ACC),敏感性(sensitivity),特异性(specificity)计算 Python3【TensorFlow2入门手册】
  4. encodeURIComponent的用法
  5. mysql 造1亿条记录的单表--大数据表
  6. jboss 7 as1 日志配置
  7. 根据 UserAgent 判断网页是在浏览器、或在微信、或在APP中
  8. 【ETL】ETL讲解(很详细!!!)
  9. public class UserServiceImpl extends ServiceImpl UserMapper, User implements UserService
  10. 二次创业成功人士的19个经验与教训