Merge branch 'main' into improve-verification

This commit is contained in:
b 2024-05-24 09:27:46 +00:00
commit 2cdcfd7ca7
2 changed files with 45 additions and 9 deletions

View File

@ -20,6 +20,7 @@ import { LoginMethods } from '../../store/auth/types'
import { Dispatch } from '../../store/store' import { Dispatch } from '../../store/store'
import { npubToHex, queryNip05 } from '../../utils' import { npubToHex, queryNip05 } from '../../utils'
import styles from './style.module.scss' import styles from './style.module.scss'
import { hexToBytes } from '@noble/hashes/utils'
export const Login = () => { export const Login = () => {
const [searchParams] = useSearchParams() const [searchParams] = useSearchParams()
@ -92,9 +93,24 @@ export const Login = () => {
}) })
} }
const loginWithNsec = async () => { /**
const nsec = inputValue * Login with NSEC or HEX private key
const privateKey = nip19.decode(nsec).data as Uint8Array * @param privateKey in HEX format
*/
const loginWithNsec = async (privateKey?: Uint8Array) => {
let nsec = ''
if (privateKey) {
nsec = nip19.nsecEncode(privateKey)
} else {
nsec = inputValue
try {
privateKey = nip19.decode(nsec).data as Uint8Array
} catch (err) {
toast.error(`Error decoding the nsec. ${err}`)
}
}
if (!privateKey) { if (!privateKey) {
toast.error( toast.error(
@ -307,7 +323,19 @@ export const Login = () => {
return loginWithNsecBunker() return loginWithNsecBunker()
} }
toast.error('Invalid Input!') // Check if maybe hex nsec
try {
const privateKey = hexToBytes(inputValue)
const publickey = getPublicKey(privateKey)
if (publickey) return loginWithNsec(privateKey)
} catch (err) {
console.warn('err', err)
}
toast.error(
'Invalid format, please use: private key (hex), nsec..., bunker:// or nip05 format.'
)
return return
} }
@ -329,7 +357,7 @@ export const Login = () => {
<Typography variant="h4">Welcome to Sigit</Typography> <Typography variant="h4">Welcome to Sigit</Typography>
<TextField <TextField
onKeyDown={handleInputKeyDown} onKeyDown={handleInputKeyDown}
label="nip05 login / nip46 bunker string / nsec" label="nip05 login / nip46 bunker string"
value={inputValue} value={inputValue}
onChange={(e) => setInputValue(e.target.value)} onChange={(e) => setInputValue(e.target.value)}
sx={{ width: '100%', mt: 2 }} sx={{ width: '100%', mt: 2 }}

View File

@ -208,7 +208,7 @@ export const ProfilePage = () => {
</Box> </Box>
</Box> </Box>
<Box className={styles.head}> <Box className={styles.head}>
<Box sx={{lineHeight: 1}} className={styles.npubNip}> <Box sx={{ lineHeight: 1 }} className={styles.npubNip}>
<Box <Box
sx={{ sx={{
display: 'flex' display: 'flex'
@ -216,7 +216,7 @@ export const ProfilePage = () => {
> >
{profileMetadata && ( {profileMetadata && (
<Typography <Typography
sx={{ margin: '5px 0 5px 0'}} sx={{ margin: '5px 0 5px 0' }}
variant="h6" variant="h6"
className={styles.bold} className={styles.bold}
> >
@ -240,11 +240,19 @@ export const ProfilePage = () => {
</Box> </Box>
<Box> <Box>
{profileMetadata?.nip05 && {profileMetadata?.nip05 &&
textElementWithCopyIcon(profileMetadata.nip05, undefined, 15)} textElementWithCopyIcon(
profileMetadata.nip05,
undefined,
15
)}
</Box> </Box>
<Box> <Box>
{profileMetadata?.lud16 && {profileMetadata?.lud16 &&
textElementWithCopyIcon(profileMetadata.lud16, undefined, 15)} textElementWithCopyIcon(
profileMetadata.lud16,
undefined,
15
)}
</Box> </Box>
</Box> </Box>