mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-20 13:37:28 +02:00
Merge 0eb2ea5cbe into merged_master (Elements PR #1425)
This commit is contained in:
commit
82f8b9e1ff
4 changed files with 15 additions and 9 deletions
|
|
@ -2644,7 +2644,7 @@ void PrecomputedTransactionData::Init(const T& txTo, std::vector<CTxOut>&& spent
|
|||
simplicityRawTx.version = txTo.nVersion;
|
||||
simplicityRawTx.lockTime = txTo.nLockTime;
|
||||
|
||||
m_simplicity_tx_data = simplicity_elements_mallocTransaction(&simplicityRawTx);
|
||||
m_simplicity_tx_data = SimplicityTransactionUniquePtr(simplicity_elements_mallocTransaction(&simplicityRawTx));
|
||||
|
||||
m_bip341_taproot_ready = true;
|
||||
}
|
||||
|
|
@ -3096,7 +3096,7 @@ bool GenericTransactionSignatureChecker<T>::CheckSimplicity(const valtype& progr
|
|||
|
||||
assert(txdata->m_simplicity_tx_data);
|
||||
assert(simplicityTapEnv);
|
||||
if (!simplicity_elements_execSimplicity(&error, nullptr, txdata->m_simplicity_tx_data, nIn, simplicityTapEnv, txdata->m_hash_genesis_block.data(), budget, nullptr, program.data(), program.size(), witness.data(), witness.size())) {
|
||||
if (!simplicity_elements_execSimplicity(&error, 0, txdata->m_simplicity_tx_data.get(), nIn, simplicityTapEnv, txdata->m_hash_genesis_block.data(), budget, 0, program.data(), program.size(), witness.data(), witness.size())) {
|
||||
assert(!"simplicity_elements_execSimplicity internal error");
|
||||
}
|
||||
simplicity_elements_freeTapEnv(simplicityTapEnv);
|
||||
|
|
|
|||
|
|
@ -169,9 +169,18 @@ enum : uint32_t {
|
|||
|
||||
bool CheckSignatureEncoding(const std::vector<unsigned char> &vchSig, unsigned int flags, ScriptError* serror);
|
||||
|
||||
struct SimplicityTransactionDeleter
|
||||
{
|
||||
void operator()(transaction* ptr)
|
||||
{
|
||||
simplicity_elements_freeTransaction(ptr);
|
||||
}
|
||||
};
|
||||
using SimplicityTransactionUniquePtr = std::unique_ptr<transaction, SimplicityTransactionDeleter>;
|
||||
|
||||
struct PrecomputedTransactionData
|
||||
{
|
||||
transaction* m_simplicity_tx_data = nullptr;
|
||||
SimplicityTransactionUniquePtr m_simplicity_tx_data;
|
||||
// BIP341 precomputed data.
|
||||
// These are single-SHA256, see https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#cite_note-16.
|
||||
uint256 m_prevouts_single_hash;
|
||||
|
|
@ -221,9 +230,6 @@ struct PrecomputedTransactionData
|
|||
|
||||
template <class T>
|
||||
explicit PrecomputedTransactionData(const T& tx);
|
||||
~PrecomputedTransactionData() {
|
||||
simplicity_elements_freeTransaction(m_simplicity_tx_data);
|
||||
}
|
||||
};
|
||||
|
||||
enum class SigVersion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue