@sentio/runtime 2.59.0-rc.29 → 2.59.0-rc.30

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.
@@ -25956,6 +25956,7 @@ import { createRequire } from "module";
25956
25956
  var import_fs_extra = __toESM(require_lib(), 1);
25957
25957
  import path from "path";
25958
25958
  import os from "os";
25959
+ import { createHash } from "crypto";
25959
25960
  var require2 = createRequire(import.meta.url);
25960
25961
  var FUEL_PROTO_UPDATE_VERSION = parseSemver("2.54.0-rc.7");
25961
25962
  var FUEL_PROTO_NO_FUEL_TRANSACTION_AS_CALL_VERSION = parseSemver("2.55.0-rc.1");
@@ -25964,6 +25965,22 @@ var ETH_USE_RAW_VERSION = parseSemver("2.57.9-rc.12");
25964
25965
  var PROCESSED_MOVE_EVENT_TX_HANDLER = new LRUCache({
25965
25966
  max: 1e4
25966
25967
  });
25968
+ var enableTxCache = process.env.ENABLE_PARSE_CACHE === "true";
25969
+ var PARSED_DATA_CACHE = new LRUCache({
25970
+ max: enableTxCache ? 5e3 : 1
25971
+ });
25972
+ function getParsedData(rawData) {
25973
+ if (!enableTxCache) {
25974
+ return JSON.parse(rawData);
25975
+ }
25976
+ const digest = createHash("md5").update(rawData).digest("hex");
25977
+ let parsedData = PARSED_DATA_CACHE.get(digest);
25978
+ if (!parsedData) {
25979
+ parsedData = JSON.parse(rawData);
25980
+ PARSED_DATA_CACHE.set(digest, parsedData);
25981
+ }
25982
+ return parsedData;
25983
+ }
25967
25984
  function locatePackageJson(pkgId) {
25968
25985
  const m = require2.resolve(pkgId);
25969
25986
  let dir = path.dirname(m);
@@ -26064,17 +26081,31 @@ var FullProcessorServiceImpl = class {
26064
26081
  const ethLog = dataBinding.data?.ethLog;
26065
26082
  if (ethLog?.log == null && ethLog?.rawLog) {
26066
26083
  ethLog.log = JSON.parse(ethLog.rawLog);
26067
- ethLog.transaction = ethLog.rawTransaction ? JSON.parse(ethLog.rawTransaction) : void 0;
26068
- ethLog.block = ethLog.rawBlock ? JSON.parse(ethLog.rawBlock) : void 0;
26069
- ethLog.transactionReceipt = ethLog.rawTransactionReceipt ? JSON.parse(ethLog.rawTransactionReceipt) : void 0;
26084
+ if (ethLog.rawTransaction) {
26085
+ ethLog.transaction = getParsedData(ethLog.rawTransaction);
26086
+ }
26087
+ if (ethLog.rawBlock) {
26088
+ ethLog.block = getParsedData(ethLog.rawBlock);
26089
+ }
26090
+ if (ethLog.rawTransactionReceipt) {
26091
+ ethLog.transactionReceipt = getParsedData(ethLog.rawTransactionReceipt);
26092
+ }
26070
26093
  }
26071
26094
  break;
26072
26095
  case 11 /* ETH_TRANSACTION */:
26073
26096
  const ethTx = dataBinding.data?.ethTransaction;
26074
26097
  if (ethTx?.transaction == null && ethTx?.rawTransaction) {
26075
- ethTx.transaction = JSON.parse(ethTx.rawTransaction);
26076
- ethTx.block = ethTx.rawBlock ? JSON.parse(ethTx.rawBlock) : void 0;
26077
- ethTx.transactionReceipt = ethTx.rawTransactionReceipt ? JSON.parse(ethTx.rawTransactionReceipt) : void 0;
26098
+ ethTx.transaction = getParsedData(ethTx.rawTransaction);
26099
+ if (ethTx.rawBlock) {
26100
+ ethTx.block = getParsedData(ethTx.rawBlock);
26101
+ } else {
26102
+ ethTx.block = void 0;
26103
+ }
26104
+ if (ethTx.rawTransactionReceipt) {
26105
+ ethTx.transactionReceipt = getParsedData(ethTx.rawTransactionReceipt);
26106
+ } else {
26107
+ ethTx.transactionReceipt = void 0;
26108
+ }
26078
26109
  }
26079
26110
  break;
26080
26111
  case 20 /* FUEL_TRANSACTION */:
@@ -26097,7 +26128,7 @@ var FullProcessorServiceImpl = class {
26097
26128
  const aptEvent = dataBinding.data?.aptEvent;
26098
26129
  if (aptEvent) {
26099
26130
  if (isBeforeMoveUseRawVersion && aptEvent.rawTransaction) {
26100
- const transaction = JSON.parse(aptEvent.rawTransaction);
26131
+ const transaction = getParsedData(aptEvent.rawTransaction);
26101
26132
  const key = `${transaction.hash}-${dataBinding.handlerIds[0]}`;
26102
26133
  if (PROCESSED_MOVE_EVENT_TX_HANDLER.has(key)) {
26103
26134
  console.debug("skip binding", key);
@@ -26116,7 +26147,7 @@ var FullProcessorServiceImpl = class {
26116
26147
  const aptCall = dataBinding.data?.aptCall;
26117
26148
  if (aptCall) {
26118
26149
  if (isBeforeMoveUseRawVersion && aptCall.rawTransaction) {
26119
- aptCall.transaction = JSON.parse(aptCall.rawTransaction);
26150
+ aptCall.transaction = getParsedData(aptCall.rawTransaction);
26120
26151
  }
26121
26152
  }
26122
26153
  break;
@@ -26132,7 +26163,7 @@ var FullProcessorServiceImpl = class {
26132
26163
  const suiEvent = dataBinding.data?.suiEvent;
26133
26164
  if (suiEvent) {
26134
26165
  if (isBeforeMoveUseRawVersion && suiEvent.rawTransaction) {
26135
- const transaction = JSON.parse(suiEvent.rawTransaction);
26166
+ const transaction = getParsedData(suiEvent.rawTransaction);
26136
26167
  const key = `${transaction.digest}-${dataBinding.handlerIds[0]}`;
26137
26168
  if (PROCESSED_MOVE_EVENT_TX_HANDLER.has(key)) {
26138
26169
  console.debug("skip binding", key);
@@ -26151,7 +26182,7 @@ var FullProcessorServiceImpl = class {
26151
26182
  const suiCall = dataBinding.data?.suiCall;
26152
26183
  if (suiCall) {
26153
26184
  if (isBeforeMoveUseRawVersion && suiCall.rawTransaction) {
26154
- suiCall.transaction = JSON.parse(suiCall.rawTransaction);
26185
+ suiCall.transaction = getParsedData(suiCall.rawTransaction);
26155
26186
  }
26156
26187
  }
26157
26188
  break;