Sending

如何使用 c# 和 nbitcoin 庫發送比特幣?

  • April 5, 2016

我正在使用NBitcoin庫來創建我的私鑰和地址,但我找不到如何發送比特幣的範例。

有人有使用該庫c#發送比特幣的範常式式碼嗎?NBitcoin

你可以在這裡找到一個例子。

具體來說,請參見 Alice 向 Satoshi 發送比特幣的第一個範例:

Transaction aliceFunding = new Transaction()
{
  Outputs =
  {
      new TxOut("0.45", alice.GetAddress()),
      new TxOut("0.8", alice.Key.PubKey)
  }
};
Coin[] aliceCoins = aliceFunding
                   .Outputs
                   .Select((o, i) => new Coin(new OutPoint(aliceFunding.GetHash(), i), o))
                   .ToArray();

注意輸出(Alice 的初始硬幣)。第一個使用GetAddress() 獲取Alice 的私鑰(即P2PKH)對應的比特幣地址,而第二個使用Alice 的公鑰(即P2PK)。

事務是在這裡建構的:

var txBuilder = new TransactionBuilder();
var tx = txBuilder
   .AddCoins(aliceCoins)
   .AddKeys(alice.Key)
   .Send(satoshi.GetAddress(), "1.00")
   .SendFees("0.001")
   .SetChange(alice.GetAddress())
   .BuildTransaction(true);
Assert(txBuilder.Verify(tx)); //check fully signed

好的,我更新了程式碼:

//Load latest transaction:
       var blockr = new BlockrTransactionRepository();

       NBitcoin.uint256 check = new NBitcoin.uint256("4ebf7f7ca0a5dafd10b9bd74d8cb93a6eb0831bcb637fec8e8aabf842f1c2688");

       Transaction aliceFunding = blockr.Get(check);


       Coin[] aliceCoins = aliceFunding
                               .Outputs
                               .Select((o, i) => new Coin(new OutPoint(aliceFunding.GetHash(), i), o))
                               .ToArray();

       txBuilder = new TransactionBuilder();
       tx = txBuilder
           .AddCoins(aliceCoins)
           .AddKeys(alice.Key)
           .Send(satoshi.GetAddress(), "0.05")
           .SendFees("0.001")
           .SetChange(alice.GetAddress())
           .BuildTransaction(true);


       Assert(txBuilder.Verify(tx)); 

引用自:https://bitcoin.stackexchange.com/questions/43625