prysm-pulse/sharding/interfaces.go
Raul Jordan dd384d3a22 sharding: refactor based on new design doc
Former-commit-id: b2defb3e277217d0d5bef86f1d4078668791d251 [formerly 6a6bd5c309442805ccac942325e0feef69dd17ab]
Former-commit-id: 2a26568478ed072db7c8e299eb40644b1c7c10d2
2018-06-02 18:29:35 -04:00

33 lines
867 B
Go

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
}