api

package
v0.9.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2023 License: BSD-3-Clause Imports: 90 Imported by: 0

Documentation

Overview

Package api provides the functionality of the Mop client-facing HTTP API.

Index

Constants

View Source
const (
	ClusterPinHeader            = "Cluster-Pin"
	ClusterTagHeader            = "Cluster-Tag"
	ClusterEncryptHeader        = "Cluster-Encrypt"
	ClusterIndexDocumentHeader  = "Cluster-Index-Document"
	ClusterErrorDocumentHeader  = "Cluster-Error-Document"
	ClusterFeedIndexHeader      = "Cluster-Feed-Index"
	ClusterFeedIndexNextHeader  = "Cluster-Feed-Index-Next"
	ClusterCollectionHeader     = "Cluster-Collection"
	ClusterVoucherBatchIdHeader = "Cluster-Voucher-Batch-Id"
	ClusterDeferredUploadHeader = "Cluster-Deferred-Upload"
)

Variables

View Source
var Version = "0.0.0"

Version is set in the build process.

Functions

This section is empty.

Types

type ExtraOptions

type ExtraOptions struct {
	Pingpong         pingpong.Interface
	TopologyDriver   topology.Driver
	LightNodes       *lightnode.Container
	Accounting       bookkeeper.Interface
	Pseudosettle     settlement.Interface
	Swap             swap.Interface
	Chequebook       chequebook.Service
	BlockTime        *big.Int
	Tags             *tags.Tags
	Storer           storage.Storer
	Resolver         resolver.Interface
	Pss              psser.Interface
	TraversalService traverser.Traverser
	Pinning          pins.Interface
	FeedFactory      feeds.Factory
	Post             voucher.Service
	VoucherContract  vouchercontract.Interface
	PledgeContract   pledge.Service
	RewardContract   reward.Service
	Warden           warden.Interface
	SyncStatus       func() (bool, error)
	StoreDirectory   func() string
}

type FileInfo

type FileInfo struct {
	Path        string
	Name        string
	ContentType string
	Size        int64
	Reader      io.Reader
}

type MopNodeMode

type MopNodeMode uint
const (
	LightMode MopNodeMode = iota
	FullMode
	DevMode
	UltraLightMode
)

func (MopNodeMode) String

func (b MopNodeMode) String() string

type Options

type Options struct {
	CORSAllowedOrigins []string
	WsPingPeriod       time.Duration
	Restricted         bool
	NATAddr            string
}

type Peer

type Peer struct {
	Address  cluster.Address `json:"address"`
	FullNode bool            `json:"fullNode"`
}

Peer holds information about a Peer.

type Probe added in v0.9.1

type Probe struct {
	// contains filtered or unexported fields
}

Probe structure holds flags which indicate node healthiness (sometimes refert also as liveness) and readiness.

func NewProbe added in v0.9.1

func NewProbe() *Probe

NewProbe returns new Probe.

func (*Probe) Healthy added in v0.9.1

func (p *Probe) Healthy() ProbeStatus

Healthy returns the value of the healthy status.

func (*Probe) Ready added in v0.9.1

func (p *Probe) Ready() ProbeStatus

Ready returns the value of the ready status.

func (*Probe) SetHealthy added in v0.9.1

func (p *Probe) SetHealthy(ps ProbeStatus)

SetHealthy updates the value of the healthy status.

func (*Probe) SetReady added in v0.9.1

func (p *Probe) SetReady(ps ProbeStatus)

SetReady updates the value of the ready status.

type ProbeStatus added in v0.9.1

type ProbeStatus int32

ProbeStatus is the status of a probe. ProbeStatus is treated as a sync/atomic int32.

const (
	// ProbeStatusOK indicates positive ProbeStatus status.
	ProbeStatusOK ProbeStatus = 1

	// ProbeStatusNOK indicates negative ProbeStatus status.
	ProbeStatusNOK ProbeStatus = 0
)

func (ProbeStatus) String added in v0.9.1

func (ps ProbeStatus) String() string

String implements the fmt.Stringer interface.

type Service

type Service struct {
	Options

	http.Handler
	// contains filtered or unexported fields
}

func New

func New(publicKey, pssPublicKey ecdsa.PublicKey, bscAddress common.Address, logger log.Logger, transaction transaction.Service, batchStore voucher.Storer, mopMode MopNodeMode, chequebookEnabled bool, swapEnabled bool, chainBackend transaction.Backend, cors []string) *Service

func (*Service) Close

func (s *Service) Close() error

Close hangs up running websockets on shutdown.

func (*Service) Configure

func (s *Service) Configure(signer crypto.Signer, auth authenticator, tracer *tracer.Tracer, o Options, e ExtraOptions, chainID int64, erc20 erc20.Service) <-chan *pusher.Op

Configure will create a and initialize a new API service.

func (*Service) Metrics

func (s *Service) Metrics() []prometheus.Collector

func (*Service) MountAPI

func (s *Service) MountAPI()

func (*Service) MountDebug

func (s *Service) MountDebug(restricted bool)

func (*Service) MountTechnicalDebug

func (s *Service) MountTechnicalDebug()

func (*Service) MustRegisterMetrics

func (s *Service) MustRegisterMetrics(cs ...prometheus.Collector)

func (*Service) SetClusterAddress

func (s *Service) SetClusterAddress(addr *cluster.Address)

func (*Service) SetP2P

func (s *Service) SetP2P(p2p p2p.DebugService)

func (*Service) SetProbe added in v0.9.1

func (s *Service) SetProbe(probe *Probe)

type UpgradedResponseWriter

type UpgradedResponseWriter interface {
	http.ResponseWriter
	http.Pusher
	http.Hijacker
	http.Flusher
	// staticcheck SA1019 CloseNotifier interface is required by gorilla compress handler
	// nolint:staticcheck
	http.CloseNotifier
}

UpgradedResponseWriter adds more functionality on top of ResponseWriter

Directories

Path Synopsis
Package jsonhttp contains utility functions that make it easier to create JSON-based HTTP APIs.
Package jsonhttp contains utility functions that make it easier to create JSON-based HTTP APIs.
jsonhttptest
Package jsonhttptest helps with end-to-end testing of JSON-based HTTP APIs.
Package jsonhttptest helps with end-to-end testing of JSON-based HTTP APIs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL