mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-07 10:12:19 +00:00
44ad64ffa5
Former-commit-id: 8fbbb08b62c3ca59d5a74ecdc12944c9facc6ad6 [formerly 564ebef7667c7c3e5e2476046027961dbe900e4d] Former-commit-id: ac1af4f69f41c54afc520259285dfb68775be966
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
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"
|
|
)
|
|
|
|
// Service defines items that can be registered into a sharding client.
|
|
//
|
|
// life-cycle management is delegated to the sharding client. The service is allowed to
|
|
// initialize itself upon creation, but no goroutines should be spun up outside of the
|
|
// Start method.
|
|
type Service interface {
|
|
// Start is called after all services have been constructed and the networking
|
|
// layer was also initialized to spawn any goroutines required by the service.
|
|
Start() error
|
|
|
|
// Stop terminates all goroutines belonging to the service, blocking until they
|
|
// are all terminated.
|
|
Stop() error
|
|
}
|
|
|
|
// Node methods that must be implemented to run a sharding node.
|
|
type Node interface {
|
|
Start() error
|
|
Close()
|
|
CreateTXOpts(*big.Int) (*bind.TransactOpts, error)
|
|
ChainReader() ethereum.ChainReader
|
|
Account() *accounts.Account
|
|
SMCCaller() *contracts.SMCCaller
|
|
SMCTransactor() *contracts.SMCTransactor
|
|
DepositFlagSet() bool
|
|
}
|