in the firtfirst instruction, data seems to be empty. It should at least (if there is no args to your instruction) contains 8 bytes which tells to the program which instruction are you are calling
EDIT: after checking the docs, data seems to be optionnal. But then i don't understand how the program is supposed to know which instruction is called, except if there is some kind of fallback or only one transaction ? i will let other people with more knowledge reply to the original question !