/// <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)); }
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)); }