Skip to content

Commit f87684a

Browse files
committed
Add convenience method GetNonIssuanceBlindingData
1 parent 065401b commit f87684a

2 files changed

Lines changed: 14 additions & 18 deletions

File tree

src/wallet/wallet.cpp

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

5389-
CAmount CWalletTx::GetOutputValueOut(unsigned int output_index) const {
5389+
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 {
53905390
assert(output_index < tx->vout.size());
53915391
const CTxOut& out = tx->vout[output_index];
53925392
const CTxWitness& wit = tx->witness;
5393+
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,
5394+
blinding_pubkey_out, value_out, value_factor_out, asset_out, asset_factor_out);
5395+
}
5396+
5397+
CAmount CWalletTx::GetOutputValueOut(unsigned int output_index) const {
53935398
CAmount ret;
5394-
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);
5399+
GetNonIssuanceBlindingData(output_index, nullptr, &ret, nullptr, nullptr, nullptr);
53955400
return ret;
53965401
}
53975402

53985403
uint256 CWalletTx::GetOutputAmountBlindingFactor(unsigned int output_index) const {
5399-
assert(output_index < tx->vout.size());
5400-
const CTxOut& out = tx->vout[output_index];
5401-
const CTxWitness& wit = tx->witness;
54025404
uint256 ret;
5403-
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);
5405+
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, &ret, nullptr, nullptr);
54045406
return ret;
54055407
}
54065408

54075409
uint256 CWalletTx::GetOutputAssetBlindingFactor(unsigned int output_index) const {
5408-
assert(output_index < tx->vout.size());
5409-
const CTxOut& out = tx->vout[output_index];
5410-
const CTxWitness& wit = tx->witness;
54115410
uint256 ret;
5412-
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);
5411+
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, nullptr, nullptr, &ret);
54135412
return ret;
54145413
}
54155414

54165415
CAsset CWalletTx::GetOutputAsset(unsigned int output_index) const {
5417-
assert(output_index < tx->vout.size());
5418-
const CTxOut& out = tx->vout[output_index];
5419-
const CTxWitness& wit = tx->witness;
54205416
CAsset ret;
5421-
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);
5417+
GetNonIssuanceBlindingData(output_index, nullptr, nullptr, nullptr, &ret, nullptr);
54225418
return ret;
54235419
}
54245420

54255421
CPubKey CWalletTx::GetOutputBlindingPubKey(unsigned int output_index) const {
5426-
assert(output_index < tx->vout.size());
5427-
const CTxOut& out = tx->vout[output_index];
5428-
const CTxWitness& wit = tx->witness;
54295422
CPubKey ret;
5430-
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);
5423+
GetNonIssuanceBlindingData(output_index, &ret, nullptr, nullptr, nullptr, nullptr);
54315424
return ret;
54325425
}
54335426

src/wallet/wallet.h

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

576+
// Convenience method to retrieve all blinding data at once, for an ordinary non-issuance tx
577+
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;
578+
576579
//! Returns either the value out (if it is known) or -1
577580
CAmount GetOutputValueOut(unsigned int ouput_index) const;
578581

0 commit comments

Comments
 (0)