您好,登录后才能下订单哦!
小编给大家分享一下BtcTool有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性:
利用第三方服务获取指定地址的utxo集合
离线生成消费裸交易
利用第三方服务广播裸交易
BtcTool目前支持的第三方服务包括,并且可以非常简单进行扩展:
blockchain.info
btc.com
BtcTool下载地址:http://sc.hubwiz.com/codebag/btc-php-lib/
BtcTool运行在**Php 7.1+**环境下,当前版本1.0.0,主要代码文件清单如下:
BtcTool的入口是Wallet类,基本的使用步骤如下:
创建一个Wallet实例
将私钥加入该Wallet实例
使用Wallet实例的**sendTx()**方法获取编码后的裸交易
使用Wallet实例的**broadcast()**方法广播裸交易
示例例代码如下,说明见注释:
<?php require('../vendor/autoload.php'); use BtcTool\Wallet; //引入开发包 $wallet = new Wallet('testnet'); //创建钱包,主网传入 mainnet $prvKey = '...'; //向钱包中添加私钥,可添加多个 $wallet->addKey($prvKey); $toAddr = 'mgYPLmNuZymK...e2XUNF6VFnT' //地址应当与testnet/mainnet保持一致 $amount = 10000; //单位:satoshi $rawtx = $wallet->sendTx($toAddr,$amount); //构造裸交易,返回16进制字符串 $ret = $wallet->broadcast($rawtx); //广播裸交易
注意:
Wallet实例利用钱包中的私钥生成地址列表,并利用这些地址从第三方服务获取utxo信息。 因此需要钱包中的私钥对应地址在链上有utxo存在,Wallet对象才能够成功构造裸交易。
在调用Wallet对象的sendTx()方法构造裸交易时,可以指定找零地址和手续费,例如:
$rawtx = $wallet->sendTx($toAddr,$amount,$changeAddr,$fee);
如果未指定后面两个参数,找零地址默认为钱包中第一个私钥对应的地址,手续费默认为 10000satoshi(高费率)。 3. 转账目标地址应当与创建Wallet对象时指定的链ID一致,例如mainnet的p2pkh地址,前缀应当为1
利用钱包地址列表,获取候选UTXO。
接口方法:
collect():提取候选UTXO,返回TUXO集合
当前实现类:
CloudUtxoCollector
根据目标金额从候选UTXO中选择可消费UTXO
接口方法:
select():选择可消费UTXO,返回UtxoBag对象
当前实现类:
DefaultUtxoSelector
裸交易广播器
接口方法:
broadcast():广播裸交易
当前实现类:
CloudBroadcaster
管理私钥、地址和脚本,同时提供构造和广播裸交易的方法
主要方法:
::load(): 静态方法,利用硬盘的钱包文件构造Wallet对象
addKey():添加私钥
save():将Wallet对象保存到钱包文件
sendTx():构造裸交易,返回裸交易码流,该方法可自动搜索可用UTXO集合
broadcast():广播裸交易,调用Broadcaster完成
以上是“BtcTool有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。