ptr<MinerBlock> GetBlockTemplate(const vector<String>& capabilities) override { VarValue caps; for (int i=0; i<capabilities.size(); ++i) caps.Set(i, capabilities[i]); VarValue par; par.Set("capabilities", caps); VarValue jr = Call("getblocktemplate", par); return MinerBlock::FromJson(jr); }
void SubmitBlock(const ConstBuf& data, RCString workid) override { String sdata = EXT_STR(data); if (HasSubmitBlockMethod) { try { DBG_LOCAL_IGNORE_CONDITION(ExtErr::JSON_RPC_MethodNotFound); VarValue par; if (!workid.empty()) par.Set("workid", workid); ProcessSubmitResult(Call("submitblock", sdata, par)); return; } catch (const system_error& ex) { if (ex.code() != json_rpc_errc::MethodNotFound) { TRC(1, ex.what()); throw; } HasSubmitBlockMethod = false; } } if (!HasSubmitBlockMethod) { VarValue par; par.Set("data", sdata); ProcessSubmitResult(Call("getblocktemplate", par)); } }