From a54169bc9ca9eb67015aed62905f8d8e31cd8bd6 Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Sat, 14 Sep 2024 15:38:50 +0530 Subject: [PATCH 01/11] feat: Update sfa android deps and code changes related to session manager and sfa Signed-off-by: Gaurav Goel --- android/build.gradle | 5 +- .../single_factor_auth_flutter/SFAOptions.kt | 3 + .../single_factor_auth_flutter/SFAParams.kt | 3 - .../SingleFactorAuthFlutterPlugin.kt | 83 +++++++++++++------ example/android/app/build.gradle | 2 +- example/lib/main.dart | 42 ++++------ example/pubspec.lock | 42 +++++----- lib/output.dart | 10 +-- lib/single_factor_auth_flutter.dart | 26 +++--- pubspec.yaml | 2 +- 10 files changed, 118 insertions(+), 100 deletions(-) create mode 100644 android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt delete mode 100644 android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAParams.kt diff --git a/android/build.gradle b/android/build.gradle index 0bd472f..aff65f6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -42,14 +42,15 @@ android { } defaultConfig { - minSdkVersion 24 + minSdkVersion 26 } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4' - implementation 'com.github.Web3Auth:single-factor-auth-android:0.4.0' + //implementation 'com.github.Web3Auth:single-factor-auth-android:0.4.0' //TODO(): Update version + implementation 'com.github.grvgoel81:single-factor-auth-android:4.0.0' // TODO(): remove this implementation 'org.torusresearch:fetch-node-details-java:5.0.0' implementation 'com.google.code.gson:gson:2.9.1' } diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt new file mode 100644 index 0000000..16479b6 --- /dev/null +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt @@ -0,0 +1,3 @@ +package com.web3auth.single_factor_auth_flutter + +data class SFAOptions(val network: String, var clientid: String) \ No newline at end of file diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAParams.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAParams.kt deleted file mode 100644 index 134188e..0000000 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAParams.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.web3auth.single_factor_auth_flutter - -data class SFAParams(val network: String, var clientid: String) \ No newline at end of file diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt index 1c2a798..6763af6 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt @@ -6,8 +6,8 @@ import androidx.annotation.NonNull import com.google.gson.Gson import com.web3auth.singlefactorauth.SingleFactorAuth import com.web3auth.singlefactorauth.types.LoginParams -import com.web3auth.singlefactorauth.types.SingleFactorAuthArgs -import com.web3auth.singlefactorauth.types.TorusKey +import com.web3auth.singlefactorauth.types.SFAKey +import com.web3auth.singlefactorauth.types.SFAParams import com.web3auth.singlefactorauth.types.TorusSubVerifierInfo import io.flutter.embedding.engine.plugins.FlutterPlugin import io.flutter.plugin.common.MethodCall @@ -27,7 +27,7 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { private lateinit var channel: MethodChannel private lateinit var context: Context private lateinit var singleFactorAuth: SingleFactorAuth - private lateinit var singleFactorAuthArgs: SingleFactorAuthArgs + private lateinit var sfaParams: SFAParams private lateinit var loginParams: LoginParams private var gson: Gson = Gson() @@ -73,19 +73,28 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { "init" -> { val initArgs = call.arguments() - val params = gson.fromJson(initArgs, SFAParams::class.java) - singleFactorAuthArgs = SingleFactorAuthArgs(getNetwork(params.network), params.clientid) - singleFactorAuth = SingleFactorAuth(singleFactorAuthArgs) + val params = gson.fromJson(initArgs, SFAOptions::class.java) + sfaParams = SFAParams(getNetwork(params.network), params.clientid) + singleFactorAuth = SingleFactorAuth(sfaParams, context) return null } "initialize" -> { try { - val torusKeyCF = singleFactorAuth.initialize(context) - Log.d("${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#initialize") - return if (torusKeyCF.get() != null) { - val torusKey = torusKeyCF.get() - prepareResult(torusKey) + Log.d( + "${SingleFactorAuthFlutterPlugin::class.qualifiedName}", + "#initializeCalled" + ) + Log.d("packageName:", context.packageName) + val sfaKey = singleFactorAuth.initialize(context) + Log.d("${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#_initialize") + return if (sfaKey != null) { + Log.d( + "${SingleFactorAuthFlutterPlugin::class.qualifiedName}", + sfaKey.toString() + ) + Log.d("sfaKey", "reached here.") + prepareResultFromSFAkey(sfaKey) } else { "" } @@ -94,18 +103,31 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { } } - "getTorusKey" -> { + "connect" -> { try { val initArgs = call.arguments() val params = gson.fromJson(initArgs, Web3AuthOptions::class.java) - loginParams = LoginParams( - params.verifier, params.verifierId, - params.idToken - ) - val torusKeyCF = singleFactorAuth.getKey(loginParams, context) - Log.d("${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#getTorusKey") - val torusKey = torusKeyCF.get() - return prepareResult(torusKey) + if (params.aggregateVerifier.isNullOrEmpty()) { + loginParams = LoginParams( + params.verifier, params.verifierId, + params.idToken + ) + } else { + loginParams = LoginParams( + params.aggregateVerifier, params.verifierId, + params.idToken, + arrayOf( + TorusSubVerifierInfo( + params.verifier, + params.idToken + ) + ) + ) + } + val sfaKeyCF = singleFactorAuth.connect(loginParams, context) + Log.d("${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#connect") + val sfaKey = sfaKeyCF + return prepareResult(sfaKey) } catch (e: Throwable) { throw Error(e) } @@ -125,24 +147,35 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { ) ) ) - val torusKeyCF = singleFactorAuth.getKey(loginParams, context) + val sfaKey = singleFactorAuth.connect(loginParams, context) Log.d( "${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#getAggregateTorusKey" ) - return prepareResult(torusKeyCF.get()) + return prepareResult(sfaKey) } catch (e: Throwable) { throw Error(e) } } + + "isSessionIdExists" -> { + return singleFactorAuth.isSessionIdExists() + } } throw NotImplementedError() } - private fun prepareResult(torusKey: TorusKey): String { + private fun prepareResult(sfaKey: SFAKey?): String { + val hashMap: HashMap = HashMap(2) + hashMap["privateKey"] = sfaKey?.getPrivateKey() as String + hashMap["publicAddress"] = sfaKey?.getPublicAddress() as String + return gson.toJson(hashMap) + } + + private fun prepareResultFromSFAkey(sfaKey: SFAKey): String { val hashMap: HashMap = HashMap(2) - hashMap["privateKey"] = torusKey.privateKey?.toString(16) as String - hashMap["publicAddress"] = torusKey.publicAddress as String + hashMap["privateKey"] = sfaKey.getPrivateKey() as String ?: "" + hashMap["publicAddress"] = sfaKey.getPublicAddress() as String ?: "" return gson.toJson(hashMap) } } diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 4d3a520..18972d1 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -47,7 +47,7 @@ android { applicationId "com.web3auth.single_factor_auth_flutter_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 24 + minSdkVersion 26 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/example/lib/main.dart b/example/lib/main.dart index d2d1901..f8b717f 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -24,7 +24,7 @@ class _MyAppState extends State { final _singleFactorAuthFlutterPlugin = SingleFactAuthFlutter(); String _result = ''; bool logoutVisible = false; - Web3AuthNetwork torusNetwork = Web3AuthNetwork.aqua; + Web3AuthNetwork torusNetwork = Web3AuthNetwork.mainnet; @override void initState() { @@ -35,10 +35,14 @@ class _MyAppState extends State { Future initSdk() async { if (Platform.isAndroid) { await init(); - initialize(); + if (await _singleFactorAuthFlutterPlugin.isSessionIdExists()) { + initialize(); + } } else if (Platform.isIOS) { await init(); - initialize(); + if (await _singleFactorAuthFlutterPlugin.isSessionIdExists()) { + initialize(); + } } else {} } @@ -49,12 +53,11 @@ class _MyAppState extends State { Future initialize() async { log("initialize() called"); - final TorusKey? torusKey = - await _singleFactorAuthFlutterPlugin.initialize(); - if (torusKey != null) { + final SFAKey? sfaKey = await _singleFactorAuthFlutterPlugin.initialize(); + if (sfaKey != null) { setState(() { _result = - "Public Add : ${torusKey.publicAddress} , Private Key : ${torusKey.privateKey}"; + "Public Add : ${sfaKey.publicAddress} , Private Key : ${sfaKey.privateKey}"; }); } } @@ -134,10 +137,10 @@ class _MyAppState extends State { ); } - VoidCallback _getKey(Future Function() method) { + VoidCallback _getKey(Future Function() method) { return () async { try { - final TorusKey response = await method(); + final SFAKey response = await method(); setState(() { _result = "Public Add : ${response.publicAddress} , Private Key : ${response.privateKey}"; @@ -155,7 +158,7 @@ class _MyAppState extends State { Future _initialize() async { try { - final TorusKey? response = + final SFAKey? response = await _singleFactorAuthFlutterPlugin.initialize(); setState(() { _result = "Private Key : ${response?.privateKey}"; @@ -168,24 +171,11 @@ class _MyAppState extends State { } } - Future getKey() { - return _singleFactorAuthFlutterPlugin.getKey( - LoginParams( + Future getKey() { + return _singleFactorAuthFlutterPlugin.connect(LoginParams( verifier: 'torus-test-health', verifierId: 'hello@tor.us', idToken: Utils().es256Token("hello@tor.us"), - ), - ); - } - - Future getAggregrateKey() { - return _singleFactorAuthFlutterPlugin.getAggregateKey( - LoginParams( - verifier: 'torus-test-health', - verifierId: 'hello@tor.us', - idToken: Utils().es256Token("hello@tor.us"), - aggregateVerifier: 'torus-test-health-aggregate', - ), - ); + )); } } diff --git a/example/pubspec.lock b/example/pubspec.lock index d153d7f..7c2665f 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -61,26 +61,26 @@ packages: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.8" dart_jsonwebtoken: dependency: "direct main" description: name: dart_jsonwebtoken - sha256: "40dc3a4788c02a44bc97ea0c8c4a078ae58c9a45acc2312ee6a689b0e8f5b5b9" + sha256: "346e9a21e4bf6e6a431e19ece00ebb2e3668e1e339cabdf6f46d18d88692a848" url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.14.0" ed25519_edwards: dependency: transitive description: @@ -135,18 +135,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -175,18 +175,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" path: dependency: transitive description: @@ -207,10 +207,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" url: "https://pub.dev" source: hosted - version: "3.7.4" + version: "3.9.1" single_factor_auth_flutter: dependency: "direct main" description: @@ -267,10 +267,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" typed_data: dependency: transitive description: @@ -291,10 +291,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.5" sdks: - dart: ">=3.3.0 <4.0.0" + dart: ">=3.4.0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/lib/output.dart b/lib/output.dart index 2d89fff..6070f22 100644 --- a/lib/output.dart +++ b/lib/output.dart @@ -1,17 +1,17 @@ import 'dart:convert'; -TorusKey torusKeyFromJson(String string) => TorusKey.fromJson( +SFAKey sfaKeyFromJson(String string) => SFAKey.fromJson( jsonDecode(string), ); -class TorusKey { +class SFAKey { final String privateKey; final String publicAddress; - TorusKey({required this.privateKey, required this.publicAddress}); + SFAKey({required this.privateKey, required this.publicAddress}); - factory TorusKey.fromJson(Map json) { - return TorusKey( + factory SFAKey.fromJson(Map json) { + return SFAKey( privateKey: json['privateKey'], publicAddress: json['publicAddress'], ); diff --git a/lib/single_factor_auth_flutter.dart b/lib/single_factor_auth_flutter.dart index d333511..92011c8 100644 --- a/lib/single_factor_auth_flutter.dart +++ b/lib/single_factor_auth_flutter.dart @@ -21,14 +21,14 @@ class SingleFactAuthFlutter { await _channel.invokeMethod('init', jsonEncode(initParamsJson)); } - Future initialize() async { + Future initialize() async { try { - final String? torusKeyJson = await _channel.invokeMethod( + final String? sfaKeyJson = await _channel.invokeMethod( 'initialize', ); - if (torusKeyJson != null) { - return torusKeyFromJson(torusKeyJson); + if (sfaKeyJson != null) { + return sfaKeyFromJson(sfaKeyJson); } return null; } on PlatformException catch (e) { @@ -36,30 +36,24 @@ class SingleFactAuthFlutter { } } - Future getKey(LoginParams loginParams) async { + Future connect(LoginParams loginParams) async { try { Map loginParamsJson = loginParams.toJson(); loginParamsJson.removeWhere((key, value) => value == null); final String torusKeyJson = await _channel.invokeMethod( - 'getTorusKey', + 'connect', jsonEncode(loginParams), ); - return torusKeyFromJson(torusKeyJson); + return sfaKeyFromJson(torusKeyJson); } on PlatformException catch (e) { throw _hanldePlatformException(e); } } - Future getAggregateKey(LoginParams loginParams) async { + Future isSessionIdExists() async { try { - Map loginParamsJson = loginParams.toJson(); - loginParamsJson.removeWhere((key, value) => value == null); - final String torusKeyJson = await _channel.invokeMethod( - 'getAggregateTorusKey', - jsonEncode(loginParams), - ); - - return torusKeyFromJson(torusKeyJson); + bool response = await _channel.invokeMethod('isSessionIdExists'); + return response; } on PlatformException catch (e) { throw _hanldePlatformException(e); } diff --git a/pubspec.yaml b/pubspec.yaml index 59f6862..2571b19 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^4.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From 50b8163c0dbb252f6d5a168a6d6313593e806ffd Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Sat, 14 Sep 2024 15:50:43 +0530 Subject: [PATCH 02/11] feat: Update sapphire networks and code cleanup Signed-off-by: Gaurav Goel --- example/lib/main.dart | 8 ++++---- lib/input.dart | 10 +++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index f8b717f..f07267d 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -24,7 +24,7 @@ class _MyAppState extends State { final _singleFactorAuthFlutterPlugin = SingleFactAuthFlutter(); String _result = ''; bool logoutVisible = false; - Web3AuthNetwork torusNetwork = Web3AuthNetwork.mainnet; + Web3AuthNetwork web3AuthNetwork = Web3AuthNetwork.mainnet; @override void initState() { @@ -48,7 +48,7 @@ class _MyAppState extends State { Future init() async { await _singleFactorAuthFlutterPlugin - .init(SFAParams(network: torusNetwork, clientid: 'YOUR_CLIENT_ID')); + .init(SFAParams(network: web3AuthNetwork, clientid: 'YOUR_CLIENT_ID')); } Future initialize() async { @@ -109,7 +109,7 @@ class _MyAppState extends State { height: 20, ), const Text( - 'Get TorusKey', + 'Get Web3AuthKey', style: TextStyle(fontSize: 12), ), const SizedBox( @@ -117,7 +117,7 @@ class _MyAppState extends State { ), ElevatedButton( onPressed: _getKey(getKey), - child: const Text('GetTorusKey'), + child: const Text('Web3AuthKey'), ), ElevatedButton( onPressed: () => _initialize(), diff --git a/lib/input.dart b/lib/input.dart index 851735f..09d063e 100644 --- a/lib/input.dart +++ b/lib/input.dart @@ -35,7 +35,15 @@ class SFAParams { } } -enum Web3AuthNetwork { mainnet, testnet, cyan, aqua, celeste } +enum Web3AuthNetwork { + mainnet, + testnet, + cyan, + aqua, + celeste, + sapphire_testnet, + sapphire_mainnet +} class UserCancelledException implements Exception {} From c299e93a6f545eb15d7bfc63657cbe9b82e8f846 Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Sat, 14 Sep 2024 15:56:26 +0530 Subject: [PATCH 03/11] feat: code cleanup Signed-off-by: Gaurav Goel --- .../SingleFactorAuthFlutterPlugin.kt | 37 +------------------ 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt index 6763af6..92e1bd0 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt @@ -81,19 +81,9 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { "initialize" -> { try { - Log.d( - "${SingleFactorAuthFlutterPlugin::class.qualifiedName}", - "#initializeCalled" - ) - Log.d("packageName:", context.packageName) val sfaKey = singleFactorAuth.initialize(context) - Log.d("${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#_initialize") + Log.d("${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#initialize") return if (sfaKey != null) { - Log.d( - "${SingleFactorAuthFlutterPlugin::class.qualifiedName}", - sfaKey.toString() - ) - Log.d("sfaKey", "reached here.") prepareResultFromSFAkey(sfaKey) } else { "" @@ -133,31 +123,6 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { } } - "getAggregateTorusKey" -> { - try { - val initArgs = call.arguments() - val params = gson.fromJson(initArgs, Web3AuthOptions::class.java) - loginParams = LoginParams( - params.aggregateVerifier.toString(), params.verifierId, - params.idToken, - arrayOf( - TorusSubVerifierInfo( - params.verifier, - params.idToken - ) - ) - ) - val sfaKey = singleFactorAuth.connect(loginParams, context) - Log.d( - "${SingleFactorAuthFlutterPlugin::class.qualifiedName}", - "#getAggregateTorusKey" - ) - return prepareResult(sfaKey) - } catch (e: Throwable) { - throw Error(e) - } - } - "isSessionIdExists" -> { return singleFactorAuth.isSessionIdExists() } From 02b95e587e7d8b14eaeefab16df454f1a94101dc Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Mon, 16 Sep 2024 09:35:41 +0530 Subject: [PATCH 04/11] feat: add sapphire network in android. Signed-off-by: Gaurav Goel --- .../single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt | 2 ++ example/lib/main.dart | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt index 92e1bd0..1fdd4b7 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt @@ -48,6 +48,8 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { "aqua" -> Web3AuthNetwork.AQUA "cyan" -> Web3AuthNetwork.CYAN "celeste" -> Web3AuthNetwork.CELESTE + "sapphire_testnet" -> Web3AuthNetwork.SAPPHIRE_DEVNET + "sapphire_mainnet" -> Web3AuthNetwork.SAPPHIRE_MAINNET else -> Web3AuthNetwork.MAINNET } } diff --git a/example/lib/main.dart b/example/lib/main.dart index f07267d..6f1182d 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -24,7 +24,7 @@ class _MyAppState extends State { final _singleFactorAuthFlutterPlugin = SingleFactAuthFlutter(); String _result = ''; bool logoutVisible = false; - Web3AuthNetwork web3AuthNetwork = Web3AuthNetwork.mainnet; + Web3AuthNetwork web3AuthNetwork = Web3AuthNetwork.sapphire_mainnet; @override void initState() { From 22292410d2fa1cf75661cf5172ccee4bfc717e90 Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Tue, 17 Sep 2024 11:24:00 +0530 Subject: [PATCH 05/11] feat: update sapphire network in android. Signed-off-by: Gaurav Goel --- android/build.gradle | 2 +- .../com/web3auth/single_factor_auth_flutter/SFAOptions.kt | 2 +- .../SingleFactorAuthFlutterPlugin.kt | 3 ++- example/lib/main.dart | 6 ++++-- lib/input.dart | 7 ++++++- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index aff65f6..353b578 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -50,7 +50,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4' //implementation 'com.github.Web3Auth:single-factor-auth-android:0.4.0' //TODO(): Update version - implementation 'com.github.grvgoel81:single-factor-auth-android:4.0.0' // TODO(): remove this + implementation 'com.github.grvgoel81:single-factor-auth-android:7.0.0' // TODO(): remove this implementation 'org.torusresearch:fetch-node-details-java:5.0.0' implementation 'com.google.code.gson:gson:2.9.1' } diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt index 16479b6..d95d769 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt @@ -1,3 +1,3 @@ package com.web3auth.single_factor_auth_flutter -data class SFAOptions(val network: String, var clientid: String) \ No newline at end of file +data class SFAOptions(val network: String, var clientid: String, var sessionTime: Int = 86400) \ No newline at end of file diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt index 1fdd4b7..aab6dea 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt @@ -76,7 +76,8 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { "init" -> { val initArgs = call.arguments() val params = gson.fromJson(initArgs, SFAOptions::class.java) - sfaParams = SFAParams(getNetwork(params.network), params.clientid) + sfaParams = + SFAParams(getNetwork(params.network), params.clientid, params.sessionTime) singleFactorAuth = SingleFactorAuth(sfaParams, context) return null } diff --git a/example/lib/main.dart b/example/lib/main.dart index 6f1182d..cd7c680 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -47,8 +47,10 @@ class _MyAppState extends State { } Future init() async { - await _singleFactorAuthFlutterPlugin - .init(SFAParams(network: web3AuthNetwork, clientid: 'YOUR_CLIENT_ID')); + await _singleFactorAuthFlutterPlugin.init(SFAParams( + network: web3AuthNetwork, + clientid: 'YOUR_CLIENT_ID', + sessionTime: 86400)); } Future initialize() async { diff --git a/lib/input.dart b/lib/input.dart index 09d063e..7fb719a 100644 --- a/lib/input.dart +++ b/lib/input.dart @@ -24,13 +24,18 @@ class LoginParams { class SFAParams { final Web3AuthNetwork network; final String clientid; + final int sessionTime; - SFAParams({required this.network, required this.clientid}); + SFAParams( + {required this.network, + required this.clientid, + this.sessionTime = 86400}); Map toJson() { return { 'network': network.name, 'clientid': clientid, + 'sessionTime': sessionTime, }; } } From e5db489d79ff2be5a9ef5f175a7239e6bc608351 Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Tue, 17 Sep 2024 12:46:44 +0530 Subject: [PATCH 06/11] feat: update clientid to camelcase everywhere Signed-off-by: Gaurav Goel --- .../com/web3auth/single_factor_auth_flutter/SFAOptions.kt | 2 +- .../SingleFactorAuthFlutterPlugin.kt | 2 +- example/lib/main.dart | 2 +- lib/input.dart | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt index d95d769..0952dcb 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SFAOptions.kt @@ -1,3 +1,3 @@ package com.web3auth.single_factor_auth_flutter -data class SFAOptions(val network: String, var clientid: String, var sessionTime: Int = 86400) \ No newline at end of file +data class SFAOptions(val network: String, var clientId: String, var sessionTime: Int = 86400) \ No newline at end of file diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt index aab6dea..2a9deea 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt @@ -77,7 +77,7 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { val initArgs = call.arguments() val params = gson.fromJson(initArgs, SFAOptions::class.java) sfaParams = - SFAParams(getNetwork(params.network), params.clientid, params.sessionTime) + SFAParams(getNetwork(params.network), params.clientId, params.sessionTime) singleFactorAuth = SingleFactorAuth(sfaParams, context) return null } diff --git a/example/lib/main.dart b/example/lib/main.dart index cd7c680..aa52d22 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -49,7 +49,7 @@ class _MyAppState extends State { Future init() async { await _singleFactorAuthFlutterPlugin.init(SFAParams( network: web3AuthNetwork, - clientid: 'YOUR_CLIENT_ID', + clientId: 'YOUR_CLIENT_ID', sessionTime: 86400)); } diff --git a/lib/input.dart b/lib/input.dart index 7fb719a..aeb9799 100644 --- a/lib/input.dart +++ b/lib/input.dart @@ -23,18 +23,18 @@ class LoginParams { class SFAParams { final Web3AuthNetwork network; - final String clientid; + final String clientId; final int sessionTime; SFAParams( {required this.network, - required this.clientid, + required this.clientId, this.sessionTime = 86400}); Map toJson() { return { 'network': network.name, - 'clientid': clientid, + 'clientId': clientId, 'sessionTime': sessionTime, }; } From 4c5c5114bf86d65b51a4f620e4846d3cf3a16c7e Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Wed, 18 Sep 2024 09:55:20 +0530 Subject: [PATCH 07/11] feat: update single-factor-auth-android version to 1.0.0 Signed-off-by: Gaurav Goel --- android/build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 353b578..ab61aa3 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -49,8 +49,7 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4' - //implementation 'com.github.Web3Auth:single-factor-auth-android:0.4.0' //TODO(): Update version - implementation 'com.github.grvgoel81:single-factor-auth-android:7.0.0' // TODO(): remove this + implementation 'com.github.Web3Auth:single-factor-auth-android:1.0.0' implementation 'org.torusresearch:fetch-node-details-java:5.0.0' implementation 'com.google.code.gson:gson:2.9.1' } From 996b2efde1eadbaff4cd3ea18d309761d70b065b Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Wed, 18 Sep 2024 15:04:01 +0530 Subject: [PATCH 08/11] feat: update single-factor-auth-swift version to 8.0.0 Signed-off-by: Gaurav Goel --- example/ios/Podfile.lock | 30 +++-- example/ios/Runner/AppDelegate.swift | 2 +- .../SingleFactorAuthFlutterPlugin.swift | 104 +++++++++--------- ios/single_factor_auth_flutter.podspec | 2 +- 4 files changed, 64 insertions(+), 74 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index dfaa5ad..9325125 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,24 +1,22 @@ PODS: - - AnyCodable-FlightSchool (0.6.7) - BigInt (5.2.0) - curvelib.swift (1.0.1) - Flutter (1.0.0) - KeychainSwift (20.0.0) - single_factor_auth_flutter (0.0.1): - Flutter - - SingleFactorAuth (= 6.0.0) - - SingleFactorAuth (6.0.0): + - SingleFactorAuth (= 8.0.0) + - SingleFactorAuth (8.0.0): - curvelib.swift (~> 1.0.1) - - Torus-fetchNodeDetails (~> 6.0.1) - - Torus-utils (~> 8.1.0) - - TorusSessionManager (~> 4.0.2) + - Torus-fetchNodeDetails (~> 6.0.3) + - Torus-utils (~> 9.0.1) + - TorusSessionManager (~> 5.0.0) - Torus-fetchNodeDetails (6.0.3): - BigInt (~> 5.2.0) - - Torus-utils (8.1.0): - - AnyCodable-FlightSchool (~> 0.6.0) + - Torus-utils (9.0.1): - curvelib.swift (~> 1.0.1) - - Torus-fetchNodeDetails (~> 6.0.1) - - TorusSessionManager (4.0.2): + - Torus-fetchNodeDetails (~> 6.0.3) + - TorusSessionManager (5.0.0): - curvelib.swift (~> 1.0.1) - KeychainSwift (~> 20.0.0) @@ -28,7 +26,6 @@ DEPENDENCIES: SPEC REPOS: trunk: - - AnyCodable-FlightSchool - BigInt - curvelib.swift - KeychainSwift @@ -44,17 +41,16 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/single_factor_auth_flutter/ios" SPEC CHECKSUMS: - AnyCodable-FlightSchool: 261cbe76757802b17d471b9059b21e6fa5edf57b BigInt: f668a80089607f521586bbe29513d708491ef2f7 curvelib.swift: d0746ae82bee34016c06da3567a97e493b3c979f Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 KeychainSwift: 0ce6a4d13f7228054d1a71bb1b500448fb2ab837 - single_factor_auth_flutter: c15c7a7a225399326d38c85de60ba3e1d5c5f82a - SingleFactorAuth: 2c25b70f7faac954fc15fe8f9598f80b09ca450e + single_factor_auth_flutter: 9617e5ffce9c0251bddb19cbe49293f921c13b79 + SingleFactorAuth: 2bfa8ad0fe8d0023fffdf1a5f0c9634ca3ee66d8 Torus-fetchNodeDetails: 6c349f47cbca36a4b3f276fe26d03c1b39b20949 - Torus-utils: 3ec4dba5ea50935ab129077adef4207af5a00225 - TorusSessionManager: 05a1a8f3265d0949a1a342c4ba2c52882445b614 + Torus-utils: 1d23e6eedf9ee7df9ecc2605b765ad68eb194f71 + TorusSessionManager: 42c21f100d895976fabe3806cb9c575392f6e424 PODFILE CHECKSUM: d5c402b2f74646de5c7f24c1231886362b49b38f -COCOAPODS: 1.14.3 +COCOAPODS: 1.14.2 diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift index 70693e4..b636303 100644 --- a/example/ios/Runner/AppDelegate.swift +++ b/example/ios/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import UIKit import Flutter -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/ios/Classes/SingleFactorAuthFlutterPlugin.swift b/ios/Classes/SingleFactorAuthFlutterPlugin.swift index 5ccd2f6..eaf6f2d 100644 --- a/ios/Classes/SingleFactorAuthFlutterPlugin.swift +++ b/ios/Classes/SingleFactorAuthFlutterPlugin.swift @@ -16,21 +16,25 @@ public class SingleFactorAuthFlutterPlugin: NSObject, FlutterPlugin { private func getNetwork(_ network: String) -> Web3AuthNetwork { switch network { case "mainnet": - return Web3AuthNetwork.MAINNET + return .legacy(.MAINNET) case "testnet": - return Web3AuthNetwork.TESTNET + return .legacy(.TESTNET) case "aqua": - return Web3AuthNetwork.AQUA + return .legacy(.AQUA) case "cyan": - return Web3AuthNetwork.CYAN + return .legacy(.CYAN) + case "sappire_devnet": + return .sapphire(.SAPPHIRE_DEVNET) + case "sapphire_mainnet": + return .sapphire(.SAPPHIRE_MAINNET) default: - return Web3AuthNetwork.MAINNET + return .sapphire(.SAPPHIRE_MAINNET) } } var decoder = JSONDecoder() var encoder = JSONEncoder() - var singleFactorAuthArgs: SingleFactorAuthArgs? + var sfaParams: SFAParams? var singleFactorAuth: SingleFactorAuth? public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { @@ -47,13 +51,14 @@ public class SingleFactorAuthFlutterPlugin: NSObject, FlutterPlugin { let params = try self.decoder.decode(InitParams.self, from: data) - singleFactorAuthArgs = SingleFactorAuthArgs( - web3AuthClientId: params.clientid, - network: self.getNetwork(params.network) + sfaParams = SFAParams( + web3AuthClientId: params.clientId, + network: self.getNetwork(params.network), + sessionTime: params.sessionTime ?? 86400 ) - let singleFactorAuth = SingleFactorAuth( - singleFactorAuthArgs: singleFactorAuthArgs! + let singleFactorAuth = try SingleFactorAuth( + params: sfaParams! ) self.singleFactorAuth = singleFactorAuth @@ -72,59 +77,38 @@ public class SingleFactorAuthFlutterPlugin: NSObject, FlutterPlugin { result(throwKeyNotGeneratedError()) } - case "getTorusKey": + case "connect": let args = call.arguments as? String guard let data = args?.data(using: .utf8) else { return result(throwKeyNotGeneratedError()) } let params = try self.decoder.decode(getTorusKeyParams.self, from: data) - - let loginParams = LoginParams( - verifier: params.verifier, - verifierId: params.verifierId, - idToken: params.idToken - ) - - do { - - let torusKeyCF = try await singleFactorAuth?.getKey( - loginParams: loginParams + + let loginParams: LoginParams + if params.aggregateVerifier?.isEmpty ?? true { + loginParams = LoginParams( + verifier: params.verifier, + verifierId: params.verifierId, + idToken: params.idToken + ) + } else { + loginParams = LoginParams( + verifier: params.aggregateVerifier!, + verifierId: params.verifierId, + idToken: params.idToken, + subVerifierInfoArray: [ + TorusSubVerifierInfo( + verifier: params.verifier, + idToken: params.idToken + ) + ] ) - - let resultData = try encoder.encode(torusKeyCF) - let resultJson = String(decoding: resultData, as: UTF8.self) - return result(resultJson) - } catch { - result(throwKeyNotGeneratedError()) - } - break - - case "getAggregateTorusKey": - let args = call.arguments as? String - guard let data = args?.data(using: .utf8) else { - return result(throwKeyNotGeneratedError()) - } - - let params = try self.decoder.decode(getTorusKeyParams.self, from: data) - - guard let aggregateVerifier = params.aggregateVerifier else { - return result(throwParamMissingError(param: "aggregateVerifier")) } - let loginParams = LoginParams( - verifier: params.aggregateVerifier!, - verifierId: params.verifierId, - idToken: params.idToken, - subVerifierInfoArray: [ - TorusSubVerifierInfo( - verifier: params.verifier, - idToken: params.idToken - ) - ]) - do { - let torusKeyCF = try await singleFactorAuth?.getKey( + + let torusKeyCF = try await singleFactorAuth?.connect( loginParams: loginParams ) @@ -135,6 +119,15 @@ public class SingleFactorAuthFlutterPlugin: NSObject, FlutterPlugin { result(throwKeyNotGeneratedError()) } break + + case "isSessionIdExists": + if(singleFactorAuth == nil) { + return result(false) + } else { + return result(try await singleFactorAuth?.isSessionIdExists()) + } + break + default: break } @@ -157,7 +150,8 @@ public class SingleFactorAuthFlutterPlugin: NSObject, FlutterPlugin { struct InitParams: Codable { var network: String - var clientid: String + var clientId: String + var sessionTime: Int? = 86400 } struct getTorusKeyParams: Codable { diff --git a/ios/single_factor_auth_flutter.podspec b/ios/single_factor_auth_flutter.podspec index b441109..0fddef6 100644 --- a/ios/single_factor_auth_flutter.podspec +++ b/ios/single_factor_auth_flutter.podspec @@ -15,7 +15,7 @@ A new Flutter plugin project. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'SingleFactorAuth', '6.0.0' + s.dependency 'SingleFactorAuth', '8.0.0' s.platform = :ios, '14.0' # Flutter.framework does not contain a i386 slice. From 8b2285d6fbed60018c796e22e7bad8ce74061321 Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Thu, 19 Sep 2024 10:07:49 +0530 Subject: [PATCH 09/11] feat: update single-factor-auth-android Signed-off-by: Gaurav Goel --- android/build.gradle | 2 +- .../SingleFactorAuthFlutterPlugin.kt | 15 ++++++++++++--- example/lib/main.dart | 7 ++++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index ab61aa3..eb8a8ed 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -49,7 +49,7 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4' - implementation 'com.github.Web3Auth:single-factor-auth-android:1.0.0' + implementation 'com.github.grvgoel81:single-factor-auth-android:9.0.0' implementation 'org.torusresearch:fetch-node-details-java:5.0.0' implementation 'com.google.code.gson:gson:2.9.1' } diff --git a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt index 2a9deea..d3692c2 100644 --- a/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt +++ b/android/src/main/kotlin/com/web3auth/single_factor_auth_flutter/SingleFactorAuthFlutterPlugin.kt @@ -86,8 +86,8 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { try { val sfaKey = singleFactorAuth.initialize(context) Log.d("${SingleFactorAuthFlutterPlugin::class.qualifiedName}", "#initialize") - return if (sfaKey != null) { - prepareResultFromSFAkey(sfaKey) + return if (sfaKey.get() != null) { + prepareResultFromSFAkey(sfaKey.get()) } else { "" } @@ -127,7 +127,16 @@ class SingleFactorAuthFlutterPlugin : FlutterPlugin, MethodCallHandler { } "isSessionIdExists" -> { - return singleFactorAuth.isSessionIdExists() + try { + val result = singleFactorAuth.isSessionIdExists() + Log.d( + "${SingleFactorAuthFlutterPlugin::class.qualifiedName}", + "#isSessionIdExists" + ) + return result + } catch (e: Throwable) { + throw Error(e) + } } } throw NotImplementedError() diff --git a/example/lib/main.dart b/example/lib/main.dart index aa52d22..c45eddf 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -111,7 +111,7 @@ class _MyAppState extends State { height: 20, ), const Text( - 'Get Web3AuthKey', + 'Get SFAKey', style: TextStyle(fontSize: 12), ), const SizedBox( @@ -119,7 +119,7 @@ class _MyAppState extends State { ), ElevatedButton( onPressed: _getKey(getKey), - child: const Text('Web3AuthKey'), + child: const Text('Get SFAKey'), ), ElevatedButton( onPressed: () => _initialize(), @@ -163,7 +163,8 @@ class _MyAppState extends State { final SFAKey? response = await _singleFactorAuthFlutterPlugin.initialize(); setState(() { - _result = "Private Key : ${response?.privateKey}"; + _result = + "Public Add : ${response?.publicAddress} , Private Key : ${response?.privateKey}"; log(response!.publicAddress); }); } on PrivateKeyNotGeneratedException { From 35a7308f5151dd61035375007e0a9a3095fccd3c Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Thu, 19 Sep 2024 11:49:52 +0530 Subject: [PATCH 10/11] feat: code cleanup Signed-off-by: Gaurav Goel --- ios/Classes/SingleFactorAuthFlutterPlugin.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ios/Classes/SingleFactorAuthFlutterPlugin.swift b/ios/Classes/SingleFactorAuthFlutterPlugin.swift index eaf6f2d..eb0d453 100644 --- a/ios/Classes/SingleFactorAuthFlutterPlugin.swift +++ b/ios/Classes/SingleFactorAuthFlutterPlugin.swift @@ -121,12 +121,17 @@ public class SingleFactorAuthFlutterPlugin: NSObject, FlutterPlugin { break case "isSessionIdExists": - if(singleFactorAuth == nil) { + do { + if singleFactorAuth == nil { return result(false) } else { - return result(try await singleFactorAuth?.isSessionIdExists()) + let isSessionExists = try await singleFactorAuth?.isSessionIdExists() ?? false + return result(isSessionExists) } - break + } catch { + result(throwKeyNotGeneratedError()) + } + break default: break From 157bb61aa5cf5c71f0ac27b269ce4961fb165c58 Mon Sep 17 00:00:00 2001 From: Gaurav Goel Date: Thu, 19 Sep 2024 17:42:15 +0530 Subject: [PATCH 11/11] feat: update sfa android latest version Signed-off-by: Gaurav Goel --- android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index eb8a8ed..b9e89bf 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -49,7 +49,7 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4' - implementation 'com.github.grvgoel81:single-factor-auth-android:9.0.0' + implementation 'com.github.Web3Auth:single-factor-auth-android:1.1.0' implementation 'org.torusresearch:fetch-node-details-java:5.0.0' implementation 'com.google.code.gson:gson:2.9.1' }