diff options
author | fanquake <fanquake@gmail.com> | 2022-07-05 11:40:52 +0100 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2022-07-05 11:52:52 +0100 |
commit | 9fb2a2bc6768ab03fcada9155d52a16ce6f6a0cc (patch) | |
tree | e91d318fa335d823e59c3b2faac542ae02bd4995 | |
parent | 87d012324afa285221073540781295f1b7381a15 (diff) | |
parent | cccf691c24f9cbc4aedd1b36c1d9ba173910ceca (diff) |
Merge bitcoin/bitcoin#25536: contrib: dedup `get_witness_script` helper in signet miner
cccf691c24f9cbc4aedd1b36c1d9ba173910ceca contrib: dedup `get_witness_script` helper in signet miner (Sebastian Falbesoner)
Pull request description:
The helper `get_witness_script` is already available in the `blocktools` module of our test framework, i.e. there is no need to re-implement it in the signet miner script. Note that the cast from CScript to bytes is necessary for applying the `+=` operator on the scriptPubKey later, which would fail for CScript:
```
File "/home/honeybadger/bitcoin/contrib/signet/miner", line 132, in signet_txs
txs[0].vout[-1].scriptPubKey += CScriptOp.encode_op_pushdata(SIGNET_HEADER)
File "/home/honeybadger/bitcoin/test/functional/test_framework/script.py", line 460, in __add__
raise NotImplementedError
NotImplementedError
```
ACKs for top commit:
kallewoof:
ACK cccf691c24f9cbc4aedd1b36c1d9ba173910ceca
Tree-SHA512: 5965a9f27626e3dd2769a0436263fb646e9d4b67071505122c017f7b0050250e83f524135e57093870b8c64894d64762a51d2c3c68d52dd1e545f23d4734fecb
-rwxr-xr-x | contrib/signet/miner | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/contrib/signet/miner b/contrib/signet/miner index b366b98e2d..61415cb2dd 100755 --- a/contrib/signet/miner +++ b/contrib/signet/miner @@ -21,8 +21,8 @@ PATH_BASE_CONTRIB_SIGNET = os.path.abspath(os.path.dirname(os.path.realpath(__fi PATH_BASE_TEST_FUNCTIONAL = os.path.abspath(os.path.join(PATH_BASE_CONTRIB_SIGNET, "..", "..", "test", "functional")) sys.path.insert(0, PATH_BASE_TEST_FUNCTIONAL) -from test_framework.blocktools import WITNESS_COMMITMENT_HEADER, script_BIP34_coinbase_height # noqa: E402 -from test_framework.messages import CBlock, CBlockHeader, COutPoint, CTransaction, CTxIn, CTxInWitness, CTxOut, from_hex, deser_string, hash256, ser_compact_size, ser_string, ser_uint256, tx_from_hex, uint256_from_str # noqa: E402 +from test_framework.blocktools import get_witness_script, script_BIP34_coinbase_height # noqa: E402 +from test_framework.messages import CBlock, CBlockHeader, COutPoint, CTransaction, CTxIn, CTxInWitness, CTxOut, from_hex, deser_string, ser_compact_size, ser_string, ser_uint256, tx_from_hex # noqa: E402 from test_framework.script import CScriptOp # noqa: E402 logging.basicConfig( @@ -123,10 +123,6 @@ def create_coinbase(height, value, spk): cb.vout = [CTxOut(value, spk)] return cb -def get_witness_script(witness_root, witness_nonce): - commitment = uint256_from_str(hash256(ser_uint256(witness_root) + ser_uint256(witness_nonce))) - return b"\x6a" + CScriptOp.encode_op_pushdata(WITNESS_COMMITMENT_HEADER + ser_uint256(commitment)) - def signet_txs(block, challenge): # assumes signet solution has not been added yet so does not need # to be removed @@ -222,7 +218,7 @@ def generate_psbt(tmpl, reward_spk, *, blocktime=None): cbwit = CTxInWitness() cbwit.scriptWitness.stack = [ser_uint256(witnonce)] block.vtx[0].wit.vtxinwit = [cbwit] - block.vtx[0].vout.append(CTxOut(0, get_witness_script(witroot, witnonce))) + block.vtx[0].vout.append(CTxOut(0, bytes(get_witness_script(witroot, witnonce)))) signme, spendme = signet_txs(block, signet_spk_bin) @@ -627,5 +623,3 @@ def main(): if __name__ == "__main__": main() - - |