11from buidl .ecc import PrivateKey , Signature
2- from buidl .helper import decode_base58
3- from buidl .script import P2PKHScriptPubKey , RedeemScript , WitnessScript
2+ from buidl .script import RedeemScript , WitnessScript
43from buidl .tx import Tx , TxIn , TxOut , TxFetcher
54
65from buidl .test import OfflineTestCase
@@ -230,20 +229,24 @@ def test_sign_p2pkh(self):
230229 private_key = PrivateKey (secret = 8675309 )
231230 tx_ins = []
232231 prev_tx = bytes .fromhex (
233- "0025bc3c0fa8b7eb55b9437fdbd016870d18e0df0ace7bc9864efc38414147c8 "
232+ "448c1cf931cb8a35d648b75a63c7dbdc6d81a8b82be07c055d599a4ce810a20a "
234233 )
235234 tx_ins .append (TxIn (prev_tx , 0 ))
236- tx_outs = []
237- h160 = decode_base58 ("mzx5YhAH9kNHtcN481u6WkjeHjYtVeKVh2" )
238- tx_outs .append (
239- TxOut (amount = int (0.99 * 100000000 ), script_pubkey = P2PKHScriptPubKey (h160 ))
240- )
241- h160 = decode_base58 ("mnrVtF8DWjMu839VW3rBfgYaAfKk8983Xf" )
242- tx_outs .append (
243- TxOut (amount = int (0.1 * 100000000 ), script_pubkey = P2PKHScriptPubKey (h160 ))
244- )
245- tx = Tx (1 , tx_ins , tx_outs , 0 , network = "testnet" )
246- self .assertTrue (tx .sign_p2pkh (0 , private_key ))
235+ tx_outs = [
236+ TxOut .to_address ("mzx5YhAH9kNHtcN481u6WkjeHjYtVeKVh2" , 5999000 ),
237+ TxOut .to_address ("tb1qjfavna0z7r484w674f723w7g4jpeaplttt464w" , 1000000 ),
238+ TxOut .to_address (
239+ "tb1qdhd06yyf7pazh2vx3hm37c3gq8lpra2993hlr784z4e3xwpgksmsceq9wc" ,
240+ 1000000 ,
241+ ),
242+ TxOut .to_address ("2MyJsxLnxj7DsNch4xE7B3nMpB94kDPoE2s" , 1000000 ),
243+ TxOut .to_address (
244+ "tb1p9gpzhc5fhlwlf49ze00fgjszxh5pl2p7az76758xwarweq08gcas8qa0r7" ,
245+ 1000000 ,
246+ ),
247+ ]
248+ tx_obj = Tx (1 , tx_ins , tx_outs , 0 , network = "signet" )
249+ self .assertTrue (tx_obj .sign_p2pkh (0 , private_key ))
247250
248251 def test_sign_p2wpkh (self ):
249252 private_key = PrivateKey (secret = 8675309 )
@@ -254,8 +257,7 @@ def test_sign_p2wpkh(self):
254257 fee = 500
255258 tx_in = TxIn (prev_tx , prev_index )
256259 amount = tx_in .value (network = "testnet" ) - fee
257- h160 = decode_base58 ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" )
258- tx_out = TxOut (amount = amount , script_pubkey = P2PKHScriptPubKey (h160 ))
260+ tx_out = TxOut .to_address ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" , amount )
259261 t = Tx (1 , [tx_in ], [tx_out ], 0 , network = "testnet" , segwit = True )
260262 self .assertTrue (t .sign_input (0 , private_key ))
261263 want = "0100000000010197ad6fb37f5764c85b375639cbd07dfafd94c2ed18f2fb6cad9fdd329507fa6b0000000000ffffffff014c400f00000000001976a9146e13971913b9aa89659a9f53d327baa8826f2d7588ac02483045022100feab5b8feefd5e774bdfdc1dc23525b40f1ffaa25a376f8453158614f00fa6cb02204456493d0bc606ebeb3fa008e056bbc96a67cb0c11abcc871bfc2bec60206bf0012103935581e52c354cd2f484fe8ed83af7a3097005b2f9c60bff71d35bd795f54b6700000000"
@@ -271,8 +273,7 @@ def test_sign_p2sh_p2wpkh(self):
271273 fee = 500
272274 tx_in = TxIn (prev_tx , prev_index )
273275 amount = tx_in .value (network = "testnet" ) - fee
274- h160 = decode_base58 ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" )
275- tx_out = TxOut (amount = amount , script_pubkey = P2PKHScriptPubKey (h160 ))
276+ tx_out = TxOut .to_address ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" , amount )
276277 t = Tx (1 , [tx_in ], [tx_out ], 0 , network = "testnet" , segwit = True )
277278 self .assertTrue (t .sign_input (0 , private_key , redeem_script = redeem_script ))
278279 want = "01000000000101e92e1c1d29218348f8ec9463a9fc94670f675a7f82ae100f3e8a5cbd63b4192e0100000017160014d52ad7ca9b3d096a38e752c2018e6fbc40cdf26fffffffff014c400f00000000001976a9146e13971913b9aa89659a9f53d327baa8826f2d7588ac0247304402205e3ae5ac9a0e0a16ae04b0678c5732973ce31051ba9f42193e69843e600d84f2022060a91cbd48899b1bf5d1ffb7532f69ab74bc1701a253a415196b38feb599163b012103935581e52c354cd2f484fe8ed83af7a3097005b2f9c60bff71d35bd795f54b6700000000"
@@ -285,22 +286,16 @@ def test_sign_input(self):
285286 "0025bc3c0fa8b7eb55b9437fdbd016870d18e0df0ace7bc9864efc38414147c8"
286287 )
287288 tx_ins .append (TxIn (prev_tx , 0 ))
288- tx_outs = []
289- h160 = decode_base58 ("mzx5YhAH9kNHtcN481u6WkjeHjYtVeKVh2" )
290- tx_outs .append (
291- TxOut (amount = int (0.99 * 100000000 ), script_pubkey = P2PKHScriptPubKey (h160 ))
292- )
293- h160 = decode_base58 ("mnrVtF8DWjMu839VW3rBfgYaAfKk8983Xf" )
294- tx_outs .append (
295- TxOut (amount = int (0.1 * 100000000 ), script_pubkey = P2PKHScriptPubKey (h160 ))
296- )
289+ tx_outs = [
290+ TxOut .to_address ("mzx5YhAH9kNHtcN481u6WkjeHjYtVeKVh2" , 99000000 ),
291+ TxOut .to_address ("mnrVtF8DWjMu839VW3rBfgYaAfKk8983Xf" , 10000000 ),
292+ ]
297293 tx = Tx (1 , tx_ins , tx_outs , 0 , network = "testnet" )
298294 self .assertTrue (tx .sign_input (0 , private_key ))
299295
300296 def test_sign_p2sh_multisig (self ):
301297 private_key1 = PrivateKey (secret = 8675309 )
302298 private_key2 = PrivateKey (secret = 8675310 )
303-
304299 redeem_script = RedeemScript .create_p2sh_multisig (
305300 quorum_m = 2 ,
306301 pubkey_hexes = [
@@ -309,7 +304,6 @@ def test_sign_p2sh_multisig(self):
309304 ],
310305 sort_keys = False ,
311306 )
312-
313307 prev_tx = bytes .fromhex (
314308 "ded9b3c8b71032d42ea3b2fd5211d75b39a90637f967e637b64dfdb887dd11d7"
315309 )
@@ -318,8 +312,7 @@ def test_sign_p2sh_multisig(self):
318312 tx_in = TxIn (prev_tx , prev_index )
319313 tx_in_sats = 1000000
320314 amount = tx_in_sats - fee_sats
321- h160 = decode_base58 ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" )
322- tx_out = TxOut (amount = amount , script_pubkey = P2PKHScriptPubKey (h160 ))
315+ tx_out = TxOut .to_address ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" , amount )
323316 t = Tx (1 , [tx_in ], [tx_out ], 0 , network = "testnet" , segwit = True )
324317 sig1 = t .get_sig_legacy (0 , private_key1 , redeem_script = redeem_script )
325318 sig2 = t .get_sig_legacy (0 , private_key2 , redeem_script = redeem_script )
@@ -356,8 +349,7 @@ def test_sign_p2wsh_multisig(self):
356349 fee = 500
357350 tx_in = TxIn (prev_tx , prev_index )
358351 amount = tx_in .value (network = "testnet" ) - fee
359- h160 = decode_base58 ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" )
360- tx_out = TxOut (amount = amount , script_pubkey = P2PKHScriptPubKey (h160 ))
352+ tx_out = TxOut .to_address ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" , amount )
361353 t = Tx (1 , [tx_in ], [tx_out ], 0 , network = "testnet" , segwit = True )
362354 sig1 = t .get_sig_segwit (0 , private_key1 , witness_script = witness_script )
363355 sig2 = t .get_sig_segwit (0 , private_key2 , witness_script = witness_script )
@@ -394,8 +386,7 @@ def test_sign_p2sh_p2wsh_multisig(self):
394386 fee = 500
395387 tx_in = TxIn (prev_tx , prev_index )
396388 amount = tx_in .value (network = "testnet" ) - fee
397- h160 = decode_base58 ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" )
398- tx_out = TxOut (amount = amount , script_pubkey = P2PKHScriptPubKey (h160 ))
389+ tx_out = TxOut .to_address ("mqYz6JpuKukHzPg94y4XNDdPCEJrNkLQcv" , amount )
399390 t = Tx (1 , [tx_in ], [tx_out ], 0 , network = "testnet" , segwit = True )
400391 sig1 = t .get_sig_segwit (0 , private_key1 , witness_script = witness_script )
401392 sig2 = t .get_sig_segwit (0 , private_key2 , witness_script = witness_script )
0 commit comments