olifanton / ton
用于The Open Network区块链的PHP库
1.5.1
2024-08-28 14:33 UTC
Requires
- php: >=8.1
- ext-json: *
- ext-sodium: *
- olifanton/interop: ^1.4
- olifanton/mnemonic: ^1.0.2
- php-http/client-common: ^2.0
- php-http/discovery: ^1.0
- php-http/httplug: ^2.0
- psr/http-client-implementation: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/log: ^1.0|^2.0|^3.0
- psr/simple-cache: ^3.0
Requires (Dev)
- cakephp/cache: ^5.0
- guzzlehttp/guzzle: ^7.5
- http-interop/http-factory-guzzle: ^1.2
- jetbrains/phpstorm-attributes: ^1.0
- mockery/mockery: ^1.5
- overtrue/phplint: 9.3.1
- php-http/guzzle7-adapter: ^1.0
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5
- vlucas/phpdotenv: ^5.4
README
先决条件
- 最低PHP 8.1;
ext-hash
;ext-sodium
为默认加密实现所必需;- 任何与httplug兼容的HTTP客户端(
php-http/client-common
),请参阅文档; ext-bcmath
不是必需的,但出于性能原因强烈推荐。
安装
composer require olifanton/ton
示例
请参阅examples
目录。
运行示例
- 克隆存储库并安装开发依赖项;
- 从Telegram机器人获取Toncenter的测试网API密钥;
- 将
.env.dist
复制到.env
; - 将API密钥和助记词变量放入
.env
文件; - 在控制台中运行示例。
文档
Toncenter传输初始化
要通过Toncenter API使用SDK,需要一个HTTP客户端实现。对于示例,将使用Guzzle。如果你正在使用由你的框架提供的另一个HTTP客户端,请参考你的框架文档和httplug
文档以获取更多信息。
- 通过Composer安装HTTP组件
composer require guzzlehttp/guzzle http-interop/http-factory-guzzle php-http/guzzle7-adapter
- 设置Toncenter传输
<?php use Http\Client\Common\HttpMethodsClient; use Http\Discovery\Psr18ClientDiscovery; use Http\Discovery\Psr17FactoryDiscovery; use Olifanton\Ton\Transports\Toncenter\ToncenterHttpV2Client; use Olifanton\Ton\Transports\Toncenter\ClientOptions; use Olifanton\Ton\Transports\Toncenter\ToncenterTransport; $isMainnet = false; $toncenterApiKey = "..."; // Request API key from https://t.me/tontestnetapibot or https://t.me/tonapibot // HTTP client initialization $httpClient = new HttpMethodsClient( Psr18ClientDiscovery::find(), Psr17FactoryDiscovery::findRequestFactory(), Psr17FactoryDiscovery::findStreamFactory(), ); // Toncenter API client initialization $toncenter = new ToncenterHttpV2Client( $httpClient, new ClientOptions( $isMainnet ? "https://toncenter.com/api/v2" : "https://testnet.toncenter.com/api/v2", $toncenterApiKey, ), ); // Transport initialization $toncenterTransport = new ToncenterTransport($toncenter); // ... // Now you can use Toncenter transport as access point to blockchain $toncenterTransport->send($someBoc);
请参阅examples/common.php
以获取复杂的Toncenter示例。
SDK组件
原始数据
要读取原始数据(地址、Cell、Slice、Builder、Hashmap)的描述,请参阅olifanton/interop
存储库中的文档。
性能提示
- 首先,尽管最低版本是8.1,但请使用最新的PHP版本
- 安装PHP的
bcmath
扩展。这可以显著加快处理大整数的工作速度,这对于与TVM交互是必要的 - 禁用生产环境中的
xdebug
(或其他调试器)。使用XDEBUG_MODE=off
可以加快BoC序列化/反序列化速度达5倍
贡献
请在提出拉取请求之前,务必阅读Olifanton贡献指南。
测试
composer run test:unit
许可证
MIT