mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-14 11:22:58 +02:00
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 ACKfa2ac5881e
on Ubuntu 20.04. Tree-SHA512: 17795d906aa7652933d43e510e993cdd9cf8926da1febf1c42d463048cb38c92dc518ec08736efe29c0189ffd532b108bc7a715f32b4c2ee58b215df65352eb9
This commit is contained in:
@ -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
|
||||||
|
@ -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):
|
||||||
|
@ -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):
|
||||||
|
Reference in New Issue
Block a user