Saltar al contenido principal

Convertir una cadena a otros tipos

Las cadenas son una secuencia de caracteres utilizados para representar texto legible. Se utilizan para almacenar y manipular información basada en texto, como nombres de funciones, argumentos, datos clave-valor e interfaces con sistemas externos. Las cadenas a menudo pueden necesitar ser convertidas a otros tipos de datos para un procesamiento y almacenamiento eficientes.

Cadena a bytesN

Algunos sistemas utilizan formatos binarios donde los datos necesitan ser representados como un arreglo de bytes de longitud fija para almacenamiento o procesamiento. Por ejemplo, hashes o identificadores de longitud fija. Convertir cadenas a un tamaño de bytes fijo asegura que los datos se ajusten a las restricciones de tamaño requeridas.

use soroban_sdk::{String, BytesN, Env, FromVal};

pub fn string_to_bytesN(env: &Env, string: String) -> BytesN<32> {
BytesN::from_val(env, &string.to_val())
}

Cadena a dirección

Una dirección recibida en una entrada de usuario puede ser de tipo cadena y necesitarías convertirla a un tipo dirección para realizar validaciones, transacciones u otras operaciones dentro de tu contrato inteligente.

use soroban_sdk::{Address, Env, String};

pub fn string_to_address(string: String) -> Address {
Address::from_string(&string)
}

Cadena a ScVal

Al llamar a funciones o métodos que esperan tipos ScVal, necesitas convertir tus datos de cadena a ScVal para que la llamada sea exitosa. Por ejemplo, si tu contrato inteligente necesita almacenar o manipular una cadena de entrada de usuario dentro de su estado o utilizarla como parte de su lógica, deberías convertir la cadena a un tipo ScVal para integrarla con las operaciones del contrato.

use soroban_sdk::{String, Env, Val};

pub fn string_to_val(env: &Env, string: String) -> Val {
string.to_val()
}