Override entry point
It may happen that for any reason CosmWasm will start support some new
entry point that is not yet implemented in sylvia. There is a way to
add it manually using #[sv::override_entry_point(...)]
attribute.
This feature can be used to override already implemented entry points
like execute
and query
.
Example
To make sylvia generate multitest helpers with custom_entrypoint
support, you first need to define your
entry point
.
#[entry_point]
pub fn custom_entrypoint(deps: DepsMut, _env: Env, _msg: SudoMsg) -> StdResult<Response> {
CounterContract::new().counter.save(deps.storage, &3)?;
Ok(Response::new())
}
You have to define the CustomEntrypointMsg
yourself, as it is not yet supported.
#[cfg_attr(not(feature = "library"), entry_points)]
#[contract]
#[sv::override_entry_point(custom=crate::entry_points::custom_entrypoint(crate::messages::CustomEntrypointMsg))]
impl CounterContract {
}
For every entry point,
provide the path to the function in a separate attribute. You also have to
provide the type of your custom msg, as multitest helpers need to deserialize an array of bytes.
Next step
In the next chapter, we will learn about custom messages.