Crear una instancia de un contrato CosmWasm
Esta sección describe el proceso de creación de instancias de un contrato inteligente, mostrando la estructura InstantiateMsg pasada durante la creación del contrato y la función Instantiate que se ejecuta tras la ejecución del contrato.
Explicación
InstanciarMsg
InstantiateMsg es el mensaje de inicialización y trata con el variables proporcionadas cuando se crea una instancia del contrato.
Esta función se puede encontrar en msg.rs.
/// Variables for contract instantiation.
/// Exclude variables susceptible to replay attacks or secret data.
pub struct InstantiateMsg {
pub sent_message: String,
}Crear una instancia
Al crear el contrato, la función de creación de instancias establece el estado inicial del contrato inteligente, realiza las comprobaciones necesarias y puede funcionar de forma similar a un mensaje de ejecución.
Esta función se puede encontrar en contract.rs
pub fn instantiate(
deps: DepsMut,
_env: Env,
_info: MessageInfo,
msg: InstantiateMsg,
) -> Result<Response, ContractError> {
// Initialize contract's state.
let state = State {
global_var: msg.sent_message,
};
// Save state to the blockchain.
STATE.save(deps.storage, &state)?;
Ok(Response::new().add_attribute("instantiated", "true"))
}Ejemplo
Para crear instancias de contratos con CosmWasm, puede crear los siguientes archivos: lib.rs contract.rs msg.rs error.rs state.rs helpers.rs
lib.rs
contract.rs
msg.rs
error.rs
state.rs
helpers.rs
Last updated