public async Task <T> SendRpcAsync <T>(RPCOperations command, params object[] parameters) { var result = await _rpcClient.SendCommandAsync(command, parameters) .ConfigureAwait(false); // starting from Overwinter update NBitcoin can not deserialize Zcash transaparent transactions, // as well as it has never been able to work with shielded Zcash transactions, // that's why custom models are used widely instead of built-in NBitcoin commands; // additionaly in case of exception we save context to investigate later: return(result.Result.ToObject <T>()); }
public async Task <RPCResponse> SendRpcAsync(RPCOperations command, params object[] parameters) { try { return(await _rpcClient.SendCommandAsync(new RPCRequest(command, parameters), true) .ConfigureAwait(false)); } catch (Exception ex) { Error = ex; throw; } }
public async Task <T> SendRpcAsync <T>(RPCOperations command, params object[] parameters) { var result = await SendRpcAsync(command, parameters); // starting from Overwinter update NBitcoin can not deserialize Zcash transaparent transactions, // as well as it has never been able to work with shielded Zcash transactions, // that's why custom models are used widely instead of built-in NBitcoin commands; // additionaly in case of exception we save context to investigate later: try { return(result.Result.ToObject <T>()); } catch (JsonSerializationException jex) { await _log.WriteErrorAsync(nameof(SendRpcAsync), $"Command: {command}, Response: {result.ResultString}", jex) .ConfigureAwait(false); Error = jex; throw; } }
public RPCRequest(RPCOperations method, object[] parameters) : this(method.ToString(), parameters) { }
public Task <RPCResponse> SendCommandAsync(RPCOperations commandName, params object[] parameters) { return(SendCommandAsync(commandName.ToString(), parameters)); }
public RPCResponse SendCommand(RPCOperations commandName, params object[] parameters) { return(SendCommand(commandName.ToString(), parameters)); }
public Task<RPCResponse> SendCommandAsync(RPCOperations commandName, params object[] parameters) { return SendCommandAsync(commandName.ToString(), parameters); }
public RPCResponse SendCommand(RPCOperations commandName, params object[] parameters) { return SendCommand(commandName.ToString(), parameters); }