优盾钱包(www.uduncloud.com)提供BTC_ETH_USDT_EOS_XRP等主流erc20代币对接交易所钱包充提币_转账支付归集_API/RPC的php/java开发接口。API快捷接入,多币种多地址钱包余额一键归集、私钥冷存储、多级复签、全终端支持。
►点此立即试用◄
加密资产交易从市场初始至今一直呈现异常火热的状态,大量资金和投资人纷纷涌入,庞大体量的加密资产成为黑客们眼中的香饽饽,安全问题屡见不鲜。如何存储和管理加密资产,成为从业者持续关注并不断迭代的问题,区块链钱包应运而生。

以太坊作为基于区块链技术建立的一种去中心化应用平台,在平台中不管什么人都能够建立以及使用根据区块链技术运行的去中心化应用。以太坊代币就是利用ETH智能合约编写出来的各种数字货币。今天我们就来聊一聊基于PHP开发语言的,ETH代币转账交易需要哪几步?
ETH代币转账交易流程如下:
第一步,需要搭建节点
第二步, jsonrpc 接口 eth_call,eth_sendTransaction ,personal_unlockAccount,personal_lockAccount
第三步, 代币类型的合约地址 ETH代币的合约地址
第四步,组装jsonrpc 发送请求数据 (分为解锁账户、查看余额、发起交易、锁定账户)
第五步,发送请求
一.需要搭建节点
地址: http://localhost
端口:8545
安装golang,再运用go 命令 拉去,接着对它进行执行安装,安装这步骤结束 务必将 go的bin 路径加入到搭建环境变量中去,查找到 go/bin 的绝对路径,笔者的路径是 /root/go/bin,然后在末行添加 export PATH = /root/go/bin:$PATH 后执行保存退出 , 在这里你要把笔者的path 路径换成开发者自己的,进行刷新环境后使其修改生效,接着执行后台拉块,启动交互式JavaScript环境,点击进入区块-选择连接到节点。
在此环境中嵌入了某些作用于操作ETH的JavaScript对象,开发者能够对ETH的JavaScript对象进行直接使用。在这里的命令都是基于geth attach 进入区块以后 出现“>” 标识之后使用)ETH的JavaScript对象主要涵盖:
eth:涵盖某些与操作区块链相关的方式
net:涵盖如下查询浏览p2p网络状态的办法
admin:涵盖某些和管理节点相关的方法
miner:涵盖启动&停止挖矿的方法
personal:主要涵盖一些管理账户的内容
txpool:涵盖某些查询浏览交易内存池的方法
web3:涵盖了以上对象,另外仍含有一定单位换算的方法方式
运用方式 命令.功能
举例子:
查询浏览当前情况下被拉下来的区块
>eth.blockNumber
查询浏览当前情况下同步信息
>eth.syncing

二, jsonrpc接口使用 ETH接口参数如下
eth_sendTransaction 发起转账
from: DATA, 20字节 - 发送交易的源地址
to: DATA, 20字节 - 交易目标地址,如果在创建新合约时可以选则
gas:QUANTITY - 交易执行时能够用gas量,可选择整数,默认值为90000,未用gas状态下将会返还。
gasPrice: QUANTITY -gas价格,可以选择,默认值:待定(To-Be-Determined)
value: QUANTITY - 交易时候发送的金额,可以选择整数
data:DATA - 合约的编译带或被调用方法的签名及编码参数
nonce: QUANTITY - nonce,可以选择。能够运用同一个nonce来执行挂起的交易的重写
eth_call 查看ETH代币余额
from: DATA, 20 Bytes - 发送交易的原地址,可以选择
to: DATA, 20 Bytes - 交易目标地址
data: DATA - 方法签名和编码参数的哈希,可以选择
QUANTITY|TAG - 整数块编号,或字符串"latest"、“earliest"或"pending”
personal_unlockAccount 解锁账户
QUANTITY -解锁地址
QUANTITY -解锁地址密码
personal_lockAccount 锁定账户
QUANTITY -锁定地址
三、代币的合约地址 (0xdac17f958d2ee523a2206206994597c13d831ec7),查看办法
下方图片为查询页面
红色标记指的就是代币的合约地址

