Bitfreak, do you know of any way that I can raise the withdrawal limit for an address once it has been set to zero?
I don't think I've actually ever tried setting the withdrawal limit on an address to 0 and I'm not sure if it can be undone, I'll have to ask catia about it. One thing to keep in mind is that when you increase the withdrawal limit it will take 100 blocks before the withdrawal limit gets updated. But I'm not sure why it's saying you have insufficient funds, I'm guessing it has something to do with your withdrawal limit being 0. The setlimit transactions are pretty weird, the input and output address are the same, where the output value is the new limit value and the difference between the input and output values is the fee. But I think if you use a command like gettransaction it wont show the true structure of the tx, it will show a simplified version of the transaction which makes more sense.
Unfortunately I think you may be out of luck. The issue is that your new limit of 0 prevents you from paying the fee but a transaction fee is required to prevent the network from being spammed. I also believe that setlimit tx's can only have 1 input and 1 output so that it can be detected as a setlimit transaction. So basically I don't think there's any way it can be undone. Originally we were going to make a withdrawal limit of 0 signify an unlimited withdrawal limit but it made much more sense to do it the way we do it now. We probably shouldn't have allowed the limit to be set to 0, but it could be useful in certain situations where coins need to be destroyed without having to send them back to the coinbase account.
Bitfreak, thank you for taking time to look into this matter. I admit that I carried out that experiment rather impulsively, and I accept full responsibility for the consequences. I'm honestly not worried about the relatively small amount of XCN I burned, another thought bothers me more...
I don't know whether I was the first person to make this mistake, but I'm quite certain I wont be the last. I shudder to think of someone doing this someday with a large chunk of their life savings. Even worse, someone might do this and then wait weeks, months, or even years before trying to raise the limit. A wallet or blockchain explorer will show that the expected funds are present any time that address is checked. So not only has the money been lost, but the discovery of that loss has been potentially delayed to a future time when the impact on the individual is far worse.
I wont belabor the point any further, but I think it should be clear that the zero withdrawal limit feature is a Cryptonite landmine just waiting around to blow a hole in the finances of innocent people. So you may want to consider doing one of the following in a future software update:
- Make it impossible to set the withdrawal limit lower than the minimum transaction fee.
- Make it so that the minimum fee is paid for a setlimit transaction regardless of the withdrawal limit.
- Have the setlimit interface issue a dire warning and require the user to respond to a query before proceeding.
The third suggestion would have stopped me from making the mistake in the first place. I like the second suggestion for the selfish reason that it would allow me to recover my funds at some point in the future (when they might be worth a lot more than they are now).
