Changeset View
Changeset View
Standalone View
Standalone View
test/functional/rpc_fundrawtransaction.py
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
rawmatch = self.nodes[2].createrawtransaction( | rawmatch = self.nodes[2].createrawtransaction( | ||||
[], {self.nodes[2].getnewaddress(): 50}) | [], {self.nodes[2].getnewaddress(): 50}) | ||||
rawmatch = self.nodes[2].fundrawtransaction( | rawmatch = self.nodes[2].fundrawtransaction( | ||||
rawmatch, {"changePosition": 1, "subtractFeeFromOutputs": [0]}) | rawmatch, {"changePosition": 1, "subtractFeeFromOutputs": [0]}) | ||||
assert_equal(rawmatch["changepos"], -1) | assert_equal(rawmatch["changepos"], -1) | ||||
watchonly_address = self.nodes[0].getnewaddress() | watchonly_address = self.nodes[0].getnewaddress() | ||||
watchonly_pubkey = self.nodes[ | watchonly_pubkey = self.nodes[ | ||||
0].validateaddress(watchonly_address)["pubkey"] | 0].getaddressinfo(watchonly_address)["pubkey"] | ||||
watchonly_amount = Decimal(200) | watchonly_amount = Decimal(200) | ||||
self.nodes[3].importpubkey(watchonly_pubkey, "", True) | self.nodes[3].importpubkey(watchonly_pubkey, "", True) | ||||
watchonly_txid = self.nodes[0].sendtoaddress( | watchonly_txid = self.nodes[0].sendtoaddress( | ||||
watchonly_address, watchonly_amount) | watchonly_address, watchonly_amount) | ||||
self.nodes[0].sendtoaddress( | self.nodes[0].sendtoaddress( | ||||
self.nodes[3].getnewaddress(), watchonly_amount / 10) | self.nodes[3].getnewaddress(), watchonly_amount / 10) | ||||
self.nodes[0].sendtoaddress(self.nodes[4].getnewaddress(), 5.0) | self.nodes[0].sendtoaddress(self.nodes[4].getnewaddress(), 5.0) | ||||
▲ Show 20 Lines • Show All 299 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
# | # | ||||
# compare fee of a 2of2 multisig p2sh transaction | # compare fee of a 2of2 multisig p2sh transaction | ||||
# create 2of2 addr | # create 2of2 addr | ||||
addr1 = self.nodes[1].getnewaddress() | addr1 = self.nodes[1].getnewaddress() | ||||
addr2 = self.nodes[1].getnewaddress() | addr2 = self.nodes[1].getnewaddress() | ||||
addr1Obj = self.nodes[1].validateaddress(addr1) | addr1Obj = self.nodes[1].getaddressinfo(addr1) | ||||
addr2Obj = self.nodes[1].validateaddress(addr2) | addr2Obj = self.nodes[1].getaddressinfo(addr2) | ||||
mSigObj = self.nodes[1].addmultisigaddress( | mSigObj = self.nodes[1].addmultisigaddress( | ||||
2, [addr1Obj['pubkey'], addr2Obj['pubkey']])['address'] | 2, [addr1Obj['pubkey'], addr2Obj['pubkey']])['address'] | ||||
inputs = [] | inputs = [] | ||||
outputs = {mSigObj: 1.1} | outputs = {mSigObj: 1.1} | ||||
rawTx = self.nodes[0].createrawtransaction(inputs, outputs) | rawTx = self.nodes[0].createrawtransaction(inputs, outputs) | ||||
fundedTx = self.nodes[0].fundrawtransaction(rawTx) | fundedTx = self.nodes[0].fundrawtransaction(rawTx) | ||||
Show All 12 Lines | def run_test(self): | ||||
# create 4of5 addr | # create 4of5 addr | ||||
addr1 = self.nodes[1].getnewaddress() | addr1 = self.nodes[1].getnewaddress() | ||||
addr2 = self.nodes[1].getnewaddress() | addr2 = self.nodes[1].getnewaddress() | ||||
addr3 = self.nodes[1].getnewaddress() | addr3 = self.nodes[1].getnewaddress() | ||||
addr4 = self.nodes[1].getnewaddress() | addr4 = self.nodes[1].getnewaddress() | ||||
addr5 = self.nodes[1].getnewaddress() | addr5 = self.nodes[1].getnewaddress() | ||||
addr1Obj = self.nodes[1].validateaddress(addr1) | addr1Obj = self.nodes[1].getaddressinfo(addr1) | ||||
addr2Obj = self.nodes[1].validateaddress(addr2) | addr2Obj = self.nodes[1].getaddressinfo(addr2) | ||||
addr3Obj = self.nodes[1].validateaddress(addr3) | addr3Obj = self.nodes[1].getaddressinfo(addr3) | ||||
addr4Obj = self.nodes[1].validateaddress(addr4) | addr4Obj = self.nodes[1].getaddressinfo(addr4) | ||||
addr5Obj = self.nodes[1].validateaddress(addr5) | addr5Obj = self.nodes[1].getaddressinfo(addr5) | ||||
mSigObj = self.nodes[1].addmultisigaddress( | mSigObj = self.nodes[1].addmultisigaddress( | ||||
4, [addr1Obj['pubkey'], addr2Obj['pubkey'], addr3Obj['pubkey'], addr4Obj['pubkey'], addr5Obj['pubkey']])['address'] | 4, [addr1Obj['pubkey'], addr2Obj['pubkey'], addr3Obj['pubkey'], addr4Obj['pubkey'], addr5Obj['pubkey']])['address'] | ||||
inputs = [] | inputs = [] | ||||
outputs = {mSigObj: 1.1} | outputs = {mSigObj: 1.1} | ||||
rawTx = self.nodes[0].createrawtransaction(inputs, outputs) | rawTx = self.nodes[0].createrawtransaction(inputs, outputs) | ||||
fundedTx = self.nodes[0].fundrawtransaction(rawTx) | fundedTx = self.nodes[0].fundrawtransaction(rawTx) | ||||
Show All 9 Lines | def run_test(self): | ||||
# | # | ||||
# spend a 2of2 multisig transaction over fundraw | # spend a 2of2 multisig transaction over fundraw | ||||
# create 2of2 addr | # create 2of2 addr | ||||
addr1 = self.nodes[2].getnewaddress() | addr1 = self.nodes[2].getnewaddress() | ||||
addr2 = self.nodes[2].getnewaddress() | addr2 = self.nodes[2].getnewaddress() | ||||
addr1Obj = self.nodes[2].validateaddress(addr1) | addr1Obj = self.nodes[2].getaddressinfo(addr1) | ||||
addr2Obj = self.nodes[2].validateaddress(addr2) | addr2Obj = self.nodes[2].getaddressinfo(addr2) | ||||
mSigObj = self.nodes[2].addmultisigaddress( | mSigObj = self.nodes[2].addmultisigaddress( | ||||
2, [addr1Obj['pubkey'], addr2Obj['pubkey']])['address'] | 2, [addr1Obj['pubkey'], addr2Obj['pubkey']])['address'] | ||||
# send 1.2 BTC to msig addr | # send 1.2 BTC to msig addr | ||||
txId = self.nodes[0].sendtoaddress(mSigObj, 1.2) | txId = self.nodes[0].sendtoaddress(mSigObj, 1.2) | ||||
self.sync_all() | self.sync_all() | ||||
self.nodes[1].generate(1) | self.nodes[1].generate(1) | ||||
▲ Show 20 Lines • Show All 364 Lines • Show Last 20 Lines |