Hey @vjgee,
Below my implementation code :
const selectedNetwork = WEB3AUTH_NETWORK.MAINNET;
const clientidweb3 = process.env.REACT_APP_WEB3AUTH_CLIENTID;
const coreKitInstance = new Web3AuthMPCCoreKit({
web3AuthClientId: clientidweb3 as string,
web3AuthNetwork: selectedNetwork,
uxMode: "popup",
chainConfig: {
chainNamespace: "eip155",
chainId: "0x1",
rpcTarget: "https://rpc.ankr.com/eth",
displayName: "Ethereum Mainnet",
blockExplorer: "https://etherscan.io",
ticker: "ETH",
tickerName: "Ethereum",
},
});
useEffect(() => {
if (coreKitInstance) {
const init = async () => {
await coreKitInstance.init();
if (coreKitInstance.provider) {
setProvidercorkit(coreKitInstance.provider);
}
setCoreKitStatus(coreKitInstance.status);
};
init();
}
}, [coreKitInstance]);
useEffect(() => {
if (providercorkit) {
const web3 = new Web3(providercorkit);
setWeb3(web3);
}
}, []);
const login = async () => {
try {
setIsLoading(true);
if (!coreKitInstance) {
throw new Error("initiated to login");
}
// console.log("1");
const verifierConfig = {
subVerifierDetails: {
typeOfLogin: "google",
verifier: "blok-capital",
clientId: process.env.REACT_APP_GOOGLE_ID,
},
} as SubVerifierDetailsParams;
await coreKitInstance.loginWithOauth(verifierConfig);
if (coreKitInstance.status === COREKIT_STATUS.REQUIRED_SHARE) {
console.log(
"required more shares, please enter your backup/ device factor key, or reset account unrecoverable once reset, please use it with caution]"
);
setResetaccount(true);
}
if (coreKitInstance.provider) {
setProvidercorkit(coreKitInstance.provider);
setWeb3AuthSigner(coreKitInstance.provider);
}
const userdata: UserData =
coreKitInstance.getUserInfo() as unknown as UserData;
setUserinfo(userdata);
setsucessfullogin(true);
} catch (error) {
console.log(error);
setResetaccount(true);
console.error(error);
} finally {
setIsLoading(false);
}
};
package.json here
{
"name": "mpc-core-kit-redirect-flow-example",
"version": "0.1.0",
"private": true,
"dependencies": {
"@alchemy/aa-core": "^0.1.0-alpha.23",
"@tanstack/react-query": "^5.8.2",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"@types/node": "^16.18.48",
"@types/react": "^18.2.21",
"@types/react-dom": "^18.2.7",
"@web3auth/base": "^7.1.0",
"@web3auth/mpc-core-kit": "^1.1.0",
"@zerodev/sdk": "^4.3.1",
"abitype": "^0.10.2",
"ajv": "^8.12.0",
"alchemy-sdk": "^2.11.0",
"axios": "^1.6.2",
"bn.js": "^5.2.1",
"browserify-zlib": "^0.2.0",
"clipboard-copy": "^4.0.1",
"copy-webpack-plugin": "^11.0.0",
"ethers": "^6.8.1",
"html-webpack-plugin": "^5.5.3",
"jsrsasign": "^10.6.1",
"lucide-react": "^0.292.0",
"querystring-es3": "^0.2.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^4.12.0",
"react-router-dom": "^6.18.0",
"react-scripts": "5.0.1",
"react-spinners": "^0.13.8",
"react-toastify": "^9.1.3",
"styled-components": "^6.1.1",
"typescript": "^4.9.5",
"uninstall": "^0.0.0",
"viem": "^1.5.3",
"web-vitals": "^2.1.4",
"web3": "^4.2.2",
"web3-core": "^4.3.1"
},
"scripts": {
"start": "react-app-rewired start",
"serve": "serve -s build",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
"chrome >= 67",
"edge >= 79",
"firefox >= 68",
"opera >= 54",
"safari >= 14"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@types/eccrypto": "^1.1.3",
"@types/elliptic": "^6.4.14",
"@types/jsrsasign": "^10.5.5",
"assert": "^2.0.0",
"buffer": "^6.0.3",
"crypto-browserify": "^3.12.0",
"https-browserify": "^1.0.0",
"os-browserify": "^0.3.0",
"process": "^0.11.10",
"react-app-rewired": "^2.2.1",
"stream-browserify": "^3.0.0",
"stream-http": "^3.2.0",
"tailwindcss": "^3.3.5",
"url": "^0.11.1"
}
}