Ejemplo n.º 1
0
 /// <summary>
 /// konstruktor wyliczający pewne zmienne z podanych argumentów
 /// </summary>
 /// <param name="addressBTC_Receiver">adres adresata</param>
 /// <param name="inputBTC">BTC wchodzące</param>
 /// <param name="outputBTC_Receiver">BTC dla adresata</param>
 /// <param name="inputTXhash">hashe transakcji, na podstawie których tworzona jest transakcja</param>
 /// <returns>nowa transakcja</returns>
  public Transaction createTransaction(string addressBTC_Receiver, int inputBTC, int outputBTC_Receiver, List<string> inputTXhash)
  {
      int outputBTC_Sender = inputBTC-outputBTC_Receiver;
      Transaction newTX = null;
      if (outputBTC_Sender>=0)
      {
      newTX = new Transaction(inputBTC, inputTXhash, outputBTC_Receiver, outputBTC_Sender, addressBTC_Receiver, this.address, this.publicKey);
      newTX.signature = getSignature(Base58CheckEncoding.DecodePlain(newTX.hashTX));
      }
     
     
      return newTX;
  }
Ejemplo n.º 2
0
 /// <summary>
 ///  Weryfikacja podpisu cyfrowego transakcji
 /// </summary>
 /// <param name="TX">transakcja</param>
 /// <returns>true-pozytywna weryfikacja, false - negatywna</returns>
 public bool checkTransaction(Transaction TX)
 {
     byte[] publicKeySender = Base58CheckEncoding.DecodePlain(TX.publicKeySender);
     byte[] signature = Base58CheckEncoding.DecodePlain(TX.signature);
     byte[] TxDataToSign = Base58CheckEncoding.DecodePlain(TX.hashTX);
     return ECDSASigner.verifyData(publicKeySender, signature, TxDataToSign);
 }