Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seed recovery 🌱 #300

Merged
merged 80 commits into from
Feb 8, 2024
Merged
Show file tree
Hide file tree
Changes from 77 commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
68d2c79
bump cashu-ts to 0.9.0
KKA11010 Jan 27, 2024
19b1ac3
add screens for seed setup. add seed utils
KKA11010 Jan 27, 2024
5e42014
add seed screen in options
KKA11010 Jan 28, 2024
16212cc
add screens related to seed backup
KKA11010 Jan 28, 2024
bd3a249
add translations, clean up
Jan 29, 2024
06d59f5
Add SENTRY_AUTH_TOKEN to .example.env.dev
KKA11010 Jan 29, 2024
75616f3
Update translations and image sizes
KKA11010 Jan 29, 2024
dd7fd20
Update wallet/index.ts with restore method details
KKA11010 Jan 29, 2024
25344f6
wallet/index.ts update comment
KKA11010 Jan 29, 2024
9efb45d
update comment
KKA11010 Jan 29, 2024
ba38476
add missing translation. update mnemonic screen
KKA11010 Jan 29, 2024
133d6e1
Add counter increment
KKA11010 Jan 30, 2024
cdf6186
restore
Jan 31, 2024
1527461
Refactor wallet recovery and add recovered proofs
KKA11010 Jan 31, 2024
2d37281
test restore
Feb 1, 2024
fcc2ae1
update restore counters
KKA11010 Feb 1, 2024
2b54593
clean up
KKA11010 Feb 2, 2024
4087bf6
Remove unused screens and components
KKA11010 Feb 2, 2024
1896099
Remove unused functions and imports
KKA11010 Feb 2, 2024
06db115
clean up restore screen components
KKA11010 Feb 2, 2024
661493a
remove dashboard animation
KKA11010 Feb 2, 2024
5bd3717
Add TODO custom recovery mint URL input field
KKA11010 Feb 2, 2024
b407dbe
update restore screens
KKA11010 Feb 2, 2024
9c0f521
Update screens and utils
KKA11010 Feb 2, 2024
8e12a18
Fix input comparison bug in ConfirmMnemonicScreen
KKA11010 Feb 2, 2024
29d6cf8
Update wallet/restore.ts and screen components
KKA11010 Feb 3, 2024
8185ba5
Add RESTORE_OVERSHOOT, update wallet/restore.ts
KKA11010 Feb 3, 2024
ccba92b
Add TODOs
KKA11010 Feb 3, 2024
e17161a
Add comingFromOnboarding flag to Payment ProcessingError screen
KKA11010 Feb 3, 2024
b9c58fe
add restore to tx history
KKA11010 Feb 3, 2024
c466c9a
add hook useRestore
KKA11010 Feb 3, 2024
2a76f51
clean up imports
KKA11010 Feb 3, 2024
46fe6a0
add translations, clean up, lint
KKA11010 Feb 3, 2024
59f1f6a
add functionality to SelectRecoveryMint
KKA11010 Feb 3, 2024
d32e636
Remove TODO
KKA11010 Feb 3, 2024
4316418
Update "Add Mint URL" text to use translation key
KKA11010 Feb 3, 2024
8069711
clean up
KKA11010 Feb 3, 2024
4fe56af
add a disclaimer and recommendations screen
KKA11010 Feb 3, 2024
65e94ca
add TODO
KKA11010 Feb 3, 2024
fe68bcc
add basic tests
KKA11010 Feb 3, 2024
1242415
Update German translation and restore disclaimer
KKA11010 Feb 3, 2024
820ca83
Add TODOs
KKA11010 Feb 3, 2024
5c1c956
Update package.json version to 0.3.0
KKA11010 Feb 3, 2024
d58c48c
Update getBalance function to getMintBalance
KKA11010 Feb 3, 2024
b61a64a
Add seed migration hint to translation files
KKA11010 Feb 3, 2024
43ac0bf
Update seed migration hint for multiple mints
KKA11010 Feb 3, 2024
3e716cc
Update english and german translation
KKA11010 Feb 3, 2024
b913213
Commented out unused code in getCurrentKeySetId function
KKA11010 Feb 4, 2024
b1687ab
fix require cycle
KKA11010 Feb 4, 2024
7261030
Add new types and interfaces for PayLnInvoice and RequestToken
KKA11010 Feb 4, 2024
7a01034
Refactor screen imports in Navigator.tsx
KKA11010 Feb 4, 2024
e8bc673
Add InfoIcon to SeedScreen
KKA11010 Feb 4, 2024
bb3bbfc
Adjust header height in Restore/Seed screen
KKA11010 Feb 4, 2024
e5fcc6f
delete seed update screen component
KKA11010 Feb 4, 2024
38509c8
Refactor header actions styling in SeedScreen
KKA11010 Feb 4, 2024
32446b3
add flag and refactor pin setup screen
KKA11010 Feb 4, 2024
e1ec131
Add seed check before retrieving counters
KKA11010 Feb 4, 2024
6b292d2
update error handling
KKA11010 Feb 4, 2024
e5d509e
Fix seed screen navigation bug
KKA11010 Feb 4, 2024
c982024
prevent back navigation in recovering screen
Feb 5, 2024
7c9c89f
add warning in payment processing screen
Feb 5, 2024
78a135a
Refactor text alignment in ProcessingScreen
KKA11010 Feb 6, 2024
3e80007
Refactor payment process logic
KKA11010 Feb 6, 2024
192e69f
Add hasSeed parameter to initialParams
KKA11010 Feb 6, 2024
889586f
temporary ignore eslint error
KKA11010 Feb 6, 2024
9545ac7
Refactor error handling in Pool class
KKA11010 Feb 6, 2024
fa7bfc8
quick fix ci (fmtJson makes tsconfig.json invalid for jest)
KKA11010 Feb 6, 2024
b42d25c
Fix condition for skipping seed setup
KKA11010 Feb 6, 2024
9af69a3
Refactor MnemonicScreen component padding in warnContainer
KKA11010 Feb 6, 2024
ce577b0
Remove unused code and logging statements
KKA11010 Feb 6, 2024
4c51a0d
Update translations for wallet recovery messages
KKA11010 Feb 6, 2024
3d4399d
remove backupToken screens and utils
KKA11010 Feb 6, 2024
fc82038
lint
KKA11010 Feb 6, 2024
4874484
Remove separator
KKA11010 Feb 6, 2024
a17fdec
Remove commented out code in SecuritySettings
KKA11010 Feb 6, 2024
0392e6b
Add marginHorizontal to separator
KKA11010 Feb 6, 2024
d9a7d83
fix ci
KKA11010 Feb 6, 2024
750a8f6
add option to manually increase the restore counters by 50
KKA11010 Feb 7, 2024
48168e9
improve counter store by removing json methods
KKA11010 Feb 7, 2024
02691e5
remove debuging logs
KKA11010 Feb 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .example.env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
SENTRY_ORG=
SENTRY_PROJECT=
SENTRY_DSN=

