Currently the Java interface exposes a lot of internal C structures to Java:
evmc_tx_context
inHostContext.getTxContext
evmc_message
andevmc_result
inHostContext.call
andEvmcVm.execute
Besides that none of the basic types are represented as objects, but as byte[]
, i.e. address, balance, storage key, storage value, etc.
It would make sense to create Java appropriates for
- the basic types
- transaction context, message, and result (and these make use of those basic types also).
Then there needs to be some translation in place which can serialise/deserialise these to the appropriate byte representation expected by the C interface.