@pimlico/alto 0.0.0-main.20250131T122644 → 0.0.0-main.20250203T184003
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/rpc/server.d.ts +1 -9
- package/esm/rpc/server.js +18 -9
- package/esm/rpc/server.js.map +1 -1
- package/esm/utils/fastify-rpc-decorators.d.ts +19 -0
- package/esm/utils/fastify-rpc-decorators.js +20 -0
- package/esm/utils/fastify-rpc-decorators.js.map +1 -0
- package/esm/utils/rpc-reply.d.ts +5 -6
- package/esm/utils/rpc-reply.js +12 -15
- package/esm/utils/rpc-reply.js.map +1 -1
- package/lib/rpc/server.d.ts +1 -9
- package/lib/rpc/server.js +18 -9
- package/lib/rpc/server.js.map +1 -1
- package/lib/utils/fastify-rpc-decorators.d.ts +19 -0
- package/lib/utils/fastify-rpc-decorators.js +23 -0
- package/lib/utils/fastify-rpc-decorators.js.map +1 -0
- package/lib/utils/rpc-reply.d.ts +5 -6
- package/lib/utils/rpc-reply.js +12 -15
- package/lib/utils/rpc-reply.js.map +1 -1
- package/package.json +1 -1
package/esm/rpc/server.d.ts
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import type { Metrics } from "../utils/index.js";
|
|
2
2
|
import { type FastifyReply, type FastifyRequest } from "fastify";
|
|
3
3
|
import type { Registry } from "prom-client";
|
|
4
|
-
import type { IRpcEndpoint } from "./rpcHandler.js";
|
|
5
4
|
import type { AltoConfig } from "../createConfig.js";
|
|
6
|
-
|
|
7
|
-
interface FastifyRequest {
|
|
8
|
-
rpcMethod: string;
|
|
9
|
-
}
|
|
10
|
-
interface FastifyReply {
|
|
11
|
-
rpcStatus: "failed" | "success";
|
|
12
|
-
}
|
|
13
|
-
}
|
|
5
|
+
import type { IRpcEndpoint } from "./rpcHandler.js";
|
|
14
6
|
export declare class Server {
|
|
15
7
|
private config;
|
|
16
8
|
private fastify;
|
package/esm/rpc/server.js
CHANGED
|
@@ -4,6 +4,7 @@ import * as sentry from "@sentry/node";
|
|
|
4
4
|
import Fastify from "fastify";
|
|
5
5
|
import { toHex } from "viem";
|
|
6
6
|
import { fromZodError } from "zod-validation-error";
|
|
7
|
+
import rpcDecorators, { RpcStatus } from "../utils/fastify-rpc-decorators.js";
|
|
7
8
|
import RpcReply from "../utils/rpc-reply.js";
|
|
8
9
|
// jsonBigIntOverride.ts
|
|
9
10
|
const originalJsonStringify = JSON.stringify;
|
|
@@ -48,13 +49,12 @@ export class Server {
|
|
|
48
49
|
requestTimeout: config.timeout,
|
|
49
50
|
disableRequestLogging: true
|
|
50
51
|
});
|
|
52
|
+
this.fastify.register(rpcDecorators);
|
|
51
53
|
this.fastify.register(websocket, {
|
|
52
54
|
options: {
|
|
53
55
|
maxPayload: config.websocketMaxPayloadSize
|
|
54
56
|
}
|
|
55
57
|
});
|
|
56
|
-
this.fastify.decorateRequest("rpcMethod", null);
|
|
57
|
-
this.fastify.decorateReply("rpcStatus", null);
|
|
58
58
|
this.fastify.addHook("onResponse", (request, reply) => {
|
|
59
59
|
const ignoredRoutes = ["/health", "/metrics"];
|
|
60
60
|
if (ignoredRoutes.includes(request.routeOptions.url)) {
|
|
@@ -131,7 +131,6 @@ export class Server {
|
|
|
131
131
|
await this.rpc(request, RpcReply.fromHttpReply(reply));
|
|
132
132
|
}
|
|
133
133
|
async rpc(request, reply) {
|
|
134
|
-
reply.rpcStatus = "failed"; // default to failed
|
|
135
134
|
let requestId = null;
|
|
136
135
|
const versionParsingResult = altoVersions.safeParse(request.params?.version ?? this.config.defaultApiVersion);
|
|
137
136
|
if (!versionParsingResult.success) {
|
|
@@ -160,7 +159,6 @@ export class Server {
|
|
|
160
159
|
const bundlerRequestParsing = bundlerRequestSchema.safeParse(jsonRpcRequest);
|
|
161
160
|
if (!bundlerRequestParsing.success) {
|
|
162
161
|
const validationError = fromZodError(bundlerRequestParsing.error);
|
|
163
|
-
//
|
|
164
162
|
if (validationError.message.includes("Missing/invalid userOpHash")) {
|
|
165
163
|
throw new RpcError("Missing/invalid userOpHash", ValidationErrors.InvalidFields);
|
|
166
164
|
}
|
|
@@ -182,8 +180,10 @@ export class Server {
|
|
|
182
180
|
id: jsonRpcRequest.id,
|
|
183
181
|
result: result.result
|
|
184
182
|
};
|
|
185
|
-
await reply
|
|
186
|
-
|
|
183
|
+
await reply
|
|
184
|
+
.setRpcStatus(RpcStatus.Success)
|
|
185
|
+
.status(200)
|
|
186
|
+
.send(jsonRpcResponse);
|
|
187
187
|
this.fastify.log.info({
|
|
188
188
|
data: bundlerRequest.method ===
|
|
189
189
|
"eth_getUserOperationReceipt" &&
|
|
@@ -207,7 +207,10 @@ export class Server {
|
|
|
207
207
|
code: err.code
|
|
208
208
|
}
|
|
209
209
|
};
|
|
210
|
-
await reply
|
|
210
|
+
await reply
|
|
211
|
+
.setRpcStatus(RpcStatus.ClientError)
|
|
212
|
+
.status(200)
|
|
213
|
+
.send(rpcError);
|
|
211
214
|
this.fastify.log.info(rpcError, "error reply");
|
|
212
215
|
}
|
|
213
216
|
else if (err instanceof Error) {
|
|
@@ -219,7 +222,10 @@ export class Server {
|
|
|
219
222
|
message: err.message
|
|
220
223
|
}
|
|
221
224
|
};
|
|
222
|
-
await reply
|
|
225
|
+
await reply
|
|
226
|
+
.setRpcStatus(RpcStatus.ServerError)
|
|
227
|
+
.status(500)
|
|
228
|
+
.send(rpcError);
|
|
223
229
|
this.fastify.log.error(err, "error reply (non-rpc)");
|
|
224
230
|
}
|
|
225
231
|
else {
|
|
@@ -230,7 +236,10 @@ export class Server {
|
|
|
230
236
|
message: "Unknown error"
|
|
231
237
|
}
|
|
232
238
|
};
|
|
233
|
-
await reply
|
|
239
|
+
await reply
|
|
240
|
+
.setRpcStatus(RpcStatus.ServerError)
|
|
241
|
+
.status(500)
|
|
242
|
+
.send(rpcError);
|
|
234
243
|
this.fastify.log.error({ err }, "error reply (unhandled error type)");
|
|
235
244
|
}
|
|
236
245
|
}
|
package/esm/rpc/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../rpc/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EAChB,MAAM,aAAa,CAAA;AAEpB,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,OAKN,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../rpc/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FastifyPluginCallback } from "fastify";
|
|
2
|
+
declare module "fastify" {
|
|
3
|
+
interface FastifyRequest {
|
|
4
|
+
rpcMethod: string;
|
|
5
|
+
}
|
|
6
|
+
interface FastifyReply {
|
|
7
|
+
rpcStatus: RpcStatus;
|
|
8
|
+
setRpcStatus(rpcStatus: RpcStatus): FastifyReply;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare enum RpcStatus {
|
|
12
|
+
Unset = "unset",
|
|
13
|
+
ServerError = "server_error",
|
|
14
|
+
ClientError = "client_error",
|
|
15
|
+
Success = "success"
|
|
16
|
+
}
|
|
17
|
+
declare const plugin: FastifyPluginCallback;
|
|
18
|
+
export default plugin;
|
|
19
|
+
//# sourceMappingURL=fastify-rpc-decorators.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export var RpcStatus;
|
|
2
|
+
(function (RpcStatus) {
|
|
3
|
+
RpcStatus["Unset"] = "unset";
|
|
4
|
+
RpcStatus["ServerError"] = "server_error";
|
|
5
|
+
RpcStatus["ClientError"] = "client_error";
|
|
6
|
+
RpcStatus["Success"] = "success";
|
|
7
|
+
})(RpcStatus || (RpcStatus = {}));
|
|
8
|
+
// define plugin using callbacks
|
|
9
|
+
const plugin = (fastify, _, done) => {
|
|
10
|
+
fastify.decorateRequest("rpcMethod", null);
|
|
11
|
+
fastify.decorateReply("rpcStatus", RpcStatus.Unset);
|
|
12
|
+
fastify.decorateReply("setRpcStatus", function (rpcStatus) {
|
|
13
|
+
this.rpcStatus = rpcStatus;
|
|
14
|
+
return this;
|
|
15
|
+
});
|
|
16
|
+
done();
|
|
17
|
+
};
|
|
18
|
+
plugin[Symbol.for("skip-override")] = true;
|
|
19
|
+
export default plugin;
|
|
20
|
+
//# sourceMappingURL=fastify-rpc-decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastify-rpc-decorators.js","sourceRoot":"","sources":["../../utils/fastify-rpc-decorators.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,yCAA4B,CAAA;IAC5B,yCAA4B,CAAA;IAC5B,gCAAmB,CAAA;AACvB,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,gCAAgC;AAChC,MAAM,MAAM,GAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;IACvD,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC1C,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,CAAC,aAAa,CACjB,cAAc,EACd,UAAU,SAAoB;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,OAAO,IAAI,CAAA;IACf,CAAC,CACJ,CAAA;IAED,IAAI,EAAE,CAAA;AACV,CAAC,CAGA;AAAC,MAAc,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAA;AAEpD,eAAe,MAAM,CAAA"}
|
package/esm/utils/rpc-reply.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import type { FastifyReply } from "fastify";
|
|
2
2
|
import type * as WebSocket from "ws";
|
|
3
|
+
import { RpcStatus } from "./fastify-rpc-decorators.js";
|
|
3
4
|
declare class RpcReply {
|
|
4
|
-
private
|
|
5
|
+
private reply;
|
|
5
6
|
private websocket;
|
|
6
|
-
|
|
7
|
-
private _rpcStatus;
|
|
8
|
-
constructor(http: FastifyReply | null, websocket: WebSocket.WebSocket | null);
|
|
7
|
+
constructor(reply: FastifyReply | null, websocket: WebSocket.WebSocket | null);
|
|
9
8
|
status(status: number): this;
|
|
10
9
|
send(data: any): Promise<void>;
|
|
10
|
+
setRpcStatus(status: RpcStatus): RpcReply;
|
|
11
11
|
static fromHttpReply(reply: FastifyReply): RpcReply;
|
|
12
12
|
static fromSocket(socket: WebSocket.WebSocket): RpcReply;
|
|
13
|
-
|
|
14
|
-
get rpcStatus(): "failed" | "success";
|
|
13
|
+
get rpcStatus(): RpcStatus;
|
|
15
14
|
}
|
|
16
15
|
export default RpcReply;
|
|
17
16
|
//# sourceMappingURL=rpc-reply.d.ts.map
|
package/esm/utils/rpc-reply.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
+
import { RpcStatus } from "./fastify-rpc-decorators.js";
|
|
1
2
|
class RpcReply {
|
|
2
|
-
|
|
3
|
+
reply;
|
|
3
4
|
websocket;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
_rpcStatus;
|
|
7
|
-
constructor(http, websocket) {
|
|
8
|
-
this.http = http;
|
|
5
|
+
constructor(reply, websocket) {
|
|
6
|
+
this.reply = reply;
|
|
9
7
|
this.websocket = websocket;
|
|
10
|
-
this._status = 200;
|
|
11
|
-
this._rpcStatus = "failed";
|
|
12
8
|
}
|
|
13
9
|
status(status) {
|
|
14
|
-
this.
|
|
10
|
+
this.reply?.status(status);
|
|
15
11
|
return this;
|
|
16
12
|
}
|
|
17
13
|
// biome-ignore lint/suspicious/useAwait:
|
|
18
14
|
async send(data) {
|
|
19
|
-
if (this.
|
|
20
|
-
return this.
|
|
15
|
+
if (this.reply) {
|
|
16
|
+
return this.reply.send(data);
|
|
21
17
|
}
|
|
22
18
|
if (this.websocket) {
|
|
23
19
|
return this.websocket.send(JSON.stringify(data));
|
|
24
20
|
}
|
|
25
21
|
}
|
|
22
|
+
setRpcStatus(status) {
|
|
23
|
+
this.reply?.setRpcStatus(status);
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
26
|
static fromHttpReply(reply) {
|
|
27
27
|
const rpcReply = new RpcReply(reply, null);
|
|
28
28
|
return rpcReply;
|
|
@@ -31,11 +31,8 @@ class RpcReply {
|
|
|
31
31
|
const rpcReply = new RpcReply(null, socket);
|
|
32
32
|
return rpcReply;
|
|
33
33
|
}
|
|
34
|
-
set rpcStatus(status) {
|
|
35
|
-
this._rpcStatus = status;
|
|
36
|
-
}
|
|
37
34
|
get rpcStatus() {
|
|
38
|
-
return this.
|
|
35
|
+
return this.reply?.rpcStatus ?? RpcStatus.Unset;
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
38
|
export default RpcReply;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-reply.js","sourceRoot":"","sources":["../../utils/rpc-reply.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rpc-reply.js","sourceRoot":"","sources":["../../utils/rpc-reply.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,MAAM,QAAQ;IACF,KAAK,CAAqB;IAC1B,SAAS,CAA4B;IAE7C,YACI,KAA0B,EAC1B,SAAqC;QAErC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAc;QACxB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAE1B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,yCAAyC;IAClC,KAAK,CAAC,IAAI,CAAC,IAAS;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,MAAiB;QACjC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAmB;QACpC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAA2B;QACzC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE3C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,SAAS,CAAC,KAAK,CAAA;IACnD,CAAC;CACJ;AAED,eAAe,QAAQ,CAAA"}
|
package/lib/rpc/server.d.ts
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import type { Metrics } from "../utils/index.js";
|
|
2
2
|
import { type FastifyReply, type FastifyRequest } from "fastify";
|
|
3
3
|
import type { Registry } from "prom-client";
|
|
4
|
-
import type { IRpcEndpoint } from "./rpcHandler.js";
|
|
5
4
|
import type { AltoConfig } from "../createConfig.js";
|
|
6
|
-
|
|
7
|
-
interface FastifyRequest {
|
|
8
|
-
rpcMethod: string;
|
|
9
|
-
}
|
|
10
|
-
interface FastifyReply {
|
|
11
|
-
rpcStatus: "failed" | "success";
|
|
12
|
-
}
|
|
13
|
-
}
|
|
5
|
+
import type { IRpcEndpoint } from "./rpcHandler.js";
|
|
14
6
|
export declare class Server {
|
|
15
7
|
private config;
|
|
16
8
|
private fastify;
|
package/lib/rpc/server.js
CHANGED
|
@@ -33,6 +33,7 @@ const sentry = __importStar(require("@sentry/node"));
|
|
|
33
33
|
const fastify_1 = __importDefault(require("fastify"));
|
|
34
34
|
const viem_1 = require("viem");
|
|
35
35
|
const zod_validation_error_1 = require("zod-validation-error");
|
|
36
|
+
const fastify_rpc_decorators_1 = __importStar(require("../utils/fastify-rpc-decorators.js"));
|
|
36
37
|
const rpc_reply_1 = __importDefault(require("../utils/rpc-reply.js"));
|
|
37
38
|
// jsonBigIntOverride.ts
|
|
38
39
|
const originalJsonStringify = JSON.stringify;
|
|
@@ -77,13 +78,12 @@ class Server {
|
|
|
77
78
|
requestTimeout: config.timeout,
|
|
78
79
|
disableRequestLogging: true
|
|
79
80
|
});
|
|
81
|
+
this.fastify.register(fastify_rpc_decorators_1.default);
|
|
80
82
|
this.fastify.register(websocket_1.default, {
|
|
81
83
|
options: {
|
|
82
84
|
maxPayload: config.websocketMaxPayloadSize
|
|
83
85
|
}
|
|
84
86
|
});
|
|
85
|
-
this.fastify.decorateRequest("rpcMethod", null);
|
|
86
|
-
this.fastify.decorateReply("rpcStatus", null);
|
|
87
87
|
this.fastify.addHook("onResponse", (request, reply) => {
|
|
88
88
|
const ignoredRoutes = ["/health", "/metrics"];
|
|
89
89
|
if (ignoredRoutes.includes(request.routeOptions.url)) {
|
|
@@ -160,7 +160,6 @@ class Server {
|
|
|
160
160
|
await this.rpc(request, rpc_reply_1.default.fromHttpReply(reply));
|
|
161
161
|
}
|
|
162
162
|
async rpc(request, reply) {
|
|
163
|
-
reply.rpcStatus = "failed"; // default to failed
|
|
164
163
|
let requestId = null;
|
|
165
164
|
const versionParsingResult = types_1.altoVersions.safeParse(request.params?.version ?? this.config.defaultApiVersion);
|
|
166
165
|
if (!versionParsingResult.success) {
|
|
@@ -189,7 +188,6 @@ class Server {
|
|
|
189
188
|
const bundlerRequestParsing = types_1.bundlerRequestSchema.safeParse(jsonRpcRequest);
|
|
190
189
|
if (!bundlerRequestParsing.success) {
|
|
191
190
|
const validationError = (0, zod_validation_error_1.fromZodError)(bundlerRequestParsing.error);
|
|
192
|
-
//
|
|
193
191
|
if (validationError.message.includes("Missing/invalid userOpHash")) {
|
|
194
192
|
throw new types_1.RpcError("Missing/invalid userOpHash", types_1.ValidationErrors.InvalidFields);
|
|
195
193
|
}
|
|
@@ -211,8 +209,10 @@ class Server {
|
|
|
211
209
|
id: jsonRpcRequest.id,
|
|
212
210
|
result: result.result
|
|
213
211
|
};
|
|
214
|
-
await reply
|
|
215
|
-
|
|
212
|
+
await reply
|
|
213
|
+
.setRpcStatus(fastify_rpc_decorators_1.RpcStatus.Success)
|
|
214
|
+
.status(200)
|
|
215
|
+
.send(jsonRpcResponse);
|
|
216
216
|
this.fastify.log.info({
|
|
217
217
|
data: bundlerRequest.method ===
|
|
218
218
|
"eth_getUserOperationReceipt" &&
|
|
@@ -236,7 +236,10 @@ class Server {
|
|
|
236
236
|
code: err.code
|
|
237
237
|
}
|
|
238
238
|
};
|
|
239
|
-
await reply
|
|
239
|
+
await reply
|
|
240
|
+
.setRpcStatus(fastify_rpc_decorators_1.RpcStatus.ClientError)
|
|
241
|
+
.status(200)
|
|
242
|
+
.send(rpcError);
|
|
240
243
|
this.fastify.log.info(rpcError, "error reply");
|
|
241
244
|
}
|
|
242
245
|
else if (err instanceof Error) {
|
|
@@ -248,7 +251,10 @@ class Server {
|
|
|
248
251
|
message: err.message
|
|
249
252
|
}
|
|
250
253
|
};
|
|
251
|
-
await reply
|
|
254
|
+
await reply
|
|
255
|
+
.setRpcStatus(fastify_rpc_decorators_1.RpcStatus.ServerError)
|
|
256
|
+
.status(500)
|
|
257
|
+
.send(rpcError);
|
|
252
258
|
this.fastify.log.error(err, "error reply (non-rpc)");
|
|
253
259
|
}
|
|
254
260
|
else {
|
|
@@ -259,7 +265,10 @@ class Server {
|
|
|
259
265
|
message: "Unknown error"
|
|
260
266
|
}
|
|
261
267
|
};
|
|
262
|
-
await reply
|
|
268
|
+
await reply
|
|
269
|
+
.setRpcStatus(fastify_rpc_decorators_1.RpcStatus.ServerError)
|
|
270
|
+
.status(500)
|
|
271
|
+
.send(rpcError);
|
|
263
272
|
this.fastify.log.error({ err }, "error reply (unhandled error type)");
|
|
264
273
|
}
|
|
265
274
|
}
|
package/lib/rpc/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../rpc/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAQoB;AAEpB,mEAA0C;AAC1C,qDAAsC;AACtC,sDAKgB;AAEhB,+BAA4B;AAE5B,+DAAmD;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../rpc/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FastifyPluginCallback } from "fastify";
|
|
2
|
+
declare module "fastify" {
|
|
3
|
+
interface FastifyRequest {
|
|
4
|
+
rpcMethod: string;
|
|
5
|
+
}
|
|
6
|
+
interface FastifyReply {
|
|
7
|
+
rpcStatus: RpcStatus;
|
|
8
|
+
setRpcStatus(rpcStatus: RpcStatus): FastifyReply;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare enum RpcStatus {
|
|
12
|
+
Unset = "unset",
|
|
13
|
+
ServerError = "server_error",
|
|
14
|
+
ClientError = "client_error",
|
|
15
|
+
Success = "success"
|
|
16
|
+
}
|
|
17
|
+
declare const plugin: FastifyPluginCallback;
|
|
18
|
+
export default plugin;
|
|
19
|
+
//# sourceMappingURL=fastify-rpc-decorators.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RpcStatus = void 0;
|
|
4
|
+
var RpcStatus;
|
|
5
|
+
(function (RpcStatus) {
|
|
6
|
+
RpcStatus["Unset"] = "unset";
|
|
7
|
+
RpcStatus["ServerError"] = "server_error";
|
|
8
|
+
RpcStatus["ClientError"] = "client_error";
|
|
9
|
+
RpcStatus["Success"] = "success";
|
|
10
|
+
})(RpcStatus || (exports.RpcStatus = RpcStatus = {}));
|
|
11
|
+
// define plugin using callbacks
|
|
12
|
+
const plugin = (fastify, _, done) => {
|
|
13
|
+
fastify.decorateRequest("rpcMethod", null);
|
|
14
|
+
fastify.decorateReply("rpcStatus", RpcStatus.Unset);
|
|
15
|
+
fastify.decorateReply("setRpcStatus", function (rpcStatus) {
|
|
16
|
+
this.rpcStatus = rpcStatus;
|
|
17
|
+
return this;
|
|
18
|
+
});
|
|
19
|
+
done();
|
|
20
|
+
};
|
|
21
|
+
plugin[Symbol.for("skip-override")] = true;
|
|
22
|
+
exports.default = plugin;
|
|
23
|
+
//# sourceMappingURL=fastify-rpc-decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastify-rpc-decorators.js","sourceRoot":"","sources":["../../utils/fastify-rpc-decorators.ts"],"names":[],"mappings":";;;AAaA,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,yCAA4B,CAAA;IAC5B,yCAA4B,CAAA;IAC5B,gCAAmB,CAAA;AACvB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED,gCAAgC;AAChC,MAAM,MAAM,GAA0B,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;IACvD,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC1C,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,CAAC,aAAa,CACjB,cAAc,EACd,UAAU,SAAoB;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,OAAO,IAAI,CAAA;IACf,CAAC,CACJ,CAAA;IAED,IAAI,EAAE,CAAA;AACV,CAAC,CAGA;AAAC,MAAc,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAA;AAEpD,kBAAe,MAAM,CAAA"}
|
package/lib/utils/rpc-reply.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import type { FastifyReply } from "fastify";
|
|
2
2
|
import type * as WebSocket from "ws";
|
|
3
|
+
import { RpcStatus } from "./fastify-rpc-decorators.js";
|
|
3
4
|
declare class RpcReply {
|
|
4
|
-
private
|
|
5
|
+
private reply;
|
|
5
6
|
private websocket;
|
|
6
|
-
|
|
7
|
-
private _rpcStatus;
|
|
8
|
-
constructor(http: FastifyReply | null, websocket: WebSocket.WebSocket | null);
|
|
7
|
+
constructor(reply: FastifyReply | null, websocket: WebSocket.WebSocket | null);
|
|
9
8
|
status(status: number): this;
|
|
10
9
|
send(data: any): Promise<void>;
|
|
10
|
+
setRpcStatus(status: RpcStatus): RpcReply;
|
|
11
11
|
static fromHttpReply(reply: FastifyReply): RpcReply;
|
|
12
12
|
static fromSocket(socket: WebSocket.WebSocket): RpcReply;
|
|
13
|
-
|
|
14
|
-
get rpcStatus(): "failed" | "success";
|
|
13
|
+
get rpcStatus(): RpcStatus;
|
|
15
14
|
}
|
|
16
15
|
export default RpcReply;
|
|
17
16
|
//# sourceMappingURL=rpc-reply.d.ts.map
|
package/lib/utils/rpc-reply.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fastify_rpc_decorators_1 = require("./fastify-rpc-decorators.js");
|
|
3
4
|
class RpcReply {
|
|
4
|
-
|
|
5
|
+
reply;
|
|
5
6
|
websocket;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
_rpcStatus;
|
|
9
|
-
constructor(http, websocket) {
|
|
10
|
-
this.http = http;
|
|
7
|
+
constructor(reply, websocket) {
|
|
8
|
+
this.reply = reply;
|
|
11
9
|
this.websocket = websocket;
|
|
12
|
-
this._status = 200;
|
|
13
|
-
this._rpcStatus = "failed";
|
|
14
10
|
}
|
|
15
11
|
status(status) {
|
|
16
|
-
this.
|
|
12
|
+
this.reply?.status(status);
|
|
17
13
|
return this;
|
|
18
14
|
}
|
|
19
15
|
// biome-ignore lint/suspicious/useAwait:
|
|
20
16
|
async send(data) {
|
|
21
|
-
if (this.
|
|
22
|
-
return this.
|
|
17
|
+
if (this.reply) {
|
|
18
|
+
return this.reply.send(data);
|
|
23
19
|
}
|
|
24
20
|
if (this.websocket) {
|
|
25
21
|
return this.websocket.send(JSON.stringify(data));
|
|
26
22
|
}
|
|
27
23
|
}
|
|
24
|
+
setRpcStatus(status) {
|
|
25
|
+
this.reply?.setRpcStatus(status);
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
28
|
static fromHttpReply(reply) {
|
|
29
29
|
const rpcReply = new RpcReply(reply, null);
|
|
30
30
|
return rpcReply;
|
|
@@ -33,11 +33,8 @@ class RpcReply {
|
|
|
33
33
|
const rpcReply = new RpcReply(null, socket);
|
|
34
34
|
return rpcReply;
|
|
35
35
|
}
|
|
36
|
-
set rpcStatus(status) {
|
|
37
|
-
this._rpcStatus = status;
|
|
38
|
-
}
|
|
39
36
|
get rpcStatus() {
|
|
40
|
-
return this.
|
|
37
|
+
return this.reply?.rpcStatus ?? fastify_rpc_decorators_1.RpcStatus.Unset;
|
|
41
38
|
}
|
|
42
39
|
}
|
|
43
40
|
exports.default = RpcReply;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-reply.js","sourceRoot":"","sources":["../../utils/rpc-reply.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"rpc-reply.js","sourceRoot":"","sources":["../../utils/rpc-reply.ts"],"names":[],"mappings":";;AAEA,qEAAoD;AAEpD,MAAM,QAAQ;IACF,KAAK,CAAqB;IAC1B,SAAS,CAA4B;IAE7C,YACI,KAA0B,EAC1B,SAAqC;QAErC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAc;QACxB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAE1B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,yCAAyC;IAClC,KAAK,CAAC,IAAI,CAAC,IAAS;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,MAAiB;QACjC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAmB;QACpC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAA2B;QACzC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE3C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,kCAAS,CAAC,KAAK,CAAA;IACnD,CAAC;CACJ;AAED,kBAAe,QAAQ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pimlico/alto",
|
|
3
|
-
"version": "0.0.0-main.
|
|
3
|
+
"version": "0.0.0-main.20250203T184003",
|
|
4
4
|
"description": "A performant and modular ERC-4337 Bundler written in Typescript",
|
|
5
5
|
"repository": "https://github.com/pimlicolabs/alto.git",
|
|
6
6
|
"author": "Pimlico",
|