@sentio/runtime 1.39.0-rc.2 → 1.40.0-rc.1

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.
@@ -4,6 +4,7 @@ import { Empty } from '@sentio/protos/lib/google/protobuf/empty';
4
4
  export declare class FullProcessorServiceImpl implements ProcessorServiceImplementation {
5
5
  constructor(instance: ProcessorServiceImplementation);
6
6
  instance: ProcessorServiceImplementation;
7
+ sdkMinorVersion: number;
7
8
  getConfig(request: ProcessConfigRequest, context: CallContext): Promise<{
8
9
  config?: {
9
10
  name?: string | undefined;
@@ -38,10 +39,28 @@ export declare class FullProcessorServiceImpl implements ProcessorServiceImpleme
38
39
  addressType?: import("./gen/processor/protos/processor").AddressType | undefined;
39
40
  }[] | undefined;
40
41
  handlerId?: number | undefined;
42
+ fetchConfig?: {
43
+ transaction?: boolean | undefined;
44
+ transactionReceipt?: boolean | undefined;
45
+ block?: boolean | undefined;
46
+ } | undefined;
41
47
  }[] | undefined;
42
48
  traceConfigs?: {
43
49
  signature?: string | undefined;
44
50
  handlerId?: number | undefined;
51
+ fetchConfig?: {
52
+ transaction?: boolean | undefined;
53
+ transactionReceipt?: boolean | undefined;
54
+ block?: boolean | undefined;
55
+ } | undefined;
56
+ }[] | undefined;
57
+ transactionConfig?: {
58
+ handlerId?: number | undefined;
59
+ fetchConfig?: {
60
+ transaction?: boolean | undefined;
61
+ transactionReceipt?: boolean | undefined;
62
+ block?: boolean | undefined;
63
+ } | undefined;
45
64
  }[] | undefined;
46
65
  aptosEventConfigs?: {
47
66
  filters?: {
@@ -127,6 +146,11 @@ export declare class FullProcessorServiceImpl implements ProcessorServiceImpleme
127
146
  addressType?: import("./gen/processor/protos/processor").AddressType | undefined;
128
147
  }[] | undefined;
129
148
  handlerId?: number | undefined;
149
+ fetchConfig?: {
150
+ transaction?: boolean | undefined;
151
+ transactionReceipt?: boolean | undefined;
152
+ block?: boolean | undefined;
153
+ } | undefined;
130
154
  }[] | undefined;
131
155
  }[] | undefined;
