From 0d3805093558722f50f25edf40f72c8f50026c40 Mon Sep 17 00:00:00 2001 From: Muhammad Altabba <24407834+Muhammad-Altabba@users.noreply.github.com> Date: Thu, 25 Aug 2022 08:07:10 +0200 Subject: [PATCH] Start incrementing jsonrpc message id from random number (#5371) * start incrementing jsonrpc.id from random number --- CHANGELOG.md | 1 + packages/web3-core-requestmanager/src/jsonrpc.js | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28b0a2fc4c2..017b0d7c6e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -592,3 +592,4 @@ Released with 1.0.0-beta.37 code base. ### Fixed - Browser builds support polyfills (#5031) (#5053) (#4659) (#4767) +- Start incrementing jsonrpc.id from random number (#5327) diff --git a/packages/web3-core-requestmanager/src/jsonrpc.js b/packages/web3-core-requestmanager/src/jsonrpc.js index dfb90184203..bf1e3aec7ff 100644 --- a/packages/web3-core-requestmanager/src/jsonrpc.js +++ b/packages/web3-core-requestmanager/src/jsonrpc.js @@ -26,7 +26,9 @@ // Initialize Jsonrpc as a simple object with utility functions. var Jsonrpc = { - messageId: 0 + // This is the starting counter for the Jsonrpc.id. + // Pick a random number between 0 and the maximum safe integer + messageId: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) }; /** @@ -42,8 +44,14 @@ Jsonrpc.toPayload = function (method, params) { throw new Error('JSONRPC method should be specified for params: "'+ JSON.stringify(params) +'"!'); } - // advance message ID - Jsonrpc.messageId++; + if(Jsonrpc.messageId === Number.MAX_SAFE_INTEGER) { + // if the maximum safe integer has been reached, restart from a random number + Jsonrpc.messageId = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) + } + else { + // advance message ID + Jsonrpc.messageId++; + } return { jsonrpc: '2.0',