Currently, when we make a far call, we are creating a new Context which instantiates a new InMemory storage. This may be problematic in the future if some far calls are reentrant (we would lose the state in the transient storage). We may instead change this implementation to clone the current transient storage when making a far call or sharing a mutable reference. Whichever implementation we chose, we will have to face rollback logic in state in case of far call revert.
Currently, when we make a far call, we are creating a new
Context
which instantiates a newInMemory
storage. This may be problematic in the future if some far calls are reentrant (we would lose the state in the transient storage). We may instead change this implementation to clone the current transient storage when making a far call or sharing a mutable reference. Whichever implementation we chose, we will have to face rollback logic in state in case of far call revert.