14个版本 (7个破坏性版本)
新版本 0.8.1 | 2024年8月23日 |
---|---|
0.7.2 | 2024年8月8日 |
0.7.1 | 2024年6月24日 |
0.5.0 | 2024年2月29日 |
0.1.2 | 2021年6月22日 |
#179 in 魔法豆
每月下载量1,349次
用于 3 个crate(通过 near-cli-rs)
39KB
360 行
near-ledger-rs
它是NEAR <-> Ledger传输
提供一系列可以执行的命令,用于与安装在Ledger设备上的NEAR应用通信
- 通过HD路径从Ledger设备读取公钥
- 签名交易
示例
从Ledger获取公钥
use near_ledger::get_public_key;
use slipped10::BIP32Path;
use std::str::FromStr;
let hd_path = BIP32Path::from_str("44'/397'/0'/0'/1'").unwrap();
let public_key = get_public_key(hd_path).unwrap();
println!("{:#?}", public_key);
技巧
要将答案转换为 near_crypto::PublicKey
,请执行以下操作
let public_key = near_crypto::PublicKey::ED25519(
near_crypto::ED25519PublicKey::from(
public_key.to_bytes(),
)
);
如何签名交易
use near_ledger::{sign_transaction, SignTarget};
use near_primitives::borsh::BorshSerialize;
use slipped10::BIP32Path;
use std::str::FromStr;
let hd_path = BIP32Path::from_str("44'/397'/0'/0'/1'").unwrap();
let borsh_transaction = near_unsigned_transaction.try_to_vec().unwrap();
let signature = sign_transaction(SignTarget::BorshUnsignedTx(borsh_transaction), hd_path).unwrap();
println!("{:#?}", signature);
技巧
要将答案转换为 near_crypto::Signature
,请执行以下操作
let signature = near_crypto::Signature::from_parts(near_crypto::KeyType::ED25519, &signature)
.expect("Signature is not expected to fail on deserialization");
可执行示例
获取版本
RUST_LOG=info cargo run --example get_version
从Ledger获取公钥
显示
RUST_LOG=info cargo run --example get_public_key_display
静默
RUST_LOG=info cargo run --example get_public_key_silent
从Ledger获取钱包ID
RUST_LOG=info cargo run --example get_wallet_id
签名交易
转账
RUST_LOG=info cargo run --example sign_transfer
其他
export RUST_LOG=info
cargo run --example sign_create_account
cargo run --example sign_delete_account_short
cargo run --example sign_delete_account_long
cargo run --example sign_delete_key_ed25519
cargo run --example sign_delete_key_secp256k1
cargo run --example sign_stake
cargo run --example sign_add_key_fullaccess
cargo run --example sign_add_key_functioncall
cargo run --example sign_deploy_contract
cargo run --example sign_functioncall_str
cargo run --example sign_functioncall_bin
cargo run --example sign_functioncall_str_parse_err
cargo run --example sign_batch_all_actions
签名NEP-413消息
RUST_LOG=info cargo run --example sign_nep_413_message
签名NEP-366代理操作
RUST_LOG=info cargo run --example sign_nep_366_delegate_action
依赖关系
~3–14MB
~132K SLoC