Configuración
Modificar un archivo de información de Stellar
A continuación, modifiquemos el archivo stellar.toml
creado anteriormente. Las billeteras necesitan saber que la funcionalidad SEP-24 es admitida por tu negocio, y también necesitan conocer todas las monedas que admites.
- TOML
# dev.stellar.toml
ACCOUNTS = ["add your public keys for your distribution accounts here"]
SIGNING_KEY = "add your signing key here"
NETWORK_PASSPHRASE = "Test SDF Network ; September 2015"
TRANSFER_SERVER_SEP0024 = "http://localhost:8080/sep24"
WEB_AUTH_ENDPOINT = "http://localhost:8080/auth"
# Add support for USDC
[[CURRENCIES]]
code = "USDC"
issuer = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5"
status = "test"
is_asset_anchored = false
desc = "USD Coin issued by Circle"
# Optionally, add support for XLM
[[CURRENCIES]]
code = "native"
status = "test"
is_asset_anchored = false
anchor_asset_type = "crypto"
desc = "XLM, the native token of the Stellar network."
[DOCUMENTATION]
ORG_NAME = "Your organization"
ORG_URL = "Your website"
ORG_DESCRIPTION = "A description of your organization"
Ten en cuenta que necesitarás crear otro archivo para tu implementación en producción que use la frase de contraseña de la red pública, las URL de servicio de producción, tus cuentas de distribución de Mainnet y clave de firma, así como las cuentas emisoras de Mainnet de los activos que utiliza tu servicio.
Habilitar depósitos y retiros alojados
Ahora estás listo para habilitar depósitos y retiros alojados a través de la API SEP-24. Especifica lo siguiente en tu archivo dev.assets.yaml
, y cambia los valores dependiendo de tus preferencias. Este ejemplo de archivo de activo habilitará el soporte para el USDC de Circle y un USD fiat.
- YAML
# dev.assets.yaml
assets:
- schema: stellar
code: USDC
issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5
distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7
significant_decimals: 2
sep24_enabled: true
deposit:
enabled: true
withdraw:
enabled: true
- schema: iso4217
code: USD
significant_decimals: 2
deposit:
enabled: true
withdraw:
enabled: true
# Optional support for XLM
- schema: stellar
code: native
distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7
significant_decimals: 7
sep24_enabled: true
deposit:
enabled: true
withdraw:
enabled: true
La información proporcionada para el valor assets
se mapea estrechamente a la información que se expondrá a la aplicación de billetera utilizando el endpoint SEP-24 GET /info
. La Anchor Platform también utiliza esta información para validar las solicitudes realizadas a tu servicio.
Agrega las siguientes variables a tu archivo de entorno.
- bash
# dev.env
SEP24_ENABLED=true
SEP24_INTERACTIVE_URL_BASE_URL=http://example.com
SEP24_MORE_INFO_URL_BASE_URL=http://example.com
SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server"
SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server"
SEP24_INTERACTIVE_URL_BASE_URL
es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando inicien transacciones. Las aplicaciones de billetera abrirán esta URL en una vista web dentro de su aplicación, cediendo el control de la experiencia del usuario de la billetera a tu negocio. Esta URL apunta al widget web que implementa tu negocio. Contiene toda la lógica definida por el negocio. Profundizaremos más en esta experiencia en secciones posteriores.
SEP24_MORE_INFO_URL_BASE_URL
es la URL que la Anchor Platform proporcionará a las aplicaciones de billetera cuando deseen mostrar información sobre una transacción iniciada previamente. Esta URL es utilizada con mayor frecuencia por las billeteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar sobre la transacción.
SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET
y SECRET_SEP24_MORE_INFO_URL_JWT_SECRET
son claves de encriptación que la Anchor Platform utilizará para generar tokens de corta duración que se añadirán a las URLs proporcionadas a la billetera. Tu servidor de negocios también debe tener estas claves en su entorno para poder verificar la firma del token.
Prueba con la billetera de demostración
¡Las billeteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente ahora deberían verse algo así.
- Ejemplo
├── dev.env
├── docker-compose.yaml
├── config
│ ├── dev.assets.yaml
│ ├── dev.stellar.toml
Tu entorno ahora debería verse como el siguiente.
- bash
# dev.env
ASSETS_TYPE=file
ASSETS_VALUE=/home/dev.assets.yaml
SEP1_ENABLED=true
SEP1_TOML_TYPE=file
SEP1_TOML_VALUE=/home/dev.stellar.toml
SEP10_ENABLED=true
SEP10_HOME_DOMAIN=localhost:8080
SECRET_SEP10_SIGNING_SEED="a Stellar private key"
SECRET_SEP10_JWT_SECRET="a secret encryption key"
SEP24_ENABLED=true
SEP24_INTERACTIVE_URL_BASE_URL=http://localhost:8081
SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET="your encryption key shared with your business server"
SECRET_SEP24_MORE_INFO_URL_JWT_SECRET="your encryption key shared with your business server"
Para probar esto, ve a la Billetera de Demostración Stellar.
Inicia una transacción haciendo lo siguiente:
- Crea un nuevo keypair
- Haz clic en el botón "Agregar Activo" e introduce
- el código del activo Stellar en tu archivo
stellar.toml
- tu dominio principal,
localhost:8080
- el código del activo Stellar en tu archivo
- Selecciona el menú desplegable y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar"
La billetera de demostración debería poder encontrar tu archivo stellar.toml
, autenticarse utilizando el keypair Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la billetera de demostración intenta abrir la URL proporcionada por la Anchor Platform, verás una página no encontrada.