wait

package
v1.9.1 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2024 License: MIT Imports: 20 Imported by: 7

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AndGet

func AndGet[T interface{}](ctx context.Context, pollRate time.Duration, get func() (T, error), predicate func(T) bool) (T, error)

func For

func For(ctx context.Context, rate time.Duration, cb func() (bool, error)) error

func ForBalanceChange added in v1.4.2

func ForBalanceChange(ctx context.Context, client *ethclient.Client, address common.Address, initial *big.Int) (*big.Int, error)

func ForBlock

func ForBlock(ctx context.Context, client BlockCaller, n uint64) error

func ForBlockWithTimestamp added in v1.1.6

func ForBlockWithTimestamp(ctx context.Context, client BlockCaller, target uint64) error

func ForFinalizationPeriod

func ForFinalizationPeriod(ctx context.Context, client *ethclient.Client, l1ProvingBlockNum *big.Int, l2OutputOracleAddr common.Address) error

ForFinalizationPeriod waits until the L1 chain has progressed far enough that l1ProvingBlockNum has completed the finalization period. This functions polls and can block for a very long time if used on mainnet.

func ForGamePublished added in v1.6.1

func ForGamePublished(ctx context.Context, client *ethclient.Client, optimismPortalAddr common.Address, disputeGameFactoryAddr common.Address, l2BlockNumber *big.Int) (uint64, error)

ForGamePublished waits until a game is published on L1 for the given l2BlockNumber.

func ForNextBlock

func ForNextBlock(ctx context.Context, client BlockCaller) error

func ForNextSafeBlock added in v1.5.0

func ForNextSafeBlock(ctx context.Context, client BlockCaller) (*types.Block, error)

func ForOutputRootPublished

func ForOutputRootPublished(ctx context.Context, client *ethclient.Client, l2OutputOracleAddr common.Address, l2BlockNumber *big.Int) (uint64, error)

ForOutputRootPublished waits until there is an output published for an L2 block number larger than the supplied l2BlockNumber This function polls and can block for a very long time if used on mainnet. This returns the block number to use for proof generation.

func ForProcessingFullBatch added in v1.4.2

func ForProcessingFullBatch(ctx context.Context, rollupCl *sources.RollupClient) error

func ForReceipt

func ForReceipt(ctx context.Context, client *ethclient.Client, hash common.Hash, status uint64) (*types.Receipt, error)

func ForReceiptFail

func ForReceiptFail(ctx context.Context, client *ethclient.Client, hash common.Hash) (*types.Receipt, error)

func ForReceiptMaybe added in v1.9.0

func ForReceiptMaybe(ctx context.Context, client *ethclient.Client, hash common.Hash, status uint64, statusIgnore bool) (*types.Receipt, error)

ForReceiptMaybe waits for the receipt, but may be configured to ignore the status

func ForReceiptOK

func ForReceiptOK(ctx context.Context, client *ethclient.Client, hash common.Hash) (*types.Receipt, error)

func ForSafeBlock added in v1.6.1

func ForSafeBlock(ctx context.Context, rollupClient *sources.RollupClient, n uint64) error

func ForUnsafeBlock added in v1.5.0

func ForUnsafeBlock(ctx context.Context, rollupCl *sources.RollupClient, n uint64) error

func ForWithdrawalCheck added in v1.6.1

func ForWithdrawalCheck(ctx context.Context, client *ethclient.Client, withdrawal crossdomain.Withdrawal, optimismPortalAddr common.Address, proofSubmitter common.Address) error

ForWithdrawalCheck waits until the withdrawal check in the portal succeeds.

Types

type BlockCaller added in v1.2.0

type BlockCaller interface {
	BlockByNumber(ctx context.Context, number *big.Int) (*types.Block, error)
	BlockNumber(ctx context.Context) (uint64, error)
}

BlockCaller is a subset of the ethclient.Client interface encompassing methods that query for block information.

type CallTrace added in v1.9.0

type CallTrace struct {
	From    common.Address `json:"from"`
	Gas     hexutil.Uint64 `json:"gas"`
	GasUsed hexutil.Uint64 `json:"gasUsed"`
	To      common.Address `json:"to"`
	Input   hexutil.Bytes  `json:"input"`
	Output  hexutil.Bytes  `json:"output"`
	Error   string         `json:"error"`
	Value   hexutil.U256   `json:"value"`
	Type    string         `json:"type"`
}

type ReceiptStatusError added in v1.9.0

type ReceiptStatusError struct {
	Status  uint64
	TxTrace *TxTrace
}

func (*ReceiptStatusError) Error added in v1.9.0

func (rse *ReceiptStatusError) Error() string

type TxTrace added in v1.9.0

type TxTrace struct {
	CallTrace
	Calls []CallTrace `json:"calls"`
}

func DebugTraceTx added in v1.9.0

func DebugTraceTx(ctx context.Context, client *ethclient.Client, txHash common.Hash) (*TxTrace, error)

DebugTraceTx logs debug_traceTransaction output to aid in debugging unexpected receipt statuses

Jump to

Keyboard shortcuts

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