feat: revertOnInvalid