# Использование криптографических утилит
Вы можете создать приватный ключ, публичный ключ и адрес аккаунта.
# Приватный ключ
Обратите внимание: Библиотека преобразует приватные ключи в clamped-формат для устойчивости к атакам.
Вы можете создать приватный ключ из:
- Сид фразы.
- Случайно сгенерированной сид-фразы.
- Случайной сид-фразы с nonce = 2.
- Байтов сид-фразы.
- Случайно сгенерированных байтов сид-фарзы.
- Массива байтов.
- Закодированной строки.
# Создание приватного ключа из сид-фразы
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Необходимые импорты.
use Waves\Account\PrivateKey;
use Waves\Model\ChainId;
use Waves\Model\WavesConfig;
// Временно скрыть deprecated-предупреждения.
error_reporting(E_ALL & ~E_DEPRECATED);
/*
* Укажите ID сети:
* - Mainnet: `ChainId::MAINNET()`
* - Testnet: `ChainId::TESTNET()`
* - Stagenet: `ChainId::STAGENET()`
*/
WavesConfig::chainId(ChainId::TESTNET());
// Укажите сид-фразу вашего аккаунт.
$seed = 'УКАЖИТЕ ВАШУ СИД-ФРАЗУ';
// Получение приватного ключа из сид-фразы.
$account = PrivateKey::fromSeed($seed);
$privateKey = $account->toString();
// Вывод результатов.
echo "Сид-фраза: $privateKey\n";
echo "Приватный ключ: $seed\n";
# Генерация случайной сид-фразы и приватного ключа
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Необходимые импорты.
use Waves\Account\PrivateKey;
use Waves\Util\Functions;
use Waves\Model\ChainId;
use Waves\Model\WavesConfig;
// Временно скрыть deprecated-предупреждения.
error_reporting(E_ALL & ~E_DEPRECATED);
/*
* Укажите ID сети:
* - Mainnet: `ChainId::MAINNET()`
* - Testnet: `ChainId::TESTNET()`
* - Stagenet: `ChainId::STAGENET()`
*/
WavesConfig::chainId(ChainId::TESTNET());
// Генерация случайной сид-фразы.
$seed = Functions::getRandomSeedPhrase();
// Получение приватного ключа из сид-фразы.
$account = PrivateKey::fromSeed($seed);
$privateKey = $account->toString();
// Вывод результатов.
echo "Сид-фраза: $seed\n";
echo "Приватный ключ: $privateKey\n";
# Генерация случайной сид-фразы с nonce = 2 и приватного ключа
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Необходимые импорты.
use Waves\Account\PrivateKey;
use Waves\Util\Functions;
use Waves\Model\ChainId;
use Waves\Model\WavesConfig;
// Временно скрыть deprecated-предупреждения.
error_reporting(E_ALL & ~E_DEPRECATED);
/*
* Укажите ID сети:
* - Mainnet: `ChainId::MAINNET()`
* - Testnet: `ChainId::TESTNET()`
* - Stagenet: `ChainId::STAGENET()`
*/
WavesConfig::chainId(ChainId::TESTNET());
// Генерация случайной сид-фразы.
$seed = Functions::getRandomSeedPhrase();
// Получение приватного ключа из сид фразы с nonce = 2.
$account = PrivateKey::fromSeed($seed, 2);
$privateKey = $account->toString();
// Вывод результатов.
echo "Сид-фраза: $seed\n";
echo "Приватный ключ (nonce 2): $privateKey\n";
# Создание приватного ключа из байтов сид-фразы
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Необходимые импорты.
use Waves\Account\PrivateKey;
use Waves\Model\ChainId;
use Waves\Model\WavesConfig;
// Временно скрыть deprecated-предупреждения.
error_reporting(E_ALL & ~E_DEPRECATED);
/*
* Укажите ID сети:
* - Mainnet: `ChainId::MAINNET()`
* - Testnet: `ChainId::TESTNET()`
* - Stagenet: `ChainId::STAGENET()`
*/
WavesConfig::chainId(ChainId::TESTNET());
// Создание массива байтов.
$seedBytes = pack('C*', 1, 2, 3, 4, 5, 6, 7); // Пример массива.
// Создание приватного ключа из байтов сид-фразы.
$account = PrivateKey::fromSeed($seedBytes);
$privateKey = $account->toString();
// Вывод результатов.
echo "Приватный ключ: $privateKey\n";
# Создание приватного ключа из случайно сгенерированных байтов сид-фразы
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Необходимые импорты.
use Waves\Account\PrivateKey;
use Waves\Util\Functions;
use Waves\Model\ChainId;
use Waves\Model\WavesConfig;
// Временно скрыть deprecated-предупреждения.
error_reporting(E_ALL & ~E_DEPRECATED);
/*
* Укажите ID сети:
* - Mainnet: `ChainId::MAINNET()`
* - Testnet: `ChainId::TESTNET()`
* - Stagenet: `ChainId::STAGENET()`
*/
WavesConfig::chainId(ChainId::TESTNET());
// Генерация случайных байтов сид-фразы.
$randomSeedBytes = random_bytes(32);
// Создание приватного ключа из случайно сгенерированных байтов сид-фразы.
$account = PrivateKey::fromSeed($randomSeedBytes);
$privateKey = $account->toString();
// Вывод результатов.
echo "Приватный ключ: $privateKey\n";
# Создание приватного ключа из массива байтов
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Необходимые импорты.
use Waves\Account\PrivateKey;
use Waves\Model\ChainId;
use Waves\Model\WavesConfig;
// Временно скрыть deprecated-предупреждения.
error_reporting(E_ALL & ~E_DEPRECATED);
/*
* Укажите ID сети:
* - Mainnet: `ChainId::MAINNET()`
* - Testnet: `ChainId::TESTNET()`
* - Stagenet: `ChainId::STAGENET()`
*/
WavesConfig::chainId(ChainId::TESTNET());
// Создание массива байтов.
$bytes = pack('c*', 56, -3, 37, 64, 2, 38, 78, 37, -98, -45, -23, 117, 14, 88, 20, 42, -9, 21, 55, 87, 117, -8, -81, 77, 77, -99, -87, -23, 7, 116, -99, -20); // Пример массива.
// Создание приватного ключа из массива байтов.
$account = PrivateKey::fromSeed($bytes);
$privateKey = $account->toString();
// Вывод результатов.
echo "Приватный ключ: $privateKey\n";
# Создание приватного ключа из закодированной строки
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Необходимые импорты.
use Waves\Account\PrivateKey;
use Waves\Util\Functions;
use Waves\Model\ChainId;
use Waves\Model\WavesConfig;
// Временно скрыть deprecated-предупреждения.
error_reporting(E_ALL & ~E_DEPRECATED);
/*
* Укажите ID сети:
* - Mainnet: `ChainId::MAINNET()`
* - Testnet: `ChainId::TESTNET()`
* - Stagenet: `ChainId::STAGENET()`
*/
WavesConfig::chainId(ChainId::TESTNET());
// Создание Base58-строки.
$base58String = "A5u9Ugt2nG1rWfLkL7pzZrtkP8LgF2rD3g1XBjsF8ZzV"; // Пример значения.
// Преобразование Base58-строки в байты.
$decodedBytes = Functions::base58Decode($base58String);
// Создание приватного ключа из байтов.
$account = PrivateKey::fromSeed($decodedBytes);
$privateKey = $account->toString();
// Вывод результатов.
echo "Приватный ключ: $privateKey\n";
# Публичный ключ
Вы можете создать публичный ключ из приватного ключа:
- Сгенерируйте приватный ключ.
- Вставьте следующий блок кода после генерации приватного ключа:
// Создание публичного ключа из приватного. $publicKey = $account->publicKey()->toString(); // Вывод результатов. echo "Публичный ключ: $publicKey\n";
# Адрес
Вы можете создать адрес из публичного ключа:
Вставьте следующий блок кода после генерации публичного ключа:
// Создание адреса из публичного ключа. $address = $account->publicKey()->address()->toString(); // Вывод результатов. echo "Адрес: $address\n";