Bitcoin Core  31.0.0
P2P Digital Currency
script.h
Go to the documentation of this file.
1 // Copyright (c) 2021-present The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_TEST_UTIL_SCRIPT_H
6 #define BITCOIN_TEST_UTIL_SCRIPT_H
7 
8 #include <crypto/sha256.h>
9 #include <script/script.h>
10 #include <script/verify_flags.h>
11 
12 static const std::vector<uint8_t> WITNESS_STACK_ELEM_OP_TRUE{uint8_t{OP_TRUE}};
13 static const CScript P2WSH_OP_TRUE{
14  CScript{}
15  << OP_0
16  << ToByteVector([] {
17  uint256 hash;
18  CSHA256().Write(WITNESS_STACK_ELEM_OP_TRUE.data(), WITNESS_STACK_ELEM_OP_TRUE.size()).Finalize(hash.begin());
19  return hash;
20  }())};
21 
22 static const std::vector<uint8_t> EMPTY{};
23 static const CScript P2WSH_EMPTY{
24  CScript{}
25  << OP_0
26  << ToByteVector([] {
27  uint256 hash;
28  CSHA256().Write(EMPTY.data(), EMPTY.size()).Finalize(hash.begin());
29  return hash;
30  }())};
31 static const std::vector<std::vector<uint8_t>> P2WSH_EMPTY_TRUE_STACK{{static_cast<uint8_t>(OP_TRUE)}, {}};
32 static const std::vector<std::vector<uint8_t>> P2WSH_EMPTY_TWO_STACK{{static_cast<uint8_t>(OP_2)}, {}};
33 
36 
37 #endif // BITCOIN_TEST_UTIL_SCRIPT_H
CSHA256 & Write(const unsigned char *data, size_t len)
Definition: sha256.cpp:699
static const CScript P2WSH_OP_TRUE
Definition: script.h:13
Definition: script.h:76
static const std::vector< std::vector< uint8_t > > P2WSH_EMPTY_TWO_STACK
Definition: script.h:32
constexpr unsigned char * begin()
Definition: uint256.h:100
Definition: script.h:84
static const std::vector< uint8_t > WITNESS_STACK_ELEM_OP_TRUE
Definition: script.h:12
bool IsValidFlagCombination(script_verify_flags flags)
Flags that are not forbidden by an assert in script validation.
Definition: script.cpp:8
int flags
Definition: bitcoin-tx.cpp:529
std::vector< unsigned char > ToByteVector(const T &in)
Definition: script.h:67
256-bit opaque blob.
Definition: uint256.h:195
static const CScript P2WSH_EMPTY
Definition: script.h:23
static const std::vector< std::vector< uint8_t > > P2WSH_EMPTY_TRUE_STACK
Definition: script.h:31
Serialized script, used inside transaction inputs and outputs.
Definition: script.h:404
Definition: script.h:85
static const std::vector< uint8_t > EMPTY
Definition: script.h:22
A hasher class for SHA-256.
Definition: sha256.h:13