From 0b02b20003a0d7f6bc9286b8ec9e6320868df810 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Tue, 5 Jun 2012 14:50:42 -0700 Subject: [PATCH] Add support for a signature when creating NicknameSet transactions. --- src/Ledger.h | 2 +- src/Transaction.cpp | 11 ++++++++--- src/Transaction.h | 6 ++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Ledger.h b/src/Ledger.h index d4976d6170..9d82641295 100644 --- a/src/Ledger.h +++ b/src/Ledger.h @@ -165,7 +165,7 @@ public: // Nickname functions // - uint256 getNicknameHash(const std::string& strNickname) + static uint256 getNicknameHash(const std::string& strNickname) { Serializer s(strNickname); return s.getSHA256(); } NicknameState::pointer getNicknameState(const uint256& uNickname); diff --git a/src/Transaction.cpp b/src/Transaction.cpp index c2ac06c86f..328a7aa6fc 100644 --- a/src/Transaction.cpp +++ b/src/Transaction.cpp @@ -267,7 +267,8 @@ Transaction::pointer Transaction::setNicknameSet( const NewcoinAddress& naPrivateKey, const uint256& uNickname, bool bSetOffer, - const STAmount& saMinimumOffer) + const STAmount& saMinimumOffer, + const std::vector& vucSignature) { mTransaction->setITFieldH256(sfNickname, uNickname); @@ -275,6 +276,9 @@ Transaction::pointer Transaction::setNicknameSet( if (bSetOffer) mTransaction->setITFieldAmount(sfMinimumOffer, saMinimumOffer); + if (!vucSignature.empty()) + mTransaction->setITFieldVL(sfSignature, vucSignature); + sign(naPrivateKey); return shared_from_this(); @@ -290,11 +294,12 @@ Transaction::pointer Transaction::sharedNicknameSet( uint32 uSourceTag, const uint256& uNickname, bool bSetOffer, - const STAmount& saMinimumOffer) + const STAmount& saMinimumOffer, + const std::vector& vucSignature) { pointer tResult = boost::make_shared(ttNICKNAME_SET, naPublicKey, naSourceAccount, uSeq, saFee, uSourceTag); - return tResult->setNicknameSet(naPrivateKey, uNickname, bSetOffer, saMinimumOffer); + return tResult->setNicknameSet(naPrivateKey, uNickname, bSetOffer, saMinimumOffer, vucSignature); } // diff --git a/src/Transaction.h b/src/Transaction.h index bd1c1136ea..2510a04e64 100644 --- a/src/Transaction.h +++ b/src/Transaction.h @@ -75,7 +75,8 @@ private: const NewcoinAddress& naPrivateKey, const uint256& uNickname, bool bSetOffer, - const STAmount& saMinimumOffer); + const STAmount& saMinimumOffer, + const std::vector& vucSignature); Transaction::pointer setPasswordFund( const NewcoinAddress& naPrivateKey, @@ -172,7 +173,8 @@ public: uint32 uSourceTag, const uint256& uNickname, bool bSetOffer, - const STAmount& saMinimumOffer); + const STAmount& saMinimumOffer, + const std::vector& vucSignature); // Pre-fund password change. static Transaction::pointer sharedPasswordFund(