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);
        }
Beispiel #2
0
        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);
        }