ビットコイン用の署名済みトランザクションを作成する CLI アプリケーションです。
Rust で書かれています。
- テストネット専用
- Segwit 非対応
- ロックタイムの考慮はなし
- UTXO 関連のデータは自分で適切なものを用意し、アプリケーションに入力する
- 利用にネットワーク通信は必要ありません
※動的に入力パラメータを自動調整する機能はないため(特に UTXO 関連)、以下の実行は冪等性がなく二度目以降は有効なトランザクションにはなりません。
(初回は動作するように既に書き込んであります)
入力はこちらです:
sh inputs/exec.sh
以下のように出力されます:
0x01000000011798d99e33691fe595ac0fb00224adf249657b5a8d8cf7574928accce7c4d70e010000006a473044022053f663276bf1673a32f55d213428983d5fdfa7146ac3884439475ee90257c21b02206b1ecc97e8601a67eaf13067a70386737b0f7d59b7e44817d927db17829275b301210303998660a6a026b2f8aa72d37a077b6a76b282b2d5b73fc582fdc274f66fa5bcffffffff0264000000000000001976a914a997f6d478624028ea1f36082e7ceb5d79d7567188acd41d0000000000001976a9143d927250d4a4744f5f99b499f750d85054dbf9fc88ac00000000
下記サイトにて手動でブロードキャストを実行できます(プレフィックスの 0x
は削除する必要があります):
https://live.blockcypher.com/btc-testnet/pushtx/
下記の URL にて実際のブロードキャスト結果をご確認いただけます。
(それぞれ別のトランザクションです)
https://blockstream.info/testnet/tx/6228dedb6c7f743114093934fce3577013d0673b9688ac1df30a942ca0bd999f
$ cargo test
Finished test [unoptimized + debuginfo] target(s) in 0.01s
Running unittests src/main.rs (target/debug/deps/generate_btc_transaction-0ee1fb077933d7b2)
running 18 tests
test args::tests::test_is_base58::case_4 ... ok
test args::tests::test_is_base58::case_3 ... ok
test args::tests::test_is_hexadecimals::case_2 ... ok
test args::tests::test_is_base58::case_1 ... ok
test args::tests::test_is_hexadecimals::case_3 ... ok
test args::tests::test_is_hexadecimals::case_1 ... ok
test args::tests::test_is_base58::case_2 ... ok
test tx::tests::test_calc_change_amount::case_1 ... ok
test tx::tests::test_calc_change_amount::case_2 ... ok
test tx::tests::test_new::case_3 ... ok
test tx::tests::test_create_script_sig::case_1 ... ok
test tx::tests::test_calc_change_amount::case_3 - should panic ... ok
test tx::tests::test_new::case_5 ... ok
test tx::tests::test_new::case_4 ... ok
test tx::tests::test_new::case_1 ... ok
test tx::tests::test_new::case_2 ... ok
test tx::tests::test_create_script_sig::case_3 ... ok
test tx::tests::test_create_script_sig::case_2 ... ok
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s