Skip to content

Commit 506f57b

Browse files
committed
Add convenience method GetNonIssuanceBlindingData
1 parent 8c21d41 commit 506f57b

File tree

2 files changed

+14
-18
lines changed

2 files changed

+14
-18
lines changed

src/wallet/wallet.cpp

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5166,48 +5166,41 @@ void CWalletTx::GetBlindingData(const unsigned int map_index, const std::vector<
51665166
if (asset_out) *asset_out = asset_tag;
51675167
}
51685168

5169-
CAmount CWalletTx::GetOutputValueOut(unsigned int output_index) const {
5169+
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 {
51705170
assert(output_index < tx->vout.size());
51715171
const CTxOut& out = tx->vout[output_index];
51725172
const CTxWitness& wit = tx->witness;
5173+
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,
5174+
blinding_pubkey_out, value_out, value_factor_out, asset_out, asset_factor_out);
5175+
}
5176+
5177+
CAmount CWalletTx::GetOutputValueOut(unsigned int output_index) const {
51735178
CAmount ret;
5174-
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);
5179+
GetNonIssuanceBlindingData(output_index, nullptr, &ret, nullptr, nullptr, nullptr);
51755180
return ret;
51765181
}
51775182

51785183
uint256 CWalletTx::GetOutputAmountBlindingFactor(unsigned int output_index) const {
5179-
assert(output_index < tx->vout.size());
5180-
const CTxOut& out = tx->vout[output_index];
5181-
const CTxWitness& wit = tx->witness;
51825184
uint256 ret;
5183-
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);
5185+
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, &ret, nullptr, nullptr);
51845186
return ret;
51855187
}
51865188

51875189
uint256 CWalletTx::GetOutputAssetBlindingFactor(unsigned int output_index) const {
5188-
assert(output_index < tx->vout.size());
5189-
const CTxOut& out = tx->vout[output_index];
5190-
const CTxWitness& wit = tx->witness;
51915190
uint256 ret;
5192-
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);
5191+
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, nullptr, nullptr, &ret);
51935192
return ret;
51945193
}
51955194

51965195
CAsset CWalletTx::GetOutputAsset(unsigned int output_index) const {
5197-
assert(output_index < tx->vout.size());
5198-
const CTxOut& out = tx->vout[output_index];
5199-
const CTxWitness& wit = tx->witness;
52005196
CAsset ret;
5201-
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);
5197+
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, nullptr, &ret, nullptr);
52025198
return ret;
52035199
}
52045200

52055201
CPubKey CWalletTx::GetOutputBlindingPubKey(unsigned int output_index) const {
5206-
assert(output_index < tx->vout.size());
5207-
const CTxOut& out = tx->vout[output_index];
5208-
const CTxWitness& wit = tx->witness;
52095202
CPubKey ret;
5210-
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);
5203+
GetNonIssuanceBlindingData(output_index, &ret, nullptr, nullptr, nullptr, nullptr);
52115204
return ret;
52125205
}
52135206

src/wallet/wallet.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,9 @@ class CWalletTx : public CMerkleTx
525525
// Unneeded for issuance.
526526
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);
527527

528+
// Convenience method to retrieve all blinding data at once, for an ordinary non-issuance tx
529+
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;
530+
528531
//! Returns either the value out (if it is known) or -1
529532
CAmount GetOutputValueOut(unsigned int ouput_index) const;
530533

0 commit comments

Comments
 (0)