Saltar al contenido principal

Configuración

Modificar un archivo Stellar Info

A continuación, modifiquemos el archivo stellar.toml creado anteriormente. Las carteras deben saber que tu negocio admite la funcionalidad SEP-24 y también deben conocer todas las monedas que admites.

# 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"
WEB_AUTH_FOR_CONTRACTS_ENDPOINT = "http://localhost:8080/sep45/auth"
WEB_AUTH_CONTRACT_ID = "Your web auth contract id"

# 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 despliegue en producción que utilice la frase de contraseña de la red pública, las URL de servicio de producción, tus cuentas de distribución y la clave de firma de Mainnet, 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 mediante la API SEP-24. Especifica lo siguiente en tu archivo dev.assets.yaml y cambia los valores según tus preferencias. Este archivo de ejemplo habilitará el soporte para USDC de Circle y un dólar fiat.

# dev.assets.yaml
items:
- id: stellar:USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5
distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7
significant_decimals: 2
sep24:
enabled: true
deposit:
enabled: true
min_amount: 0
max_amount: 10
methods:
- SEPA
- SWIFT
withdraw:
enabled: true
min_amount: 0
max_amount: 10
methods:
- bank_account
- cash
- id: iso4217:USD
significant_decimals: 2
# Optional support for XLM
- id: stellar:native
distribution_account: GBLSAHONJRODSFTLOV225NZR4LHICH63RIFQTQN37L5CRTR2IMQ5UEK7
significant_decimals: 7
sep24:
enabled: true
deposit:
enabled: true
min_amount: 0
max_amount: 10
methods:
- SEPA
- SWIFT
withdraw:
enabled: true
min_amount: 0
max_amount: 10
methods:
- bank_account
- cash

La información proporcionada para el valor assets coincide en gran medida con la información que se expondrá a la aplicación de cartera mediante el endpoint SEP-24 GET /info. La plataforma Anchor también utiliza esta información para validar las solicitudes realizadas a tu servicio.

Agrega las siguientes variables a tu archivo de entorno.

# dev.env
// Required
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"

// Optional
SEP24_INITIAL_USER_DEADLINE_SECONDS=1209600

SEP24_INTERACTIVE_URL_BASE_URL es la URL que la plataforma Anchor proporcionará a las aplicaciones de cartera cuando inicien transacciones. Las aplicaciones de cartera abrirán esta URL en una vista web dentro de su aplicación, cediendo el control de la experiencia del usuario de la cartera a tu negocio. Esta URL apunta al widget web que implementa tu negocio. Contiene toda la lógica definida por el negocio. Examinaremos esta experiencia con más detalle en secciones posteriores.

SEP24_MORE_INFO_URL_BASE_URL es la URL que la plataforma Anchor proporcionará a las aplicaciones de cartera cuando quieran mostrar información sobre una transacción iniciada previamente. Esta URL es utilizada mayormente por las carteras en sus vistas de historial de transacciones, y tu negocio puede definir qué información mostrar acerca de la transacción.

SECRET_SEP24_INTERACTIVE_URL_JWT_SECRET y SECRET_SEP24_MORE_INFO_URL_JWT_SECRET son claves de cifrado que la plataforma Anchor usará para generar tokens de corta duración que añadirá a las URLs proporcionadas a la cartera. Tu servidor de negocio también debe tener estas claves en su entorno para verificar la firma del token.

SEP24_INITIAL_USER_DEADLINE_SECONDS es un parámetro opcional que define el tiempo en segundos que tiene el usuario para actuar antes de que la transacción pase al siguiente estado. Determina el campo user_action_required_by, que indica la fecha límite. Consulta JSON-RPC Methods para ejemplos de uso.

Probar con la billetera de demostración

¡Las carteras ahora deberían poder descubrir, autenticar e iniciar transacciones con tu servicio! Tu proyecto y archivos fuente ahora deberían verse algo así.

├── dev.env
├── docker-compose.yaml
├── config
│ ├── dev.assets.yaml
│ ├── dev.stellar.toml

Tu entorno ahora debería verse de la siguiente manera.

# 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 Cartera de Demostración Stellar.

cartera de demostración conectada a la plataforma anchor

Inicia una transacción haciendo lo siguiente:

  • Crear un nuevo par de claves
  • Haz clic en el botón "Agregar activo" y escribe
    • el código del activo Stellar en tu archivo stellar.toml
    • tu dominio principal, localhost:8080
  • Selecciona el desplegable y haz clic en "Depósito SEP-24", luego haz clic en "Iniciar"

La cartera de demostración debería poder encontrar tu archivo stellar.toml, autenticar usando el par de claves Stellar que acabas de crear e iniciar una transacción. Sin embargo, cuando la cartera de demostración intente abrir la URL proporcionada por la plataforma Anchor, obtendrás una página de no encontrado.

cartera de demostración tras iniciar una transacción