@sentio/sdk 1.33.1 → 1.33.2
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.
- package/lib/core/meter.d.ts +2 -8
- package/lib/core/meter.js +15 -18
- package/lib/core/meter.js.map +1 -1
- package/lib/core/numberish.js +10 -2
- package/lib/core/numberish.js.map +1 -1
- package/lib/gen/chainquery/protos/chainquery.d.ts +25 -2
- package/lib/gen/chainquery/protos/chainquery.js +49 -9
- package/lib/gen/chainquery/protos/chainquery.js.map +1 -1
- package/lib/gen/processor/protos/processor.d.ts +10 -0
- package/lib/gen/processor/protos/processor.js +57 -2
- package/lib/gen/processor/protos/processor.js.map +1 -1
- package/lib/service.js +1 -1
- package/lib/service.js.map +1 -1
- package/lib/utils/chain.js +1 -0
- package/lib/utils/chain.js.map +1 -1
- package/package.json +1 -1
- package/src/core/meter.ts +16 -18
- package/src/core/numberish.ts +11 -2
- package/src/gen/chainquery/protos/chainquery.ts +60 -11
- package/src/gen/processor/protos/processor.ts +56 -0
- package/src/service.ts +1 -2
- package/src/utils/chain.ts +1 -0
package/lib/core/meter.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseContext } from './base-context';
|
|
2
2
|
import { Numberish } from './numberish';
|
|
3
3
|
import { Labels, NamedResultDescriptor } from './metadata';
|
|
4
|
-
import { AggregationConfig, MetricConfig } from '../gen';
|
|
4
|
+
import { AggregationConfig, MetricConfig, MetricType } from '../gen';
|
|
5
5
|
import { MapStateStorage } from '../state/state-storage';
|
|
6
6
|
export declare function normalizeName(name: string): string;
|
|
7
7
|
export declare function normalizeKey(name: string): string;
|
|
@@ -18,13 +18,8 @@ export declare class CounterOptions {
|
|
|
18
18
|
description?: string;
|
|
19
19
|
sparse?: boolean;
|
|
20
20
|
}
|
|
21
|
-
declare enum MetricType {
|
|
22
|
-
Counter = 0,
|
|
23
|
-
Gauge = 1
|
|
24
|
-
}
|
|
25
21
|
export declare class Metric extends NamedResultDescriptor {
|
|
26
|
-
|
|
27
|
-
descriptor: MetricConfig;
|
|
22
|
+
config: MetricConfig;
|
|
28
23
|
constructor(type: MetricType, name: string, option?: MetricOptions);
|
|
29
24
|
}
|
|
30
25
|
export declare class MetricState extends MapStateStorage<Metric> {
|
|
@@ -62,4 +57,3 @@ export declare class Meter {
|
|
|
62
57
|
Counter(name: string): CounterBinding;
|
|
63
58
|
Gauge(name: string): GaugeBinding;
|
|
64
59
|
}
|
|
65
|
-
export {};
|
package/lib/core/meter.js
CHANGED
|
@@ -42,19 +42,16 @@ class CounterOptions {
|
|
|
42
42
|
sparse;
|
|
43
43
|
}
|
|
44
44
|
exports.CounterOptions = CounterOptions;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
})(MetricType || (MetricType = {}));
|
|
45
|
+
// enum MetricType {
|
|
46
|
+
// Counter = 0,
|
|
47
|
+
// Gauge = 1,
|
|
48
|
+
// }
|
|
50
49
|
class Metric extends metadata_1.NamedResultDescriptor {
|
|
51
|
-
|
|
52
|
-
descriptor;
|
|
50
|
+
config;
|
|
53
51
|
constructor(type, name, option) {
|
|
54
52
|
super(name);
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
const aggregationConfig = this.descriptor.aggregationConfig;
|
|
53
|
+
this.config = gen_1.MetricConfig.fromPartial({ name: this.name, type: type, ...option });
|
|
54
|
+
const aggregationConfig = this.config.aggregationConfig;
|
|
58
55
|
if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {
|
|
59
56
|
if (aggregationConfig.intervalInMinutes.length > 1) {
|
|
60
57
|
console.error('current only support one intervalInMinutes, only first interval will be used for', name);
|
|
@@ -71,11 +68,11 @@ class MetricState extends state_storage_1.MapStateStorage {
|
|
|
71
68
|
getOrRegisterMetric(type, name, option) {
|
|
72
69
|
const metricMap = this.getOrRegister();
|
|
73
70
|
let metric = metricMap.get(name);
|
|
74
|
-
if (metric && metric.type !== type) {
|
|
75
|
-
throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.type}`);
|
|
71
|
+
if (metric && metric.config.type !== type) {
|
|
72
|
+
throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.config.type}`);
|
|
76
73
|
}
|
|
77
74
|
if (!metric) {
|
|
78
|
-
if (type === MetricType.
|
|
75
|
+
if (type === gen_1.MetricType.COUNTER) {
|
|
79
76
|
metric = new Counter(name, option);
|
|
80
77
|
}
|
|
81
78
|
else {
|
|
@@ -89,10 +86,10 @@ class MetricState extends state_storage_1.MapStateStorage {
|
|
|
89
86
|
exports.MetricState = MetricState;
|
|
90
87
|
class Counter extends Metric {
|
|
91
88
|
static register(name, option) {
|
|
92
|
-
return MetricState.INSTANCE.getOrRegisterMetric(MetricType.
|
|
89
|
+
return MetricState.INSTANCE.getOrRegisterMetric(gen_1.MetricType.COUNTER, name, option);
|
|
93
90
|
}
|
|
94
91
|
constructor(name, option) {
|
|
95
|
-
super(MetricType.
|
|
92
|
+
super(gen_1.MetricType.COUNTER, name, option);
|
|
96
93
|
}
|
|
97
94
|
add(ctx, value, labels = {}) {
|
|
98
95
|
this.record(ctx, value, labels, true);
|
|
@@ -127,14 +124,14 @@ class CounterBinding {
|
|
|
127
124
|
exports.CounterBinding = CounterBinding;
|
|
128
125
|
class Gauge extends Metric {
|
|
129
126
|
static register(name, option) {
|
|
130
|
-
return MetricState.INSTANCE.getOrRegisterMetric(MetricType.
|
|
127
|
+
return MetricState.INSTANCE.getOrRegisterMetric(gen_1.MetricType.GAUGE, name, option);
|
|
131
128
|
}
|
|
132
129
|
constructor(name, option) {
|
|
133
|
-
super(MetricType.
|
|
130
|
+
super(gen_1.MetricType.GAUGE, name, option);
|
|
134
131
|
}
|
|
135
132
|
record(ctx, value, labels = {}) {
|
|
136
133
|
ctx.res.gauges.push({
|
|
137
|
-
metadata: ctx.getMetaData(this.
|
|
134
|
+
metadata: ctx.getMetaData(this.config.name, labels),
|
|
138
135
|
metricValue: (0, numberish_1.toMetricValue)(value),
|
|
139
136
|
runtimeInfo: undefined,
|
|
140
137
|
});
|
package/lib/core/meter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/core/meter.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseContext } from './base-context'\nimport { Numberish, toMetricValue } from './numberish'\nimport { Labels, NamedResultDescriptor } from './metadata'\nimport { AggregationConfig, AggregationType, MetricConfig } from '../gen'\nimport { MapStateStorage } from '../state/state-storage'\n\nexport function normalizeName(name: string): string {\n const regex = new RegExp('![_.a-zA-Z0-9]')\n return name.slice(0, 100).replace(regex, '_')\n}\n\nexport function normalizeKey(name: string): string {\n if (name === 'labels') {\n return 'labels_'\n }\n return normalizeName(name)\n}\n\nexport function normalizeValue(name: string): string {\n return name.slice(0, 100)\n}\n\nexport function normalizeLabels(labels: Labels): Labels {\n const normLabels: Labels = {}\n for (const key in labels) {\n normLabels[normalizeKey(key)] = normalizeValue(labels[key])\n }\n return normLabels\n}\n\nexport class MetricOptions {\n unit?: string\n description?: string\n sparse?: boolean\n aggregationConfig?: Partial<AggregationConfig>\n}\n\nexport class CounterOptions {\n unit?: string\n description?: string\n sparse?: boolean\n}\n\nenum MetricType {\n Counter = 0,\n Gauge = 1,\n}\n\nexport class Metric extends NamedResultDescriptor {\n type: MetricType\n descriptor: MetricConfig\n constructor(type: MetricType, name: string, option?: MetricOptions) {\n super(name)\n this.type = type\n this.descriptor = MetricConfig.fromPartial({ name: this.name, ...option })\n const aggregationConfig = this.descriptor.aggregationConfig\n if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {\n if (aggregationConfig.intervalInMinutes.length > 1) {\n console.error('current only support one intervalInMinutes, only first interval will be used for', name)\n }\n if (aggregationConfig.intervalInMinutes[0] > 0 && aggregationConfig.types.length === 0) {\n aggregationConfig.types = [AggregationType.SUM, AggregationType.COUNT]\n }\n }\n }\n}\n\nexport class MetricState extends MapStateStorage<Metric> {\n static INSTANCE = new MetricState()\n\n getOrRegisterMetric(type: MetricType, name: string, option?: CounterOptions | MetricOptions): Metric {\n const metricMap = this.getOrRegister()\n let metric = metricMap.get(name)\n if (metric && metric.type !== type) {\n throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.type}`)\n }\n\n if (!metric) {\n if (type === MetricType.Counter) {\n metric = new Counter(name, option)\n } else {\n metric = new Gauge(name, option)\n }\n }\n metricMap.set(name, metric)\n return metric\n }\n}\n\nexport class Counter extends Metric {\n static register(name: string, option?: CounterOptions): Counter {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.Counter, name, option) as Counter\n }\n\n constructor(name: string, option?: MetricOptions) {\n super(MetricType.Counter, name, option)\n }\n\n add(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, true)\n }\n\n sub(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, false)\n }\n\n private record(ctx: BaseContext, value: Numberish, labels: Labels, add: boolean) {\n ctx.res.counters.push({\n metadata: ctx.getMetaData(this.name, labels),\n metricValue: toMetricValue(value),\n add: add,\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class CounterBinding {\n private readonly ctx: BaseContext\n private readonly counter: Counter\n\n constructor(name: string, ctx: BaseContext) {\n this.counter = new Counter(name)\n this.ctx = ctx\n }\n\n add(value: Numberish, labels: Labels = {}) {\n this.counter.add(this.ctx, value, labels)\n }\n\n sub(value: Numberish, labels: Labels = {}) {\n this.counter.sub(this.ctx, value, labels)\n }\n}\n\nexport class Gauge extends Metric {\n static register(name: string, option?: MetricOptions): Gauge {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.Gauge, name, option) as Gauge\n }\n\n constructor(name: string, option?: MetricOptions) {\n super(MetricType.Counter, name, option)\n }\n\n record(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n ctx.res.gauges.push({\n metadata: ctx.getMetaData(this.descriptor.name, labels),\n metricValue: toMetricValue(value),\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class GaugeBinding {\n private readonly gauge: Gauge\n private readonly ctx: BaseContext\n\n constructor(name: string, ctx: BaseContext) {\n this.gauge = new Gauge(name)\n this.ctx = ctx\n }\n\n record(value: Numberish, labels: Labels = {}) {\n this.gauge.record(this.ctx, value, labels)\n }\n}\n\nexport class Meter {\n private readonly ctx: BaseContext\n\n constructor(ctx: BaseContext) {\n this.ctx = ctx\n }\n\n Counter(name: string): CounterBinding {\n return new CounterBinding(name, this.ctx)\n }\n\n Gauge(name: string): GaugeBinding {\n return new GaugeBinding(name, this.ctx)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/core/meter.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseContext } from './base-context'\nimport { Numberish, toMetricValue } from './numberish'\nimport { Labels, NamedResultDescriptor } from './metadata'\nimport { AggregationConfig, AggregationType, MetricConfig, MetricType } from '../gen'\nimport { MapStateStorage } from '../state/state-storage'\n\nexport function normalizeName(name: string): string {\n const regex = new RegExp('![_.a-zA-Z0-9]')\n return name.slice(0, 100).replace(regex, '_')\n}\n\nexport function normalizeKey(name: string): string {\n if (name === 'labels') {\n return 'labels_'\n }\n return normalizeName(name)\n}\n\nexport function normalizeValue(name: string): string {\n return name.slice(0, 100)\n}\n\nexport function normalizeLabels(labels: Labels): Labels {\n const normLabels: Labels = {}\n for (const key in labels) {\n normLabels[normalizeKey(key)] = normalizeValue(labels[key])\n }\n return normLabels\n}\n\nexport class MetricOptions {\n unit?: string\n description?: string\n sparse?: boolean\n aggregationConfig?: Partial<AggregationConfig>\n}\n\nexport class CounterOptions {\n unit?: string\n description?: string\n sparse?: boolean\n}\n\n// enum MetricType {\n// Counter = 0,\n// Gauge = 1,\n// }\n\nexport class Metric extends NamedResultDescriptor {\n config: MetricConfig\n constructor(type: MetricType, name: string, option?: MetricOptions) {\n super(name)\n this.config = MetricConfig.fromPartial({ name: this.name, type: type, ...option })\n const aggregationConfig = this.config.aggregationConfig\n if (aggregationConfig && aggregationConfig.intervalInMinutes.length) {\n if (aggregationConfig.intervalInMinutes.length > 1) {\n console.error('current only support one intervalInMinutes, only first interval will be used for', name)\n }\n if (aggregationConfig.intervalInMinutes[0] > 0 && aggregationConfig.types.length === 0) {\n aggregationConfig.types = [AggregationType.SUM, AggregationType.COUNT]\n }\n }\n }\n}\n\nexport class MetricState extends MapStateStorage<Metric> {\n static INSTANCE = new MetricState()\n\n getOrRegisterMetric(type: MetricType, name: string, option?: CounterOptions | MetricOptions): Metric {\n const metricMap = this.getOrRegister()\n let metric = metricMap.get(name)\n if (metric && metric.config.type !== type) {\n throw Error(`redefine ${name} of metric type ${type} that is previously ${metric.config.type}`)\n }\n\n if (!metric) {\n if (type === MetricType.COUNTER) {\n metric = new Counter(name, option)\n } else {\n metric = new Gauge(name, option)\n }\n }\n metricMap.set(name, metric)\n return metric\n }\n}\n\nexport class Counter extends Metric {\n static register(name: string, option?: CounterOptions): Counter {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.COUNTER, name, option) as Counter\n }\n\n constructor(name: string, option?: MetricOptions) {\n super(MetricType.COUNTER, name, option)\n }\n\n add(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, true)\n }\n\n sub(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n this.record(ctx, value, labels, false)\n }\n\n private record(ctx: BaseContext, value: Numberish, labels: Labels, add: boolean) {\n ctx.res.counters.push({\n metadata: ctx.getMetaData(this.name, labels),\n metricValue: toMetricValue(value),\n add: add,\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class CounterBinding {\n private readonly ctx: BaseContext\n private readonly counter: Counter\n\n constructor(name: string, ctx: BaseContext) {\n this.counter = new Counter(name)\n this.ctx = ctx\n }\n\n add(value: Numberish, labels: Labels = {}) {\n this.counter.add(this.ctx, value, labels)\n }\n\n sub(value: Numberish, labels: Labels = {}) {\n this.counter.sub(this.ctx, value, labels)\n }\n}\n\nexport class Gauge extends Metric {\n static register(name: string, option?: MetricOptions): Gauge {\n return MetricState.INSTANCE.getOrRegisterMetric(MetricType.GAUGE, name, option) as Gauge\n }\n\n constructor(name: string, option?: MetricOptions) {\n super(MetricType.GAUGE, name, option)\n }\n\n record(ctx: BaseContext, value: Numberish, labels: Labels = {}) {\n ctx.res.gauges.push({\n metadata: ctx.getMetaData(this.config.name, labels),\n metricValue: toMetricValue(value),\n runtimeInfo: undefined,\n })\n }\n}\n\nexport class GaugeBinding {\n private readonly gauge: Gauge\n private readonly ctx: BaseContext\n\n constructor(name: string, ctx: BaseContext) {\n this.gauge = new Gauge(name)\n this.ctx = ctx\n }\n\n record(value: Numberish, labels: Labels = {}) {\n this.gauge.record(this.ctx, value, labels)\n }\n}\n\nexport class Meter {\n private readonly ctx: BaseContext\n\n constructor(ctx: BaseContext) {\n this.ctx = ctx\n }\n\n Counter(name: string): CounterBinding {\n return new CounterBinding(name, this.ctx)\n }\n\n Gauge(name: string): GaugeBinding {\n return new GaugeBinding(name, this.ctx)\n }\n}\n"]}
|
package/lib/core/numberish.js
CHANGED
|
@@ -20,11 +20,11 @@ function toMetricValue(value) {
|
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
22
|
if (value.isNaN()) {
|
|
23
|
-
throw new Error('
|
|
23
|
+
throw new Error('Cannot record NaN value');
|
|
24
24
|
}
|
|
25
25
|
if (!value.isFinite()) {
|
|
26
26
|
// NaN also not finite
|
|
27
|
-
throw new Error('
|
|
27
|
+
throw new Error('Cannot record infinite value');
|
|
28
28
|
}
|
|
29
29
|
return gen_1.MetricValue.fromPartial({
|
|
30
30
|
bigDecimal: value.toString(), // e.g. -7.350918e-428
|
|
@@ -41,6 +41,14 @@ function toMetricValue(value) {
|
|
|
41
41
|
bigInteger: toBigInteger(value),
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
|
+
if (typeof value === 'number') {
|
|
45
|
+
if (Number.isNaN(value)) {
|
|
46
|
+
throw new Error('Cannot record NaN value');
|
|
47
|
+
}
|
|
48
|
+
if (!Number.isFinite(value)) {
|
|
49
|
+
throw new Error('Cannot record infinite value');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
44
52
|
return gen_1.MetricValue.fromPartial({
|
|
45
53
|
doubleValue: Number(value),
|
|
46
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numberish.js","sourceRoot":"","sources":["../../src/core/numberish.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,gCAAgD;AAChD,wBAA8B;AAC9B,kDAA0C;AAI1C,SAAgB,aAAa,CAAC,KAAgB;IAC5C,IAAI,KAAK,YAAY,kBAAS,EAAE;QAC9B,OAAO,iBAAW,CAAC,WAAW,CAAC;YAC7B,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SAC3C,CAAC,CAAA;KACH;IACD,IAAI,KAAK,YAAY,aAAU,EAAE;QAC/B,uCAAuC;QACvC,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO,iBAAW,CAAC,WAAW,CAAC;gBAC7B,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC;aAC1C,CAAC,CAAA;SACH;aAAM;YACL,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"numberish.js","sourceRoot":"","sources":["../../src/core/numberish.ts"],"names":[],"mappings":"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","sourcesContent":["import { BigNumber } from 'ethers'\nimport { BigInteger, MetricValue } from '../gen'\nimport { BigDecimal } from '.'\nimport { BN } from '@project-serum/anchor'\n\nexport type Numberish = number | BigNumber | bigint | BigDecimal\n\nexport function toMetricValue(value: Numberish): MetricValue {\n if (value instanceof BigNumber) {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value.toBigInt()),\n })\n }\n if (value instanceof BigDecimal) {\n // Carefully consider the use case here\n if (value.isInteger()) {\n return MetricValue.fromPartial({\n bigInteger: bigDecimalToBigInteger(value),\n })\n } else {\n if (value.isNaN()) {\n throw new Error('Cannot record NaN value')\n }\n if (!value.isFinite()) {\n // NaN also not finite\n throw new Error('Cannot record infinite value')\n }\n return MetricValue.fromPartial({\n bigDecimal: value.toString(), // e.g. -7.350918e-428\n })\n }\n }\n if (BN.isBN(value)) {\n return MetricValue.fromPartial({\n bigInteger: bnToBigInteger(value),\n })\n }\n if (typeof value === 'bigint' || Number.isInteger(value)) {\n return MetricValue.fromPartial({\n bigInteger: toBigInteger(value),\n })\n }\n\n if (typeof value === 'number') {\n if (Number.isNaN(value)) {\n throw new Error('Cannot record NaN value')\n }\n if (!Number.isFinite(value)) {\n throw new Error('Cannot record infinite value')\n }\n }\n\n return MetricValue.fromPartial({\n doubleValue: Number(value),\n })\n}\n\nfunction bigDecimalToBigInteger(a: BigDecimal): BigInteger {\n const negative = a.isNegative()\n if (negative) {\n a = a.abs()\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nfunction bnToBigInteger(a: BN): BigInteger {\n const negative = a.isNeg()\n if (negative) {\n a = a.abs()\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nfunction intToBigInteger(a: bigint | number): BigInteger {\n const negative = a < 0\n if (negative) {\n a = -a\n }\n return hexToBigInteger(a.toString(16), negative)\n}\n\nexport function toBigInteger(a: Numberish): BigInteger {\n if (a instanceof BigDecimal) {\n return bigDecimalToBigInteger(a)\n }\n if (a instanceof BN) {\n return bnToBigInteger(a)\n }\n if (a instanceof BigNumber) {\n return intToBigInteger(a.toBigInt())\n }\n return intToBigInteger(a)\n\n // Following code is actually very slow\n // while (a > 0) {\n // const d = a & 0xffn\n // a >>= 8n\n // value.push(Number(d))\n // }\n //\n // return {\n // negative, value: new Uint8Array(value.reverse()),\n // }\n}\n\nfunction hexToBigInteger(hex: string, negative: boolean): BigInteger {\n if (hex.length % 2 === 1) {\n hex = '0' + hex\n }\n const buffer = Buffer.from(hex, 'hex')\n\n return {\n negative: negative,\n data: new Uint8Array(buffer),\n }\n}\n"]}
|
|
@@ -56,8 +56,9 @@ export interface EvmSQLQueryRequest {
|
|
|
56
56
|
}
|
|
57
57
|
export interface EvmGetHeaderRequest {
|
|
58
58
|
network: string;
|
|
59
|
-
fromBlock
|
|
60
|
-
toBlock
|
|
59
|
+
fromBlock?: Long | undefined;
|
|
60
|
+
toBlock?: Long | undefined;
|
|
61
|
+
blockNumbers: Long[];
|
|
61
62
|
}
|
|
62
63
|
export interface EvmQueryResponse {
|
|
63
64
|
rows: string[];
|
|
@@ -357,15 +358,37 @@ export declare const EvmQueryDefinition: {
|
|
|
357
358
|
readonly responseStream: false;
|
|
358
359
|
readonly options: {};
|
|
359
360
|
};
|
|
361
|
+
readonly evmHintHeaderCache: {
|
|
362
|
+
readonly name: "EvmHintHeaderCache";
|
|
363
|
+
readonly requestType: {
|
|
364
|
+
encode(message: EvmGetHeaderRequest, writer?: _m0.Writer): _m0.Writer;
|
|
365
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): EvmGetHeaderRequest;
|
|
366
|
+
fromJSON(object: any): EvmGetHeaderRequest;
|
|
367
|
+
toJSON(message: EvmGetHeaderRequest): unknown;
|
|
368
|
+
fromPartial(object: DeepPartial<EvmGetHeaderRequest>): EvmGetHeaderRequest;
|
|
369
|
+
};
|
|
370
|
+
readonly requestStream: false;
|
|
371
|
+
readonly responseType: {
|
|
372
|
+
encode(_: VoidResponse, writer?: _m0.Writer): _m0.Writer;
|
|
373
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): VoidResponse;
|
|
374
|
+
fromJSON(_: any): VoidResponse;
|
|
375
|
+
toJSON(_: VoidResponse): unknown;
|
|
376
|
+
fromPartial(_: DeepPartial<VoidResponse>): VoidResponse;
|
|
377
|
+
};
|
|
378
|
+
readonly responseStream: false;
|
|
379
|
+
readonly options: {};
|
|
380
|
+
};
|
|
360
381
|
};
|
|
361
382
|
};
|
|
362
383
|
export interface EvmQueryServiceImplementation<CallContextExt = {}> {
|
|
363
384
|
evmSQLQuery(request: EvmSQLQueryRequest, context: CallContext & CallContextExt): ServerStreamingMethodResult<DeepPartial<EvmQueryResponse>>;
|
|
364
385
|
evmGetHeader(request: EvmGetHeaderRequest, context: CallContext & CallContextExt): Promise<DeepPartial<EvmQueryResponse>>;
|
|
386
|
+
evmHintHeaderCache(request: EvmGetHeaderRequest, context: CallContext & CallContextExt): Promise<DeepPartial<VoidResponse>>;
|
|
365
387
|
}
|
|
366
388
|
export interface EvmQueryClient<CallOptionsExt = {}> {
|
|
367
389
|
evmSQLQuery(request: DeepPartial<EvmSQLQueryRequest>, options?: CallOptions & CallOptionsExt): AsyncIterable<EvmQueryResponse>;
|
|
368
390
|
evmGetHeader(request: DeepPartial<EvmGetHeaderRequest>, options?: CallOptions & CallOptionsExt): Promise<EvmQueryResponse>;
|
|
391
|
+
evmHintHeaderCache(request: DeepPartial<EvmGetHeaderRequest>, options?: CallOptions & CallOptionsExt): Promise<VoidResponse>;
|
|
369
392
|
}
|
|
370
393
|
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
371
394
|
declare type DeepPartial<T> = T extends Builtin ? T : T extends Long ? string | number | Long : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
@@ -802,19 +802,29 @@ exports.EvmSQLQueryRequest = {
|
|
|
802
802
|
},
|
|
803
803
|
};
|
|
804
804
|
function createBaseEvmGetHeaderRequest() {
|
|
805
|
-
return {
|
|
805
|
+
return {
|
|
806
|
+
network: "",
|
|
807
|
+
fromBlock: undefined,
|
|
808
|
+
toBlock: undefined,
|
|
809
|
+
blockNumbers: [],
|
|
810
|
+
};
|
|
806
811
|
}
|
|
807
812
|
exports.EvmGetHeaderRequest = {
|
|
808
813
|
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
809
814
|
if (message.network !== "") {
|
|
810
815
|
writer.uint32(10).string(message.network);
|
|
811
816
|
}
|
|
812
|
-
if (
|
|
817
|
+
if (message.fromBlock !== undefined) {
|
|
813
818
|
writer.uint32(16).uint64(message.fromBlock);
|
|
814
819
|
}
|
|
815
|
-
if (
|
|
820
|
+
if (message.toBlock !== undefined) {
|
|
816
821
|
writer.uint32(24).uint64(message.toBlock);
|
|
817
822
|
}
|
|
823
|
+
writer.uint32(34).fork();
|
|
824
|
+
for (const v of message.blockNumbers) {
|
|
825
|
+
writer.uint64(v);
|
|
826
|
+
}
|
|
827
|
+
writer.ldelim();
|
|
818
828
|
return writer;
|
|
819
829
|
},
|
|
820
830
|
decode(input, length) {
|
|
@@ -833,6 +843,17 @@ exports.EvmGetHeaderRequest = {
|
|
|
833
843
|
case 3:
|
|
834
844
|
message.toBlock = reader.uint64();
|
|
835
845
|
break;
|
|
846
|
+
case 4:
|
|
847
|
+
if ((tag & 7) === 2) {
|
|
848
|
+
const end2 = reader.uint32() + reader.pos;
|
|
849
|
+
while (reader.pos < end2) {
|
|
850
|
+
message.blockNumbers.push(reader.uint64());
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
else {
|
|
854
|
+
message.blockNumbers.push(reader.uint64());
|
|
855
|
+
}
|
|
856
|
+
break;
|
|
836
857
|
default:
|
|
837
858
|
reader.skipType(tag & 7);
|
|
838
859
|
break;
|
|
@@ -845,19 +866,28 @@ exports.EvmGetHeaderRequest = {
|
|
|
845
866
|
network: isSet(object.network) ? String(object.network) : "",
|
|
846
867
|
fromBlock: isSet(object.fromBlock)
|
|
847
868
|
? long_1.default.fromValue(object.fromBlock)
|
|
848
|
-
:
|
|
869
|
+
: undefined,
|
|
849
870
|
toBlock: isSet(object.toBlock)
|
|
850
871
|
? long_1.default.fromValue(object.toBlock)
|
|
851
|
-
:
|
|
872
|
+
: undefined,
|
|
873
|
+
blockNumbers: Array.isArray(object?.blockNumbers)
|
|
874
|
+
? object.blockNumbers.map((e) => long_1.default.fromValue(e))
|
|
875
|
+
: [],
|
|
852
876
|
};
|
|
853
877
|
},
|
|
854
878
|
toJSON(message) {
|
|
855
879
|
const obj = {};
|
|
856
880
|
message.network !== undefined && (obj.network = message.network);
|
|
857
881
|
message.fromBlock !== undefined &&
|
|
858
|
-
(obj.fromBlock = (message.fromBlock ||
|
|
882
|
+
(obj.fromBlock = (message.fromBlock || undefined).toString());
|
|
859
883
|
message.toBlock !== undefined &&
|
|
860
|
-
(obj.toBlock = (message.toBlock ||
|
|
884
|
+
(obj.toBlock = (message.toBlock || undefined).toString());
|
|
885
|
+
if (message.blockNumbers) {
|
|
886
|
+
obj.blockNumbers = message.blockNumbers.map((e) => (e || long_1.default.UZERO).toString());
|
|
887
|
+
}
|
|
888
|
+
else {
|
|
889
|
+
obj.blockNumbers = [];
|
|
890
|
+
}
|
|
861
891
|
return obj;
|
|
862
892
|
},
|
|
863
893
|
fromPartial(object) {
|
|
@@ -866,11 +896,13 @@ exports.EvmGetHeaderRequest = {
|
|
|
866
896
|
message.fromBlock =
|
|
867
897
|
object.fromBlock !== undefined && object.fromBlock !== null
|
|
868
898
|
? long_1.default.fromValue(object.fromBlock)
|
|
869
|
-
:
|
|
899
|
+
: undefined;
|
|
870
900
|
message.toBlock =
|
|
871
901
|
object.toBlock !== undefined && object.toBlock !== null
|
|
872
902
|
? long_1.default.fromValue(object.toBlock)
|
|
873
|
-
:
|
|
903
|
+
: undefined;
|
|
904
|
+
message.blockNumbers =
|
|
905
|
+
object.blockNumbers?.map((e) => long_1.default.fromValue(e)) || [];
|
|
874
906
|
return message;
|
|
875
907
|
},
|
|
876
908
|
};
|
|
@@ -1023,6 +1055,14 @@ exports.EvmQueryDefinition = {
|
|
|
1023
1055
|
responseStream: false,
|
|
1024
1056
|
options: {},
|
|
1025
1057
|
},
|
|
1058
|
+
evmHintHeaderCache: {
|
|
1059
|
+
name: "EvmHintHeaderCache",
|
|
1060
|
+
requestType: exports.EvmGetHeaderRequest,
|
|
1061
|
+
requestStream: false,
|
|
1062
|
+
responseType: exports.VoidResponse,
|
|
1063
|
+
responseStream: false,
|
|
1064
|
+
options: {},
|
|
1065
|
+
},
|
|
1026
1066
|
},
|
|
1027
1067
|
};
|
|
1028
1068
|
if (minimal_1.default.util.Long !== long_1.default) {
|