| 3965 | } |
| 3966 | |
| 3967 | CAmount CWalletTx::GetIssuanceAmount(const CWallet& wallet, unsigned int input_index, bool reissuance_token) const { |
| 3968 | assert(input_index < tx->vin.size()); |
| 3969 | CAsset asset; |
| 3970 | const CAssetIssuance& issuance = tx->vin[input_index].assetIssuance; |
| 3971 | const CTxWitness& wit = tx->witness; |
| 3972 | GetIssuanceAssets(input_index, reissuance_token ? nullptr : &asset, reissuance_token ? &asset : nullptr); |
| 3973 | if (asset.IsNull()) { |
| 3974 | return -1; |
| 3975 | } |
| 3976 | unsigned int mapValueInd = GetPseudoInputOffset(input_index, reissuance_token) + tx->vout.size(); |
| 3977 | const std::vector<unsigned char>& rangeproof = wit.vtxinwit.size() <= input_index ? std::vector<unsigned char>() : (reissuance_token ? wit.vtxinwit[input_index].vchInflationKeysRangeproof : wit.vtxinwit[input_index].vchIssuanceAmountRangeproof); |
| 3978 | |
| 3979 | CAmount ret; |
| 3980 | CScript blindingScript(CScript() << OP_RETURN << std::vector<unsigned char>(tx->vin[input_index].prevout.hash.begin(), tx->vin[input_index].prevout.hash.end()) << tx->vin[input_index].prevout.n); |
| 3981 | GetBlindingData(wallet, mapValueInd, rangeproof, reissuance_token ? issuance.nInflationKeys : issuance.nAmount, CConfidentialAsset(asset), CConfidentialNonce(), blindingScript, nullptr, &ret, nullptr, nullptr, nullptr); |
| 3982 | return ret; |
| 3983 | } |
| 3984 | |
| 3985 | void CWallet::ComputeBlindingData(const CConfidentialValue& conf_value, const CConfidentialAsset& conf_asset, const CConfidentialNonce& nonce, const CScript& scriptPubKey, const std::vector<unsigned char>& vchRangeproof, CAmount& value, CPubKey& blinding_pubkey, uint256& value_factor, CAsset& asset, uint256& asset_factor) const |
| 3986 | { |
no test coverage detected