132
156
  metricConfigs?: {
@@ -1,13 +1,51 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
2
28
  Object.defineProperty(exports, "__esModule", { value: true });
3
29
  exports.FullProcessorServiceImpl = void 0;
4
30
  // Different than the simple one which
5
31
  const processor_1 = require("./gen/processor/protos/processor");
32
+ const fs_extra_1 = __importDefault(require("fs-extra"));
33
+ const assert = __importStar(require("assert"));
6
34
  class FullProcessorServiceImpl {
7
35
  constructor(instance) {
8
36
  this.instance = instance;
37
+ const sdkPackageJsonPath = require.resolve('@sentio/sdk/package.json');
38
+ const sdkPackageJsonContent = fs_extra_1.default.readFileSync(sdkPackageJsonPath, 'utf-8');
39
+ const sdkPackageJson = JSON.parse(sdkPackageJsonContent);
40
+ const runtimePackageJsonPath = require.resolve('@sentio/runtime/package.json');
41
+ const runtimePackageJsonContent = fs_extra_1.default.readFileSync(runtimePackageJsonPath, 'utf-8');
42
+ const runtimePackageJson = JSON.parse(runtimePackageJsonContent);
43
+ console.log('Runtime version:', runtimePackageJson.version, 'SDK version:', sdkPackageJson.version);
44
+ const version = sdkPackageJson.version.split('.');
45
+ this.sdkMinorVersion = parseInt(version[1]);
9
46
  }
10
47
  instance;
48
+ sdkMinorVersion;
11
49
  async getConfig(request, context) {
12
50
  return this.instance.getConfig(request, context);
13
51
  }
@@ -29,6 +67,15 @@ class FullProcessorServiceImpl {
29
67
  }
30
68
  adjustDataBinding(dataBinding) {
31
69
  switch (dataBinding.handlerType) {
70
+ case processor_1.HandlerType.APT_EVENT:
71
+ if (dataBinding.data?.aptEvent) {
72
+ const aptEvent = dataBinding.data.aptEvent;
73
+ if (aptEvent.event && this.sdkMinorVersion < 40) {
74
+ assert.ok(aptEvent.transaction, 'No Transaction');
75
+ aptEvent.transaction.events = [aptEvent.event];
76
+ }
77
+ }
78
+ break;
32
79
  case processor_1.HandlerType.UNKNOWN:
33
80
  if (dataBinding.data?.ethBlock) {
34
81
  if (dataBinding.data.raw.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"full-service.js","sourceRoot":"","sources":["../src/full-service.ts"],"names":[],"mappings":";;;AAEA,sCAAsC;AACtC,gEAOyC;AAIzC,MAAa,wBAAwB;IACnC,YAAY,QAAwC;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,QAAQ,CAAgC;IAExC,KAAK,CAAC,SAAS,CAAC,OAA6B,EAAE,OAAoB;QACjE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,OAAoB;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAc,EAAE,OAAoB;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA+B,EAAE,OAAoB;QACzE,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;SAChC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,CAAC,qBAAqB,CAAC,QAAoC,EAAE,OAAoB;QACrF,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAChD,2DAA2D;IAC7D,CAAC;IAES,iBAAiB,CAAC,WAAwB;QAClD,QAAQ,WAAW,CAAC,WAAW,EAAE;YAC/B,KAAK,uBAAW,CAAC,OAAO;gBACtB,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE;oBAC9B,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;wBACrC,gGAAgG;wBAChG,sBAAsB;wBACtB,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;qBACjG;iBACF;gBACD,MAAK;YACP;gBACE,MAAK;SACR;IACH,CAAC;CACF;AA9CD,4DA8CC","sourcesContent":["import { CallContext } from 'nice-grpc'\n\n// Different than the simple one which\nimport {\n DataBinding,\n HandlerType,\n ProcessBindingsRequest,\n ProcessConfigRequest,\n ProcessorServiceImplementation,\n StartRequest,\n} from './gen/processor/protos/processor'\n\nimport { Empty } from '@sentio/protos/lib/google/protobuf/empty'\n\nexport class FullProcessorServiceImpl implements ProcessorServiceImplementation {\n constructor(instance: ProcessorServiceImplementation) {\n this.instance = instance\n }\n\n instance: ProcessorServiceImplementation\n\n async getConfig(request: ProcessConfigRequest, context: CallContext) {\n return this.instance.getConfig(request, context)\n }\n\n async start(request: StartRequest, context: CallContext) {\n return this.instance.start(request, context)\n }\n\n async stop(request: Empty, context: CallContext) {\n return this.instance.stop(request, context)\n }\n\n async processBindings(request: ProcessBindingsRequest, options: CallContext) {\n for (const binding of request.bindings) {\n this.adjustDataBinding(binding)\n }\n return this.instance.processBindings(request, options)\n }\n\n async *processBindingsStream(requests: AsyncIterable<DataBinding>, context: CallContext) {\n throw new Error('Not Implemented for streaming')\n // y this.instance.processBindingsStream(requests, context)\n }\n\n protected adjustDataBinding(dataBinding: DataBinding): void {\n switch (dataBinding.handlerType) {\n case HandlerType.UNKNOWN:\n if (dataBinding.data?.ethBlock) {\n if (dataBinding.data.raw.length === 0) {\n // This is actually not needed in current system, just as initla test propose, move to test only\n // when this is stable\n dataBinding.data.raw = new TextEncoder().encode(JSON.stringify(dataBinding.data.ethBlock.block))\n }\n }\n break\n default:\n break\n }\n }\n}\n"]}
1
+ {"version":3,"file":"full-service.js","sourceRoot":"","sources":["../src/full-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { CallContext } from 'nice-grpc'\n\n// Different than the simple one which\nimport {\n DataBinding,\n HandlerType,\n ProcessBindingsRequest,\n ProcessConfigRequest,\n ProcessorServiceImplementation,\n StartRequest,\n} from './gen/processor/protos/processor'\n\nimport { Empty } from '@sentio/protos/lib/google/protobuf/empty'\nimport fs from 'fs-extra'\nimport * as assert from 'assert'\n\nexport class FullProcessorServiceImpl implements ProcessorServiceImplementation {\n constructor(instance: ProcessorServiceImplementation) {\n this.instance = instance\n const sdkPackageJsonPath = require.resolve('@sentio/sdk/package.json')\n const sdkPackageJsonContent = fs.readFileSync(sdkPackageJsonPath, 'utf-8')\n const sdkPackageJson = JSON.parse(sdkPackageJsonContent)\n\n const runtimePackageJsonPath = require.resolve('@sentio/runtime/package.json')\n const runtimePackageJsonContent = fs.readFileSync(runtimePackageJsonPath, 'utf-8')\n const runtimePackageJson = JSON.parse(runtimePackageJsonContent)\n\n console.log('Runtime version:', runtimePackageJson.version, 'SDK version:', sdkPackageJson.version)\n\n const version = sdkPackageJson.version.split('.')\n this.sdkMinorVersion = parseInt(version[1])\n }\n\n instance: ProcessorServiceImplementation\n sdkMinorVersion: number\n\n async getConfig(request: ProcessConfigRequest, context: CallContext) {\n return this.instance.getConfig(request, context)\n }\n\n async start(request: StartRequest, context: CallContext) {\n return this.instance.start(request, context)\n }\n\n async stop(request: Empty, context: CallContext) {\n return this.instance.stop(request, context)\n }\n\n async processBindings(request: ProcessBindingsRequest, options: CallContext) {\n for (const binding of request.bindings) {\n this.adjustDataBinding(binding)\n }\n return this.instance.processBindings(request, options)\n }\n\n async *processBindingsStream(requests: AsyncIterable<DataBinding>, context: CallContext) {\n throw new Error('Not Implemented for streaming')\n // y this.instance.processBindingsStream(requests, context)\n }\n\n protected adjustDataBinding(dataBinding: DataBinding): void {\n switch (dataBinding.handlerType) {\n case HandlerType.APT_EVENT:\n if (dataBinding.data?.aptEvent) {\n const aptEvent = dataBinding.data.aptEvent\n if (aptEvent.event && this.sdkMinorVersion < 40) {\n assert.ok(aptEvent.transaction, 'No Transaction')\n aptEvent.transaction.events = [aptEvent.event]\n }\n }\n break\n case HandlerType.UNKNOWN:\n if (dataBinding.data?.ethBlock) {\n if (dataBinding.data.raw.length === 0) {\n // This is actually not needed in current system, just as initla test propose, move to test only\n // when this is stable\n dataBinding.data.raw = new TextEncoder().encode(JSON.stringify(dataBinding.data.ethBlock.block))\n }\n }\n break\n default:\n break\n }\n }\n}\n"]}
@@ -69,6 +69,7 @@ export interface ContractConfig {
69
69
  intervalConfigs: OnIntervalConfig[];
70
70
  logConfigs: LogHandlerConfig[];
71
71
  traceConfigs: TraceHandlerConfig[];
72
+ transactionConfig: TransactionHandlerConfig[];
72
73
  aptosEventConfigs: AptosEventHandlerConfig[];
73
74
  aptosCallConfigs: AptosCallHandlerConfig[];
74
75
  instructionConfig: InstructionHandlerConfig | undefined;
@@ -158,14 +159,21 @@ export interface BlockHandlerConfig {
158
159
  export interface EthFetchConfig {
159
160
  transaction: boolean;
160
161
  transactionReceipt: boolean;
162
+ block: boolean;
161
163
  }
162
164
  export interface TraceHandlerConfig {
163
165
  signature: string;
164
166
  handlerId: number;
167
+ fetchConfig: EthFetchConfig | undefined;
168
+ }
169
+ export interface TransactionHandlerConfig {
170
+ handlerId: number;
171
+ fetchConfig: EthFetchConfig | undefined;
165
172
  }
166
173
  export interface LogHandlerConfig {
167
174
  filters: LogFilter[];
168
175
  handlerId: number;
176
+ fetchConfig: EthFetchConfig | undefined;
169
177
  }
170
178
  export interface LogFilter {
171
179
  topics: Topic[];
@@ -236,6 +244,12 @@ export interface Data_EthLog {
236
244
  transaction?: {
237
245
  [key: string]: any;
238
246
  } | undefined;
247
+ transactionReceipt?: {
248
+ [key: string]: any;
249
+ } | undefined;
250
+ block?: {
251
+ [key: string]: any;
252
+ } | undefined;
239
253
  }
240
254
  export interface Data_EthBlock {
241
255
  block: {
@@ -250,6 +264,9 @@ export interface Data_EthTransaction {
250
264
  transactionReceipt?: {
251
265
  [key: string]: any;
252
266
  } | undefined;
267
+ block?: {
268
+ [key: string]: any;
269
+ } | undefined;
253
270
  }
254
271
  export interface Data_EthTrace {
255
272
  trace: {
@@ -262,6 +279,9 @@ export interface Data_EthTrace {
262
279
  transactionReceipt?: {
263
280
  [key: string]: any;
264
281
  } | undefined;
282
+ block?: {
283
+ [key: string]: any;
284
+ } | undefined;
265
285
  }
266
286
  export interface Data_SolInstruction {
267
287
  instructionData: string;
@@ -273,6 +293,9 @@ export interface Data_SolInstruction {
273
293
  } | undefined;
274
294
  }
275
295
  export interface Data_AptEvent {
296
+ event: {
297
+ [key: string]: any;
298
+ } | undefined;
276
299
  transaction: {
277
300
  [key: string]: any;
278
301
  } | undefined;
@@ -501,6 +524,13 @@ export declare const TraceHandlerConfig: {
501
524
  toJSON(message: TraceHandlerConfig): unknown;
502
525
  fromPartial(object: DeepPartial<TraceHandlerConfig>): TraceHandlerConfig;
503
526
  };
527
+ export declare const TransactionHandlerConfig: {
528
+ encode(message: TransactionHandlerConfig, writer?: _m0.Writer): _m0.Writer;
529
+ decode(input: _m0.Reader | Uint8Array, length?: number): TransactionHandlerConfig;
530
+ fromJSON(object: any): TransactionHandlerConfig;
531
+ toJSON(message: TransactionHandlerConfig): unknown;
532
+ fromPartial(object: DeepPartial<TransactionHandlerConfig>): TransactionHandlerConfig;
533
+ };
504
534
  export declare const LogHandlerConfig: {
505
535
  encode(message: LogHandlerConfig, writer?: _m0.Writer): _m0.Writer;
506
536
  decode(input: _m0.Reader | Uint8Array, length?: number): LogHandlerConfig;