Importar Transacciones
Resumen
Sección titulada «Resumen»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.
Prerrequisitos
Sección titulada «Prerrequisitos»- Una clave API válida para conectarse a Transaction Stream
- Clonar el repositorio aptos-core:
- Navegar al directorio
aptos-core/ecosystem/indexer-grpc/indexer-transaction-generator
.
- Navegar al directorio
Cómo Importar Transacciones de Prueba
Sección titulada «Cómo Importar Transacciones de Prueba»1. Especificar Versiones a Importar
Sección titulada «1. Especificar Versiones a Importar»Localizar y hacer una copia del archivo:
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
:
cd aptos-core/ecosystem/indexer-grpc/indexer-transaction-generator
Para importar las versiones de transacción especificadas, ejecuta el siguiente comando:
cargo run -- --testing-folder /path/to/your/imported_transactions.yaml --output-folder /path/to/your/processor-repo/src --mode=import --network=testnet
Este comando:
- Leerá la configuración del archivo
imported_transactions.yaml
ubicado en la carpeta especificada por la bandera —testing-folder. - Obtendrá las versiones de transacción especificadas de la red seleccionada (Devnet, Testnet o Mainnet).
- Almacenará los archivos JSON resultantes en la carpeta de salida especificada (/path/to/your/processor-repo/src/json_transactions).
- 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
--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.
--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.
--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
--network
Especifica la red de la cual obtener transacciones. Opciones disponibles:
- devnet
- testnet
- mainnet
Cómo Usar las Transacciones de Prueba
Sección titulada «Cómo Usar las Transacciones de Prueba»Exportar el Archivo Generado
Sección titulada «Exportar el Archivo Generado»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:
Exportar la Carpeta json_transactions
Sección titulada «Exportar la Carpeta json_transactions»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.
Integrar en Casos de Prueba
Sección titulada «Integrar en Casos de Prueba»Usa las constantes de transacción exportadas directamente en tus casos de prueba para simular transacciones reales y validar lógica de procesamiento.
Siguientes Pasos
Sección titulada «Siguientes Pasos»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.