api php usdt 以太坊_以太坊PHP离线交易开发包
EthTool开发包适用于希望采用裸交易的PHP以太坊应用开发,主要包含以下特性:
支持裸交易部署/调用合约
内置etherscan和infura支持
keystore生成与读取,兼容geth/parity
采用裸交易的一个好处是开发者不必自己部署以太坊节点 —— 同步区块是很痛苦的过程。使用EthTool构造 好裸交易之后,只需要使用第三方(etherscan/infura/...)提供的服务来广播交易即可。
EthTool运行在**Php 7.1+**环境下,当前版本1.0.0,主要代码文件清单如下:
代码文件
说明
ethtool/src/Callback.php
RPC回调类
ethtool/src/Credential.php
身份标识类
ethtool/src/KeyStore.php
Keystore类,V3算法
ethtool/src/EthApi.php
以太坊交易接口基类
ethtool/src/EthApiEtherscan.php
Etherscan交易接口类
ethtool/src/EthApiWeb3.php
Infura/Web3交易接口类
ethtool/src/RawContract.php
裸交易合约类
ethtool/src/RawTxBuilder.php
裸交易构造器
test/demo-etherscan.php
裸交易演示代码,使用etherscan提交
test/demo-infura.php
裸交易演示代码,使用infura提交
test/demo-keystore.php
keystore演示代码
vendor
第三方依赖包目录
composer.json
composer配置文件
使用说明
代码包的主要类如下:
RawTxBuilder: 裸交易构造器
Credential: 账户私钥与交易签名封装
EthApi: 以太坊交易接口封装
KeyStore: V3版本的keystore,兼容geth/parity
裸交易构造
使用RawTxBuilder的create()静态方法获取一个构造器实例,例如:
$rtb = RawTxBuilder::create();
裸交易构造器需要绑定一个账户对象,使用credential()方法:
$crendetial = Crendetial::fromKey('...');
$rtb->credential($credential);
RawTxBuilder目前支持三种裸交易的构造:
普通裸交易,例如以太币转账交易。使用getPlaintx()方法获取。
合约部署裸交易,使用getDeployTx()方法获取。
合约方法调用裸交易,使用getSendTx()方法获取。
例如,下面的代码生成合约部署裸交易:
$rawtx = RawTxBuilder::create()
->credential($credential)
->gasLimit('4000000')
->gasPrice('10000000000')
->chainId($chainId)
->nonce($nonce)
->contract($abi) //创建合约对象,一个RawContract实例
->bytecode($bin) //设置合约对象的字节码
->getDeployTx(1000000,'HAPPY COIN',0,'HAPY'); //获取部署裸交易码流
裸交易广播
EthApi基类目前定义以下方法,可以根据自己的需要扩充
getTransactionCount
sendRawTransaction
getTransactionReceipt
EthApiEtherscan是基于Etherscan服务的EthApi实现,EthApiWeb3是基于以太坊RPC的EthApi 实现。例如,下面的代码使用Etherscan在rinkeby测试链部署前面获得的裸交易:
$eth = new EthApiEtherscan($your_api_key/*etherscan api key*/,4/*rinkeby*/);
$txid = $eth->sendRawTransaction($rawtx);
KeyStore读写
KeyStore类可以读取geth/parity生成的keystore文件,其生成的 keystore文件也可以被geth/parity读取。
使用KeyStore类的静态方法save()将私钥转化为keystore格式写入指定目录:
$credential = Credential::new();
$prv = $credential->getPrivateKey();
$fileName = KeyStore::save($prv,'123','./keystore')
使用KeyStore类的静态方法load()载入指定的keystore文件并解密私钥:
$fileName = './keystore/....'
$prv = KeyStore::load($fileName,'123');
api php usdt 以太坊_以太坊PHP离线交易开发包相关推荐
- 以太坊PHP离线交易开发包
2019独角兽企业重金招聘Python工程师标准>>> EthTool开发包适用于希望采用裸交易的PHP以太坊应用开发,主要包含以下特性: 支持裸交易部署/调用合约 内置ethers ...
- api php usdt 以太坊_以太坊智能地址PHP开发包【零GAS归集ERC20】
SmartWallet开发包适用于平台方高效完成对用户地址上的Ether/ERC20代币的归集工作,无需向用户地址注入Ether即可完成Ether/ERC20代币的归集.官方下载地址:以太坊智能钱包P ...
- 以太坊区块链同步_以太坊69:如何在10分钟内建立完全同步的区块链节点
以太坊区块链同步 by Lukas Lukac 卢卡斯·卢卡奇(Lukas Lukac) Ethereu M 69:如何在10分钟内建立完全同步的区块链节点 (Ethereum 69: how to ...
- 以太坊导以太坊导_以太坊网络钓鱼诈骗在Facebook上的剖析
以太坊导以太坊导 One of the things that scares me about wide-spread blockchain adoption are phishing scams t ...
- 以太坊地址和公钥_以太坊地址是什么
以太坊生成地址的方式跟比特币比较类似,也是 私钥 -> 公钥 -> 地址,以太坊只是在公钥 -> 地址做了简化. 以太坊使用Secp256k1椭圆曲线得到私钥.公钥,比特币使用的也是 ...
- 以太坊区块链也拥堵_以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启?...
原标题:以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启? DappVision|7月16日 星期一 [行情] BTC 现价 ¥¥42,594.44 涨跌幅 1.57% ETH 现价 ...
- 以太坊系列 - 以太坊硬分叉和升级足迹
以太坊系列 - 以太坊硬分叉和升级足迹 Olympic | 2015 年 5 月 9 日 以太坊区块链于 2015 年7 月正式公开上线.而在这之前的临门一脚是 Olympic--第 9 个也是最后一 ...
- 独家 | Vitalik Buterin:以太坊2.0之跨分片交易
作者 | Vitalik Buterin 责编 | 佩奇 出品 | 区块链大本营(blockchain_camp) 2019年6月29日,由CSDN.灵钛科技主办,区块链大本营.Unitimes.ET ...
- python3 chm文档下载_python3.7.0官方参考文档 最新api文档 chm_Python教程_源雷技术空间...
资源名称:python3.7.0官方参考文档 最新api文档 chm 1.新语法特性: PEP 563, 推迟评估类型注释 2.向后不兼容语法更改: async 和 await 现在保留关键字 3.新 ...
- api数据接口文档_接口文档示例(Taobao/jd/pinduoduo/开放接口调用)
api数据接口文档_接口文档示例 本文主要是提供了一个接口文档的范文,内容修订历史.目录.时序图.接口要素描述.接口说明.使用示例.字典.FAQ. 使用MD格式文档(makedown),选择原因,容 ...
最新文章
- wifi无线上网技巧
- 轻量型日志采集器 Filebeat基本使用
- ViewConfiguration.getScaledTouchSlop () 用法
- 联合体在单片机中的应用
- python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...
- ITK:创建另一个图像实例
- div悬浮在固定位置_悬浮式超声波致动器概要及研究动向
- WinCE BSP中的DAT文件介绍
- SharePoint 2010开发实例精选——通过客户端对象模型删除页面上的Web部件
- oracle数据库怎么保存表,oracle从各个表取得数据保存到另一个表
- 远程协同TeamViewer
- 容器技术Docker K8s 15 容器服务ACK基础与进阶-容器网络管理
- UtIL DBUtil
- 查看文件夹和文件大小
- 江苏长江水位告警 南京明城墙再现“龙吐水”
- 计算机新建文件的方法,电脑新建文件夹怎么弄,新建文件夹的方法有几种-
- 解决premiere导入视频一卡一卡(闪烁),或者音画不同步(真正无损)。
- 如何打断制图中的CAD图形?
- tcp ip协议 服务器和客户端区别,网络与TCP/IP协议-总结
- Windows 下安装 Ubuntu 双系统