|
Title: Transactions less than 0.01 BTC Post by: bytemaster on July 29, 2010, 04:17:20 PM Suppose I have program that wants to use the RPC interface to send BTC less than 0.01?
I know that in theory the underlying protocol supports it (deflation in the future), but why design an API that *will have to change*? If someone uses the raw protocol to send .000001 BTC what will the client display? I am not saying that there would be very small transactions, I am saying that some transactions may want much higher RESOLUTION. Particularly for automatic, auto-negotiated, markets. What would happen if I modified my client to display and enter .000001BTC and then used that GUI to send .000001 to someone with the normal client? Title: Re: Transactions less than 0.01 BTC Post by: Olipro on July 29, 2010, 04:26:21 PM they'd get a payment for 0.000001 which the GUI would quite probably round to 0.00... maybe 0.01 but I doubt it
Title: Re: Transactions less than 0.01 BTC Post by: knightmb on July 29, 2010, 05:01:10 PM As far as I know, the client will keep track of it properly, you just won't be able to spend it because the lowest the GUI allows is 0.01 so far.
Title: Re: Transactions less than 0.01 BTC Post by: EricJ2190 on July 29, 2010, 05:50:44 PM If you want to test this, you can use my fullprecision branch of Gavin's test network.
http://github.com/EricJ2190/bitcoin-git/tree/fullprecision I believe the normal client simply truncates the values whenever they are displayed. Code: string FormatMoney(int64 n, bool fPlus) { n /= CENT; string str = strprintf("%"PRI64d".%02"PRI64d, (n > 0 ? n : -n)/100, (n > 0 ? n : -n)%100); for (int i = 6; i < str.size(); i += 4) if (isdigit(str[str.size() - i - 1])) str.insert(str.size() - i, 1, ','); if (n < 0) str.insert((unsigned int)0, 1, '-'); else if (fPlus && n > 0) str.insert((unsigned int)0, 1, '+'); return str; } |