Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type API ¶ added in v0.5.0
type API struct { Internal struct { Subscribe func(context.Context, fraud.ProofType) (<-chan Proof, error) `perm:"public"` Get func(context.Context, fraud.ProofType) ([]Proof, error) `perm:"public"` } }
API is a wrapper around Module for the RPC. TODO(@distractedm1nd): These structs need to be autogenerated.
type Module ¶
type Module interface { // Subscribe allows to subscribe on a Proof pub sub topic by its type. Subscribe(context.Context, fraud.ProofType) (<-chan Proof, error) // Get fetches fraud proofs from the disk by its type. Get(context.Context, fraud.ProofType) ([]Proof, error) }
Module encompasses the behavior necessary to subscribe and broadcast fraud proofs within the network. Any method signature changed here needs to also be changed in the API struct.
type Proof ¶ added in v0.5.0
type Proof struct {
fraud.Proof
}
Proof embeds the fraud.Proof interface type to provide a concrete type for JSON serialization.
func (*Proof) MarshalJSON ¶ added in v0.5.0
func (*Proof) UnmarshalJSON ¶ added in v0.5.0
type Service ¶ added in v0.5.0
type Service struct {
fraud.Service
}
Service is an implementation of Module that uses fraud.Service as a backend. It is used to provide fraud proofs as a non-interface type to the API, and wrap fraud.Subscriber with a channel of Proofs.
type ServiceBreaker ¶ added in v0.9.2
type ServiceBreaker[S service] struct { Service S FraudType fraud.ProofType FraudServ fraud.Service // contains filtered or unexported fields }
ServiceBreaker wraps any service with fraud proof subscription of a specific type. If proof happens the service is Stopped automatically. TODO(@Wondertan): Support multiple fraud types.