script_type build_script_hash_script(const short_hash& script_hash) { script_type result; result.push_operation({opcode::hash160, data_chunk()}); result.push_operation({opcode::special, data_chunk(script_hash.begin(), script_hash.end())}); result.push_operation({opcode::equal, data_chunk()}); return result; }
bool unwrap(uint8_t& version, short_hash& hash, uint32_t& checksum, data_slice wrapped) { data_chunk payload; auto result = unwrap(version, payload, checksum, wrapped) && (payload.size() == hash.size()); if (result) std::copy_n(payload.begin(), hash.size(), hash.begin()); return result; }
script_type build_pubkey_hash_script(const short_hash& pubkey_hash) { script_type result; result.push_operation({opcode::dup, data_chunk()}); result.push_operation({opcode::hash160, data_chunk()}); result.push_operation({opcode::special, data_chunk(pubkey_hash.begin(), pubkey_hash.end())}); result.push_operation({opcode::equalverify, data_chunk()}); result.push_operation({opcode::checksig, data_chunk()}); return result; }