Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/btc 114 #2

Merged
merged 5 commits into from
Jan 6, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions build_msvc/bench_bitcoin/bench_bitcoin.vcxproj.in
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,6 @@
<ProjectReference Include="..\libleveldb\libleveldb.vcxproj">
<Project>{18430fef-6b61-4c53-b396-718e02850f1b}</Project>
</ProjectReference>
<ProjectReference Include="..\libtest_util\libtest_util.vcxproj">
<Project>{1e065f03-3566-47d0-8fa9-daa72b084e7d}</Project>
</ProjectReference>
</ItemGroup>
<Target Name="RawBenchHeaderGen" BeforeTargets="PrepareForBuild">
<PropertyGroup>
Expand Down
2 changes: 0 additions & 2 deletions build_msvc/bitcoin-qt/bitcoin-qt.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
</ClCompile>
<Link>
<AdditionalDependencies>$(QtReleaseLibraries);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/ignore:4206</AdditionalOptions>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
Expand All @@ -70,7 +69,6 @@
</ClCompile>
<Link>
<AdditionalDependencies>$(QtDebugLibraries);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions>/ignore:4206</AdditionalOptions>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\..\src;</AdditionalIncludeDirectories>
Expand Down
412 changes: 207 additions & 205 deletions build_msvc/bitcoin.sln

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions build_msvc/bitcoin_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@
*/
#define HAVE_DECL_DAEMON 0

/* Define to 1 if you have the declaration of `EVP_MD_CTX_new', and to 0 if
you don't. */
//#define HAVE_DECL_EVP_MD_CTX_NEW 1

/* Define to 1 if you have the declaration of `htobe16', and to 0 if you
don't. */
#define HAVE_DECL_HTOBE16 0
Expand Down
6 changes: 3 additions & 3 deletions build_msvc/common.init.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
<LinkIncremental>true</LinkIncremental>
<WholeProgramOptimization>false</WholeProgramOptimization>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
Expand All @@ -48,7 +48,7 @@
<LinkIncremental>false</LinkIncremental>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
Expand Down Expand Up @@ -107,7 +107,7 @@
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>4018;4221;4244;4267;4334;4715;4805;4834</DisableSpecificWarnings>
<DisableSpecificWarnings>4018;4221;4244;4267;4334;4715;4805;</DisableSpecificWarnings>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;..\..\third_party\include;..\..\src\vbk\test\util;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
Expand Down
2 changes: 1 addition & 1 deletion build_msvc/common.qt.init.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup Label="QtGlobals">
<QtBaseDir>C:\Qt5.9.8_x64_static_vs2019</QtBaseDir>
<QtBaseDir>C:\Qt5.9.7_ssl_x64_static_vs2017</QtBaseDir>
<QtPluginsLibraryDir>$(QtBaseDir)\plugins</QtPluginsLibraryDir>
<QtLibraryDir>$(QtBaseDir)\lib</QtLibraryDir>
<QtIncludeDir>$(QtBaseDir)\include</QtIncludeDir>
Expand Down
1 change: 0 additions & 1 deletion build_msvc/msvc-autogen.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
'libbitcoin_wallet',
'libbitcoin_zmq',
'bench_bitcoin',
'libtest_util',
]

