@asyncswap/jsonrpc 0.4.11 → 0.4.13
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/dist/base.d.ts +5 -2
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +2 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js.map +1 -1
- package/dist/types/base.d.ts +9 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +1 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/request.d.ts +8 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +1 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/response.d.ts +18 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +1 -0
- package/dist/types/response.js.map +1 -0
- package/package.json +5 -1
- package/src/base.ts +7 -5
- package/src/client.ts +2 -1
- package/src/index.ts +1 -0
- package/src/server.ts +2 -1
- package/src/types/base.ts +9 -0
- package/src/types/index.ts +3 -0
- package/src/types/request.ts +8 -0
- package/src/types/response.ts +22 -0
- package/CHANGELOG.md +0 -94
- package/example.ts +0 -39
- package/src/types/base.d.ts +0 -5
- package/src/types/request.d.ts +0 -15
- package/src/types/response.d.ts +0 -24
- package/tsconfig.json +0 -33
package/dist/base.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { JsonRpcClient } from "./client";
|
|
2
|
-
export declare abstract class BaseClient<
|
|
3
|
-
|
|
2
|
+
export declare abstract class BaseClient<Spec extends Record<string, {
|
|
3
|
+
params: unknown[];
|
|
4
|
+
result: unknown;
|
|
5
|
+
}>> {
|
|
6
|
+
rpc: JsonRpcClient<Spec>;
|
|
4
7
|
protected headers: Record<string, string>;
|
|
5
8
|
constructor(url: string);
|
|
6
9
|
withHeaders(headers: Record<string, string>): this;
|
package/dist/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,UAAU,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,UAAU,CAC/B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;IAEnE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;gBAEnC,GAAG,EAAE,MAAM;IA8BvB,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAM3C"}
|
package/dist/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAgB,UAAU;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAgB,UAAU;IAG/B,GAAG,CAAsB;IACf,OAAO,GAA2B,EAAE,CAAC;IAE/C,YAAY,GAAW;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QAElC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACtB,GAAG,EAAE,CAAC,MAAY,EAAE,IAAqB,EAAE,QAAQ,EAAE,EAAE;gBACtD,wCAAwC;gBACxC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAClD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;wBACjC,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;4BACzB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;4BACzC,iDAAiD;4BACjD,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC9C,CAAC,CAAC;oBACH,CAAC;oBACD,OAAO,KAAK,CAAC;gBACd,CAAC;gBACD,cAAc;gBACd,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAE/C,MAAM,MAAM,GAAG,IAAkB,CAAC;gBAElC,OAAO,CACN,GAAG,MAAqC,EACR,EAAE,CAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACrE,CAAC;SACD,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,OAA+B;QAC1C,IAAI,CAAC,OAAO,GAAG;YACd,GAAG,OAAO;SACV,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
package/dist/client.d.ts
CHANGED
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzE,qBAAa,aAAa,CAAC,WAAW,SAAS,QAAQ;IAG1C,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,EAAE,CAAK;gBAEK,GAAG,EAAE,MAAM;IAEzB,IAAI,CAAC,MAAM,SAAS,MAAM,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EACzE,OAAO,EACJ,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,GACrD,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAC1D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAgBjC,YAAY,CAAC,MAAM,SAAS,MAAM,WAAW,EAC5C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GACnC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;YAS1C,OAAO;IAoCf,MAAM,CAAC,MAAM,SAAS,MAAM,WAAW,EAC5C,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;CAavC"}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,MAAM,OAAO,aAAa;IAGL;IAFZ,EAAE,GAAG,CAAC,CAAC;IAEf,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAI,CAAC;IAEpC,KAAK,CAAC,IAAI,CACT,OAE0D,EAC1D,OAAgC;QAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC,KAAU,CAAC;QAC5B,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC,MAAgB,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,QAAoB,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,2CAA2C;YAC3C,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAED,YAAY,CACX,MAAc,EACd,MAAqC;QAErC,OAAO;YACN,OAAO,EAAE,KAAK;YACd,MAAM;YACN,MAAM;YACN,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;SACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CACpB,GAE0D,EAC1D,aAAsC;QAItC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC;YACJ,MAAM,OAAO,GAA2B;gBACvC,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;aACxB,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAC;YAEH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAEa,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACN,IAAI,EAAE,gBAAgB,CAAC,cAAc;oBACrC,OAAO,EAAE,mBAAmB,GAAG,EAAE;iBACjC;gBACD,EAAE,EAAE,IAAI;aACR,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CACX,MAAc,EACd,MAAsC;QAEtC,MAAM,OAAO,GAA0D;YACtE,OAAO,EAAE,KAAK;YACd,MAAM;YACN,MAAM;SACN,CAAC;QACF,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC7B,CAAC,CAAC;IACJ,CAAC;CACD"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { JsonRpcErrorCode } from "./error";
|
|
2
|
+
import type { JsonRpcResponse, SpecBase } from "./types";
|
|
2
3
|
type RpcParams = readonly unknown[] | undefined;
|
|
3
4
|
export type Handler<Params extends RpcParams, Result> = (params: Params) => Promise<Result>;
|
|
4
|
-
export declare class JsonRpcServer<MethodsSpec extends
|
|
5
|
+
export declare class JsonRpcServer<MethodsSpec extends SpecBase> {
|
|
5
6
|
private methods;
|
|
6
7
|
register<Method extends keyof MethodsSpec, Params extends MethodsSpec[Method]["params"], Result>(method: Method, handler: Handler<Params, Result>): void;
|
|
7
8
|
handle<Method extends keyof MethodsSpec, Params extends MethodsSpec[Method]["params"], Result>(raw: unknown): Promise<JsonRpcResponse<Result, JsonRpcErrorCode | number> | JsonRpcResponse<Result, JsonRpcErrorCode | number>[] | null>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzE,KAAK,SAAS,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;AAEhD,MAAM,MAAM,OAAO,CAAC,MAAM,SAAS,SAAS,EAAE,MAAM,IAAI,CACvD,MAAM,EAAE,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,qBAAa,aAAa,CAAC,WAAW,SAAS,QAAQ;IACtD,OAAO,CAAC,OAAO,CAGX;IAEJ,QAAQ,CACP,MAAM,SAAS,MAAM,WAAW,EAChC,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAC5C,MAAM,EACL,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C,MAAM,CACX,MAAM,SAAS,MAAM,WAAW,EAChC,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAC5C,MAAM,EAEN,GAAG,EAAE,OAAO,GACV,OAAO,CACP,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,GAClD,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,EAAE,GACpD,IAAI,CACN;IAsED,OAAO,CAAC,KAAK;CAgBb"}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type JsonRpcId = string | number | null;
|
|
2
|
+
export type SpecBase = Record<string, {
|
|
3
|
+
params: unknown[];
|
|
4
|
+
result: unknown;
|
|
5
|
+
}>;
|
|
6
|
+
export type RpcSpec<Spec extends SpecBase> = {
|
|
7
|
+
[Method in keyof Spec]: (...params: Spec[Method]["params"]) => Promise<Spec[Method]["result"]>;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE/C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE9E,MAAM,MAAM,OAAO,CAAC,IAAI,SAAS,QAAQ,IAAI;KAC3C,MAAM,IAAI,MAAM,IAAI,GAAG,CACvB,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;CACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/types/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,WAAW,cAAc,CAAC,MAAM,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE;IACxE,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,SAAS,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/types/request.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JsonRpcId } from "./base";
|
|
2
|
+
export interface JsonRpcSuccess<Result> {
|
|
3
|
+
jsonrpc: "2.0";
|
|
4
|
+
result: Result;
|
|
5
|
+
id: JsonRpcId;
|
|
6
|
+
}
|
|
7
|
+
export interface JsonRpcError<ErrorCode> {
|
|
8
|
+
jsonrpc: "2.0";
|
|
9
|
+
error: JsonRpcErrorObject<ErrorCode>;
|
|
10
|
+
id: JsonRpcId;
|
|
11
|
+
}
|
|
12
|
+
export interface JsonRpcErrorObject<ErrorCode> {
|
|
13
|
+
code: ErrorCode;
|
|
14
|
+
message: string;
|
|
15
|
+
data?: unknown;
|
|
16
|
+
}
|
|
17
|
+
export type JsonRpcResponse<Result, ErrorCode> = JsonRpcSuccess<Result> | JsonRpcError<ErrorCode>;
|
|
18
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/types/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,WAAW,cAAc,CAAC,MAAM;IACrC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,SAAS,CAAC;CACd;AAED,MAAM,WAAW,YAAY,CAAC,SAAS;IACtC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrC,EAAE,EAAE,SAAS,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB,CAAC,SAAS;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AACD,MAAM,MAAM,eAAe,CAAC,MAAM,EAAE,SAAS,IAC1C,cAAc,CAAC,MAAM,CAAC,GACtB,YAAY,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/types/response.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@asyncswap/jsonrpc",
|
|
3
3
|
"description": "A minimal jsonrpc spec implementation.",
|
|
4
4
|
"author": "Meek Msaki",
|
|
5
|
-
"version": "0.4.
|
|
5
|
+
"version": "0.4.13",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"module": "dist/index.mjs",
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
"rpc",
|
|
14
14
|
"bun"
|
|
15
15
|
],
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"src"
|
|
19
|
+
],
|
|
16
20
|
"homepage": "https://github.com/asyncswap/eth-libs/tree/main/packages/jsonrpc",
|
|
17
21
|
"repository": {
|
|
18
22
|
"type": "git",
|
package/src/base.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { JsonRpcClient } from "./client";
|
|
2
2
|
|
|
3
|
-
export abstract class BaseClient<
|
|
4
|
-
|
|
3
|
+
export abstract class BaseClient<
|
|
4
|
+
Spec extends Record<string, { params: unknown[]; result: unknown }>,
|
|
5
|
+
> {
|
|
6
|
+
rpc: JsonRpcClient<Spec>;
|
|
5
7
|
protected headers: Record<string, string> = {};
|
|
6
8
|
|
|
7
9
|
constructor(url: string) {
|
|
@@ -24,11 +26,11 @@ export abstract class BaseClient<MethodsSpec extends RpcSpecBase> {
|
|
|
24
26
|
// dynamic rpc
|
|
25
27
|
if (typeof prop !== "string") return undefined;
|
|
26
28
|
|
|
27
|
-
const method = prop as keyof
|
|
29
|
+
const method = prop as keyof Spec;
|
|
28
30
|
|
|
29
31
|
return (
|
|
30
|
-
...params:
|
|
31
|
-
):
|
|
32
|
+
...params: Spec[typeof method]["params"]
|
|
33
|
+
): Spec[typeof method]["result"] =>
|
|
32
34
|
this.rpc.call(this.rpc.buildRequest(method, params), this.headers);
|
|
33
35
|
},
|
|
34
36
|
});
|
package/src/client.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JsonRpcErrorCode } from "./error";
|
|
2
|
+
import type { JsonRpcRequest, JsonRpcResponse, SpecBase } from "./types";
|
|
2
3
|
|
|
3
|
-
export class JsonRpcClient<MethodsSpec extends
|
|
4
|
+
export class JsonRpcClient<MethodsSpec extends SpecBase> {
|
|
4
5
|
private id = 0;
|
|
5
6
|
|
|
6
7
|
constructor(private url: string) { }
|
package/src/index.ts
CHANGED
package/src/server.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JsonRpcErrorCode } from "./error";
|
|
2
|
+
import type { JsonRpcRequest, JsonRpcResponse, SpecBase } from "./types";
|
|
2
3
|
|
|
3
4
|
type RpcParams = readonly unknown[] | undefined;
|
|
4
5
|
|
|
@@ -6,7 +7,7 @@ export type Handler<Params extends RpcParams, Result> = (
|
|
|
6
7
|
params: Params,
|
|
7
8
|
) => Promise<Result>;
|
|
8
9
|
|
|
9
|
-
export class JsonRpcServer<MethodsSpec extends
|
|
10
|
+
export class JsonRpcServer<MethodsSpec extends SpecBase> {
|
|
10
11
|
private methods = new Map<
|
|
11
12
|
keyof MethodsSpec,
|
|
12
13
|
Handler<MethodsSpec[keyof MethodsSpec]["params"], any>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type JsonRpcId = string | number | null;
|
|
2
|
+
|
|
3
|
+
export type SpecBase = Record<string, { params: unknown[]; result: unknown }>;
|
|
4
|
+
|
|
5
|
+
export type RpcSpec<Spec extends SpecBase> = {
|
|
6
|
+
[Method in keyof Spec]: (
|
|
7
|
+
...params: Spec[Method]["params"]
|
|
8
|
+
) => Promise<Spec[Method]["result"]>;
|
|
9
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { JsonRpcId } from "./base";
|
|
2
|
+
|
|
3
|
+
export interface JsonRpcSuccess<Result> {
|
|
4
|
+
jsonrpc: "2.0";
|
|
5
|
+
result: Result;
|
|
6
|
+
id: JsonRpcId;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface JsonRpcError<ErrorCode> {
|
|
10
|
+
jsonrpc: "2.0";
|
|
11
|
+
error: JsonRpcErrorObject<ErrorCode>;
|
|
12
|
+
id: JsonRpcId;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface JsonRpcErrorObject<ErrorCode> {
|
|
16
|
+
code: ErrorCode;
|
|
17
|
+
message: string;
|
|
18
|
+
data?: unknown;
|
|
19
|
+
}
|
|
20
|
+
export type JsonRpcResponse<Result, ErrorCode> =
|
|
21
|
+
| JsonRpcSuccess<Result>
|
|
22
|
+
| JsonRpcError<ErrorCode>;
|
package/CHANGELOG.md
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# @asyncswap/jsonrpc
|
|
2
|
-
|
|
3
|
-
## 0.4.11
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- 2f7dece: fixes build
|
|
8
|
-
|
|
9
|
-
## 0.4.10
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- 69a2d7e: patch types updates
|
|
14
|
-
|
|
15
|
-
## 0.4.9
|
|
16
|
-
|
|
17
|
-
### Patch Changes
|
|
18
|
-
|
|
19
|
-
- dc792b1: (refactor): change to `withHeaders` option and update BaseClient source
|
|
20
|
-
|
|
21
|
-
## 0.4.8
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- e9fc1df: remove biome dep
|
|
26
|
-
|
|
27
|
-
## 0.4.7
|
|
28
|
-
|
|
29
|
-
### Patch Changes
|
|
30
|
-
|
|
31
|
-
- 882f94f: new params typing
|
|
32
|
-
|
|
33
|
-
## 0.4.6
|
|
34
|
-
|
|
35
|
-
### Patch Changes
|
|
36
|
-
|
|
37
|
-
- 07c284d: update handle type
|
|
38
|
-
|
|
39
|
-
## 0.4.5
|
|
40
|
-
|
|
41
|
-
### Patch Changes
|
|
42
|
-
|
|
43
|
-
- 0d61f89: simplify method type and export error codes
|
|
44
|
-
|
|
45
|
-
## 0.4.4
|
|
46
|
-
|
|
47
|
-
### Patch Changes
|
|
48
|
-
|
|
49
|
-
- f7d28d9: (fix): error code now generated in build
|
|
50
|
-
|
|
51
|
-
## 0.4.3
|
|
52
|
-
|
|
53
|
-
### Patch Changes
|
|
54
|
-
|
|
55
|
-
- 40a79dc: add support for batcing and streamlined error methods
|
|
56
|
-
|
|
57
|
-
## 0.4.2
|
|
58
|
-
|
|
59
|
-
### Patch Changes
|
|
60
|
-
|
|
61
|
-
- 9512db5: update documentation
|
|
62
|
-
|
|
63
|
-
## 0.4.0
|
|
64
|
-
|
|
65
|
-
### Minor Changes
|
|
66
|
-
|
|
67
|
-
- 7e8300c: changes api for jsonrpc construction
|
|
68
|
-
|
|
69
|
-
### Patch Changes
|
|
70
|
-
|
|
71
|
-
- 43de065: update docs
|
|
72
|
-
- 7126afa: add `otherHeaders` to initializedClient calls
|
|
73
|
-
|
|
74
|
-
## 0.3.1
|
|
75
|
-
|
|
76
|
-
### Patch Changes
|
|
77
|
-
|
|
78
|
-
- 1c3a46e: fix example
|
|
79
|
-
|
|
80
|
-
## 0.3.0
|
|
81
|
-
|
|
82
|
-
### Minor Changes
|
|
83
|
-
|
|
84
|
-
- dc1718c: refactor of types dir to global types
|
|
85
|
-
- 00ba692: - Converts error codes as enums
|
|
86
|
-
- Uses generic types on rpc request and response methods, and results
|
|
87
|
-
- 07dc4e5: improve docs example and updates to build config
|
|
88
|
-
|
|
89
|
-
### Patch Changes
|
|
90
|
-
|
|
91
|
-
- e15733c: update scripts and make changeset in monorepo
|
|
92
|
-
- e3ac747: patch
|
|
93
|
-
- abddcdc: add source map to typescript build build
|
|
94
|
-
- ded3e6b: update
|
package/example.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { JsonRpcServer } from "./src";
|
|
2
|
-
|
|
3
|
-
const server = new JsonRpcServer();
|
|
4
|
-
|
|
5
|
-
server.register("eth_add", async ([a, b]: [number, number]) => a + b);
|
|
6
|
-
server.register("eth_ping", async () => "pong");
|
|
7
|
-
|
|
8
|
-
Bun.serve({
|
|
9
|
-
port: 4444,
|
|
10
|
-
async fetch(req) {
|
|
11
|
-
if (req.method !== "POST") {
|
|
12
|
-
return new Response("JSON-RPC only", { status: 405 });
|
|
13
|
-
}
|
|
14
|
-
const payload = await req.json();
|
|
15
|
-
const response = await server.handle(payload);
|
|
16
|
-
if (!response) {
|
|
17
|
-
return new Response(null, { status: 204 });
|
|
18
|
-
}
|
|
19
|
-
return Response.json(response);
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
console.log("JSON-RPC running on http://localhost:4444");
|
|
24
|
-
|
|
25
|
-
import { JsonRpcClient } from "./src";
|
|
26
|
-
|
|
27
|
-
const url = "http://localhost:4444";
|
|
28
|
-
const client = new JsonRpcClient(url);
|
|
29
|
-
const result = await client.call(client.buildRequest("eth_ping", []));
|
|
30
|
-
console.log(result); // pong
|
|
31
|
-
|
|
32
|
-
const response = await server.handle({
|
|
33
|
-
jsonrpc: "2.0",
|
|
34
|
-
method: "eth_add",
|
|
35
|
-
params: [2, 3],
|
|
36
|
-
id: 1,
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
console.log(response); // { jsonrpc: '2.0', result: 5, id: 1 }
|
package/src/types/base.d.ts
DELETED
package/src/types/request.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
export type RpcSpecBase = Record<
|
|
3
|
-
string,
|
|
4
|
-
{ params: readonly unknown[]; result: unknown }
|
|
5
|
-
>;
|
|
6
|
-
|
|
7
|
-
export interface JsonRpcRequest<Method, Params extends readonly unknown[]> {
|
|
8
|
-
jsonrpc: "2.0";
|
|
9
|
-
method: Method;
|
|
10
|
-
params?: Params;
|
|
11
|
-
id?: JsonRpcId;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export { };
|
package/src/types/response.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
export interface JsonRpcSuccess<Result> {
|
|
3
|
-
jsonrpc: "2.0";
|
|
4
|
-
result: Result;
|
|
5
|
-
id: JsonRpcId;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export interface JsonRpcError<ErrorCode> {
|
|
9
|
-
jsonrpc: "2.0";
|
|
10
|
-
error: JsonRpcErrorObject<ErrorCode>;
|
|
11
|
-
id: JsonRpcId;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface JsonRpcErrorObject<ErrorCode> {
|
|
15
|
-
code: ErrorCode;
|
|
16
|
-
message: string;
|
|
17
|
-
data?: unknown;
|
|
18
|
-
}
|
|
19
|
-
export type JsonRpcResponse<Result, ErrorCode> =
|
|
20
|
-
| JsonRpcSuccess<Result>
|
|
21
|
-
| JsonRpcError<ErrorCode>;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export { };
|
package/tsconfig.json
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
// Environment setup & latest features
|
|
4
|
-
"lib": ["ESNext"],
|
|
5
|
-
"target": "ESNext",
|
|
6
|
-
"module": "Preserve",
|
|
7
|
-
"moduleDetection": "force",
|
|
8
|
-
"jsx": "react-jsx",
|
|
9
|
-
"allowJs": true,
|
|
10
|
-
// Bundler mode
|
|
11
|
-
"sourceMap": true,
|
|
12
|
-
"declaration": true,
|
|
13
|
-
"declarationMap": true,
|
|
14
|
-
"moduleResolution": "bundler",
|
|
15
|
-
"outDir": "dist",
|
|
16
|
-
"rootDir": "src",
|
|
17
|
-
"allowImportingTsExtensions": false,
|
|
18
|
-
"verbatimModuleSyntax": true,
|
|
19
|
-
"noEmit": false,
|
|
20
|
-
// Best practices
|
|
21
|
-
"strict": true,
|
|
22
|
-
"skipLibCheck": true,
|
|
23
|
-
"noFallthroughCasesInSwitch": true,
|
|
24
|
-
"noUncheckedIndexedAccess": true,
|
|
25
|
-
"noImplicitOverride": true,
|
|
26
|
-
// Some stricter flags (disabled by default)
|
|
27
|
-
"noUnusedLocals": false,
|
|
28
|
-
"noUnusedParameters": false,
|
|
29
|
-
"noPropertyAccessFromIndexSignature": false
|
|
30
|
-
},
|
|
31
|
-
"include": ["src/**/*"],
|
|
32
|
-
"exclude": ["example.ts"]
|
|
33
|
-
}
|