From 2048cf62dd48b2f090ae0bd1974e6d17db9acd9b Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Thu, 23 Jan 2025 13:52:44 +0100 Subject: [PATCH 1/5] Generic Request Handler --- packages/agent-sdk/src/error.ts | 13 +++++++++++++ packages/agent-sdk/src/index.ts | 2 ++ packages/agent-sdk/src/request.ts | 25 +++++++++++++++++++++++++ packages/agent-sdk/tests/error.spec.ts | 24 ++++++++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 packages/agent-sdk/src/error.ts create mode 100644 packages/agent-sdk/src/request.ts create mode 100644 packages/agent-sdk/tests/error.spec.ts diff --git a/packages/agent-sdk/src/error.ts b/packages/agent-sdk/src/error.ts new file mode 100644 index 0000000..d88ccfd --- /dev/null +++ b/packages/agent-sdk/src/error.ts @@ -0,0 +1,13 @@ +export function errorString(error: unknown): string { + // intentional == to check for null or undefined + if (error == null) { + return `unknown error: ${error}`; + } + if (typeof error === "string") { + return error; + } + if (error instanceof Error) { + return error.message; + } + return JSON.stringify(error); +} diff --git a/packages/agent-sdk/src/index.ts b/packages/agent-sdk/src/index.ts index 73a1f49..d980817 100644 --- a/packages/agent-sdk/src/index.ts +++ b/packages/agent-sdk/src/index.ts @@ -1,2 +1,4 @@ export * from "./validate"; export * from "./evm"; +export * from "./request"; +export * from "./error"; diff --git a/packages/agent-sdk/src/request.ts b/packages/agent-sdk/src/request.ts new file mode 100644 index 0000000..73d3fbb --- /dev/null +++ b/packages/agent-sdk/src/request.ts @@ -0,0 +1,25 @@ +// static json(body: JsonBody, init?: ResponseInit): NextResponse; + +import { SignRequestData } from "near-safe"; +import { errorString } from "./error"; + +export interface TxData { + transaction?: SignRequestData; + meta?: unknown; +} + +export async function handleRequest( + input: X, + logic: (input: X) => Promise, + responseTransformer: (result: T | { meta: { message: string } }) => R, +): Promise { + try { + const result = await logic(input); + console.log("Responding with", JSON.stringify(result, null, 2)); + return responseTransformer(result); + } catch (err: unknown) { + const message = errorString(err); + console.error(message); + return responseTransformer({ meta: { message } }); + } +} diff --git a/packages/agent-sdk/tests/error.spec.ts b/packages/agent-sdk/tests/error.spec.ts new file mode 100644 index 0000000..90490b2 --- /dev/null +++ b/packages/agent-sdk/tests/error.spec.ts @@ -0,0 +1,24 @@ +import { errorString } from "../src/error"; + +describe("errorString(unknown)", () => { + it("returns generic message on nullish error", async () => { + expect(errorString(null)).toBe("unknown error: null"); + expect(errorString(undefined)).toBe("unknown error: undefined"); + }); + + it("returns exact string on string error", async () => { + const message = "error message"; + expect(errorString(message)).toBe(message); + }); + + it("returns stringified json on object", async () => { + const obj = { field: "value" }; + expect(errorString(obj)).toBe(JSON.stringify(obj)); + }); + + it("returns Error.message Error instance", async () => { + const message = "error message"; + const err = new Error(message); + expect(errorString(err)).toBe(message); + }); +}); From 2f3566fc563173a7795b6fad028187fb9617e9eb Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Thu, 23 Jan 2025 13:59:59 +0100 Subject: [PATCH 2/5] Update packages/agent-sdk/src/request.ts --- packages/agent-sdk/src/request.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/agent-sdk/src/request.ts b/packages/agent-sdk/src/request.ts index 73d3fbb..1e6af6f 100644 --- a/packages/agent-sdk/src/request.ts +++ b/packages/agent-sdk/src/request.ts @@ -1,4 +1,3 @@ -// static json(body: JsonBody, init?: ResponseInit): NextResponse; import { SignRequestData } from "near-safe"; import { errorString } from "./error"; From fa092f7b37d7df7e6e80d5e3b1e964fa12fd12ff Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Thu, 23 Jan 2025 14:01:52 +0100 Subject: [PATCH 3/5] format code --- packages/agent-sdk/src/request.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/agent-sdk/src/request.ts b/packages/agent-sdk/src/request.ts index 1e6af6f..af98c7a 100644 --- a/packages/agent-sdk/src/request.ts +++ b/packages/agent-sdk/src/request.ts @@ -1,4 +1,3 @@ - import { SignRequestData } from "near-safe"; import { errorString } from "./error"; From 86f45dbd882af29761f8a5189944c0f097f68e70 Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Thu, 23 Jan 2025 14:02:58 +0100 Subject: [PATCH 4/5] bun update --- bun.lockb | Bin 269000 -> 268992 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index dc43e6df89542bcc58da7812f1757ecd24a43fc3..93b2c98720c648515f1378b0ab26bd98287e689b 100755 GIT binary patch delta 8890 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 delta 8910 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 diff --git a/package.json b/package.json index a3a6461..82afa1c 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,6 @@ "prettier": "^3.4.2", "ts-jest": "^29.2.5", "typescript": "^5.7.3", - "viem": "^2.22.11" + "viem": "^2.22.12" } } From 68e9d15a482cfe45964d3899411fa8066b34490f Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Thu, 23 Jan 2025 14:05:45 +0100 Subject: [PATCH 5/5] add null transaction --- packages/agent-sdk/src/index.ts | 1 + packages/agent-sdk/src/misc.ts | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 packages/agent-sdk/src/misc.ts diff --git a/packages/agent-sdk/src/index.ts b/packages/agent-sdk/src/index.ts index d980817..7efab6a 100644 --- a/packages/agent-sdk/src/index.ts +++ b/packages/agent-sdk/src/index.ts @@ -2,3 +2,4 @@ export * from "./validate"; export * from "./evm"; export * from "./request"; export * from "./error"; +export * from "./misc"; diff --git a/packages/agent-sdk/src/misc.ts b/packages/agent-sdk/src/misc.ts new file mode 100644 index 0000000..ec5fc9e --- /dev/null +++ b/packages/agent-sdk/src/misc.ts @@ -0,0 +1,7 @@ +import { MetaTransaction } from "near-safe"; + +export const NULL_TRANSACTION: MetaTransaction = { + to: "0x0000000000000000000000000000000000000000", + value: "0x00", + data: "0x", +};