code.vegaprotocol.io/vega@v0.79.0/wallet/api/node/node.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package node 17 18 import ( 19 "context" 20 21 apipb "code.vegaprotocol.io/vega/protos/vega/api/v1" 22 commandspb "code.vegaprotocol.io/vega/protos/vega/commands/v1" 23 nodetypes "code.vegaprotocol.io/vega/wallet/api/node/types" 24 ) 25 26 // Generates mocks 27 //go:generate go run github.com/golang/mock/mockgen -destination mocks/nodes_mocks.go -package mocks code.vegaprotocol.io/vega/wallet/api/node Node,Selector 28 29 // Node is the component used to get network information and send transactions. 30 type Node interface { 31 Host() string 32 Stop() error 33 CheckTransaction(context.Context, *commandspb.Transaction) error 34 SendTransaction(context.Context, *commandspb.Transaction, apipb.SubmitTransactionRequest_Type) (string, error) 35 Statistics(ctx context.Context) (nodetypes.Statistics, error) 36 LastBlock(context.Context) (nodetypes.LastBlock, error) 37 SpamStatistics(ctx context.Context, pubKey string) (nodetypes.SpamStatistics, error) 38 } 39 40 // ReportType defines the type of event that occurred. 41 type ReportType string 42 43 var ( 44 InfoEvent ReportType = "Info" 45 WarningEvent ReportType = "Warning" 46 ErrorEvent ReportType = "Error" 47 SuccessEvent ReportType = "Success" 48 ) 49 50 type SelectionReporter func(ReportType, string) 51 52 // Selector implementing the strategy for node selection. 53 type Selector interface { 54 Node(ctx context.Context, reporterFn SelectionReporter) (Node, error) 55 Stop() 56 }