def create_coinbase(heightAdjust=0): global counter coinbase = CTransaction() coinbase.vin.append( CTxIn(COutPoint(0, 0xffffffff), CScript([counter + heightAdjust, OP_0]), 0xffffffff)) counter += 1 coinbaseoutput = CTxOut() coinbaseoutput.nValue = int(5 * 100000000) halvings = int((counter + heightAdjust) / 150) # regtest coinbaseoutput.nValue >>= halvings coinbaseoutput.scriptPubKey = "" coinbase.vout = [coinbaseoutput] if halvings == 0: # regtest froutput = CTxOut() froutput.nValue = coinbaseoutput.nValue / 5 # regtest fraddr = bytearray([ 0x67, 0x08, 0xe6, 0x67, 0x0d, 0xb0, 0xb9, 0x50, 0xda, 0xc6, 0x80, 0x31, 0x02, 0x5c, 0xc5, 0xb6, 0x32, 0x13, 0xa4, 0x91 ]) froutput.scriptPubKey = CScript([OP_HASH160, fraddr, OP_EQUAL]) coinbaseoutput.nValue -= froutput.nValue coinbase.vout = [coinbaseoutput, froutput] coinbase.calc_sha256() return coinbase
def create_coinbase(heightAdjust=0, comm_quota=85): global counter coinbase = CTransaction() coinbase.vin.append( CTxIn(COutPoint(0, 0xffffffff), CScript([counter + heightAdjust, OP_0]), 0xffffffff)) counter += 1 coinbaseoutput = CTxOut() coinbaseoutput.nValue = int(12.5 * 100000000) halvings = int((counter + heightAdjust) / 2000) # regtest coinbaseoutput.nValue >>= halvings coinbaseoutput.scriptPubKey = "" coinbase.vout = [coinbaseoutput] if halvings == 0: # regtest comm_output = CTxOut() comm_output.nValue = (coinbaseoutput.nValue * comm_quota // 1000) # regtest com_addr = bytearray([ 0xb6, 0x86, 0x3b, 0x18, 0x2a, 0x52, 0x74, 0x5b, 0xf6, 0xd5, 0xfb, 0x19, 0x01, 0x39, 0xa2, 0xaa, 0x87, 0x6c, 0x08, 0xf5 ]) comm_output.scriptPubKey = CScript([OP_HASH160, com_addr, OP_EQUAL]) coinbaseoutput.nValue -= comm_output.nValue coinbase.vout.append(comm_output) coinbase.calc_sha256() return coinbase
def create_coinbase_h(block_height, halving_interval=2000, heightAdjust=0): subsidy = int(12.5 * 100000000) halvings = int((block_height + heightAdjust) // halving_interval) # 2000 is default for regtest subsidy >>= halvings coinbase = CTransaction() coinbase.vin.append( CTxIn(COutPoint(0, 0xffffffff), CScript([block_height + heightAdjust, OP_0]), 0xffffffff)) coinbaseoutput = CTxOut() coinbaseoutput.nValue = subsidy coinbaseoutput.scriptPubKey = b"" coinbase.vout.append(coinbaseoutput) found, supn, secn = get_coinbase_quotas(block_height) found_out = CTxOut() found_out.nValue = subsidy * found // 1000 found_out.scriptPubKey = CScript([OP_HASH160, found_addr, OP_EQUAL]) coinbaseoutput.nValue -= found_out.nValue coinbase.vout.append(found_out) if supn > 0: supn_out = CTxOut() supn_out.nValue = subsidy * supn // 1000 supn_out.scriptPubKey = CScript([OP_HASH160, supn_addr, OP_EQUAL]) coinbaseoutput.nValue -= supn_out.nValue coinbase.vout.append(supn_out) if secn > 0: secn_out = CTxOut() secn_out.nValue = subsidy * secn // 1000 secn_out.scriptPubKey = CScript([OP_HASH160, secn_addr, OP_EQUAL]) coinbaseoutput.nValue -= secn_out.nValue coinbase.vout.append(secn_out) coinbase.calc_sha256() return coinbase
def create_coinbase(heightAdjust = 0): global counter coinbase = CTransaction() coinbase.vin.append(CTxIn(COutPoint(0, 0xffffffff), ser_string(serialize_script_num(counter+heightAdjust)), 0xffffffff)) counter += 1 coinbaseoutput = CTxOut() coinbaseoutput.nValue = 50*100000000 halvings = int((counter+heightAdjust)/150) # regtest coinbaseoutput.nValue >>= halvings coinbaseoutput.scriptPubKey = "" coinbase.vout = [ coinbaseoutput ] coinbase.calc_sha256() return coinbase
def create_coinbase(heightAdjust = 0): global counter coinbase = CTransaction() coinbase.vin.append(CTxIn(COutPoint(0, 0xffffffff), CScript([counter+heightAdjust, OP_0]), 0xffffffff)) counter += 1 coinbaseoutput = CTxOut() coinbaseoutput.nValue = int(12.5*100000000) halvings = int((counter+heightAdjust)/150) # regtest coinbaseoutput.nValue >>= halvings coinbaseoutput.scriptPubKey = "" coinbase.vout = [ coinbaseoutput ] if halvings == 0: # regtest froutput = CTxOut() froutput.nValue = coinbaseoutput.nValue / 5 # regtest fraddr = bytearray([0x67, 0x08, 0xe6, 0x67, 0x0d, 0xb0, 0xb9, 0x50, 0xda, 0xc6, 0x80, 0x31, 0x02, 0x5c, 0xc5, 0xb6, 0x32, 0x13, 0xa4, 0x91]) froutput.scriptPubKey = CScript([OP_HASH160, fraddr, OP_EQUAL]) coinbaseoutput.nValue -= froutput.nValue coinbase.vout = [ coinbaseoutput, froutput ] coinbase.calc_sha256() return coinbase
def create_coinbase(heightAdjust=0): global counter coinbase = CTransaction() coinbase.vin.append( CTxIn(COutPoint(0, 0xffffffff), ser_string(serialize_script_num(counter + heightAdjust)), 0xffffffff)) counter += 1 coinbaseoutput = CTxOut() coinbaseoutput.nValue = 50 * 100000000 halvings = int((counter + heightAdjust) / 150) # regtest coinbaseoutput.nValue >>= halvings coinbaseoutput.scriptPubKey = "" coinbase.vout = [coinbaseoutput] coinbase.calc_sha256() return coinbase