@sentio/sdk 2.30.3-rc.1 → 2.31.0-rc.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/core-plugin.d.ts.map +1 -1
- package/lib/core/core-plugin.js +9 -3
- package/lib/core/core-plugin.js.map +1 -1
- package/lib/core/event-logger.d.ts +13 -2
- package/lib/core/event-logger.d.ts.map +1 -1
- package/lib/core/event-logger.js +42 -5
- package/lib/core/event-logger.js.map +1 -1
- package/lib/core/event-logger.test.d.ts +2 -0
- package/lib/core/event-logger.test.d.ts.map +1 -0
- package/lib/core/event-logger.test.js.map +1 -0
- package/lib/utils/price.d.ts +2 -1
- package/lib/utils/price.d.ts.map +1 -1
- package/lib/utils/price.js.map +1 -1
- package/package.json +3 -3
- package/src/core/core-plugin.ts +10 -3
- package/src/core/event-logger.ts +62 -5
- package/src/utils/price.ts +2 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;
|
1
|
+
{"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAQtD,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAErB,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAmC9D"}
|
package/lib/core/core-plugin.js
CHANGED
@@ -3,6 +3,7 @@ import { MetricState } from './meter.js';
|
|
3
3
|
import { ExporterState } from './exporter.js';
|
4
4
|
import { EventTrackerState } from './event-tracker.js';
|
5
5
|
import { TemplateInstanceState } from './template.js';
|
6
|
+
import { EventLoggerState } from './event-logger.js';
|
6
7
|
export class CorePlugin extends Plugin {
|
7
8
|
name = 'CorePlugin';
|
8
9
|
async configure(config) {
|
@@ -10,7 +11,12 @@ export class CorePlugin extends Plugin {
|
|
10
11
|
config.templateInstances = [...TemplateInstanceState.INSTANCE.getValues()];
|
11
12
|
for (const metric of MetricState.INSTANCE.getValues()) {
|
12
13
|
config.metricConfigs.push({
|
13
|
-
...metric.config
|
14
|
+
...metric.config
|
15
|
+
});
|
16
|
+
}
|
17
|
+
for (const event of EventLoggerState.INSTANCE.getValues()) {
|
18
|
+
config.eventLogConfigs.push({
|
19
|
+
...event.config
|
14
20
|
});
|
15
21
|
}
|
16
22
|
// eslint-disable-next-line deprecation/deprecation
|
@@ -21,13 +27,13 @@ export class CorePlugin extends Plugin {
|
|
21
27
|
retentionConfig: undefined,
|
22
28
|
totalByDay: eventTracker.options.totalByDay || false,
|
23
29
|
totalPerEntity: undefined,
|
24
|
-
unique: eventTracker.options.unique || false
|
30
|
+
unique: eventTracker.options.unique || false
|
25
31
|
});
|
26
32
|
}
|
27
33
|
for (const exporter of ExporterState.INSTANCE.getValues()) {
|
28
34
|
config.exportConfigs.push({
|
29
35
|
name: exporter.name,
|
30
|
-
channel: exporter.channel
|
36
|
+
channel: exporter.channel
|
31
37
|
});
|
32
38
|
}
|
33
39
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,IAAI,GAAW,YAAY,CAAA;IAE3B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,4DAA4D;QAC5D,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QAE1E,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;YACrD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;SACH;QAED,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;YACzD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,GAAG,KAAK,CAAC,MAAM;aAChB,CAAC,CAAA;SACH;QAED,mDAAmD;QACnD,KAAK,MAAM,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;YACjE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC/B,yBAAyB,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE;gBACpE,SAAS,EAAE,YAAY,CAAC,IAAI;gBAC5B,eAAe,EAAE,SAAS;gBAC1B,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;gBACpD,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK;aAC7C,CAAC,CAAA;SACH;QAED,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;YACzD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAA;SACH;IACH,CAAC;CACF;AAED,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { BaseContext } from './base-context.js';
|
2
|
-
import { LogLevel } from '@sentio/protos';
|
2
|
+
import { CoinID, EventLogConfig, EventLogConfig_BasicFieldType, EventLogConfig_Field, LogLevel } from '@sentio/protos';
|
3
3
|
import { MapStateStorage } from '@sentio/runtime';
|
4
4
|
export interface Attribute<T> {
|
5
5
|
[key: string]: Exclude<T | number | bigint | string | boolean | LogLevel | Attribute<T> | undefined, Promise<any>>;
|
@@ -17,10 +17,21 @@ export declare class EventLoggerBinding {
|
|
17
17
|
constructor(ctx: BaseContext);
|
18
18
|
emit<T>(eventName: string, event: Event<T>): void;
|
19
19
|
}
|
20
|
+
export type BasicFieldType = EventLogConfig_BasicFieldType;
|
21
|
+
export declare const BasicFieldType: typeof EventLogConfig_BasicFieldType;
|
22
|
+
export type FieldType = CoinID | BasicFieldType | Fields;
|
23
|
+
export type Fields = {
|
24
|
+
[key: string]: FieldType;
|
25
|
+
};
|
26
|
+
export interface EventLogOptions {
|
27
|
+
fields: Fields;
|
28
|
+
}
|
29
|
+
export declare function fieldsToProtos(fields: Fields): EventLogConfig_Field[];
|
20
30
|
export declare class EventLogger {
|
21
31
|
private readonly eventName;
|
32
|
+
config: EventLogConfig;
|
22
33
|
private constructor();
|
23
|
-
static register(eventName: string): EventLogger;
|
34
|
+
static register(eventName: string, options?: EventLogOptions): EventLogger;
|
24
35
|
emit<T>(ctx: BaseContext, event: Event<T>): void;
|
25
36
|
}
|
26
37
|
//# sourceMappingURL=event-logger.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,
|
1
|
+
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,MAAM,EACN,cAAc,EACd,6BAA6B,EAC7B,oBAAoB,EAGpB,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;CACnH;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAI5C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,gBAAiB,SAAQ,eAAe,CAAC,WAAW,CAAC;IAChE,MAAM,CAAC,QAAQ,mBAAyB;CACzC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,GAAG,EAAE,WAAW;IAI5B,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG3C;AAED,MAAM,MAAM,cAAc,GAAG,6BAA6B,CAAA;AAC1D,eAAO,MAAM,cAAc,sCAAgC,CAAA;AAE3D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,CAAA;AAExD,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA0BrE;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,MAAM,EAAE,cAAc,CAAA;IAEtB,OAAO;IAKP,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW;IAa1E,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG1C"}
|
package/lib/core/event-logger.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { LogLevel } from '@sentio/protos';
|
1
|
+
import { EventLogConfig, EventLogConfig_BasicFieldType, EventLogConfig_StructFieldType, LogLevel } from '@sentio/protos';
|
2
2
|
import { normalizeAttribute } from './normalization.js';
|
3
3
|
import { MapStateStorage } from '@sentio/runtime';
|
4
4
|
export class EventLoggerState extends MapStateStorage {
|
@@ -13,13 +13,50 @@ export class EventLoggerBinding {
|
|
13
13
|
emit(this.ctx, eventName, event);
|
14
14
|
}
|
15
15
|
}
|
16
|
+
export const BasicFieldType = EventLogConfig_BasicFieldType;
|
17
|
+
export function fieldsToProtos(fields) {
|
18
|
+
const fieldsProto = [];
|
19
|
+
for (const [key, value] of Object.entries(fields)) {
|
20
|
+
let basicType;
|
21
|
+
let coinType;
|
22
|
+
let structType;
|
23
|
+
if (typeof value === 'number') {
|
24
|
+
basicType = value;
|
25
|
+
}
|
26
|
+
else {
|
27
|
+
if (value.address || value.symbol) {
|
28
|
+
coinType = value;
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
structType = EventLogConfig_StructFieldType.create({
|
32
|
+
fields: fieldsToProtos(value)
|
33
|
+
});
|
34
|
+
}
|
35
|
+
}
|
36
|
+
fieldsProto.push({
|
37
|
+
name: key,
|
38
|
+
basicType,
|
39
|
+
coinType,
|
40
|
+
structType
|
41
|
+
});
|
42
|
+
}
|
43
|
+
return fieldsProto;
|
44
|
+
}
|
16
45
|
export class EventLogger {
|
17
46
|
eventName;
|
18
|
-
|
47
|
+
config;
|
48
|
+
constructor(eventName, config) {
|
19
49
|
this.eventName = eventName;
|
50
|
+
this.config = EventLogConfig.fromPartial(config || {});
|
20
51
|
}
|
21
|
-
static register(eventName) {
|
22
|
-
|
52
|
+
static register(eventName, options) {
|
53
|
+
let config;
|
54
|
+
if (options?.fields) {
|
55
|
+
config = EventLogConfig.create({
|
56
|
+
fields: fieldsToProtos(options.fields)
|
57
|
+
});
|
58
|
+
}
|
59
|
+
const logger = new EventLogger(eventName, config);
|
23
60
|
return EventLoggerState.INSTANCE.getOrSetValue(eventName, logger);
|
24
61
|
}
|
25
62
|
emit(ctx, event) {
|
@@ -35,7 +72,7 @@ function emit(ctx, eventName, event) {
|
|
35
72
|
distinctEntityId: distinctId || '',
|
36
73
|
attributes: normalizeAttribute(payload),
|
37
74
|
runtimeInfo: undefined,
|
38
|
-
noMetric: true
|
75
|
+
noMetric: true
|
39
76
|
};
|
40
77
|
ctx.update({ events: [res] });
|
41
78
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"event-logger.test.d.ts","sourceRoot":"","sources":["../../src/core/event-logger.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"event-logger.test.js","sourceRoot":"","sources":["../../src/core/event-logger.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE1E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,cAAc,CAAC,MAAM;YAC5B,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;SAC1B,CAAA;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;YAC1B;gBACE,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,cAAc,CAAC,MAAM;aACjC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,cAAc,CAAC,MAAM;aACjC;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,cAAc,CAAC,IAAI;aAC/B;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,cAAc,CAAC,MAAM;YAC5B,EAAE,EAAE;gBACF,GAAG,EAAE,cAAc,CAAC,IAAI;aACzB;SACF,CAAA;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;YAC1B;gBACE,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,cAAc,CAAC,MAAM;aACjC;YACD;gBACE,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,cAAc,CAAC,IAAI;yBAC/B;qBACF;iBACF;aACF;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,MAAM,GAAW;YACrB,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM;aACf;SACF,CAAA;QACD,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;YAC1B;gBACE,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE;oBACR,MAAM,EAAE,MAAM;iBACf;aACF;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/lib/utils/price.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { PriceServiceClient } from '@sentio/protos/price';
|
2
|
+
import { CoinID } from '@sentio/protos';
|
2
3
|
import { RetryOptions } from 'nice-grpc-client-middleware-retry';
|
3
4
|
import { ChainId } from '@sentio/chain';
|
4
5
|
export declare function getPriceClient(address?: string): import("nice-grpc").RawClient<import("nice-grpc/lib/service-definitions/ts-proto.js").FromTsProtoServiceDefinition<{
|
package/lib/utils/price.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../src/utils/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
1
|
+
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../src/utils/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,sBAAsB,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGvC,OAAO,EAAmB,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAU9C;AASD,UAAU,YAAY;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAQD,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAC7C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2D7B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW7B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE7B"}
|
package/lib/utils/price.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../src/utils/price.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../src/utils/price.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentio/sdk",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.31.0-rc.2",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -73,8 +73,8 @@
|
|
73
73
|
"typedoc": "^0.25.0",
|
74
74
|
"utility-types": "^3.10.0",
|
75
75
|
"yaml": "^2.2.1",
|
76
|
-
"@sentio/protos": "2.
|
77
|
-
"@sentio/runtime": "^2.
|
76
|
+
"@sentio/protos": "2.31.0-rc.2",
|
77
|
+
"@sentio/runtime": "^2.31.0-rc.2"
|
78
78
|
},
|
79
79
|
"peerDependencies": {
|
80
80
|
"tsup": "npm:@sentio/tsup@^6.7.2"
|
package/src/core/core-plugin.ts
CHANGED
@@ -5,6 +5,7 @@ import { MetricState } from './meter.js'
|
|
5
5
|
import { ExporterState } from './exporter.js'
|
6
6
|
import { EventTrackerState } from './event-tracker.js'
|
7
7
|
import { TemplateInstanceState } from './template.js'
|
8
|
+
import { EventLoggerState } from './event-logger.js'
|
8
9
|
|
9
10
|
export class CorePlugin extends Plugin {
|
10
11
|
name: string = 'CorePlugin'
|
@@ -15,7 +16,13 @@ export class CorePlugin extends Plugin {
|
|
15
16
|
|
16
17
|
for (const metric of MetricState.INSTANCE.getValues()) {
|
17
18
|
config.metricConfigs.push({
|
18
|
-
...metric.config
|
19
|
+
...metric.config
|
20
|
+
})
|
21
|
+
}
|
22
|
+
|
23
|
+
for (const event of EventLoggerState.INSTANCE.getValues()) {
|
24
|
+
config.eventLogConfigs.push({
|
25
|
+
...event.config
|
19
26
|
})
|
20
27
|
}
|
21
28
|
|
@@ -27,14 +34,14 @@ export class CorePlugin extends Plugin {
|
|
27
34
|
retentionConfig: undefined,
|
28
35
|
totalByDay: eventTracker.options.totalByDay || false,
|
29
36
|
totalPerEntity: undefined,
|
30
|
-
unique: eventTracker.options.unique || false
|
37
|
+
unique: eventTracker.options.unique || false
|
31
38
|
})
|
32
39
|
}
|
33
40
|
|
34
41
|
for (const exporter of ExporterState.INSTANCE.getValues()) {
|
35
42
|
config.exportConfigs.push({
|
36
43
|
name: exporter.name,
|
37
|
-
channel: exporter.channel
|
44
|
+
channel: exporter.channel
|
38
45
|
})
|
39
46
|
}
|
40
47
|
}
|
package/src/core/event-logger.ts
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
import { BaseContext } from './base-context.js'
|
2
|
-
import {
|
2
|
+
import {
|
3
|
+
CoinID,
|
4
|
+
EventLogConfig,
|
5
|
+
EventLogConfig_BasicFieldType,
|
6
|
+
EventLogConfig_Field,
|
7
|
+
EventLogConfig_StructFieldType,
|
8
|
+
EventTrackingResult,
|
9
|
+
LogLevel
|
10
|
+
} from '@sentio/protos'
|
3
11
|
import { normalizeAttribute } from './normalization.js'
|
4
12
|
import { MapStateStorage } from '@sentio/runtime'
|
5
13
|
|
@@ -32,15 +40,64 @@ export class EventLoggerBinding {
|
|
32
40
|
}
|
33
41
|
}
|
34
42
|
|
43
|
+
export type BasicFieldType = EventLogConfig_BasicFieldType
|
44
|
+
export const BasicFieldType = EventLogConfig_BasicFieldType
|
45
|
+
|
46
|
+
export type FieldType = CoinID | BasicFieldType | Fields
|
47
|
+
|
48
|
+
export type Fields = { [key: string]: FieldType }
|
49
|
+
|
50
|
+
export interface EventLogOptions {
|
51
|
+
fields: Fields
|
52
|
+
}
|
53
|
+
|
54
|
+
export function fieldsToProtos(fields: Fields): EventLogConfig_Field[] {
|
55
|
+
const fieldsProto: EventLogConfig_Field[] = []
|
56
|
+
for (const [key, value] of Object.entries(fields)) {
|
57
|
+
let basicType: BasicFieldType | undefined
|
58
|
+
let coinType: CoinID | undefined
|
59
|
+
let structType: EventLogConfig_StructFieldType | undefined
|
60
|
+
|
61
|
+
if (typeof value === 'number') {
|
62
|
+
basicType = value
|
63
|
+
} else {
|
64
|
+
if (value.address || value.symbol) {
|
65
|
+
coinType = value
|
66
|
+
} else {
|
67
|
+
structType = EventLogConfig_StructFieldType.create({
|
68
|
+
fields: fieldsToProtos(value as Fields)
|
69
|
+
})
|
70
|
+
}
|
71
|
+
}
|
72
|
+
fieldsProto.push({
|
73
|
+
name: key,
|
74
|
+
basicType,
|
75
|
+
coinType,
|
76
|
+
structType
|
77
|
+
})
|
78
|
+
}
|
79
|
+
return fieldsProto
|
80
|
+
}
|
81
|
+
|
35
82
|
export class EventLogger {
|
36
83
|
private readonly eventName: string
|
84
|
+
config: EventLogConfig
|
37
85
|
|
38
|
-
private constructor(eventName: string) {
|
86
|
+
private constructor(eventName: string, config?: EventLogConfig) {
|
39
87
|
this.eventName = eventName
|
88
|
+
this.config = EventLogConfig.fromPartial(config || {})
|
40
89
|
}
|
41
90
|
|
42
|
-
static register(eventName: string): EventLogger {
|
43
|
-
|
91
|
+
static register(eventName: string, options?: EventLogOptions): EventLogger {
|
92
|
+
let config: EventLogConfig | undefined
|
93
|
+
|
94
|
+
if (options?.fields) {
|
95
|
+
config = EventLogConfig.create({
|
96
|
+
fields: fieldsToProtos(options.fields)
|
97
|
+
})
|
98
|
+
}
|
99
|
+
|
100
|
+
const logger = new EventLogger(eventName, config)
|
44
101
|
return EventLoggerState.INSTANCE.getOrSetValue(eventName, logger)
|
45
102
|
}
|
46
103
|
|
@@ -59,7 +116,7 @@ function emit<T>(ctx: BaseContext, eventName: string, event: Event<T>) {
|
|
59
116
|
distinctEntityId: distinctId || '',
|
60
117
|
attributes: normalizeAttribute(payload),
|
61
118
|
runtimeInfo: undefined,
|
62
|
-
noMetric: true
|
119
|
+
noMetric: true
|
63
120
|
}
|
64
121
|
ctx.update({ events: [res] })
|
65
122
|
}
|
package/src/utils/price.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { PriceServiceClient, PriceServiceDefinition } from '@sentio/protos/price'
|
2
|
+
import { CoinID } from '@sentio/protos'
|
2
3
|
import { createChannel, createClientFactory, Status } from 'nice-grpc'
|
3
4
|
import { prometheusClientMiddleware } from 'nice-grpc-prometheus'
|
4
5
|
import { retryMiddleware, RetryOptions } from 'nice-grpc-client-middleware-retry'
|