四、组装jsonrpc发送交易数据
jsonprc 公用参数表示为:
$opts = [
'jsonrpc' => '2.0',
'method' => '',
'params' => [],
'id' => time()
];
curl post 请求

先解锁账户

解锁账户常会遇见的错误
1.节点里面没有导入需要解锁的地址, 解锁失败
2.地址的密码错误,解锁失败
查看浏览账户余额
$opts = [
'jsonrpc' => '2.0',
'method' => 'eth_call', //查询以太坊代币的jsonrpc接口
'params' => [
0=>[
'from' =>'0xb60e8dd61c5d32be8058bb8eb970870f07233155',//查询地址
'to' => '0xdac17f958d2ee523a2206206994597c13d831ec7', //usdt 智能合约地址
'data' => '0x70a08231000000000000000000000000' . substr( '0xb60e8dd61c5d32be8058bb8eb970870f07233155', 2),
//0x70a08231000000000000000000000000 为固定用法, 后面加上去掉0x的from
],
1=>'latest' //”latest”, “earliest” or “pending”
],
'id' => time()
];
查询账户常会遇见的错误问题
1.地址有误
2.data数据组装有问题
查询结果

发起交易
$opts = [
'jsonrpc' => '2.0',
'method' => 'eth_sendTransaction', //转账接口
'params' => [
0=>[
'from' =>'0xb60e8dd61c5d32be8058bb8eb970870f07233155',//转账地址
'to' => '0xdac17f958d2ee523a2206206994597c13d831ec7', //usdt 智能合约地址
'value'=>'0x', //合约交易, value为0
'gas'=>'0x' . dechex( '1000000' ), // 1000000 可根据自己修改, 少的话,交易失败率高
'gasPrice'=>'0x' . dechex( '1000000000' ), //同 gas
'data' => '0xa9059cbb000000000000000000000000b60e8dd61c5d32be8058bb8eb970870f0723315500000000000000000000000000000000000000000000000000000000000f4240'
//data参数: '0xa9059cbb'.处理的接收地址 . 处理的交易金额
//处理的接收地址: 地址去掉0x , 然后在前补0到64位
//处理的交易金额: 交易金额转成16进制,如果带0x 去掉0x,不带0x忽略, 然后在前方补0到64位
],
],
'id' => time()
];
转账结果

转账常见错误
1. 账户没有以太坊,不够支付足够的矿工费,转账失败
2. data数据组装错误,转账失败
3. params 参数格式有误,转账失败
锁定账户

交易结束
如果你在使用本交易所系统时,讨厌搭建各个币种节点(因为太耗费硬盘和同步时间了),你可以选择使用优盾钱包,获取更加便捷的对接体验。
优盾钱包,是目前国内最好用的企业钱包开放平台。API一键对接,支持当下多数主流币种、多资产多地址统一管理、用户提币初审+复核安全模式、系统代付自动放币、多员工多钱包多权限一键分配、资产交易查询、资金流动消息提醒等多种功能。
防黑客技术上:
①API接口信息访问验签、基于HTTPS安全传输,拒绝被监听;
②私钥不上传、不触网,并通过二次加密托管在客户端侧;
③钱包绑定电脑MAC地址,拒绝非认证设备访问;
④冷热钱包分离,大额资产用冷钱包离线保存;
防内鬼技术上:
①员工操作权限管理员一键设置;
②员工操作记录管理员一键查询;
③员工只接触管理独立小额子钱包;
④超额转出交易需管理员复核;
⑤员工在非公司指定电脑设备登录优盾账号需管理员同意;
便捷接入:
①免节点同步;
②标准接口;
③详细接口文档;
④接入DEMO;
⑤7*24小时技术支持。
相关文章:
1.ETH转账交易离线签名教程
2.USDT钱包对接交易所 寻找最便捷的USDT充提币API接口文档
3.区块链支付系统USDT支付系统开发方案
4.BTC_ETH_USDT_自动充提币API接口,钱包对接交易所教程!