Introduced fallback contract execution (#388)

This commit is contained in:
Chalith Desaman
2023-11-08 10:24:15 +05:30
committed by GitHub
parent bfc38a3c70
commit c3bacabff6
25 changed files with 377 additions and 126 deletions

View File

@@ -952,10 +952,14 @@ namespace conf
jdoc.insert_or_assign("max_input_ledger_offset", contract.max_input_ledger_offset);
jsoncons::ojson consensus;
jsoncons::ojson fallback;
fallback.insert_or_assign("execute", contract.consensus.fallback.execute);
consensus.insert_or_assign("mode", contract.consensus.mode == MODE::PUBLIC ? MODE_PUBLIC : MODE_PRIVATE);
consensus.insert_or_assign("roundtime", contract.consensus.roundtime.load());
consensus.insert_or_assign("stage_slice", contract.consensus.stage_slice.load());
consensus.insert_or_assign("threshold", contract.consensus.threshold);
consensus.insert_or_assign("fallback", fallback);
jdoc.insert_or_assign("consensus", consensus);
jsoncons::ojson npl;
@@ -1095,6 +1099,9 @@ namespace conf
}
contract.consensus.mode = jdoc["consensus"]["mode"].as<std::string>() == MODE_PUBLIC ? MODE::PUBLIC : MODE::PRIVATE;
jpath = "contract.consensus.fallback";
contract.consensus.fallback.execute = jdoc["consensus"]["fallback"]["execute"].as<bool>();
jpath = "contract.npl";
if (jdoc["npl"]["mode"].as<std::string>() != MODE_PUBLIC && jdoc["npl"]["mode"].as<std::string>() != MODE_PRIVATE)
{