@sentio/sdk 1.7.22 → 1.8.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.
Files changed (44) hide show
  1. package/lib/base-processor.d.ts +3 -3
  2. package/lib/base-processor.js +3 -0
  3. package/lib/base-processor.js.map +1 -1
  4. package/lib/gen/processor/protos/processor.d.ts +123 -36
  5. package/lib/gen/processor/protos/processor.js +417 -53
  6. package/lib/gen/processor/protos/processor.js.map +1 -1
  7. package/lib/meter.js +1 -1
  8. package/lib/meter.js.map +1 -1
  9. package/lib/service.d.ts +3 -2
  10. package/lib/service.js +11 -3
  11. package/lib/service.js.map +1 -1
  12. package/lib/solana-processor.d.ts +2 -2
  13. package/lib/solana-processor.js +1 -0
  14. package/lib/solana-processor.js.map +1 -1
  15. package/lib/test/erc20.test.js +9 -11
  16. package/lib/test/erc20.test.js.map +1 -1
  17. package/lib/test/index.d.ts +1 -0
  18. package/lib/test/index.js +3 -1
  19. package/lib/test/index.js.map +1 -1
  20. package/lib/test/metric-utils.d.ts +3 -3
  21. package/lib/test/metric-utils.js.map +1 -1
  22. package/lib/test/test-processor-server.d.ts +2 -1
  23. package/lib/test/test-processor-server.js +3 -0
  24. package/lib/test/test-processor-server.js.map +1 -1
  25. package/lib/test/test-provider.d.ts +1 -0
  26. package/lib/test/test-provider.js +25 -0
  27. package/lib/test/test-provider.js.map +1 -0
  28. package/lib/utils/chainmap.js +3 -3
  29. package/lib/utils/chainmap.js.map +1 -1
  30. package/lib/utils/erc20.test.js +6 -11
  31. package/lib/utils/erc20.test.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/base-processor.ts +6 -3
  34. package/src/gen/processor/protos/processor.ts +547 -83
  35. package/src/meter.ts +1 -1
  36. package/src/service.ts +25 -14
  37. package/src/solana-processor.ts +3 -2
  38. package/src/test/erc20.test.ts +9 -11
  39. package/src/test/index.ts +1 -0
  40. package/src/test/metric-utils.ts +3 -3
  41. package/src/test/test-processor-server.ts +6 -0
  42. package/src/test/test-provider.ts +25 -0
  43. package/src/utils/chainmap.ts +3 -3
  44. package/src/utils/erc20.test.ts +7 -12
@@ -2,15 +2,15 @@ import { Event } from '@ethersproject/contracts';
2
2
  import { Block, Log } from '@ethersproject/providers';
3
3
  import { BaseContract, EventFilter } from '@ethersproject/contracts';
4
4
  import { BoundContractView, Context, ContractView } from './context';
5
- import { O11yResult } from './gen/processor/protos/processor';
5
+ import { ProcessResult } from './gen/processor/protos/processor';
6
6
  import { BindInternalOptions, BindOptions } from './bind-options';
7
7
  import { PromiseOrVoid } from './promise-or-void';
8
8
  export declare class EventsHandler {
9
9
  filters: EventFilter[];
10
- handler: (event: Log) => Promise<O11yResult>;
10
+ handler: (event: Log) => Promise<ProcessResult>;
11
11
  }
12
12
  export declare abstract class BaseProcessor<TContract extends BaseContract, TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>> {
13
- blockHandlers: ((block: Block) => Promise<O11yResult>)[];
13
+ blockHandlers: ((block: Block) => Promise<ProcessResult>)[];
14
14
  eventHandlers: EventsHandler[];
15
15
  name: string;
16
16
  config: BindInternalOptions;
@@ -73,11 +73,13 @@ class BaseProcessor {
73
73
  return {
74
74
  gauges: ctx.gauges,
75
75
  counters: ctx.counters,
76
+ logs: [],
76
77
  };
77
78
  }
78
79
  return {
79
80
  gauges: [],
80
81
  counters: [],
82
+ logs: [],
81
83
  };
82
84
  },
83
85
  });
