#chain #cosmos #transaction #tendermint #blockchain

chainlib

一个库,用于帮助创建 HD 钱包并离线签名 Crypto.org Chain 转账交易。

2 个版本

0.1.1 2021 年 3 月 10 日
0.1.0 2021 年 1 月 21 日

#65 in #tendermint

Apache-2.0

82KB
2K SLoC

chainlib 是一个库,用于帮助创建 HD 钱包并离线签名 Crypto.org Chain 转账交易。

准备

在进行测试之前,我们需要将一些硬币金额发送到从助记词恢复的 HD 钱包。

  1. 将一些硬币转账到从助记词恢复的账户;要获取 HD 地址,可以使用以下代码
let words = "dune car envelope chuckle elbow slight proud fury remove candy uphold puzzle call select sibling sport gadget please want vault glance verb damage gown";
let mnemonic = Mnemonic::from_str(words, password)?;
let key_service = PrivateKeyService::new_from_mnemonic(mnemonic)?;
let address = key_service.address()?;
let address_str = address.to_bech32("cro");
println!("{}", address_str);

或者您可以将助记词恢复到本地存储:chain-maind keys add hd-wallet --keyring-backend test --recover 并使用 chain-maind keys list --keyring-backend test 来查看地址。

  1. 使用 chain-maind 将一些硬币金额转账到恢复的 HD 地址。
chain-maind tx bank send \
    ${from_address} \
    ${hd_address} \
    100cro \
    --keyring-backend test \
    --chain-id test \
    --sign-mode amino-json
  1. 现在 HD 钱包中有一些硬币,您可以测试离线签名并发送已签名的交易到 Chain API URL。要查看完整详情,请访问示例目录。

构建示例

cargo构建 --示例amino

cargo构建 --示例protobuf --特性=grpc

单元测试

cargo测试 -- --所有特性

依赖关系

~25–40MB
~707K SLoC