reown-com / reown-swift

Apache License 2.0
30 stars 11 forks source link

Add ability to supply a custom SIWE in AppKit present UI #25

Open itsallmememe opened 1 month ago

itsallmememe commented 1 month ago

Is your feature request related to a problem? Please describe. We use Privy.io for account management. Their login process requires that they create a SIWE string that is then sent to the a wallet for personal_sign. The resulting hash is then sent back to Privy for confirmation and final authentication.

The AppKit modal experience is great from a developer experience as we can call AppKit.present() and the entire auth journey is handled for us, but without the ability to add in a SIWE we cannot integrate this into our app.

Describe the solution you'd like Something similar to this would be ideal

AppKit.present(from: UIViewController, properties: CustomProperties)

struct CustomProperties {
    ...
    let customSiwe: String?
    ...
}

This allows us to present the AppKit modal during presentation of the modal

Alternatively during configuration could work ok

public class AppKit {
    ...
    static func configure(projectId: String,
        metadata: AppMetadata,
        crypto: CryptoProvider,
        sessionParams: SessionParams = .default,
        authRequestParams: AuthRequestParams?,
        customSiweMessage: String?,
...
}

Could work ok, but we if authentication fails in Privy we would need to request a new SIWE from them, and then "re-configure" AppKit with this new SIWE which may not be the correct way to do things.

Describe alternatives you've considered We already have integrated WalletConnect, but moving to a fully configured ReOwn AppKit solution would help us eradicate any connection bugs.

Additional context n/a