Printing Console

When working with eosio smart contracts you can print to console with eosio::print();

You can access this with the following logic in your unit test to log console following an action, or when an error is caught to log it as well:

try {
    // ... other stuff
    const res = await deployedContract.action({
        params...
    }, {
      authorization: `${code}@active`,
      broadcast: true,
      sign: true
    });
    console.log(`console: ${res.processed.action_traces[0].console}`);
    done();
}
catch (e) {
    if(e && e.error && e.error.details && e.error.details[1]) {
        console.log(e.error.details[1].message);
    }
    done(e);
}

And in your contract:

[[eosio::action]] void action(
  params...
) {
  eosio::print("hello from eosio");
}

Last updated