ignore_list = [
Expand Down
17 changes: 10 additions & 7 deletions build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\common.init.vcxproj" />
<Import Project="..\common.qt.init.vcxproj" />
<PropertyGroup Label="Globals">
<ProjectGuid>{51201D5E-D939-4854-AE9D-008F03FF518E}</ProjectGuid>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemGroup>
<ClCompile Include="..\..\src\test\util\setup_common.cpp" />
<ClCompile Include="..\..\src\test\setup_common.cpp" />
<ClCompile Include="..\..\src\qt\test\addressbooktests.cpp" />
<ClCompile Include="..\..\src\qt\test\apptests.cpp" />
<ClCompile Include="..\..\src\qt\test\compattests.cpp" />
Expand Down Expand Up @@ -64,15 +66,12 @@
</ProjectReference>
</ItemGroup>

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\libbitcoin_qt\$(GeneratedFilesOutDir)\..\;$(QtIncludeDir)\QtTest;$(QtIncludes);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalDependencies>$(QtLibraryDir)\Qt5Test.lib;$(QtReleaseLibraries);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>$(QtReleaseLibaries);%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>

Expand All @@ -84,10 +83,12 @@
<AdditionalDependencies>$(QtDebugLibraries);%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>

<ItemGroup>
<MocTestFiles Include="..\..\src\qt\test\addressbooktests.h" />
<MocTestFiles Include="..\..\src\qt\test\apptests.h" />
<MocTestFiles Include="..\..\src\qt\test\compattests.h" />
<MocTestFiles Include="..\..\src\qt\test\paymentservertests.h" />
<MocTestFiles Include="..\..\src\qt\test\rpcnestedtests.h" />
<MocTestFiles Include="..\..\src\qt\test\uritests.h" />
<MocTestFiles Include="..\..\src\qt\test\wallettests.h" />
Expand All @@ -105,6 +106,8 @@
<RemoveDir Directories="$(GeneratedFilesOutDir)\moc\*" />
<RemoveDir Directories="$(GeneratedFilesOutDir)\moc" />
</Target>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<PropertyGroup>
<BuildDependsOn>
moccode;
Expand All @@ -117,4 +120,4 @@
$(CleanDependsOn);
</CleanDependsOn>
</PropertyGroup>
</Project>
</Project>
6 changes: 2 additions & 4 deletions build_msvc/test_bitcoin/test_bitcoin.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
<ClCompile Include="..\..\src\test\main.cpp" />
<ClCompile Include="..\..\src\test\util\*.cpp" />
<ClCompile Include="..\..\src\wallet\test\*_fixture.cpp" />
<ClCompile Include="..\..\src\wallet\test\*_tests.cpp" />
<ClCompile Include="..\..\src\wallet\test\*_tests.cpp" />
<ClCompile Include="..\..\src\vbk\test\unit\*_tests.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\libbitcoinconsensus\libbitcoinconsensus.vcxproj">
Expand All @@ -42,9 +43,6 @@
<ProjectReference Include="..\libbitcoin_zmq\libbitcoin_zmq.vcxproj">
<Project>{792d487f-f14c-49fc-a9de-3fc150f31c3f}</Project>
</ProjectReference>
<ProjectReference Include="..\libtest_util\libtest_util.vcxproj">
<Project>{1e065f03-3566-47d0-8fa9-daa72b084e7d}</Project>
</ProjectReference>
<ProjectReference Include="..\libunivalue\libunivalue.vcxproj">
<Project>{5724ba7d-a09a-4ba8-800b-c4c1561b3d69}</Project>
</ProjectReference>
Expand Down
40 changes: 20 additions & 20 deletions src/chainparams.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class CMainParams : public CChainParams {
consensus.CSVHeight = 1; // 000000000000000004a1b34462cb8aeebd5799177f7a29cf28f2d1961716b5b5
consensus.SegwitHeight = 1; // 0000000000000000001c8018d9cb3b742ef25114f27563e3fc4a1902167f9893
consensus.MinBIP9WarningHeight = consensus.SegwitHeight + consensus.nMinerConfirmationWindow;
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.powLimit = uint256S("0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
consensus.fPowAllowMinDifficultyBlocks = false;
Expand Down Expand Up @@ -69,19 +69,19 @@ class CMainParams : public CChainParams {
m_assumed_chain_state_size = 4;

// same as test
// CBlock(hash=0000000cc7ada94e458c41fdb841ee6a69b7fd572dcf216d551537c72c730d50, ver=0x00000001, hashPrevBlock=0000000000000000000000000000000000000000000000000000000000000000, hashMerkleRoot=a62cec259454a7e4496badb3c9abef8a53e2862d1f39f53048e402039be99e7c, nTime=1337, nBits=1d0fffff, nNonce=36282504, vtx=1)
// CTransaction(hash=e494ea0589, ver=1, vin.size=1, vout.size=1, nLockTime=0)
// CTxIn(COutPoint(0000000000, 4294967295), coinbase 04ffff0f1d01040956657269426c6f636b)
// CScriptWitness()
// CTxOut(nValue=50.00000000, scriptPubKey=41047c62bbf7f5aa4dd5c16bad99ac)
// CBlock(hash=00000006cf4c4e6177695242a1347023b7b1bdef8119237a11511b9e490bf8d9, ver=0x00000001, hashPrevBlock=0000000000000000000000000000000000000000000000000000000000000000, hashMerkleRoot=06c6c7131bc50a1fcab02107d0f24bcfe22c1808080074dcedf5fea412a0fe1c, nTime=1340, nBits=1d0fffff, nNonce=3768745, vtx=1)
// CTransaction(hash=e494ea0589, ver=1, vin.size=1, vout.size=1, nLockTime=0)
// CTxIn(COutPoint(0000000000, 4294967295), coinbase 04ffff0f1d01040956657269426c6f636b)
// CScriptWitness()
// CTxOut(nValue=50.00000000, scriptPubKey=41047c62bbf7f5aa4dd5c16bad99ac)
genesis = VeriBlock::CreateGenesisBlock(
1337, 1993285668, 0x1d00ffff, 1, 50 * COIN,
1340, 3768745, 0x1d0fffff, 1, 50 * COIN,
"047c62bbf7f5aa4dd5c16bad99ac621b857fac4e93de86e45f5ada73404eeb44dedcf377b03c14a24e9d51605d9dd2d8ddaef58760d9c4bb82d9c8f06d96e79488",
"VeriBlock"
);
consensus.hashGenesisBlock = genesis.GetHash();
assert(consensus.hashGenesisBlock == uint256S("0x00000000891169bc299da2f6360be150b1ab3855b7c3aefcb6aaff25ab3740bd"));
assert(genesis.hashMerkleRoot == uint256S("0x5cc5946e518c2a8d5e2bb77c92cb0079abca25f57c7c6f8ed6e2a951775fd6f5"));
assert(consensus.hashGenesisBlock == uint256S("00000006cf4c4e6177695242a1347023b7b1bdef8119237a11511b9e490bf8d9"));
assert(genesis.hashMerkleRoot == uint256S("06c6c7131bc50a1fcab02107d0f24bcfe22c1808080074dcedf5fea412a0fe1c"));

base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,0);
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,5);
Expand Down Expand Up @@ -154,19 +154,19 @@ class CTestNetParams : public CChainParams {
m_assumed_blockchain_size = 30;
m_assumed_chain_state_size = 2;

// CBlock(hash=0000000cc7ada94e458c41fdb841ee6a69b7fd572dcf216d551537c72c730d50, ver=0x00000001, hashPrevBlock=0000000000000000000000000000000000000000000000000000000000000000, hashMerkleRoot=a62cec259454a7e4496badb3c9abef8a53e2862d1f39f53048e402039be99e7c, nTime=1337, nBits=1d0fffff, nNonce=36282504, vtx=1)
// CTransaction(hash=e494ea0589, ver=1, vin.size=1, vout.size=1, nLockTime=0)
// CTxIn(COutPoint(0000000000, 4294967295), coinbase 04ffff0f1d01040956657269426c6f636b)
// CScriptWitness()
// CTxOut(nValue=50.00000000, scriptPubKey=41047c62bbf7f5aa4dd5c16bad99ac)
// CBlock(hash=00000006cf4c4e6177695242a1347023b7b1bdef8119237a11511b9e490bf8d9, ver=0x00000001, hashPrevBlock=0000000000000000000000000000000000000000000000000000000000000000, hashMerkleRoot=06c6c7131bc50a1fcab02107d0f24bcfe22c1808080074dcedf5fea412a0fe1c, nTime=1340, nBits=1d0fffff, nNonce=3768745, vtx=1)
// CTransaction(hash=e494ea0589, ver=1, vin.size=1, vout.size=1, nLockTime=0)
// CTxIn(COutPoint(0000000000, 4294967295), coinbase 04ffff0f1d01040956657269426c6f636b)
// CScriptWitness()
// CTxOut(nValue=50.00000000, scriptPubKey=41047c62bbf7f5aa4dd5c16bad99ac)
genesis = VeriBlock::CreateGenesisBlock(
1337, 36282504, 0x1d0fffff, 1, 50 * COIN,
1340, 3768745, 0x1d0fffff, 1, 50 * COIN,
"047c62bbf7f5aa4dd5c16bad99ac621b857fac4e93de86e45f5ada73404eeb44dedcf377b03c14a24e9d51605d9dd2d8ddaef58760d9c4bb82d9c8f06d96e79488",
"VeriBlock"
);
consensus.hashGenesisBlock = genesis.GetHash();
assert(consensus.hashGenesisBlock == uint256S("0x0000000cc7ada94e458c41fdb841ee6a69b7fd572dcf216d551537c72c730d50"));
assert(genesis.hashMerkleRoot == uint256S("0xa62cec259454a7e4496badb3c9abef8a53e2862d1f39f53048e402039be99e7c"));
assert(consensus.hashGenesisBlock == uint256S("00000006cf4c4e6177695242a1347023b7b1bdef8119237a11511b9e490bf8d9"));
assert(genesis.hashMerkleRoot == uint256S("06c6c7131bc50a1fcab02107d0f24bcfe22c1808080074dcedf5fea412a0fe1c"));

vFixedSeeds.clear();
vSeeds.clear();
Expand Down Expand Up @@ -246,13 +246,13 @@ class CRegTestParams : public CChainParams {
UpdateActivationParametersFromArgs(args);

genesis = VeriBlock::CreateGenesisBlock(
1337, 1, 0x207fffff, 1, 50 * COIN,
1337, 0, 0x207fffff, 1, 50 * COIN,
"047c62bbf7f5aa4dd5c16bad99ac621b857fac4e93de86e45f5ada73404eeb44dedcf377b03c14a24e9d51605d9dd2d8ddaef58760d9c4bb82d9c8f06d96e79488",
"VeriBlock"
);
consensus.hashGenesisBlock = genesis.GetHash();
assert(consensus.hashGenesisBlock == uint256S("088fe51fd7a94504cc9a8ab44e4c55b56c7e2ade88da19bc6404acbea24b59d4"));
assert(genesis.hashMerkleRoot == uint256S("0xfbcba106c9950d6ba2d63e8e24327981e32479d296de5c9c9531c9c7223a12af"));
assert(consensus.hashGenesisBlock == uint256S("55c49883fa107754db67455f30291935e4a4f6d8960b897098f027d5e62ce95c"));
assert(genesis.hashMerkleRoot == uint256S("41159e19a678894968919c2c4250302d277074de5fda813002e43fe502bf6bed"));

vFixedSeeds.clear(); //!< Regtest mode doesn't have any fixed seeds.
vSeeds.clear(); //!< Regtest mode doesn't have any DNS seeds.
Expand Down
10 changes: 10 additions & 0 deletions src/rpc/mining.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -724,6 +724,16 @@ static UniValue getblocktemplate(const JSONRPCRequest& request)
result.pushKV("keystone_hashes", keystoneArray);
result.pushKV("pop_witness_commitment", HexStr(popCoinbaseCommitment.scriptPubKey.begin(), popCoinbaseCommitment.scriptPubKey.end()));

UniValue popRewardsArray(UniValue::VARR);
VeriBlock::PoPRewards popRewards = VeriBlock::getService<VeriBlock::UtilService>().getPopRewards(*pindexPrev);
for (const auto& itr : popRewards) {
UniValue popRewardValue(UniValue::VOBJ);
popRewardValue.pushKV("payout_info", HexStr(itr.first.begin(), itr.first.end()));
popRewardValue.pushKV("amount", itr.second);
popRewardsArray.push_back(popRewardValue);
}
result.pushKV("pop_rewards", popRewardsArray);

return result;
}

Expand Down
5 changes: 3 additions & 2 deletions src/test/pow_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,14 @@ BOOST_AUTO_TEST_CASE(get_next_work)
/* Test the constraint on the upper bound for next work */
BOOST_AUTO_TEST_CASE(get_next_work_pow_limit, *boost::unit_test::disabled())
{
const auto chainParams = CreateChainParams(CBaseChainParams::MAIN);
Consensus::Params params = CreateChainParams(CBaseChainParams::MAIN)->GetConsensus();
params.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
int64_t nLastRetargetTime = 1231006505; // Block #0
CBlockIndex pindexLast;
pindexLast.nHeight = 2015;
pindexLast.nTime = 1233061996; // Block #2015
pindexLast.nBits = 0x1d00ffff;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1d00ffffU);
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, params), 0x1d00ffffU);
}

