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
Las conversiones de String a Bytes y de Bytes a String aún no son admitidas y producirán un panic si se intentan. Estas conversiones estarán disponibles en el Protocolo 23 mediante CAP-69, pero aún no están disponibles en Mainnet.
Consulta la discusión aquí.
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.
- Rust
- JS
- Python
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())
}
import StellarSdk = require('@stellar/stellar-sdk');
// Example string
const stringValue = 'Hello, Stellar!';
// Convert the string to bytes format
const byteValue = Buffer.from(stringValue, 'utf-8');
import stellar_sdk
string_value.encode()
string_value
es el valor de la cadena que se convertirá a bytes..encode()
es un método que convierte la cadena a bytes.
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.
- Rust
- JS
use soroban_sdk::{Address, Env, String};
pub fn string_to_address(string: String) -> Address {
Address::from_string(&string)
}
const StellarSdk = require("@stellar/stellar-sdk");
const stringToAddress = StellarSdk.Address.fromString(stellarAddress);
stellarAddress
es el valor de la cadena que se convertirá en una dirección.StellarSdk.Address.fromString()
es un método que convierte una cadena en una dirección.
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.
- Rust
- JS
- Python
use soroban_sdk::{String, Env, Val};
pub fn string_to_val(env: &Env, string: String) -> Val {
string.to_val()
}
import StellarSdk from "@stellar/stellar-sdk";
// Example string value
const stringValue = "Hello, Stellar!";
// Convert the string to ScVal
const stringToScVal = StellarSdk.xdr.ScVal.scvString(stringValue);
import stellar_sdk
string_to_sc_val = stellar_sdk.scval.to_string(string_value)
string_value
es el valor de la cadena que se convertirá en un ScValstellar_sdk.scval.to_string()
convierte el valor de la cadena en un ScVal
Guías en esta categoría:
📄️ Convertir una dirección a otros tipos
Convertir una dirección a otros tipos
📄️ Convertir de bytes a otros tipos
Convertir de bytes a otros tipos
📄️ Convertir un ScVal a otro tipo
Convertir un ScVal a otro tipo
📄️ Convertir una cadena a otros tipos
Convertir una cadena a otros tipos