Wagmi Connector

Wagmi is a collection of React Hooks containing everything you need to start working with Ethereum. @mocanetwork/airkit-connector is a connector for the popular wagmi library to help you integrate and interact with the AirService.

This package can be used to initialize a wagmi client that will seamlessly manage the interaction (wallet connection state and configuration, such as auto-connection, connectors, and ethers providers) of your dApp.

Initialization

import { http, createConfig, CreateConnectorFn } from "wagmi";
import { mainnet, sepolia } from "wagmi/chains";
import { airConnector, AirConnector, AirConnectorProperties } from "@mocanetwork/airkit-connector";

const wagmiConfig = createConfig({
  chains: [mainnet, sepolia],
  transports: {
    [mainnet.id]: http(),
    [sepolia.id]: http(),
  },
  connectors: [
    airConnector({
      partnerId: {{YOUR_PARTNER_ID}},
    }),
  ],
});

Inside your (root) React component you can add the wagmi provider to the component tree.

function App() {
  return (
    <WagmiProvider config={wagmiConfig}>
      ...
    </WagmiProvider>
  );
}

Usage

Now you can access the connector in any component and interact with the wagmi connector. The AirService itself can also be accessed by casting the Connector to a union type with AirConnectorProperties or directly to AirConnector.

const { connect, connectors, error } = useConnect();
const { addresses, connector } = useAccount();

const isAirWalletConnector = (connector as Connector & AirConnectorProperties)?.isMocaNetwork;
const airConnector = useMemo<AirConnector | null>(() => {
  if (isAirWalletConnector) {
    return connector;
  }
  return null;
}, [connector, isAirWalletConnector]);

const service = airConnector.airService;