@ -30,6 +30,7 @@ class RawTransactionsTest(BitcoinTestFramework):
feeTolerance = Decimal ( 0.00000002 ) #if the fee's positive delta is higher than this value tests will fail, neg. delta always fail the tests
feeTolerance = Decimal ( 0.00000002 ) #if the fee's positive delta is higher than this value tests will fail, neg. delta always fail the tests
self . nodes [ 2 ] . generate ( 1 )
self . nodes [ 2 ] . generate ( 1 )
self . sync_all ( )
self . nodes [ 0 ] . generate ( 101 )
self . nodes [ 0 ] . generate ( 101 )
self . sync_all ( )
self . sync_all ( )
self . nodes [ 0 ] . sendtoaddress ( self . nodes [ 2 ] . getnewaddress ( ) , 1.5 ) ;
self . nodes [ 0 ] . sendtoaddress ( self . nodes [ 2 ] . getnewaddress ( ) , 1.5 ) ;
@ -46,17 +47,10 @@ class RawTransactionsTest(BitcoinTestFramework):
outputs = { self . nodes [ 0 ] . getnewaddress ( ) : 1.0 }
outputs = { self . nodes [ 0 ] . getnewaddress ( ) : 1.0 }
rawtx = self . nodes [ 2 ] . createrawtransaction ( inputs , outputs )
rawtx = self . nodes [ 2 ] . createrawtransaction ( inputs , outputs )
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtx )
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtx )
rawtxfund = self . nodes [ 2 ] . fundrawtransaction ( rawtx )
rawtxfund = self . nodes [ 2 ] . fundrawtransaction ( rawtx )
fee = rawtxfund [ ' fee ' ]
fee = rawtxfund [ ' fee ' ]
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtxfund [ ' hex ' ] )
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtxfund [ ' hex ' ] )
totalOut = 0
assert_equal ( len ( dec_tx [ ' vin ' ] ) > 0 , True ) #test if we have enought inputs
for out in dec_tx [ ' vout ' ] :
totalOut + = out [ ' value ' ]
assert_equal ( len ( dec_tx [ ' vin ' ] ) , 1 ) #one vin coin
assert_equal ( dec_tx [ ' vin ' ] [ 0 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( fee + totalOut , 1.5 ) #the 1.5BTC coin must be taken
##############################
##############################
# simple test with two coins #
# simple test with two coins #
@ -69,14 +63,7 @@ class RawTransactionsTest(BitcoinTestFramework):
rawtxfund = self . nodes [ 2 ] . fundrawtransaction ( rawtx )
rawtxfund = self . nodes [ 2 ] . fundrawtransaction ( rawtx )
fee = rawtxfund [ ' fee ' ]
fee = rawtxfund [ ' fee ' ]
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtxfund [ ' hex ' ] )
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtxfund [ ' hex ' ] )
totalOut = 0
assert_equal ( len ( dec_tx [ ' vin ' ] ) > 0 , True ) #test if we have enough inputs
for out in dec_tx [ ' vout ' ] :
totalOut + = out [ ' value ' ]
assert_equal ( len ( dec_tx [ ' vin ' ] ) , 2 ) #one vin coin
assert_equal ( dec_tx [ ' vin ' ] [ 0 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( dec_tx [ ' vin ' ] [ 1 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( fee + totalOut , 2.5 ) #the 1.5BTC+1.0BTC coins must have be taken
##############################
##############################
# simple test with two coins #
# simple test with two coins #
@ -89,13 +76,8 @@ class RawTransactionsTest(BitcoinTestFramework):
rawtxfund = self . nodes [ 2 ] . fundrawtransaction ( rawtx )
rawtxfund = self . nodes [ 2 ] . fundrawtransaction ( rawtx )
fee = rawtxfund [ ' fee ' ]
fee = rawtxfund [ ' fee ' ]
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtxfund [ ' hex ' ] )
dec_tx = self . nodes [ 2 ] . decoderawtransaction ( rawtxfund [ ' hex ' ] )
totalOut = 0
assert_equal ( len ( dec_tx [ ' vin ' ] ) > 0 , True )
for out in dec_tx [ ' vout ' ] :
totalOut + = out [ ' value ' ]
assert_equal ( len ( dec_tx [ ' vin ' ] ) , 1 ) #one vin coin
assert_equal ( dec_tx [ ' vin ' ] [ 0 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( dec_tx [ ' vin ' ] [ 0 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( fee + totalOut , 5.0 ) #the 5.0BTC coin must have be taken
################################
################################
@ -113,11 +95,8 @@ class RawTransactionsTest(BitcoinTestFramework):
for out in dec_tx [ ' vout ' ] :
for out in dec_tx [ ' vout ' ] :
totalOut + = out [ ' value ' ]
totalOut + = out [ ' value ' ]
assert_equal ( len ( dec_tx [ ' vin ' ] ) , 2 ) #one vin coin
assert_equal ( len ( dec_tx [ ' vin ' ] ) > 0 , True )
assert_equal ( dec_tx [ ' vin ' ] [ 0 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( dec_tx [ ' vin ' ] [ 0 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( dec_tx [ ' vin ' ] [ 1 ] [ ' scriptSig ' ] [ ' hex ' ] , ' ' )
assert_equal ( fee + totalOut , 6.0 ) #the 5.0BTC + 1.0BTC coins must have be taken
#########################################################################
#########################################################################
@ -220,8 +199,6 @@ class RawTransactionsTest(BitcoinTestFramework):
assert_equal ( matchingOuts , 1 )
assert_equal ( matchingOuts , 1 )
assert_equal ( len ( dec_tx [ ' vout ' ] ) , 2 )
assert_equal ( len ( dec_tx [ ' vout ' ] ) , 2 )
assert_equal ( fee + totalOut , 2.5 ) #this tx must use the 1.0BTC and the 1.5BTC coin
###########################################
###########################################
# test a fundrawtransaction with two VINs #
# test a fundrawtransaction with two VINs #
@ -264,8 +241,6 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingIns + = 1
matchingIns + = 1
assert_equal ( matchingIns , 2 ) #we now must see two vins identical to vins given as params
assert_equal ( matchingIns , 2 ) #we now must see two vins identical to vins given as params
assert_equal ( fee + totalOut , 7.5 ) #this tx must use the 1.0BTC and the 1.5BTC coin
#########################################################
#########################################################
# test a fundrawtransaction with two VINs and two vOUTs #
# test a fundrawtransaction with two VINs and two vOUTs #
@ -300,8 +275,6 @@ class RawTransactionsTest(BitcoinTestFramework):
assert_equal ( matchingOuts , 2 )
assert_equal ( matchingOuts , 2 )
assert_equal ( len ( dec_tx [ ' vout ' ] ) , 3 )
assert_equal ( len ( dec_tx [ ' vout ' ] ) , 3 )
assert_equal ( fee + totalOut , 7.5 ) #this tx must use the 1.0BTC and the 1.5BTC coin
##############################################
##############################################
# test a fundrawtransaction with invalid vin #
# test a fundrawtransaction with invalid vin #