@ -342,21 +342,19 @@ Value getnewaddress(const Array& params, bool fHelp)
strAccount = AccountFromValue ( params [ 0 ] ) ;
strAccount = AccountFromValue ( params [ 0 ] ) ;
// Generate a new key that is added to wallet
// Generate a new key that is added to wallet
string strAddress = CBitcoinA ddress( pwalletMain - > GetOrReuseKeyFromPool ( ) ) . ToString ( ) ;
CBitcoinAddress a ddress( pwalletMain - > GetOrReuseKeyFromPool ( ) ) ;
// This could be done in the same main CS as GetKeyFromKeyPool.
// This could be done in the same main CS as GetKeyFromKeyPool.
CRITICAL_BLOCK ( pwalletMain - > cs_mapAddressBook )
CRITICAL_BLOCK ( pwalletMain - > cs_mapAddressBook )
pwalletMain - > SetAddressBookName ( strA ddress, strAccount ) ;
pwalletMain - > SetAddressBookName ( a ddress, strAccount ) ;
return strAddress ;
return address . ToString ( ) ;
}
}
// requires cs_main, cs_mapWallet, cs_mapAddressBook locks
// requires cs_main, cs_mapWallet, cs_mapAddressBook locks
CBitcoinAddress GetAccountAddress ( string strAccount , bool bForceNew = false )
CBitcoinAddress GetAccountAddress ( string strAccount , bool bForceNew = false )
{
{
string strAddress ;
CWalletDB walletdb ( pwalletMain - > strWalletFile ) ;
CWalletDB walletdb ( pwalletMain - > strWalletFile ) ;
CAccount account ;
CAccount account ;
@ -393,8 +391,7 @@ CBitcoinAddress GetAccountAddress(string strAccount, bool bForceNew=false)
else
else
{
{
account . vchPubKey = pwalletMain - > GetOrReuseKeyFromPool ( ) ;
account . vchPubKey = pwalletMain - > GetOrReuseKeyFromPool ( ) ;
string strAddress = CBitcoinAddress ( account . vchPubKey ) . ToString ( ) ;
pwalletMain - > SetAddressBookName ( CBitcoinAddress ( account . vchPubKey ) , strAccount ) ;
pwalletMain - > SetAddressBookName ( strAddress , strAccount ) ;
walletdb . WriteAccount ( strAccount , account ) ;
walletdb . WriteAccount ( strAccount , account ) ;
}
}
}
}
@ -434,8 +431,7 @@ Value setaccount(const Array& params, bool fHelp)
" setaccount <bitcoinaddress> <account> \n "
" setaccount <bitcoinaddress> <account> \n "
" Sets the account associated with the given address. " ) ;
" Sets the account associated with the given address. " ) ;
string strAddress = params [ 0 ] . get_str ( ) ;
CBitcoinAddress address ( params [ 0 ] . get_str ( ) ) ;
CBitcoinAddress address ( strAddress ) ;
if ( ! address . IsValid ( ) )
if ( ! address . IsValid ( ) )
throw JSONRPCError ( - 5 , " Invalid bitcoin address " ) ;
throw JSONRPCError ( - 5 , " Invalid bitcoin address " ) ;
@ -456,7 +452,7 @@ Value setaccount(const Array& params, bool fHelp)
GetAccountAddress ( strOldAccount , true ) ;
GetAccountAddress ( strOldAccount , true ) ;
}
}
pwalletMain - > SetAddressBookName ( strA ddress, strAccount ) ;
pwalletMain - > SetAddressBookName ( a ddress, strAccount ) ;
}
}
return Value : : null ;
return Value : : null ;
@ -470,8 +466,9 @@ Value getaccount(const Array& params, bool fHelp)
" getaccount <bitcoinaddress> \n "
" getaccount <bitcoinaddress> \n "
" Returns the account associated with the given address. " ) ;
" Returns the account associated with the given address. " ) ;
string strAddress = params [ 0 ] . get_str ( ) ;
CBitcoinAddress address ( params [ 0 ] . get_str ( ) ) ;
CBitcoinAddress address ( strAddress ) ;
if ( ! address . IsValid ( ) )
throw JSONRPCError ( - 5 , " Invalid bitcoin address " ) ;
string strAccount ;
string strAccount ;
CRITICAL_BLOCK ( pwalletMain - > cs_mapAddressBook )
CRITICAL_BLOCK ( pwalletMain - > cs_mapAddressBook )
@ -536,7 +533,9 @@ Value sendtoaddress(const Array& params, bool fHelp)
" sendtoaddress <bitcoinaddress> <amount> [comment] [comment-to] \n "
" sendtoaddress <bitcoinaddress> <amount> [comment] [comment-to] \n "
" <amount> is a real and is rounded to the nearest 0.00000001 " ) ;
" <amount> is a real and is rounded to the nearest 0.00000001 " ) ;
string strAddress = params [ 0 ] . get_str ( ) ;
CBitcoinAddress address ( params [ 0 ] . get_str ( ) ) ;
if ( ! address . IsValid ( ) )
throw JSONRPCError ( - 5 , " Invalid bitcoin address " ) ;
// Amount
// Amount
int64 nAmount = AmountFromValue ( params [ 1 ] ) ;
int64 nAmount = AmountFromValue ( params [ 1 ] ) ;
@ -554,7 +553,7 @@ Value sendtoaddress(const Array& params, bool fHelp)
if ( pwalletMain - > IsLocked ( ) )
if ( pwalletMain - > IsLocked ( ) )
throw JSONRPCError ( - 14 , " Error: The wallet passphrase entered was incorrect. " ) ;
throw JSONRPCError ( - 14 , " Error: The wallet passphrase entered was incorrect. " ) ;
string strError = pwalletMain - > SendMoneyToBitcoinAddress ( strA ddress, nAmount , wtx ) ;
string strError = pwalletMain - > SendMoneyToBitcoinAddress ( a ddress, nAmount , wtx ) ;
if ( strError ! = " " )
if ( strError ! = " " )
throw JSONRPCError ( - 4 , strError ) ;
throw JSONRPCError ( - 4 , strError ) ;
}
}
@ -807,7 +806,9 @@ Value sendfrom(const Array& params, bool fHelp)
" <amount> is a real and is rounded to the nearest 0.00000001 " ) ;
" <amount> is a real and is rounded to the nearest 0.00000001 " ) ;
string strAccount = AccountFromValue ( params [ 0 ] ) ;
string strAccount = AccountFromValue ( params [ 0 ] ) ;
string strAddress = params [ 1 ] . get_str ( ) ;
CBitcoinAddress address ( params [ 1 ] . get_str ( ) ) ;
if ( ! address . IsValid ( ) )
throw JSONRPCError ( - 5 , " Invalid bitcoin address " ) ;
int64 nAmount = AmountFromValue ( params [ 2 ] ) ;
int64 nAmount = AmountFromValue ( params [ 2 ] ) ;
int nMinDepth = 1 ;
int nMinDepth = 1 ;
if ( params . size ( ) > 3 )
if ( params . size ( ) > 3 )
@ -833,7 +834,7 @@ Value sendfrom(const Array& params, bool fHelp)
throw JSONRPCError ( - 6 , " Account has insufficient funds " ) ;
throw JSONRPCError ( - 6 , " Account has insufficient funds " ) ;
// Send
// Send
string strError = pwalletMain - > SendMoneyToBitcoinAddress ( strA ddress, nAmount , wtx ) ;
string strError = pwalletMain - > SendMoneyToBitcoinAddress ( a ddress, nAmount , wtx ) ;
if ( strError ! = " " )
if ( strError ! = " " )
throw JSONRPCError ( - 4 , strError ) ;
throw JSONRPCError ( - 4 , strError ) ;
}
}
@ -1538,8 +1539,7 @@ Value validateaddress(const Array& params, bool fHelp)
" validateaddress <bitcoinaddress> \n "
" validateaddress <bitcoinaddress> \n "
" Return information about <bitcoinaddress>. " ) ;
" Return information about <bitcoinaddress>. " ) ;
string strAddress = params [ 0 ] . get_str ( ) ;
CBitcoinAddress address ( params [ 0 ] . get_str ( ) ) ;
CBitcoinAddress address ( strAddress ) ;
bool isValid = address . IsValid ( ) ;
bool isValid = address . IsValid ( ) ;
Object ret ;
Object ret ;