decred/decred-php-api

Decred加密货币的PHP API

v0.0.2 2019-08-01 21:19 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:02:28 UTC


README

Build Status ISC License

Decred加密货币的PHP API

安装

将composer包添加到您的项目中

composer require decred/decred-php-api

请确保已安装 GMP PHP扩展。在ubuntu上

sudo apt install php7.0-gmp

从仓库

您还可以使用以下命令克隆git包

git clone https://github.com/decred/decred-php-api.git

但是您仍然需要使用 composer 来获取库依赖项。

composer install --no-dev

别忘了包含composer自动加载器。

include __DIR__.'/../vendor/autoload.php';

使用示例

库具有广泛的功能,因此您可以在 examples 库中找到使用示例或查看PHPUnit测试。

生成种子

首先,我们需要获取网络实例以开始使用库。

$testnet = \Decred\TestNet::instance();

相应地是主网

$mainnet = \Decred\MainNet::instance();

现在让我们生成一个种子,该种子也将用于测试网。默认账户和分支地址将派生以验证种子。

$seed = \Decred\Crypto\ExtendedKey::generateSeed($testnet);

HD钱包

当我们有可用的种子时,我们可以创建HD主密钥。

$master = \Decred\Crypto\ExtendedKey::newMaster($seed, $testnet);

newMaster 方法将返回具有用于处理HD钱包的变体API的 ExtendedKey 对象。

ExtendedKey::privateChildKey($index)

从父HD私钥派生HD私子密钥,返回 ExtendedKey 对象。

ExtendedKey::hardenedChildKey($index)

从父HD私钥派生HD硬子密钥,返回 ExtendedKey 对象。

不能从HD公钥派生。

ExtendedKey::publicChildKey($index)

从父HD私钥或公钥派生HD公子密钥,返回 ExtendedKey 对象。

ExtendedKey::neuter

验证扩展密钥是否为公钥,返回 ExtendedKey 对象。

默认账户

使用这些基本方法,我们可以根据 BIP44 派生默认账户的HD私钥和公钥。

HD路径 (m\44'\42'\0')

$defaultAccountPrivateKey = $master
    ->hardenedChildKey(44)
    ->hardenedChildKey(42)
    ->hardenedChildKey(0);

$defaultAccountPublicKey = $master->neuter();

ExtendedKey 实现了 __toString() 方法,因此您可以轻松地获取HD密钥的Base58表示形式。

echo sprintf("Default account HD private key: %s\n", $defaultAccountPrivateKey);
echo sprintf("Default account HD public key: %s\n", $defaultAccountPublicKey);

从默认账户,我们可以派生0分支和0索引,并获取默认地址。

$defaultAddress = $defaultAccountPublicKey
    ->publicChildKey(0)
    ->publicChildKey(0)
    ->getAddress();

echo sprintf("Default address: %s\n", $defaultAddress);