Documentation
¶
Index ¶
- Variables
- func CleanWallet(in string) (string, error)
- func DefaultLogger() *zap.Logger
- func HandleAuthorize(ctx *StratumContext, event JsonRpcEvent) error
- func HandleExtranonceSubscribe(ctx *StratumContext, event JsonRpcEvent) error
- func HandleSubmit(ctx *StratumContext, event JsonRpcEvent) error
- func HandleSubscribe(ctx *StratumContext, event JsonRpcEvent) error
- func NewMockContext(ctx context.Context, logger *zap.Logger, state any) (*StratumContext, *MockConnection)
- func SendExtranonce(ctx *StratumContext)
- type ContextSummary
- type DisconnectChannel
- type EventHandler
- type JsonRpcEvent
- type JsonRpcResponse
- type LineCallback
- type MockAddr
- type MockConnection
- func (mc *MockConnection) AsyncReadTestDataFromBuffer(handler func([]byte))
- func (mc *MockConnection) AsyncWriteTestDataToReadBuffer(s string)
- func (mc *MockConnection) Close() error
- func (mc *MockConnection) LocalAddr() net.Addr
- func (mc *MockConnection) Read(b []byte) (int, error)
- func (mc *MockConnection) ReadTestDataFromBuffer(handler func([]byte))
- func (mc *MockConnection) RemoteAddr() net.Addr
- func (mc *MockConnection) SetDeadline(t time.Time) error
- func (mc *MockConnection) SetReadDeadline(t time.Time) error
- func (mc *MockConnection) SetWriteDeadline(t time.Time) error
- func (mc *MockConnection) Write(b []byte) (int, error)
- type StateGenerator
- type StratumClientListener
- type StratumContext
- func (sc *StratumContext) Connected() bool
- func (StratumContext) Deadline() (time.Time, bool)
- func (sc *StratumContext) Disconnect()
- func (StratumContext) Done() <-chan struct{}
- func (StratumContext) Err() error
- func (sc *StratumContext) Reply(response JsonRpcResponse) error
- func (sc *StratumContext) ReplyBadShare(id any) error
- func (sc *StratumContext) ReplyDupeShare(id any) error
- func (sc *StratumContext) ReplyLowDiffShare(id any) error
- func (sc *StratumContext) ReplyStaleShare(id any) error
- func (sc *StratumContext) Send(event JsonRpcEvent) error
- func (sc *StratumContext) String() string
- func (sc *StratumContext) Summary() ContextSummary
- func (d StratumContext) Value(key any) any
- type StratumHandlerMap
- type StratumListener
- type StratumListenerConfig
- type StratumMethod
- type StratumStats
Constants ¶
This section is empty.
Variables ¶
var ErrorDisconnected = fmt.Errorf("disconnecting")
Functions ¶
func CleanWallet ¶
func DefaultLogger ¶
func HandleAuthorize ¶
func HandleAuthorize(ctx *StratumContext, event JsonRpcEvent) error
func HandleExtranonceSubscribe ¶
func HandleExtranonceSubscribe(ctx *StratumContext, event JsonRpcEvent) error
func HandleSubmit ¶
func HandleSubmit(ctx *StratumContext, event JsonRpcEvent) error
func HandleSubscribe ¶
func HandleSubscribe(ctx *StratumContext, event JsonRpcEvent) error
func NewMockContext ¶
func NewMockContext(ctx context.Context, logger *zap.Logger, state any) (*StratumContext, *MockConnection)
func SendExtranonce ¶
func SendExtranonce(ctx *StratumContext)
Types ¶
type ContextSummary ¶
type DisconnectChannel ¶
type DisconnectChannel chan *StratumContext
type EventHandler ¶
type EventHandler func(ctx *StratumContext, event JsonRpcEvent) error
type JsonRpcEvent ¶
type JsonRpcEvent struct { Id any `json:"id"` // id can be nil, a string, or an int Version string `json:"jsonrpc"` Method StratumMethod `json:"method"` Params []any `json:"params"` }
JsonRpcEvent represents a JSON-RPC event sent from the miner
func NewEvent ¶
func NewEvent(id string, method string, params []any) JsonRpcEvent
NewEvent creates a new JSON-RPC event with a given ID, method, and parameters
func UnmarshalEvent ¶
func UnmarshalEvent(in string) (JsonRpcEvent, error)
UnmarshalEvent parses a JSON string into a JsonRpcEvent
type JsonRpcResponse ¶
type JsonRpcResponse struct { Id any `json:"id"` Result any `json:"result"` Error any `json:"error"` // Changed to 'any' for better flexibility }
JsonRpcResponse represents a JSON-RPC response sent to the miner
func NewResponse ¶
func NewResponse(event JsonRpcEvent, results any, err any) JsonRpcResponse
NewResponse creates a new JSON-RPC response based on an incoming event
func UnmarshalResponse ¶
func UnmarshalResponse(in string) (JsonRpcResponse, error)
UnmarshalResponse parses a JSON string into a JsonRpcResponse
type LineCallback ¶
LineCallback defines the function signature for handling each received line
type MockAddr ¶
type MockAddr struct {
// contains filtered or unexported fields
}
MockAddr represents a fake network address for testing
type MockConnection ¶
type MockConnection struct {
// contains filtered or unexported fields
}
MockConnection simulates a network connection for testing purposes
func NewMockConnection ¶
func NewMockConnection() *MockConnection
NewMockConnection creates a new mock connection
func (*MockConnection) AsyncReadTestDataFromBuffer ¶
func (mc *MockConnection) AsyncReadTestDataFromBuffer(handler func([]byte))
AsyncReadTestDataFromBuffer asynchronously reads data
func (*MockConnection) AsyncWriteTestDataToReadBuffer ¶
func (mc *MockConnection) AsyncWriteTestDataToReadBuffer(s string)
AsyncWriteTestDataToReadBuffer writes test data asynchronously
func (*MockConnection) Close ¶
func (mc *MockConnection) Close() error
Close safely closes the connection, ensuring channels are closed only once
func (*MockConnection) LocalAddr ¶
func (mc *MockConnection) LocalAddr() net.Addr
LocalAddr returns the local address of the mock connection
func (*MockConnection) Read ¶
func (mc *MockConnection) Read(b []byte) (int, error)
Read reads data from the mock connection
func (*MockConnection) ReadTestDataFromBuffer ¶
func (mc *MockConnection) ReadTestDataFromBuffer(handler func([]byte))
ReadTestDataFromBuffer reads test data from the output buffer
func (*MockConnection) RemoteAddr ¶
func (mc *MockConnection) RemoteAddr() net.Addr
RemoteAddr returns the remote address of the mock connection
func (*MockConnection) SetDeadline ¶
func (mc *MockConnection) SetDeadline(t time.Time) error
SetDeadline sets both read and write deadlines
func (*MockConnection) SetReadDeadline ¶
func (mc *MockConnection) SetReadDeadline(t time.Time) error
SetReadDeadline sets the read deadline
func (*MockConnection) SetWriteDeadline ¶
func (mc *MockConnection) SetWriteDeadline(t time.Time) error
SetWriteDeadline sets the write deadline
type StateGenerator ¶
type StateGenerator func() any
type StratumClientListener ¶
type StratumClientListener interface { OnConnect(ctx *StratumContext) OnDisconnect(ctx *StratumContext) }
type StratumContext ¶
type StratumContext struct { RemoteAddr string RemotePort int WalletAddr string WorkerName string RemoteApp string Id int32 Logger *zap.Logger State any Extranonce string // contains filtered or unexported fields }
func (*StratumContext) Connected ¶
func (sc *StratumContext) Connected() bool
func (*StratumContext) Disconnect ¶
func (sc *StratumContext) Disconnect()
func (StratumContext) Done ¶
func (StratumContext) Done() <-chan struct{}
func (StratumContext) Err ¶
func (StratumContext) Err() error
func (*StratumContext) Reply ¶
func (sc *StratumContext) Reply(response JsonRpcResponse) error
func (*StratumContext) ReplyBadShare ¶
func (sc *StratumContext) ReplyBadShare(id any) error
func (*StratumContext) ReplyDupeShare ¶
func (sc *StratumContext) ReplyDupeShare(id any) error
func (*StratumContext) ReplyLowDiffShare ¶
func (sc *StratumContext) ReplyLowDiffShare(id any) error
func (*StratumContext) ReplyStaleShare ¶
func (sc *StratumContext) ReplyStaleShare(id any) error
func (*StratumContext) Send ¶
func (sc *StratumContext) Send(event JsonRpcEvent) error
func (*StratumContext) String ¶
func (sc *StratumContext) String() string
func (*StratumContext) Summary ¶
func (sc *StratumContext) Summary() ContextSummary
func (StratumContext) Value ¶
func (d StratumContext) Value(key any) any
type StratumHandlerMap ¶
type StratumHandlerMap map[string]EventHandler
func DefaultHandlers ¶
func DefaultHandlers() StratumHandlerMap
type StratumListener ¶
type StratumListener struct { StratumListenerConfig // contains filtered or unexported fields }
func NewListener ¶
func NewListener(cfg StratumListenerConfig) *StratumListener
func (*StratumListener) HandleEvent ¶
func (s *StratumListener) HandleEvent(ctx *StratumContext, event JsonRpcEvent) error
type StratumListenerConfig ¶
type StratumListenerConfig struct { Logger *zap.Logger HandlerMap StratumHandlerMap ClientListener StratumClientListener StateGenerator StateGenerator Port string }
func DefaultConfig ¶
func DefaultConfig(logger *zap.Logger) StratumListenerConfig
type StratumMethod ¶
type StratumMethod string
const ( StratumMethodSubscribe StratumMethod = "mining.subscribe" StratumMethodExtranonceSubscribe StratumMethod = "mining.extranonce.subscribe" StratumMethodAuthorize StratumMethod = "mining.authorize" StratumMethodSubmit StratumMethod = "mining.submit" )
type StratumStats ¶
type StratumStats struct {
Disconnects int64
}