Skip to content

This script allows you to automate transactions across multiple EVM-compatible networks.

License

Notifications You must be signed in to change notification settings

TejasMate/AutoEvmTransactions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoEVM Transactions

Welcome to the autoevm-transactions repository! This script allows you to automate transactions across multiple EVM-compatible networks. Whether you're interacting with testnets or mainnets, this tool simplifies the process, especially for tasks requiring multiple transfers.

Features

  • 📡 Dynamic RPC URL, chain ID, and explorer integration from JSON files
  • 🔄 Automated transaction processing for multiple addresses
  • 🎯 Targeted transfers to specified addresses from addresses.json
  • 🚀 Easily configurable for various networks (testnets and mainnets)
  • 🔒 Secure handling of private keys
  • 📝 Transaction history logging and tracking
  • 🔍 Built-in transaction verification

Getting Started

Prerequisites

Ensure you have the following installed:

  • Node.js (v14 or higher)
  • npm (Node Package Manager)

Installation

  1. Clone the repository:

    git clone https://github.com/tejasmate/autoevm-transactions.git
    cd autoevm-transactions
  2. Install the necessary packages:

    npm install

Configuration

  1. Define the Chains:

    • You'll need to specify the network details in JSON files located in the /chains directory. Create two JSON files: testnet.json and mainnet.json.

    • Each file should contain an array of objects with the following structure:

      [
          {
              "name": "Network Name",
              "rpcUrl": "https://rpc-url",
              "chainId": "1234",
              "symbol": "TOKEN",
              "explorer": "https://explorer-url"
          }
      ]
    • Example for testnet.json:

      [
          {
              "name": "Plume Testnet",
              "rpcUrl": "https://plume-testnet-rpc.example.com",
              "chainId": "8888",
              "symbol": "PLUME",
              "explorer": "https://plume-testnet-explorer.example.com"
          }
      ]
  2. Define Private Keys:

    • Store your private keys securely inside a privateKeys.json file in the root directory. This file should contain an array of private keys as strings:

      [
          "0xYOUR_PRIVATE_KEY_1",
          "0xYOUR_PRIVATE_KEY_2"
      ]

      ⚠️ Important: Keep this file secure and avoid exposing your private keys!

  3. Create Target Addresses File:

    • Create an addresses.json file in the root directory. This file should contain an array of target addresses you want to transfer funds to:

      [
          "0xTARGET_ADDRESS_1",
          "0xTARGET_ADDRESS_2"
      ]

Usage

  1. Run the script for random address generation and transactions:

    npm start
  2. To use the targeted address feature, run:

    npm run target
    • You will be prompted to select your network environment (Testnet/Mainnet) and choose the chain from the provided list using the arrow keys.
    • Define the number of transactions you want to process and let the script handle the rest!

Contribution

Contributions are welcome! Please fork the repository and submit a pull request with your improvements.

Troubleshooting

Common Issues

  1. RPC Connection Errors:

    • Verify your internet connection
    • Check if the RPC URL is correct and accessible
    • Ensure the network is operational
  2. Transaction Failures:

    • Confirm you have sufficient balance for gas fees
    • Verify the recipient address is valid
    • Check if nonce is correct
  3. Configuration Issues:

    • Ensure all JSON files are properly formatted
    • Verify chain IDs match the target network
    • Check if private keys are correctly formatted

Development

Project Structure

├── chains/           # Network configuration files
├── src/             # Source code
│   ├── chainUtils.js    # Chain-related utilities
│   ├── gasUtils.js      # Gas calculation functions
│   └── validation.js    # Input validation
└── transaction_history.json  # Transaction logs

Adding New Features

  1. Fork the repository
  2. Create a feature branch
  3. Implement your changes
  4. Add tests if applicable
  5. Submit a pull request

Code Style

  • Use ES6+ features
  • Follow consistent naming conventions
  • Add comments for complex logic
  • Keep functions focused and modular

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

This script allows you to automate transactions across multiple EVM-compatible networks.

Topics

Resources

License

Stars

Watchers

Forks