示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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);
        }