Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions apps/emulator/src/app/api/snap/route.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { encodePayload } from "@farcaster/jfs";
import * as jfs from "@farcaster/jfs";
import { NextRequest, NextResponse } from "next/server";
import type { SnapPayload } from "@farcaster/snap";
import {
Expand Down Expand Up @@ -165,7 +165,7 @@ export async function POST(request: NextRequest) {

const jfsEnvelope = {
header: "dev",
payload: encodePayload(payload),
payload: jfs.encodePayload(payload),
signature: "dev",
};
const postBody = JSON.stringify(jfsEnvelope);
Expand Down
7 changes: 7 additions & 0 deletions pkgs/hono/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @farcaster/snap-hono

## 1.1.3

### Patch Changes

- Updated dependencies [[`43f9852`](https://github.com/farcasterxyz/snap/commit/43f9852033afc434a4924ab5ba17e5044228efbe)]:
- @farcaster/snap@1.2.1

## 1.1.2

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion pkgs/hono/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@farcaster/snap-hono",
"version": "1.1.2",
"version": "1.1.3",
"description": "Hono integration for Farcaster Snap servers",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion pkgs/hono/tests/registerSnapHandler.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest";
import { Hono } from "hono";
import { registerSnapHandler } from "../src/index";
import { buildSnapAlternateLinkHeader } from "../src/payloadToResponse";
import { encodePayload } from "@farcaster/jfs";
import { encodePayload } from "@farcaster/snap/server";
import {
MEDIA_TYPE,
DEFAULT_THEME_ACCENT,
Expand Down
6 changes: 6 additions & 0 deletions pkgs/snap/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @farcaster/snap

## 1.2.1

### Patch Changes

- [`43f9852`](https://github.com/farcasterxyz/snap/commit/43f9852033afc434a4924ab5ba17e5044228efbe) Thanks [@lyoshenka](https://github.com/lyoshenka)! - fix ESM loading bug

## 1.2.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion pkgs/snap/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@farcaster/snap",
"version": "1.2.0",
"version": "1.2.1",
"description": "Farcaster Snaps 🫰",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion pkgs/snap/src/server/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export { verifyJFSRequestBody, decodePayload } from "./verify";
export { verifyJFSRequestBody, decodePayload, encodePayload } from "./verify";
export {
DEFAULT_SNAP_HUB_HTTP_BASE_URL,
getActiveEd25519SignerKeysFromHubHttp,
Expand Down
21 changes: 10 additions & 11 deletions pkgs/snap/src/server/verify.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
import {
compact,
decode,
decodePayload as jfsDecodePayload,
verify as jfsVerify,
} from "@farcaster/jfs";
import * as jfs from "@farcaster/jfs"; // must be imported like this to avoid ERR_REQUIRE_ESM error
import { hexToBytes, type Hex } from "viem";
import {
DEFAULT_SNAP_HUB_HTTP_BASE_URL,
Expand Down Expand Up @@ -31,7 +26,7 @@ export async function verifyJFSRequestBody<TPayload>(
> {
let compactJfs: string;
try {
compactJfs = compact({
compactJfs = jfs.compact({
header: requestBody.header,
payload: requestBody.payload,
signature: requestBody.signature,
Expand All @@ -43,9 +38,9 @@ export async function verifyJFSRequestBody<TPayload>(
};
}

let decoded: ReturnType<typeof decode<TPayload>>;
let decoded: ReturnType<typeof jfs.decode<TPayload>>;
try {
decoded = decode<TPayload>(compactJfs);
decoded = jfs.decode<TPayload>(compactJfs);
} catch (error) {
return {
valid: false,
Expand All @@ -54,7 +49,7 @@ export async function verifyJFSRequestBody<TPayload>(
}

try {
await jfsVerify({ data: compactJfs, strict: true, keyTypes: ["app_key"] });
await jfs.verify({ data: compactJfs, strict: true, keyTypes: ["app_key"] });
} catch (error) {
return {
valid: false,
Expand Down Expand Up @@ -111,7 +106,11 @@ export async function verifyJFSRequestBody<TPayload>(
}

export function decodePayload<TPayload>(payload: string): TPayload {
return jfsDecodePayload<TPayload>(payload);
return jfs.decodePayload<TPayload>(payload);
}

export function encodePayload<TPayload>(payload: TPayload): string {
return jfs.encodePayload(payload);
}

function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {
Expand Down
3 changes: 1 addition & 2 deletions pkgs/snap/tests/parseRequest.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { describe, expect, it } from "vitest";
import { parseRequest } from "../src/server";
import { parseRequest, encodePayload, decodePayload } from "../src/server";
import { type SnapPayload } from "../src/schemas";
import { decodePayload, encodePayload } from "@farcaster/jfs";

describe("parseRequest", () => {
function postBody(overrides: Record<string, unknown> = {}) {
Expand Down
Loading