Hola a todos 😀
En el pasado tutorial vimos lo básico del cliente de Stellar, ahora vamos a entrar un poco más en profundidad.
Temario:
- Creación de un contrato.
- Compilación del contrato.
- Despliegue.
- Ejecución del contrato.
🚨En este tutorial no vamos a entrar en los detalles del contrato como tal, únicamente en cómo se usa el cliente de Stellar.
En posteriores tutoriales, si se entrará al detalle de los contratos.
Creación de un contrato
Syntaxis:
stellar contract init "nombre_contrato"
stellar contract init hola_mundo
Estructura y archivos creados
Dentro de lib.rs está el contrato por defecto
#![no_std]
use soroban_sdk::{contract, contractimpl, vec, Env, String, Vec};
#[contract]
pub struct Contract;
#[contractimpl]
impl Contract {
pub fn hello(env: Env, to: String) -> Vec<String> {
vec![&env, String::from_str(&env, "Hello"), to]
}
}
mod test;
Compilación del contrato
Se ejecuta el siguiente comando:
stellar contract build
Podemos ver que se creo una carpeta llamada release, más internamente vemos que está creado el archivo hello_world.wasm
💡el nombre del archivos en web assembly es el que automáticamente se pone dentro del archivo Cargo.toml
Despliegue del contrato
Mac/linux
stellar contract deploy \
--wasm target/wasm32-unknown-unknown/release/hello_world.wasm \
--source developer \
--network testnet \
--alias hello_world
Windows
stellar contract deploy
--wasm target/wasm32-unknown-unknown/release/hello_world.wasm
--source developer
--network testnet
--alias hello_world
Felicidades, ya tienes el contratro deplegado en testnet 🥳
Interactuando con los contratos
Sintaxis
stellar contract invoke
--id "contrato"
--source "identidad"
--network testnet
--
"función"
--"parametro" "dato del parámetro"
Linux y MAC
stellar contract invoke \
--id CDCIWIAOWCDIORMZWV53VY5DVLOGB5PWG4ETSAEKKHX43RZVSPYUSLRS \
--source developer \
--network testnet \
-- \
hello \
--to Pascual
Windows
stellar contract invoke
--id CDCIWIAOWCDIORMZWV53VY5DVLOGB5PWG4ETSAEKKHX43RZVSPYUSLRS
--source developer
--network testnet
--
hello
--to Manolo
El resultado es:
Como has podido ver las interacciones básicas con el cliente de stellar son sumamente sencillas 🙂.
Más adelante entraremos en terrenos más interesantes, como es la sintaxis, tipos de datos, estructuras y control de flujo en Soroban. Que por fortuna como se maneja, son un conjunto de liberias en Rust. Entonces el enfasis está en Rust como tal, más algunas consideraciones propias de la cadena.
Hasta la próxima 🤓
Top comments (0)