22 namespace js = json_spirit;
78 {{
c_sealEngine, {{js::str_type}, JsonFieldPresence::Required}},
79 {
c_params, {{js::obj_type}, JsonFieldPresence::Required}},
80 {
c_genesis, {{js::obj_type}, JsonFieldPresence::Required}},
81 {
c_accounts, {{js::obj_type}, JsonFieldPresence::Required}}});
84 {{
c_author, {{js::str_type}, JsonFieldPresence::Required}},
85 {
c_nonce, {{js::str_type}, JsonFieldPresence::Required}},
86 {
c_gasLimit, {{js::str_type}, JsonFieldPresence::Required}},
87 {
c_timestamp, {{js::str_type}, JsonFieldPresence::Required}},
88 {
c_difficulty, {{js::str_type}, JsonFieldPresence::Required}},
89 {
c_extraData, {{js::str_type}, JsonFieldPresence::Required}},
90 {
c_mixHash, {{js::str_type}, JsonFieldPresence::Required}},
91 {
c_parentHash, {{js::str_type}, JsonFieldPresence::Optional}}});
93 js::mObject
const& accounts = _obj.at(
c_accounts).get_obj();
94 for (
auto const& acc : accounts)
102 {{
c_storage, {{js::obj_type}, JsonFieldPresence::Optional}},
103 {
c_balance, {{js::str_type}, JsonFieldPresence::Optional}},
104 {
c_nonce, {{js::str_type}, JsonFieldPresence::Optional}},
105 {
c_code, {{js::str_type}, JsonFieldPresence::Optional}},
106 {
c_precompiled, {{js::obj_type}, JsonFieldPresence::Optional}},
108 {
c_wei, {{js::str_type}, JsonFieldPresence::Optional}}});
117 {{
c_precompiled, {{js::obj_type}, JsonFieldPresence::Required}},
118 {
c_wei, {{js::str_type}, JsonFieldPresence::Optional}},
119 {
c_balance, {{js::str_type}, JsonFieldPresence::Optional}}});
125 {{
c_code, {{js::str_type}, JsonFieldPresence::Optional}},
126 {
c_nonce, {{js::str_type}, JsonFieldPresence::Optional}},
127 {
c_storage, {{js::obj_type}, JsonFieldPresence::Optional}},
128 {
c_balance, {{js::str_type}, JsonFieldPresence::Optional}},
129 {
c_wei, {{js::str_type}, JsonFieldPresence::Optional}},
130 {
c_codeFromFile, {{js::str_type}, JsonFieldPresence::Optional}}});
136 "Error in validateAccountObj: At least one field must be set (code, nonce, " 137 "storage, balance, wei, codeFromFile)!";
145 "Error in validateAccountObj: field 'code' contradicts field 'codeFromFile'!";
153 string comment =
"Error in validateAccountObj: field 'balance' contradicts field 'wei'!";
string const c_accountStartNonce
string const c_byzantiumForkBlock
string const c_codeFromFile
A file containg a code as bytes.
string const c_daoHardforkBlock
string const c_gasLimitBoundDivisor
string const c_difficultyBoundDivisor
string const c_precompiled
string const c_maximumExtraDataSize
string const c_shouldnotexist
string const c_EIP150ForkBlock
string const c_maxGasLimit
string const c_difficulty
string const c_experimentalForkBlock
string const c_tieBreakingGas
string const c_minimumDifficulty
string const c_EIP158ForkBlock
string const c_sealEngine
string const c_parentHash
string const c_homesteadForkBlock
void validateConfigJson(js::mObject const &_obj)
boost::error_info< struct tag_comment, std::string > errinfo_comment
void validateAccountObj(js::mObject const &_obj)
string const c_blockReward
void requireJsonFields(json_spirit::mObject const &_o, std::string const &_configName, std::map< std::string, JsonFieldOptions > const &_validationMap)
string const c_eWASMForkBlock
string const c_allowFutureBlocks
string const c_durationLimit
string const c_minGasLimit
string const c_constantinopleForkBlock
void validateAccountMaskObj(js::mObject const &_obj)