tx parse seems ok; todo fix opts.length to check for num keys