Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    [Dev] Documenting Feathercoin Specific Software settings - Part 6

    Technical Development
    1
    50
    10083
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wrapper
      wrapper Moderators last edited by

      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

      Add stealth address : - commit

      https://github.com/FeatherCoin/Feathercoin/commit/e993143a1688a6aa57c03da6f181f8bf2f375bf6

      src/stealth.h

      Large new file, with 122 lines of code

       + // Copyright (c) 2014 The ShadowCoin developers
       + // Distributed under the MIT/X11 software license, see the accompanying
       + // file license.txt or http://www.opensource.org/licenses/mit-license.php.
       + 
       + #ifndef BITCOIN_STEALTH_H
       + #define BITCOIN_STEALTH_H
       + 
       + #include "util.h"
       + #include "serialize.h"
       + 
       + #include <stdlib.h> 
       + #include <stdio.h> 
       + #include <vector>
       + #include <inttypes.h>
       + 
       + 
       + typedef std::vector<uint8_t> data_chunk;
       + 
       + const size_t ec_secret_size = 32;
       + const size_t ec_compressed_size = 33;
       + const size_t ec_uncompressed_size = 65;
       + 
       + typedef struct ec_secret { uint8_t e[ec_secret_size]; } ec_secret;
       + typedef data_chunk ec_point;
       + 
       + typedef uint32_t stealth_bitfield;
       + 
       + struct stealth_prefix
       + {
       +     uint8_t number_bits;
       +     stealth_bitfield bitfield;
       + };
       + 
       + template <typename T, typename Iterator>
       + T from_big_endian(Iterator in)
       + {
       +     //VERIFY_UNSIGNED(T);
       +     T out = 0;
       +     size_t i = sizeof(T);
       +     while (0 < i)
       +         out |= static_cast<T>(*in     +      + ) << (8 * --i);
       +     return out;
       + }
       + 
       + template <typename T, typename Iterator>
       + T from_little_endian(Iterator in)
       + {
       +     //VERIFY_UNSIGNED(T);
       +     T out = 0;
       +     size_t i = 0;
       +     while (i < sizeof(T))
       +         out |= static_cast<T>(*in     +      + ) << (8 * i     +      + );
       +     return out;
       + }
       + 
       + class CStealthAddress
       + {
       + public:
       +     CStealthAddress()
       +     {
       +         options = 0;
       +     }
       +     
       +     uint8_t options;
       +     ec_point scan_pubkey;
       +     ec_point spend_pubkey;
       +     //std::vector<ec_point> spend_pubkeys;
       +     size_t number_signatures;
       +     stealth_prefix prefix;
       +     
       +     mutable std::string label;
       +     data_chunk scan_secret;
       +     data_chunk spend_secret;
       +     
       +     bool SetEncoded(const std::string& encodedAddress);
       +     std::string Encoded() const;
       +     
       +     bool operator <(const CStealthAddress& y) const
       +     {
       +         return memcmp(&scan_pubkey[0], &y.scan_pubkey[0], ec_compressed_size) < 0;
       +     }
       +     
       +     bool operator == (const CStealthAddress& y) const
       +     {
       +         return (scan_pubkey == y.scan_pubkey) &&
       +                 (spend_pubkey == y.spend_pubkey) &&
       +                 (scan_secret == y.scan_secret) &&
       +                 (spend_secret == y.spend_secret);
       +     }
       +     
       +     IMPLEMENT_SERIALIZE
       +     (
       +         READWRITE(this->options);
       +         READWRITE(this->scan_pubkey);
       +         READWRITE(this->spend_pubkey);
       +         READWRITE(this->label);
       +         
       +         READWRITE(this->scan_secret);
       +         READWRITE(this->spend_secret);
       +     );
       +     
       +     
       + 
       + };
       + 
       + void AppendChecksum(data_chunk& data);
       + 
       + bool VerifyChecksum(const data_chunk& data);
       + 
       + int GenerateRandomSecret(ec_secret& out);
       + 
       + int SecretToPublicKey(const ec_secret& secret, ec_point& out);
       + 
       + int StealthSecret(ec_secret& secret, ec_point& pubkey, const ec_point& pkSpend, ec_secret& sharedSOut, ec_point& pkOut);
       + int StealthSecretSpend(ec_secret& scanSecret, ec_point& ephemPubkey, ec_secret& spendSecret, ec_secret& secretOut);
       + int StealthSharedToSecretSpend(ec_secret& sharedS, ec_secret& spendSecret, ec_secret& secretOut);
       + 
       + bool IsStealthAddress(const std::string& encodedAddress);
       + 
       + 
       + #endif  // BITCOIN_STEALTH_H
       + 
      

      New file include, how to handle going forward?

      1 Reply Last reply Reply Quote 1
      • wrapper
        wrapper Moderators last edited by

        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

        Add stealth address : - commit

        https://github.com/FeatherCoin/Feathercoin/commit/e993143a1688a6aa57c03da6f181f8bf2f375bf6

        src/ui_interface.h

         +    /** Ask the user whether they want to pay a fee or not. */
         +    boost::signals2::signal<bool (int64_t nFeeRequired, const std::string& strCaption), boost::signals2::last_value<bool> > ThreadSafeAskFee;
         +    
        

        Code added

        1 Reply Last reply Reply Quote 1
        • wrapper
          wrapper Moderators last edited by

          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

          Add stealth address : - commit

          https://github.com/FeatherCoin/Feathercoin/commit/e993143a1688a6aa57c03da6f181f8bf2f375bf6

          src/ui_interface.h

           +    /** Ask the user whether they want to pay a fee or not. */
           +    boost::signals2::signal<bool (int64_t nFeeRequired, const std::string& strCaption), boost::signals2::last_value<bool> > ThreadSafeAskFee;
           +    
          

          Code added

          1 Reply Last reply Reply Quote 1
          • wrapper
            wrapper Moderators last edited by

            Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

            Add stealth address : - commit

            https://github.com/FeatherCoin/Feathercoin/commit/e993143a1688a6aa57c03da6f181f8bf2f375bf6

            src/wallet.cpp

            Large number of changes

             + #if defined(_MSC_VER) || defined(__MSVCRT__)
             +   /* (s)size_t and ptrdiff_t have the same size specifier in MSVC:
             +      http://msdn.microsoft.com/en-us/library/tcxf1dw6%28v=vs.100%29.aspx
             +    */
             +   #define PRIszx    "Ix"
             +   #define PRIszu    "Iu"
             +   #define PRIszd    "Id"
             +   #define PRIpdx    "Ix"
             +   #define PRIpdu    "Iu"
             +   #define PRIpdd    "Id"
             + #else /* C99 standard */
             +   #define PRIszx    "zx"
             +   #define PRIszu    "zu"
             +   #define PRIszd    "zd"
             +   #define PRIpdx    "tx"
             +   #define PRIpdu    "tu"
             +   #define PRIpdd    "td"
             + #endif
             + 
            

            Code added

             + bool CWallet::Lock()
             + {
             +     if (IsLocked())
             +         return true;
             +     
             +     if (fDebug)
             +         printf("Locking wallet.\n");
             +     
             +     {
             +         LOCK(cs_wallet);
             +         CWalletDB wdb(strWalletFile);
             +         
             +         // -- load encrypted spend_secret of stealth addresses
             +         CStealthAddress sxAddrTemp;
             +         std::set<CStealthAddress>::iterator it;
             +         for (it = stealthAddresses.begin(); it != stealthAddresses.end();      +      + it)
             +         {
             +             if (it->scan_secret.size() < 32)
             +                 continue; // stealth address is not owned
             +             // -- CStealthAddress are only sorted on spend_pubkey
             +             CStealthAddress &sxAddr = const_cast<CStealthAddress&>(*it);
             +             if (fDebug)
             +                 printf("Recrypting stealth key %s\n", sxAddr.Encoded().c_str());
             +             
             +             sxAddrTemp.scan_pubkey = sxAddr.scan_pubkey;
             +             if (!wdb.ReadStealthAddress(sxAddrTemp))
             +             {
             +                 printf("Error: Failed to read stealth key from db %s\n", sxAddr.Encoded().c_str());
             +                 continue;
             +             }
             +             sxAddr.spend_secret = sxAddrTemp.spend_secret;
             +         };
             +     }
             +     return LockKeyStore();
             + };
            

            Code added

             +        UnlockStealthAddresses(vMasterKey);
            

            Code added

             -            if (CCryptoKeyStore::Unlock(vMasterKey))
             +            if (CCryptoKeyStore::Unlock(vMasterKey)&& UnlockStealthAddresses(vMasterKey))
            

            Code replaced

             +         std::set<CStealthAddress>::iterator it;
             +         for (it = stealthAddresses.begin(); it != stealthAddresses.end();      +      + it)
             +         {
             +             if (it->scan_secret.size() < 32)
             +                 continue; // stealth address is not owned
             +             // -- CStealthAddress is only sorted on spend_pubkey
             +             CStealthAddress &sxAddr = const_cast<CStealthAddress&>(*it);
             +             
             +             if (fDebug)
             +                 printf("Encrypting stealth key %s\n", sxAddr.Encoded().c_str());
             +             
             +             std::vector<unsigned char> vchCryptedSecret;
             +             
             +             CSecret vchSecret;
             +             vchSecret.resize(32);
             +             memcpy(&vchSecret[0], &sxAddr.spend_secret[0], 32);
             +             
             +             uint256 iv = Hash(sxAddr.spend_pubkey.begin(), sxAddr.spend_pubkey.end());
             +             if (!EncryptSecret(vMasterKey, vchSecret, iv, vchCryptedSecret))
             +             {
             +                 printf("Error: Failed encrypting stealth key %s\n", sxAddr.Encoded().c_str());
             +                 continue;
             +             };
             +             
             +             sxAddr.spend_secret = vchCryptedSecret;
             +             pwalletdbEncryption->WriteStealthAddress(sxAddr);
             +         };
             +            +  
            

            Code added

             +         	
             +         FindStealthTransactions(tx);
             +        
            

            Code added

             -bool CWallet::CreateTransaction(const vector<pair<CScript, int64_t> >& vecSend,
             + bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, 
             -                                CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl* coinControl)
             +                                 CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, int32_t& nChangePos, std::string& strFailReason, const CCoinControl* coinControl)
            

            Code replaced

             -    vector<CTxOut>::iterator position = wtxNew.vout.begin()+GetRandInt(wtxNew.vout.size()+1);
            

            Code removed

             +                         vector<CTxOut>::iterator position = wtxNew.vout.begin() + GetRandInt(wtxNew.vout.size() +  1);
             +                     
             +                         if (position > wtxNew.vout.begin() && position < wtxNew.vout.end())
             +                         {
             +                             while (position > wtxNew.vout.begin())
             +                             {
             +                                 if (position->nValue != 0)
             +                                     break;
             +                                 position--;
             +                             };
             +                         };
            
                                      wtxNew.vout.insert(position, newTxOut);
            
             +                         nChangePos = std::distance(wtxNew.vout.begin(), position);
            

            Code added

             - bool CWallet::CreateTransaction(CScript scriptPubKey, int64_t nValue,
             -     CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl* coinControl)
            
             + bool CWallet::CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, std::string& strFailReason, const CCoinControl* coinControl)
            

            Code replaced

             -    return CreateTransaction(vecSend, wtxNew, reservekey, nFeeRet, strFailReason, coinControl);
            

            Code removed

             +     int nChangePos;
             +     string strError;
             +     bool rv = CreateTransaction(vecSend, wtxNew, reservekey, nFeeRet, nChangePos, strError, coinControl);
             +     return rv;
             + }
             + 
             + bool CWallet::NewStealthAddress(std::string& sError, std::string& sLabel, CStealthAddress& sxAddr)
             + {
             +     ec_secret scan_secret;
             +     ec_secret spend_secret;
             +     
             +     if (GenerateRandomSecret(scan_secret) != 0
             +         || GenerateRandomSecret(spend_secret) != 0)
             +     {
             +         sError = "GenerateRandomSecret failed.";
             +         printf("Error CWallet::NewStealthAddress - %s\n", sError.c_str());
             +         return false;
             +     };
             +     
             +     ec_point scan_pubkey, spend_pubkey;
             +     if (SecretToPublicKey(scan_secret, scan_pubkey) != 0)
             +     {
             +         sError = "Could not get scan public key.";
             +         printf("Error CWallet::NewStealthAddress - %s\n", sError.c_str());
             +         return false;
             +     };
             +     
             +     if (SecretToPublicKey(spend_secret, spend_pubkey) != 0)
             +     {
             +         sError = "Could not get spend public key.";
             +         printf("Error CWallet::NewStealthAddress - %s\n", sError.c_str());
             +         return false;
             +     };
             +     
             +     if (fDebug)
            

            Start of large section of code added from lines 1500 to 2128

             +    FindStealthTransactions(wtxNew);
             +    
            

            Code added

             +        LogPrintf("CommitTransaction start................\n");
            
             +        LogPrintf("CommitTransaction Broadcast start.............\n");
            
             +        LogPrintf("CommitTransaction RelayWalletTransaction............\n");
            

            Code added for LofPrintf

              - string CWallet::SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew)
            

            Code replaced

             + //string CWallet::SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew)
             + string CWallet::SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, bool fAskFee)
            

            Code replaced

             +     //if (fAskFee && !uiInterface.ThreadSafeAskFee(nFeeRequired))
             +     if (fAskFee && !uiInterface.ThreadSafeAskFee(nFeeRequired, _("Sending...")))
             +         return "ABORTED";
             +         
             +     LogPrintf("SendMoney, scriptPubKey=%s \n",scriptPubKey.ToString());
             +     
            

            Code added

             -string CWallet::SendMoneyToDestination(const CTxDestination& address, int64_t nValue, CWalletTx& wtxNew)
             + //string CWallet::SendMoneyToDestination(const CTxDestination& address, int64_t nValue, CWalletTx& wtxNew)
             + string CWallet::SendMoneyToDestination(const CTxDestination& address, int64 nValue, CWalletTx& wtxNew, bool fAskFee)
            

            Code replaced

              -    return SendMoney(scriptPubKey, nValue, wtxNew);
            
             +		LogPrintf("SendMoneyToDestination.....................\n"); 
             +		
             +    return SendMoney(scriptPubKey, nValue, wtxNew, fAskFee);
            

            Code replaced

            1 Reply Last reply Reply Quote 1
            • wrapper
              wrapper Moderators last edited by

              Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

              Add stealth address : - commit

              https://github.com/FeatherCoin/Feathercoin/commit/e993143a1688a6aa57c03da6f181f8bf2f375bf6

              src/wallet.h

              Large number of updates

               + #include "stealth.h"
              
               + typedef std::map<CKeyID, CStealthKeyMetadata> StealthKeyMetaMap;
               + typedef std::map<std::string, std::string> mapValue_t;
              
               +     std::set<CStealthAddress> stealthAddresses;
               +     StealthKeyMetaMap mapStealthKeyMeta;
               +     uint32_t nStealth, nFoundStealth; // for reporting, zero before use
               +     
              
               +     bool Lock();
              

              Code added

               -    bool CreateTransaction(const std::vector<std::pair<CScript, int64_t> >& vecSend,
               -                           CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL);
               -    bool CreateTransaction(CScript scriptPubKey, int64_t nValue,
               -                           CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL);
              
               -    std::string SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew);
               -    std::string SendMoneyToDestination(const CTxDestination &address, int64_t nValue, CWalletTx& wtxNew);
              

              Code replaced

               +     /*bool CreateTransaction(const std::vector<std::pair<CScript, int64_t> >& vecSend,
               +                            CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL);*/
               +     bool CreateTransaction(const std::vector<std::pair<CScript, int64> >& vecSend,
               +                            CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, int32_t& nChangePos, std::string& strFailReason, const CCoinControl *coinControl=NULL);                           	
               +     /*bool CreateTransaction(CScript scriptPubKey, int64_t nValue,
               +                            CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL);*/
               +     bool CreateTransaction(CScript scriptPubKey, int64 nValue,
               +                            CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL);
               +     	
                     bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey);
              
               +   //std::string SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew);
               +     std::string SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, bool fAskFee=false);  	
               +   //std::string SendMoneyToDestination(const CTxDestination &address, int64_t nValue, CWalletTx& wtxNew);
               +     std::string SendMoneyToDestination(const CTxDestination& address, int64_t nValue, CWalletTx& wtxNew, bool fAskFee=false);
               + 	
               +     bool NewStealthAddress(std::string& sError, std::string& sLabel, CStealthAddress& sxAddr);
               +     bool AddStealthAddress(CStealthAddress& sxAddr);
               +     bool UnlockStealthAddresses(const CKeyingMaterial& vMasterKeyIn);
               +     bool UpdateStealthAddress(std::string &addr, std::string &label, bool addIfNotExist);
               +     
               +     bool CreateStealthTransaction(CScript scriptPubKey, int64_t nValue, std::vector<uint8_t>& P, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, const CCoinControl* coinControl=NULL);
               +     std::string SendStealthMoney(CScript scriptPubKey, int64_t nValue, std::vector<uint8_t>& P, CWalletTx& wtxNew, bool fAskFee=false);
               +     bool SendStealthMoneyToDestination(CStealthAddress& sxAddress, int64_t nValue, CWalletTx& wtxNew, std::string& sError, bool fAskFee=false);
               +     bool FindStealthTransactions(const CTransaction& tx);
               +     
              

              Replace code added

                 - typedef std::map<std::string, std::string> mapValue_t;
                + //typedef std::map<std::string, std::string> mapValue_t;
              

              Code commented out?

              1 Reply Last reply Reply Quote 1
              • wrapper
                wrapper Moderators last edited by

                Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                Add stealth address : - commit

                https://github.com/FeatherCoin/Feathercoin/commit/e993143a1688a6aa57c03da6f181f8bf2f375bf6

                src/walletdb.cpp

                 -        else if (strType == "acentry")
                
                 +         {
                 +             if (fDebug)
                 +                 printf("WalletDB ReadKeyValue sxAddr\n");
                 +             
                 +             CStealthAddress sxAddr;
                 +             ssValue >> sxAddr;
                 +             
                 +             pwallet->stealthAddresses.insert(sxAddr);
                 +         } else if (strType == "acentry")
                

                Code replaced

                 +         } else if (strType == "sxKeyMeta")
                 +         {
                 +             if (fDebug)
                 +                 printf("WalletDB ReadKeyValue sxKeyMeta\n");
                 +             
                 +             CKeyID keyId;
                 +             ssKey >> keyId;
                 +             CStealthKeyMetadata sxKeyMeta;
                 +             ssValue >> sxKeyMeta;
                 + 
                 +             pwallet->mapStealthKeyMeta[keyId] = sxKeyMeta;
                

                Code added

                1 Reply Last reply Reply Quote 1
                • wrapper
                  wrapper Moderators last edited by

                  Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                  Add stealth address : - commit

                  https://github.com/FeatherCoin/Feathercoin/commit/e993143a1688a6aa57c03da6f181f8bf2f375bf6

                  src/walletdb.h

                   +#include "stealth.h"
                  

                  Code added

                   + class CStealthKeyMetadata
                   + {
                   + // -- used to get secret for keys created by stealth transaction with wallet locked
                   + public:
                   +     CStealthKeyMetadata() {};
                   +     
                   +     CStealthKeyMetadata(CPubKey pkEphem_, CPubKey pkScan_)
                   +     {
                   +         pkEphem = pkEphem_;
                   +         pkScan = pkScan_;
                   +     };
                   +     
                   +     CPubKey pkEphem;
                   +     CPubKey pkScan;
                   + 
                   +     IMPLEMENT_SERIALIZE
                   +     (
                   +         READWRITE(pkEphem);
                   +         READWRITE(pkScan);
                   +     )
                   + 
                   + };
                   + 
                  

                  Stealth class added

                   +     Dbc* GetAtCursor()
                   +     {
                   +         return GetCursor();
                   +     }
                   +     
                   +     Dbc* GetTxnCursor()
                   +     {
                   +         if (!pdb)
                   +             return NULL;
                   +         
                   +         DbTxn* ptxnid = activeTxn; // call TxnBegin first
                   +         
                   +         Dbc* pcursor = NULL;
                   +         int ret = pdb->cursor(ptxnid, &pcursor, 0);
                   +         if (ret != 0)
                   +             return NULL;
                   +         return pcursor;
                   +     }
                   +     
                   +     DbTxn* GetAtActiveTxn()
                   +     {
                   +         return activeTxn;
                   +     }
                   +     
                  

                  Code added

                   +     bool WriteStealthKeyMeta(const CKeyID& keyId, const CStealthKeyMetadata& sxKeyMeta)
                   +     {
                   +         nWalletDBUpdated     +      + ;
                   +         return Write(std::make_pair(std::string("sxKeyMeta"), keyId), sxKeyMeta, true);
                   +     }
                   +     
                   +     bool EraseStealthKeyMeta(const CKeyID& keyId)
                   +     {
                   +         nWalletDBUpdated     +      + ;
                   +         return Erase(std::make_pair(std::string("sxKeyMeta"), keyId));
                   +     }
                   +     
                   +     bool WriteStealthAddress(const CStealthAddress& sxAddr)
                   +     {
                   +         nWalletDBUpdated     +      + ;
                   + 
                   +         return Write(std::make_pair(std::string("sxAddr"), sxAddr.scan_pubkey), sxAddr, true);
                   +     }
                   +     
                   +     bool ReadStealthAddress(CStealthAddress& sxAddr)
                   +     {
                   +         // -- set scan_pubkey before reading
                   +         return Read(std::make_pair(std::string("sxAddr"), sxAddr.scan_pubkey), sxAddr);
                   +     }
                   +   
                  

                  Code added

                  1 Reply Last reply Reply Quote 1
                  • wrapper
                    wrapper Moderators last edited by

                    Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                    Fix int_t64 : - commit

                    https://github.com/FeatherCoin/Feathercoin/commits/0.9.6?after=f296bdcef38b8c0770b43d4edc012e8c7434ac49+209

                    src/walletdb.cpp

                     -bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, 
                     + bool CWallet::CreateTransaction(const vector<pair<CScript, int64_t> >& vecSend, 
                     -                                CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, int32_t& nChangePos, std::string& strFailReason, const CCoinControl* coinControl)
                     +                                 CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, int32_t& nChangePos, std::string& strFailReason, const CCoinControl* coinControl)
                    

                    Code replaced

                     -bool CWallet::CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, std::string& strFailReason, const CCoinControl* coinControl)
                     + bool CWallet::CreateTransaction(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl* coinControl)
                    

                    Code replaced

                     -    int nChangePos;
                     +     int32_t nChangePos;
                    

                    Code replaced

                     -    vector< pair<CScript, int64> > vecSend;
                     +     vector< pair<CScript, int64_t> > vecSend;
                    

                    Code replaced

                     -    int nChangePos;
                     +     int32_t nChangePos;
                    

                    Code replaced

                     -string CWallet::SendMoneyToDestination(const CTxDestination& address, int64 nValue, CWalletTx& wtxNew, bool fAskFee)
                     + string CWallet::SendMoneyToDestination(const CTxDestination& address, int64_t nValue, CWalletTx& wtxNew, bool fAskFee)
                    

                    Code replaced

                    1 Reply Last reply Reply Quote 1
                    • wrapper
                      wrapper Moderators last edited by

                      Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                      Fix int_t64 : - commit

                      https://github.com/FeatherCoin/Feathercoin/commits/0.9.6?after=f296bdcef38b8c0770b43d4edc012e8c7434ac49+209

                      src/walletdb.h

                       -    bool CreateTransaction(const std::vector<std::pair<CScript, int64> >& vecSend,
                       -                           CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, int32_t& nChangePos, std::string& strFailReason, const CCoinControl *coinControl=NULL);   
                      

                      Code replaced

                       +     bool CreateTransaction(const std::vector<std::pair<CScript, int64_t> >& vecSend,
                       +                            CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, int32_t& nChangePos, std::string& strFailReason, const CCoinControl *coinControl=NULL);
                       +      
                      

                      Code replaced

                       -    bool CreateTransaction(CScript scriptPubKey, int64 nValue,
                       -                           CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL);
                      

                      Code replaced

                       +     bool CreateTransaction(CScript scriptPubKey, int64_t nValue,
                       +                            CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl *coinControl = NULL);
                      

                      Code replaced

                      1 Reply Last reply Reply Quote 1
                      • wrapper
                        wrapper Moderators last edited by

                        Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                        fix horizontalHeader : - commit

                        https://github.com/FeatherCoin/Feathercoin/commit/5abd3183c550fb9de271c10072f7e2db3cb25f47

                        src/qt/addressbookpage.cpp

                         -		ui     ->tableView     ->horizontalHeader()     ->resizeSection(0, 140);
                         -		ui     ->tableView     ->horizontalHeader()     ->resizeSection(1, 600);
                        

                        Code replaced

                         + 		ui     ->tableView     ->horizontalHeader()     ->resizeSection(0, 150);
                         + 		ui     ->tableView     ->horizontalHeader()     ->resizeSection(1, 900);
                        

                        Code replaced, minor positional fix

                        1 Reply Last reply Reply Quote 1
                        • wrapper
                          wrapper Moderators last edited by

                          Feathercoin specific changes made to convert Bitcoin to FTC 0.9.6.*

                          Define to 0 libzxing : - commit

                          https://github.com/FeatherCoin/Feathercoin/commit/b9528bb6426bf759d2ca241c0b49f50e8cea9cca

                          configure.ac

                           - define(_USE_ZXING,1)
                           + define(_USE_ZXING,0)
                          

                          Code replaced

                           - AC_DEFINE(USE_ZXING, _USE_ZXING,[Define to 1 libzxing must be available for support])
                           + AC_DEFINE(USE_ZXING, _USE_ZXING,[Define to 0 libzxing must be available for support])
                          

                          Code replaced

                          1 Reply Last reply Reply Quote 1
                          • First post
                            Last post