Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
test
fuzz
script_format.cpp
Go to the documentation of this file.
1
// Copyright (c) 2019-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
#include <chainparams.h>
6
#include <
consensus/consensus.h
>
7
#include <
core_io.h
>
8
#include <
policy/policy.h
>
9
#include <
script/script.h
>
10
#include <
test/fuzz/FuzzedDataProvider.h
>
11
#include <
test/fuzz/fuzz.h
>
12
#include <
test/fuzz/util.h
>
13
#include <
univalue.h
>
14
#include <
util/chaintype.h
>
15
16
void
initialize_script_format
()
17
{
18
SelectParams
(
ChainType::REGTEST
);
19
}
20
21
FUZZ_TARGET
(script_format, .
init
=
initialize_script_format
)
22
{
23
FuzzedDataProvider
fuzzed_data_provider(buffer.data(), buffer.size());
24
const
CScript
script
{
ConsumeScript
(fuzzed_data_provider)};
25
if
(
script
.size() >
MAX_STANDARD_TX_WEIGHT
/
WITNESS_SCALE_FACTOR
) {
26
return
;
27
}
28
29
(void)
FormatScript
(
script
);
30
(void)
ScriptToAsmStr
(
script
,
/*fAttemptSighashDecode=*/
fuzzed_data_provider.
ConsumeBool
());
31
32
UniValue
o1(
UniValue::VOBJ
);
33
auto
include_hex = fuzzed_data_provider.
ConsumeBool
();
34
auto
include_address = fuzzed_data_provider.
ConsumeBool
();
35
ScriptToUniv
(
script
,
/*out=*/
o1, include_hex, include_address);
36
}
FuzzedDataProvider.h
SelectParams
void SelectParams(const ChainType chain)
Sets the params returned by Params() to those for the given chain type.
Definition
chainparams.cpp:140
chaintype.h
ChainType::REGTEST
@ REGTEST
Definition
chaintype.h:15
CScript
Serialized script, used inside transaction inputs and outputs.
Definition
script.h:405
FuzzedDataProvider
Definition
FuzzedDataProvider.h:32
FuzzedDataProvider::ConsumeBool
bool ConsumeBool()
Definition
FuzzedDataProvider.h:289
UniValue
Definition
univalue.h:22
UniValue::VOBJ
@ VOBJ
Definition
univalue.h:24
consensus.h
WITNESS_SCALE_FACTOR
static const int WITNESS_SCALE_FACTOR
Definition
consensus.h:21
FormatScript
std::string FormatScript(const CScript &script)
Definition
core_io.cpp:298
ScriptToUniv
void ScriptToUniv(const CScript &script, UniValue &out, bool include_hex, bool include_address, const SigningProvider *provider)
Definition
core_io.cpp:409
ScriptToAsmStr
std::string ScriptToAsmStr(const CScript &script, const bool fAttemptSighashDecode)
Create the assembly string representation of a CScript object.
Definition
core_io.cpp:357
core_io.h
fuzz.h
FUZZ_TARGET
#define FUZZ_TARGET(...)
Definition
fuzz.h:35
init
Definition
bitcoin-gui.cpp:17
script
Definition
parsing.cpp:13
policy.h
MAX_STANDARD_TX_WEIGHT
static constexpr int32_t MAX_STANDARD_TX_WEIGHT
The maximum weight for transactions we're willing to relay/mine.
Definition
policy.h:37
script.h
initialize_script_format
void initialize_script_format()
Definition
script_format.cpp:16
ConsumeScript
CScript ConsumeScript(FuzzedDataProvider &fuzzed_data_provider, const bool maybe_p2wsh) noexcept
Definition
util.cpp:98
util.h
univalue.h
Generated on
for Bitcoin Core by
1.17.0