So before requesting for counterfactual address does the user have to somehow provide inputs that he needs the passkey module to be enabled
Yes so the user needs to pass the information of one authorisation module address at the time of deployment. This authorisation module will have the data of who is the owner of the SCW.
In future if anyone wants to change from ECDSA module to passkey module or vice verca, it can be done by using the enableModule
method. Yeah the address will change if you are calculating with one address data and sending the other address data. But this is same case as before, to get the counterfactual addr you needed the EOA. If the contract is already deployed with any one module then it will not change ofc.
Also if you calculated and deployed with Passkeys on chain A and then change the module to ecdsa, and if you want the same addr on chain B you can do same thing, deploy the smart account with the same passkeys and update the ownership module with data as you want.
instead of multiple smart contract account module standards we will be having something like a uniform module
I believe the ERC-6900 will solve this issue and Biconomy would also be working on same.