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;
            }
        }
예제 #4
0
 public RPCRequest(RPCOperations method, object[] parameters)
     : this(method.ToString(), parameters)
 {
 }
예제 #5
0
 public Task <RPCResponse> SendCommandAsync(RPCOperations commandName, params object[] parameters)
 {
     return(SendCommandAsync(commandName.ToString(), parameters));
 }
예제 #6
0
 public RPCResponse SendCommand(RPCOperations commandName, params object[] parameters)
 {
     return(SendCommand(commandName.ToString(), parameters));
 }
예제 #7
0
		public Task<RPCResponse> SendCommandAsync(RPCOperations commandName, params object[] parameters)
		{
			return SendCommandAsync(commandName.ToString(), parameters);
		}
예제 #8
0
		public RPCResponse SendCommand(RPCOperations commandName, params object[] parameters)
		{
			return SendCommand(commandName.ToString(), parameters);
		}