mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Add support to create WalletAdd transaction.
This commit is contained in:
@@ -305,6 +305,45 @@ Transaction::pointer Transaction::sharedTransitSet(
|
||||
return tResult->setTransitSet(naPrivateKey, uTransitRate, uTransitStart, uTransitExpire);
|
||||
}
|
||||
|
||||
//
|
||||
// WalletAdd
|
||||
//
|
||||
|
||||
Transaction::pointer Transaction::setWalletAdd(
|
||||
const NewcoinAddress& naPrivateKey,
|
||||
const STAmount& saAmount,
|
||||
const NewcoinAddress& naAuthKeyID,
|
||||
const NewcoinAddress& naNewPubKey,
|
||||
const std::vector<unsigned char>& vucSignature)
|
||||
{
|
||||
mTransaction->setITFieldAmount(sfAmount, saAmount);
|
||||
mTransaction->setITFieldAccount(sfAuthorizedKey, naAuthKeyID);
|
||||
mTransaction->setITFieldVL(sfPubKey, naNewPubKey.getAccountPublic());
|
||||
mTransaction->setITFieldVL(sfSignature, vucSignature);
|
||||
|
||||
sign(naPrivateKey);
|
||||
|
||||
return shared_from_this();
|
||||
}
|
||||
|
||||
Transaction::pointer Transaction::sharedWalletAdd(
|
||||
const NewcoinAddress& naPublicKey, const NewcoinAddress& naPrivateKey,
|
||||
const NewcoinAddress& naSourceAccount,
|
||||
uint32 uSeq,
|
||||
const STAmount& saFee,
|
||||
uint32 uSourceTag,
|
||||
const STAmount& saAmount,
|
||||
const NewcoinAddress& naAuthKeyID,
|
||||
const NewcoinAddress& naNewPubKey,
|
||||
const std::vector<unsigned char>& vucSignature)
|
||||
{
|
||||
pointer tResult = boost::make_shared<Transaction>(ttWALLET_ADD,
|
||||
naPublicKey, naSourceAccount,
|
||||
uSeq, saFee, uSourceTag);
|
||||
|
||||
return tResult->setWalletAdd(naPrivateKey, saAmount, naAuthKeyID, naNewPubKey, vucSignature);
|
||||
}
|
||||
|
||||
//
|
||||
// Misc.
|
||||
//
|
||||
|
||||
@@ -76,6 +76,13 @@ private:
|
||||
uint32 uTransitStart,
|
||||
uint32 uTransitExpire);
|
||||
|
||||
Transaction::pointer setWalletAdd(
|
||||
const NewcoinAddress& naPrivateKey,
|
||||
const STAmount& saAmount,
|
||||
const NewcoinAddress& naAuthKeyID,
|
||||
const NewcoinAddress& naNewPubKey,
|
||||
const std::vector<unsigned char>& vucSignature);
|
||||
|
||||
public:
|
||||
Transaction(const SerializedTransaction::pointer st, bool bValidate);
|
||||
|
||||
@@ -142,6 +149,18 @@ public:
|
||||
uint32 uTransitStart,
|
||||
uint32 uTransitExpire);
|
||||
|
||||
// Add an account to a wallet.
|
||||
static Transaction::pointer sharedWalletAdd(
|
||||
const NewcoinAddress& naPublicKey, const NewcoinAddress& naPrivateKey,
|
||||
const NewcoinAddress& naSourceAccount,
|
||||
uint32 uSeq,
|
||||
const STAmount& saFee,
|
||||
uint32 uSourceTag,
|
||||
const STAmount& saAmount, // Initial funds in XNC.
|
||||
const NewcoinAddress& naAuthKeyID, // ID of regular public to auth.
|
||||
const NewcoinAddress& naNewPubKey, // Public key of new account
|
||||
const std::vector<unsigned char>& vucSignature); // Proof know new account's private key.
|
||||
|
||||
bool sign(const NewcoinAddress& naAccountPrivate);
|
||||
bool checkSign() const;
|
||||
void updateID() { mTransactionID=mTransaction->getTransactionID(); }
|
||||
|
||||
Reference in New Issue
Block a user