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 }