@@ -92,6 +94,7 @@ class BaseProcessor {
92
94
  return {
93
95
  gauges: ctx.gauges,
94
96
  counters: ctx.counters,
97
+ logs: [],
95
98
  };
96
99
  });
97
100
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"base-processor.js","sourceRoot":"","sources":["../src/base-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Event } from '@ethersproject/contracts'\nimport { BytesLike } from '@ethersproject/bytes'\nimport { Block, Log, getNetwork } from '@ethersproject/providers'\nimport { BaseContract, EventFilter } from '@ethersproject/contracts'\nimport Long from 'long'\n\nimport { BoundContractView, Context, ContractView } from './context'\nimport { O11yResult } from './gen/processor/protos/processor'\nimport { BindInternalOptions, BindOptions } from './bind-options'\nimport { PromiseOrVoid } from './promise-or-void'\n\nexport class EventsHandler {\n filters: EventFilter[]\n handler: (event: Log) => Promise<O11yResult>\n}\n\nexport abstract class BaseProcessor<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n blockHandlers: ((block: Block) => Promise<O11yResult>)[] = []\n eventHandlers: EventsHandler[] = []\n\n name: string\n config: BindInternalOptions\n\n constructor(config: BindOptions) {\n this.config = {\n address: config.address,\n name: config.name || '',\n network: config.network ? config.network : 1,\n startBlock: new Long(0),\n }\n if (config.startBlock) {\n if (typeof config.startBlock === 'number') {\n this.config.startBlock = Long.fromNumber(config.startBlock)\n } else {\n this.config.startBlock = config.startBlock\n }\n }\n if (config.endBlock) {\n if (typeof config.endBlock === 'number') {\n this.config.endBlock = Long.fromNumber(config.endBlock)\n } else {\n this.config.endBlock = config.endBlock\n }\n }\n }\n\n protected abstract CreateBoundContractView(): TBoundContractView\n\n public getChainId(): number {\n return getNetwork(this.config.network).chainId\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n const chainId = this.getChainId()\n\n let _filters: EventFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const contractView = this.CreateBoundContractView()\n this.eventHandlers.push({\n filters: _filters,\n handler: async function (log) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, log)\n // let event: Event = <Event>deepCopy(log);\n const event: Event = <Event>log\n const parsed = contractView.rawContract.interface.parseLog(log)\n if (parsed) {\n event.args = parsed.args\n event.decode = (data: BytesLike, topics?: Array<any>) => {\n return contractView.rawContract.interface.decodeEventLog(parsed.eventFragment, data, topics)\n }\n event.event = parsed.name\n event.eventSignature = parsed.signature\n\n // TODO fix this bug\n await handler(event, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n }\n }\n return {\n gauges: [],\n counters: [],\n }\n },\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.blockHandlers.push(async function (block: Block) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, block, undefined)\n await handler(block, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n }\n })\n return this\n }\n\n public onAllEvents(handler: (event: Log, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const _filters: EventFilter[] = []\n const tmpContract = this.CreateBoundContractView()\n\n for (const key in tmpContract.filters) {\n _filters.push(tmpContract.filters[key]())\n }\n return this.onEvent(function (log, ctx) {\n return handler(log, ctx)\n }, _filters)\n }\n}\n"]}
1
+ {"version":3,"file":"base-processor.js","sourceRoot":"","sources":["../src/base-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Event } from '@ethersproject/contracts'\nimport { BytesLike } from '@ethersproject/bytes'\nimport { Block, Log, getNetwork } from '@ethersproject/providers'\nimport { BaseContract, EventFilter } from '@ethersproject/contracts'\nimport Long from 'long'\n\nimport { BoundContractView, Context, ContractView } from './context'\nimport { ProcessResult } from './gen/processor/protos/processor'\nimport { BindInternalOptions, BindOptions } from './bind-options'\nimport { PromiseOrVoid } from './promise-or-void'\n\nexport class EventsHandler {\n filters: EventFilter[]\n handler: (event: Log) => Promise<ProcessResult>\n}\n\nexport abstract class BaseProcessor<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n blockHandlers: ((block: Block) => Promise<ProcessResult>)[] = []\n eventHandlers: EventsHandler[] = []\n\n name: string\n config: BindInternalOptions\n\n constructor(config: BindOptions) {\n this.config = {\n address: config.address,\n name: config.name || '',\n network: config.network ? config.network : 1,\n startBlock: new Long(0),\n }\n if (config.startBlock) {\n if (typeof config.startBlock === 'number') {\n this.config.startBlock = Long.fromNumber(config.startBlock)\n } else {\n this.config.startBlock = config.startBlock\n }\n }\n if (config.endBlock) {\n if (typeof config.endBlock === 'number') {\n this.config.endBlock = Long.fromNumber(config.endBlock)\n } else {\n this.config.endBlock = config.endBlock\n }\n }\n }\n\n protected abstract CreateBoundContractView(): TBoundContractView\n\n public getChainId(): number {\n return getNetwork(this.config.network).chainId\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n const chainId = this.getChainId()\n\n let _filters: EventFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const contractView = this.CreateBoundContractView()\n this.eventHandlers.push({\n filters: _filters,\n handler: async function (log) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, log)\n // let event: Event = <Event>deepCopy(log);\n const event: Event = <Event>log\n const parsed = contractView.rawContract.interface.parseLog(log)\n if (parsed) {\n event.args = parsed.args\n event.decode = (data: BytesLike, topics?: Array<any>) => {\n return contractView.rawContract.interface.decodeEventLog(parsed.eventFragment, data, topics)\n }\n event.event = parsed.name\n event.eventSignature = parsed.signature\n\n // TODO fix this bug\n await handler(event, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n }\n return {\n gauges: [],\n counters: [],\n logs: [],\n }\n },\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.blockHandlers.push(async function (block: Block) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, block, undefined)\n await handler(block, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n })\n return this\n }\n\n public onAllEvents(handler: (event: Log, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const _filters: EventFilter[] = []\n const tmpContract = this.CreateBoundContractView()\n\n for (const key in tmpContract.filters) {\n _filters.push(tmpContract.filters[key]())\n }\n return this.onEvent(function (log, ctx) {\n return handler(log, ctx)\n }, _filters)\n }\n}\n"]}
@@ -8,10 +8,20 @@ export declare enum HandlerType {
8
8
  BLOCK = 2,
9
9
  TRANSACTION = 3,
10
10
  INSTRUCTION = 4,
11
+ TRACE = 5,
11
12
  UNRECOGNIZED = -1
12
13
  }
