waves_logo Docs
  • Обзор
    Обзор
  • Практические руководства
    • Получение данных из блокчейна
      Получение данных из блокчейна
    • Создание и отправка транзакций
      Создание и отправка транзакций
    • Токенизация
      Токенизация
    • Распространение токена (airdrop)
      Распространение токена (airdrop)
    • Прием платежей
      Прием платежей
    • Обмен токенов
      Обмен токенов
    • Простое голосование
      Простое голосование
    • Список как аргумент
      Список как аргумент
    Практические руководства
  • Смарт-контракты Waves
    Смарт-контракты Waves
  • dApp
    • Создание и запуск dApp
      Создание и запуск dApp
    dApp
  • Cмарт-аккаунт
    • Создание смарт-аккаунта
      Создание смарт-аккаунта
    • [en] Creating and deploying a script manually
      [en] Creating and deploying a script manually
    • [en] Video tutorials
      [en] Video tutorials
    Cмарт-аккаунт
  • Cмарт-ассет
    Cмарт-ассет
  • Инструменты разработчика
    • Waves IDE
      Waves IDE
    • Расширение для VS Code
      Расширение для VS Code
    • Surfboard
      Surfboard
    • Ride REPL
      Ride REPL
    Инструменты разработчика
  • Signer ◆
    Signer ◆
  • Waves API
    • Data Service API
      Data Service API
    • Node REST API 🡥
      Node REST API 🡥
    • Node gRPC Server 🡥
      Node gRPC Server 🡥
    • Blockchain Updates 🡥
      Blockchain Updates 🡥
    Waves API
  • Клиентские библиотеки
    • Waves C#
      • Установка SDK
        Установка SDK
      • Запуск кода
        • Отправка транзакций
          Отправка транзакций
        • Использование криптографических утилит
          Использование криптографических утилит
        • Взаимодействие с нодой
          Взаимодействие с нодой
        • Развертывание смарт-контрактов
          Развертывание смарт-контрактов
        Запуск кода
      Waves C#
    • Gowaves
      • Установка SDK
        Установка SDK
      • Запуск кода
        • Отправка транзакций
          Отправка транзакций
        • Использование криптографических утилит
          Использование криптографических утилит
        • Взаимодействие с нодой
          Взаимодействие с нодой
        • Развертывание смарт-контрактов
          Развертывание смарт-контрактов
        Запуск кода
      Gowaves
    • WavesJ
      • Установка SDK
        Установка SDK
      WavesJ
    • Ts-lib-crypto
      • Установка SDK
        Установка SDK
      Ts-lib-crypto
    • Waves-PHP
      • Установка SDK
        Установка SDK
      Waves-PHP
    • Waves-python
      • Установка SDK
        Установка SDK
      Waves-python
    • Waves-rust
      • Установка SDK
        Установка SDK
      Waves-rust
    Клиентские библиотеки
      • English
      • Русский
      On this page
        • Приватный ключ
        • Публичный ключ
        • Адрес
      waves_logo Docs

          # Использование криптографических утилит

          Для работы с приватным ключом, публичным ключом и адресом добавьте блок кода в начало каждого скрипта:

          // Необходимые импорты.
          using WavesLabs.Node.Transactions.Common;
          using WavesLabs.Node.Transactions.Utils;
          using WavesLabs.Node.Transactions;
          using WavesLabs.Node.Client;
          

          # Приватный ключ

          Вы можете создать приватный ключ из:

          • Сид фразы.
          • Случайно сгенерированной сид-фразы.
          • Случайной сид-фразы с nonce = 2.
          • Байтов сид-фразы.
          • Случайно сгенерированных байтов сид-фарзы.
          • Массива байтов.
          • Закодированной строки.

          # Создание приватного ключа из сид-фразы

          // Создание приватного ключа из сид-фразы.
          var senderPrivateKey = PrivateKey.FromSeed("УКАЖИТЕ_ВАШУ_СИД_ФРАЗУ_ЗДЕСЬ");
          

          # Генерация случайной сид-фразы и приватного ключа

          // Генерация случайно сид-фразы.
          var seed = Crypto.GenerateRandomSeedPhrase();
          
          // Создание приватного ключа из сгенерированного сид-фразы.
          var senderPrivateKey = PrivateKey.FromSeed(seed);
          

          # Генерация случайной сид-фразы с nonce = 2 и приватного ключа

          // Генерация случайно сид-фразы.
          var seed = Crypto.GenerateRandomSeedPhrase();
          
          // Создание приватного ключа из сгенерированного сид-фразы с nonce = 2.
          var senderPrivateKey = PrivateKey.FromSeed(seed, 2);
          

          # Создание приватного ключа из байтов сид-фразы

          // Представление сид-фразы в виде массива байтов.
          byte[] seedBytes = { 21, 55, 87, 117, 8, 81, 77, 77, 99, 87, 23, 7, 116, 99, 20, 12, 4 };
          
          // Генерация приватного ключа из байтов сид-фразы.
          var senderPrivateKey = PrivateKey.FromSeed(seedBytes);
          

          # Создание приватного ключа из случайно сгенерированных байтов сид-фразы

          // Генерация случайных байтов сид-фразы.
          byte[] randomSeedBytes = Crypto.GenerateRandomSeedBytes();
          
          // Создание приватного ключа из сгенерированных байтов сид-фразы.
          var senderPrivateKey = PrivateKey.FromSeed(randomSeedBytes);
          

          # Создание приватного ключа из массива байтов

          // Определение массива байтов.
          byte[] bytes = { 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 };
          
          // Создание приватного ключа из массива байтов.
          var senderPrivateKey = PrivateKey.As(bytes);
          

          # Создание приватного ключа из закодированной строки

          // Определение строки, закодированной в Base58.
          var base58PhraseEncoded = "УКАЖИТЕ_ВАШУ_ФРАЗУ_ЗАКОДИРОВАННУЮ_В_BASE58";
          
          // Создание приватного ключа из строки, закодированной в Base58.
          var senderPrivateKey = PrivateKey.As(base58PhraseEncoded);
          

          # Публичный ключ

          Вы можете создать публичный ключ из приватного ключа:

          // Укажите приватный ключ отправителя.
          var senderPrivateKey = "УКАЖИТЕ_ВАШ_ПРИВАТНЫЙ_КЛЮЧ_ЗДЕСЬ";
          
          // Получите публичный ключ на основе приватного.
          var senderPublicKey = senderPrivateKey.PublicKey;
          

          # Адрес

          Вы можете создать адрес на основе публичного ключа:

          // Укажите публичный ключ отправителя.
          var senderPublicKey = "УКАЖИТЕ_ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ_ЗДЕСЬ";
          
          /* 
          Получение адреса аккаунта на основе публичного ключа.
          Get the account address from the public key.
          Обратите внимание: Убедитесь, что выбранная сеть соответствует сети вашего аккаунта:
          - `MainNet`.
          - Или `TestNet`.
          - Или `StageNet`.
          */
          var senderAddress = Address.FromPublicKey(
              ChainIds.TestNet, 
              senderPublicKey
          );
          
          Отправка транзакций
          Взаимодействие с нодой
          Отправка транзакций
          Взаимодействие с нодой