Skip to content

Commit 0fa20d0

Browse files
committed
CCustomParams: Move some defaults away from UpdateFromArgs
1 parent e9df511 commit 0fa20d0

File tree

1 file changed

+45
-20
lines changed

1 file changed

+45
-20
lines changed

src/chainparams.cpp

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,9 @@ void CRegTestParams::UpdateActivationParametersFromArgs(const ArgsManager& args)
735735
* Custom params for testing.
736736
*/
737737
class CCustomParams : public CRegTestParams {
738+
protected:
739+
std::string default_magic_str = "5319F20E";
740+
std::string default_signblockscript = "51";
738741
void UpdateFromArgs(const ArgsManager& args)
739742
{
740743
UpdateActivationParametersFromArgs(args);
@@ -757,7 +760,7 @@ class CCustomParams : public CRegTestParams {
757760
consensus.nMinimumChainWork = uint256S(args.GetArg("-con_nminimumchainwork", "0x0"));
758761
consensus.defaultAssumeValid = uint256S(args.GetArg("-con_defaultassumevalid", "0x00"));
759762
// TODO: Embed in genesis block in nTime field with new genesis block type
760-
consensus.dynamic_epoch_length = args.GetArg("-dynamic_epoch_length", 10);
763+
consensus.dynamic_epoch_length = args.GetArg("-dynamic_epoch_length", consensus.dynamic_epoch_length);
761764
// Default junk keys for testing
762765
consensus.first_extension_space = {ParseHex("02fcba7ecf41bc7e1be4ee122d9d22e3333671eb0a3a87b5cdf099d59874e1940f02fcba7ecf41bc7e1be4ee122d9d22e3333671eb0a3a87b5cdf099d59874e1940f")};
763766
std::vector<std::string> pak_list_str = args.GetArgs("-pak");
@@ -772,12 +775,16 @@ class CCustomParams : public CRegTestParams {
772775
fDefaultConsistencyChecks = args.GetBoolArg("-fdefaultconsistencychecks", fDefaultConsistencyChecks);
773776
m_is_test_chain = args.GetBoolArg("-fmineblocksondemand", m_is_test_chain);
774777

775-
bech32_hrp = args.GetArg("-bech32_hrp", "ert");
776-
blech32_hrp = args.GetArg("-blech32_hrp", "el");
777-
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-pubkeyprefix", 235));
778-
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-scriptprefix", 75));
779-
base58Prefixes[BLINDED_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-blindedprefix", 4));
780-
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1, args.GetArg("-secretprefix", 239));
778+
bech32_hrp = args.GetArg("-bech32_hrp", bech32_hrp);
779+
blech32_hrp = args.GetArg("-blech32_hrp", blech32_hrp);
780+
assert(base58Prefixes[PUBKEY_ADDRESS].size() == 1);
781+
assert(base58Prefixes[SCRIPT_ADDRESS].size() == 1);
782+
assert(base58Prefixes[BLINDED_ADDRESS].size() == 1);
783+
assert(base58Prefixes[SECRET_KEY].size() == 1);
784+
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-pubkeyprefix", base58Prefixes[PUBKEY_ADDRESS][0]));
785+
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-scriptprefix", base58Prefixes[SCRIPT_ADDRESS][0]));
786+
base58Prefixes[BLINDED_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-blindedprefix", base58Prefixes[BLINDED_ADDRESS][0]));
787+
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1, args.GetArg("-secretprefix", base58Prefixes[SECRET_KEY][0]));
781788
base58Prefixes[PARENT_PUBKEY_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-parentpubkeyprefix", 111));
782789
base58Prefixes[PARENT_SCRIPT_ADDRESS] = std::vector<unsigned char>(1, args.GetArg("-parentscriptprefix", 196));
783790
parent_bech32_hrp = args.GetArg("-parent_bech32_hrp", "bcrt");
@@ -792,7 +799,7 @@ class CCustomParams : public CRegTestParams {
792799
assert(IsHex(extprvprefix) && extprvprefix.size() == 8 && "-extprvkeyprefix must be hex string of length 8");
793800
base58Prefixes[EXT_SECRET_KEY] = ParseHex(extprvprefix);
794801

795-
const std::string magic_str = args.GetArg("-pchmessagestart", "5319F20E");
802+
const std::string magic_str = args.GetArg("-pchmessagestart", default_magic_str);
796803
assert(IsHex(magic_str) && magic_str.size() == 8 && "-pchmessagestart must be hex string of length 8");
797804
const std::vector<unsigned char> magic_byte = ParseHex(magic_str);
798805
std::copy(begin(magic_byte), end(magic_byte), pchMessageStart);
@@ -812,10 +819,9 @@ class CCustomParams : public CRegTestParams {
812819
consensus.genesis_style = args.GetArg("-con_genesis_style", "elements");
813820

814821
// Block signing encumberance script, default of 51 aka OP_TRUE
815-
std::vector<unsigned char> sign_bytes = ParseHex(args.GetArg("-signblockscript", "51"));
822+
std::vector<unsigned char> sign_bytes = ParseHex(args.GetArg("-signblockscript", default_signblockscript));
816823
consensus.signblockscript = CScript(sign_bytes.begin(), sign_bytes.end());
817-
// Default signature size is the size of dummy push, and single 72 byte DER signature
818-
consensus.max_block_signature_size = args.GetArg("-con_max_block_sig_size", 74);
824+
consensus.max_block_signature_size = args.GetArg("-con_max_block_sig_size", consensus.max_block_signature_size);
819825
g_signed_blocks = args.GetBoolArg("-con_signed_blocks", true);
820826

821827
// Note: These globals are needed to avoid circular dependencies.
@@ -834,19 +840,19 @@ class CCustomParams : public CRegTestParams {
834840
// Custom chains connect coinbase outputs to db by default
835841
consensus.connect_genesis_outputs = args.GetArg("-con_connect_genesis_outputs", true);
836842

837-
initialFreeCoins = args.GetArg("-initialfreecoins", 0);
843+
initialFreeCoins = args.GetArg("-initialfreecoins", initialFreeCoins);
838844

839-
anyonecanspend_aremine = args.GetBoolArg("-anyonecanspendaremine", true);
845+
anyonecanspend_aremine = args.GetBoolArg("-anyonecanspendaremine", anyonecanspend_aremine);
840846

841-
consensus.has_parent_chain = args.GetBoolArg("-con_has_parent_chain", true);
847+
consensus.has_parent_chain = args.GetBoolArg("-con_has_parent_chain", consensus.has_parent_chain);
842848

843849
enforce_pak = args.GetBoolArg("-enforce_pak", false);
844850

845851
// Allow multiple op_return outputs by relay policy
846852
multi_data_permitted = args.GetBoolArg("-multi_data_permitted", enforce_pak);
847853

848854
// bitcoin regtest is the parent chain by default
849-
parentGenesisBlockHash = uint256S(args.GetArg("-parentgenesisblockhash", "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"));
855+
parentGenesisBlockHash = uint256S(args.GetArg("-parentgenesisblockhash", parentGenesisBlockHash.GetHex()));
850856
// Either it has a parent chain or not
851857
const bool parent_genesis_is_null = parentGenesisBlockHash == uint256();
852858
assert(consensus.has_parent_chain != parent_genesis_is_null);
@@ -880,11 +886,6 @@ class CCustomParams : public CRegTestParams {
880886
consensus.subsidy_asset = CAsset(uint256S(args.GetArg("-subsidyasset", "0x00")));
881887
}
882888

883-
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].bit = 25;
884-
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
885-
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
886-
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].min_activation_height = 0; // No activation delay
887-
888889
UpdateElementsActivationParametersFromArgs(consensus, args);
889890
// END ELEMENTS fields
890891
}
@@ -914,6 +915,30 @@ class CCustomParams : public CRegTestParams {
914915
CCustomParams(const std::string& chain, const ArgsManager& args) : CRegTestParams(args)
915916
{
916917
strNetworkID = chain;
918+
919+
//default settings
920+
initialFreeCoins = 0;
921+
anyonecanspend_aremine = true;
922+
// Default signature size is the size of dummy push, and single 72 byte DER signature
923+
consensus.max_block_signature_size = 74;
924+
consensus.dynamic_epoch_length = 10;
925+
// bitcoin regtest is the parent chain by default
926+
consensus.has_parent_chain = true;
927+
parentGenesisBlockHash = uint256S("0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206");
928+
929+
bech32_hrp = "ert";
930+
blech32_hrp = "el";
931+
932+
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1, 235);
933+
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1, 75);
934+
base58Prefixes[BLINDED_ADDRESS] = std::vector<unsigned char>(1, 4);
935+
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1, 239);
936+
937+
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].bit = 25;
938+
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
939+
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
940+
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].min_activation_height = 0; // No activation delay
941+
917942
UpdateFromArgs(args);
918943
SetGenesisBlock();
919944
consensus.hashGenesisBlock = genesis.GetHash();

0 commit comments

Comments
 (0)