何がWalletConnectですか?


導入


分散したアプリケーション生態系の出現は、かなりの懸念を引き起こしました.近年、技術に対する関心が高まっている.ソフトウェア産業は、分散したプログラム(DApps)の方へますますシフトしました、そして、その結果、ブロックチェーンは速く人気の問題になりました.しかし、分散アプリケーションの多くのさまざまな種類があり、ブロックのように多くの異なる種類のすべてのこれらのアプリの機能を理解し、どのように、彼らは目指している、どのようにそれらに到達することは困難かもしれません.
多くの従来の銀行とFintech社は、一方向のインタラクションから双方向の、分散したクライアントサービスに移行しています.新しい方法は、これらの分散システムを接続し、利用するために、これらのDAppsに自分のサービスにアクセスするためにあなたの財布をリンクしている.この記事では、WalletConnectは、その機能、統合、およびコミュニティとの対話方法を通過します.

何がWalletConnectですか?



WalletConnect DAppsとウォレットが互いに安全に通信できるようにするオープンプロトコルです.クライアントは、プロトコルのJSON - RPC機能を使用して、1つまたは2つの異なるデバイスと交換メッセージに存在できます.
WalletConnect要求は、生態系のクライアントによって交換されたすべての通信を送信するWAUゴシップネットワークを介してルーティングされます.エンドツーエンドの暗号化を提供するために、クライアントは最初にDiffie - Hellmanプロトコルを通してキーを交換します.後で、一致しているHMACコードによる対称的に暗号化されたメッセージはメッセージ信頼性とデータ完全性を確実にするために届けられます.
WalletConnectは開発者のために構築され、WalletConnect SDKはAndroid、IOS、およびWebで利用可能です.

WalletConnect機能


