Skip to content

Commit

Permalink
feat: batch rpc (#112)
Browse files Browse the repository at this point in the history
* feat: batch rpc & increase min CGL

* chore(release): 1.0.17-alpha
  • Loading branch information
0xSulpiride authored Nov 1, 2023
1 parent 292c609 commit f488645
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 52 deletions.
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
],
"npmClient": "yarn",
"useWorkspaces": true,
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"stream": "true",
"command": {
"version": {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "root",
"private": true,
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"engines": {
"node": ">=18.0.0"
},
Expand Down
6 changes: 3 additions & 3 deletions packages/api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "api",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "The API module of Etherspot bundler client",
"author": "Etherspot",
"homepage": "https://https://github.com/etherspot/skandha#readme",
Expand Down Expand Up @@ -35,12 +35,12 @@
"class-transformer": "0.5.1",
"class-validator": "0.14.0",
"ethers": "5.7.2",
"executor": "^1.0.16-alpha",
"executor": "^1.0.17-alpha",
"fastify": "4.14.1",
"pino": "8.11.0",
"pino-pretty": "10.0.0",
"reflect-metadata": "0.1.13",
"types": "^1.0.16-alpha"
"types": "^1.0.17-alpha"
},
"devDependencies": {
"@types/connect": "3.4.35"
Expand Down
44 changes: 22 additions & 22 deletions packages/api/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,16 +84,11 @@ export class ApiApp {
const redirectApi = new RedirectAPI(executor.networkName, this.config);
const skandhaApi = new SkandhaAPI(executor.eth, executor.skandha);

return async (req, res): Promise<void> => {
let result: any = undefined;
const { method, params, jsonrpc, id } = req.body as any;

const handleRpc = async (ip: string, request: any): Promise<any> => {
let result: any;
const { method, params, jsonrpc, id } = request;
// ADMIN METHODS
if (
this.testingMode ||
req.ip === "localhost" ||
req.ip === "127.0.0.1"
) {
if (this.testingMode || ip === "localhost" || ip === "127.0.0.1") {
switch (method) {
case BundlerRPCMethods.debug_bundler_setBundlingMode:
result = await debugApi.setBundlingMode(params[0]);
Expand Down Expand Up @@ -136,12 +131,12 @@ export class ApiApp {
if (this.redirectRpc && method in RedirectedRPCMethods) {
const body = await redirectApi.redirect(method, params);
if (body.error) {
return res.status(HttpStatus.OK).send({ ...body, id });
return { ...body, id };
}
return res.status(HttpStatus.OK).send({ jsonrpc, id, ...body });
return { jsonrpc, id, ...body };
}

if (result === undefined) {
if (!result) {
switch (method) {
case BundlerRPCMethods.eth_supportedEntryPoints:
result = await ethApi.getSupportedEntryPoints();
Expand Down Expand Up @@ -197,11 +192,7 @@ export class ApiApp {
case CustomRPCMethods.skandha_config:
result = await skandhaApi.getConfig();
// skip hexlify for this particular rpc
return res.status(HttpStatus.OK).send({
jsonrpc,
id,
result,
});
return { jsonrpc, id, result };
default:
throw new RpcError(
`Method ${method} is not supported`,
Expand All @@ -211,11 +202,20 @@ export class ApiApp {
}

result = deepHexlify(result);
return res.status(HttpStatus.OK).send({
jsonrpc,
id,
result,
});
return { jsonrpc, id, result };
};

return async (req, res): Promise<void> => {
let response: any = null;
if (Array.isArray(req.body)) {
response = [];
for (const request of req.body) {
response.push(await handleRpc(req.ip, request));
}
} else {
response = await handleRpc(req.ip, req.body);
}
return res.status(HttpStatus.OK).send(response);
};
}
}
12 changes: 6 additions & 6 deletions packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cli",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "> TODO: description",
"author": "zincoshine <[email protected]>",
"homepage": "https://https://github.com/etherspot/skandha#readme",
Expand Down Expand Up @@ -38,14 +38,14 @@
"@libp2p/peer-id-factory": "2.0.1",
"@libp2p/prometheus-metrics": "1.1.3",
"@multiformats/multiaddr": "12.1.3",
"api": "^1.0.16-alpha",
"db": "^1.0.16-alpha",
"executor": "^1.0.16-alpha",
"api": "^1.0.17-alpha",
"db": "^1.0.17-alpha",
"executor": "^1.0.17-alpha",
"find-up": "5.0.0",
"got": "12.5.3",
"js-yaml": "4.1.0",
"node": "^1.0.16-alpha",
"types": "^1.0.16-alpha",
"node": "^1.0.17-alpha",
"types": "^1.0.17-alpha",
"yargs": "17.6.2"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions packages/db/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "db",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "The DB module of Etherspot bundler client",
"author": "Etherspot",
"homepage": "https://github.com/etherspot/etherspot-bundler#readme",
Expand Down Expand Up @@ -33,7 +33,7 @@
"dependencies": {
"@chainsafe/ssz": "0.10.1",
"@farcaster/rocksdb": "5.5.0",
"types": "^1.0.16-alpha"
"types": "^1.0.17-alpha"
},
"devDependencies": {
"@types/rocksdb": "3.0.1",
Expand Down
6 changes: 3 additions & 3 deletions packages/executor/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "executor",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "The Relayer module of Etherspot bundler client",
"author": "Etherspot",
"homepage": "https://https://github.com/etherspot/skandha#readme",
Expand Down Expand Up @@ -33,7 +33,7 @@
"dependencies": {
"async-mutex": "0.4.0",
"ethers": "5.7.2",
"params": "^1.0.16-alpha",
"types": "^1.0.16-alpha"
"params": "^1.0.17-alpha",
"types": "^1.0.17-alpha"
}
}
10 changes: 9 additions & 1 deletion packages/executor/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,14 @@ export class Config {
conf.useropsTTL || bundlerDefaultConfigs.useropsTTL
)
);
conf.estimationStaticBuffer = Number(
fromEnvVar(
network,
"ESTIMATION_STATIC_BUFFER",
conf.estimationStaticBuffer ||
bundlerDefaultConfigs.estimationStaticBuffer
)
);

return Object.assign({}, bundlerDefaultConfigs, conf);
}
Expand All @@ -232,7 +240,7 @@ const bundlerDefaultConfigs: BundlerConfig = {
banSlack: 10,
minSignerBalance: utils.parseEther("0.1"),
multicall: "0xcA11bde05977b3631167028862bE2a173976CA11", // default multicall address
estimationStaticBuffer: 21000,
estimationStaticBuffer: 35000,
validationGasLimit: 10e6,
receiptLookupRange: 1024,
etherscanApiKey: "",
Expand Down
14 changes: 7 additions & 7 deletions packages/node/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "node",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "The bundler node module of Etherspot bundler client",
"author": "Etherspot",
"homepage": "https://https://github.com/etherspot/skandha#readme",
Expand Down Expand Up @@ -56,24 +56,24 @@
"@libp2p/tcp": "6.1.0",
"@multiformats/multiaddr": "11.4.0",
"abstract-leveldown": "7.2.0",
"api": "^1.0.16-alpha",
"api": "^1.0.17-alpha",
"datastore-core": "8.0.1",
"db": "^1.0.16-alpha",
"db": "^1.0.17-alpha",
"ethers": "5.7.2",
"executor": "^1.0.16-alpha",
"executor": "^1.0.17-alpha",
"it-filter": "1.0.2",
"it-map": "1.0.5",
"it-sort": "1.0.0",
"it-take": "1.0.1",
"libp2p": "0.42.2",
"params": "^1.0.16-alpha",
"params": "^1.0.17-alpha",
"prettier": "2.8.4",
"snappy": "7.2.2",
"snappyjs": "0.7.0",
"stream-to-it": "0.2.4",
"strict-event-emitter-types": "2.0.0",
"types": "^1.0.16-alpha",
"utils": "^1.0.16-alpha",
"types": "^1.0.17-alpha",
"utils": "^1.0.17-alpha",
"varint": "6.0.0",
"xxhash-wasm": "1.0.2"
},
Expand Down
6 changes: 3 additions & 3 deletions packages/params/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "params",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "Various bundler parameters",
"author": "Etherspot",
"homepage": "https://github.com/etherspot/skandha#readme",
Expand All @@ -26,8 +26,8 @@
"@eth-optimism/sdk": "3.0.0",
"@mantleio/sdk": "0.2.1",
"ethers": "5.7.2",
"types": "^1.0.16-alpha",
"utils": "^1.0.16-alpha"
"types": "^1.0.17-alpha",
"utils": "^1.0.17-alpha"
},
"scripts": {
"clean": "rm -rf lib && rm -f *.tsbuildinfo",
Expand Down
2 changes: 1 addition & 1 deletion packages/types/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "types",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "The types of Etherspot bundler client",
"author": "Etherspot",
"homepage": "https://https://github.com/etherspot/skandha#readme",
Expand Down
4 changes: 2 additions & 2 deletions packages/utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "utils",
"version": "1.0.16-alpha",
"version": "1.0.17-alpha",
"description": "utils of Etherspot bundler client",
"author": "Etherspot",
"homepage": "https://https://github.com/etherspot/skandha#readme",
Expand Down Expand Up @@ -37,6 +37,6 @@
"case": "^1.6.3",
"pino": "8.11.0",
"pino-pretty": "10.0.0",
"types": "^1.0.16-alpha"
"types": "^1.0.17-alpha"
}
}

0 comments on commit f488645

Please sign in to comment.