At the moment, our CLI 'knows' that the call tape is made up of individual calls. That's knowledge that neither the CLI nor runner should have, because it's up to the guest to define the semantics of the calltape. The CLI and runner should treat it as opaque blobs.
Specifically that means, that the CLI should not unpack the calltape(s) as Rust-level Vec. Similarly, individual items (ie calls) on the call-tape should not require implementations of serde traits. Transaction bundling in the CLI needs an overhaul.
At the moment, our CLI 'knows' that the call tape is made up of individual calls. That's knowledge that neither the CLI nor runner should have, because it's up to the guest to define the semantics of the calltape. The CLI and runner should treat it as opaque blobs.
Specifically that means, that the CLI should not unpack the calltape(s) as Rust-level
Vec
. Similarly, individual items (ie calls) on the call-tape should not require implementations of serde traits. Transaction bundling in the CLI needs an overhaul.