Saltar al contenido principal

2. Desplegar en Testnet

Para recapitular lo que hemos hecho hasta ahora, en Configuración:

  • configuramos nuestro entorno local para escribir contratos inteligentes en Rust
  • instalamos el stellar-cli
  • configuramos el stellar-cli para comunicarse con el Stellar Testnet a través de RPC
  • y configuramos una identidad para firmar transacciones

En Hola Mundo creamos un proyecto hello-world, y aprendimos cómo probar y construir el contrato HelloWorld. Ahora estamos listos para desplegar ese contrato en Testnet, e interactuar con él.

Desplegar

Para desplegar tu contrato HelloWorld, ejecuta el siguiente comando:

stellar contract deploy \
--wasm target/wasm32-unknown-unknown/release/hello_world.wasm \
--source alice \
--network testnet

Esto devuelve el id del contrato, comenzando con una C. En este ejemplo, vamos a usar CACDYF3CYMJEJTIVFESQYZTN67GO2R5D5IUABTCUG3HXQSRXCSOROBAN, así que reemplázalo con tu id de contrato real.

Interactuar

Usando el código que escribimos en Escribir un Contrato y el archivo .wasm resultante que construimos en Construir, ejecuta el siguiente comando para invocar la función hello.

información

En el fondo, el CLI está haciendo llamadas RPC. Para información sobre eso consulta la página de referencia RPC.

stellar contract invoke \
--id CACDYF3CYMJEJTIVFESQYZTN67GO2R5D5IUABTCUG3HXQSRXCSOROBAN \
--source alice \
--network testnet \
-- \
hello \
--to RPC

La siguiente salida debería aparecer.

["Hello", "RPC"]
información

¡El doble guion -- es obligatorio!

Este es un patrón general de CLI usado por otros comandos como cargo run. Todo lo que aparece después del --, a veces llamado slop, se pasa a un proceso hijo. En este caso, stellar contract invoke construye un CLI implícito sobre la marcha para el método hello en tu contrato. Puede hacer esto porque el Soroban SDK incrusta los tipos de esquema / interfaz de tu contrato directamente en el archivo .wasm que se despliega en on-chain. También puedes probar:

stellar contract invoke ... -- --help

y

stellar contract invoke ... -- hello --help

Resumen

En esta lección, aprendimos a:

  • desplegar un contrato en Testnet
  • interactuar con un contrato desplegado

A continuación, añadiremos un nuevo contrato a este proyecto, y veremos cómo nuestro espacio de trabajo puede acomodar un proyecto de múltiples contratos. El nuevo contrato mostrará un poco de las capacidades de almacenamiento de Soroban.