package adapters import ( "context" "math/big" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" ) type ChainAdapter interface { GetBlockByNumber(ctx context.Context, number int64) (*types.Block, error) GetTransaction(ctx context.Context, hash common.Hash) (*types.Transaction, bool, error) GetTransactionReceipt(ctx context.Context, hash common.Hash) (*types.Receipt, error) GetCode(ctx context.Context, address common.Address) ([]byte, error) GetBalance(ctx context.Context, address common.Address) (*big.Int, error) GetGasPrice(ctx context.Context) (*big.Int, error) ChainID() int64 }