13
14
  export declare function handlerTypeFromJSON(object: any): HandlerType;
14
15
  export declare function handlerTypeToJSON(object: HandlerType): string;
16
+ export declare enum LogLevel {
17
+ DEBUG = 0,
18
+ INFO = 1,
19
+ WARNING = 2,
20
+ ERROR = 3,
21
+ UNRECOGNIZED = -1
22
+ }
23
+ export declare function logLevelFromJSON(object: any): LogLevel;
24
+ export declare function logLevelToJSON(object: LogLevel): string;
15
25
  export interface ProjectConfig {
16
26
  name: string;
17
27
  version: string;
@@ -69,35 +79,48 @@ export interface ProcessLogsRequest {
69
79
  logBindings: LogBinding[];
70
80
  }
71
81
  export interface ProcessLogsResponse {
72
- result: O11yResult | undefined;
82
+ result: ProcessResult | undefined;
73
83
  configUpdated: boolean;
74
84
  }
85
+ export interface ProcessTracesRequest {
86
+ logBindings: LogBinding[];
87
+ }
88
+ export interface ProcessTracesResponse {
89
+ result: ProcessResult | undefined;
90
+ }
75
91
  export interface ProcessTransactionsRequest {
76
- transaction: Transaction | undefined;
92
+ transaction: RawTransaction | undefined;
77
93
  }
78
94
  export interface ProcessInstructionsRequest {
79
95
  instructions: Instruction[];
80
96
  }
81
97
  export interface ProcessTransactionsResponse {
82
- result: O11yResult | undefined;
98
+ result: ProcessResult | undefined;
83
99
  }
84
100
  export interface ProcessInstructionsResponse {
85
- result: O11yResult | undefined;
101
+ result: ProcessResult | undefined;
86
102
  }
87
103
  export interface ProcessBlocksRequest {
88
104
  blockBindings: BlockBinding[];
89
105
  }
90
106
  export interface ProcessBlocksResponse {
91
- result: O11yResult | undefined;
107
+ result: ProcessResult | undefined;
92
108
  }
93
109
  export interface LogBinding {
94
- log: Log | undefined;
110
+ log: RawLog | undefined;
111
+ handlerId: number;
112
+ }
113
+ export interface RawLog {
114
+ raw: Uint8Array;
115
+ }
116
+ export interface TraceBinding {
117
+ trace: RawTrace | undefined;
95
118
  handlerId: number;
96
119
  }
97
- export interface Log {
120
+ export interface RawTrace {
98
121
  raw: Uint8Array;
99
122
  }
100
- export interface Transaction {
123
+ export interface RawTransaction {
101
124
  txHash: string;
102
125
  raw: Uint8Array;
103
126
  programAccountId: string;
@@ -109,15 +132,16 @@ export interface Instruction {
109
132
  parsed?: Uint8Array | undefined;
110
133
  }
111
134
  export interface BlockBinding {
112
- block: Block | undefined;
135
+ block: RawBlock | undefined;
113
136
  handlerIds: number[];
114
137
  }
115
- export interface Block {
138
+ export interface RawBlock {
116
139
  raw: Uint8Array;
117
140
  }
118
- export interface O11yResult {
141
+ export interface ProcessResult {
119
142
  gauges: GaugeResult[];
120
143
  counters: CounterResult[];
144
+ logs: LogResult[];
121
145
  }
122
146
  export interface RecordMetaData {
123
147
  contractAddress: string;
@@ -157,6 +181,12 @@ export interface CounterResult {
157
181
  add: boolean;
158
182
  runtimeInfo: RuntimeInfo | undefined;
159
183
  }
184
+ export interface LogResult {
185
+ metadata: RecordMetaData | undefined;
186
+ level: LogLevel;
187
+ message: string;
188
+ runtimeInfo: RuntimeInfo | undefined;
189
+ }
160
190
  export declare const ProjectConfig: {
161
191
  encode(message: ProjectConfig, writer?: _m0.Writer): _m0.Writer;
162
192
  decode(input: _m0.Reader | Uint8Array, length?: number): ProjectConfig;
@@ -255,6 +285,20 @@ export declare const ProcessLogsResponse: {
255
285
  toJSON(message: ProcessLogsResponse): unknown;
256
286
  fromPartial(object: DeepPartial<ProcessLogsResponse>): ProcessLogsResponse;
257
287
  };
288
+ export declare const ProcessTracesRequest: {
289
+ encode(message: ProcessTracesRequest, writer?: _m0.Writer): _m0.Writer;
290
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProcessTracesRequest;
291
+ fromJSON(object: any): ProcessTracesRequest;
292
+ toJSON(message: ProcessTracesRequest): unknown;
293
+ fromPartial(object: DeepPartial<ProcessTracesRequest>): ProcessTracesRequest;
294
+ };
295
+ export declare const ProcessTracesResponse: {
296
+ encode(message: ProcessTracesResponse, writer?: _m0.Writer): _m0.Writer;
297
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProcessTracesResponse;
298
+ fromJSON(object: any): ProcessTracesResponse;
299
+ toJSON(message: ProcessTracesResponse): unknown;
300
+ fromPartial(object: DeepPartial<ProcessTracesResponse>): ProcessTracesResponse;
301
+ };
258
302
  export declare const ProcessTransactionsRequest: {
259
303
  encode(message: ProcessTransactionsRequest, writer?: _m0.Writer): _m0.Writer;
260
304
  decode(input: _m0.Reader | Uint8Array, length?: number): ProcessTransactionsRequest;
@@ -304,19 +348,33 @@ export declare const LogBinding: {
304
348
  toJSON(message: LogBinding): unknown;
305
349
  fromPartial(object: DeepPartial<LogBinding>): LogBinding;
306
350
  };
307
- export declare const Log: {
308
- encode(message: Log, writer?: _m0.Writer): _m0.Writer;
309
- decode(input: _m0.Reader | Uint8Array, length?: number): Log;
310
- fromJSON(object: any): Log;
311
- toJSON(message: Log): unknown;
312
- fromPartial(object: DeepPartial<Log>): Log;
313
- };
314
- export declare const Transaction: {
315
- encode(message: Transaction, writer?: _m0.Writer): _m0.Writer;
316
- decode(input: _m0.Reader | Uint8Array, length?: number): Transaction;
317
- fromJSON(object: any): Transaction;
318
- toJSON(message: Transaction): unknown;
319
- fromPartial(object: DeepPartial<Transaction>): Transaction;
351
+ export declare const RawLog: {
352
+ encode(message: RawLog, writer?: _m0.Writer): _m0.Writer;
353
+ decode(input: _m0.Reader | Uint8Array, length?: number): RawLog;
354
+ fromJSON(object: any): RawLog;
355
+ toJSON(message: RawLog): unknown;
356
+ fromPartial(object: DeepPartial<RawLog>): RawLog;
357
+ };
358
+ export declare const TraceBinding: {
359
+ encode(message: TraceBinding, writer?: _m0.Writer): _m0.Writer;
360
+ decode(input: _m0.Reader | Uint8Array, length?: number): TraceBinding;
361
+ fromJSON(object: any): TraceBinding;
362
+ toJSON(message: TraceBinding): unknown;
363
+ fromPartial(object: DeepPartial<TraceBinding>): TraceBinding;
364
+ };
365
+ export declare const RawTrace: {
366
+ encode(message: RawTrace, writer?: _m0.Writer): _m0.Writer;
367
+ decode(input: _m0.Reader | Uint8Array, length?: number): RawTrace;
368
+ fromJSON(object: any): RawTrace;
369
+ toJSON(message: RawTrace): unknown;
370
+ fromPartial(object: DeepPartial<RawTrace>): RawTrace;
371
+ };
372
+ export declare const RawTransaction: {
373
+ encode(message: RawTransaction, writer?: _m0.Writer): _m0.Writer;
374
+ decode(input: _m0.Reader | Uint8Array, length?: number): RawTransaction;
375
+ fromJSON(object: any): RawTransaction;
376
+ toJSON(message: RawTransaction): unknown;
377
+ fromPartial(object: DeepPartial<RawTransaction>): RawTransaction;
320
378
  };
321
379
  export declare const Instruction: {
322
380
  encode(message: Instruction, writer?: _m0.Writer): _m0.Writer;
@@ -332,19 +390,19 @@ export declare const BlockBinding: {
332
390
  toJSON(message: BlockBinding): unknown;
333
391
  fromPartial(object: DeepPartial<BlockBinding>): BlockBinding;
334
392
  };
335
- export declare const Block: {
336
- encode(message: Block, writer?: _m0.Writer): _m0.Writer;
337
- decode(input: _m0.Reader | Uint8Array, length?: number): Block;
338
- fromJSON(object: any): Block;
339
- toJSON(message: Block): unknown;
340
- fromPartial(object: DeepPartial<Block>): Block;
393
+ export declare const RawBlock: {
394
+ encode(message: RawBlock, writer?: _m0.Writer): _m0.Writer;
395
+ decode(input: _m0.Reader | Uint8Array, length?: number): RawBlock;
396
+ fromJSON(object: any): RawBlock;
397
+ toJSON(message: RawBlock): unknown;
398
+ fromPartial(object: DeepPartial<RawBlock>): RawBlock;
341
399
  };
342
- export declare const O11yResult: {
343
- encode(message: O11yResult, writer?: _m0.Writer): _m0.Writer;
344
- decode(input: _m0.Reader | Uint8Array, length?: number): O11yResult;
345
- fromJSON(object: any): O11yResult;
346
- toJSON(message: O11yResult): unknown;
347
- fromPartial(object: DeepPartial<O11yResult>): O11yResult;
400
+ export declare const ProcessResult: {
401
+ encode(message: ProcessResult, writer?: _m0.Writer): _m0.Writer;
402
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProcessResult;
403
+ fromJSON(object: any): ProcessResult;
404
+ toJSON(message: ProcessResult): unknown;
405
+ fromPartial(object: DeepPartial<ProcessResult>): ProcessResult;
348
406
  };
349
407
  export declare const RecordMetaData: {
350
408
  encode(message: RecordMetaData, writer?: _m0.Writer): _m0.Writer;
@@ -395,6 +453,13 @@ export declare const CounterResult: {
395
453
  toJSON(message: CounterResult): unknown;
396
454
  fromPartial(object: DeepPartial<CounterResult>): CounterResult;
397
455
  };
456
+ export declare const LogResult: {
457
+ encode(message: LogResult, writer?: _m0.Writer): _m0.Writer;
458
+ decode(input: _m0.Reader | Uint8Array, length?: number): LogResult;
459
+ fromJSON(object: any): LogResult;
460
+ toJSON(message: LogResult): unknown;
461
+ fromPartial(object: DeepPartial<LogResult>): LogResult;
462
+ };
398
463
  export declare type ProcessorDefinition = typeof ProcessorDefinition;
399
464
  export declare const ProcessorDefinition: {
400
465
  readonly name: "Processor";
@@ -480,6 +545,26 @@ export declare const ProcessorDefinition: {
480
545
  readonly responseStream: false;
481
546
  readonly options: {};
482
547
  };
548
+ readonly processTraces: {
549
+ readonly name: "ProcessTraces";
550
+ readonly requestType: {
551
+ encode(message: ProcessTracesRequest, writer?: _m0.Writer): _m0.Writer;
552
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProcessTracesRequest;
553
+ fromJSON(object: any): ProcessTracesRequest;
554
+ toJSON(message: ProcessTracesRequest): unknown;
555
+ fromPartial(object: DeepPartial<ProcessTracesRequest>): ProcessTracesRequest;
556
+ };
557
+ readonly requestStream: false;
558
+ readonly responseType: {
559
+ encode(message: ProcessTracesResponse, writer?: _m0.Writer): _m0.Writer;
560
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProcessTracesResponse;
561
+ fromJSON(object: any): ProcessTracesResponse;
562
+ toJSON(message: ProcessTracesResponse): unknown;
563
+ fromPartial(object: DeepPartial<ProcessTracesResponse>): ProcessTracesResponse;
564
+ };
565
+ readonly responseStream: false;
566
+ readonly options: {};
567
+ };
483
568
  readonly processTransactions: {
484
569
  readonly name: "ProcessTransactions";
485
570
  readonly requestType: {
@@ -547,6 +632,7 @@ export interface ProcessorServiceImplementation<CallContextExt = {}> {
547
632
  stop(request: Empty, context: CallContext & CallContextExt): Promise<DeepPartial<Empty>>;
548
633
  getConfig(request: ProcessConfigRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ProcessConfigResponse>>;
549
634
  processLogs(request: ProcessLogsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ProcessLogsResponse>>;
635
+ processTraces(request: ProcessTracesRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ProcessTracesResponse>>;
550
636
  processTransactions(request: ProcessTransactionsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ProcessTransactionsResponse>>;
551
637
  processBlocks(request: ProcessBlocksRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ProcessBlocksResponse>>;
552
638
  processInstructions(request: ProcessInstructionsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ProcessInstructionsResponse>>;
@@ -556,6 +642,7 @@ export interface ProcessorClient<CallOptionsExt = {}> {
556
642
  stop(request: DeepPartial<Empty>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
557
643
  getConfig(request: DeepPartial<ProcessConfigRequest>, options?: CallOptions & CallOptionsExt): Promise<ProcessConfigResponse>;
558
644
  processLogs(request: DeepPartial<ProcessLogsRequest>, options?: CallOptions & CallOptionsExt): Promise<ProcessLogsResponse>;
645
+ processTraces(request: DeepPartial<ProcessTracesRequest>, options?: CallOptions & CallOptionsExt): Promise<ProcessTracesResponse>;
559
646
  processTransactions(request: DeepPartial<ProcessTransactionsRequest>, options?: CallOptions & CallOptionsExt): Promise<ProcessTransactionsResponse>;
560
647
  processBlocks(request: DeepPartial<ProcessBlocksRequest>, options?: CallOptions & CallOptionsExt): Promise<ProcessBlocksResponse>;
561
648
  processInstructions(request: DeepPartial<ProcessInstructionsRequest>, options?: CallOptions & CallOptionsExt): Promise<ProcessInstructionsResponse>;