public Transaction ToSignedTransaction(byte[] privateKey, byte[] publicKey) { _transaction.TimeStamp = DateTime.UtcNow; _transaction.Id = null; foreach (var inEntry in Inputs) { inEntry.PublicKey = null; inEntry.Signature = null; } var hash = HashUtil.ComputeTransactionSignHash(JsonSerializer.Serialize(_transaction)); var signature = SignManager.Signature(hash, privateKey, publicKey); foreach (var inEntry in Inputs) { inEntry.PublicKey = publicKey; inEntry.Signature = signature; } var txData = JsonSerializer.Serialize(_transaction); var txHash = HashUtil.DoubleSHA256(txData); _transaction.Id = new HexString(txHash); return(_transaction); }