1️ Primeros pasos
El cliente de Stellar es super importante en la escritura de contratos en Stellar, ya que se encarga de la creación de la estructura básica y archivos, su compilación, despliegue y pruebas respectivas.
En esta primera pare veremos lo siguiente:
- Creación de una cuenta (identidad)
- Obtención de la llave pública (address)
- Consultar el saldo
- Envio de lumens a otra cuenta
Creación de una cuenta (identidad)
La identidad es un alias , que nos sirve para manejar la cuenta generada de una forma mucho más sencilla.
Para este caso por ejemplo vamos a generar una identidad llamada developer , ya dejemos descansar a Bob y Alice 😅
stellar keys generate --global developer --network testnet --fund
Para este caso generamos una identidad global llamada developer en la red de testnet.
Al abrir el archivo generado vemos que es un contenedor de una frase semilla.
O con linea de comando
cat /home/<USUARIO>/.config/stellar/identity/developer.toml
Más información del comando
Obtención de la llave pública (address)
Para saber cual es la llave pública de una identidad corremos el siguiente comando:
stellar keys address developer
Obtenemos:
Consultar el saldo
Hay 2 formas por web o por comando
El modo sencillo, explorador web
ingresamos la dirección en esta dirección https://stellar.expert/explorer/testnet
Para los amantes de la consola. 😉
- Averiguamos en testnet cual es el id de XLM
stellar contract id asset --asset native --network testnet
obtenemos esta respuesta: CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC - Obtenemos la llave pública de la identidad developer
stellar keys address developer
obtenemos:
&#xNAN;GD45T2VRMYBSGRHLMVTS4QQZVXAM7WD6IYWKYRS7DFURRR2EKWCNGOAN - Ejecutamos los siguiente:
Sintaxis:
&#xNAN;stellar contract invoke --id "dirección XLM" --network testnet --source-account developer -- balance --id "llave pública developer"
Escribimos lo siguiente:
stellar contract invoke --id CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC
--network testnet --source-account developer
-- balance --id GD45T2VRMYBSGRHLMVTS4QQZVXAM7WD6IYWKYRS7DFURRR2EKWCNGOAN
La respuesta es:
Pasar fondos de una billetera a otra
Vamos a pasar 100 XLM de la cuenta developer a developer1.
Sintaxis:
stellar contract invoke --id <asset_contract_ID> --networdk testnet --source-account developer -- transfer --to <developer1_ID> --from developer --amount 100
Como es de observar no hemos creado la identidad developer1 por lo tanto ejecutamos:
stellar keys generate --global developer1 --network testnet
stellar keys address developer1
obtenemos la siguiente llave pública :\
GCETVOMJKZ5OPTBIWBADL2PT6DTL7VPZMS5P4MIAYSINZYH5IIZRE27U
Ahora que tenemos todos los datos ejecutamos:
stellar contract invoke --id CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC
--network testnet --source-account developer -- transfer --from developer --to GD52UMJ54UXIGEGYT6GYRM4FAVATV7JD3RGEX6QGTV5HY66G5Q4T6RUS --amount 1000000000
Obtenemos lo siguiente: