Skip to content

Latest commit

 

History

History
166 lines (119 loc) · 4.39 KB

File metadata and controls

166 lines (119 loc) · 4.39 KB

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.