Saltearse al contenido

Importar Transacciones

Esta guía explica cómo importar transacciones de Aptos para pruebas usando la herramienta aptos-indexer-transaction-generator. Estas transacciones de prueba pueden usarse para probar tus procesadores personalizados y soportar su desarrollo local.

Flujo General de Importación de Transacciones

Sección titulada «Flujo General de Importación de Transacciones»

Primero, identifica las versiones de transacción que necesitas obtener de la red de Aptos. Esta herramienta interactúa con el Transaction Stream para recuperar datos de transacción en formato JSON. Las transacciones luego se consolidan en un archivo Rust, donde cada transacción se representa como una variable constante. Estas constantes pueden usarse sin problemas como entradas mockeadas en pruebas automatizadas de procesador. Durante las pruebas, el procesador obtiene las transacciones especificadas, las procesa, y escribe los resultados a una base de datos. Luego puedes verificar los resultados cargando los datos escritos y validándolos contra los datos esperados.

  1. Una clave API válida para conectarse a Transaction Stream
  2. Clonar el repositorio aptos-core:
    • Navegar al directorio aptos-core/ecosystem/indexer-grpc/indexer-transaction-generator.

Localizar y hacer una copia del archivo:

Ventana de terminal
ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/imported_transactions.yaml

En este archivo, especifica las versiones a importar de Devnet|Testnet|Mainnet configurando el endpoint apropiado, clave API, y mapeando números de versión a nombres de salida descriptivos. Una configuración de ejemplo se muestra abajo:

testnet:
transaction_stream_endpoint: https://grpc.testnet.aptoslabs.com:443
api_key: TESTNET_API_KEY # <--- Reemplaza esto con tu clave API para generar archivos localmente
versions_to_import:
# Reemplaza estas con las versiones que quieres importar
1: 1_genesis
2: 2_new_block_event
3: 3_empty_txn
278556781: 278556781_v1_coin_register_fa_metadata
1255836496: 1255836496_v2_fa_metadata
5979639459: 5979639459_coin_register
5992795934: 5992795934_fa_activities
5523474016: 5523474016_validator_txn
mainnet:
transaction_stream_endpoint: https://grpc.mainnet.aptoslabs.com:443
api_key: MAINNET_API_KEY
versions_to_import:
308783012: 308783012_fa_transfer

2. Ejecutar el Comando para Importar Transacciones

Sección titulada «2. Ejecutar el Comando para Importar Transacciones»

Navegar al directorio indexer-transaction-generator:

Ventana de terminal
cd aptos-core/ecosystem/indexer-grpc/indexer-transaction-generator

Para importar las versiones de transacción especificadas, ejecuta el siguiente comando:

Ventana de terminal
cargo run -- --testing-folder /path/to/your/imported_transactions.yaml --output-folder /path/to/your/processor-repo/src --mode=import --network=testnet

Este comando:

  1. Leerá la configuración del archivo imported_transactions.yaml ubicado en la carpeta especificada por la bandera —testing-folder.
  2. Obtendrá las versiones de transacción especificadas de la red seleccionada (Devnet, Testnet o Mainnet).
  3. Almacenará los archivos JSON resultantes en la carpeta de salida especificada (/path/to/your/processor-repo/src/json_transactions).
  4. Generará un archivo Rust (generated_transactions.rs) que convierte los archivos JSON de transacción generados en variables constantes para uso en pruebas.

Nota: Reemplaza /path/to/your/processor-repo con la ruta a tu repositorio de procesador o ubicación de almacenamiento preferida.

Explicación de Banderas de Comando

  1. --testing-folder ¿Qué es la bandera —testing-folder? La bandera —testing-folder especifica el directorio que contiene el archivo de configuración imported_transactions.yaml. La herramienta usa esta carpeta para leer las versiones que deseas importar.
  • Asegurar que la ruta de carpeta coincida con la ubicación de tu archivo imported_transactions.yaml.
  • Por defecto, esta guía asume que la configuración está almacenada en ./imported_transactions. Ajusta el valor de la bandera si colocas el archivo en otro lugar.
  1. --output-folder Especifica el directorio de destino donde los archivos JSON de transacción generados y constantes Rust serán guardados.
  • Reemplaza /path/to/your/processor-repo con tu directorio src del repositorio de procesador o ubicación de almacenamiento deseada.
  • Asegurar que esta carpeta sea parte de tu configuración de control de versiones si estos archivos necesitan ser compartidos.
  1. --mode Especifica que el generador de transacciones debería operar en modo script, significando que ejecutará scripts Move y generará datos de transacción correspondientes. Por defecto, el modo está establecido a import, que obtiene transacciones de la red. o Usar Modo Import para obtener transacciones de la red. Por defecto, el modo está establecido a import.

Opciones disponibles:

  • import
  • script
  1. --network Especifica la red de la cual obtener transacciones. Opciones disponibles:
  • devnet
  • testnet
  • mainnet

Actualiza el archivo mod.rs para incluir el archivo Rust generado que contiene las constantes de transacción. Si mod.rs no existe, crea uno en la carpeta objetivo:

Referencia mod.rs.

Ya que el generated_transactions.rs depende de la json_transactions Asegurar que la carpeta json_transactions esté apropiadamente exportada en el archivo de biblioteca para que tus pruebas tengan acceso directo a los datos de transacción.

Referencia lib.rs.

Usa las constantes de transacción exportadas directamente en tus casos de prueba para simular transacciones reales y validar lógica de procesamiento.

Ejemplo de Crate.

Una vez que las constantes de transacción estén integradas, puedes usarlas en pruebas de procesador para validar funcionalidad. Para instrucciones detalladas sobre escribir pruebas de procesador, consulta Escribir Pruebas de Procesador.