generateblobtransactions

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 14, 2026 License: GPL-3.0 Imports: 17 Imported by: 0

README

generate_blob_transactions Task

Description

The generate_blob_transactions task creates and sends a large number of blob transactions to the network. It's configured to operate under various limits, and at least one limit parameter is necessary for the task to function.

Configuration Parameters

  • limitPerBlock:
    The maximum number of blob transactions to generate per block.

  • limitTotal:
    The total limit on the number of blob transactions to be generated.

  • limitPending:
    The limit based on the number of pending blob transactions.

  • privateKey:
    The private key used for transaction generation.

  • childWallets:
    The number of child wallets to be created and funded. (If 0, send blob transactions directly from privateKey wallet)

  • walletSeed:
    The seed phrase used for generating child wallets. (Will be used in combination with privateKey to generate unique child wallets that do not collide with other tasks)

  • refillPendingLimit:
    The maximum number of pending refill transactions allowed. This limit is used to control the refill process for child wallets, ensuring that the number of refill transactions does not exceed this threshold.

  • refillFeeCap:
    The maximum fee cap for refilling transactions.

  • refillTipCap:
    The maximum tip cap for refill transactions.

  • refillAmount:
    The amount to refill in each child wallet.

  • refillMinBalance:
    The minimum balance required before triggering a refill.

  • blobSidecars:
    The number of blob sidecars to include in each transaction.

  • blobFeeCap:
    The fee cap specifically for blob transactions.

  • feeCap:
    The maximum fee cap for transactions.

  • tipCap:
    The tip cap for transactions.

  • gasLimit:
    The gas limit for each transaction.

  • targetAddress:
    The target address for transactions.

  • randomTarget:
    If true, transactions are sent to random addresses.

  • callData:
    Call data to be included in the transactions.

  • blobData:
    Data for the blob component of the transactions.

  • randomAmount:
    If true, the transaction amount is randomized, using amount as limit.

  • amount:
    The amount of ETH (in Wei) to be sent in each blob transaction.

  • clientPattern:
    A regex pattern for selecting specific client endpoints to send transactions. If unspecified, transactions are sent through any available endpoint.

  • excludeClientPattern:
    A regex pattern to exclude certain client endpoints from being used for sending transactions. This allows for more precise control over which clients are utilized.

Defaults

Default settings for the generate_blob_transactions task:

- name: generate_blob_transactions
  config:
    limitPerBlock: 0
    limitTotal: 0
    limitPending: 0
    privateKey: ""
    childWallets: 0
    walletSeed: ""
    refillPendingLimit: 200
    refillFeeCap: "500000000000"
    refillTipCap: "1000000000"
    refillAmount: "1000000000000000000"
    refillMinBalance: "500000000000000000"
    blobSidecars: 1
    blobFeeCap: "10000000000"
    feeCap: "100000000000"
    tipCap: "2000000000"
    gasLimit: 100000
    targetAddress: ""
    randomTarget: false
    callData: ""
    blobData: ""
    randomAmount: false
    amount: "0"
    clientPattern: ""
    excludeClientPattern: ""

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	TaskName       = "generate_blob_transactions"
	TaskDescriptor = &types.TaskDescriptor{
		Name:        TaskName,
		Description: "Generates blob transactions and sends them to the network",
		Category:    "transaction",
		Config:      DefaultConfig(),
		Outputs:     []types.TaskOutputDefinition{},
		NewTask:     NewTask,
	}
)

Functions

func NewTask

func NewTask(ctx *types.TaskContext, options *types.TaskOptions) (types.Task, error)

Types

type Config

type Config struct {
	LimitPerBlock int    `yaml:"limitPerBlock" json:"limitPerBlock" require:"A.1" desc:"Maximum number of blob transactions to generate per block."`
	LimitTotal    int    `yaml:"limitTotal" json:"limitTotal" require:"A.2" desc:"Total limit on the number of blob transactions to generate."`
	LimitPending  int    `` /* 129-byte string literal not displayed */
	PrivateKey    string `yaml:"privateKey" json:"privateKey" require:"B" desc:"Private key of the wallet used to send blob transactions."`
	ChildWallets  uint64 `yaml:"childWallets" json:"childWallets" desc:"Number of child wallets to use for parallel transaction sending."`
	WalletSeed    string `yaml:"walletSeed" json:"walletSeed" desc:"Seed used to derive child wallet addresses deterministically."`

	RefillPendingLimit uint64   `yaml:"refillPendingLimit" json:"refillPendingLimit" desc:"Maximum pending refill transactions before waiting."`
	RefillFeeCap       *big.Int `yaml:"refillFeeCap" json:"refillFeeCap" desc:"Maximum fee cap (in wei) for refill transactions."`
	RefillTipCap       *big.Int `yaml:"refillTipCap" json:"refillTipCap" desc:"Maximum priority tip (in wei) for refill transactions."`
	RefillAmount       *big.Int `yaml:"refillAmount" json:"refillAmount" desc:"Amount (in wei) to transfer when refilling child wallets."`
	RefillMinBalance   *big.Int `yaml:"refillMinBalance" json:"refillMinBalance" desc:"Minimum balance (in wei) before triggering a refill."`

	BlobSidecars  uint64   `yaml:"blobSidecars" json:"blobSidecars" desc:"Number of blob sidecars to include per transaction."`
	BlobFeeCap    *big.Int `yaml:"blobFeeCap" json:"blobFeeCap" desc:"Maximum blob fee cap (in wei) for blob transactions."`
	FeeCap        *big.Int `yaml:"feeCap" json:"feeCap" desc:"Maximum fee cap (in wei) for blob transactions."`
	TipCap        *big.Int `yaml:"tipCap" json:"tipCap" desc:"Maximum priority tip (in wei) for blob transactions."`
	GasLimit      uint64   `yaml:"gasLimit" json:"gasLimit" desc:"Gas limit for blob transactions."`
	TargetAddress string   `yaml:"targetAddress" json:"targetAddress" desc:"Target address to send blob transactions to."`
	RandomTarget  bool     `yaml:"randomTarget" json:"randomTarget" desc:"If true, send blob transactions to random addresses."`
	CallData      string   `yaml:"callData" json:"callData" desc:"Hex-encoded call data to include in blob transactions."`
	BlobData      string   `yaml:"blobData" json:"blobData" desc:"Hex-encoded blob data to use in blob sidecars."`
	RandomAmount  bool     `yaml:"randomAmount" json:"randomAmount" desc:"If true, use random amounts for each transaction."`
	Amount        *big.Int `yaml:"amount" json:"amount" desc:"Amount (in wei) to send in each blob transaction."`
	LegacyBlobTx  bool     `yaml:"legacyBlobTx" json:"legacyBlobTx" desc:"If true, use legacy blob transaction format."`

	ClientPattern        string `` /* 127-byte string literal not displayed */
	ExcludeClientPattern string `yaml:"excludeClientPattern" json:"excludeClientPattern" desc:"Regex pattern to exclude certain client endpoints."`
}

func DefaultConfig

func DefaultConfig() Config

func (*Config) Validate

func (c *Config) Validate() error

type Task

type Task struct {
	// contains filtered or unexported fields
}

func (*Task) Config

func (t *Task) Config() any

func (*Task) Execute

func (t *Task) Execute(ctx context.Context) error

func (*Task) LoadConfig

func (t *Task) LoadConfig() error

func (*Task) Timeout

func (t *Task) Timeout() time.Duration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL