UNPKG

@reown/appkit-siwe-react-native

Version:

#### 🔎 [Examples](https://github.com/reown-com/react-native-examples)

34 lines (28 loc) • 876 B
import { isValidEip191Signature, isValidEip1271Signature } from '@walletconnect/utils'; const ETH_ADDRESS_PATTERN = /0x[a-fA-F0-9]{40}/u; const ETH_CHAIN_ID_IN_SIWE_PATTERN = /Chain ID: (?<temp1>\d+)/u; export function getAddressFromMessage(message: string) { return message.match(ETH_ADDRESS_PATTERN)?.[0] || ''; } export function getChainIdFromMessage(message: string) { return `eip155:${message.match(ETH_CHAIN_ID_IN_SIWE_PATTERN)?.[1] || 1}`; } export async function verifySignature({ address, message, signature, chainId, projectId }: { address: string; message: string; signature: string; chainId: string; projectId: string; }) { let isValid = await isValidEip191Signature(address, message, signature); if (!isValid) { isValid = await isValidEip1271Signature(address, message, signature, chainId, projectId); } return isValid; }