avalanche

package
v1.9.1-rc.14 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2022 License: BSD-3-Clause Imports: 21 Imported by: 1

Documentation

Overview

Package avalanche is a generated GoMock package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Ctx *snow.ConsensusContext
	common.AllGetsServer
	VM         vertex.DAGVM
	Manager    vertex.Manager
	Sender     common.Sender
	Validators validators.Set

	Params    avalanche.Parameters
	Consensus avalanche.Consensus
}

Config wraps all the parameters needed for an avalanche engine

type Engine

type Engine interface {
	common.Engine

	// GetVtx returns a vertex by its ID.
	// Returns an error if unknown.
	GetVtx(vtxID ids.ID) (avalanche.Vertex, error)
}

Engine describes the events that can occur on a consensus instance

func New

func New(config Config) (Engine, error)

func TraceEngine added in v1.9.2

func TraceEngine(engine Engine, tracer trace.Tracer) Engine

type EngineTest

type EngineTest struct {
	common.EngineTest

	CantGetVtx bool
	GetVtxF    func(vtxID ids.ID) (avalanche.Vertex, error)
}

EngineTest is a test engine

func (*EngineTest) Default

func (e *EngineTest) Default(cant bool)

func (*EngineTest) GetVtx

func (e *EngineTest) GetVtx(vtxID ids.ID) (avalanche.Vertex, error)

type MockEngine added in v1.9.2

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

MockEngine is a mock of Engine interface.

func NewMockEngine added in v1.9.2

func NewMockEngine(ctrl *gomock.Controller) *MockEngine

NewMockEngine creates a new mock instance.

func (*MockEngine) Accepted added in v1.9.2

func (m *MockEngine) Accepted(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []ids.ID) error

Accepted mocks base method.

func (*MockEngine) AcceptedFrontier added in v1.9.2

func (m *MockEngine) AcceptedFrontier(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []ids.ID) error

AcceptedFrontier mocks base method.

func (*MockEngine) AcceptedStateSummary added in v1.9.2

func (m *MockEngine) AcceptedStateSummary(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []ids.ID) error

AcceptedStateSummary mocks base method.

func (*MockEngine) Ancestors added in v1.9.2

func (m *MockEngine) Ancestors(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 [][]byte) error

Ancestors mocks base method.

func (*MockEngine) AppGossip added in v1.9.2

func (m *MockEngine) AppGossip(arg0 context.Context, arg1 ids.NodeID, arg2 []byte) error

AppGossip mocks base method.

func (*MockEngine) AppRequest added in v1.9.2

func (m *MockEngine) AppRequest(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 time.Time, arg4 []byte) error

AppRequest mocks base method.

func (*MockEngine) AppRequestFailed added in v1.9.2

func (m *MockEngine) AppRequestFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

AppRequestFailed mocks base method.

func (*MockEngine) AppResponse added in v1.9.2

func (m *MockEngine) AppResponse(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []byte) error

AppResponse mocks base method.

func (*MockEngine) Chits added in v1.9.2

func (m *MockEngine) Chits(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []ids.ID) error

Chits mocks base method.

func (*MockEngine) Connected added in v1.9.2

func (m *MockEngine) Connected(arg0 ids.NodeID, arg1 *version.Application) error

Connected mocks base method.

func (*MockEngine) Context added in v1.9.2

func (m *MockEngine) Context() *snow.ConsensusContext

Context mocks base method.

func (*MockEngine) CrossChainAppRequest added in v1.9.2

func (m *MockEngine) CrossChainAppRequest(arg0 context.Context, arg1 ids.ID, arg2 uint32, arg3 time.Time, arg4 []byte) error

CrossChainAppRequest mocks base method.

func (*MockEngine) CrossChainAppRequestFailed added in v1.9.2

func (m *MockEngine) CrossChainAppRequestFailed(arg0 context.Context, arg1 ids.ID, arg2 uint32) error

CrossChainAppRequestFailed mocks base method.

func (*MockEngine) CrossChainAppResponse added in v1.9.2

func (m *MockEngine) CrossChainAppResponse(arg0 context.Context, arg1 ids.ID, arg2 uint32, arg3 []byte) error

CrossChainAppResponse mocks base method.

func (*MockEngine) Disconnected added in v1.9.2

func (m *MockEngine) Disconnected(arg0 ids.NodeID) error

Disconnected mocks base method.

