BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性:
BtcTool目前支持的第三方服务包括,并且可以非常简单进行扩展:
BtcTool下载地址:http://sc.hubwiz.com/codebag/btc-php-lib/
BtcTool运行在Php 7.1+环境下,当前版本1.0.0,主要代码文件清单如下:
码文件 | 说明 |
---|---|
btctool/src/Wallet.php | 离线钱包类,开发包入口 |
btctool/src/Utxo.php | 未消费交易输出类 |
btctool/src/UtxoBag.php | Utxo集合类 |
btctool/src/UtxoCollector.php | Utxo收集器接口 |
btctool/src/CloudUtxoCollector.php | 基于第三方服务的Utxo收集器实现 |
btctool/src/UtxoSelector.php | Utxo筛选器接口 |
btchtool/src/DefaultUtxoSelector.php | 默认的Utxo筛选器实现 |
btctool/src/Broadcaster.php | 交易广播器接口 |
btctool/src/CloudBroadcaster.php | 基于第三方服务的交易广播器实现 |
btctool/src/Utils.php | 常用辅助函数 |
demo/wallet-init.php | 本地钱包初始化 |
demo/wallet-demo.php | 钱包载入、裸交易构造和广播 |
vendor | 第三方依赖包目录 |
composer.json | composer配置文件 |
BtcTool的入口是Wallet类,基本的使用步骤如下:
示例例代码如下,说明见注释:
<?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); //广播裸交易
注意:
$rawtx = $wallet->sendTx($toAddr,$amount,$changeAddr,$fee);
如果未指定后面两个参数,找零地址默认为钱包中第一个私钥对应的地址,手续费默认为10000satoshi(高费率)。
利用钱包地址列表,获取候选UTXO。
接口方法:
当前实现类:
根据目标金额从候选UTXO中选择可消费UTXO
接口方法:
当前实现类:
裸交易广播器
接口方法:
当前实现类:
管理私钥、地址和脚本,同时提供构造和广播裸交易的方法
主要方法:
扫码关注w3ctech微信公众号
共收到0条回复