diff --git a/src/key_io.cpp b/src/key_io.cpp index 3e5fe78efb..21730ccc7d 100644 --- a/src/key_io.cpp +++ b/src/key_io.cpp @@ -10,16 +10,12 @@ #include #include -#include -#include - +#include #include #include -#include -namespace -{ -class DestinationEncoder : public boost::static_visitor +namespace { +class DestinationEncoder { private: const CChainParams& m_params; @@ -338,7 +334,7 @@ std::string EncodeExtKey(const CExtKey& key) std::string EncodeDestination(const CTxDestination& dest) { - return boost::apply_visitor(DestinationEncoder(Params(), false), dest); + return std::visit(DestinationEncoder(Params(), false), dest); } CTxDestination DecodeDestination(const std::string& str) @@ -361,7 +357,7 @@ bool IsValidDestinationString(const std::string& str) std::string EncodeParentDestination(const CTxDestination& dest) { - return boost::apply_visitor(DestinationEncoder(Params(), true), dest); + return std::visit(DestinationEncoder(Params(), true), dest); } CTxDestination DecodeParentDestination(const std::string& str) diff --git a/src/psbt.cpp b/src/psbt.cpp index 4b68a7ed2b..a1fed0b4c7 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -159,8 +159,8 @@ void PSBTInput::Merge(const PSBTInput& input) if (asset.IsNull() && !input.asset.IsNull()) asset = input.asset; if (asset_blinding_factor.IsNull() && !input.asset_blinding_factor.IsNull()) asset_blinding_factor = input.asset_blinding_factor; - if (peg_in_tx.which() == 0 && peg_in_tx.which() > 0) peg_in_tx = input.peg_in_tx; - if (txout_proof.which() == 0 && peg_in_tx.which() > 0) txout_proof = input.txout_proof; + if (peg_in_tx.index() == 0 && peg_in_tx.index() > 0) peg_in_tx = input.peg_in_tx; + if (txout_proof.index() == 0 && peg_in_tx.index() > 0) txout_proof = input.txout_proof; if (claim_script.empty() && !input.claim_script.empty()) claim_script = input.claim_script; if (genesis_hash.IsNull() && !input.genesis_hash.IsNull()) genesis_hash = input.genesis_hash; } @@ -346,16 +346,16 @@ bool FinalizeAndExtractPSBT(PartiallySignedTransaction& psbtx, CMutableTransacti result.witness.vtxinwit[i].scriptWitness = psbtx.inputs[i].final_script_witness; PSBTInput& input = psbtx.inputs[i]; - if (input.value && input.peg_in_tx.which() != 0 && input.txout_proof.which() != 0 && !input.claim_script.empty() && !input.genesis_hash.IsNull()) { + if (input.value && input.peg_in_tx.index() != 0 && input.txout_proof.index() != 0 && !input.claim_script.empty() && !input.genesis_hash.IsNull()) { CScriptWitness pegin_witness; if (Params().GetConsensus().ParentChainHasPow()) { - const Sidechain::Bitcoin::CTransactionRef& btc_peg_in_tx = boost::get(input.peg_in_tx); - const Sidechain::Bitcoin::CMerkleBlock& btc_txout_proof = boost::get(input.txout_proof); - pegin_witness = CreatePeginWitness(*input.value, input.asset, input.genesis_hash, input.claim_script, btc_peg_in_tx, btc_txout_proof); + const auto btc_peg_in_tx = std::get_if(&input.peg_in_tx); + const auto btc_txout_proof = std::get_if(&input.txout_proof); + pegin_witness = CreatePeginWitness(*input.value, input.asset, input.genesis_hash, input.claim_script, *btc_peg_in_tx, *btc_txout_proof); } else { - const CTransactionRef& elem_peg_in_tx = boost::get(input.peg_in_tx); - const CMerkleBlock& elem_txout_proof = boost::get(input.txout_proof); - pegin_witness = CreatePeginWitness(*input.value, input.asset, input.genesis_hash, input.claim_script, elem_peg_in_tx, elem_txout_proof); + const auto elem_peg_in_tx = std::get_if(&input.peg_in_tx); + const auto elem_txout_proof = std::get_if(&input.txout_proof); + pegin_witness = CreatePeginWitness(*input.value, input.asset, input.genesis_hash, input.claim_script, *elem_peg_in_tx, *elem_txout_proof); } result.vin[i].m_is_pegin = true; result.witness.vtxinwit[i].m_pegin_witness = pegin_witness; diff --git a/src/psbt.h b/src/psbt.h index 9fe765a6a7..251ae704ca 100644 --- a/src/psbt.h +++ b/src/psbt.h @@ -18,7 +18,7 @@ #include