mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
fac86ac7b3
-BEGIN VERIFY SCRIPT- s() { contrib/devtools/copyright_header.py insert "$1"; } s build_msvc/bitcoin_config.h s build_msvc/msvc-autogen.py s build_msvc/testconsensus/testconsensus.cpp s contrib/devtools/circular-dependencies.py s contrib/devtools/gen-manpages.sh s contrib/filter-lcov.py s contrib/gitian-build.py s contrib/install_db4.sh s src/crypto/sha256_avx2.cpp s src/crypto/sha256_sse41.cpp s src/fs.cpp s src/qt/test/addressbooktests.cpp s src/qt/test/addressbooktests.h s src/qt/test/util.cpp s src/qt/test/util.h s src/qt/test/wallettests.cpp s src/qt/test/wallettests.h s src/test/blockchain_tests.cpp s test/functional/combine_logs.py s test/lint/lint-locale-dependence.sh sed -i '1G' test/lint/lint-shebang.sh s test/lint/lint-shebang.sh -END VERIFY SCRIPT-
54 lines
1.8 KiB
C++
54 lines
1.8 KiB
C++
// Copyright (c) 2018 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include <iostream>
|
|
|
|
// bitcoin includes.
|
|
#include <..\src\script\bitcoinconsensus.h>
|
|
#include <..\src\primitives\transaction.h>
|
|
#include <..\src\script\script.h>
|
|
#include <..\src\streams.h>
|
|
#include <..\src\version.h>
|
|
|
|
CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CScriptWitness& scriptWitness, int nValue = 0)
|
|
{
|
|
CMutableTransaction txSpend;
|
|
txSpend.nVersion = 1;
|
|
txSpend.nLockTime = 0;
|
|
txSpend.vin.resize(1);
|
|
txSpend.vout.resize(1);
|
|
txSpend.vin[0].scriptWitness = scriptWitness;
|
|
txSpend.vin[0].prevout.hash = uint256();
|
|
txSpend.vin[0].prevout.n = 0;
|
|
txSpend.vin[0].scriptSig = scriptSig;
|
|
txSpend.vin[0].nSequence = CTxIn::SEQUENCE_FINAL;
|
|
txSpend.vout[0].scriptPubKey = CScript();
|
|
txSpend.vout[0].nValue = nValue;
|
|
|
|
return txSpend;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
std::cout << "bitcoinconsensus version: " << bitcoinconsensus_version() << std::endl;
|
|
|
|
CScript pubKeyScript;
|
|
pubKeyScript << OP_1 << OP_0 << OP_1;
|
|
|
|
int amount = 0; // 600000000;
|
|
|
|
CScript scriptSig;
|
|
CScriptWitness scriptWitness;
|
|
CTransaction vanillaSpendTx = BuildSpendingTransaction(scriptSig, scriptWitness, amount);
|
|
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
|
|
stream << vanillaSpendTx;
|
|
|
|
bitcoinconsensus_error err;
|
|
auto op0Result = bitcoinconsensus_verify_script_with_amount(pubKeyScript.data(), pubKeyScript.size(), amount, (const unsigned char*)&stream[0], stream.size(), 0, bitcoinconsensus_SCRIPT_FLAGS_VERIFY_ALL, &err);
|
|
std::cout << "Op0 result: " << op0Result << ", error code " << err << std::endl;
|
|
|
|
getchar();
|
|
|
|
return 0;
|
|
}
|