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)