Smart contracts
Wallet implemented as a Diamond Proxy with facets for each feature. Wallet has the following facets:
AccountFacet
Verifies passkey signatures, processes paymastersBatchFacet
Allows to call multiple contracts in one transactionDeviceConnectFacet
Allows to connect or disconnect devices to accountDiamondCutFacet
Allows to add, remove facets and upgrade the accountDiamondLoupeFacet
Allows to check current facets for accountSessionFacet
Allows to create / remove background sessions that confirm transactions in backgroundSocialRecoveryFacet
Allows to add guardians, initiate and confirm social recoverySubscriptionFacet
Allows to add and remove autopayments that are charged periodically
User wallet contains all the facets and allows to update account facets when update is available. To call the facets you need to call the account address with corresponding ABI