refactor iparams to use array

this is also prep work for a single doTransaction() output mode api