The user will first call approve(RAFFLE_ADDRESS, 20000000000000000000) on the XBL Contract Address. They have just approved the Raffle to spend 10 XBL (+18 zeroes) on their behalf.
Shouldn't it be (RAFFLE_ADDRESS,
10000000000000000000)?
Yes, thanks for noticing. I have modified the text.