mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
Add convenience method GetNonIssuanceBlindingData
This commit is contained in:
parent
751c0771da
commit
059b90f0e6
2 changed files with 14 additions and 18 deletions
|
|
@ -5390,48 +5390,41 @@ void CWalletTx::GetBlindingData(const unsigned int map_index, const std::vector<
|
|||
if (asset_out) *asset_out = asset_tag;
|
||||
}
|
||||
|
||||
CAmount CWalletTx::GetOutputValueOut(unsigned int output_index) const {
|
||||
void CWalletTx::GetNonIssuanceBlindingData(const unsigned int output_index, CPubKey* blinding_pubkey_out, CAmount* value_out, uint256* value_factor_out, CAsset* asset_out, uint256* asset_factor_out) const {
|
||||
assert(output_index < tx->vout.size());
|
||||
const CTxOut& out = tx->vout[output_index];
|
||||
const CTxWitness& wit = tx->witness;
|
||||
GetBlindingData(output_index, wit.vtxoutwit.size() <= output_index ? std::vector<unsigned char>() : wit.vtxoutwit[output_index].vchRangeproof, out.nValue, out.nAsset, out.nNonce, out.scriptPubKey,
|
||||
blinding_pubkey_out, value_out, value_factor_out, asset_out, asset_factor_out);
|
||||
}
|
||||
|
||||
CAmount CWalletTx::GetOutputValueOut(unsigned int output_index) const {
|
||||
CAmount ret;
|
||||
GetBlindingData(output_index, wit.vtxoutwit.size() <= output_index ? std::vector<unsigned char>() : wit.vtxoutwit[output_index].vchRangeproof, out.nValue, out.nAsset, out.nNonce, out.scriptPubKey, nullptr, &ret, nullptr, nullptr, nullptr);
|
||||
GetNonIssuanceBlindingData(output_index, nullptr, &ret, nullptr, nullptr, nullptr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint256 CWalletTx::GetOutputAmountBlindingFactor(unsigned int output_index) const {
|
||||
assert(output_index < tx->vout.size());
|
||||
const CTxOut& out = tx->vout[output_index];
|
||||
const CTxWitness& wit = tx->witness;
|
||||
uint256 ret;
|
||||
GetBlindingData(output_index, wit.vtxoutwit.size() <= output_index ? std::vector<unsigned char>() : wit.vtxoutwit[output_index].vchRangeproof, out.nValue, out.nAsset, out.nNonce, out.scriptPubKey, nullptr, nullptr, &ret, nullptr, nullptr);
|
||||
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, &ret, nullptr, nullptr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint256 CWalletTx::GetOutputAssetBlindingFactor(unsigned int output_index) const {
|
||||
assert(output_index < tx->vout.size());
|
||||
const CTxOut& out = tx->vout[output_index];
|
||||
const CTxWitness& wit = tx->witness;
|
||||
uint256 ret;
|
||||
GetBlindingData(output_index, wit.vtxoutwit.size() <= output_index ? std::vector<unsigned char>() : wit.vtxoutwit[output_index].vchRangeproof, out.nValue, out.nAsset, out.nNonce, out.scriptPubKey, nullptr, nullptr, nullptr, nullptr, &ret);
|
||||
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, nullptr, nullptr, &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
CAsset CWalletTx::GetOutputAsset(unsigned int output_index) const {
|
||||
assert(output_index < tx->vout.size());
|
||||
const CTxOut& out = tx->vout[output_index];
|
||||
const CTxWitness& wit = tx->witness;
|
||||
CAsset ret;
|
||||
GetBlindingData(output_index, wit.vtxoutwit.size() <= output_index ? std::vector<unsigned char>() : wit.vtxoutwit[output_index].vchRangeproof, out.nValue, out.nAsset, out.nNonce, out.scriptPubKey, nullptr, nullptr, nullptr, &ret, nullptr);
|
||||
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, nullptr, &ret, nullptr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
CPubKey CWalletTx::GetOutputBlindingPubKey(unsigned int output_index) const {
|
||||
assert(output_index < tx->vout.size());
|
||||
const CTxOut& out = tx->vout[output_index];
|
||||
const CTxWitness& wit = tx->witness;
|
||||
CPubKey ret;
|
||||
GetBlindingData(output_index, wit.vtxoutwit.size() <= output_index ? std::vector<unsigned char>() : wit.vtxoutwit[output_index].vchRangeproof, out.nValue, out.nAsset, out.nNonce, out.scriptPubKey, &ret, nullptr, nullptr, nullptr, nullptr);
|
||||
GetNonIssuanceBlindingData(output_index, &ret, nullptr, nullptr, nullptr, nullptr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -573,6 +573,9 @@ public:
|
|||
// Unneeded for issuance.
|
||||
void SetBlindingData(const unsigned int output_index, const CPubKey& blinding_pubkey, const CAmount value, const uint256& value_factor, const CAsset& asset, const uint256& asset_factor);
|
||||
|
||||
// Convenience method to retrieve all blinding data at once, for an ordinary non-issuance tx
|
||||
void GetNonIssuanceBlindingData(const unsigned int output_index, CPubKey* blinding_pubkey_out, CAmount* value_out, uint256* value_factor_out, CAsset* asset_out, uint256* asset_factor_out) const;
|
||||
|
||||
//! Returns either the value out (if it is known) or -1
|
||||
CAmount GetOutputValueOut(unsigned int ouput_index) const;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue