converting-minikit-to-farcaster

Convertit les Mini Apps de MiniKit (OnchainKit) vers le SDK Farcaster natif. À utiliser lors d'une migration depuis `@coinbase/onchainkit/minikit`, de la conversion des hooks MiniKit, de la suppression du MiniKitProvider, ou lorsque l'utilisateur mentionne MiniKit, OnchainKit ou une migration vers le SDK Farcaster.

npx skills add https://github.com/base/skills --skill converting-minikit-to-farcaster

MiniKit vers Farcaster SDK

Breaking Changes (SDK v0.2.0+)

  1. sdk.context est une Promise — doit être awaité
  2. sdk.isInMiniApp() n'accepte aucun paramètre
  3. sdk.actions.setPrimaryButton() n'a pas de callback onClick

Vérifier la version : npm list @farcaster/miniapp-sdk

Référence rapide

MiniKit Farcaster SDK Notes
useMiniKit().setFrameReady() await sdk.actions.ready()
useMiniKit().context await sdk.context Asynchrone
useMiniKit().isSDKLoaded await sdk.isInMiniApp() Aucun param
useClose() await sdk.actions.close()
useOpenUrl(url) await sdk.actions.openUrl(url)
useViewProfile(fid) await sdk.actions.viewProfile({ fid })
useViewCast(hash) await sdk.actions.viewCast({ hash })
useComposeCast() await sdk.actions.composeCast({ text, embeds })
useAddFrame() await sdk.actions.addMiniApp()
usePrimaryButton(opts, cb) await sdk.actions.setPrimaryButton(opts) Aucun callback
useAuthenticate() sdk.quickAuth.getToken() Voir AUTH.md

Motif d'accès au contexte

// INCORRECT
const fid = sdk.context?.user?.fid;

// CORRECT
const context = await sdk.context;
const fid = context?.user?.fid;

Dans les composants React, utiliser l'état :

const [context, setContext] = useState(null);

useEffect(() => {
  const load = async () => {
    const ctx = await sdk.context;
    setContext(ctx);
  };
  load();
}, []);

Workflow de conversion

  1. Vérifier Node.js >= 22.11.0
  2. Mettre à jour les dépendances — voir DEPENDENCIES.md
  3. Remplacer les imports : @coinbase/onchainkit/minikit@farcaster/miniapp-sdk
  4. Convertir les hooks en utilisant la référence ci-dessus
  5. Ajouter FrameProvider — voir PROVIDER.md
  6. Mettre à jour le manifest : frameminiapp — voir MANIFEST.md

Erreurs courantes

"Property 'user' does not exist on type 'Promise<MiniAppContext>'" → Attendre sdk.context avant d'accéder aux propriétés

"Expected 0 arguments, but got 1" → Supprimer les paramètres de sdk.isInMiniApp()

Le contexte est null dans les composants → S'assurer que FrameProvider est dans votre chaîne de providers

Références

Skills similaires