func (*MockEngine) EXPECT added in v1.9.2

func (m *MockEngine) EXPECT() *MockEngineMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockEngine) Get added in v1.9.2

func (m *MockEngine) Get(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 ids.ID) error

Get mocks base method.

func (*MockEngine) GetAccepted added in v1.9.2

func (m *MockEngine) GetAccepted(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []ids.ID) error

GetAccepted mocks base method.

func (*MockEngine) GetAcceptedFailed added in v1.9.2

func (m *MockEngine) GetAcceptedFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetAcceptedFailed mocks base method.

func (*MockEngine) GetAcceptedFrontier added in v1.9.2

func (m *MockEngine) GetAcceptedFrontier(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetAcceptedFrontier mocks base method.

func (*MockEngine) GetAcceptedFrontierFailed added in v1.9.2

func (m *MockEngine) GetAcceptedFrontierFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetAcceptedFrontierFailed mocks base method.

func (*MockEngine) GetAcceptedStateSummary added in v1.9.2

func (m *MockEngine) GetAcceptedStateSummary(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []uint64) error

GetAcceptedStateSummary mocks base method.

func (*MockEngine) GetAcceptedStateSummaryFailed added in v1.9.2

func (m *MockEngine) GetAcceptedStateSummaryFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetAcceptedStateSummaryFailed mocks base method.

func (*MockEngine) GetAncestors added in v1.9.2

func (m *MockEngine) GetAncestors(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 ids.ID) error

GetAncestors mocks base method.

func (*MockEngine) GetAncestorsFailed added in v1.9.2

func (m *MockEngine) GetAncestorsFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetAncestorsFailed mocks base method.

func (*MockEngine) GetFailed added in v1.9.2

func (m *MockEngine) GetFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetFailed mocks base method.

func (*MockEngine) GetStateSummaryFrontier added in v1.9.2

func (m *MockEngine) GetStateSummaryFrontier(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetStateSummaryFrontier mocks base method.

func (*MockEngine) GetStateSummaryFrontierFailed added in v1.9.2

func (m *MockEngine) GetStateSummaryFrontierFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

GetStateSummaryFrontierFailed mocks base method.

func (*MockEngine) GetVM added in v1.9.2

func (m *MockEngine) GetVM() common.VM

GetVM mocks base method.

func (*MockEngine) GetVtx added in v1.9.2

func (m *MockEngine) GetVtx(arg0 ids.ID) (avalanche.Vertex, error)

GetVtx mocks base method.

func (*MockEngine) Gossip added in v1.9.2

func (m *MockEngine) Gossip() error

Gossip mocks base method.

func (*MockEngine) Halt added in v1.9.2

func (m *MockEngine) Halt()

Halt mocks base method.

func (*MockEngine) HealthCheck added in v1.9.2

func (m *MockEngine) HealthCheck() (interface{}, error)

HealthCheck mocks base method.

func (*MockEngine) Notify added in v1.9.2

func (m *MockEngine) Notify(arg0 common.Message) error

Notify mocks base method.

func (*MockEngine) PullQuery added in v1.9.2

func (m *MockEngine) PullQuery(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 ids.ID) error

PullQuery mocks base method.

func (*MockEngine) PushQuery added in v1.9.2

func (m *MockEngine) PushQuery(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []byte) error

PushQuery mocks base method.

func (*MockEngine) Put added in v1.9.2

func (m *MockEngine) Put(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []byte) error

Put mocks base method.

func (*MockEngine) QueryFailed added in v1.9.2

func (m *MockEngine) QueryFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

QueryFailed mocks base method.

func (*MockEngine) Shutdown added in v1.9.2

func (m *MockEngine) Shutdown() error

Shutdown mocks base method.

func (*MockEngine) Start added in v1.9.2

func (m *MockEngine) Start(arg0 uint32) error

Start mocks base method.

func (*MockEngine) StateSummaryFrontier added in v1.9.2

func (m *MockEngine) StateSummaryFrontier(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []byte) error

StateSummaryFrontier mocks base method.

func (*MockEngine) Timeout added in v1.9.2

func (m *MockEngine) Timeout() error

Timeout mocks base method.

type MockEngineMockRecorder added in v1.9.2

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

MockEngineMockRecorder is the mock recorder for MockEngine.

func (*MockEngineMockRecorder) Accepted added in v1.9.2

func (mr *MockEngineMockRecorder) Accepted(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

Accepted indicates an expected call of Accepted.

func (*MockEngineMockRecorder) AcceptedFrontier added in v1.9.2

func (mr *MockEngineMockRecorder) AcceptedFrontier(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

AcceptedFrontier indicates an expected call of AcceptedFrontier.

func (*MockEngineMockRecorder) AcceptedStateSummary added in v1.9.2

func (mr *MockEngineMockRecorder) AcceptedStateSummary(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

AcceptedStateSummary indicates an expected call of AcceptedStateSummary.

func (*MockEngineMockRecorder) Ancestors added in v1.9.2

func (mr *MockEngineMockRecorder) Ancestors(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

Ancestors indicates an expected call of Ancestors.

func (*MockEngineMockRecorder) AppGossip added in v1.9.2

func (mr *MockEngineMockRecorder) AppGossip(arg0, arg1, arg2 interface{}) *gomock.Call

AppGossip indicates an expected call of AppGossip.

func (*MockEngineMockRecorder) AppRequest added in v1.9.2

func (mr *MockEngineMockRecorder) AppRequest(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call

AppRequest indicates an expected call of AppRequest.

func (*MockEngineMockRecorder) AppRequestFailed added in v1.9.2

func (mr *MockEngineMockRecorder) AppRequestFailed(arg0, arg1, arg2 interface{}) *gomock.Call

AppRequestFailed indicates an expected call of AppRequestFailed.

func (*MockEngineMockRecorder) AppResponse added in v1.9.2

func (mr *MockEngineMockRecorder) AppResponse(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

AppResponse indicates an expected call of AppResponse.

func (*MockEngineMockRecorder) Chits added in v1.9.2

func (mr *MockEngineMockRecorder) Chits(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

Chits indicates an expected call of Chits.

func (*MockEngineMockRecorder) Connected added in v1.9.2

func (mr *MockEngineMockRecorder) Connected(arg0, arg1 interface{}) *gomock.Call

Connected indicates an expected call of Connected.

func (*MockEngineMockRecorder) Context added in v1.9.2

func (mr *MockEngineMockRecorder) Context() *gomock.Call

Context indicates an expected call of Context.

func (*MockEngineMockRecorder) CrossChainAppRequest added in v1.9.2

func (mr *MockEngineMockRecorder) CrossChainAppRequest(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call

CrossChainAppRequest indicates an expected call of CrossChainAppRequest.

func (*MockEngineMockRecorder) CrossChainAppRequestFailed added in v1.9.2

func (mr *MockEngineMockRecorder) CrossChainAppRequestFailed(arg0, arg1, arg2 interface{}) *gomock.Call

CrossChainAppRequestFailed indicates an expected call of CrossChainAppRequestFailed.

func (*MockEngineMockRecorder) CrossChainAppResponse added in v1.9.2

func (mr *MockEngineMockRecorder) CrossChainAppResponse(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

CrossChainAppResponse indicates an expected call of CrossChainAppResponse.

func (*MockEngineMockRecorder) Disconnected added in v1.9.2

func (mr *MockEngineMockRecorder) Disconnected(arg0 interface{}) *gomock.Call

Disconnected indicates an expected call of Disconnected.

func (*MockEngineMockRecorder) Get added in v1.9.2

func (mr *MockEngineMockRecorder) Get(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

Get indicates an expected call of Get.

func (*MockEngineMockRecorder) GetAccepted added in v1.9.2

func (mr *MockEngineMockRecorder) GetAccepted(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

GetAccepted indicates an expected call of GetAccepted.

func (*MockEngineMockRecorder) GetAcceptedFailed added in v1.9.2

func (mr *MockEngineMockRecorder) GetAcceptedFailed(arg0, arg1, arg2 interface{}) *gomock.Call

GetAcceptedFailed indicates an expected call of GetAcceptedFailed.

func (*MockEngineMockRecorder) GetAcceptedFrontier added in v1.9.2

func (mr *MockEngineMockRecorder) GetAcceptedFrontier(arg0, arg1, arg2 interface{}) *gomock.Call

GetAcceptedFrontier indicates an expected call of GetAcceptedFrontier.

func (*MockEngineMockRecorder) GetAcceptedFrontierFailed added in v1.9.2

func (mr *MockEngineMockRecorder) GetAcceptedFrontierFailed(arg0, arg1, arg2 interface{}) *gomock.Call

GetAcceptedFrontierFailed indicates an expected call of GetAcceptedFrontierFailed.

func (*MockEngineMockRecorder) GetAcceptedStateSummary added in v1.9.2

func (mr *MockEngineMockRecorder) GetAcceptedStateSummary(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

GetAcceptedStateSummary indicates an expected call of GetAcceptedStateSummary.

func (*MockEngineMockRecorder) GetAcceptedStateSummaryFailed added in v1.9.2

func (mr *MockEngineMockRecorder) GetAcceptedStateSummaryFailed(arg0, arg1, arg2 interface{}) *gomock.Call

GetAcceptedStateSummaryFailed indicates an expected call of GetAcceptedStateSummaryFailed.

func (*MockEngineMockRecorder) GetAncestors added in v1.9.2

func (mr *MockEngineMockRecorder) GetAncestors(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

GetAncestors indicates an expected call of GetAncestors.

func (*MockEngineMockRecorder) GetAncestorsFailed added in v1.9.2

func (mr *MockEngineMockRecorder) GetAncestorsFailed(arg0, arg1, arg2 interface{}) *gomock.Call

GetAncestorsFailed indicates an expected call of GetAncestorsFailed.

func (*MockEngineMockRecorder) GetFailed added in v1.9.2

func (mr *MockEngineMockRecorder) GetFailed(arg0, arg1, arg2 interface{}) *gomock.Call

GetFailed indicates an expected call of GetFailed.

func (*MockEngineMockRecorder) GetStateSummaryFrontier added in v1.9.2

func (mr *MockEngineMockRecorder) GetStateSummaryFrontier(arg0, arg1, arg2 interface{}) *gomock.Call

GetStateSummaryFrontier indicates an expected call of GetStateSummaryFrontier.

func (*MockEngineMockRecorder) GetStateSummaryFrontierFailed added in v1.9.2

func (mr *MockEngineMockRecorder) GetStateSummaryFrontierFailed(arg0, arg1, arg2 interface{}) *gomock.Call

GetStateSummaryFrontierFailed indicates an expected call of GetStateSummaryFrontierFailed.

func (*MockEngineMockRecorder) GetVM added in v1.9.2

func (mr *MockEngineMockRecorder) GetVM() *gomock.Call

GetVM indicates an expected call of GetVM.

func (*MockEngineMockRecorder) GetVtx added in v1.9.2

func (mr *MockEngineMockRecorder) GetVtx(arg0 interface{}) *gomock.Call

GetVtx indicates an expected call of GetVtx.

func (*MockEngineMockRecorder) Gossip added in v1.9.2

func (mr *MockEngineMockRecorder) Gossip() *gomock.Call

Gossip indicates an expected call of Gossip.

func (*MockEngineMockRecorder) Halt added in v1.9.2

func (mr *MockEngineMockRecorder) Halt() *gomock.Call

Halt indicates an expected call of Halt.

func (*MockEngineMockRecorder) HealthCheck added in v1.9.2

func (mr *MockEngineMockRecorder) HealthCheck() *gomock.Call

HealthCheck indicates an expected call of HealthCheck.

func (*MockEngineMockRecorder) Notify added in v1.9.2

func (mr *MockEngineMockRecorder) Notify(arg0 interface{}) *gomock.Call

Notify indicates an expected call of Notify.

func (*MockEngineMockRecorder) PullQuery added in v1.9.2

func (mr *MockEngineMockRecorder) PullQuery(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

PullQuery indicates an expected call of PullQuery.

func (*MockEngineMockRecorder) PushQuery added in v1.9.2

func (mr *MockEngineMockRecorder) PushQuery(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

PushQuery indicates an expected call of PushQuery.

func (*MockEngineMockRecorder) Put added in v1.9.2

func (mr *MockEngineMockRecorder) Put(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

Put indicates an expected call of Put.

func (*MockEngineMockRecorder) QueryFailed added in v1.9.2

func (mr *MockEngineMockRecorder) QueryFailed(arg0, arg1, arg2 interface{}) *gomock.Call

QueryFailed indicates an expected call of QueryFailed.

func (*MockEngineMockRecorder) Shutdown added in v1.9.2

func (mr *MockEngineMockRecorder) Shutdown() *gomock.Call

Shutdown indicates an expected call of Shutdown.

func (*MockEngineMockRecorder) Start added in v1.9.2

func (mr *MockEngineMockRecorder) Start(arg0 interface{}) *gomock.Call

Start indicates an expected call of Start.

func (*MockEngineMockRecorder) StateSummaryFrontier added in v1.9.2

func (mr *MockEngineMockRecorder) StateSummaryFrontier(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

StateSummaryFrontier indicates an expected call of StateSummaryFrontier.

func (*MockEngineMockRecorder) Timeout added in v1.9.2

func (mr *MockEngineMockRecorder) Timeout() *gomock.Call

Timeout indicates an expected call of Timeout.

type Transitive

type Transitive struct {
	Config

	// list of NoOpsHandler for messages dropped by engine
	common.StateSummaryFrontierHandler
	common.AcceptedStateSummaryHandler
	common.AcceptedFrontierHandler
	common.AcceptedHandler
	common.AncestorsHandler

	RequestID uint32
	// contains filtered or unexported fields
}

Transitive implements the Engine interface by attempting to fetch all transitive dependencies.

func (*Transitive) AppGossip

func (t *Transitive) AppGossip(ctx context.Context, nodeID ids.NodeID, msg []byte) error

func (*Transitive) AppRequest

func (t *Transitive) AppRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, deadline time.Time, request []byte) error

func (*Transitive) AppRequestFailed

func (t *Transitive) AppRequestFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error

func (*Transitive) AppResponse

func (t *Transitive) AppResponse(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error

func (*Transitive) Chits

func (t *Transitive) Chits(ctx context.Context, nodeID ids.NodeID, requestID uint32, votes []ids.ID) error

func (*Transitive) Connected

func (t *Transitive) Connected(nodeID ids.NodeID, nodeVersion *version.Application) error

func (*Transitive) Context

func (t *Transitive) Context() *snow.ConsensusContext

func (*Transitive) CrossChainAppRequest added in v1.9.2

func (t *Transitive) CrossChainAppRequest(ctx context.Context, chainID ids.ID, requestID uint32, deadline time.Time, request []byte) error

func (*Transitive) CrossChainAppRequestFailed added in v1.9.2

func (t *Transitive) CrossChainAppRequestFailed(ctx context.Context, chainID ids.ID, requestID uint32) error

func (*Transitive) CrossChainAppResponse added in v1.9.2

func (t *Transitive) CrossChainAppResponse(ctx context.Context, chainID ids.ID, requestID uint32, response []byte) error

func (*Transitive) Disconnected

func (t *Transitive) Disconnected(nodeID ids.NodeID) error

func (*Transitive) GetFailed

func (t *Transitive) GetFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error

func (*Transitive) GetVM

func (t *Transitive) GetVM() common.VM

func (*Transitive) GetVtx

func (t *Transitive) GetVtx(vtxID ids.ID) (avalanche.Vertex, error)

func (*Transitive) Gossip

func (t *Transitive) Gossip() error

func (*Transitive) Halt

func (t *Transitive) Halt()

func (*Transitive) HealthCheck

func (t *Transitive) HealthCheck() (interface{}, error)

func (*Transitive) Initialize

func (m *Transitive) Initialize(namespace string, reg prometheus.Registerer) error

func (*Transitive) Notify

func (t *Transitive) Notify(msg common.Message) error

func (*Transitive) PullQuery

func (t *Transitive) PullQuery(ctx context.Context, nodeID ids.NodeID, requestID uint32, vtxID ids.ID) error

func (*Transitive) PushQuery

func (t *Transitive) PushQuery(ctx context.Context, nodeID ids.NodeID, requestID uint32, vtxBytes []byte) error

func (*Transitive) Put

func (t *Transitive) Put(ctx context.Context, nodeID ids.NodeID, requestID uint32, vtxBytes []byte) error

func (*Transitive) QueryFailed

func (t *Transitive) QueryFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error

func (*Transitive) Shutdown

func (t *Transitive) Shutdown() error

func (*Transitive) Start

func (t *Transitive) Start(startReqID uint32) error

func (*Transitive) Timeout

func (t *Transitive) Timeout() error

Directories

Path Synopsis
Package state manages the meta-data required by consensus for an avalanche dag.
Package state manages the meta-data required by consensus for an avalanche dag.
Package vertex is a generated GoMock package.
Package vertex is a generated GoMock package.

Jump to

Keyboard shortcuts

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