7个版本 (破坏性)
0.7.0 | 2024年7月5日 |
---|---|
0.5.1 | 2024年5月22日 |
0.4.0 | 2024年5月3日 |
0.3.0 | 2024年3月20日 |
0.1.0 | 2024年1月26日 |
#5 在 #ct
每月49次 下载
用于 4 个crate(3个直接使用)
200KB
4.5K SLoC
LWK是一组用于液态钱包的库。 lwk_wollet
是只读钱包的库。
钱包由一个 CT描述符 定义,该描述符由一个比特币描述符加上描述符盲化密钥组成。
从钱包中可以生成地址,从区块链同步钱包数据并创建交易,包括发行、再发行和销毁。
示例
生成地址
let desc = "ct(slip77(ab5824f4477b4ebb00a132adfd8eb0b7935cf24f6ac151add5d1913db374ce92),elwpkh([759db348/84'/1'/0']tpubDCRMaF33e44pcJj534LXVhFbHibPbJ5vuLhSSPFAw57kYURv4tzXFL6LSnd78bkjqdmE3USedkbpXJUPA1tdzKfuYSL7PianceqAhwL2UkA/<0;1>/*))#cch6wrnp";
// Parse the descriptor and create the watch only wallet
let descriptor: WolletDescriptor = desc.parse()?;
let mut wollet = Wollet::new(
ElementsNetwork::LiquidTestnet,
NoPersist::new(), // Do not persist data
descriptor,
)?;
// Generate the address
let addr = wollet.address(None)?;
println!("Address: {} (index {})", addr.address(), addr.index());
同步钱包
full_scan_with_electrum_client};
// Use an Electrum server
let electrum_url = ElectrumUrl::new("blockstream.info:465", true, true);
let mut electrum_client = ElectrumClient::new(&electrum_url)?;
full_scan_with_electrum_client(&mut wollet, &mut electrum_client)?;
// Print a summary of the wallet transactions
for tx in wollet.transactions()?.into_iter().rev() {
println!("TXID: {}, balance {:?}", tx.txid, tx.balance);
}
创建交易
// Create a transaction
let recipient = UnvalidatedRecipient {
satoshi: 1000,
address: "tlq1qqgpjea0jcel4tqeln5kyxlrgqx2eh4vw67ecswm54476mddy3n0klrlmty5gn0wsdw4045rtl2y2wdtr4rdu6v93zds6zn8xd".to_string(),
asset: "144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49".to_string(),
};
let pset = wollet
.tx_builder()
.add_unvalidated_recipient(&recipient)?
.finish()?;
// Then pass the PSET to the signer(s) for them to sign.
依赖项
~26–42MB
~582K SLoC