With the new version, that has those rounding errors fixed, I do see 10 TEST transacted:
Order: sell 0.04 XCP for 10 TEST at 250.0000 TEST/XCP in 100 blocks (d5c06218...8a1306c5)
Order Match: 1 TEST for 0.0035 XCP at 350000.0000 XCP/TEST (dc6823b3b40f70d1...af224bf38a1306c5)
Order Match: 9 TEST for 0.036 XCP at 400000.0000 XCP/TEST (a751987c40ff7dd9...af224bf38a1306c5)
Order Match: 0 TEST for 0.0 XCP at 400000.0000 XCP/TEST (f94c5812d2c2b62d...af224bf38a1306c5)
(Obviously that last match is funny. I'll fix it.)
On the old version, it's only 1 TEST.
Burn: 1MsGuABdHyMCt2jwaFucfTJDmkWahawnSh burned 1.0 BTC for 1302.63636364 XCP (9e83d1f1...5b65eb7f)
Burn: 1Ci19UvsTEpnpEcxQBtxK9p43aYjNFjVfE burned 1.0 BTC for 1302.63636364 XCP (1b4f1062...f0314eb6)
Order: sell 0.04 XCP for 10 TEST at 250.0000 TEST/XCP in 100 blocks (d5c06218...8a1306c5)
Order Match: 1 TEST for 0.0035 XCP at 350000.0000 XCP/TEST (dc6823b3b40f70d1...af224bf38a1306c5)
I just rebuild the database and I can see the orders being matched now. My address received 11 TEST (1+10) so this seems to be working well now.
How is the expiration value calculated and what is this based on? I assume this is countdown from a specific start time? If yes, is the specific start time based on the block time or some other value?
I think the expiration value is just the amount of blocks the order is valid for. When creating a new order you can set the expiration value yourself.