#coin #transaction #bitcoin #input #output #size #wallet

bitcoinwallet-spend

使用比特币钱包发送资金的接口

2个版本

0.1.16-alpha.02023年4月2日
0.1.12-alpha.02023年3月4日

#54 in #coin

MIT 许可证

3MB
11K SLoC

bitcoinwallet-spend

这个Rust crate是直接从C++到Rust的比特币核心钱包实现翻译。它提供了创建和签名比特币交易、选择输入硬币和估计交易费用的功能。

注意:此crate是比特币核心从C++到Rust的直接翻译的一部分。因此,一些函数体可能仍在翻译过程中。请注意,翻译完成后,此系统将可测试。

以下数学概念与crate中使用的某些代币相关联

  • 输出:比特币交易中的一个输出表示发送到特定比特币地址的比特币数量。输出以satoshis为单位指定,这是比特币的最小单位(1 satoshi = 0.00000001 BTC)。

  • TxSize:比特币交易的大小是编码交易所需的字节数。大小是计算交易费用的一个重要因素,交易费用是支付给比特币网络以激励矿工将其包括在区块链中的费用。

  • calculate_maximum_signed_tx_size:此函数根据一组输入硬币和输出金额计算已签名比特币交易的最大大小。计算考虑了输入、输出和交易元数据的大小,以及签名大小。

  • calculate_maximum_signed_tx_size_with_txouts:此函数类似于calculate_maximum_signed_tx_size,但还考虑了输出脚本的大小。

  • create_transaction:此函数通过选择输入硬币、指定输出金额和计算交易费用来创建新的比特币交易。该函数以十六进制字符串的形式返回已签名的交易。

  • fund_transaction:此函数用于通过选择输入硬币和指定输出金额来资助比特币交易。该函数以比特币交易对象的形式返回未签名的交易。

  • select_coins:此函数从可用硬币列表中选择输入硬币以创建新的比特币交易。该函数使用硬币选择算法在包括足够的输入硬币以覆盖输出金额的同时最小化交易费用。

  • get_available_balance:此函数通过累加所有未花费输出币的价值来计算比特币钱包的总可用余额。

  • get_tx_spend_size:此函数根据一组输入币和输出金额计算比特币交易的大小。计算考虑了输入、输出和交易元数据的大小,以及签名大小。

总的来说,bitcoinwallet-spend crate提供了一套用于管理比特币交易、计算交易费用和选择输入币的工具。这个crate中的函数对于构建需要能够在比特币网络上创建、签名和广播比特币交易的应用程序至关重要。

依赖关系

~108MB
~1M SLoC