DOCS
  • Namada
  • Начало работы
    • Быстрый старт
    • Установить Namada
      • Установка из исходных файлов
        • Предварительные компоненты
        • Устранение неисправностей при установке из источника
      • Установка из бинарных файлов
        • Использование двоичных файлов
        • Предварительные компоненты
      • Из Docker
    • Установка CometBFT
    • Конфиденциальность
    • Безопасность и сообщения об ошибках
  • Руководство пользователя
    • Руководство по работе с кошельком Namada
      • Кошелек файловой системы
      • Веб-кошелек
      • Аппаратный кошелек
    • Прозрачные счета
      • Счета с несколькими подписями на Namada
      • Отправка и получение токенов NAM
    • MASP
      • Экранированные вознаграждения
      • Экранированные переводы
    • Тарифы Namada
    • Делегирование доли
    • Голосование
      • Голосование в цепочке
      • Голосование вне цепочки
    • PGF
      • Стать стюардом
      • Голосование за стюардов и предложения PGF
      • Предложение о финансировании
    • Перевод активов через IBC
  • Руководство для операторов
    • Запуск полного узла
      • Переменные среды
      • Настройка полного узла
      • Настройка ведения журнала Namada
      • Базовый каталог
    • Валидаторы Namada
      • Требования к аппаратному обеспечению
      • Настройка валидатора Genesis
      • Запустите свой узел в качестве валидатора genesis
      • Генерация учетной записи валидатора
      • Связывание (Staking)
      • Proof-of-Stake
    • Развертывание локальной сети
    • IBC Relayers
    • Поиск и устранение неисправностей в работе оператора
    • Namada Ethereum Bridge
      • Ретрансляция транзакций Ethereum
  • Интеграции
    • Использование Namada SDK
      • Настройка клиента SDK
      • Настройка кошелька SDK
      • Генерация счетов
      • Конструирование трансферов
      • Использование SDK с интерфейсом Namada
    • Индексатор Namada
  • Сети Namada
    • Mainnets
    • Testnets
      • Настройка среды
      • Этапы миграции для тестовых сетей
      • Инструкции валидатора Pre-genesis
      • Заявка на получение статуса валидатора генезиса
      • Присоединение к последней тестовой сети
      • Стать валидатором post genesis
      • История тестовых сетей
      • Использование крана testnet
      • Namada FAQ
      • Тестнет Namada Campfire
Powered by GitBook
On this page
  • Представление счетов
  • Раскрытие открытого ключа implicit счета
  1. Интеграции
  2. Использование Namada SDK

Генерация счетов

Представление счетов

Представление счетов с помощью Namada SDK очень простое. Счет в Namada определяется его открытым ключом (ключами) и закрытым ключом (закрытыми ключами) (множественное число для мультиподписей). Открытый ключ используется для идентификации счета, а закрытый ключ - для подписания транзакций. В приведенном ниже фрагменте мы представляем счет с помощью открытого и закрытого ключей.

use namada_sdk::core::types::key::common::{PublicKey, SecretKey};
struct SimpleAccount {
    public_key: PublicKey,
    private_key: SecretKey
}

Для счета с несколькими подписями мы можем представить это в виде вектора ключей.

use namada_sdk::core::types::key::common::{PublicKey, SecretKey};
struct MultisigAccount {
    public_keys: Vec<PublicKey>,
    private_keys: Vec<SecretKey>
}

Счета с несколькими подписями, поскольку они инициализируются транзакцией на цепи, всегда будут иметь открытый ключ. Однако если пары ключей генерируются в автономном режиме, то для раскрытия открытого ключа пользователю необходимо провести транзакцию. В связи с этим полезно добавить поле revealed в структуру счета.

use namada_sdk::core::types::key::common::{PublicKey, SecretKey};
struct Account {
    public_key: PublicKey,
    private_key: SecretKey,
    revealed: bool
}

Раскрытие открытого ключа implicit счета

Для того чтобы раскрыть открытый ключ implicit счета, пользователь должен отправить транзакцию.

use namada_sdk::io::NullIo;
use namada_sdk::NamadaImpl;
use namada_sdk::core::types::chain::ChainId;
 
 
// Define the namada implementation (assuming we have a wallet, http_client, and shielded_ctx)
let mut namada = NamadaImpl::new(&http_client, &mut wallet, &mut shielded_ctx, &NullIo)
        .await
        .expect("unable to construct Namada object")
        .chain_id(ChainId::from_str("public-testnet-14.5d79b6958580").unwrap());
 
// Generate an account (assuming sk is a SecretKey)
let account = Account {
            public_key: sk.to_public(),
            private_key: sk,
            revealed: false,
};
 
// Build the reveal pk transaction using the NamadaImpl object
let reveal_tx_builder = namada
    .new_reveal_pk(account.public_key.clone())
    .signing_keys(vec![account.private_key.clone()]);
let (mut reveal_tx, signing_data, _) = reveal_tx_builder
    .build(namada)
    .await
    .expect("unable to build reveal pk tx");
// Sign the transaction
namada
    .sign(&mut reveal_tx, &reveal_tx_builder.tx, signing_data)
    .await
    .expect("unable to sign reveal pk tx");
// Submit the signed tx to the ledger for execution
namada.submit(reveal_tx.clone(), reveal_tx_builder)

После раскрытия открытого ключа учетная запись может быть использована для подписания транзакций.ru

PreviousНастройка кошелька SDKNextКонструирование трансферов

Last updated 1 year ago