Override entry point
Sylvia
is still developing and lacks features like f.e. sudo
support.
If you need to use a lacking feature of CosmWasm
or prefer to define some custom
entry point, it is possible to use the #[sv::override_entry_point(...)]
attribute.
Example
To make sylvia
generate multitest helpers with sudo
support, you first need to define your
entry point
.
#[entry_point]
pub fn sudo(deps: DepsMut, _env: Env, _msg: SudoMsg) -> StdResult<Response> {
CounterContract::new().counter.save(deps.storage, &3)?;
Ok(Response::new())
}
You have to define the SudoMsg
yourself, as it is not yet supported.
#[cfg_attr(not(feature = "library"), entry_points)]
#[contract]
#[sv::override_entry_point(sudo=crate::entry_points::sudo(crate::messages::SudoMsg))]
#[sv::override_entry_point(exec=crate::entry_points::execute(crate::messages::CustomExecMsg))]
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, I will cover the interface
macro.