// Copyright 2024. The Tari Project // // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the // following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following // disclaimer. // // 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the // following disclaimer in the documentation and/or other materials provided with the distribution. // // 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote // products derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE // USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. syntax = "proto3"; package tari.rpc; import "base_node.proto"; import "block.proto"; service ShaP2Pool { rpc GetTipInfo(GetTipInfoRequest) returns(GetTipInfoResponse); rpc GetNewBlock(GetNewBlockRequest) returns(GetNewBlockResponse); rpc SubmitBlock(SubmitBlockRequest) returns(tari.rpc.SubmitBlockResponse); } message GetTipInfoRequest { } message GetTipInfoResponse { uint64 node_height = 1; bytes node_tip_hash = 2; uint64 p2pool_rx_height = 3; bytes p2pool_rx_tip_hash = 4; uint64 p2pool_sha_height = 5; bytes p2pool_sha_tip_hash = 6; } message GetNewBlockRequest { tari.rpc.PowAlgo pow = 1; string coinbase_extra = 2; string wallet_payment_address = 3; } message GetNewBlockResponse { tari.rpc.GetNewBlockResult block = 1; uint64 target_difficulty = 2; } message SubmitBlockRequest { tari.rpc.Block block = 1; string wallet_payment_address = 2; }