|
|
@ -72,6 +72,10 @@ class ReplaceByFeeTest(BitcoinTestFramework): |
|
|
|
["-mempoolreplacement=0"]] |
|
|
|
["-mempoolreplacement=0"]] |
|
|
|
|
|
|
|
|
|
|
|
def run_test(self): |
|
|
|
def run_test(self): |
|
|
|
|
|
|
|
# Leave IBD and ensure nodes are synced |
|
|
|
|
|
|
|
self.nodes[0].generate(1) |
|
|
|
|
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
|
make_utxo(self.nodes[0], 1*COIN) |
|
|
|
make_utxo(self.nodes[0], 1*COIN) |
|
|
|
|
|
|
|
|
|
|
|
self.log.info("Running test simple doublespend...") |
|
|
|
self.log.info("Running test simple doublespend...") |
|
|
@ -110,13 +114,18 @@ class ReplaceByFeeTest(BitcoinTestFramework): |
|
|
|
"""Simple doublespend""" |
|
|
|
"""Simple doublespend""" |
|
|
|
tx0_outpoint = make_utxo(self.nodes[0], int(1.1*COIN)) |
|
|
|
tx0_outpoint = make_utxo(self.nodes[0], int(1.1*COIN)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# make_utxo may have generated a bunch of blocks, so we need to sync |
|
|
|
|
|
|
|
# before we can spend the coins generated, or else the resulting |
|
|
|
|
|
|
|
# transactions might not be accepted by our peers. |
|
|
|
|
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
|
tx1a = CTransaction() |
|
|
|
tx1a = CTransaction() |
|
|
|
tx1a.vin = [CTxIn(tx0_outpoint, nSequence=0)] |
|
|
|
tx1a.vin = [CTxIn(tx0_outpoint, nSequence=0)] |
|
|
|
tx1a.vout = [CTxOut(1*COIN, CScript([b'a']))] |
|
|
|
tx1a.vout = [CTxOut(1*COIN, CScript([b'a']))] |
|
|
|
tx1a_hex = txToHex(tx1a) |
|
|
|
tx1a_hex = txToHex(tx1a) |
|
|
|
tx1a_txid = self.nodes[0].sendrawtransaction(tx1a_hex, True) |
|
|
|
tx1a_txid = self.nodes[0].sendrawtransaction(tx1a_hex, True) |
|
|
|
|
|
|
|
|
|
|
|
self.sync_all([self.nodes]) |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
|
# Should fail because we haven't changed the fee |
|
|
|
# Should fail because we haven't changed the fee |
|
|
|
tx1b = CTransaction() |
|
|
|
tx1b = CTransaction() |
|
|
|