Merge bitcoin/bitcoin#23210: test: Replace satoshi_round with int() or Decimal()

fa2ac5881e test: Replace satoshi_round with int() or Decimal() (MarcoFalke)

Pull request description:

  satoshi_round will round down. To make the code easier to parse use
  Decimal() where possible, which does not round. Or use int(), which
  explicitly rounds down.

ACKs for top commit:
  lsilva01:
    Tested ACK fa2ac5881e on Ubuntu 20.04.

Tree-SHA512: 17795d906aa7652933d43e510e993cdd9cf8926da1febf1c42d463048cb38c92dc518ec08736efe29c0189ffd532b108bc7a715f32b4c2ee58b215df65352eb9
This commit is contained in:
MarcoFalke
2021-10-07 09:09:04 +02:00
3 changed files with 8 additions and 12 deletions

View File

@ -24,7 +24,6 @@ from test_framework.util import (
assert_equal, assert_equal,
assert_greater_than, assert_greater_than,
assert_raises_rpc_error, assert_raises_rpc_error,
satoshi_round,
softfork_active, softfork_active,
) )
from test_framework.script_util import DUMMY_P2WPKH_SCRIPT from test_framework.script_util import DUMMY_P2WPKH_SCRIPT
@ -94,7 +93,7 @@ class BIP68Test(BitcoinTestFramework):
utxo = utxos[0] utxo = utxos[0]
tx1 = CTransaction() tx1 = CTransaction()
value = int(satoshi_round(utxo["amount"] - self.relayfee)*COIN) value = int((utxo["amount"] - self.relayfee) * COIN)
# Check that the disable flag disables relative locktime. # Check that the disable flag disables relative locktime.
# If sequence locks were used, this would require 1 block for the # If sequence locks were used, this would require 1 block for the

View File

@ -14,7 +14,6 @@ from test_framework.util import (
assert_equal, assert_equal,
assert_raises_rpc_error, assert_raises_rpc_error,
chain_transaction, chain_transaction,
satoshi_round,
) )
# default limits # default limits
@ -209,10 +208,10 @@ class MempoolPackagesTest(BitcoinTestFramework):
entry = self.nodes[0].getmempoolentry(x) entry = self.nodes[0].getmempoolentry(x)
descendant_fees += entry['fee'] descendant_fees += entry['fee']
if (x == chain[-1]): if (x == chain[-1]):
assert_equal(entry['modifiedfee'], entry['fee']+satoshi_round(0.00002)) assert_equal(entry['modifiedfee'], entry['fee'] + Decimal("0.00002"))
assert_equal(entry['fees']['modified'], entry['fee']+satoshi_round(0.00002)) assert_equal(entry['fees']['modified'], entry['fee'] + Decimal("0.00002"))
assert_equal(entry['descendantfees'], descendant_fees * COIN + 2000) assert_equal(entry['descendantfees'], descendant_fees * COIN + 2000)
assert_equal(entry['fees']['descendant'], descendant_fees+satoshi_round(0.00002)) assert_equal(entry['fees']['descendant'], descendant_fees + Decimal("0.00002"))
# Check that node1's mempool is as expected (-> custom ancestor limit) # Check that node1's mempool is as expected (-> custom ancestor limit)
mempool0 = self.nodes[0].getrawmempool(False) mempool0 = self.nodes[0].getrawmempool(False)
@ -308,7 +307,7 @@ class MempoolPackagesTest(BitcoinTestFramework):
value = utxo[0]['amount'] value = utxo[0]['amount']
vout = utxo[0]['vout'] vout = utxo[0]['vout']
send_value = satoshi_round((value - fee)/2) send_value = (value - fee) / 2
inputs = [ {'txid' : txid, 'vout' : vout} ] inputs = [ {'txid' : txid, 'vout' : vout} ]
outputs = {} outputs = {}
for _ in range(2): for _ in range(2):

View File

@ -33,7 +33,6 @@ from test_framework.script_util import key_to_p2wpkh_script
from test_framework.util import ( from test_framework.util import (
assert_equal, assert_equal,
assert_greater_than_or_equal, assert_greater_than_or_equal,
satoshi_round,
) )
DEFAULT_FEE = Decimal("0.0001") DEFAULT_FEE = Decimal("0.0001")
@ -175,13 +174,12 @@ class MiniWallet:
vsize = Decimal(96) # anyone-can-spend vsize = Decimal(96) # anyone-can-spend
else: else:
vsize = Decimal(168) # P2PK (73 bytes scriptSig + 35 bytes scriptPubKey + 60 bytes other) vsize = Decimal(168) # P2PK (73 bytes scriptSig + 35 bytes scriptPubKey + 60 bytes other)
send_value = satoshi_round(utxo_to_spend['value'] - fee_rate * (vsize / 1000)) send_value = int(COIN * (utxo_to_spend['value'] - fee_rate * (vsize / 1000)))
fee = utxo_to_spend['value'] - send_value
assert send_value > 0 assert send_value > 0
tx = CTransaction() tx = CTransaction()
tx.vin = [CTxIn(COutPoint(int(utxo_to_spend['txid'], 16), utxo_to_spend['vout']), nSequence=sequence)] tx.vin = [CTxIn(COutPoint(int(utxo_to_spend['txid'], 16), utxo_to_spend['vout']), nSequence=sequence)]
tx.vout = [CTxOut(int(send_value * COIN), self._scriptPubKey)] tx.vout = [CTxOut(send_value, self._scriptPubKey)]
tx.nLockTime = locktime tx.nLockTime = locktime
if not self._address: if not self._address:
# raw script # raw script
@ -200,7 +198,7 @@ class MiniWallet:
assert_equal(mempool_valid, tx_info['allowed']) assert_equal(mempool_valid, tx_info['allowed'])
if mempool_valid: if mempool_valid:
assert_equal(tx_info['vsize'], vsize) assert_equal(tx_info['vsize'], vsize)
assert_equal(tx_info['fees']['base'], fee) assert_equal(tx_info['fees']['base'], utxo_to_spend['value'] - Decimal(send_value) / COIN)
return {'txid': tx_info['txid'], 'wtxid': tx_info['wtxid'], 'hex': tx_hex, 'tx': tx} return {'txid': tx_info['txid'], 'wtxid': tx_info['wtxid'], 'hex': tx_hex, 'tx': tx}
def sendrawtransaction(self, *, from_node, tx_hex): def sendrawtransaction(self, *, from_node, tx_hex):