Hi @yashovardhan
I added connector to rainbow:
RainbowWeb3authConnector.tsx
export const rainbowWeb3AuthConnector = (): Wallet => ({
id: "web3auth",
name: "Google & Email",
rdns: "web3auth",
iconUrl: "https://web3auth.io/images/web3authlog.png",
iconBackground: "#fff",
installed: true,
downloadUrls: {},
createConnector: (walletDetails: WalletDetailsParams) =>
createWagmiConnector((config) => ({
...Web3AuthConnectorInstance()(config),
...walletDetails,
})),
});
Your suggestion here:
w3aConnectorInstance.tsx
import { Web3AuthConnector } from "@web3auth/web3auth-wagmi-connector";
import { Web3Auth } from "@web3auth/modal";
import { EthereumPrivateKeyProvider } from "@web3auth/ethereum-provider";
import { CHAIN_NAMESPACES, WEB3AUTH_NETWORK, WALLET_ADAPTERS, UX_MODE } from "@web3auth/base";
import { WalletServicesPlugin } from "@web3auth/wallet-services-plugin";
const clientId =
"xxx";
export default function Web3AuthConnectorInstance() {
// Create Web3Auth Instance
const name = "My App Name";
const chainConfig = {
name,
chainNamespace: CHAIN_NAMESPACES.EIP155,
chainId: '0x' + eth.id.toString(16),
rpcTarget: eth.rpcUrls.default.http[0],
displayName: eth.name,
blockExplorerUrl: eth.blockExplorers.default.url,
};
const privateKeyProvider = new EthereumPrivateKeyProvider({ config: { chainConfig } });
const web3AuthInstance = new Web3Auth({
clientId,
web3AuthNetwork: WEB3AUTH_NETWORK.SAPPHIRE_MAINNET,
privateKeyProvider,
uiConfig: {
// useLogoLoader: true,
// logoLight: "https://cryptologos.cc/logos/ethereum-eth-logo.png",
// logoDark: "https://cryptologos.cc/logos/ethereum-eth-logo.png",
// defaultLanguage: "en",
// theme: {
// primary: "primary",
// },
uxMode: UX_MODE.POPUP,
modalZIndex: "99999999999999999",
}
});
const walletServicesPlugin = new WalletServicesPlugin({
walletInitOptions: {
whiteLabel: {
showWidgetButton: true,
buttonPosition: "top-right",
hideSwap: true
}
}
});
web3AuthInstance.addPlugin(walletServicesPlugin);
const modalConfig = {
[WALLET_ADAPTERS.AUTH]: {
label: "openlogin",
loginMethods: {
google: {
name: "google",
showOnModal: true,
mainOption: true
},
sms_passwordless: {
name: "sms_passwordless",
showOnModal: false
}
},
showOnModal: true,
},
}
return Web3AuthConnector({
web3AuthInstance,
modalConfig,
});
}
connect.tsx
export const WalletConnect = ({ children }: PropsWithChildren<unknown>) => {
const { colorMode } = useColorMode();
return (
<WagmiProvider config={wagmiConfig}>
<QueryClientProvider client={queryClient}>
<RainbowKitProvider theme={theme[colorMode]}>
{children}
</RainbowKitProvider>
</QueryClientProvider>
</WagmiProvider>
);
};
App.tsx
const App = ({ children }: { children: React.ReactNode }) => {
return (
<ChakraProvider
theme={theme}
colorModeManager={customLocalStorageManager as any}
toastOptions={{ defaultOptions: TOAST_BASE_OPTIONS }}
>
<ToastContainer />
<WalletConnect>
<GlobalModalManager.Provider>
<ColorModeScript initialColorMode='dark' />
<Layout>{children}</Layout>
</GlobalModalManager.Provider>
</WalletConnect>
</ChakraProvider>
);
};
On rainbow I see web3auth, I connect correctly but in the end I don’t see the widget of web3auth (Wallet Service)