1- import {
2- compact ,
3- decode ,
4- decodePayload as jfsDecodePayload ,
5- verify as jfsVerify ,
6- } from "@farcaster/jfs" ;
1+ import * as jfs from "@farcaster/jfs" ; // must be imported like this to avoid ERR_REQUIRE_ESM error
72import { hexToBytes , type Hex } from "viem" ;
83import {
94 DEFAULT_SNAP_HUB_HTTP_BASE_URL ,
@@ -31,7 +26,7 @@ export async function verifyJFSRequestBody<TPayload>(
3126> {
3227 let compactJfs : string ;
3328 try {
34- compactJfs = compact ( {
29+ compactJfs = jfs . compact ( {
3530 header : requestBody . header ,
3631 payload : requestBody . payload ,
3732 signature : requestBody . signature ,
@@ -43,9 +38,9 @@ export async function verifyJFSRequestBody<TPayload>(
4338 } ;
4439 }
4540
46- let decoded : ReturnType < typeof decode < TPayload > > ;
41+ let decoded : ReturnType < typeof jfs . decode < TPayload > > ;
4742 try {
48- decoded = decode < TPayload > ( compactJfs ) ;
43+ decoded = jfs . decode < TPayload > ( compactJfs ) ;
4944 } catch ( error ) {
5045 return {
5146 valid : false ,
@@ -54,7 +49,7 @@ export async function verifyJFSRequestBody<TPayload>(
5449 }
5550
5651 try {
57- await jfsVerify ( { data : compactJfs , strict : true , keyTypes : [ "app_key" ] } ) ;
52+ await jfs . verify ( { data : compactJfs , strict : true , keyTypes : [ "app_key" ] } ) ;
5853 } catch ( error ) {
5954 return {
6055 valid : false ,
@@ -111,7 +106,11 @@ export async function verifyJFSRequestBody<TPayload>(
111106}
112107
113108export function decodePayload < TPayload > ( payload : string ) : TPayload {
114- return jfsDecodePayload < TPayload > ( payload ) ;
109+ return jfs . decodePayload < TPayload > ( payload ) ;
110+ }
111+
112+ export function encodePayload < TPayload > ( payload : TPayload ) : string {
113+ return jfs . encodePayload ( payload ) ;
115114}
116115
117116function bytesEqual ( a : Uint8Array , b : Uint8Array ) : boolean {
0 commit comments