예제 #1
0
        /// <summary>
        /// Signs transaction
        /// </summary>
        /// <param name="profile">profile of the signer</param>
        /// <param name="transaction">transaction to sign</param>
        /// <returns>encoded signed transaction</returns>
        public async Task <string> SignTransaction(Profile profile, PlasmaCore.Transactions.Transaction transaction)
        {
            byte[] encodedTx = transactionEncoder.EncodeRaw(transaction);
            string signature = await profile.SignTransaction(encodedTx);

            transaction.SetSignature(profile.ID, signature.HexToByteArray());
            return(transactionEncoder.EncodeSigned(transaction).ToHex(true));
        }
예제 #2
0
        public static string Sign(ITransactionEncoder txEncoder, Transaction transaction, string address, string privateKey)
        {
            byte[] encodedTx      = txEncoder.EncodeRaw(transaction);
            var    rawHash        = new Sha3Keccack().CalculateHash(encodedTx);
            var    ecKey          = new Nethereum.Signer.EthECKey(privateKey);
            var    ecdsaSignature = ecKey.SignAndCalculateV(rawHash);
            string signature      = Nethereum.Signer.EthECDSASignature.CreateStringSignature(ecdsaSignature);

            transaction.SetSignature(address, signature.HexToByteArray());
            return(txEncoder.EncodeSigned(transaction).ToHex(true));
        }