crypto-packages / binancephpsdk
此存储库包含与Binance DEX交互的PHP-SDK。它主要由纯PHP代码支持。
Requires
- php: >=7.0
- bitwasp/buffertools: ^0.5.7
- brick/math: ^0.8|^0.9
- crypto-packages/guzzle-jsonrpc: dev-master
- google/protobuf: ^3.11
- guzzlehttp/guzzle: ^7.0|^7.1|^7.2|^7.3|^7.4
- protonlabs/bitcoin: 1.0.7
- ramsey/uuid: ^4.0
This package is not auto-updated.
Last update: 2024-09-22 08:12:17 UTC
README
(从 hammadtq/binance-php-sdk
分支,移植到composer) 此存储库包含与 Binance DEX 交互的PHP-SDK。它主要由纯PHP代码支持。Binance DEX支持的方法文档在这里:http://docs.binance.org。
安装
目前,您需要克隆存储库并将其包含到项目中。将来,它将通过composer提供。(添加:通过composer可用)
composer require arnezt/binancephpsdk
SDK依赖于secp256k1-php。目前没有简单的安装secp256k1-php扩展的方法,您需要自己编译它。
安装步骤
(首先检查(Ubuntu/Debian) phpize
是否可用:sudo apt install php7.x-dev
)
libsecp256k1
git clone git@github.com:bitcoin-core/secp256k1 && \
cd secp256k1 && \
./autogen.sh && \
./configure --enable-experimental --enable-module-{ecdh,recovery} && \
make && \
sudo make install && \
cd ../
secp256k1-php
git clone git@github.com:Bit-Wasp/secp256k1-php && \
cd secp256k1-php/secp256k1 && \
phpize && \
./configure --with-secp256k1 && \
make && sudo make install && \
cd ../../
(可选) - 默认启用扩展!
如果您是重度用户,可以将此行添加到您的php.ini文件中,用于php-cli、apache2或php-fpm。
extension=secp256k1.so
(添加:检查php配置文件(使用fpm时为php7.x-fpm),将x替换为您的php版本)
$ sudo nano /etc/php/7.x/mods-available/secp256k1.ini
添加:extension=secp256k1.so
$ sudo ln -s /etc/php/7.x/mods-available/secp256k1.ini /etc/php/7.x/fpm/conf.d/20-secp256k1.ini
(用于fpm)
$ sudo ln -s /etc/php/7.x/mods-available/secp256k1.ini /etc/php/7.x/cli/conf.d/20-secp256k1.ini
(用于cli)
此存储库是在Mac OSX上使用PHP版本 7.15.3
制作的。您也需要一个版本高于7。建议使用原生PHP安装,而不是使用XAMPP或WAMPP,以利用secp256k1-php。此外,您可能还需要gmp
扩展。
为了处理大数字,SDK使用brick/math精度库。请考虑在处理基于区块链的数字时使用此库或其他基于bcmath
或gmp
的解决方案。
示例
注意:请参阅 问题跟踪器 以了解SDK中目前可用的方法。
您可以在src文件夹中找到完整的 示例脚本。
以下是一些与SDK交互的示例
密钥存储重新加载和获取私钥
$keystoreData = '{paste keystore data here or read from a file}'; $keystore= new Keystore(); $keystore->RestoreKeyStore($keystoreData, "{keystore-password}", "tbnb"); $privateKey = $keystore->getPrivateKey();
类似地,如果您想查看私钥的十六进制表示,只需使用此方法
$keystore->getPrivateKey()->getHex();
一个典型的转账请求看起来像这样
$bncClient = new BncClient('https://data-seed-pre-2-s1.binance.org'); $bncClient->initChain(); $bncClient->chooseNetwork("testnet"); // or this can be "mainnet" $bncClient->setPrivateKey($privateKey); $response = $bncClient->transfer("tbnb1yqyppmev2m4z96r4svwtjq8eqp653pt6elq33r", "tbnb1hgm0p7khfk85zpz5v0j8wnej3a90w709zzlffd", 0.001, "BNB", "3423423");
下单
$response = $bncClient->NewOrder("BNB_USDT.B-B7C", 1, 0.001, 1, 0, 1); //Symbol, side, price, quantity, sequence, timeinfore
Amino编码
SDK使用Google proto3生成器来支持Binance的aminor编码/解码。如果您向proto文件添加新消息,请在根目录下运行以下命令以运行生成器
protoc --proto_path=proto --php_out=./gen proto/dex.proto
密钥生成
密钥生成也通过secp256k1-php库支持。
一旦生成地址,请确保向其发送金额,因为Binance DEX在没有收到地址上的交易之前不会创建账户。
$keystore = new Keystore(); $privateKey = Byte::init($keystore->createPrivateKey()); $publicKey = $keystore->createPublicKey($privateKey); $address = $keystore->publicKeyToAddress($publicKey, 'tbnb');
支持的方法
- 密钥对生成
- 带有助记词的密钥对生成
- 密钥库重新加载
- 获取JSON-RPC函数
- 获取API函数
- 交易:转账、新建订单、取消订单、冻结代币、解冻代币、发行、铸币、销毁、HTLT、HTLT存入、HTLT提取、HTLT退款、时间锁定、时间重锁定、时间解锁
非常感谢https://github.com/hammadtq/binance-php-sdk提供了原始源代码。