Wallet Integration
Introduction
Installation
npm install @mozi-dev/wallet-sdkSetting Up MOZI Wallet
Using RainbowKit
import { WalletTgSdk } from '@mozi-dev/wallet-sdk';
import type { EIP1193Provider } from 'viem';
import type { WalletConnectParameters } from 'wagmi/connectors';
import type { Wallet } from '@rainbow-me/rainbowkit';
import { createConnector } from 'wagmi';
import { injected } from 'wagmi/connectors';
export interface DefaultWalletOptions {
projectId: string;
walletConnectParameters?: RainbowKitWalletConnectParameters;
}
export type RainbowKitWalletConnectParameters = Omit<
WalletConnectParameters,
'showQrModal' | 'projectId'
>;
// Simple wallet use with RainbowKit
export const moziWallet = ({
walletConnectParameters,
}: DefaultWalletOptions): Wallet => {
let provider: unknown | EIP1193Provider;
const sdk = new WalletTgSdk({
metaData: {
icon: walletConnectParameters?.metadata?.icons?.[0],
name: walletConnectParameters?.metadata?.name,
description: walletConnectParameters?.metadata?.description,
url: walletConnectParameters?.metadata?.url,
},
});
return {
id: 'moziWallet',
name: 'MOZI Wallet',
iconUrl: sdk.getAppInfo().logo,
installed: true,
iconBackground: '#000000',
createConnector: (walletDetails) => {
return createConnector((config) => ({
...injected()(config),
...walletDetails,
getProvider: async () => {
if (provider) return provider;
provider = sdk.ethereum;
return provider;
},
}));
},
};
};Using Wagmi
Last updated