e2eutils

package
v1.10.0 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2024 License: MIT Imports: 30 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultMnemonicConfig = &MnemonicConfig{
	Mnemonic:     "test test test test test test test test test test test junk",
	CliqueSigner: "m/44'/60'/0'/0/0",
	Proposer:     "m/44'/60'/0'/0/1",
	Batcher:      "m/44'/60'/0'/0/2",
	Deployer:     "m/44'/60'/0'/0/3",
	Alice:        "m/44'/60'/0'/0/4",
	SequencerP2P: "m/44'/60'/0'/0/5",
	Bob:          "m/44'/60'/0'/0/7",
	Mallory:      "m/44'/60'/0'/0/8",
	SysCfgOwner:  "m/44'/60'/0'/0/9",
}

DefaultMnemonicConfig is the default mnemonic used in testing. We prefer a mnemonic rather than direct private keys to make it easier to export all testing keys in external tooling for use during debugging. If these values are changed, it is subject to breaking tests. They must be in sync with the values in the DeployConfig used to create the system.

Functions

func ApplyDeployConfigForks added in v1.5.0

func ApplyDeployConfigForks(deployConfig *genesis.DeployConfig)

func CollectAddresses

func CollectAddresses(sd *SetupData, dp *DeployParams) (out []common.Address)

CollectAddresses constructs a lists of addresses that may be used as fuzzing corpora or random address selection.

func Ether

func Ether(v uint64) *big.Int

Ether converts a uint64 Ether amount into a *big.Int amount in wei units, for allocating test balances.

func GetL2AllocsMode added in v1.9.5

func GetL2AllocsMode(dc *genesis.DeployConfig, t uint64) genesis.L2AllocsMode

func SystemConfigFromDeployConfig

func SystemConfigFromDeployConfig(deployConfig *genesis.DeployConfig) eth.SystemConfig

func TimeoutCtx

func TimeoutCtx(t *testing.T, timeout time.Duration) context.Context

func WriteDefaultJWT

func WriteDefaultJWT(t TestingBase) string

WriteDefaultJWT writes a testing JWT to the temporary directory of the test and returns the path to the JWT file.

Types

type Addresses

type Addresses struct {
	Deployer     common.Address
	CliqueSigner common.Address
	SysCfgOwner  common.Address

	// rollup actors
	Proposer     common.Address
	Batcher      common.Address
	SequencerP2P common.Address

	// prefunded L1/L2 accounts for testing
	Alice   common.Address
	Bob     common.Address
	Mallory common.Address
}

Addresses bundles the addresses for all common rollup addresses for testing purposes.

func (*Addresses) All

func (a *Addresses) All() []common.Address

type AllocParams

type AllocParams struct {
	L1Alloc          types.GenesisAlloc
	L2Alloc          types.GenesisAlloc
	PrefundTestUsers bool
}

AllocParams defines genesis allocations to apply on top of the genesis generated by deploy parameters. These allocations override existing allocations per account, i.e. the allocations are merged with AllocParams having priority.

type BlobsStore added in v1.5.0

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

BlobsStore is a simple in-memory store of blobs, for testing purposes

func NewBlobStore added in v1.5.0

func NewBlobStore() *BlobsStore

func (*BlobsStore) GetAllSidecars added in v1.9.3

func (store *BlobsStore) GetAllSidecars(ctx context.Context, l1Timestamp uint64) ([]*eth.BlobSidecar, error)

func (*BlobsStore) GetBlobSidecars added in v1.9.3

func (store *BlobsStore) GetBlobSidecars(ctx context.Context, ref eth.L1BlockRef, hashes []eth.IndexedBlobHash) ([]*eth.BlobSidecar, error)

func (*BlobsStore) GetBlobs added in v1.5.0

func (store *BlobsStore) GetBlobs(ctx context.Context, ref eth.L1BlockRef, hashes []eth.IndexedBlobHash) ([]*eth.Blob, error)

func (*BlobsStore) StoreBlob added in v1.5.0

