I'm familiar with the basic RPC commands, but I'm having trouble retrieving/adding an address to a wallet, using purely RPC calls (i.e. bitcoind only, not bitcoin-qt).
My understanding is that addresses are associated with accounts, but I'm unsure what role "accounts" play, and how to create new ones etc.
In pseudocode, this is what I want to be able to do:
if (count(getAddressesByLabel("donations")) == 0) {
address = wallet.createBitcoinAddress();
address.setLabel("donations");
}
donationAddress = getAddressesByLabel("donations"))
accounts
. Accounts are more of a legacy feature, their future is uncertain, they are vulnerable to hardware failures and as such using them directly for accounting third party funds is a really bad idea.