Compare commits

...

1 Commits

Author SHA1 Message Date
Richard Holland
bd4cb12aa5 fix hook emission ordering 2024-01-24 15:22:00 +00:00
2 changed files with 14 additions and 2 deletions

View File

@@ -1857,7 +1857,8 @@ hook::finalizeHookResult(
uint16_t exec_index = avi.nextHookExecutionIndex();
// apply emitted transactions to the ledger (by adding them to the emitted
// directory) if we are allowed to
std::map<uint256 /* txnid */, uint256 /* emit nonce */> emission_txnid;
std::vector<std::pair<uint256 /* txnid */, uint256 /* emit nonce */>>
emission_txnid;
if (doEmit)
{
@@ -1882,7 +1883,7 @@ hook::finalizeHookResult(
.getField(sfEmitDetails)
.downcast<STObject>();
emission_txnid.emplace(
emission_txnid.emplace_back(
id, emitDetails.getFieldH256(sfEmitNonce));
sleEmitted = std::make_shared<SLE>(emittedId);

View File

@@ -386,6 +386,17 @@ LedgerHistory::handleMismatch(
JLOG(j_.error()) << "built\n" << getJson({*builtLedger, {}});
JLOG(j_.error()) << "valid\n" << getJson({*validLedger, {}});
{
auto b = builtTx.begin();
auto v = validTx.begin();
while (b != builtTx.end() && v != validTx.end())
{
log_one(*builtLedger, (*b)->key(), "validInfo", j_);
log_one(*validLedger, (*v)->key(), "builtInfo", j_);
++b;
++v;
}
}
// Log all differences between built and valid ledgers
auto b = builtTx.begin();
auto v = validTx.begin();