WallectConnectは本当に最高の経験以外のユーザーを提供することについて心配しています.Walkletconnect V 20の機能は、それがブロックチェーンアプリケーションの次世代のための最高の技術であるため、誰にも2番目です.
これらの機能を含める

  • 連鎖不可知論:任意のブロックチェーンとの対話.新しいブロックとロールプスのボックスのサポートから.

  • マルチチェーン:同時に1つ以上のチェーンと財布に接続し、さまざまなチェーンにトランザクションを送信します.この新しい機能は、プログラムを自動的にまたは手動でウォレットまたはユーザーによってコンテキストを切り替えるには、任意の同期を必要とせずにいくつかのチェーン上の財布と対話する方法を舗装します.チェーンのスワッピングがないでしょう.

  • マルチセッション:必要に応じて多くのセッションを管理します.必要なUXを作成するには、柔軟なAPIが提供されます.

  • 分散メッセージング:メッセージリレー今すぐすべてのノードの周りのゴシップメッセージにWAUネットワークを活用します.もはや集中サーバーに依存することはありません.

  • ワンタイムペアリング:複数のセッションは、単一のペアリングから確立することができます.セッションの数に制限は、1つだけ接続が必要です.

  • 減少した帯域幅:WebSocket管理は、中断なしで単一のソケット全体のすべての通信を多重化するために効率的に資源を再利用します.
  • WalletConnectの統合


    コードのいくつかの行だけで、WalletConnectを統合することができます.JavaScriptのためのSDKは、iOS/スイフト、およびAndroid/Kollinは現在入手可能です.
    WalletConnectは異なるチェーンで動作するように構築されています.Ethereum , Cosmos , Celo , Near , Solana , and Polkadot . WalletConnectを使用してDAPPの何百ものウォレットと接続するには、例えば:Etherscan , Uniswap , Opensea , Zapper , Aave , Unstoppable domains , などWalletConnectによる統合された財布のいくつかTrust Wallet , Metamask , Rainbow , Argent , Crypto.com Defi wallet , MathWallet , など

    クイックDappsの統合


    このクイックDAppsの統合はノードです.JSクライアント固有の、テストでの統合のためのテストの財布を使用してください.WalletConnectそれが安全でないので、orgとこの財布に資金を送らないでください.注意すべき別の点は、JavaScript ES 6構文のコードが以下で表示されることです.我々は、インストール、イニシエーション、送信トランザクション、および署名トランザクションを議論します.

  • インストール.
  • yarn add @walletconnect/node @walletconnect/qrcode-modal
    
    npm install --save @walletconnect/node @walletconnect/qrcode-modal
    

  • 接続を開始します.
  • import NodeWalletConnect from "@walletconnect/node";
    import WalletConnectQRCodeModal from "@walletconnect/qrcode-modal";
    
    // Create connector
    const walletConnector = new NodeWalletConnect(
      {
        bridge: "https://bridge.walletconnect.org", // Required
      },
      {
        clientMeta: {
          description: "WalletConnect NodeJS Client",
          url: "https://nodejs.org/en/",
          icons: ["https://nodejs.org/static/images/logo.svg"],
          name: "WalletConnect",
        },
      }
    );
    
    // Check if connection is already established
    if (!walletConnector.connected) {
      // create new session
      walletConnector.createSession().then(() => {
        // get uri for QR Code modal
        const uri = walletConnector.uri;
        // display QR Code modal
        WalletConnectQRCodeModal.open(
          uri,
          () => {
            console.log("QR Code Modal closed");
          },
          true // isNode = true
        );
      });
    }
    
    // Subscribe to connection events
    walletConnector.on("connect", (error, payload) => {
      if (error) {
        throw error;
      }
    
      // Close QR Code Modal
      WalletConnectQRCodeModal.close(
        true // isNode = true
      );
    
    // Get provided accounts and chainId
      const { accounts, chainId } = payload.params[0];
    });
    
    walletConnector.on("session_update", (error, payload) => {
      if (error) {
        throw error;
      }
    
      // Get updated accounts and chainId
      const { accounts, chainId } = payload.params[0];
    });
    
    walletConnector.on("disconnect", (error, payload) => {
      if (error) {
        throw error;
      }
    
      // Delete walletConnector
    });
    
    
  • トランザクションを送信する
  • // Draft transaction
    const tx = {
      from: "0xbc28Ea04101F03aA7a94C1379bc3AB32E65e62d3", // Required
      to: "0x89D24A7b4cCB1b6fAA2625Fe562bDd9A23260359", // Required (for non contract deployments)
      data: "0x", // Required
      gasPrice: "0x02540be400", // Optional
      gas: "0x9c40", // Optional
      value: "0x00", // Optional
      nonce: "0x0114", // Optional
    };
    
    // Send transaction
    walletConnector
      .sendTransaction(tx)
      .then((result) => {
        // Returns transaction id (hash)
        console.log(result);
      })
      .catch((error) => {
        // Error returned when rejected
        console.error(error);
      });
    
    
  • サイン取引
  • // Draft transaction
    const tx = {
      from: "0xbc28Ea04101F03aA7a94C1379bc3AB32E65e62d3", // Required
      to: "0x89D24A7b4cCB1b6fAA2625Fe562bDd9A23260359", // Required (for non contract deployments)
      data: "0x", // Required
      gasPrice: "0x02540be400", // Optional
      gas: "0x9c40", // Optional
      value: "0x00", // Optional
      nonce: "0x0114", // Optional
    };
    
    // Sign transaction
    walletConnector
      .signTransaction(tx)
      .then((result) => {
        // Returns signed transaction
        console.log(result);
      })
      .catch((error) => {
        // Error returned when rejected
        console.error(error);
      });
    
    

    結論


    これまでのところ、我々はWalletConnectは、その機能、およびその統合の詳細な説明を提供することができました.我々は、ノードを使用してDAPPを統合するいくつかのコードを書いた.JSクライアント、インストール、接続の開始、トランザクションの送信、トランザクションの署名.これらの基本的な統合は、あなたのDappにWalletConnectを統合を開始するために必要です.しっかりしたドキュメンテーションと非常に活発なコミュニティで、WalletConnectはそんなに多くで、あなたが考えるより多くのことをすることができます.
    WalletConnectコミュニティに参加
    ウェブサイトhttps://walletconnect.com
    Twitter
    不和https://discord.walletconnect.org
    ギタブhttps://github.com/walletconnect
    ドキュメントhttps://docs.walletconnect.com