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离线交易开发包相关推荐

  1. 以太坊PHP离线交易开发包

    2019独角兽企业重金招聘Python工程师标准>>> EthTool开发包适用于希望采用裸交易的PHP以太坊应用开发,主要包含以下特性: 支持裸交易部署/调用合约 内置ethers ...

  2. api php usdt 以太坊_以太坊智能地址PHP开发包【零GAS归集ERC20】

    SmartWallet开发包适用于平台方高效完成对用户地址上的Ether/ERC20代币的归集工作,无需向用户地址注入Ether即可完成Ether/ERC20代币的归集.官方下载地址:以太坊智能钱包P ...

  3. 以太坊区块链同步_以太坊69:如何在10分钟内建立完全同步的区块链节点

    以太坊区块链同步 by Lukas Lukac 卢卡斯·卢卡奇(Lukas Lukac) Ethereu M 69:如何在10分钟内建立完全同步的区块链节点 (Ethereum 69: how to ...

  4. 以太坊导以太坊导_以太坊网络钓鱼诈骗在Facebook上的剖析

    以太坊导以太坊导 One of the things that scares me about wide-spread blockchain adoption are phishing scams t ...

  5. 以太坊地址和公钥_以太坊地址是什么

    以太坊生成地址的方式跟比特币比较类似,也是 私钥 -> 公钥 -> 地址,以太坊只是在公钥 -> 地址做了简化. 以太坊使用Secp256k1椭圆曲线得到私钥.公钥,比特币使用的也是 ...

  6. 以太坊区块链也拥堵_以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启?...

    原标题:以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启? DappVision|7月16日 星期一 [行情] BTC 现价 ¥¥42,594.44 涨跌幅 1.57% ETH 现价 ...

  7. 以太坊系列 - 以太坊硬分叉和升级足迹

    以太坊系列 - 以太坊硬分叉和升级足迹 Olympic | 2015 年 5 月 9 日 以太坊区块链于 2015 年7 月正式公开上线.而在这之前的临门一脚是 Olympic--第 9 个也是最后一 ...

  8. 独家 | Vitalik Buterin:以太坊2.0之跨分片交易

    作者 | Vitalik Buterin 责编 | 佩奇 出品 | 区块链大本营(blockchain_camp) 2019年6月29日,由CSDN.灵钛科技主办,区块链大本营.Unitimes.ET ...

  9. python3 chm文档下载_python3.7.0官方参考文档 最新api文档 chm_Python教程_源雷技术空间...

    资源名称:python3.7.0官方参考文档 最新api文档 chm 1.新语法特性: PEP 563, 推迟评估类型注释 2.向后不兼容语法更改: async 和 await 现在保留关键字 3.新 ...

  10. api数据接口文档_接口文档示例(Taobao/jd/pinduoduo/开放接口调用)

    api数据接口文档_接口文档示例 本文主要是提供了一个接口文档的范文,内容修订历史.目录.时序图.接口要素描述.接口说明.使用示例.字典.FAQ.  使用MD格式文档(makedown),选择原因,容 ...

最新文章

  1. wifi无线上网技巧
  2. 轻量型日志采集器 Filebeat基本使用
  3. ViewConfiguration.getScaledTouchSlop () 用法
  4. 联合体在单片机中的应用
  5. python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...
  6. ITK:创建另一个图像实例
  7. div悬浮在固定位置_悬浮式超声波致动器概要及研究动向
  8. WinCE BSP中的DAT文件介绍
  9. SharePoint 2010开发实例精选——通过客户端对象模型删除页面上的Web部件
  10. oracle数据库怎么保存表,oracle从各个表取得数据保存到另一个表
  11. 远程协同TeamViewer
  12. 容器技术Docker K8s 15 容器服务ACK基础与进阶-容器网络管理
  13. UtIL DBUtil
  14. 查看文件夹和文件大小
  15. 江苏长江水位告警 南京明城墙再现“龙吐水”
  16. 计算机新建文件的方法,电脑新建文件夹怎么弄,新建文件夹的方法有几种-
  17. 解决premiere导入视频一卡一卡(闪烁),或者音画不同步(真正无损)。
  18. 如何打断制图中的CAD图形?
  19. tcp ip协议 服务器和客户端区别,网络与TCP/IP协议-总结
  20. Windows 下安装 Ubuntu 双系统

热门文章

  1. STM32程序中使用printf打印中文字符乱码
  2. Vert.x 之 HelloWorld
  3. POJ 2686 Traveling by Stagecoach 壮压DP
  4. Codeforces 1009G Allowed Letters 最大流转最小割 sosdp
  5. iOS中Storyboard使用要点记录
  6. Storm概念学习系列之并行度与如何提高storm的并行度
  7. ajax 调用asp.net后台方法
  8. ajax 同步和异步的区别
  9. ASP.NET验证控件祥解[转]
  10. 文本生成系列之预训练模型