SENTRY_AUTH_TOKEN=

NODE_ENV=development
NODE_ENV_SHORT=dev
Expand Down
769 changes: 395 additions & 374 deletions assets/translations/de.json

Large diffs are not rendered by default.

767 changes: 394 additions & 373 deletions assets/translations/en.json

Large diffs are not rendered by default.

767 changes: 394 additions & 373 deletions assets/translations/es.json

Large diffs are not rendered by default.

769 changes: 395 additions & 374 deletions assets/translations/fr.json

Large diffs are not rendered by default.

767 changes: 394 additions & 373 deletions assets/translations/hu.json

Large diffs are not rendered by default.

767 changes: 394 additions & 373 deletions assets/translations/sw.json

Large diffs are not rendered by default.

5,394 changes: 3,281 additions & 2,113 deletions package-lock.json

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"ts:check": "npx tsc",
"dep:update": "npx -y npm-check-updates --pre -u -u && npm i && npm audit fix || true && npx expo@latest install --fix && npm run lint",
"dep:check": "npx -y depcheck@latest",
"fmtJson": "npx prettier *.json assets/translations/*.json .github/workflows/*.yml --write --use-tabs --tab-width 4",
"fmtJson": "npx prettier assets/translations/*.json .github/workflows/*.yml --write --use-tabs --tab-width 4",
"expo:i:check": "npx expo@latest install --check",
"expo:i:fix": "npx expo@latest install --fix",
"expo:doc": "npx -y expo-doctor@latest",
Expand Down Expand Up @@ -39,7 +39,7 @@
"android": "expo run:android"
},
"dependencies": {
"@cashu/cashu-ts": "^0.8.1",
"@cashu/cashu-ts": "^0.9.0",
"@react-native-community/netinfo": "9.3.10",
"@react-navigation/core": "^6.4.10",
"@react-navigation/native": "^6.1.9",
Expand Down Expand Up @@ -152,7 +152,7 @@
"blind-signatures",
"lightning-network"
],
"version": "0.2.1",
"version": "0.3.0",
"license": "AGPL-3.0-only",
"bugs": {
"url": "https://github.com/cashubtc/eNuts/issues"
Expand Down
12 changes: 10 additions & 2 deletions src/components/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ function _App() {
// initial auth state
const [auth, setAuth] = useState<INavigatorProps>({ pinHash: '' })
const [shouldOnboard, setShouldOnboard] = useState(false)
const [hasSeed, setHasSeed] = useState(false)
const [sawSeedUpdate, setSawSeedUpdate] = useState(false)
// app was longer than 5 mins in the background
const [bgAuth, setBgAuth] = useState(false)
// PIN mismatch state
Expand Down Expand Up @@ -130,12 +132,16 @@ function _App() {

// init auth data
const initAuth = async () => {
const [pinHash, onboard] = await Promise.all([
const [pinHash, onboard, sawSeed, counter] = await Promise.all([
secureStore.get(SECURESTORE_KEY),
store.get(STORE_KEYS.explainer)
store.get(STORE_KEYS.explainer),
store.get(STORE_KEYS.sawSeedUpdate),
store.get(STORE_KEYS.restoreCounter),
])
setAuth({ pinHash: isNull(pinHash) ? '' : pinHash })
setShouldOnboard(onboard && onboard === '1' ? false : true)
setSawSeedUpdate(sawSeed && sawSeed === '1' ? true : false)
setHasSeed(!!counter)
// check for pin attempts and app locked state
await handlePinForeground()
}
Expand Down Expand Up @@ -213,6 +219,8 @@ function _App() {
pinHash={auth.pinHash}
bgAuth={bgAuth}
setBgAuth={setBgAuth}
hasSeed={hasSeed}
sawSeedUpdate={sawSeedUpdate}
/>
<StatusBar style="auto" />
<ClipboardModal />
Expand Down
98 changes: 0 additions & 98 deletions src/components/Backup.tsx

This file was deleted.

22 changes: 13 additions & 9 deletions src/components/Balance.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { EcashIcon, SwapCurrencyIcon, ZapIcon } from '@comps/Icons'
import { CheckmarkIcon, EcashIcon, SwapCurrencyIcon, ZapIcon } from '@comps/Icons'
import { setPreferences } from '@db'
import type { IHistoryEntry } from '@model'
import { type IHistoryEntry, TTXType,txType } from '@model'
import type { RootStackParamList } from '@model/nav'
import type { NativeStackNavigationProp } from '@react-navigation/native-stack'
import EntryTime from '@screens/History/entryTime'
Expand Down Expand Up @@ -47,10 +47,11 @@ export default function Balance({ balance, nav }: IBalanceProps) {
void setPreferences({ ...pref, formatBalance: !formatSats })
}

const getTxTypeStr = (type: number) => {
if (type === 1) { return 'Ecash' }
if (type === 2) { return 'Lightning' }
return t('swap')
const getTxTypeStr = (type: TTXType) => {
if (type === txType.SEND_RECEIVE) { return 'Ecash' }
if (type === txType.LIGHTNING) { return 'Lightning' }
if (type === txType.SWAP) { return t('swap') }
return t('seedBackup')
}

useEffect(() => {
Expand Down Expand Up @@ -109,12 +110,15 @@ export default function Balance({ balance, nav }: IBalanceProps) {
history.map(h => (
<HistoryEntry
key={h.timestamp}
icon={h.type === 2 || h.type === 3 ?
icon={h.type === txType.LIGHTNING || h.type === txType.SWAP ?
<ZapIcon width={s(28)} height={s(28)} color={getColor(highlight, color)} />
:
<EcashIcon color={getColor(highlight, color)} />
h.type === txType.RESTORE ?
<CheckmarkIcon color={getColor(highlight, color)} />
:
<EcashIcon color={getColor(highlight, color)} />
}
isSwap={h.type === 3}
isSwap={h.type === txType.SWAP}
txType={getTxTypeStr(h.type)}
timestamp={h.timestamp}
amount={h.amount}
Expand Down
49 changes: 49 additions & 0 deletions src/components/Icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,55 @@ export function ReleaseTagIcon({ width, height, color }: TIconProps) {
</Svg>
)
}
export function LeafIcon({ width, height, color }: TIconProps) {
return (
<Svg width={width || 24} height={height || 24} viewBox="0 0 24 24" fill="none">
<Path d="M6.73689 16.747C5.97017 18.059 5.56636 19.5514 5.56689 21.071C5.56689 21.3362 5.46154 21.5906 5.274 21.7781C5.08646 21.9656 4.83211 22.071 4.56689 22.071C4.30168 22.071 4.04732 21.9656 3.85979 21.7781C3.67225 21.5906 3.56689 21.3362 3.56689 21.071C3.56689 18.948 4.20389 16.908 5.35189 15.192C4.60061 14.0389 4.20582 12.6899 4.21685 11.3137C4.22787 9.93742 4.64423 8.59494 5.41389 7.45399C6.85589 5.31699 11.5799 3.43299 19.5839 1.80099C19.3159 8.65199 18.4619 13.146 17.0209 15.283C16.4735 16.0946 15.762 16.7823 14.9323 17.3018C14.1026 17.8213 13.1732 18.161 12.204 18.299C11.2349 18.437 10.2476 18.3701 9.30588 18.1028C8.36417 17.8355 7.489 17.3736 6.73689 16.747ZM7.94289 15.147C8.47758 15.6103 9.1045 15.9548 9.78221 16.1578C10.4599 16.3608 11.173 16.4177 11.8743 16.3247C12.5756 16.2317 13.2492 15.9909 13.8506 15.6183C14.452 15.2456 14.9674 14.7496 15.3629 14.163C16.3669 12.675 17.0999 9.34799 17.4469 4.31299C11.5039 5.7 7.98389 7.22199 7.07189 8.57299C6.58249 9.29803 6.29195 10.1388 6.2293 11.0113C6.16666 11.8838 6.3341 12.7575 6.71489 13.545C7.14489 13.122 7.61189 12.734 8.11489 12.385L8.62289 12.033C8.8409 11.882 9.10998 11.8237 9.37094 11.8711C9.6319 11.9184 9.86335 12.0675 10.0144 12.2855C10.1654 12.5035 10.2237 12.7726 10.1763 13.0335C10.129 13.2945 9.9799 13.526 9.76189 13.677L9.25489 14.029C8.78103 14.3569 8.34147 14.7318 7.94289 15.148V15.147Z" fill={color} />
</Svg>
)
}
export function BoltIcon({ width, height, color }: TIconProps) {
return (
<Svg width={width || 24} height={height || 24} viewBox="0 0 24 24" fill="none">
<Path fillRule="evenodd" clipRule="evenodd" d="M8.44558 2.25H14.375V9.25H19.9355L9.62497 22.1381V14.75H4.61035L8.44558 2.25ZM9.55437 3.75L6.6396 13.25H11.125V17.8619L16.8145 10.75H12.875V3.75H9.55437Z" fill={color} />
</Svg>
)
}
export function ExitIcon({ width, height, color }: TIconProps) {
return (
<Svg width={width || 24} height={height || 24} viewBox="0 0 24 24" fill="none">
<G clipPath="url(#clip0_105_2665)">
<Path d="M10.09 15.59L11.5 17L16.5 12L11.5 7L10.09 8.41L12.67 11H3V13H12.67L10.09 15.59ZM19 3H5C3.89 3 3 3.9 3 5V9H5V5H19V19H5V15H3V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3Z" fill={color} />
</G>
<Defs>
<ClipPath id="clip0_105_2665">
<Rect width="24" height="24" fill="white" />
</ClipPath>
</Defs>
</Svg>
)
}
export function HomeWifiIcon({ width, height, color }: TIconProps) {
return (
<Svg width={width || 24} height={height || 24} viewBox="0 0 24 24" fill="none">
<Path d="M17.5998 22.5609H6.39983C4.57983 22.5609 2.91983 21.1608 2.61983 19.3608L1.28984 11.4008C1.07984 10.1608 1.67985 8.57084 2.66985 7.78084L9.59984 2.23079C10.9398 1.15079 13.0498 1.1608 14.3998 2.2408L21.3298 7.78084C22.3098 8.57084 22.9098 10.1608 22.7098 11.4008L21.3798 19.3608C21.0798 21.1308 19.3898 22.5609 17.5998 22.5609ZM11.9898 2.94075C11.4598 2.94075 10.9298 3.10085 10.5398 3.41085L3.60982 8.96077C3.03982 9.42077 2.64982 10.4408 2.76982 11.1608L4.09984 19.1208C4.27984 20.1708 5.32983 21.0609 6.39983 21.0609H17.5998C18.6698 21.0609 19.7198 20.1708 19.8998 19.1108L21.2298 11.1508C21.3498 10.4308 20.9499 9.40076 20.3899 8.95076L13.4598 3.41085C13.0598 3.10085 12.5298 2.94075 11.9898 2.94075Z" fill={color} />
<Path d="M14.1205 15.1302C13.9305 15.1302 13.7505 15.0602 13.6005 14.9202C12.6305 13.9902 11.3706 13.9902 10.3906 14.9202C10.0906 15.2102 9.62052 15.2002 9.33052 14.9002C9.04052 14.6002 9.05054 14.1302 9.35054 13.8402C10.9005 12.3502 13.0705 12.3502 14.6305 13.8402C14.9305 14.1302 14.9405 14.6002 14.6505 14.9002C14.5205 15.0502 14.3205 15.1302 14.1205 15.1302Z" fill={color} />
<Path d="M16.2404 13.0118C16.0504 13.0118 15.8604 12.9418 15.7204 12.8018C15.2504 12.3418 14.7204 11.9717 14.1604 11.7017C12.7604 11.0317 11.2304 11.0317 9.84037 11.7017C9.28037 11.9717 8.76037 12.3418 8.28037 12.8018C7.99037 13.0918 7.51037 13.0918 7.22037 12.7918C6.93037 12.4918 6.94038 12.0217 7.23038 11.7317C7.82038 11.1517 8.48037 10.6917 9.19037 10.3517C11.0004 9.48172 13.0004 9.48172 14.8004 10.3517C15.5104 10.6917 16.1704 11.1517 16.7604 11.7317C17.0604 12.0217 17.0604 12.4918 16.7704 12.7918C16.6304 12.9318 16.4404 13.0118 16.2404 13.0118Z" fill={color} />
<Path d="M12.0005 17.5003C11.7405 17.5003 11.4905 17.4002 11.2905 17.2102C10.9005 16.8202 10.9005 16.1903 11.2905 15.8003C11.6805 15.4103 12.3205 15.4103 12.7105 15.8003C13.1005 16.1903 13.1005 16.8202 12.7105 17.2102C12.5105 17.4002 12.2605 17.5003 12.0005 17.5003Z" fill={color} />
</Svg>
)
}
export function BatteryChargingIcon({ width, height, color }: TIconProps) {
return (
<Svg width={width || 24} height={height || 24} viewBox="0 0 24 24" fill="none">
<Path d="M14.1278 4.10323C14.2743 4.18856 14.3876 4.32104 14.4492 4.47904C14.5108 4.63704 14.517 4.81124 14.4668 4.97323L12.7658 10.4992H15.7508C15.8973 10.4992 16.0406 10.542 16.163 10.6225C16.2854 10.7029 16.3816 10.8174 16.4396 10.9519C16.4977 11.0864 16.5151 11.2349 16.4897 11.3792C16.4644 11.5235 16.3973 11.6571 16.2968 11.7637L8.2958 20.2642C8.17969 20.3877 8.02518 20.4682 7.85746 20.4926C7.68974 20.517 7.51869 20.4839 7.3722 20.3987C7.22571 20.3134 7.11242 20.1811 7.05078 20.0232C6.98915 19.8653 6.98281 19.6912 7.0328 19.5292L8.7353 14.0017H5.7503C5.60382 14.0018 5.46052 13.9589 5.33811 13.8785C5.21569 13.7981 5.11951 13.6835 5.06145 13.549C5.00338 13.4146 4.98596 13.266 5.01135 13.1217C5.03674 12.9775 5.10381 12.8438 5.2043 12.7372L13.2038 4.23673C13.3199 4.11307 13.4744 4.0324 13.6422 4.00788C13.81 3.98336 13.9812 4.01644 14.1278 4.10173V4.10323Z" fill={color} />
<Path d="M3 6H9.498L8.088 7.5H3C2.60217 7.5 2.22064 7.65804 1.93934 7.93934C1.65804 8.22064 1.5 8.60218 1.5 9V15C1.5 15.3978 1.65804 15.7794 1.93934 16.0607C2.22064 16.342 2.60217 16.5 3 16.5H6.57L6.108 18H3C2.20435 18 1.44129 17.6839 0.87868 17.1213C0.316071 16.5587 0 15.7956 0 15V9C0 8.20435 0.316071 7.44129 0.87868 6.87868C1.44129 6.31607 2.20435 6 3 6Z" fill={color} />
<Path d="M3 9H6.675L4.362 11.4585C4.1233 11.7122 3.94678 12.0179 3.84633 12.3514C3.74588 12.685 3.72425 13.0373 3.78314 13.3806C3.84204 13.724 3.97985 14.049 4.18572 14.33C4.39159 14.611 4.65989 14.8403 4.9695 15H3V9ZM15.8925 6L15.4305 7.5H18C18.3978 7.5 18.7794 7.65804 19.0607 7.93934C19.342 8.22064 19.5 8.60218 19.5 9V15C19.5 15.3978 19.342 15.7794 19.0607 16.0607C18.7794 16.342 18.3978 16.5 18 16.5H13.914L12.501 18H18C18.7956 18 19.5587 17.6839 20.1213 17.1213C20.6839 16.5587 21 15.7956 21 15V9C21 8.20435 20.6839 7.44129 20.1213 6.87868C19.5587 6.31607 18.7956 6 18 6H15.8925Z" fill={color} />
<Path d="M17.6745 15H15L17.313 12.5415C17.4585 12.387 17.58 12.2145 17.6745 12.0315V15ZM17.6745 9.969V9H16.7055C17.1214 9.21439 17.4601 9.5531 17.6745 9.969ZM23.6745 12C23.6745 12.5967 23.4374 13.169 23.0155 13.591C22.5935 14.0129 22.0212 14.25 21.4245 14.25V9.75C22.0212 9.75 22.5935 9.98705 23.0155 10.409C23.4374 10.831 23.6745 11.4033 23.6745 12Z" fill={color} />
</Svg>
)
}

const styles = StyleSheet.create({
nostrIcon: {
marginLeft: -5
Expand Down
6 changes: 6 additions & 0 deletions src/components/TxtInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ interface ITxtInputProps {
ms?: number
maxLength?: number
value?: string
multiline?: boolean
numberOfLines?: number
style?: StyleProp<TextStyle>
}

Expand All @@ -27,6 +29,8 @@ export default function TxtInput({
ms,
maxLength,
value,
multiline,
numberOfLines,
style
}: ITxtInputProps) {
const { color, highlight } = useThemeContext()
Expand All @@ -52,6 +56,8 @@ export default function TxtInput({
onSubmitEditing={onSubmitEditing}
maxLength={maxLength}
value={value}
multiline={multiline}
numberOfLines={numberOfLines}
style={[globals(color).input, { marginBottom: vs(20) }, style]}
/>
)
Expand Down
85 changes: 0 additions & 85 deletions src/components/animation/QrTransition.ts

This file was deleted.

Loading
Loading