For those of you that caught my post yesterday BEWARE Trading 2 Non-Decimal Tokens on the BitShares DEX! 😱, I wanted to add this special update. I also incorporated it into the original post, but felt it important enough to release as an "update post" as well, since what are the odds that people will go back to revisit an article they've already read!
So, @jphenderson (TheWalrus) performed a few more tests and discovered that you CAN buy or sell at fractional amounts on OpenLedger, but ONLY if the trade pairs off at an EXACT integer-based ratio (ie. 5 for 4, 2 for 1, etc). For example, he tried buying 4 BEYONDBIT for 1.25 each, and was charge 5 WHALESHARE (4 x 1.25 is exactly 5). When he tried to buy just 1 BEYONDBIT at 1.25, he was charged 2 WHALESHARE instead. Now here's where it gets interesting. It seems this may be a GUI design issue after all, because if you try to buy 1 unit of BEYONDBIT at 1.25, the GUI immediately adjusts the quantity to SELL to 2!
Furtermore, after clicking "BUY", the CONFIRMATION POPUP window DOES let you know the EXPECTED price, as shown below, so you do have an additional chance to CANCEL before CONFIRMING the transaction! It would be nice, however, if there were an additional warning given by the GUI, because if you don't think to double-check that your LIMIT PRICE CAN BE ADJUSTED, you can EASILY forget to check and miss it completely!
Oddly enough, I was able to manual change the "Total" WHALESHARE sell quantity to 1, which then correctly adjusted the price DOWN to reflect a sale at 1 for 1 instead of 2 for 1)!
How does BitShares handle PARTIAL FILLS?
Also be aware that if you have a larger LIMIT ORDER sitting on the exchange, and you receive a PARTIAL FILL, the BALANCE of your order may be REPRICED by the blockchain itself! This is something else I recently learned, as one of my "lowball" bids was just filled exactly this way! I had a BID to BUY 100 BEYONDBIT for 101 WHALESHARE (equivalent to a price of 1.01 each). Here's how my fills played out:
- FILL ORDER sxe-trader bought 94 BEYONDBIT at 1 WHALESHARE/BEYONDBIT
- FILL ORDER sxe-trader bought 6 BEYONDBIT at 1.1666666666666667 WHALESHARE/BEYONDBIT
Notice how even though the order was 100 at 1.01, once the 94 were filled at 0.01 better than my price, the remaining 6 were automatically repriced by the bitshares blockchain to buy at 1.16667 (which would round to exactly 7 WHALESHARE for 6 BEYONDBIT)! So beware, folks, it's a "jungle" out there! However, I must say I'm still pretty pleased with the price I bought them, especially given I had just purchased a few earlier today around 1.43 or so!
Nonetheless, let this serve as another warning to all of you, especially if you attempt to trade two integer assets against each other via bitshares / openledger, to ALWAYS double-check that the LIMIT price shown MATCHES the LIMIT price you entered and expected! I have a feeling that based on this new finding, the current tokens will likely stay the same (ie. not traded in for their "decimalized" equivalents).
However, @officialfuzzy may consider issuing future whale tokens with perhaps 1 or 2 decimal places, if only to reduce the chance of people making such "trading mistakes" in the future (including paying 1 whole WHALESHARE or BEYONDBIT as a transaction fee, instead of using BTS). If that happens, it may also open the door to tacking on that extra 0.1% additional "upvote" you've always wanted! lol