源代码:以太坊PHP离线交易开发包

Posted 汇智网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源代码:以太坊PHP离线交易开发包相关的知识,希望对你有一定的参考价值。


EthTool开发包适用于希望采用裸交易php以太坊应用开发,主要包含以下特性:

  • 支持裸交易部署/调用合约

  • 内置etherscan和infura支持

  • keystore生成与读取,兼容geth/parity


采用裸交易的一个好处是开发者不必自己部署以太坊节点 —— 同步区块是很痛苦的过程。使用EthTool构造好裸交易之后,只需要使用第三方(etherscan/infura/…)提供的服务来广播交易即可。

http://sc.hubwiz.com/codebag/eth-php-lib/

EthTool运行在**Php 7.1+**环境下,当前版本1.0.0,主要代码文件清单如下:

2. 使用说明

代码包的主要类如下:

  • RawTxBuilder: 裸交易构造器

  • Credential: 账户私钥与交易签名封装

  • EthApi: 以太坊交易接口封装

  • KeyStore: V3版本的keystore,兼容geth/parity


裸交易构造

使用RawTxBuildercreate()静态方法获取一个构造器实例,例如:

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

http://sc.hubwiz.com/codebag/eth-php-lib/ ,


可以直接点击左下角的“阅读原文”这样可以访问原文包括文中的所有链接。


汇智网内容已经覆盖以下编程技术,发送相应的文字会收获相关课程信息:

区块链以太坊EOS比特币Tendermint、Node.jsMongoDBjavascript、C、C#、PHP、Python、AngularjsIonic、React、UML、redis、mysqlnginx、CSS、htmlBootstrap、Flask、Gulp、Mocha、Git、Meteor、Canvas、zebra、Typescript、Material Design Lite、ECMAScript、Elasticsearch、Mongoose、jQuery、d3.js、django、cheerioSVG、phoneGap、jQueryMobile、Saas、YAML、Vue.js、webpack、Firebird,jQuery Easy UI,ruby,asp.net,c++,Express......


以上是关于源代码:以太坊PHP离线交易开发包的主要内容,如果未能解决你的问题,请参考以下文章

区块链钱包之创建以太坊离线交易(ETH交易)

区块链钱包之创建以太坊离线交易(ETH交易)

使用PHP和树莓派开发一个比特币和以太坊交易机器人

从零开发区块链应用(十四)--以太坊交易哈希查询

[以太坊源代码分析] I.区块和交易,合约和虚拟机

以太坊开发如何开发一个编译以太坊智能合约并且发布的平台