Portefeuille

Qu'est-ce qu'un portefeuille ?

Un portefeuille de crypto-monnaie est un portefeuille numérique utilisé pour interagir avec la blockchain. Il vous permet de signer, de vérifier et d'envoyer des transactions. Il existe de nombreuses solutions de portefeuille de crypto-monnaies sur le marché, allant des applications web simples à utiliser aux solutions de sécurité matérielle plus complexes.

Connexions Sociales sur Solana

Web3Authopen in new window permet aux utilisateurs de se connecter en utilisant leurs fournisseurs Web2 OAuth existants (Facebook, Google, Twitter, etc.) dans des applications Web3. Il offre une approche facile à utiliser et non-custodialopen in new window de la gestion des actifs et de l'identité. Il supprime les obstacles techniques et réduit la courbe d'apprentissage de la propriété numérique pour tous les utilisateurs en fournissant un cadre à la gestion des clés privées.

Guide d'Intégration

Ce tutoriel vous guidera à travers un exemple de base pour intégrer les connexions sociales dans votre application.

Installation des Dépendances

Pour commencer à utiliser le portefeuille avec une dapp, vous pouvez installer @toruslabs/solana-embed. Vous pouvez utiliser des gestionnaires de paquets connus comme yarn et npm pour les télécharger.

yarn add @toruslabs/solana-embed
npm install --save @toruslabs/solana-embed

Importer le SDK et l'initialiser

Dans l'extrait de code ci-dessous, nous créons une instance de solana-embed et l'initialisons avec l'environnement de test qui utilise le tesnet de Solana. Vous pouvez passer d'autres options de configuration lors de l'initialisation de l'interface du portefeuille. Vous pouvez vous référer à solana-embed api-referenceopen in new window pour en savoir plus.

Press </> button to view full source
import { clusterApi, Connection } from "@solana/web3.js";

import Torus from "@toruslabs/solana-embed";

(async () => {
  const torus = new Torus();

  await torus.init({
    buildEnv: "testing", // uses solana-testing.tor.us (which uses testnet)
    enableLogging: true, // default : false
    showTorusButton: true, // default: true
  });
})();

Déclencher la connexion de l'utilisateur

Il suffit d'appeler torus.login() pour déclencher une connexion à n'importe quel moment du cycle de vie de votre application. L'appel de la méthode de connexion sans aucun paramètre ouvrira une modale permettant à l'utilisateur de sélectionner toutes les connexions prises en charge.

Une fois la connexion réussie, la méthode renvoie un tableau de clés publiques. Le premier élément du tableau est la clé publique du portefeuille actuel.

Press </> button to view full source
(async () => {
  const publicKeys = await torus.login(); // return array of public key in base 58
  const publicKey = publicKeys[0];
})();

Utilisation de l'instance torus pour récupérer les détails du compte utilisateur

L'instance torus fournit une interface pour des interactions telles que la signature de transactions et de messages lorsque l'on est connecté. Il peut également nous fournir une interface permettant d'accéder aux informations de connexion de l'utilisateur, telles que son adresse électronique, son image de profil, etc. (selon la méthode de connexion utilisée)

Press </> button to view full source
(async () => {
  const userInfo = await torus.getUserInfo(); // user profile info (email address etc)
})();

Utilisation de l'API Solana de Torus pour signer un message.

Afin d'envoyer un message à signer par l'utilisateur, l'application web doit fournir une chaîne de caractères codée en UTF-8 sous forme de Uint8Array.

Chaque fois qu'un utilisateur veut signer un message, le portefeuille ouvre une fenêtre de confirmation.

Press </> button to view full source
(async () => {
  const msg = Buffer.from("Test Signing Message ", "utf8");
  const signed_message = await torus.signMessage(msg);
})();

De même, vous pouvez aussi utiliser les méthodes signTransactionopen in new window et signAllTransactions de l'instance torus pour respectivement la signature des transactions uniques et multiples.

Utilisation de l'API Solana de Torus pour envoyer une transaction.

Pour envoyer une transaction, il suffit d'appeler la méthode sendTransaction de l'instance torus et de lui passer la Transaction.

Le portefeuille ouvre une fenêtre de confirmation. Après approbation, le SDK signe et envoie la transaction à la blockchain.

Press </> button to view full source
(async () => {
  const network = "";
  const connection = new Connection(network);
  const blockhash = (await conn.getRecentBlockhash("finalized")).blockhash;

  const destPublicKey = "<destination public key>";
  const transactionInstruction = SystemProgram.transfer({
    fromPubkey: new PublicKey(publicKey),
    toPubkey: new PublicKey(destPublicKey),
    lamports: 0.1 * LAMPORTS_PER_SOL,
  });
  const transaction = new Transaction({
    recentBlockhash: blockhash,
    feePayer: new PublicKey(publicKey),
  }).add(transactionInstruction);

  const res = await torus.sendTransaction(transaction);
})();

Top-ups​

Actuellement, l'API prend en charge les topups de Moonpay.

Press </> button to view full source
(async () => {
  const paymentStatus = await torus.initateTopup("moonpay");

  // topup with custom address
  const paymentStatus = torus.initateTopup("moonpay", {
    selectedAddress: "< Recipient's Solana Public Key(base58) >",
  });
})();

Déconnexion

Pour déconnecter l'utilisateur, il suffit d'appeler la fonction logout de l'instance du portefeuille torus.

Press </> button to view full source
(async () => {
  await torus.logout();
})();

Ressources

Last Updated:
Contributors: cryptoloutre