cacti
cacti copied to clipboard
feat(satp-hermes): create logs in oracle operations
We want to introduce logging in the Oracle operations, similar to what we already have in the SATP operations. Each operation should include the following log entries:
- Log "init" before starting the operation.
- Log "exec" immediately before executing the operation.
- After the operation is executed:
- Log "done" if it was successful.
- Log "fail" if it failed.
This will help us maintain consistent and traceable execution across both modules.
Example in SATP lockAsset:
async lockAsset(session: SATPSession): Promise<void> {
this.dbLogger.storeProof({
sessionID: sessionData.id,
type: "lock-asset",
operation: "init",
data: safeStableStringify(sessionData),
sequenceNumber: Number(sessionData.lastSequenceNumber),
});
try {
this.Log.info(`exec-${stepTag}`);
this.dbLogger.storeProof({
sessionID: sessionData.id,
type: "lock-asset",
operation: "exec",
data: safeStableStringify(sessionData),
sequenceNumber: Number(sessionData.lastSequenceNumber),
});
...
const res = await bridge.lockAsset(token);
this.dbLogger.storeProof({
sessionID: sessionData.id,
type: "lock-asset",
operation: "done",
data: safeStableStringify(sessionData.lockAssertionClaim.proof),
sequenceNumber: Number(sessionData.lastSequenceNumber),
});
} catch (error) {
this.dbLogger.storeProof({
sessionID: sessionData.id,
type: "lock-asset",
operation: "fail",
data: safeStableStringify(sessionData),
sequenceNumber: Number(sessionData.lastSequenceNumber),
});
throw new FailedToProcessError(fnTag, "LockAsset", error);
}
Steps required:
- create dbLogger just like it is being created for SATP, but for the Oracle
- insert, in the Oracle Manager, logs before/after every operation
In review https://github.com/hyperledger-cacti/cacti/pull/4039