MCPcopy Create free account
hub / github.com/ElementsProject/elements / VerifyBlindAssetProof

Function VerifyBlindAssetProof

src/blindpsbt.cpp:69–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67}
68
69bool VerifyBlindAssetProof(const uint256& asset, const std::vector<unsigned char>& proof, const CConfidentialAsset& conf_asset)
70{
71 if (conf_asset.vchCommitment.size() != CConfidentialAsset::nCommittedSize || proof.empty()) {
72 return false;
73 }
74 secp256k1_surjectionproof surj_proof;
75 if (secp256k1_surjectionproof_parse(secp256k1_blind_context, &surj_proof, proof.data(), proof.size()) == 0) {
76 return false;
77 }
78 secp256k1_generator blinded_asset_gen;
79 if (secp256k1_generator_parse(secp256k1_blind_context, &blinded_asset_gen, conf_asset.vchCommitment.data()) == 0) {
80 return false;
81 }
82 secp256k1_generator asset_gen;
83 if (secp256k1_generator_generate(secp256k1_blind_context, &asset_gen, asset.data()) == 0) {
84 return false;
85 }
86
87 return secp256k1_surjectionproof_verify(secp256k1_blind_context, &surj_proof, &asset_gen, 1, &blinded_asset_gen);
88}
89
90uint256 GenerateRangeproofECDHKey(CPubKey& ephemeral_pubkey, const CPubKey blinding_pubkey)
91{

Callers 2

VerifyBlindProofsFunction · 0.85
GetUnsignedTxMethod · 0.85

Calls 7

sizeMethod · 0.45
emptyMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected