Ok, after reading & thinking a bit more. I’ve realized that I might have overdone it in the no-key-wallet lib from #27a.
I think the no-key-wallet lib is just supposed to sign the raw transaction and return the signature in the method response. This part does not require any inter-canister calls. I actually went ahead and also used the evm-utility library to encode the transaction along with the signature data. Hence, the inter-canister call. I can remove that part and just return the signature eliminating the async call.
Encoding/Decoding the transaction along with the signature information can be implemented in pure Motoko by @v1ctor as part of this bounty.
Sorry for the confusion Do let me know in case I am wrong.