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

Function simplicity_output_hash

src/simplicity/elements/elementsJets.c:1116–1133  ·  view source on GitHub ↗

output_hash : TWO^32 |- S TWO^256 */

Source from the content-addressed store, hash-verified

1114
1115/* output_hash : TWO^32 |- S TWO^256 */
1116bool simplicity_output_hash(frameItem* dst, frameItem src, const txEnv* env) {
1117 uint_fast32_t i = simplicity_read32(&src);
1118 if (writeBit(dst, i < env->tx->numOutputs)) {
1119 const sigOutput* output = &env->tx->output[i];
1120 sha256_midstate midstate;
1121 sha256_context ctx = sha256_init(midstate.s);
1122 simplicity_sha256_confAsset(&ctx, &output->asset);
1123 simplicity_sha256_confAmt(&ctx, &output->amt);
1124 simplicity_sha256_confNonce(&ctx, &output->nonce);
1125 sha256_hash(&ctx, &output->scriptPubKey);
1126 sha256_hash(&ctx, &output->rangeProofHash);
1127 sha256_finalize(&ctx);
1128 writeHash(dst, &midstate);
1129 } else {
1130 skipBits(dst, 256);
1131 }
1132 return true;
1133}
1134
1135/* input_outpoints_hash : ONE |- TWO^256 */
1136bool simplicity_input_outpoints_hash(frameItem* dst, frameItem src, const txEnv* env) {

Callers

nothing calls this directly

Calls 9

writeBitFunction · 0.85
sha256_initFunction · 0.85
sha256_hashFunction · 0.85
sha256_finalizeFunction · 0.85
skipBitsFunction · 0.85
writeHashFunction · 0.70

Tested by

no test coverage detected