I would like to see the transfer transaction have an optional account name "to" field. Because the transfer transaction can also have an account id, it should also be provided and validated when ever possible.
Bytemaster (in github) noticed a few other operations where this might be useful. I looked into and, well, lets say it started expanding into a lot of other what-ifs... So, that is getting complicated. Lets remember we can do things off-chain...
One case jumps out at me, btercom vrs bter. This is a real loss. The BTER exchange registered "btercom" but some other entity registered the shorter name bter. Sure enough, a user sent money to the wrong address. It was not good, this user was just getting into BitShares and this was there initial investment.
So, here is the new hypothetical story... Example.com creates there new account "examplecom". When they do, their wallet hashes that name adding 3 base58 encoded characters to the end. Now, there safe name would look like this:
exampllecom_8d8
Also, assuming this is not a cold-wallet, the wallet will also grab examplecom's account id which is say 37,521 (current registered accounts on BitShares). Finally, 3 more chars are added which is a check for both examplecom and the encoded account id. Note, this is the actual length with fake checksums:
examplecom_8d8_6rzDCojw9e9
This becomes useful in anyplace where we use an account ID (for example: active and owner signature authorities). If the ID is not known a shorter version may be used (just examplecom_8d8). It should still be possible in every case to simply use examplecom.
The identicon should remain unchanged on the account name, this gives the cold wallet the ability to show a matching identicon even though it can't lookup the account number.
I used an _ because that most often lets one double-click and select the entire name. An underscore is not allowed in a BTS account name.
btw: did you notice, I really typed two 'l's in the example .. complete accident I promise... If only exampllecom_8d8 was provided, the computer would catch the mistake in all but 1 case in every 190K cases).