git.gammaspectra.live/P2Pool/consensus/v3@v3.8.0/p2pool/stratum/message.go (about)

     1  package stratum
     2  
     3  import "git.gammaspectra.live/P2Pool/consensus/v3/types"
     4  
     5  type JsonRpcMessage struct {
     6  	// Id set by client
     7  	Id any `json:"id,omitempty"`
     8  	// JsonRpcVersion Always "2.0"
     9  	JsonRpcVersion string `json:"jsonrpc"`
    10  	Method         string `json:"method"`
    11  	Params         any    `json:"params,omitempty"`
    12  }
    13  type JsonRpcResult struct {
    14  	// Id set by client
    15  	Id any `json:"id,omitempty"`
    16  	// JsonRpcVersion Always "2.0"
    17  	JsonRpcVersion string `json:"jsonrpc"`
    18  	Result         any    `json:"result,omitempty"`
    19  	Error          any    `json:"error"`
    20  }
    21  
    22  type JsonRpcJob struct {
    23  	// JsonRpcVersion Always "2.0"
    24  	JsonRpcVersion string `json:"jsonrpc"`
    25  	// Method always "job"
    26  	Method string           `json:"method"`
    27  	Params jsonRpcJobParams `json:"params"`
    28  }
    29  
    30  type jsonRpcJobParams struct {
    31  	// Blob HashingBlob, in hex
    32  	Blob string `json:"blob"`
    33  
    34  	// JobId anything?
    35  	JobId string `json:"job_id"`
    36  
    37  	// Target uint64 target in hex
    38  	Target string `json:"target"`
    39  
    40  	// Algo always "rx/0"
    41  	Algo string `json:"algo"`
    42  
    43  	// Height main height
    44  	Height uint64 `json:"height"`
    45  
    46  	// SeedHash
    47  	SeedHash types.Hash `json:"seed_hash"`
    48  }
    49  type JsonRpcResponseJob struct {
    50  	// Id set by client
    51  	Id any `json:"id,omitempty"`
    52  	// JsonRpcVersion Always "2.0"
    53  	JsonRpcVersion string                   `json:"jsonrpc"`
    54  	Result         jsonRpcResponseJobResult `json:"result"`
    55  }
    56  
    57  type jsonRpcResponseJobResult struct {
    58  	Id         string           `json:"id,omitempty"`
    59  	Job        jsonRpcJobParams `json:"job"`
    60  	Extensions []string         `json:"extensions"`
    61  	Status     string           `json:"status"`
    62  }
    63  
    64  var baseRpcJob = JsonRpcJob{
    65  	JsonRpcVersion: "2.0",
    66  	Method:         "job",
    67  	Params: jsonRpcJobParams{
    68  		Algo: "rx/0",
    69  	},
    70  }
    71  
    72  var baseRpcResponseJob = JsonRpcResponseJob{
    73  	JsonRpcVersion: "2.0",
    74  	Result: jsonRpcResponseJobResult{
    75  		Job: jsonRpcJobParams{
    76  			Algo: "rx/0",
    77  		},
    78  		Extensions: []string{"algo"},
    79  		Status:     "OK",
    80  	},
    81  }
    82  
    83  func copyBaseJob() JsonRpcJob {
    84  	return baseRpcJob
    85  }
    86  
    87  func copyBaseResponseJob() JsonRpcResponseJob {
    88  	return baseRpcResponseJob
    89  }