priteshdrc/stellar-api

Stellar网络的API客户端

v0.7.1 2018-11-27 11:08 UTC

This package is not auto-updated.

Last update: 2024-09-26 16:58:32 UTC


README

用于与Stellar网络交互的PHP库。

  • 与Horizon服务器通信
  • 构建并签名交易

⚠️ 危险区域 ⚠️

开发状态

此库正在积极开发中,应被视为beta质量。请确保您已在测试网络上进行了广泛的测试,并在您的代码的其他地方添加了健全性检查。

⚠️ 查看发行说明以了解重大更改

大整数支持

在64位平台上,最大的PHP整数是64位。当处理大额转账时,这一点非常重要。单个XLM(1 XLM)的本地表示为10000000 stroops。

因此,如果您尝试使用MAX_INT数量的XLM(或自定义资产),当值转换为stroops并发送到网络时,可能会溢出PHP的整数类型。

此库尝试添加对此场景的检查,并使用BigInteger类来解决这个问题。

如果您的应用程序使用大量XLM或自定义资产,请对大值进行广泛的测试,并在可能的情况下使用StellarAmount辅助类或BigInteger类。

浮点数问题

尽管这不是针对Stellar或PHP的特定问题,但在进行浮点数比较时了解这些问题很重要。

例如

$oldBalance = 1.605;
$newBalance = 1.61;

var_dump($oldBalance + 0.005);
var_dump($newBalance);
if ($oldBalance + 0.005 === $newBalance) {
    print "Equal\n";
}
else {
    print "Not Equal\n";
}

上述代码认为这两个值不相等,尽管打印出相同的值

输出

float(1.61)
float(1.61)
Not Equal

为了解决这个问题,始终以表示stroops的整数形式处理和存储金额。只有当您需要向用户显示余额时,才将其转换回十进制数。

可以使用静态的StellarAmount::STROOP_SCALE属性来帮助进行此转换。

安装

要安装最新版本以在项目中使用

cd your_project/
composer require zulucrypto/stellar-api

如果您想使用最新开发版本,可以使用此存储库

git clone https://github.com/zulucrypto/stellar-api.git
cd stellar-api/
composer install

入门指南

请参阅入门指南目录,了解如何使用此库的示例。

这些示例是基于Stellar入门指南中的示例

https://www.stellar.org/developers/guides/get-started/create-account.html

examples目录中提供了更多示例

捐赠

Stellar: GCUVDZRQ6CX347AMUUWZDYSNDFAWDN6FUYM5DVYYVO574NHTAUCQAK53