import "github.com/ethereum/go-ethereum/les/checkpointoracle"
Package checkpointoracle is a wrapper of checkpoint oracle contract with additional rules defined. This package can be used both in LES client or server side for offering oracle related APIs.
type CheckpointOracle struct {
// contains filtered or unexported fields
}
CheckpointOracle is responsible for offering the latest stable checkpoint generated and announced by the contract admins on-chain. The checkpoint can be verified by clients locally during the checkpoint syncing.
func New(config *params.CheckpointOracleConfig, getLocal func(uint64) params.TrustedCheckpoint) *CheckpointOracle
New creates a checkpoint oracle handler with given configs and callback.
func (oracle *CheckpointOracle) Contract() *checkpointoracle.CheckpointOracle
Contract returns the underlying raw checkpoint oracle contract.
func (oracle *CheckpointOracle) IsRunning() bool
IsRunning returns an indicator whether the oracle is running.
func (oracle *CheckpointOracle) StableCheckpoint() (*params.TrustedCheckpoint, uint64)
StableCheckpoint returns the stable checkpoint which was generated by local indexers and announced by trusted signers.
func (oracle *CheckpointOracle) Start(backend bind.ContractBackend)
Start binds the contract backend, initializes the oracle instance and marks the status as available.
func (oracle *CheckpointOracle) VerifySigners(index uint64, hash [32]byte, signatures [][]byte) (bool, []common.Address)
VerifySigners recovers the signer addresses according to the signature and checks whether there are enough approvals to finalize the checkpoint.
Package checkpointoracle imports 10 packages (graph) and is imported by 22 packages. Updated 2020-08-12. Refresh now. Tools for package owners.