Simple state

El estado es donde el contrato inteligente guarda y recupera datos. En cierto sentido, el estado del contrato inteligente funciona de manera similar a una capa de interacción de base de datos en una aplicación tradicional.

El método más simple de representar el estado implica almacenar un solo elemento. Por ejemplo, en el contrato cw20, TokenInfo se registra durante la inicialización del contrato.

Primero, se declara un tipo TokenInfo en state.rs:

#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub struct TokenInfo {
  pub name: String,
  pub symbol: String,
  pub decimals: u8,
  pub total_supply: Uint128,
  pub mint: Option<MinterData>,
}

Luego se inicializa el almacenamiento:

pub const TOKEN_INFO: Item<TokenInfo> = Item::new("token_info");

En el contrato, vemos en la función de creación de instancias cómo se pueden guardar datos en esto:

let data = TokenInfo {
  name: msg.name,
  symbol: msg.symbol,
  decimals: msg.decimals,
  total_supply,
  mint,
};
TOKEN_INFO.save(deps.storage, & data) ?;

Puede obtener el contrato base cw20 eligiéndolo como plantilla inicial al configurar el proyecto a través de la CLI de Archway.

Last updated