Настройка кошелька SDK
Соответствующий импорт
Общий импорт
// namada_sdk::Namada is a high level interface in order to interact with the Namada SDK
use namada_sdk::Namada;
// The NamadaImpl provides convenient implementations to frequently used Namada SDK interactons
use namada_sdk::NamadaImpl;Импорт по кошельку
// SecretKey, common and SchemeType give access to Namada cryptographic keys and their relevant implementations. Namada supports ED25519 and SECP256K1 keys.
use namada_sdk::core::types::key::common::SecretKey;
use namada_sdk::core::types::key::{common, SchemeType};
// Filesystem wallet utilities (stores the path of the wallet on the filesystem)
use namada_sdk::wallet::fs::FsWalletUtils;Создание кошелька из мнемоники
SDK позволяет создать кошелек из мнемонической фразы. Мнемоническая фраза - это фраза из 24 слов, которая может быть использована для восстановления кошелька.
let mnemonic = Mnemonic::from_phrase(MNEMONIC_CODE, namada_sdk::bip39::Language::English)// Assuming a cometbft node is running on localhost:26657
let http_client = HttpClient::new("http://localhost:26657").unwrap();
// Assuming wallet.toml exists in the current directory
let mut wallet = FsWalletUtils::new(PathBuf::from("wallet.toml"));
// The key can be generated from the wallet by passing in the mnemonic phrase
let (_key_alias, sk) = NamadaImpl::new(&http_client, &mut wallet, &mut shielded_ctx, &NullIo)
.wallet_mut()
.await
.derive_key_from_user_mnemonic_code(
SchemeType::Ed25519,
Some(alias),
false,
Some(derivation_path),
Some((mnemonic.clone(), Zeroizing::new("".to_owned()))),
None,
)
.expect("unable to derive key from mnemonic code")
.unwrap();Во второй части приведенной выше функции ключ получается из мнемонической фразы. Псевдоним - это имя ключа, который будет храниться в кошельке. derivation_path - путь к ключу в кошельке HD. Мнемоника - мнемоническая фраза, сгенерированная ранее. shielded_ctx - контекст для экранированных транзакций. NullIo - контекст ввода-вывода для кошелька.
Создание нового кошелька и сохранение его в файловой системе
Также можно создать sdk-кошелек с нуля. Это более сложный процесс, поскольку требуется сгенерировать новое хранилище, в котором будет существовать кошелек.
Приведенный выше код позволяет нам теперь создать любой экземпляр SdkWallet, просто передав секретный ключ и адрес токена NAM. Если мы хотим осуществлять переводы с помощью других токенов, то необходимо добавить и эти адреса.
Last updated