6 个版本 (3 个破坏性更新)

0.7.0 2022年7月6日
0.6.0 2021年12月20日
0.3.0 2021年7月6日
0.2.3 2021年6月20日
0.2.2 2021年4月4日

#27 in #握手

LGPL-3.0-or-later

125KB
2.5K SLoC

握手

此包提供了与 握手 网络交互的接口。支持完整契约构建、序列化和反序列化交易。可以与 coins-bip32 包一起使用以签名交易。

此包正在积极开发中,API 可能会更改。

用法

通常,您希望将网络作为入口点使用。这将确保使用正确的网络特定常量。`tx_builder` 对于创建和序列化交易非常有用。

use coins_core::{builder::TxBuilder, nets::Network, ByteFormat};
use std::convert::TryFrom;

use handshakes::{
    types::{Covenant, CovenantData, CovenantType, HandshakeTx, Outpoint},
    HandshakeMainnet,
};

// Create a covenant
let covenant = Covenant {
    covenant_type: CovenantType::try_from("NONE").unwrap(),
    covenant_data: CovenantData::null(),
};

// Create an address
let address = HandshakeMainnet::string_to_address("hs1qcu0cff5ma6uxgy0ffkmgsj28ucqwtqt9eqnp06").unwrap();

// Build a transaction
let tx = HandshakeMainnet::tx_builder()
    .spend(Outpoint::default(), 0x00000000)
    .pay_covenant(0x8000_0000, &address, covenant)
    .build()
    .unwrap();

let hex = tx.serialize_hex();
let serialized = HandshakeTx::deserialize_hex(&hex).unwrap();

assert_eq!(tx, serialized);

有关更多详细信息,请参阅文档。

构建和运行测试

  • cargo构建
  • cargo测试
  • 构建文档:$ cargo rustdoc

依赖项

~6MB
~109K SLoC