storagespam

package
v1.1.17 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2026 License: MIT Imports: 16 Imported by: 0

README

Storage Spam

Send transactions that create storage entries and burn a specified amount of gas units.

Usage

spamoor storagespam [flags]

Configuration

Base Settings (required)
  • --privkey - Private key of the sending wallet
  • --rpchost - RPC endpoint(s) to send transactions to
Volume Control (either -c or -t required)
  • -c, --count - Total number of transactions to send
  • -t, --throughput - Transactions to send per slot
  • --max-pending - Maximum number of pending transactions
Transaction Settings
  • --basefee - Max fee per gas in gwei (default: 20)
  • --tipfee - Max tip per gas in gwei (default: 2)
  • --gas-units-to-burn - Number of gas units for each transaction to cost (default: 2000000)
  • --rebroadcast - Seconds to wait before rebroadcasting (default: 120)
Wallet Management
  • --max-wallets - Maximum number of child wallets to use
  • --refill-amount - ETH amount to fund each child wallet (default: 5)
  • --refill-balance - Minimum ETH balance before refilling (default: 2)
  • --refill-interval - Seconds between balance checks (default: 300)
Client Settings
  • --client-group - Client group to use for sending transactions
  • --deploy-client-group - Client group to use for deployment transactions (same as --client-group if empty)
Debug Options
  • -v, --verbose - Enable verbose output
  • --log-txs - Log all submitted transactions
  • --trace - Enable tracing output

Example

Send 100 storage spam transactions burning 5M gas each:

spamoor storagespam -p "<PRIVKEY>" -h http://rpc-host:8545 -c 100 --gas-units-to-burn 5000000

Send 2 storage spam transactions per slot burning 1M gas each:

spamoor storagespam -p "<PRIVKEY>" -h http://rpc-host:8545 -t 2 --gas-units-to-burn 1000000

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ScenarioDefaultOptions = ScenarioOptions{
	TotalCount:        0,
	Throughput:        100,
	MaxPending:        0,
	MaxWallets:        0,
	Rebroadcast:       1,
	BaseFee:           20,
	TipFee:            2,
	GasUnitsToBurn:    2000000,
	Timeout:           "",
	ClientGroup:       "",
	DeployClientGroup: "",
	LogTxs:            false,
	ReuseContract:     false,
}
View Source
var ScenarioDescriptor = scenario.Descriptor{
	Name:           ScenarioName,
	Description:    "Send storage spam transactions with different configurations",
	DefaultOptions: ScenarioDefaultOptions,
	NewScenario:    newScenario,
}
View Source
var ScenarioName = "storagespam"

Functions

This section is empty.

Types

type Scenario

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

func (*Scenario) Flags

func (s *Scenario) Flags(flags *pflag.FlagSet) error

func (*Scenario) Init

func (s *Scenario) Init(options *scenario.Options) error

func (*Scenario) Run

func (s *Scenario) Run(ctx context.Context) error

type ScenarioOptions

type ScenarioOptions struct {
	TotalCount        uint64  `yaml:"total_count"`
	Throughput        uint64  `yaml:"throughput"`
	MaxPending        uint64  `yaml:"max_pending"`
	MaxWallets        uint64  `yaml:"max_wallets"`
	Rebroadcast       uint64  `yaml:"rebroadcast"`
	BaseFee           float64 `yaml:"base_fee"`
	TipFee            float64 `yaml:"tip_fee"`
	BaseFeeWei        string  `yaml:"base_fee_wei"`
	TipFeeWei         string  `yaml:"tip_fee_wei"`
	GasUnitsToBurn    uint64  `yaml:"gas_units_to_burn"`
	Timeout           string  `yaml:"timeout"`
	ClientGroup       string  `yaml:"client_group"`
	DeployClientGroup string  `yaml:"deploy_client_group"`
	LogTxs            bool    `yaml:"log_txs"`
	ReuseContract     bool    `yaml:"reuse_contract"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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