// Taken from https://medium.com/walletconnect/how-to-build-a-wallet-in-react-native-with-the-web3wallet-sdk-b6f57bf02f9a import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils'; import { SignClientTypes } from '@walletconnect/types'; import { getSdkError } from '@walletconnect/utils'; import { EIP155_SIGNING_METHODS } from './EIP155Lib'; import { getSignParamsMessage } from './Helpers'; import { signEthMessage } from '../sign-message'; export async function approveEIP155Request( requestEvent: SignClientTypes.EventArguments['session_request'], counterId: number, ) { const { params, id } = requestEvent; const { request } = params; switch (request.method) { case EIP155_SIGNING_METHODS.PERSONAL_SIGN: const message = getSignParamsMessage(request.params); const signedMessage = await signEthMessage(message, counterId); return formatJsonRpcResult(id, signedMessage); default: throw new Error(getSdkError('INVALID_METHOD').message); } } export function rejectEIP155Request( request: SignClientTypes.EventArguments['session_request'], ) { const { id } = request; return formatJsonRpcError(id, getSdkError('USER_REJECTED_METHODS').message); }