mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
Fix compilation of raw transaction operations with peg-in inputs
This commit is contained in:
parent
953dd82eae
commit
feef196a20
2 changed files with 6 additions and 2 deletions
|
|
@ -2462,6 +2462,8 @@ UniValue rawblindrawtransaction(const JSONRPCRequest& request)
|
||||||
"Invalid parameter: one (potentially empty) input asset blind for each input must be provided");
|
"Invalid parameter: one (potentially empty) input asset blind for each input must be provided");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto& fedpegscripts = GetValidFedpegScripts(chainActive.Tip(), Params().GetConsensus(), true /* nextblock_validation */);
|
||||||
|
|
||||||
std::vector<CAmount> input_amounts;
|
std::vector<CAmount> input_amounts;
|
||||||
std::vector<uint256> input_blinds;
|
std::vector<uint256> input_blinds;
|
||||||
std::vector<uint256> input_asset_blinds;
|
std::vector<uint256> input_asset_blinds;
|
||||||
|
|
@ -2474,7 +2476,7 @@ UniValue rawblindrawtransaction(const JSONRPCRequest& request)
|
||||||
// Special handling for pegin inputs: no blinds and explicit amount/asset.
|
// Special handling for pegin inputs: no blinds and explicit amount/asset.
|
||||||
if (tx.vin[nIn].m_is_pegin) {
|
if (tx.vin[nIn].m_is_pegin) {
|
||||||
std::string err;
|
std::string err;
|
||||||
if (tx.witness.vtxinwit.size() != tx.vin.size() || !IsValidPeginWitness(tx.witness.vtxinwit[nIn].m_pegin_witness, tx.vin[nIn].prevout, err, false)) {
|
if (tx.witness.vtxinwit.size() != tx.vin.size() || !IsValidPeginWitness(tx.witness.vtxinwit[nIn].m_pegin_witness, fedpegscripts, tx.vin[nIn].prevout, err, false)) {
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Transaction contains invalid peg-in input: %s", err));
|
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Transaction contains invalid peg-in input: %s", err));
|
||||||
}
|
}
|
||||||
CTxOut pegin_output = GetPeginOutputFromWitness(tx.witness.vtxinwit[nIn].m_pegin_witness);
|
CTxOut pegin_output = GetPeginOutputFromWitness(tx.witness.vtxinwit[nIn].m_pegin_witness);
|
||||||
|
|
|
||||||
|
|
@ -5891,6 +5891,8 @@ UniValue blindrawtransaction(const JSONRPCRequest& request)
|
||||||
|
|
||||||
LOCK(pwallet->cs_wallet);
|
LOCK(pwallet->cs_wallet);
|
||||||
|
|
||||||
|
const auto& fedpegscripts = GetValidFedpegScripts(chainActive.Tip(), Params().GetConsensus(), true /* nextblock_validation */);
|
||||||
|
|
||||||
std::vector<uint256> input_blinds;
|
std::vector<uint256> input_blinds;
|
||||||
std::vector<uint256> input_asset_blinds;
|
std::vector<uint256> input_asset_blinds;
|
||||||
std::vector<CAsset> input_assets;
|
std::vector<CAsset> input_assets;
|
||||||
|
|
@ -5902,7 +5904,7 @@ UniValue blindrawtransaction(const JSONRPCRequest& request)
|
||||||
// Special handling for pegin inputs: no blinds and explicit amount/asset.
|
// Special handling for pegin inputs: no blinds and explicit amount/asset.
|
||||||
if (tx.vin[nIn].m_is_pegin) {
|
if (tx.vin[nIn].m_is_pegin) {
|
||||||
std::string err;
|
std::string err;
|
||||||
if (tx.witness.vtxinwit.size() != tx.vin.size() || !IsValidPeginWitness(tx.witness.vtxinwit[nIn].m_pegin_witness, prevout, err, false)) {
|
if (tx.witness.vtxinwit.size() != tx.vin.size() || !IsValidPeginWitness(tx.witness.vtxinwit[nIn].m_pegin_witness, fedpegscripts, prevout, err, false)) {
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Transaction contains invalid peg-in input: %s", err));
|
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Transaction contains invalid peg-in input: %s", err));
|
||||||
}
|
}
|
||||||
CTxOut pegin_output = GetPeginOutputFromWitness(tx.witness.vtxinwit[nIn].m_pegin_witness);
|
CTxOut pegin_output = GetPeginOutputFromWitness(tx.witness.vtxinwit[nIn].m_pegin_witness);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue