How to look at execution traces of smart contracts?

We are developing a property-based testing framework for smart contracts as our bachelor project.

In that regard, we would like to look at execution traces of smart contracts. How can we do that?


Sounds great! :slight_smile:

First you can look at the events emitted when a transaction is executed.

If you need to bother with the internals of the smart contract execution I would advise you to to look into this repository:

It is here the wasm interpreter, the state and ultimately the API (…that the node uses within transaction execution.) are defined.

Secondly you are probably also interested into how the node (i.e. the transaction scheduler) makes use of this when executing transactions. Here you should look at the Scheduler in the node repository: concordium-node/Scheduler.hs at df57535a84340662fe26c3644ffac1fc1867409a · Concordium/concordium-node · GitHub

Note. There are two different versions of smart contracts.
V0 which only supports async communication between contracts and then
V1 contracts which supports ‘sync-calls’ where the latter is part of the upcoming Sirius release.


1 Like