generateblobtransactions

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Feb 29, 2024 License: GPL-3.0 Imports: 16 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",
		Config:      DefaultConfig(),
		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"`
	LimitTotal    int    `yaml:"limitTotal" json:"limitTotal"`
	LimitPending  int    `yaml:"limitPending" json:"limitPending"`
	PrivateKey    string `yaml:"privateKey" json:"privateKey"`
	ChildWallets  uint64 `yaml:"childWallets" json:"childWallets"`
	WalletSeed    string `yaml:"walletSeed" json:"walletSeed"`

	RefillPendingLimit uint64   `yaml:"refillPendingLimit" json:"refillPendingLimit"`
	RefillFeeCap       *big.Int `yaml:"refillFeeCap" json:"refillFeeCap"`
	RefillTipCap       *big.Int `yaml:"refillTipCap" json:"refillTipCap"`
	RefillAmount       *big.Int `yaml:"refillAmount" json:"refillAmount"`
	RefillMinBalance   *big.Int `yaml:"refillMinBalance" json:"refillMinBalance"`

	BlobSidecars  uint64   `yaml:"blobSidecars" json:"blobSidecars"`
	BlobFeeCap    *big.Int `yaml:"blobFeeCap" json:"blobFeeCap"`
	FeeCap        *big.Int `yaml:"feeCap" json:"feeCap"`
	TipCap        *big.Int `yaml:"tipCap" json:"tipCap"`
	GasLimit      uint64   `yaml:"gasLimit" json:"gasLimit"`
	TargetAddress string   `yaml:"targetAddress" json:"targetAddress"`
	RandomTarget  bool     `yaml:"randomTarget" json:"randomTarget"`
	CallData      string   `yaml:"callData" json:"callData"`
	BlobData      string   `yaml:"blobData" json:"blobData"`
	RandomAmount  bool     `yaml:"randomAmount" json:"randomAmount"`
	Amount        *big.Int `yaml:"amount" json:"amount"`

	ClientPattern        string `yaml:"clientPattern" json:"clientPattern"`
	ExcludeClientPattern string `yaml:"excludeClientPattern" json:"excludeClientPattern"`
}

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() interface{}

func (*Task) Description

func (t *Task) Description() string

func (*Task) Execute

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

func (*Task) LoadConfig

func (t *Task) LoadConfig() error

func (*Task) Logger

func (t *Task) Logger() logrus.FieldLogger

func (*Task) Name

func (t *Task) Name() string

func (*Task) Timeout

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

func (*Task) Title

func (t *Task) Title() string

Jump to

Keyboard shortcuts

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