/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow strict-local */ import React, { useState } from "react" import { SafeAreaView, ScrollView, StatusBar, Text, TouchableOpacity, View } from "react-native" import { addEventListener, connect, defaultConfig, getInfo, Network, removeEventListener } from "@breeztech/react-native-breez-liquid-sdk" import { generateMnemonic } from "@dreson4/react-native-quick-bip39" import { getSecureItem, setSecureItem } from "./utils/storage" const MNEMONIC_STORE = "MNEMONIC_SECURE_STORE" const DebugLine = ({ title, text }) => { return ( {title} {text && text.length > 0 ? {text} : <>} ) } const App = () => { const [lines, setLines] = useState([]) const addLine = (title, text) => { setLines((lines) => [{ at: new Date().getTime(), title, text }, ...lines]) console.log(`${title}${text && text.length > 0 ? ": " + text : ""}`) } const eventHandler = (e) => { addLine("event", JSON.stringify(e)) } React.useEffect(() => { let listenerId = null const asyncFn = async () => { try { let mnemonic = await getSecureItem(MNEMONIC_STORE) if (mnemonic == null) { mnemonic = generateMnemonic(256) setSecureItem(MNEMONIC_STORE, mnemonic) } const config = await defaultConfig(Network.TESTNET) addLine("defaultConfig", JSON.stringify(config)) await connect({ config, mnemonic }) addLine("connect", null) listenerId = await addEventListener(eventHandler) addLine("addEventListener", listenerId) let walletInfo = await getInfo() addLine("getInfo", JSON.stringify(walletInfo)) } catch (e) { addLine("error", e.toString()) console.log(`Error: ${JSON.stringify(e)}`) } } asyncFn() return () => { if (listenerId) { removeEventListener(listenerId) } } }, []) return ( {lines.map((line) => ( ))} ) } export default App