[qa] mininode: Add and use CONSTs
This commit is contained in:
parent
fa8cd46f39
commit
fad8cfb893
10 changed files with 16 additions and 17 deletions
|
@ -13,7 +13,6 @@ from test_framework.script import *
|
||||||
from test_framework.mininode import *
|
from test_framework.mininode import *
|
||||||
from test_framework.blocktools import *
|
from test_framework.blocktools import *
|
||||||
|
|
||||||
COIN = 100000000
|
|
||||||
SEQUENCE_LOCKTIME_DISABLE_FLAG = (1<<31)
|
SEQUENCE_LOCKTIME_DISABLE_FLAG = (1<<31)
|
||||||
SEQUENCE_LOCKTIME_TYPE_FLAG = (1<<22) # this means use time (0 means height)
|
SEQUENCE_LOCKTIME_TYPE_FLAG = (1<<22) # this means use time (0 means height)
|
||||||
SEQUENCE_LOCKTIME_GRANULARITY = 9 # this is a bit-shift
|
SEQUENCE_LOCKTIME_GRANULARITY = 9 # this is a bit-shift
|
||||||
|
|
|
@ -78,8 +78,8 @@ class InvalidBlockRequestTest(ComparisonTestFramework):
|
||||||
self.block_time += 1
|
self.block_time += 1
|
||||||
|
|
||||||
# chr(81) is OP_TRUE
|
# chr(81) is OP_TRUE
|
||||||
tx1 = create_transaction(self.block1.vtx[0], 0, chr(81), 50*100000000)
|
tx1 = create_transaction(self.block1.vtx[0], 0, chr(81), 50 * COIN)
|
||||||
tx2 = create_transaction(tx1, 0, chr(81), 50*100000000)
|
tx2 = create_transaction(tx1, 0, chr(81), 50 * COIN)
|
||||||
|
|
||||||
block2.vtx.extend([tx1, tx2])
|
block2.vtx.extend([tx1, tx2])
|
||||||
block2.hashMerkleRoot = block2.calc_merkle_root()
|
block2.hashMerkleRoot = block2.calc_merkle_root()
|
||||||
|
@ -103,7 +103,7 @@ class InvalidBlockRequestTest(ComparisonTestFramework):
|
||||||
'''
|
'''
|
||||||
block3 = create_block(self.tip, create_coinbase(height), self.block_time)
|
block3 = create_block(self.tip, create_coinbase(height), self.block_time)
|
||||||
self.block_time += 1
|
self.block_time += 1
|
||||||
block3.vtx[0].vout[0].nValue = 100*100000000 # Too high!
|
block3.vtx[0].vout[0].nValue = 100 * COIN # Too high!
|
||||||
block3.vtx[0].sha256=None
|
block3.vtx[0].sha256=None
|
||||||
block3.vtx[0].calc_sha256()
|
block3.vtx[0].calc_sha256()
|
||||||
block3.hashMerkleRoot = block3.calc_merkle_root()
|
block3.hashMerkleRoot = block3.calc_merkle_root()
|
||||||
|
|
|
@ -63,7 +63,7 @@ class InvalidTxRequestTest(ComparisonTestFramework):
|
||||||
|
|
||||||
# chr(100) is OP_NOTIF
|
# chr(100) is OP_NOTIF
|
||||||
# Transaction will be rejected with code 16 (REJECT_INVALID)
|
# Transaction will be rejected with code 16 (REJECT_INVALID)
|
||||||
tx1 = create_transaction(self.block1.vtx[0], 0, chr(100), 50*100000000 - 12000)
|
tx1 = create_transaction(self.block1.vtx[0], 0, chr(100), 50 * COIN - 12000)
|
||||||
yield TestInstance([[tx1, RejectResult(16, 'mandatory-script-verify-flag-failed')]])
|
yield TestInstance([[tx1, RejectResult(16, 'mandatory-script-verify-flag-failed')]])
|
||||||
|
|
||||||
# TODO: test further transactions...
|
# TODO: test further transactions...
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
from test_framework.test_framework import BitcoinTestFramework
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import *
|
from test_framework.util import *
|
||||||
from test_framework.mininode import CTransaction
|
from test_framework.mininode import CTransaction, COIN
|
||||||
import cStringIO
|
import cStringIO
|
||||||
import binascii
|
import binascii
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ class ListTransactionsTest(BitcoinTestFramework):
|
||||||
|
|
||||||
# Replace tx3, and check that tx4 becomes unknown
|
# Replace tx3, and check that tx4 becomes unknown
|
||||||
tx3_b = tx3_modified
|
tx3_b = tx3_modified
|
||||||
tx3_b.vout[0].nValue -= 0.004*100000000 # bump the fee
|
tx3_b.vout[0].nValue -= 0.004 * COIN # bump the fee
|
||||||
tx3_b = binascii.hexlify(tx3_b.serialize()).decode('utf-8')
|
tx3_b = binascii.hexlify(tx3_b.serialize()).decode('utf-8')
|
||||||
tx3_b_signed = self.nodes[0].signrawtransaction(tx3_b)['hex']
|
tx3_b_signed = self.nodes[0].signrawtransaction(tx3_b)['hex']
|
||||||
txid_3b = self.nodes[0].sendrawtransaction(tx3_b_signed, True)
|
txid_3b = self.nodes[0].sendrawtransaction(tx3_b_signed, True)
|
||||||
|
|
|
@ -176,7 +176,7 @@ class MaxUploadTest(BitcoinTestFramework):
|
||||||
getdata_request.inv.append(CInv(2, big_old_block))
|
getdata_request.inv.append(CInv(2, big_old_block))
|
||||||
|
|
||||||
max_bytes_per_day = 200*1024*1024
|
max_bytes_per_day = 200*1024*1024
|
||||||
daily_buffer = 144 * 1000000
|
daily_buffer = 144 * MAX_BLOCK_SIZE
|
||||||
max_bytes_available = max_bytes_per_day - daily_buffer
|
max_bytes_available = max_bytes_per_day - daily_buffer
|
||||||
success_count = max_bytes_available / old_block_size
|
success_count = max_bytes_available / old_block_size
|
||||||
|
|
||||||
|
|
|
@ -59,13 +59,12 @@ class MempoolPackagesTest(BitcoinTestFramework):
|
||||||
descendant_count = 1
|
descendant_count = 1
|
||||||
descendant_fees = 0
|
descendant_fees = 0
|
||||||
descendant_size = 0
|
descendant_size = 0
|
||||||
SATOSHIS = 100000000
|
|
||||||
|
|
||||||
for x in reversed(chain):
|
for x in reversed(chain):
|
||||||
assert_equal(mempool[x]['descendantcount'], descendant_count)
|
assert_equal(mempool[x]['descendantcount'], descendant_count)
|
||||||
descendant_fees += mempool[x]['fee']
|
descendant_fees += mempool[x]['fee']
|
||||||
assert_equal(mempool[x]['modifiedfee'], mempool[x]['fee'])
|
assert_equal(mempool[x]['modifiedfee'], mempool[x]['fee'])
|
||||||
assert_equal(mempool[x]['descendantfees'], SATOSHIS*descendant_fees)
|
assert_equal(mempool[x]['descendantfees'], descendant_fees * COIN)
|
||||||
descendant_size += mempool[x]['size']
|
descendant_size += mempool[x]['size']
|
||||||
assert_equal(mempool[x]['descendantsize'], descendant_size)
|
assert_equal(mempool[x]['descendantsize'], descendant_size)
|
||||||
descendant_count += 1
|
descendant_count += 1
|
||||||
|
@ -78,7 +77,7 @@ class MempoolPackagesTest(BitcoinTestFramework):
|
||||||
descendant_fees = 0
|
descendant_fees = 0
|
||||||
for x in reversed(chain):
|
for x in reversed(chain):
|
||||||
descendant_fees += mempool[x]['fee']
|
descendant_fees += mempool[x]['fee']
|
||||||
assert_equal(mempool[x]['descendantfees'], SATOSHIS*descendant_fees+1000)
|
assert_equal(mempool[x]['descendantfees'], descendant_fees * COIN + 1000)
|
||||||
|
|
||||||
# Adding one more transaction on to the chain should fail.
|
# Adding one more transaction on to the chain should fail.
|
||||||
try:
|
try:
|
||||||
|
@ -106,7 +105,7 @@ class MempoolPackagesTest(BitcoinTestFramework):
|
||||||
descendant_fees += mempool[x]['fee']
|
descendant_fees += mempool[x]['fee']
|
||||||
if (x == chain[-1]):
|
if (x == chain[-1]):
|
||||||
assert_equal(mempool[x]['modifiedfee'], mempool[x]['fee']+satoshi_round(0.00002))
|
assert_equal(mempool[x]['modifiedfee'], mempool[x]['fee']+satoshi_round(0.00002))
|
||||||
assert_equal(mempool[x]['descendantfees'], SATOSHIS*descendant_fees+2000)
|
assert_equal(mempool[x]['descendantfees'], descendant_fees * COIN + 2000)
|
||||||
|
|
||||||
# TODO: check that node1's mempool is as expected
|
# TODO: check that node1's mempool is as expected
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
|
|
||||||
from test_framework.test_framework import BitcoinTestFramework
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import *
|
from test_framework.util import *
|
||||||
|
from test_framework.mininode import COIN
|
||||||
|
|
||||||
COIN = 100000000
|
|
||||||
|
|
||||||
class PrioritiseTransactionTest(BitcoinTestFramework):
|
class PrioritiseTransactionTest(BitcoinTestFramework):
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@ from test_framework.script import *
|
||||||
from test_framework.mininode import *
|
from test_framework.mininode import *
|
||||||
import binascii
|
import binascii
|
||||||
|
|
||||||
COIN = 100000000
|
|
||||||
MAX_REPLACEMENT_LIMIT = 100
|
MAX_REPLACEMENT_LIMIT = 100
|
||||||
|
|
||||||
def satoshi_round(amount):
|
def satoshi_round(amount):
|
||||||
|
|
|
@ -45,7 +45,7 @@ def create_coinbase(height, pubkey = None):
|
||||||
coinbase.vin.append(CTxIn(COutPoint(0, 0xffffffff),
|
coinbase.vin.append(CTxIn(COutPoint(0, 0xffffffff),
|
||||||
ser_string(serialize_script_num(height)), 0xffffffff))
|
ser_string(serialize_script_num(height)), 0xffffffff))
|
||||||
coinbaseoutput = CTxOut()
|
coinbaseoutput = CTxOut()
|
||||||
coinbaseoutput.nValue = 50*100000000
|
coinbaseoutput.nValue = 50 * COIN
|
||||||
halvings = int(height/150) # regtest
|
halvings = int(height/150) # regtest
|
||||||
coinbaseoutput.nValue >>= halvings
|
coinbaseoutput.nValue >>= halvings
|
||||||
if (pubkey != None):
|
if (pubkey != None):
|
||||||
|
|
|
@ -38,6 +38,8 @@ MY_SUBVERSION = "/python-mininode-tester:0.0.1/"
|
||||||
MAX_INV_SZ = 50000
|
MAX_INV_SZ = 50000
|
||||||
MAX_BLOCK_SIZE = 1000000
|
MAX_BLOCK_SIZE = 1000000
|
||||||
|
|
||||||
|
COIN = 100000000L # 1 btc in satoshis
|
||||||
|
|
||||||
# Keep our own socket map for asyncore, so that we can track disconnects
|
# Keep our own socket map for asyncore, so that we can track disconnects
|
||||||
# ourselves (to workaround an issue with closing an asyncore socket when
|
# ourselves (to workaround an issue with closing an asyncore socket when
|
||||||
# using select)
|
# using select)
|
||||||
|
@ -377,7 +379,7 @@ class CTxOut(object):
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "CTxOut(nValue=%i.%08i scriptPubKey=%s)" \
|
return "CTxOut(nValue=%i.%08i scriptPubKey=%s)" \
|
||||||
% (self.nValue // 100000000, self.nValue % 100000000,
|
% (self.nValue // COIN, self.nValue % COIN,
|
||||||
binascii.hexlify(self.scriptPubKey))
|
binascii.hexlify(self.scriptPubKey))
|
||||||
|
|
||||||
|
|
||||||
|
@ -426,7 +428,7 @@ class CTransaction(object):
|
||||||
def is_valid(self):
|
def is_valid(self):
|
||||||
self.calc_sha256()
|
self.calc_sha256()
|
||||||
for tout in self.vout:
|
for tout in self.vout:
|
||||||
if tout.nValue < 0 or tout.nValue > 21000000L * 100000000L:
|
if tout.nValue < 0 or tout.nValue > 21000000 * COIN:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue