Ethereum: Compute Txid or Bitcoin Transaction
Originally posted to stackoverflow but with no response. Thought i might have better luck here.
I’ve Successful Created a Bitcoin Transaction in C
According to the Protocol Specifications. Here are the key steps:
`Csharp
Using System;
using system.io;
Using Bitcoinet;
Class Program
{
Static Void Main (String [] Args)
{
// Load Bitcoin Transaction Data From File
Var Txid = file.readalltext (“txid.txt”);
// Get the txid array as a byte array
Var Txidbytes = New Byte [txid.length];
File.readbytes (New Filestream (“txid.txt”, FileMode.Open), Txidbytes, 0, txid.length);
// Convert byte Array to string and remove whitespace
Var Txidstring = “”;
FOREACH (VAR B in Txidbytes)
{
if (b! = ‘\ n’)
txidstring += b.tostring ();
}
// Remove Newline Character at End of String
txidstring = txidstring.trimend (‘\ r’, ‘\ n’);
// get the blockchain index from the file path
Var blockchainindex = Int.parse (file. readall text (“blockchain_index.txt”));
// Create A New Transaction with a Computed Txid
Var TX = New Bitcointransaction (
From: “0.1” + txidstring,
To: “0.2” + txidstring,
Amount: 10,
Scriptpubkey: New BIP39Publickey (Txidbytes),
Compressedscriptpubkey: New BIP39Compressedscriptpubkey (Txidbytes, blockchainindex)
);
// Print the Computed Transaction ID
Console.writeline (“computed txid:” + txid);
}
}
`
This script assumes you have a txid.txt
file containing your bitcoin transaction data in the format of[txid] [from] [to] [to] [scriptpubkey] [compressedscriptspubkey] [blockchain index]
. The Blockchain Index is assumed to be stored on a separate file named blockchain_index.txt
.
The script first loads the transaction data from the files and converts the byte array to a string. It then’s removes any whitespace characters from the string, resulting in a single string containing only the transaction id.
Next, it extracts the blockchain index from the file path using an integer value stored on a separate file named blockchain_index.txt
.
Finally, IT creates a new Bitcoin transaction with a computed transaction id by passing the txidstring to the from
,to
, amount
, andcompressedscript pubkey
parameters. The Transaction is then printed to the console.
Note: this script uses the bitcoinnet library, which is a popular .net implementation of the bitcoin protocol. Make Sure You Have Installed This Library Before Running the Script.
Example use case:
Suppose Your TXID.TXT
File” Contains the Following Data:
`
1234567890ABCDEF
10 0.1 0.2 Bitcoincash.com
`
Running the Script Will Output:
`
Computed TXID: ABCDefghijklmnopqrstuvwxyz
`