prysm-pulse/sharding/interfaces.go

33 lines
867 B
Go
Raw Normal View History

package sharding
import (
"math/big"
ethereum "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/sharding/contracts"
cli "gopkg.in/urfave/cli.v1"
)
// ShardingClient defines a service that provides full control and shared access of
// necessary components for a sharded Ethereum blockchain.
type ShardingClient interface {
Start() error
Close() error
Context() *cli.Context
CreateTXOpts(*big.Int) (*bind.TransactOpts, error)
ChainReader() ethereum.ChainReader
Account() *accounts.Account
SMCCaller() *contracts.SMCCaller
SMCTransactor() *contracts.SMCTransactor
DepositFlagSet() bool
DataDirFlag() string
}
// ShardingActor refers to either a notary, proposer, or observer.
type ShardingActor interface {
Start() error
Stop() error
}