Skip to content

Commit 9076a4c

Browse files
update examples
1 parent aafdab3 commit 9076a4c

File tree

5 files changed

+58
-67
lines changed

5 files changed

+58
-67
lines changed

android-firebase-example/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ dependencies {
3737
implementation 'com.google.android.material:material:1.7.0'
3838
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
3939
implementation 'com.google.code.gson:gson:2.9.1'
40-
implementation 'com.github.web3auth:web3auth-android-sdk:9.0.4'
40+
implementation 'com.github.grvgoel81:web3auth-android-sdk:2.0.0.5'
4141
implementation 'org.web3j:core:4.8.7-android'
4242
implementation platform('com.google.firebase:firebase-bom:31.0.2')
4343
implementation 'com.google.firebase:firebase-auth-ktx'

android-firebase-example/app/src/main/java/com/sbz/web3authdemoapp/MainActivity.kt

Lines changed: 25 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.sbz.web3authdemoapp
22

33
import android.content.ContentValues.TAG
44
import android.content.Intent
5-
import android.net.Uri
65
import android.os.Bundle
76
import android.util.Log
87
import android.view.View
@@ -11,14 +10,13 @@ import android.widget.TextView
1110
import android.widget.Toast
1211
import androidx.appcompat.app.AppCompatActivity
1312
import com.google.firebase.auth.FirebaseAuth
14-
import com.google.firebase.auth.FirebaseUser
1513
import com.google.firebase.auth.GetTokenResult
1614
import com.google.firebase.auth.ktx.auth
1715
import com.google.firebase.ktx.Firebase
1816
import com.google.gson.Gson
19-
import com.google.gson.JsonArray
2017
import com.web3auth.core.Web3Auth
2118
import com.web3auth.core.types.*
19+
import org.torusresearch.fetchnodedetails.types.Web3AuthNetwork
2220
import org.web3j.crypto.Credentials
2321
import org.web3j.crypto.Hash
2422
import org.web3j.crypto.RawTransaction
@@ -57,34 +55,8 @@ class MainActivity : AppCompatActivity() {
5755
web3Auth = Web3Auth(
5856
Web3AuthOptions(
5957
clientId = getString(R.string.web3auth_project_id), // pass over your Web3Auth Client ID from Developer Dashboard
60-
network = Network.SAPPHIRE_MAINNET, // pass over the network you want to use (MAINNET or TESTNET or CYAN, AQUA, SAPPHIRE_MAINNET or SAPPHIRE_TESTNET)
61-
buildEnv = BuildEnv.PRODUCTION,
62-
redirectUrl = Uri.parse("com.sbz.web3authdemoapp://auth"), // your app's redirect URL
63-
// Optional parameters
64-
whiteLabel = WhiteLabelData(
65-
"Web3Auth Android FireBase Example",
66-
null,
67-
"https://cryptologos.cc/logos/ethereum-eth-logo.png",
68-
"https://cryptologos.cc/logos/ethereum-eth-logo.png",
69-
Language.EN,
70-
ThemeModes.LIGHT,
71-
true,
72-
hashMapOf(
73-
"primary" to "#eb5424"
74-
)
75-
),
76-
mfaSettings = MfaSettings(
77-
deviceShareFactor = MfaSetting(true, 1, true),
78-
socialBackupFactor = MfaSetting(true, 2, true),
79-
passwordFactor = MfaSetting(true, 3, false),
80-
backUpShareFactor = MfaSetting(true, 4, false),
81-
),
82-
loginConfig = hashMapOf("jwt" to LoginConfigItem(
83-
verifier = "w3a-firebase-demo",
84-
typeOfLogin = TypeOfLogin.JWT,
85-
name = "Firebase login",
86-
clientId = getString(R.string.web3auth_project_id)
87-
))
58+
web3AuthNetwork = Web3AuthNetwork.SAPPHIRE_MAINNET, // pass over the network you want to use (MAINNET or TESTNET or CYAN, AQUA, SAPPHIRE_MAINNET or SAPPHIRE_TESTNET
59+
redirectUrl ="com.sbz.web3authdemoapp://auth", // your app's redirect URL
8860
), context = this
8961
)
9062

@@ -96,10 +68,9 @@ class MainActivity : AppCompatActivity() {
9668
sessionResponse.whenComplete { _, error ->
9769
if (error == null) {
9870
reRender()
99-
println("PrivKey: " + web3Auth.getPrivkey())
100-
println("ed25519PrivKey: " + web3Auth.getEd25519PrivKey())
71+
println("PrivKey: " + web3Auth.getPrivateKey())
10172
println("Web3Auth UserInfo" + web3Auth.getUserInfo())
102-
credentials = Credentials.create(web3Auth.getPrivkey())
73+
credentials = Credentials.create(web3Auth.getPrivateKey())
10374

10475
} else {
10576
Log.d("MainActivity_Web3Auth", error.message ?: "Something went wrong")
@@ -154,6 +125,7 @@ class MainActivity : AppCompatActivity() {
154125
web3Auth.setResultUrl(null)
155126
Web3Auth.setCustomTabsClosed(false)
156127
}
128+
// PnP - CustomAuthentication -
157129
}
158130

159131
private fun signIn() {
@@ -167,13 +139,18 @@ class MainActivity : AppCompatActivity() {
167139
val idToken = result.token
168140
//Do whatever
169141
Log.d(TAG, "GetTokenResult result = $idToken")
170-
val selectedLoginProvider = Provider.JWT
171-
val loginParams = LoginParams(selectedLoginProvider, extraLoginOptions = ExtraLoginOptions(domain= "firebase", id_token = idToken, verifierIdField = "sub"))
172-
val loginCompletableFuture: CompletableFuture<Web3AuthResponse> = web3Auth.login(loginParams)
142+
val authConnection = AuthConnection.CUSTOM
143+
val loginParams = LoginParams(
144+
authConnection,
145+
idToken = idToken,
146+
authConnectionId = "w3a-firebase-demo"
147+
)
148+
149+
val loginCompletableFuture: CompletableFuture<Web3AuthResponse> = web3Auth.connectTo(loginParams)
173150

174151
loginCompletableFuture.whenComplete { _, error ->
175152
if (error == null) {
176-
credentials = Credentials.create(web3Auth.getPrivkey())
153+
credentials = Credentials.create(web3Auth.getPrivateKey())
177154
reRender()
178155
} else {
179156
Log.d("MainActivity_Web3Auth", error.message ?: "Something went wrong" )
@@ -221,19 +198,17 @@ class MainActivity : AppCompatActivity() {
221198
}
222199

223200
private fun prepareLoginParams(result: GetTokenResult): LoginParams {
224-
val selectedLoginProvider = Provider.JWT
225-
return LoginParams(selectedLoginProvider, extraLoginOptions = ExtraLoginOptions(domain= "firebase", id_token = result.token, verifierIdField = "sub"))
201+
val authConnection = AuthConnection.CUSTOM
202+
return LoginParams(
203+
authConnection,
204+
idToken = result.token,
205+
authConnectionId = "w3a-firebase-demo"
206+
)
226207
}
227208

228209
private fun launchWalletServices() {
229-
val completableFuture = web3Auth.launchWalletServices(
230-
ChainConfig(
231-
chainId = "0x1",
232-
rpcTarget = "https://1rpc.io/eth",
233-
ticker = "ETH",
234-
chainNamespace = ChainNamespace.EIP155
235-
)
236-
)
210+
211+
val completableFuture = web3Auth.showWalletUI()
237212

238213
completableFuture.whenComplete{_, error ->
239214
if(error == null) {
@@ -249,7 +224,7 @@ class MainActivity : AppCompatActivity() {
249224
private fun getAddress(): String {
250225
val contentTextView = findViewById<TextView>(R.id.contentTextView)
251226
val publicAddress = credentials.address
252-
contentTextView.text = publicAddress
227+
contentTextView.text = web3Auth.getPrivateKey()
253228
println("Address:, $publicAddress")
254229
return publicAddress
255230
}
@@ -325,7 +300,7 @@ class MainActivity : AppCompatActivity() {
325300
var key: String? = null
326301
var userInfo: UserInfo? = null
327302
try {
328-
key = web3Auth.getPrivkey()
303+
key = web3Auth.getPrivateKey()
329304
userInfo = web3Auth.getUserInfo()
330305
} catch (ex: Exception) {
331306
print(ex)

android-playground/app/src/main/java/com/example/android_playground/di/appModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private fun getWeb3AuthHelper(context: Context): Web3AuthHelper {
3333
clientId = "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ",
3434
network = Network.SAPPHIRE_MAINNET,
3535
redirectUrl = Uri.parse( "w3a://com.example.android_playground/auth")
36-
), context.applicationContext
36+
), context
3737
)
3838

3939
return Web3AuthHelperImpl(web3Auth)

android-quick-start/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ dependencies {
4444
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
4545
implementation 'com.google.code.gson:gson:2.9.1'
4646
// IMP START - Installation
47-
implementation 'com.github.web3auth:web3auth-android-sdk:9.0.4'
47+
implementation 'com.github.grvgoel81:web3auth-android-sdk:2.0.0.5'
4848
// IMP END - Installation
4949
implementation 'org.web3j:core:4.8.7-android'
5050
testImplementation 'junit:junit:4.13.2'

android-quick-start/app/src/main/java/com/sbz/web3authdemoapp/MainActivity.kt

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
package com.sbz.web3authdemoapp
33

44
import android.content.Intent
5-
import android.net.Uri
65
import android.os.Bundle
76
import android.util.Log
87
import android.view.View
@@ -12,10 +11,12 @@ import android.widget.TextView
1211
import android.widget.Toast
1312
import androidx.appcompat.app.AppCompatActivity
1413
import com.google.gson.Gson
14+
import com.google.gson.JsonArray
1515
// IMP START - Quick Start
1616
import com.web3auth.core.Web3Auth
1717
// IMP END - Quick Start
1818
import com.web3auth.core.types.*
19+
import org.torusresearch.fetchnodedetails.types.Web3AuthNetwork
1920
import org.web3j.crypto.Credentials
2021
import org.web3j.crypto.Hash
2122
import org.web3j.crypto.RawTransaction
@@ -33,7 +34,6 @@ import org.web3j.utils.Numeric
3334
import java.math.BigInteger
3435
import java.nio.charset.StandardCharsets
3536
import java.util.concurrent.CompletableFuture
36-
import kotlin.math.log
3737

3838

3939
class MainActivity : AppCompatActivity() {
@@ -54,9 +54,8 @@ class MainActivity : AppCompatActivity() {
5454
web3Auth = Web3Auth(
5555
Web3AuthOptions(
5656
clientId = getString(R.string.web3auth_project_id),
57-
network = Network.SAPPHIRE_MAINNET, // pass over the network you want to use (MAINNET or TESTNET or CYAN, AQUA, SAPPHIRE_MAINNET or SAPPHIRE_TESTNET)
58-
buildEnv = BuildEnv.PRODUCTION,
59-
redirectUrl = Uri.parse("com.sbz.web3authdemoapp://auth")
57+
web3AuthNetwork = Web3AuthNetwork.SAPPHIRE_MAINNET, // pass over the network you want to use (MAINNET or TESTNET or CYAN, AQUA, SAPPHIRE_MAINNET or SAPPHIRE_TESTNET)
58+
redirectUrl = "com.sbz.web3authdemoapp://auth"
6059
), this
6160
)
6261
// IMP END - Initialize Web3Auth
@@ -68,10 +67,10 @@ class MainActivity : AppCompatActivity() {
6867
sessionResponse.whenComplete { _, error ->
6968
if (error == null) {
7069
reRender()
71-
println("PrivKey: " + web3Auth.getPrivkey())
72-
println("ed25519PrivKey: " + web3Auth.getEd25519PrivKey())
70+
println("PrivKey: " + web3Auth.getPrivateKey())
71+
println("ed25519PrivKey: " + web3Auth.getEd25519PrivateKey())
7372
println("Web3Auth UserInfo" + web3Auth.getUserInfo())
74-
credentials = Credentials.create(web3Auth.getPrivkey())
73+
credentials = Credentials.create(web3Auth.getPrivateKey())
7574
web3 = Web3j.build(HttpService(rpcUrl))
7675
} else {
7776
Log.d("MainActivity_Web3Auth", error.message ?: "Something went wrong")
@@ -90,7 +89,23 @@ class MainActivity : AppCompatActivity() {
9089
signOutButton.visibility = View.GONE
9190

9291
val getAddressButton = findViewById<Button>(R.id.getAddress)
93-
getAddressButton.setOnClickListener { getAddress() }
92+
getAddressButton.setOnClickListener {
93+
val credentials = Credentials.create(web3Auth.getPrivateKey())
94+
val params = JsonArray().apply {
95+
// Message to be signed
96+
add("Hello, World!")
97+
// User's EOA address
98+
add(credentials.address)
99+
}
100+
Log.i("Is MFA Enabled", web3Auth.getUserInfo()?.isMfaEnabled.toString())
101+
try {
102+
val enableMFACF = web3Auth.showWalletUI()
103+
val isSuccess = enableMFACF.get()
104+
Log.i("Is Success", isSuccess.toString())
105+
} catch (e: Exception) {
106+
Log.e("MFA ERROR", e.toString())
107+
}
108+
}
94109
getAddressButton.visibility = View.GONE
95110

96111
val getBalanceButton = findViewById<Button>(R.id.getBalance)
@@ -125,17 +140,18 @@ class MainActivity : AppCompatActivity() {
125140
private fun signIn() {
126141
val email = emailInput.text.toString()
127142
// IMP START - Login
128-
val selectedLoginProvider = Provider.EMAIL_PASSWORDLESS // Can be GOOGLE, FACEBOOK, TWITCH etc.
129-
val loginParams = LoginParams(selectedLoginProvider, extraLoginOptions = ExtraLoginOptions(login_hint = email))
143+
val authConnection = AuthConnection.EMAIL_PASSWORDLESS // Can be GOOGLE, FACEBOOK, TWITCH etc.
144+
val loginParams = LoginParams(authConnection, extraLoginOptions = ExtraLoginOptions(login_hint = email, flow_type = EmailFlowType.code))
145+
// val loginParams = LoginParams(authConnection)
130146
val loginCompletableFuture: CompletableFuture<Web3AuthResponse> =
131-
web3Auth.login(loginParams)
147+
web3Auth.connectTo(loginParams)
132148
// IMP END - Login
133149

134150
loginCompletableFuture.whenComplete { _, error ->
135151
if (error == null) {
136152
// Set the sessionId from Web3Auth in App State
137153
// This will be used when making blockchain calls with Web3j
138-
credentials = Credentials.create(web3Auth.getPrivkey())
154+
credentials = Credentials.create(web3Auth.getPrivateKey())
139155
web3 = Web3j.build(HttpService(rpcUrl))
140156
reRender()
141157
} else {
@@ -176,7 +192,7 @@ class MainActivity : AppCompatActivity() {
176192
var key: String? = null
177193
var userInfo: UserInfo? = null
178194
try {
179-
key = web3Auth.getPrivkey()
195+
key = web3Auth.getPrivateKey()
180196
// IMP START - Get User Info
181197
userInfo = web3Auth.getUserInfo()
182198
// IMP END - Get User Info

0 commit comments

Comments
 (0)