Skip to content
🎉 Welcome to the new Aptos Docs! Click here to submit feedback!
BuildIndexerIndexer SDKDocumentationAdvanced TutorialsGenerating Transactions with Move Scripts

Overview:

This section outlines the steps for creating a testing transaction with a Move script.

Steps:

  1. Create Your Move Project

    Create your Move project and write a module to output the scenario that you would like to test in your processor. You can refer to an example here.

  2. Set Up Accounts

    1. These accounts will be used to deploy your module.

    2. Set up as many accounts as you need. Refer to the guide here.

    3. Update aptos-core/ecosystem/indexer-grpc/indexer-transaction-generator/imported_transactions/testing_accounts.yaml with your accounts.

    💡 Note: Do not use real accounts here. Only use test accounts created in the CLI specifically for testing.

  3. Create a Configuration File

    1. Create a configuration file in the move_fixtures directory.

    2. This configuration file should include unique transaction names and details for each transaction. Example configuration: output_name: the name of the transaction json output script_path: the path to the Move script sender_address: the address of the account that will send the transaction

      transactions:
        - output_name: simple_user_script1
          script_path: simple_user_script
          sender_address: <account_address>
        - output_name: simple_user_script2
          script_path: simple_user_script2
          sender_address: <account_address>
  4. Generate JSON Files and Rust File

    Once the Move files and configuration are set up, run the same command used to import transactions:

    • testing-folder is where your Move files are stored.
    • output-foler can be set to any folder where you want to store the generated files.
    cargo run -- --testing-folder ./imported_transactions --output-folder ../indexer-test-transactions/src/

    This command will:

    1. Read the configuration in the move_fixtures folder.
    2. Execute the specified Move scripts.
    3. Output the generated JSON files to the designated folder (~/aptos-core/ecosystem/indexer-grpc/indexer-transaction-generator/json_transactions).
    4. Update generated_transactions.rs with the new transaction names specified in step 3.

How to Use the Testing Transactions

  • Export the Generated File:

    Update the mod.rs file to include the generated Rust file containing the transaction constants.

  • Export the json_transactions Folder:

    Ensure the json_transactions folder is properly exported in the library file.

    Example.

  • Add as a Dependency:

    Include the crate containing the generated transactions as a dependency in the Cargo.toml file of your test crate. (Internally, transactions are stored in aptos-core and used in the processor repo).

  • Integrate into Test Cases:

    Use the exported transaction constants directly in your test cases to simulate real transactions and validate processing logic.

    Example usage.