Saltar al contenido principal

Cuadernos Jupyter

Los Jupyter Notebooks son un formato de documento que puede incluir código, texto y otros resultados enriquecidos. Y con la configuración adecuada admiten contratos Soroban Rust.

Para utilizar contratos Soroban en un Jupyter Notebook, se requiere la siguiente configuración. La siguiente configuración utiliza Visual Studio Code, pero se puede usar cualquier cliente y servidor Jupyter.

advertencia

El soporte de Rust en Jupyter Notebooks es experimental. Puedes encontrar errores o comportamientos inesperados.

Comenzar

  1. Instala Visual Studio Code (VSCode)

  2. Instala la extensión Jupyter Notebook en VSCode

  3. Instala el núcleo Jupyter de Rust evcxr con:

    cargo install --locked evcxr_jupyter
    evcxr_jupyter --install
  4. Ejecuta el comando Crear: Nuevo Jupyter Notebook en VSCode

  5. Haz clic en el botón Detectando en la esquina superior derecha.

  6. Selecciona Jupyter Kernel...

  7. Selecciona Rust

  8. Ingresa en la primera línea una importación de la dependencia soroban-sdk con la característica testutils habilitada.

    :dep soroban-sdk = { version = "21.3.0", features = ["testutils"] }
  9. Ingresa un contrato. Por ejemplo:

    use soroban_sdk::{contract, contractimpl};

    #[contract]
    pub struct Contract;

    #[contractimpl]
    impl Contract {
    pub fn add(x: u32, y: u32) -> u32 {
    x+y
    }
    }
  10. Ingresa algún código para crear un entorno Soroban, registrar el contrato y invocarlo.

use soroban_sdk::{Env};

let env = Env::default();
let id = env.register_contract(None, Contract);
let client: ContractClient = ContractClient::new(&env, &id);
client.add(&1, &2)
  1. Haz clic en el botón de reproducir para ejecutar el código.

Felicidades, tienes un Jupyter Notebook con código de contrato que debería verse algo así como la captura de pantalla a continuación, listo para hackear y experimentar.

Captura de pantalla

Un Jupyter notebook en ejecución

Comunidad

¿Tienes ideas sobre cómo mejorar los contratos Soroban en Jupyter Notebooks? Únete a la comunidad en Discord.