/* Test the constraint on the lower bound for actual time taken */
Expand Down
2 changes: 0 additions & 2 deletions src/test/util/setup_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ struct BasicVbkSetup {
*/
struct BasicTestingSetup: public BasicVbkSetup {
ECCVerifyHandle globalVerifyHandle;

explicit BasicTestingSetup(const std::string& chainName = CBaseChainParams::MAIN);
~BasicTestingSetup() override;
private:
Expand All @@ -98,7 +97,6 @@ struct TestingSetup : public BasicTestingSetup {
NodeContext m_node;
boost::thread_group threadGroup;
CScheduler scheduler;

explicit TestingSetup(const std::string& chainName = CBaseChainParams::MAIN);
~TestingSetup() override;
};
Expand Down
1 change: 1 addition & 0 deletions src/vbk/genesis.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ inline CBlock MineGenesisBlock(
if (genesis.nNonce > 4294967294LL) {
++genesis.nTime;
genesis.nNonce = 0;
printf("nonce reset... nTime=%d\n", genesis.nTime);
}
}

Expand Down
13 changes: 7 additions & 6 deletions src/vbk/merkle.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ inline int GetPopMerkleRootCommitmentIndex(const CBlock& block)
if (!block.vtx.empty()) {
for (size_t o = 0; o < block.vtx[0]->vout.size(); o++) {
auto& s = block.vtx[0]->vout[o].scriptPubKey;
if (s.size() >= 36 && s[0] == OP_RETURN && s[1] == 0x3a && s[2] == 0xe6 && s[3] == 0xca) {
if (s.size() >= 37 && s[0] == OP_RETURN && s[1] == 0x23 && s[2] == 0x3a && s[3] == 0xe6 && s[4] == 0xca) {
commitpos = o;
}
}
Expand Down Expand Up @@ -89,14 +89,15 @@ inline CTxOut addPopTransactionRootIntoCoinbaseCommitment(const CBlock& block)
{
CTxOut out;
out.nValue = 0;
out.scriptPubKey.resize(36);
out.scriptPubKey.resize(37);
out.scriptPubKey[0] = OP_RETURN;
out.scriptPubKey[1] = 0x3a;
out.scriptPubKey[2] = 0xe6;
out.scriptPubKey[3] = 0xca;
out.scriptPubKey[1] = 0x23;
out.scriptPubKey[2] = 0x3a;
out.scriptPubKey[3] = 0xe6;
out.scriptPubKey[4] = 0xca;

uint256 popMerkleRoot = BlockPopTxMerkleRoot(block);
memcpy(&out.scriptPubKey[4], popMerkleRoot.begin(), 32);
memcpy(&out.scriptPubKey[5], popMerkleRoot.begin(), 32);

return out;
}
Expand Down
2 changes: 1 addition & 1 deletion src/vbk/util_service/util_service_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ uint256 UtilServiceImpl::makeTopLevelRoot(int height, const KeystoneArray& keyst
{
ContextInfoContainer context(height, keystones, txRoot);
auto contextHash = context.getUnauthenticatedHash();
return Hash(contextHash.begin(), contextHash.end(), txRoot.begin(), txRoot.end());
return Hash(txRoot.begin(), txRoot.end(), contextHash.begin(), contextHash.end());
}

void UtilServiceImpl::addPopPayoutsIntoCoinbaseTx(CMutableTransaction& coinbaseTx, const CBlockIndex& pindexPrev)
Expand Down