Skip to content
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
10 changes: 6 additions & 4 deletions src/chainparams.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -299,10 +299,10 @@ class SigNetParams : public CChainParams {
consensus.fPowNoRetargeting = false;
consensus.nRuleChangeActivationThreshold = 1916;
consensus.nMinerConfirmationWindow = 2016;
consensus.powLimit = uint256S("00002adc28000000000000000000000000000000000000000000000000000000");
consensus.powLimit = uint256S("00000377ae000000000000000000000000000000000000000000000000000000");
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1539478800;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008

// message start is defined as the first 4 bytes of the sha256d of the block script
CHashWriter h(SER_DISK, 0);
Expand All @@ -315,8 +315,10 @@ class SigNetParams : public CChainParams {
m_assumed_blockchain_size = 0;
m_assumed_chain_state_size = 0;

genesis = CreateGenesisBlock(1534313275, 100123, 0x1e2adc28, 1, 50 * COIN);
genesis = CreateGenesisBlock(1598918400, 52613770, 0x1e0377ae, 1, 50 * COIN);
consensus.hashGenesisBlock = genesis.GetHash();
assert(consensus.hashGenesisBlock == uint256S("0x00000008819873e925422c1ff0f99f7cc9bbb232af63a077a480a3633bee1ef6"));
assert(genesis.hashMerkleRoot == uint256S("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));

vFixedSeeds.clear();

Expand Down
12 changes: 6 additions & 6 deletions src/signet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,12 @@ SignetTxs SignetTxs::Create(const CBlock& block, const CScript& challenge)
// responses from block coinbase tx

// find and delete signet signature
if (block.vtx.empty()) return {tx_to_spend, tx_spending}; // no coinbase tx in block; invalid
if (block.vtx.empty()) return invalid(); // no coinbase tx in block; invalid
CMutableTransaction modified_cb(*block.vtx.at(0));

const int cidx = GetWitnessCommitmentIndex(block);
if (cidx == NO_WITNESS_COMMITMENT) {
return {tx_to_spend, tx_spending}; // require a witness commitment
return invalid(); // require a witness commitment
}

CScript& witness_commitment = modified_cb.vout.at(cidx).scriptPubKey;
Expand All @@ -100,10 +100,10 @@ SignetTxs SignetTxs::Create(const CBlock& block, const CScript& challenge)
try {
VectorReader v(SER_NETWORK, INIT_PROTO_VERSION, signet_solution, 0);
v >> tx_spending.vin[0].scriptSig;
if (!v.empty()) v >> tx_spending.vin[0].scriptWitness.stack;
if (!v.empty()) return {tx_to_spend, tx_spending}; // extraneous data encountered; invalid
v >> tx_spending.vin[0].scriptWitness.stack;
if (!v.empty()) return invalid(); // extraneous data encountered
} catch (const std::exception&) {
return {tx_to_spend, tx_spending}; // excepted; invalid
return invalid(); // parsing error
}
}
uint256 signet_merkle = ComputeModifiedMerkleRoot(modified_cb, block);
Expand All @@ -117,7 +117,7 @@ SignetTxs SignetTxs::Create(const CBlock& block, const CScript& challenge)
tx_to_spend.vin[0].scriptSig << block_data;
tx_spending.vin[0].prevout = COutPoint(tx_to_spend.GetHash(), 0);

return {tx_to_spend, tx_spending, true};
return {tx_to_spend, tx_spending};
}

// Signet block solution checker
Expand Down
5 changes: 4 additions & 1 deletion src/signet.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,11 @@ bool CheckSignetBlockSolution(const CBlock& block, const Consensus::Params& cons
*/
class SignetTxs {
private:
struct invalid {};
SignetTxs(invalid i) : m_to_spend(), m_to_sign(), m_valid(false) { }

template<class T1, class T2>
SignetTxs(const T1& to_spend, const T2& to_sign, bool valid = false) : m_to_spend{to_spend}, m_to_sign{to_sign}, m_valid(valid) { }
SignetTxs(const T1& to_spend, const T2& to_sign) : m_to_spend{to_spend}, m_to_sign{to_sign}, m_valid(true) { }

static SignetTxs Create(const CBlock& block, const CScript& challenge);

Expand Down
47 changes: 47 additions & 0 deletions src/test/pow_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,51 @@ BOOST_AUTO_TEST_CASE(GetBlockProofEquivalentTime_test)
}
}

void sanity_check_chainparams(std::string chainName)
{
const auto chainParams = CreateChainParams(chainName);
const auto consensus = chainParams->GetConsensus();

// hash genesis is correct
BOOST_CHECK_EQUAL(consensus.hashGenesisBlock, chainParams->GenesisBlock().GetHash());

// target timespan is an even multiple of spacing
BOOST_CHECK_EQUAL(consensus.nPowTargetTimespan % consensus.nPowTargetSpacing, 0);

// genesis nBits is positive, doesn't overflow and is lower than powLimit
arith_uint256 pow_compact;
bool neg, over;
pow_compact.SetCompact(chainParams->GenesisBlock().nBits, &neg, &over);
BOOST_CHECK(!neg && pow_compact != 0);
BOOST_CHECK(!over);
BOOST_CHECK(UintToArith256(consensus.powLimit) >= pow_compact);

// check max target * 4*nPowTargetTimespan doesn't overflow -- see pow.cpp:CalculateNextWorkRequired()
if (!consensus.fPowNoRetargeting) {
arith_uint256 targ_max("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
targ_max /= consensus.nPowTargetTimespan*4;
BOOST_CHECK(UintToArith256(consensus.powLimit) < targ_max);
}
}

BOOST_AUTO_TEST_CASE(ChainParams_MAIN_sanity)
{
sanity_check_chainparams(CBaseChainParams::MAIN);
}

BOOST_AUTO_TEST_CASE(ChainParams_REGTEST_sanity)
{
sanity_check_chainparams(CBaseChainParams::REGTEST);
}

BOOST_AUTO_TEST_CASE(ChainParams_TESTNET_sanity)
{
sanity_check_chainparams(CBaseChainParams::TESTNET);
}

BOOST_AUTO_TEST_CASE(ChainParams_SIGNET_sanity)
{
sanity_check_chainparams(CBaseChainParams::SIGNET);
}

BOOST_AUTO_TEST_SUITE_END()
20 changes: 10 additions & 10 deletions test/functional/feature_signet.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@
from test_framework.util import assert_equal

signet_blocks = [
'000000209d7961aee045f252e2653297ff04985bc9e70fea2a15b7c79eaf677f2d030000c18056977d14f38c21c844a9a5e0709a71c9479343149d8bc29d1d6eb9f3eca2c045315f28dc2a1ea5c4020001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025151feffffff0200f2052a01000000000000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa24900473044022006cc48d7c3f13ce39ceaa8b4a0bb90dc3912f303b909c79ff02ecbc80136cbce0220353a8353542812ae4ee84b669dcfb28f6417258122e8268b58903c3a25f28729010120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020bc632b80f00c410c9ba86f4b208c95ebe41531f737a39c668c9bab17b5180000a5b1ec07c41066c837ecb7fc15d648bef65e7b4ba87b6c9dde1a1a36937d734fc545315f28dc2a1e562a040001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025251feffffff0200f2052a01000000000000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa2490047304402201b9dedfb80346b66fd8962a0f874de88b578d7008cf9c38525c0ea823c3036ba022012d8eb97c5e66b406e7f510bac1480523ce90da0c8706ddd5481f349498da1b9010120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020fa337bb2bdf372bfdbab85b8d56325b3e566ab8c0c24ec03ce9641eeae250000d9cb0ae3e04f2f330b96dd6182fe3d6e0c02f468d8203085843825087ee69c3214bb315f28dc2a1e9b5e0a0001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025351feffffff0200f2052a01000000000000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa249004730440220415b7172231277ef85ec2516177f1316628c99c4c35e00f9c8b5de488c02463902205342dafbbf3922ffbbc46d692a5fa8b47afd977453aac530de14bc7424bda085010120000000000000000000000000000000000000000000000000000000000000000000000000',
'0000002016d90f09ec92b66e7233c796bd1ef64fc022b26be70b04b3614eba02b114000056da87b60f9517926611db57d785d91cc905089018ab976ef0a07e27cbe73ec5ceff315f28dc2a1e1450080001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025451feffffff0200f2052a01000000000000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa249004730440220378df0d77b449096b5b5475586ee1b2834044219b4bbff8080380701ed48b52602205d73312e4ce98360f1fc5c0951a7fb6b7fb26cc3d198afc960f025601f76e9f4010120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020771037dd773ff36da73d886c1b438e6d07c4d85c0a8d704bce82fb4c761c00006b7e50cb80afedc2ed4bf48ca27476f055aeac59f9ba6c6a30fc8b464b866c6e9000325f28dc2a1e82e4020001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025551feffffff0200f2052a01000000160014218756592118b9349807ce9fd91d2bdc254d79730000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa2490047304402203f254ee2a4958382f17920c5a7067f1fe4d5810c6ab9b02a2c3dc730caa46de802207d8cf6038e78f06337365ab76eababed0078f46375e3994e66f3bf08df48d830010120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020a6143c64d2d72db0740b78ae82a4b522125d0c1d431c2d636cb04789600a0000bb11dac7fd024ada923231bd0d17107facc4e2989cda9c0e8b4ff4cdfba414379600325f28dc2a1e492f120001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025651feffffff0200f2052a01000000160014218756592118b9349807ce9fd91d2bdc254d79730000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa249004730440220145e90993a216261a685263619056e1e7504ccbac0a6139e3cb68d4102266fa10220380054d093bf58a9afbdc0d5b321d7fc688823e85248bd37d9d8d8e49497a7ff010120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020eb7e4051e7bd10636d5e7380ca74771b284425bf69637d2c88e841d33e0500007768a8a6536a5d55b2125fd1fd80fbc1a5722728cf1668ffc2faaa9a83d5a6ee261a325f28dc2a1e8127000001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025751feffffff0200f2052a0100000047512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae0000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa2490047304402204109f2014dd4a9bcbdb43b14a67eb2dd11d55bc205b20cb73884d2d01af466400220209a14c5d38d0f36b080f0d3807917340e0db8fbaa327ce58a44aed5228112eb010120000000000000000000000000000000000000000000000000000000000000000000000000',
'000000204765c5525340783e50e5ab9a60ed45247c0a5376d113ab9027d04524dd260000bfae9d0edb60bcc8314458341a13d5f8d2def60b61abceaf1dda8a03ec7c71c92a1a325f28dc2a1e6d14000001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025851feffffff0200f2052a0100000047512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae0000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa249004730440220179ce76d5f2293a781348eec5ced16ca68d0e12dfda30f169ef8f78952e2242002207a1e848f16019376ada366f00e3d2b48d210bc9f2e2f73c2b82bbd2d170d608d010120000000000000000000000000000000000000000000000000000000000000000000000000',
'0000002090e20d551753314673ab7b35a4e79276b50b2742acb94d6898f68b8bcb160000cdcb82f191a03ac8d759e33adeaa806d840f1a5aab27d87d62528c834cc8f55d131b325f28dc2a1e791a010001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025951feffffff0200f2052a0100000047512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae0000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa24900473044022052c9fae3f5d4d3e608f71222f15ff6250d70c38877a929a6e3e790b941ca67c1022053f259179e007e184b7fbbd3f0f65b9563f932149f20c4aa772ad6c4343ce59d010120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020bbb57e867e82507e4643c6ecdd3c1c185745dbcbf6cd12c72736764ea52a000054f1ff647eef12aa3659d102fccbf9e09f9201bc5372c9e0f29b9e74bec44b29261b325f28dc2a1e9d97000001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025a51feffffff0200f2052a0100000047512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae0000000000000000766a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4eecc7daa24900473044022070264c40d291b035dc734d8faec72302b478869fa6a06e5cf42a3ef11da476b102207bc0817928969ba9aa036739061dfef9edf79ea0638e539e0fd2f30439c2df59010120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020f61eee3b63a380a477a063af32b2bbc97c9ff9f01f2c4225e973988108000000f575c83235984e7dc4afc1f30944c170462e84437ab6f2d52e16878a79e4678bd1914d5fae77031eccf4070001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025151feffffff0200f2052a010000001600149243f727dd5343293eb83174324019ec16c2630f0000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa2490047304402205e423a8754336ca99dbe16509b877ef1bf98d008836c725005b3c787c41ebe46022047246e4467ad7cc7f1ad98662afcaf14c115e0095a227c7b05c5182591c23e7e01000120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020533b53ded9bff4adc94101d32400a144c54edc5ed492a3b26c63b2d686000000b38fef50592017cfafbcab88eb3d9cf50b2c801711cad8299495d26df5e54812e7914d5fae77031ecfdd0b0001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025251feffffff0200f2052a01000000160014fd09839740f0e0b4fc6d5e2527e4022aa9b89dfa0000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa24900473044022031d64a1692cdad1fc0ced69838169fe19ae01be524d831b95fcf5ea4e6541c3c02204f9dea0801df8b4d0cd0857c62ab35c6c25cc47c930630dc7fe723531daa3e9b01000120000000000000000000000000000000000000000000000000000000000000000000000000',
'000000202960f3752f0bfa8858a3e333294aedc7808025e868c9dc03e71d88bb320000007765fcd3d5b4966beb338bba2675dc2cf2ad28d4ad1d83bdb6f286e7e27ac1f807924d5fae77031e81d60b0001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025351feffffff0200f2052a010000001600141e5fb426042692ae0e87c070e78c39307a5661c20000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa2490047304402205de93694763a42954865bcf1540cb82958bc62d0ec4eee02070fb7937cd037f4022067f333753bce47b10bc25eb6e1f311482e994c862a7e0b2d41ab1c8679fd1b1101000120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020b06443a13ae1d3d50faef5ecad38c6818194dc46abca3e972e2aacdae800000069a5829097e80fee00ac49a56ea9f82d741a6af84d32b3bc455cf31871e2a8ac27924d5fae77031e9c91050001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025451feffffff0200f2052a0100000016001430db2f8225dcf7751361ab38735de08190318cb70000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa2490047304402200936f5f9872f6df5dd242026ad52241a68423f7f682e79169a8d85a374eab9b802202cd2979c48b321b3453e65e8f92460db3fca93cbea8539b450c959f4fbe630c601000120000000000000000000000000000000000000000000000000000000000000000000000000',
'000000207ed403758a4f228a1939418a155e2ebd4ae6b26e5ffd0ae433123f7694010000542e80b609c5bc58af5bdf492e26d4f60cd43a3966c2e063c50444c29b3757a636924d5fae77031ee8601d0001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025551feffffff0200f2052a01000000160014edc207e014df34fa3885dff97d1129d356e1186a0000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa24900473044022021a3656609f85a66a2c5672ed9322c2158d57251040d2716ed202a1fe14f0c12022057d68bc6611f7a9424a7e00bbf3e27e6ae6b096f60bac624a094bc97a59aa1ff01000120000000000000000000000000000000000000000000000000000000000000000000000000',
'000000205bea0a88d1422c3df08d766ad72df95084d0700e6f873b75dd4e986c7703000002b57516d33ed60c2bdd9f93d6d5614083324c837e68e5ba6e04287a7285633585924d5fae77031ed171960001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025651feffffff0200f2052a010000001600143ae612599cf96f2442ce572633e0251116eaa52f0000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa24900473044022059a7c54de76bfdbb1dd44c78ea2dbd2bb4e97f4abad38965f41e76433e56423c022054bf17f04fe17415c0141f60eebd2b839200f574d8ad8d55a0917b92b0eb913401000120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020daf3b60d374b19476461f97540498dcfa2eb7016238ec6b1d022f82fb60100007a7ae65b53cb988c2ec92d2384996713821d5645ffe61c9acea60da75cd5edfa1a944d5fae77031e9dbb050001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025751feffffff0200f2052a01000000160014ef2dceae02e35f8137de76768ae3345d99ca68860000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa2490047304402202b3f946d6447f9bf17d00f3696cede7ee70b785495e5498274ee682a493befd5022045fc0bcf9332243168b5d35507175f9f374a8eba2336873885d12aada67ea5f601000120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020457cc5f3c2e1a5655bc20e20e48d33e1b7ea68786c614032b5c518f0b6000000541f36942d82c6e7248275ff15c8933487fbe1819c67a9ecc0f4b70bb7e6cf672a944d5fae77031e8f39860001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025851feffffff0200f2052a0100000016001472a27906947c06d034b38ba2fa13c6391a4832790000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa2490047304402202d62805ce60cbd60591f97f949b5ea5bd7e2307bcde343e6ea8394da92758e72022053a25370b0aa20da100189b7899a8f8675a0fdc60e38ece6b8a4f98edd94569e01000120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020a2eb61eb4f3831baa3a3363e1b42db4462663f756f07423e81ed30322102000077224de7dea0f8d0ec22b1d2e2e255f0a987b96fe7200e1a2e6373f48a2f5b7894954d5fae77031e36867e0001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025951feffffff0200f2052a01000000160014aa0ad9f26801258382e0734dceec03a4a75f60240000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa2490047304402206fa0d59990eed369bd7375767c9a6c9369fae209152b8674e520da270605528c0220749eed3b12dbe3f583f505d21803e4aef59c8e24c5831951eafa4f15a8f92c4e01000120000000000000000000000000000000000000000000000000000000000000000000000000',
'00000020a868e8514be5e46dabd6a122132f423f36a43b716a40c394e2a8d063e1010000f4c6c717e99d800c699c25a2006a75a0c5c09f432a936f385e6fce139cdbd1a5e9964d5fae77031e7d026e0001010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025a51feffffff0200f2052a01000000160014aaa671c82b138e3b8f510cd801e5f2bd0aa305940000000000000000776a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf94c4fecc7daa24900473044022042309f4c3c7a1a2ac8c24f890f962df1c0086cec10be0868087cfc427520cb2702201dafee8911c269b7e786e242045bb57cef3f5b0f177010c6159abae42f646cc501000120000000000000000000000000000000000000000000000000000000000000000000000000',
]

class SignetBasicTest(BitcoinTestFramework):
Expand Down