Convertir una dirección a otros tipos
El Address
es un tipo opaco que podría representar una "cuenta" en la red Stellar (es decir, un keypair) o un "contrato." Desde el punto de vista de Soroban, realmente no importa cuál sea. La variedad "cuenta" de estas direcciones se muestra típicamente como una dirección pública G...
, y la variedad "contrato" se muestra típicamente como una dirección C...
. Una dirección también puede mostrarse en otros formatos como un array de 32 bytes, una cadena o un tipo ScVal. Los SDK de Soroban proporcionan métodos que convierten fácilmente una dirección a cualquiera de estos tipos.
Dirección a bytesN
Los bytes son una forma más compacta y eficiente de almacenar datos en términos de optimización de almacenamiento y transmisión de datos. En situaciones donde necesitas almacenar o transmitir una dirección en un tamaño fijo, como para operaciones criptográficas o serialización de datos, necesitas convertir la dirección a un formato bytesN
- Rust
- JavaScript
- Python
use soroban_sdk::{Address, BytesN, Env, FromVal};
pub fn address_to_bytes32(env: &Env, address: Address) -> BytesN<32> {
let address_to_bytes: BytesN<32> = BytesN::from_val(env, &address.to_val());
address_to_bytes
}
const StellarSdk = require("@stellar/stellar-sdk");
// Example Stellar address
const stellarAddress =
"GCM5WPR4DDR24FSAX5LIEM4J7AI3KOWJYANSXEPKYXCSZOTAYXE75AFN";
// Create an Address object
const address = new StellarSdk.Address(stellarAddress);
// Convert the Address to raw public key bytes (Buffer)
const buffer = address.toBuffer();
from stellar_sdk.address import Address
from stellar_sdk.strkey import StrKey
# Example Stellar address
stellar_address = 'GCM5WPR4DDR24FSAX5LIEM4J7AI3KOWJYANSXEPKYXCSZOTAYXE75AFN'
# Convert the address to bytes
StrKey.decode_ed25519_public_key(stellar_address)
Dirección a String
Al transferir datos entre diferentes sistemas o a través de una red, a menudo se requieren formatos basados en texto como JSON y formatos de cadena XML. Almacenar direcciones como cadenas en bases de datos puede simplificar el diseño de esquemas de bases de datos y consultas. Las cadenas son más fáciles de manipular y son más compatibles con interfaces de usuario y APIs.
- Rust
- JavaScript
use soroban_sdk::{Address, String, Env};
pub fn address_to_string(address: Address) -> String {
address.to_string()
}
const StellarSdk = require("@stellar/stellar-sdk");
// Example Stellar address
const stellarAddress =
"GCM5WPR4DDR24FSAX5LIEM4J7AI3KOWJYANSXEPKYXCSZOTAYXE75AFN";
// Create an Address object
const address = new StellarSdk.Address(stellarAddress);
// Convert the address to string
const addressToString = address.toString();
Dirección a ScVal
Las direcciones a menudo se pasan como parámetros de función en contratos inteligentes de Soroban. Estas direcciones deben estar en formato ScVal porque la máquina virtual de Soroban procesa datos en este formato. De manera similar, si una función de contrato inteligente devuelve una dirección, se devolverá como un ScVal. Convertir hacia y desde ScVal asegura que puedes manejar adecuadamente estos valores de retorno.
- Rust
- JavaScript
- Python
use soroban_sdk::{Address, Val};
pub fn address_to_sc_val(address: Address) -> Val {
address.to_val()
}
// Example Stellar address
const stellarAddress =
"GCM5WPR4DDR24FSAX5LIEM4J7AI3KOWJYANSXEPKYXCSZOTAYXE75AFN";
// Create an Address object
const address = new StellarSdk.Address(stellarAddress);
// Convert the Address to xdr.ScVal
const scVal = address.toScVal();
// Convert the Address to xdr.ScAddress
const scAddress = address.toScAddress();
from stellar_sdk.address import Address
# Example Stellar address
stellar_address = 'GBJCHUKZMTFSLOMNC7P4TS4VJJBTCYL3XKSOLXAUJSD56C4LHND5TWUC'
# Create an Address object
address = Address(stellar_address)
# Convert the Address object to an ScAddress
sc_address_xdr = address.to_xdr_sc_address()
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