fix: expand validation of tx_extra for merge mining tag
This commit is contained in:
parent
53be5765e6
commit
446810a837
3 changed files with 21 additions and 7 deletions
|
@ -249,10 +249,11 @@ bool xmrig::BlockTemplate::parse(bool hashes)
|
|||
|
||||
switch (extra_tag) {
|
||||
case 0x01: // TX_EXTRA_TAG_PUBKEY
|
||||
{
|
||||
setOffset(TX_PUBKEY_OFFSET, offset(TX_EXTRA_OFFSET) + ar_extra.index());
|
||||
ar_extra.skip(kKeySize);
|
||||
break;
|
||||
|
||||
}
|
||||
case 0x02: // TX_EXTRA_NONCE
|
||||
{
|
||||
uint64_t size = 0;
|
||||
|
@ -261,7 +262,14 @@ bool xmrig::BlockTemplate::parse(bool hashes)
|
|||
ar_extra(m_txExtraNonce, size);
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x03: // TX_EXTRA_MERGE_MINING_TAG
|
||||
{
|
||||
uint64_t size = 0;
|
||||
ar_extra(size);
|
||||
setOffset(TX_EXTRA_MERGE_MINING_TAG_OFFSET, offset(TX_EXTRA_OFFSET) + ar_extra.index());
|
||||
ar_extra(m_txMergeMiningTag, size+kKeySize);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false; // TODO(SChernykh): handle other tags
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ public:
|
|||
TX_EXTRA_OFFSET,
|
||||
TX_PUBKEY_OFFSET,
|
||||
TX_EXTRA_NONCE_OFFSET,
|
||||
TX_EXTRA_MERGE_MINING_TAG_OFFSET,
|
||||
OFFSET_COUNT
|
||||
};
|
||||
|
||||
|
@ -86,6 +87,7 @@ public:
|
|||
inline uint64_t outputType() const { return m_outputType; }
|
||||
inline const Span &ephPublicKey() const { return m_ephPublicKey; }
|
||||
inline const Span &txExtraNonce() const { return m_txExtraNonce; }
|
||||
inline const Span &txMergeMiningTag() const { return m_txMergeMiningTag; }
|
||||
|
||||
// Transaction hashes
|
||||
inline uint64_t numHashes() const { return m_numHashes; }
|
||||
|
@ -140,7 +142,7 @@ private:
|
|||
Span m_ephPublicKey;
|
||||
uint64_t m_extraSize = 0;
|
||||
Span m_txExtraNonce;
|
||||
|
||||
Span m_txMergeMiningTag = 0;
|
||||
uint64_t m_numHashes = 0;
|
||||
Buffer m_hashes;
|
||||
Buffer m_minerTxMerkleTreeBranch;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue