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
}
