So here is how we determine if we get a fee:
- First we computer the first part of the priority by taking the value of the each transaction input and multiplying that by its age.
- We then sum the values we just computed for each input and multiply by the transaction size to get our priority
- A fee is then required if the variable (COIN [what is the value of this?] multiplied by 144 divided by 250) is more than 0.05
- The fee is then dismissed if the block still has a lot of free room
- But potentially re-added (or added to begin with) if we are sending less than 0.01 BTC.
My C++ isn't very sharp (I am a PHP coder) and I am getting this all out of context, so if someone could correct me where I am wrong, I would appreciate it.