onzcoin / onz-php-api
ONZ API的PHP封装。
Requires
- php: >=7.0.0
- tcdent/php-restclient: ^0.1.6
Requires (Dev)
- phpunit/phpunit: 6.2.*
This package is not auto-updated.
Last update: 2024-09-21 18:52:08 UTC
README
这是一个用面向对象风格编写的ONZ API的PHP封装。
它应该是一个API的完整实现。
其中包含一个CLI解析器,使得可以从命令行调用所有操作。例如:
php api.php getBlocks --height=111500
API兼容性
目前支持ONZ API版本0.94。以下是从onz api可用的部分:
- [x] 账户
- [x] Loader
- [x] 交易
- [x] 对等方
- [x] 区块
- [x] 签名
- [x] 委托人
- [x] 应用程序
- [x] 多签名
安装
这是一个基于composer的包。安装就像这样简单:
composer require onzcoin/onz-php-api
使用
一般
要开始与onz服务器通信,需要实例化onz客户端并指定服务器的IP和端口。
这将连接到官方的onz测试网。
$client = new \Onz\Client('https://tnode11.onzcoin.com');
账户
获取账户余额
请求账户余额。
$client->getBalance($address);
获取公钥
获取账户的公钥。如果账户不存在,API调用将返回错误。
$client->getPublicKey($secret);
打开账户
请求账户信息。如果带有秘密的账户不存在,将创建账户。
$client->openAccount($secret);
生成公钥
返回提供的秘密密钥的公钥。
$client->generatePublicKey($secret);
从地址获取账户信息
返回地址的账户信息。
$client->getAccountInfo($address);
获取委托人
按地址返回委托人账户。
$client->getDelegates($address);
投票委托人
为选定的委托人投票。一次最多33个委托人。(注意:目前与onz api不兼容。异常:“a.asset.votes.join 不是函数”)
$client->voteDelegates($delegates, $secret, $secondSecret = null, $publicKey = null);
Loader
获取加载状态
$client->getLoadingStatus();
获取同步状态
获取客户端的同步状态。
$client->getSynchronizationStatus();
获取区块收据状态
获取最后收到的区块的状态。如果区块在过去的120秒内被接收,则返回true。
$client->getBlockStatus();
交易
获取交易列表
列出与提供的参数匹配的交易。
$client->listTransactions($blockId, $senderId, $recipientId, $limit, $offset, $orderBy);
发送交易
将交易发送到广播网络。
$client->sendTransaction($secret, $amount, $recipientId, $publicKey, $secondSecret);
获取交易
获取与提供的id匹配的交易。
$client->getTransaction($id);
获取未确认交易
获取与提供的id匹配的未确认交易。
$client->getUnconfirmedTransaction($id);
获取未确认交易列表
获取未确认交易列表。
$client->listUnconfirmedTransactions();
获取队列交易列表
获取队列交易列表。
$client->listQueuedTransactions();
获取特定队列交易
获取与提供的id匹配的队列交易。
$client->getQueuedTransaction($id);
对等方
获取对等方列表
根据提供的过滤器参数获取对等方列表。
$client->getPeerList($state, $os, $version, $limit, $offset, $orderBy);
获取对等方版本/构建时间
获取对等方版本和构建时间列表
$client->getPeerVersion();
获取对等方
通过IP地址和端口获取对等方。
$client->getPeer($ip, $port);
区块
获取区块
通过提供的过滤器获取所有区块。
$client->getBlocks($totalFee, $totalAmount, $previousBlock, $height, $generatorPublicKey, $limit, $offset, $orderBy);
获取区块
通过提供的id获取区块。
$client->getBlock($id);
获取区块链费用
获取发送“正常”交易的交易费用。
$client->getBlockchainFee();
获取区块链费用计划
获取所有类型交易的交易费用。
$client->getBlockchainFees();
获取区块链奖励计划
获取区块的锻造奖励。
$client->getBlockchainReward();
获取Onz代币(ONZ)的总供应量
获取流通中的Onz总量
$client->getTotalSupply();
获取区块链高度
获取客户端的区块链高度。
$client->getBlockchainHeight();
获取高度、费用、里程碑、区块奖励和供应的状态
获取高度、费用、里程碑、区块奖励和供应的状态
$client->getStatusInfos();
获取区块链Nethash
在客户端获取区块链的nethash。
$client->getBlockchainNethash();
获取区块链里程碑
在客户端获取区块链的里程碑。
$client->getBlockchainMilestone();
签名
获取签名费用
获取账户的第二签名状态。
$client->getSignatureFee();
添加第二签名
向账户添加第二签名。
$client->addSecondSignature($secret, $secondSecret, $publicKey);
委托人
在账户上启用委托人
提交创建委托人的请求。
$client->createDelegate($secret, $username, $secondSecret);
获取委托人列表
通过提供的过滤器获取委托人列表。
$client->getDelegateList($limit, $offset, $orderBy);
获取委托人
通过公钥或用户名获取委托人。
$client->getDelegate($publicKey, $username);
搜索委托人
通过“模糊”用户名搜索委托人。
$client->searchDelegate($username, $orderBy);
获取委托人数量
获取注册委托人的总数。
$client->getDelegateCount();
获取账户的投票
通过账户钱包地址获取投票。
$client->getDelegateVotes($address);
获取投票者
获取委托人的投票者。
$client->getDelegateVoters($publicKey);
在委托人上启用锻造
在客户端节点上启用委托人的锻造。
$client->enableForging($secret);
在委托人上禁用锻造
在客户端节点上禁用委托人的锻造。
$client->disableForging($secret);
通过账户获取锻造
获取账户锻造的Onz数量。
$client->getForgedByAccount($generatorPublicKey, $start, $end);
获取下一个锻造者
获取下一个排队锻造的委托人。
$client->getNextForger($limit);
应用
注册应用
注册区块链应用。
$client->registerApp($secret, $category, $name, $type, $link, $secondSecret, $publicKey, $description, $tags, $icon);
获取应用
获取网络上注册的区块链应用列表。
$client->getApps($category, $name, $appType, $link, $limit, $offset, $orderBy);
获取应用
通过注册ID获取特定的区块链应用。
$client->getApp($id);
搜索应用
通过节点上的过滤器搜索区块链应用。
$client->searchApps($q, $category, $installed);
安装应用
通过ID在节点上安装应用。
$client->installApp($id);
已安装的应用
返回请求节点上已安装应用列表。
$client->getInstalledApps();
已安装应用ID
返回请求节点上已安装应用ID列表。
$client->getAllInstalledApps();
卸载应用
通过ID从请求节点卸载应用。
$client->uninstallApp($id);
启动应用
通过ID在请求节点启动应用。
$client->launchApp($id, $params);
安装中
返回请求节点上当前正在安装的应用ID列表。
$client->installingApp();
卸载中
返回客户端节点上当前正在卸载的应用ID列表。
$client->uninstallingApp();
已启动
返回客户端节点上当前已启动的应用ID列表。
$client->launchedApps();
分类
返回完整的应用分类列表。
$client->getCategories();
停止应用
通过ID在请求节点停止应用。
$client->stopApp($id);
多重签名
创建多重签名账户
创建多重签名账户。
$client->createMultiSignatureAccount($secret, $lifetime, $min, $keysgroup, $secondSecret);
获取多重签名账户
获取属于多重签名账户的账户列表。
$client->getMultiSignatureAccounts($publicKey);
签名多重签名交易
对等待签名的交易进行签名。
$client->getPendingTransactions($publicKey);
获取待签名的多重签名交易
返回通过公钥等待签名的多重签名交易列表。
$client->signPendingTransaction($secret, $transactionId, $publicKey);
待办事项
- [x] [1] 完成API
- [ ] [2] 完成文档
- [ ] [3] 在packagist上发布包
- [ ] [...] 更多
支持
如果您想支持我,请考虑为我投票的ONZ委托人
- pelops (ONZkXgbtn3UXx9VwVVGAtMmKNxuo5Su7cdYc) 在主网上
- pelops_testnet (ONZfnjELpTooW64V6CSXg5puP3v6pHTWA265) 在测试网上
开发
如果您想支持开发,只需创建一个pull request或fork此项目。我会尽快将所有内容合并到项目中。
项目支持者
这些人已为此项目做出贡献
非常感谢您!
许可证
根据GNU通用公共许可证v3.0许可
版权(c)2018 OnzCoin <hi@onzcoin.com>
OnzPhp 是免费软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,无论是许可证的第3版,还是(根据您的选择)该许可证的任何后续版本。
OnzPhp 的分发是希望它有用,但没有任何保证;甚至没有关于其商业性或适用于特定目的的暗示性保证。有关更多详情,请参阅GNU通用公共许可证。
您应该已经随 OnzPhp 收到了GNU通用公共许可证的一份副本。如果没有,请参阅 https://gnu.ac.cn/licenses/。