diff --git a/src/eth_plugin_handler.c b/src/eth_plugin_handler.c index 67cab66..da1cac9 100644 --- a/src/eth_plugin_handler.c +++ b/src/eth_plugin_handler.c @@ -146,6 +146,8 @@ eth_plugin_result_t eth_plugin_call(int method, void *parameter) { switch (method) { case ETH_PLUGIN_INIT_CONTRACT: + ((ethPluginInitContract_t *) parameter)->interfaceVersion = + ETH_PLUGIN_INTERFACE_VERSION_1; ((ethPluginInitContract_t *) parameter)->result = ETH_PLUGIN_RESULT_UNAVAILABLE; ((ethPluginInitContract_t *) parameter)->pluginSharedRW = &pluginRW; ((ethPluginInitContract_t *) parameter)->pluginSharedRO = &pluginRO; diff --git a/src/eth_plugin_interface.h b/src/eth_plugin_interface.h index 792d36f..524bc0f 100644 --- a/src/eth_plugin_interface.h +++ b/src/eth_plugin_interface.h @@ -9,6 +9,10 @@ #define PLUGIN_ID_LENGTH 30 +typedef enum { + ETH_PLUGIN_INTERFACE_VERSION_1 = 1 // Version 1 +} eth_plugin_interface_version_t; + typedef enum { ETH_PLUGIN_INIT_CONTRACT = 0x0101, @@ -61,8 +65,10 @@ typedef struct ethPluginSharedRO_t { // Init Contract typedef struct ethPluginInitContract_t { - // in + uint8_t interfaceVersion; + uint8_t result; + // in ethPluginSharedRW_t *pluginSharedRW; ethPluginSharedRO_t *pluginSharedRO; uint8_t *pluginContext; @@ -72,8 +78,6 @@ typedef struct ethPluginInitContract_t { char *alias; // 29 bytes alias if ETH_PLUGIN_RESULT_OK_ALIAS set - uint8_t result; - } ethPluginInitContract_t; // Provide parameter