用于The Open Network区块链的PHP库

1.5.1 2024-08-28 14:33 UTC

This package is auto-updated.

Last update: 2024-08-28 14:37:36 UTC


README

Tests Latest Stable Version Total Downloads Based on TON Donation

💬 英文聊天 | 💬 俄语聊天

先决条件

  • 最低PHP 8.1;
  • ext-hash;
  • ext-sodium为默认加密实现所必需;
  • 任何与httplug兼容的HTTP客户端(php-http/client-common),请参阅文档
  • ext-bcmath不是必需的,但出于性能原因强烈推荐。

安装

composer require olifanton/ton

示例

请参阅examples目录。

运行示例

  1. 克隆存储库并安装开发依赖项;
  2. Telegram机器人获取Toncenter的测试网API密钥;
  3. .env.dist复制到.env
  4. 将API密钥和助记词变量放入.env文件;
  5. 在控制台中运行示例。

文档

Toncenter传输初始化

要通过Toncenter API使用SDK,需要一个HTTP客户端实现。对于示例,将使用Guzzle。如果你正在使用由你的框架提供的另一个HTTP客户端,请参考你的框架文档和httplug文档以获取更多信息。

  1. 通过Composer安装HTTP组件
composer require guzzlehttp/guzzle http-interop/http-factory-guzzle php-http/guzzle7-adapter
  1. 设置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