/// <summary> /// 异步请求发送RPC交易 /// </summary> /// <typeparam name="TResult">返回结果</typeparam> /// <param name="txData">交易数据(rlp)</param> /// <param name="txSignature">交易签名</param> /// <returns>返回交易结果</returns> protected async Task <TResult> SendRequestAysnc <TResult>(byte[][] txData, EthECDSASignature txSignature) { var rlpSignedEncoded = RLPEncoder.EncodeSigned(new SignedData(txData, txSignature), 10).ToHex(); var request = new RpcRequest(this._requestId, JsonRPCAPIConfig.SendRawTransaction, new object[] { this._requestObjectId, rlpSignedEncoded }); var response = await _rpcClient.SendRequestAsync <TResult>(request); return(response); }
/// <summary> /// 请求发送RPC交易 /// </summary> /// <typeparam name="TResult">返回结果</typeparam> /// <param name="txData">交易数据(rlp)</param> /// <param name="txSignature">交易签名</param> /// <returns>返回交易结果</returns> protected TResult SendRequest <TResult>(byte[][] txData, EthECDSASignature txSignature) where TResult : class, new() { var rlpSignedEncoded = RLPEncoder.EncodeSigned(new SignedData(txData, txSignature), 10).ToHex(); var request = new RpcRequestMessage(this._requestId, JsonRPCAPIConfig.SendRawTransaction, new object[] { this._requestObjectId, rlpSignedEncoded }); var result = HttpUtils.RpcPost <TResult>(this._url, request); return(result); }
private string GetPrivateSignedTransaction(string txnSigned) { if (PrivateFor != null && PrivateFor.Count > 0) { var signedData = RLPDecoder.DecodeSigned(txnSigned.HexToByteArray(), 6); if (signedData.V[0] == 28) { signedData.V[0] = 38; } else { signedData.V[0] = 37; } return(RLPEncoder.EncodeSigned(signedData, 6).ToHex()); } return(txnSigned); }