public async Task <AdmissionControl.SubmitTransactionResponse> SendTransactionAsync( byte[] privateKey, RawTransaction rawTransaction) { var bytesTrx = rawTransaction.ToByteArray(); LibraHasher libraHasher = new LibraHasher(EHashType.RawTransaction); var hash = libraHasher.GetHash(bytesTrx); var key = Key.Import(SignatureAlgorithm.Ed25519, privateKey, KeyBlobFormat.RawPrivateKey); AdmissionControl.SubmitTransactionRequest req = new AdmissionControl.SubmitTransactionRequest(); req.SignedTxn = new SignedTransaction(); req.SignedTxn.RawTxnBytes = ByteString.CopyFrom(bytesTrx); req.SignedTxn.SenderPublicKey = ByteString.CopyFrom(key.Export(KeyBlobFormat.RawPublicKey)); var sig = SignatureAlgorithm.Ed25519.Sign(key, hash); req.SignedTxn.SenderSignature = ByteString.CopyFrom(sig); var result = await _client.SubmitTransactionAsync( req, new Metadata()); return(result); }
SendTransactionAsync( byte[] privateKey, RawTransactionLCS rawTransaction) { var bytesTrx = LCSCore.LCSerialize(rawTransaction); //Console.WriteLine(); //Console.WriteLine(bytesTrx.ByteArryToString()); //Console.WriteLine(); LibraHasher libraHasher = new LibraHasher(EHashType.RawTransaction); var hash = libraHasher.GetHash(bytesTrx); var key = Key.Import(SignatureAlgorithm.Ed25519, privateKey, KeyBlobFormat.RawPrivateKey); AdmissionControl.SubmitTransactionRequest req = new AdmissionControl.SubmitTransactionRequest(); req.Transaction = new SignedTransaction(); List <byte> retArr = new List <byte>(); retArr = retArr.Concat(bytesTrx).ToList(); retArr = retArr.Concat( LCSCore.LCSerialize(key.Export(KeyBlobFormat.RawPublicKey))).ToList(); var sig = SignatureAlgorithm.Ed25519.Sign(key, hash); retArr = retArr.Concat(LCSCore.LCSerialize(sig)).ToList(); req.Transaction.TxnBytes = ByteString.CopyFrom(retArr.ToArray()); var result = await _client.SubmitTransactionAsync( req, new Metadata()); return(result); }