@sentio/runtime 1.37.0-rc.6 → 1.37.0-rc.7

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 (54) hide show
  1. package/lib/chain-config.d.ts +6 -0
  2. package/lib/chain-config.js +3 -0
  3. package/lib/chain-config.js.map +1 -0
  4. package/lib/endpoints.d.ts +8 -0
  5. package/lib/endpoints.js +15 -0
  6. package/lib/endpoints.js.map +1 -0
  7. package/lib/full-service.d.ts +276 -0
  8. package/lib/full-service.js +47 -0
  9. package/lib/full-service.js.map +1 -0
  10. package/lib/gen/{src/google → google}/protobuf/timestamp.d.ts +1 -1
  11. package/lib/gen/{src/google → google}/protobuf/timestamp.js +4 -4
  12. package/lib/gen/google/protobuf/timestamp.js.map +1 -0
  13. package/lib/index.d.ts +7 -0
  14. package/lib/index.js +24 -0
  15. package/lib/index.js.map +1 -0
  16. package/lib/loader.d.ts +5 -0
  17. package/lib/loader.js +30 -0
  18. package/lib/loader.js.map +1 -0
  19. package/lib/plugin.d.ts +19 -0
  20. package/lib/plugin.js +50 -0
  21. package/lib/plugin.js.map +1 -0
  22. package/lib/processor-runner.d.ts +2 -0
  23. package/lib/processor-runner.js +104 -0
  24. package/lib/processor-runner.js.map +1 -0
  25. package/lib/provider.d.ts +6 -0
  26. package/lib/provider.js +67 -0
  27. package/lib/provider.js.map +1 -0
  28. package/lib/service.d.ts +20 -0
  29. package/lib/service.js +120 -0
  30. package/lib/service.js.map +1 -0
  31. package/lib/service.test.d.ts +2 -0
  32. package/lib/service.test.js.map +1 -0
  33. package/lib/state-storage.test.d.ts +1 -0
  34. package/lib/state-storage.test.js.map +1 -0
  35. package/lib/state.d.ts +22 -0
  36. package/lib/state.js +68 -0
  37. package/lib/state.js.map +1 -0
  38. package/lib/utils.d.ts +4 -0
  39. package/lib/utils.js +22 -0
  40. package/lib/utils.js.map +1 -0
  41. package/package.json +4 -5
  42. package/src/chain-config.ts +6 -0
  43. package/src/endpoints.ts +14 -0
  44. package/src/full-service.ts +61 -0
  45. package/src/gen/{src/google → google}/protobuf/timestamp.ts +45 -40
  46. package/src/index.ts +7 -0
  47. package/src/loader.ts +24 -0
  48. package/src/plugin.ts +53 -0
  49. package/src/processor-runner.ts +97 -0
  50. package/src/provider.ts +75 -0
  51. package/src/service.ts +145 -0
  52. package/src/state.ts +75 -0
  53. package/src/utils.ts +20 -0
  54. package/lib/gen/src/google/protobuf/timestamp.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ export interface ChainConfig {
2
+ ChainID: string;
3
+ Https: string[];
4
+ WebSockets?: string[];
5
+ ChainServer?: string;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=chain-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-config.js","sourceRoot":"","sources":["../src/chain-config.ts"],"names":[],"mappings":"","sourcesContent":["export interface ChainConfig {\n ChainID: string\n Https: string[]\n WebSockets?: string[]\n ChainServer?: string\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { Provider } from '@ethersproject/providers';
2
+ export declare class Endpoints {
3
+ static INSTANCE: Endpoints;
4
+ static reset(): void;
5
+ providers: Map<number, Provider>;
6
+ chainQueryAPI: string;
7
+ priceFeedAPI: string;
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Endpoints = void 0;
4
+ class Endpoints {
5
+ static INSTANCE = new Endpoints();
6
+ static reset() {
7
+ Endpoints.INSTANCE = new Endpoints();
8
+ }
9
+ // evm providers
10
+ providers = new Map();
11
+ chainQueryAPI = '';
12
+ priceFeedAPI = '';
13
+ }
14
+ exports.Endpoints = Endpoints;
15
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,GAAc,IAAI,SAAS,EAAE,CAAA;IAE5C,MAAM,CAAC,KAAK;QACV,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAA;IACtC,CAAC;IACD,gBAAgB;IAChB,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;IAEvC,aAAa,GAAG,EAAE,CAAA;IAClB,YAAY,GAAG,EAAE,CAAA;;AAVnB,8BAWC","sourcesContent":["import { Provider } from '@ethersproject/providers'\n\nexport class Endpoints {\n static INSTANCE: Endpoints = new Endpoints()\n\n static reset() {\n Endpoints.INSTANCE = new Endpoints()\n }\n // evm providers\n providers = new Map<number, Provider>()\n\n chainQueryAPI = ''\n priceFeedAPI = ''\n}\n"]}
@@ -0,0 +1,276 @@
1
+ import { CallContext } from 'nice-grpc';
2
+ import { DataBinding, HandlerType, ProcessBindingsRequest, ProcessConfigRequest, ProcessorServiceImplementation, StartRequest } from './gen/processor/protos/processor';
3
+ import { Empty } from '@sentio/protos/lib/google/protobuf/empty';
4
+ export declare class FullProcessorServiceImpl implements ProcessorServiceImplementation {
5
+ constructor(instance: ProcessorServiceImplementation);
6
+ instance: ProcessorServiceImplementation;
7
+ getConfig(request: ProcessConfigRequest, context: CallContext): Promise<{
8
+ config?: {
9
+ name?: string | undefined;
10
+ version?: string | undefined;
11
+ } | undefined;
12
+ contractConfigs?: {
13
+ contract?: {
14
+ name?: string | undefined;
15
+ chainId?: string | undefined;
16
+ address?: string | undefined;
17
+ abi?: string | undefined;
18
+ } | undefined;
19
+ intervalConfigs?: {
20
+ handlerId?: number | undefined;
21
+ minutes?: number | undefined;
22
+ minutesInterval?: {
23
+ recentInterval?: number | undefined;
24
+ backfillInterval?: number | undefined;
25
+ } | undefined;
26
+ slot?: number | undefined;
27
+ slotInterval?: {
28
+ recentInterval?: number | undefined;
29
+ backfillInterval?: number | undefined;
30
+ } | undefined;
31
+ }[] | undefined;
32
+ logConfigs?: {
33
+ filters?: {
34
+ topics?: {
35
+ hashes?: string[] | undefined;
36
+ }[] | undefined;
37
+ address?: string | undefined;
38
+ addressType?: import("./gen/processor/protos/processor").AddressType | undefined;
39
+ }[] | undefined;
40
+ handlerId?: number | undefined;
41
+ }[] | undefined;
42
+ traceConfigs?: {
43
+ signature?: string | undefined;
44
+ handlerId?: number | undefined;
45
+ }[] | undefined;
46
+ aptosEventConfigs?: {
47
+ filters?: {
48
+ type?: string | undefined;
49
+ account?: string | undefined;
50
+ }[] | undefined;
51
+ handlerId?: number | undefined;
52
+ }[] | undefined;
53
+ aptosCallConfigs?: {
54
+ filters?: {
55
+ function?: string | undefined;
56
+ typeArguments?: string[] | undefined;
57
+ withTypeArguments?: boolean | undefined;
58
+ includeFailed?: boolean | undefined;
59
+ }[] | undefined;
60
+ handlerId?: number | undefined;
61
+ }[] | undefined;
62
+ instructionConfig?: {
63
+ innerInstruction?: boolean | undefined;
64
+ parsedInstruction?: boolean | undefined;
65
+ rawDataInstruction?: boolean | undefined;
66
+ } | undefined;
67
+ startBlock?: bigint | undefined;
68
+ endBlock?: bigint | undefined;
69
+ processorType?: string | undefined;
70
+ }[] | undefined;
71
+ templateInstances?: {
72
+ contract?: {
73
+ name?: string | undefined;
74
+ chainId?: string | undefined;
75
+ address?: string | undefined;
76
+ abi?: string | undefined;
77
+ } | undefined;
78
+ startBlock?: bigint | undefined;
79
+ endBlock?: bigint | undefined;
80
+ templateId?: number | undefined;
81
+ }[] | undefined;
82
+ accountConfigs?: {
83
+ chainId?: string | undefined;
84
+ address?: string | undefined;
85
+ startBlock?: bigint | undefined;
86
+ intervalConfigs?: {
87
+ handlerId?: number | undefined;
88
+ minutes?: number | undefined;
89
+ minutesInterval?: {
90
+ recentInterval?: number | undefined;
91
+ backfillInterval?: number | undefined;
92
+ } | undefined;
93
+ slot?: number | undefined;
94
+ slotInterval?: {
95
+ recentInterval?: number | undefined;
96
+ backfillInterval?: number | undefined;
97
+ } | undefined;
98
+ }[] | undefined;
99
+ aptosIntervalConfigs?: {
100
+ intervalConfig?: {
101
+ handlerId?: number | undefined;
102
+ minutes?: number | undefined;
103
+ minutesInterval?: {
104
+ recentInterval?: number | undefined;
105
+ backfillInterval?: number | undefined;
106
+ } | undefined;
107
+ slot?: number | undefined;
108
+ slotInterval?: {
109
+ recentInterval?: number | undefined;
110
+ backfillInterval?: number | undefined;
111
+ } | undefined;
112
+ } | undefined;
113
+ type?: string | undefined;
114
+ }[] | undefined;
115
+ logConfigs?: {
116
+ filters?: {
117
+ topics?: {
118
+ hashes?: string[] | undefined;
119
+ }[] | undefined;
120
+ address?: string | undefined;
121
+ addressType?: import("./gen/processor/protos/processor").AddressType | undefined;
122
+ }[] | undefined;
123
+ handlerId?: number | undefined;
124
+ }[] | undefined;
125
+ }[] | undefined;
126
+ metricConfigs?: {
127
+ name?: string | undefined;
128
+ description?: string | undefined;
129
+ unit?: string | undefined;
130
+ sparse?: boolean | undefined;
131
+ type?: import("./gen/processor/protos/processor").MetricType | undefined;
132
+ aggregationConfig?: {
133
+ intervalInMinutes?: number[] | undefined;
134
+ types?: import("./gen/processor/protos/processor").AggregationType[] | undefined;
135
+ discardOrigin?: boolean | undefined;
136
+ } | undefined;
137
+ }[] | undefined;
138
+ eventTrackingConfigs?: {
139
+ eventName?: string | undefined;
140
+ totalByDay?: boolean | undefined;
141
+ unique?: boolean | undefined;
142
+ totalPerEntity?: {} | undefined;
143
+ distinctAggregationByDays?: number[] | undefined;
144
+ retentionConfig?: {
145
+ retentionEventName?: string | undefined;
146
+ days?: number | undefined;
147
+ } | undefined;
148
+ }[] | undefined;
149
+ exportConfigs?: {
150
+ name?: string | undefined;
151
+ channel?: string | undefined;
152
+ }[] | undefined;
153
+ }>;
154
+ start(request: StartRequest, context: CallContext): Promise<{}>;
155
+ stop(request: Empty, context: CallContext): Promise<{}>;
156
+ processBindings(request: ProcessBindingsRequest, options: CallContext): Promise<{
157
+ result?: {
158
+ gauges?: {
159
+ metadata?: {
160
+ address?: string | undefined;
161
+ contractName?: string | undefined;
162
+ blockNumber?: bigint | undefined;
163
+ transactionHash?: string | undefined;
164
+ chainId?: string | undefined;
165
+ transactionIndex?: number | undefined;
166
+ logIndex?: number | undefined;
167
+ name?: string | undefined;
168
+ labels?: {
169
+ [x: string]: string | undefined;
170
+ } | undefined;
171
+ } | undefined;
172
+ metricValue?: {
173
+ bigDecimal?: string | undefined;
174
+ doubleValue?: number | undefined;
175
+ bigInteger?: {
176
+ negative?: boolean | undefined;
177
+ data?: Uint8Array | undefined;
178
+ } | undefined;
179
+ } | undefined;
180
+ runtimeInfo?: {
181
+ from?: HandlerType | undefined;
182
+ } | undefined;
183
+ }[] | undefined;
184
+ counters?: {
185
+ metadata?: {
186
+ address?: string | undefined;
187
+ contractName?: string | undefined;
188
+ blockNumber?: bigint | undefined;
189
+ transactionHash?: string | undefined;
190
+ chainId?: string | undefined;
191
+ transactionIndex?: number | undefined;
192
+ logIndex?: number | undefined;
193
+ name?: string | undefined;
194
+ labels?: {
195
+ [x: string]: string | undefined;
196
+ } | undefined;
197
+ } | undefined;
198
+ metricValue?: {
199
+ bigDecimal?: string | undefined;
200
+ doubleValue?: number | undefined;
201
+ bigInteger?: {
202
+ negative?: boolean | undefined;
203
+ data?: Uint8Array | undefined;
204
+ } | undefined;
205
+ } | undefined;
206
+ add?: boolean | undefined;
207
+ runtimeInfo?: {
208
+ from?: HandlerType | undefined;
209
+ } | undefined;
210
+ }[] | undefined;
211
+ logs?: {
212
+ metadata?: {
213
+ address?: string | undefined;
214
+ contractName?: string | undefined;
215
+ blockNumber?: bigint | undefined;
216
+ transactionHash?: string | undefined;
217
+ chainId?: string | undefined;
218
+ transactionIndex?: number | undefined;
219
+ logIndex?: number | undefined;
220
+ name?: string | undefined;
221
+ labels?: {
222
+ [x: string]: string | undefined;
223
+ } | undefined;
224
+ } | undefined;
225
+ level?: import("./gen/processor/protos/processor").LogLevel | undefined;
226
+ message?: string | undefined;
227
+ attributes?: string | undefined;
228
+ runtimeInfo?: {
229
+ from?: HandlerType | undefined;
230
+ } | undefined;
231
+ }[] | undefined;
232
+ events?: {
233
+ metadata?: {
234
+ address?: string | undefined;
235
+ contractName?: string | undefined;
236
+ blockNumber?: bigint | undefined;
237
+ transactionHash?: string | undefined;
238
+ chainId?: string | undefined;
239
+ transactionIndex?: number | undefined;
240
+ logIndex?: number | undefined;
241
+ name?: string | undefined;
242
+ labels?: {
243
+ [x: string]: string | undefined;
244
+ } | undefined;
245
+ } | undefined;
246
+ distinctEntityId?: string | undefined;
247
+ attributes?: string | undefined;
248
+ runtimeInfo?: {
249
+ from?: HandlerType | undefined;
250
+ } | undefined;
251
+ }[] | undefined;
252
+ exports?: {
253
+ metadata?: {
254
+ address?: string | undefined;
255
+ contractName?: string | undefined;
256
+ blockNumber?: bigint | undefined;
257
+ transactionHash?: string | undefined;
258
+ chainId?: string | undefined;
259
+ transactionIndex?: number | undefined;
260
+ logIndex?: number | undefined;
261
+ name?: string | undefined;
262
+ labels?: {
263
+ [x: string]: string | undefined;
264
+ } | undefined;
265
+ } | undefined;
266
+ payload?: string | undefined;
267
+ runtimeInfo?: {
268
+ from?: HandlerType | undefined;
269
+ } | undefined;
270
+ }[] | undefined;
271
+ } | undefined;
272
+ configUpdated?: boolean | undefined;
273
+ }>;
274
+ processBindingsStream(requests: AsyncIterable<DataBinding>, context: CallContext): AsyncGenerator<never, void, unknown>;
275
+ protected adjustDataBinding(dataBinding: DataBinding): void;
276
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FullProcessorServiceImpl = void 0;
4
+ // Different than the simple one which
5
+ const processor_1 = require("./gen/processor/protos/processor");
6
+ class FullProcessorServiceImpl {
7
+ constructor(instance) {
8
+ this.instance = instance;
9
+ }
10
+ instance;
11
+ async getConfig(request, context) {
12
+ return this.instance.getConfig(request, context);
13
+ }
14
+ async start(request, context) {
15
+ return this.instance.start(request, context);
16
+ }
17
+ async stop(request, context) {
18
+ return this.instance.stop(request, context);
19
+ }
20
+ async processBindings(request, options) {
21
+ for (const binding of request.bindings) {
22
+ this.adjustDataBinding(binding);
23
+ }
24
+ return this.instance.processBindings(request, options);
25
+ }
26
+ async *processBindingsStream(requests, context) {
27
+ throw new Error('Not Implemented for streaming');
28
+ // y this.instance.processBindingsStream(requests, context)
29
+ }
30
+ adjustDataBinding(dataBinding) {
31
+ switch (dataBinding.handlerType) {
32
+ case processor_1.HandlerType.UNKNOWN:
33
+ if (dataBinding.data?.ethBlock) {
34
+ if (dataBinding.data.raw.length === 0) {
35
+ // This is actually not needed in current system, just as initla test propose, move to test only
36
+ // when this is stable
37
+ dataBinding.data.raw = new TextEncoder().encode(JSON.stringify(dataBinding.data.ethBlock.block));
38
+ }
39
+ }
40
+ break;
41
+ default:
42
+ break;
43
+ }
44
+ }
45
+ }
46
+ exports.FullProcessorServiceImpl = FullProcessorServiceImpl;
47
+ //# sourceMappingURL=full-service.js.map
@@ -0,0 +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,4 +1,4 @@
1
- import _m0 from "protobufjs/minimal";
1
+ import _m0 from 'protobufjs/minimal';
2
2
  export interface Timestamp {
3
3
  seconds: bigint;
4
4
  nanos: number;
@@ -8,11 +8,11 @@ exports.Timestamp = void 0;
8
8
  const long_1 = __importDefault(require("long"));
9
9
  const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
10
  function createBaseTimestamp() {
11
- return { seconds: BigInt("0"), nanos: 0 };
11
+ return { seconds: BigInt('0'), nanos: 0 };
12
12
  }
13
13
  exports.Timestamp = {
14
14
  encode(message, writer = minimal_1.default.Writer.create()) {
15
- if (message.seconds !== BigInt("0")) {
15
+ if (message.seconds !== BigInt('0')) {
16
16
  writer.uint32(8).int64(message.seconds.toString());
17
17
  }
18
18
  if (message.nanos !== 0) {
@@ -42,7 +42,7 @@ exports.Timestamp = {
42
42
  },
43
43
  fromJSON(object) {
44
44
  return {
45
- seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt("0"),
45
+ seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt('0'),
46
46
  nanos: isSet(object.nanos) ? Number(object.nanos) : 0,
47
47
  };
48
48
  },
@@ -54,7 +54,7 @@ exports.Timestamp = {
54
54
  },
55
55
  fromPartial(object) {
56
56
  const message = createBaseTimestamp();
57
- message.seconds = object.seconds ?? BigInt("0");
57
+ message.seconds = object.seconds ?? BigInt('0');
58
58
  message.nanos = object.nanos ?? 0;
59
59
  return message;
60
60
  },
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../../../src/gen/google/protobuf/timestamp.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\nimport Long from 'long'\nimport _m0 from 'protobufjs/minimal'\n\nexport interface Timestamp {\n seconds: bigint\n nanos: number\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: BigInt('0'), nanos: 0 }\n}\n\nexport const Timestamp = {\n encode(message: Timestamp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.seconds !== BigInt('0')) {\n writer.uint32(8).int64(message.seconds.toString())\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos)\n }\n return writer\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input)\n let end = length === undefined ? reader.len : reader.pos + length\n const message = createBaseTimestamp()\n while (reader.pos < end) {\n const tag = reader.uint32()\n switch (tag >>> 3) {\n case 1:\n message.seconds = longToBigint(reader.int64() as Long)\n break\n case 2:\n message.nanos = reader.int32()\n break\n default:\n reader.skipType(tag & 7)\n break\n }\n }\n return message\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt('0'),\n nanos: isSet(object.nanos) ? Number(object.nanos) : 0,\n }\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {}\n message.seconds !== undefined && (obj.seconds = message.seconds.toString())\n message.nanos !== undefined && (obj.nanos = Math.round(message.nanos))\n return obj\n },\n\n fromPartial(object: DeepPartial<Timestamp>): Timestamp {\n const message = createBaseTimestamp()\n message.seconds = object.seconds ?? BigInt('0')\n message.nanos = object.nanos ?? 0\n return message\n },\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined\n\ntype DeepPartial<T> = T extends Builtin\n ? T\n : T extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U>\n ? ReadonlyArray<DeepPartial<U>>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>\n\nfunction longToBigint(long: Long) {\n return BigInt(long.toString())\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any\n _m0.configure()\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined\n}\n"]}
package/lib/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './provider';
2
+ export * from './plugin';
3
+ export * from './state';
4
+ export * from './utils';
5
+ export * from './endpoints';
6
+ export * from './chain-config';
7
+ export * from './service';
package/lib/index.js ADDED
@@ -0,0 +1,24 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./provider"), exports);
18
+ __exportStar(require("./plugin"), exports);
19
+ __exportStar(require("./state"), exports);
20
+ __exportStar(require("./utils"), exports);
21
+ __exportStar(require("./endpoints"), exports);
22
+ __exportStar(require("./chain-config"), exports);
23
+ __exportStar(require("./service"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,2CAAwB;AACxB,0CAAuB;AACvB,0CAAuB;AACvB,8CAA2B;AAC3B,iDAA8B;AAC9B,4CAAyB","sourcesContent":["export * from './provider'\nexport * from './plugin'\nexport * from './state'\nexport * from './utils'\nexport * from './endpoints'\nexport * from './chain-config'\nexport * from './service'\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function load(name: string): {
2
+ module: any;
3
+ name: string;
4
+ path: string;
5
+ } | undefined;
package/lib/loader.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.load = void 0;
4
+ function load(name) {
5
+ const req = eval('require');
6
+ try {
7
+ let path;
8
+ try {
9
+ path = req.resolve(name, { paths: [process.cwd()] });
10
+ }
11
+ catch {
12
+ path = req.resolve(name);
13
+ }
14
+ const module = { module: req(path), name, path };
15
+ console.log('Processor Load successfully');
16
+ return module;
17
+ }
18
+ catch (err) {
19
+ if (err instanceof Error && err.message.startsWith(`Cannot find module '${name}'`)) {
20
+ // this error is expected
21
+ console.log("Couldn't load (expected): ", name);
22
+ return undefined;
23
+ }
24
+ else {
25
+ throw err;
26
+ }
27
+ }
28
+ }
29
+ exports.load = load;
30
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAE3B,IAAI;QACF,IAAI,IAAY,CAAA;QAChB,IAAI;YACF,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;SACrD;QAAC,MAAM;YACN,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACzB;QAED,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC1C,OAAO,MAAM,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,IAAI,GAAG,CAAC,EAAE;YAClF,yBAAyB;YACzB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;YAC/C,OAAO,SAAS,CAAA;SACjB;aAAM;YACL,MAAM,GAAG,CAAA;SACV;KACF;AACH,CAAC;AAvBD,oBAuBC","sourcesContent":["export function load(name: string): { module: any; name: string; path: string } | undefined {\n const req = eval('require')\n\n try {\n let path: string\n try {\n path = req.resolve(name, { paths: [process.cwd()] })\n } catch {\n path = req.resolve(name)\n }\n\n const module = { module: req(path), name, path }\n console.log('Processor Load successfully')\n return module\n } catch (err) {\n if (err instanceof Error && err.message.startsWith(`Cannot find module '${name}'`)) {\n // this error is expected\n console.log(\"Couldn't load (expected): \", name)\n return undefined\n } else {\n throw err\n }\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import { DataBinding, HandlerType, ProcessConfigResponse, ProcessResult, StartRequest } from '@sentio/protos';
2
+ export declare abstract class Plugin {
3
+ name: string;
4
+ supportedHandlers: HandlerType[];
5
+ configure(config: ProcessConfigResponse): void;
6
+ start(start: StartRequest): void;
7
+ stateDiff(config: ProcessConfigResponse): boolean;
8
+ processBinding(request: DataBinding): Promise<ProcessResult>;
9
+ }
10
+ export declare class PluginManager {
11
+ static INSTANCE: PluginManager;
12
+ plugins: Plugin[];
13
+ typesToPlugin: Map<HandlerType, Plugin>;
14
+ register(plugin: Plugin): void;
15
+ configure(config: ProcessConfigResponse): void;
16
+ start(start: StartRequest): void;
17
+ stateDiff(config: ProcessConfigResponse): boolean;
18
+ processBinding(request: DataBinding): Promise<ProcessResult>;
19
+ }
package/lib/plugin.js ADDED
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PluginManager = exports.Plugin = void 0;
4
+ const protos_1 = require("@sentio/protos");
5
+ class Plugin {
6
+ name;
7
+ supportedHandlers = [];
8
+ configure(config) { }
9
+ start(start) { }
10
+ stateDiff(config) {
11
+ return false;
12
+ }
13
+ async processBinding(request) {
14
+ return protos_1.ProcessResult.fromPartial({});
15
+ }
16
+ }
17
+ exports.Plugin = Plugin;
18
+ class PluginManager {
19
+ static INSTANCE = new PluginManager();
20
+ plugins = [];
21
+ typesToPlugin = new Map();
22
+ register(plugin) {
23
+ this.plugins.push(plugin);
24
+ for (const handlerType of plugin.supportedHandlers) {
25
+ const exsited = this.typesToPlugin.get(handlerType);
26
+ if (exsited) {
27
+ throw new Error(`Duplicate plugin for ${handlerType}: ${exsited.name} and ${plugin.name}`);
28
+ }
29
+ this.typesToPlugin.set(handlerType, plugin);
30
+ }
31
+ }
32
+ configure(config) {
33
+ this.plugins.forEach((plugin) => plugin.configure(config));
34
+ }
35
+ start(start) {
36
+ this.plugins.forEach((plugin) => plugin.start(start));
37
+ }
38
+ stateDiff(config) {
39
+ return this.plugins.some((plugin) => plugin.stateDiff(config));
40
+ }
41
+ processBinding(request) {
42
+ const plugin = this.typesToPlugin.get(request.handlerType);
43
+ if (!plugin) {
44
+ throw new Error(`No plugin for ${request.handlerType}`);
45
+ }
46
+ return plugin.processBinding(request);
47
+ }
48
+ }
49
+ exports.PluginManager = PluginManager;
50
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;AAAA,2CAA6G;AAE7G,MAAsB,MAAM;IAC1B,IAAI,CAAQ;IACZ,iBAAiB,GAAkB,EAAE,CAAA;IAErC,SAAS,CAAC,MAA6B,IAAG,CAAC;IAC3C,KAAK,CAAC,KAAmB,IAAG,CAAC;IAC7B,SAAS,CAAC,MAA6B;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,OAAoB;QACvC,OAAO,sBAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;CACF;AAZD,wBAYC;AAED,MAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;IAErC,OAAO,GAAa,EAAE,CAAA;IACtB,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAA;IAE9C,QAAQ,CAAC,MAAc;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,iBAAiB,EAAE;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACnD,IAAI,OAAO,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,KAAK,OAAO,CAAC,IAAI,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;aAC3F;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;SAC5C;IACH,CAAC;IAED,SAAS,CAAC,MAA6B;QACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,KAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,SAAS,CAAC,MAA6B;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,cAAc,CAAC,OAAoB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;SACxD;QACD,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;;AAnCH,sCAoCC","sourcesContent":["import { DataBinding, HandlerType, ProcessConfigResponse, ProcessResult, StartRequest } from '@sentio/protos'\n\nexport abstract class Plugin {\n name: string\n supportedHandlers: HandlerType[] = []\n\n configure(config: ProcessConfigResponse) {}\n start(start: StartRequest) {}\n stateDiff(config: ProcessConfigResponse): boolean {\n return false\n }\n async processBinding(request: DataBinding): Promise<ProcessResult> {\n return ProcessResult.fromPartial({})\n }\n}\n\nexport class PluginManager {\n static INSTANCE = new PluginManager()\n\n plugins: Plugin[] = []\n typesToPlugin = new Map<HandlerType, Plugin>()\n\n register(plugin: Plugin) {\n this.plugins.push(plugin)\n for (const handlerType of plugin.supportedHandlers) {\n const exsited = this.typesToPlugin.get(handlerType)\n if (exsited) {\n throw new Error(`Duplicate plugin for ${handlerType}: ${exsited.name} and ${plugin.name}`)\n }\n this.typesToPlugin.set(handlerType, plugin)\n }\n }\n\n configure(config: ProcessConfigResponse) {\n this.plugins.forEach((plugin) => plugin.configure(config))\n }\n\n start(start: StartRequest) {\n this.plugins.forEach((plugin) => plugin.start(start))\n }\n\n stateDiff(config: ProcessConfigResponse): boolean {\n return this.plugins.some((plugin) => plugin.stateDiff(config))\n }\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n const plugin = this.typesToPlugin.get(request.handlerType)\n if (!plugin) {\n throw new Error(`No plugin for ${request.handlerType}`)\n }\n return plugin.processBinding(request)\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};