func (store *BlobsStore) StoreBlob(blockTime uint64, indexedHash eth.IndexedBlobHash, blob *eth.Blob)

type DeployParams

type DeployParams struct {
	DeployConfig   *genesis.DeployConfig
	MnemonicConfig *MnemonicConfig
	Secrets        *Secrets
	Addresses      *Addresses
	AllocType      config.AllocType
}

DeployParams bundles the deployment parameters to generate further testing inputs with.

func MakeDeployParams

func MakeDeployParams(t require.TestingT, tp *TestParams) *DeployParams

type MnemonicConfig

type MnemonicConfig struct {
	Mnemonic string

	CliqueSigner string
	Deployer     string
	SysCfgOwner  string

	// rollup actors
	Proposer     string
	Batcher      string
	SequencerP2P string

	// prefunded L1/L2 accounts for testing
	Alice   string
	Bob     string
	Mallory string
}

MnemonicConfig configures the private keys for the hive testnet. It's json-serializable, so we can ship it to e.g. the hardhat script client.

func (*MnemonicConfig) Secrets

func (m *MnemonicConfig) Secrets() (*Secrets, error)

Secrets computes the private keys for all mnemonic paths, which can then be kept around for fast precomputed private key access.

type Secrets

type Secrets struct {
	Deployer     *ecdsa.PrivateKey
	CliqueSigner *ecdsa.PrivateKey
	SysCfgOwner  *ecdsa.PrivateKey

	// rollup actors
	Proposer     *ecdsa.PrivateKey
	Batcher      *ecdsa.PrivateKey
	SequencerP2P *ecdsa.PrivateKey

	// prefunded L1/L2 accounts for testing
	Alice   *ecdsa.PrivateKey
	Bob     *ecdsa.PrivateKey
	Mallory *ecdsa.PrivateKey

	// Share the wallet to be able to generate more accounts
	Wallet *hdwallet.Wallet
}

Secrets bundles secp256k1 private keys for all common rollup actors for testing purposes.

func (*Secrets) AccountAtIdx added in v1.9.0

func (s *Secrets) AccountAtIdx(idx int) *ecdsa.PrivateKey

func (*Secrets) Addresses

func (s *Secrets) Addresses() *Addresses

Addresses computes the ethereum address of each account, which can then be kept around for fast precomputed address access.

type SetupData

type SetupData struct {
	L1Cfg         *core.Genesis
	L2Cfg         *core.Genesis
	RollupCfg     *rollup.Config
	ChainSpec     *rollup.ChainSpec
	DeploymentsL1 *genesis.L1Deployments
}

SetupData bundles the L1, L2, rollup and deployment configuration data: everything for a full test setup.

func Setup

func Setup(t require.TestingT, deployParams *DeployParams, alloc *AllocParams) *SetupData

Setup computes the testing setup configurations from deployment configuration and optional allocation parameters.

type TestParams

type TestParams struct {
	MaxSequencerDrift   uint64
	SequencerWindowSize uint64
	ChannelTimeout      uint64
	L1BlockTime         uint64
	UseAltDA            bool
	AllocType           config.AllocType
}

TestParams parametrizes the most essential rollup configuration parameters

type TestingBase

type TestingBase interface {
	Cleanup(func())
	Error(args ...any)
	Errorf(format string, args ...any)
	Fail()
	FailNow()
	Failed() bool
	Fatal(args ...any)
	Fatalf(format string, args ...any)
	Helper()
	Log(args ...any)
	Logf(format string, args ...any)
	Name() string
	Setenv(key, value string)
	Skip(args ...any)
	SkipNow()
	Skipf(format string, args ...any)
	Skipped() bool
	TempDir() string
	Parallel()
}

TestingBase is an interface used for standard Go testing. This interface is used for unit tests, benchmarks, and fuzz tests and also emulated in Hive.

The Go testing.TB interface does not allow extensions by embedding the interface, so we repeat it here.

Jump to

Keyboard shortcuts

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