mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-03 11:39:17 +01:00
Merge bitcoin/bitcoin#33819: mining: getCoinbase() returns struct instead of raw tx
48f57bb35bmining: add new getCoinbaseTx() returning a struct (Sjors Provoost)d59b4cdb57mining: rename getCoinbaseTx() to ..RawTx() (Sjors Provoost) Pull request description: The first commit renames `getCoinbaseTx()` to `getCoinbaseRawTx()` to reflect that it returns a serialised transaction. This does not impact IPC clients, because they do not use the function name. The second commit then introduces a replacement `getCoinbase()` that provides a struct with everything clients need to construct a coinbase. This avoids clients having to parse and manipulate our dummy transaction. Deprecate but don't remove `getCoinbaseRawTx()`, `getCoinbaseCommitment()` and `getWitnessCommitmentIndex()`. After this change we can drop these deprecated methods, which in turn would allow us to clear the dummy transaction from the `getBlock()` result. But that is left for a followup to keep this PR focussed. See https://github.com/Sjors/bitcoin/pull/106 for an approach. Expand the `interface_ipc.py` functional test to document its usage. Can be tested using: - https://github.com/stratum-mining/sv2-tp/pull/59 ACKs for top commit: ryanofsky: Code review ACK48f57bb35b. Just rebased and addressed comments and dropped coinbase tx "template" suffix, which is a nice change ismaelsadeeq: code review ACK48f57bb35bvasild: ACK48f57bb35bTree-SHA512: c4f1d752777fb3086a1a0b7b8b06e4205dbe2f3adb41f218855ad1dee952adccc263cf82acd3bf9300cc83c2c64cebd2b27f66a69beee32d325b9a85e3643b0d
This commit is contained in:
@@ -84,6 +84,7 @@ using interfaces::WalletLoader;
|
||||
using kernel::ChainstateRole;
|
||||
using node::BlockAssembler;
|
||||
using node::BlockWaitOptions;
|
||||
using node::CoinbaseTx;
|
||||
using util::Join;
|
||||
|
||||
namespace node {
|
||||
@@ -888,11 +889,16 @@ public:
|
||||
return m_block_template->vTxSigOpsCost;
|
||||
}
|
||||
|
||||
CTransactionRef getCoinbaseTx() override
|
||||
CTransactionRef getCoinbaseRawTx() override
|
||||
{
|
||||
return m_block_template->block.vtx[0];
|
||||
}
|
||||
|
||||
CoinbaseTx getCoinbaseTx() override
|
||||
{
|
||||
return m_block_template->m_coinbase_tx;
|
||||
}
|
||||
|
||||
std::vector<unsigned char> getCoinbaseCommitment() override
|
||||
{
|
||||
return m_block_template->vchCoinbaseCommitment;
|
||||
|
||||
Reference in New Issue
Block a user