Exemple #1
0
	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);
	}
Exemple #2
0
	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));
		}
	}