Embedded Wallet用モバイルSDK(React Native)
このコンテンツでは、Sequence Embedded Wallet SDKをReact Nativeで統合し、ウォレットとインデクサーの完全な連携を実現する手順を詳しくご紹介します。
Sequence Embedded Wallet SDKは、React NativeでSequenceのEmbedded WalletやIndexerと完全に連携して利用できます。
SDKの利用例やテンプレートのダウンロードは、Embedded Wallet React Native Demoリポジトリでご覧いただけます。
ビデオプレビュー
ご自身の認証情報/キーでのセットアップ
プロジェクトのアクセスキーやその他の認証情報/キーの取得方法は、こちらのガイドをご参照ください:https://docs.sequence.xyz/solutions/builder/embedded-wallet/
./iosおよび./androidフォルダごとの認証情報/キーの設定手順
iOS
Expoを使用する場合、ios > infoPlistのapp.jsonファイルでGIDClientIDを設定できます。
手動の場合は、Googleサインイン用にInfo.plistファイルでGIDClientIDを設定します。
Android
Expoを使用する場合、android > intentFiltersのapp.jsonファイルでintent-filterを設定できます。
手動の場合は、Googleサインイン用にAndroidManifest.xmlファイルでintent-filterを設定します。
統合の詳細
ethersやその他の暗号関連パッケージ用のshimのセットアップ
まず、shimsのセットアップとreact-native-quick-crypto
からethers
用にpbkdf2
を登録する方法について、cryptoSetup.tsの内容を確認しましょう。
次に、cryptoSetup.ts
をアプリのライフサイクルの早い段階で必ずインポートしてください。このデモでは、App.tsxの冒頭でインポート・設定されています。
次に、一部のshim用のエイリアスをbabel-plugin-module-resolver
(開発用依存)を使ってbabel.config.js
で設定する必要があります。エイリアスの更新方法は、babel.config.jsのコードスニペットをご覧ください。
Sequence WaaSの初期化
(詳細はwaasSetup.tsファイルをご参照ください)
サインイン
初期化済みのSequence WaaSインスタンスがあれば、メール、Google、Appleでサインインできます。Googleのコード例は下記をご覧いただき、詳細はApp.tsxファイルをご確認ください。
ウォレット操作
サインイン後は、sequenceWaas
インスタンスを使ってトランザクション送信やメッセージ署名などのウォレット操作が可能です。下記のコードスニペットをご覧いただき、詳細はApp.tsxファイルをご確認ください。
Ethers v6アップデートの移行メモ
react-native-quick-crypto-ethers-patch.js
や関連設定は不要になりました。ethers v6ではreact-native-quick-crypto
パッケージからpbkdf2関数を直接登録できるためです。(関連コードはcryptoSetup.tsをご参照ください。)- ethers移行ガイドを参考に、コードベースをethers v6へ移行できます。
依存パッケージ
必要なSequenceパッケージ
- @0xsequence/waas
- @0xsequence/react-native
その他必要な依存/shim
共通
-
ethers
-
ethersproject/shims
-
expo
-
react-native-quick-crypto
-
react-native-mmkv
-
react-native-keychain
-
babel-plugin-module-resolver(開発用依存)
Apple・Googleログイン用
- expo-web-browser
- expo-auth-session
- @invertase/react-native-apple-authentication
メールログイン用
- react-native-url-polyfill
- web-streams-polyfill