/// <summary> /// Wait until the transaction is observable block chain /// </summary> /// <param name="transaction">the transaction to observe</param> /// <param name="timeout">TimeoutException throws after "timeout" seconds</param> /// <returns>the Transaction state, including vmState and blockhash</returns> public async Task <RpcTransaction> WaitTransactionAsync(Transaction transaction, int timeout = 60) { DateTime deadline = DateTime.UtcNow.AddSeconds(timeout); RpcTransaction rpcTx = null; while (rpcTx == null || rpcTx.Confirmations == null) { if (deadline < DateTime.UtcNow) { throw new TimeoutException(); } try { rpcTx = await rpcClient.GetRawTransactionAsync(transaction.Hash.ToString()).ConfigureAwait(false); if (rpcTx == null || rpcTx.Confirmations == null) { await Task.Delay((int)rpcClient.protocolSettings.MillisecondsPerBlock / 2); } } catch (Exception) { } } return(rpcTx); }
public void TestRpcTransaction() { JObject json = TestUtils.RpcTestCases.Find(p => p.Name == nameof(RpcClient.GetRawTransactionAsync).ToLower()).Response.Result; var item = RpcTransaction.FromJson(json); Assert.AreEqual(json.ToString(), item.ToJson().ToString()); }
/// <summary> /// Returns the corresponding transaction information, based on the specified hash value. /// verbose = true /// </summary> public async Task <RpcTransaction> GetRawTransactionAsync(string txHash) { var result = await RpcSendAsync(GetRpcName(), txHash, true).ConfigureAwait(false); return(RpcTransaction.FromJson(result, protocolSettings)); }
/// <summary> /// Returns the corresponding transaction information, based on the specified hash value. /// verbose = true /// </summary> public RpcTransaction GetRawTransaction(string txid) { return(RpcTransaction.FromJson(RpcSend("getrawtransaction", txid, true))); }
/// <summary> /// Returns the corresponding transaction information, based on the specified hash value. /// verbose = true /// </summary> public async Task <RpcTransaction> GetRawTransactionAsync(string txHash) { var result = await RpcSendAsync("getrawtransaction", txHash, true).ConfigureAwait(false); return(RpcTransaction.FromJson(result)); }