@sentio/sdk 2.40.0-rc.19 → 2.40.0-rc.20

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.
@@ -0,0 +1,14 @@
1
+ import { ID } from './types.js';
2
+ import type { Entity as EntityStruct } from '@sentio/protos';
3
+ export interface Entity {
4
+ id: ID;
5
+ }
6
+ export declare class LocalCache {
7
+ private cache;
8
+ getKey(entity: string, id: ID): string;
9
+ has(entity: string, id: ID): boolean;
10
+ get(entity: string, id: ID): EntityStruct | undefined;
11
+ set(entity: EntityStruct): void;
12
+ delete(entityName: string, id: string | undefined): void;
13
+ }
14
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/store/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,EAAE,CAAA;CACP;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAuC;IAEpD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;IAI7B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO;IAIpC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,YAAY,GAAG,SAAS;IAIrD,GAAG,CAAC,MAAM,EAAE,YAAY;IAkBxB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS;CAKlD"}
@@ -0,0 +1,35 @@
1
+ export class LocalCache {
2
+ cache = new Map();
3
+ getKey(entity, id) {
4
+ return `${entity}-${id}`;
5
+ }
6
+ has(entity, id) {
7
+ return this.cache.has(this.getKey(entity, id));
8
+ }
9
+ get(entity, id) {
10
+ return this.cache.get(this.getKey(entity, id));
11
+ }
12
+ set(entity) {
13
+ const id = entity.data?.fields['id'].stringValue;
14
+ if (id) {
15
+ const key = this.getKey(entity.entity, id);
16
+ let fields = entity.data?.fields || {};
17
+ if (this.cache.has(key)) {
18
+ const existFields = this.cache.get(key)?.data?.fields || {};
19
+ fields = Object.assign(existFields, fields);
20
+ }
21
+ this.cache.set(key, {
22
+ ...entity,
23
+ data: {
24
+ fields
25
+ }
26
+ });
27
+ }
28
+ }
29
+ delete(entityName, id) {
30
+ if (id) {
31
+ this.cache.delete(this.getKey(entityName, id));
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/store/cache.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,UAAU;IACb,KAAK,GAA8B,IAAI,GAAG,EAAE,CAAA;IAEpD,MAAM,CAAC,MAAc,EAAE,EAAM;QAC3B,OAAO,GAAG,MAAM,IAAI,EAAE,EAAE,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,EAAM;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,EAAM;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,GAAG,CAAC,MAAoB;QACtB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAA;QAChD,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YAC1C,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAA;YACtC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAA;gBAC3D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC7C,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBAClB,GAAG,MAAM;gBACT,IAAI,EAAE;oBACJ,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,UAAkB,EAAE,EAAsB;QAC/C,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;CACF"}
@@ -2,14 +2,13 @@ import { StoreContext } from './context.js';
2
2
  import { BigDecimal } from '@sentio/bigdecimal';
3
3
  import { Bytes, Float, ID, Int, Timestamp } from './types.js';
4
4
  import { Cursor } from './cursor.js';
5
- interface Entity {
6
- id: ID;
7
- }
5
+ import { Entity } from './cache.js';
8
6
  export interface EntityClass<T> {
9
7
  new (data: Partial<T>): T;
10
8
  }
11
9
  export declare class Store {
12
10
  private readonly context;
11
+ private cache;
13
12
  constructor(context: StoreContext);
14
13
  get<T extends Entity>(entity: EntityClass<T> | string, id: ID): Promise<T | undefined>;
15
14
  delete<T extends Entity>(entity: EntityClass<T> | T | T[], id?: string | string[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@ import { BigDecimal } from '@sentio/bigdecimal';
3
3
  import { DBRequest_DBOperator } from '@sentio/protos';
4
4
  import { toBigInteger } from './convert.js';
5
5
  import { PluginManager } from '@sentio/runtime';
6
+ import { LocalCache } from './cache.js';
6
7
  function getEntityName(entity) {
7
8
  if (entity == null) {
8
- throw new Error("can't figure out entityName from undefined");
9
+ throw new Error('can\'t figure out entityName from undefined');
9
10
  }
10
11
  if (typeof entity == 'string') {
11
12
  return entity;
@@ -20,13 +21,19 @@ function getEntityName(entity) {
20
21
  }
21
22
  export class Store {
22
23
  context;
24
+ cache = new LocalCache();
23
25
  constructor(context) {
24
26
  this.context = context;
25
27
  }
26
28
  async get(entity, id) {
29
+ const entityName = getEntityName(entity);
30
+ const cachedData = this.cache.get(entityName, id);
31
+ if (cachedData) {
32
+ return Promise.resolve(this.newEntity(entity, cachedData));
33
+ }
27
34
  const promise = this.context.sendRequest({
28
35
  get: {
29
- entity: getEntityName(entity),
36
+ entity: entityName,
30
37
  id: id.toString()
31
38
  }
32
39
  });
@@ -42,23 +49,27 @@ export class Store {
42
49
  entity: [],
43
50
  id: []
44
51
  };
52
+ const entityName = getEntityName(entity);
45
53
  if (id) {
46
54
  if (Array.isArray(id)) {
47
55
  for (const i of id) {
48
- request.entity.push(getEntityName(entity));
56
+ request.entity.push(entityName);
49
57
  request.id.push(i.toString());
58
+ this.cache.delete(entityName, i.toString());
50
59
  }
51
60
  }
52
61
  else {
53
- request.entity.push(getEntityName(entity));
62
+ request.entity.push(entityName);
54
63
  request.id.push(id);
64
+ this.cache.delete(entityName, id);
55
65
  }
56
66
  }
57
67
  else {
58
68
  const entities = Array.isArray(entity) ? entity : [entity];
59
69
  for (const e of entities) {
60
- request.entity.push(getEntityName(entity));
70
+ request.entity.push(entityName);
61
71
  request.id.push(e.id.toString());
72
+ this.cache.delete(entityName, id);
62
73
  }
63
74
  }
64
75
  await this.context.sendRequest({
@@ -67,15 +78,26 @@ export class Store {
67
78
  }
68
79
  async upsert(entity) {
69
80
  const entities = Array.isArray(entity) ? entity : [entity];
70
- const promise = this.context.sendRequest({
81
+ const request = {
71
82
  upsert: {
72
83
  entity: entities.map((e) => getEntityName(e)),
73
84
  // data: entities.map((e) => serialize(e.data)),
74
85
  id: entities.map((e) => e.id.toString()),
75
86
  entityData: entities.map((e) => e._data)
76
87
  }
88
+ };
89
+ const promise = this.context.sendRequest(request);
90
+ return promise.then((_data) => {
91
+ request.upsert?.entity.forEach((entity, i) => {
92
+ this.cache.set({
93
+ entity: entity,
94
+ data: request.upsert?.entityData[i],
95
+ genBlockChain: "",
96
+ genBlockTime: undefined,
97
+ genBlockNumber: 0n
98
+ });
99
+ });
77
100
  });
78
- await promise;
79
101
  }
80
102
  async *listIterator(entity, filters) {
81
103
  let cursor = undefined;
@@ -104,7 +126,7 @@ export class Store {
104
126
  }
105
127
  }
106
128
  async listRequest(entity, filters, cursor, pageSize) {
107
- return (await this.context.sendRequest({
129
+ const response = (await this.context.sendRequest({
108
130
  list: {
109
131
  entity: getEntityName(entity),
110
132
  cursor,
@@ -116,6 +138,10 @@ export class Store {
116
138
  })) || []
117
139
  }
118
140
  }, 60));
141
+ response.entityList?.entities?.forEach((entity) => {
142
+ this.cache.set(entity);
143
+ });
144
+ return response;
119
145
  }
120
146
  async list(entity, filters, cursor) {
121
147
  if (cursor) {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.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.40.0-rc.19",
3
+ "version": "2.40.0-rc.20",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -82,8 +82,8 @@
82
82
  "typechain": "^8.3.2",
83
83
  "utility-types": "^3.11.0",
84
84
  "yaml": "^2.3.4",
85
- "@sentio/protos": "2.40.0-rc.19",
86
- "@sentio/runtime": "^2.40.0-rc.19"
85
+ "@sentio/protos": "2.40.0-rc.20",
86
+ "@sentio/runtime": "^2.40.0-rc.20"
87
87
  },
88
88
  "peerDependencies": {
89
89
  "tsup": "npm:@sentio/tsup@^6.7.2"
@@ -0,0 +1,46 @@
1
+ import { ID } from './types.js'
2
+ import type { Entity as EntityStruct } from '@sentio/protos'
3
+
4
+ export interface Entity {
5
+ id: ID
6
+ }
7
+
8
+ export class LocalCache {
9
+ private cache: Map<string, EntityStruct> = new Map()
10
+
11
+ getKey(entity: string, id: ID) {
12
+ return `${entity}-${id}`
13
+ }
14
+
15
+ has(entity: string, id: ID): boolean {
16
+ return this.cache.has(this.getKey(entity, id))
17
+ }
18
+
19
+ get(entity: string, id: ID): EntityStruct | undefined {
20
+ return this.cache.get(this.getKey(entity, id))
21
+ }
22
+
23
+ set(entity: EntityStruct) {
24
+ const id = entity.data?.fields['id'].stringValue
25
+ if (id) {
26
+ const key = this.getKey(entity.entity, id)
27
+ let fields = entity.data?.fields || {}
28
+ if (this.cache.has(key)) {
29
+ const existFields = this.cache.get(key)?.data?.fields || {}
30
+ fields = Object.assign(existFields, fields)
31
+ }
32
+ this.cache.set(key, {
33
+ ...entity,
34
+ data: {
35
+ fields
36
+ }
37
+ })
38
+ }
39
+ }
40
+
41
+ delete(entityName: string, id: string | undefined) {
42
+ if (id) {
43
+ this.cache.delete(this.getKey(entityName, id))
44
+ }
45
+ }
46
+ }
@@ -2,25 +2,21 @@ import { StoreContext } from './context.js'
2
2
  import { DatabaseSchema } from '../core/index.js'
3
3
  import { BigDecimal } from '@sentio/bigdecimal'
4
4
  import { Bytes, Float, ID, Int, Timestamp } from './types.js'
5
- import type { Entity as EntityStruct, RichValue } from '@sentio/protos'
5
+ import type { DBRequest, Entity as EntityStruct, RichValue } from '@sentio/protos'
6
6
  import { DBRequest_DBOperator, DBResponse } from '@sentio/protos'
7
7
  import { toBigInteger } from './convert.js'
8
8
  import { PluginManager } from '@sentio/runtime'
9
9
  import { Cursor } from './cursor.js'
10
+ import { Entity, LocalCache } from './cache.js'
10
11
 
11
- type Value = ID | string | Int | Float | boolean | Timestamp | Bytes | BigDecimal | bigint
12
-
13
- interface Entity {
14
- id: ID
15
- }
16
12
 
17
13
  export interface EntityClass<T> {
18
- new (data: Partial<T>): T
14
+ new(data: Partial<T>): T
19
15
  }
20
16
 
21
17
  function getEntityName<T>(entity: EntityClass<T> | T | string): string {
22
18
  if (entity == null) {
23
- throw new Error("can't figure out entityName from undefined")
19
+ throw new Error('can\'t figure out entityName from undefined')
24
20
  }
25
21
  if (typeof entity == 'string') {
26
22
  return entity
@@ -35,16 +31,27 @@ function getEntityName<T>(entity: EntityClass<T> | T | string): string {
35
31
  }
36
32
 
37
33
  export class Store {
38
- constructor(private readonly context: StoreContext) {}
34
+
35
+ private cache = new LocalCache()
36
+
37
+ constructor(private readonly context: StoreContext) {
38
+ }
39
39
 
40
40
  async get<T extends Entity>(entity: EntityClass<T> | string, id: ID): Promise<T | undefined> {
41
+ const entityName = getEntityName(entity)
42
+ const cachedData = this.cache.get(entityName, id)
43
+ if (cachedData) {
44
+ return Promise.resolve(this.newEntity(entity, cachedData))
45
+ }
46
+
41
47
  const promise = this.context.sendRequest({
42
48
  get: {
43
- entity: getEntityName(entity),
49
+ entity: entityName,
44
50
  id: id.toString()
45
51
  }
46
52
  })
47
53
 
54
+
48
55
  const data = (await promise) as DBResponse
49
56
  if (data.entityList?.entities[0]) {
50
57
  const entityData = data.entityList?.entities[0]
@@ -59,21 +66,25 @@ export class Store {
59
66
  entity: [] as string[],
60
67
  id: [] as string[]
61
68
  }
69
+ const entityName = getEntityName(entity)
62
70
  if (id) {
63
71
  if (Array.isArray(id)) {
64
72
  for (const i of id) {
65
- request.entity.push(getEntityName(entity))
73
+ request.entity.push(entityName)
66
74
  request.id.push(i.toString())
75
+ this.cache.delete(entityName, i.toString())
67
76
  }
68
77
  } else {
69
- request.entity.push(getEntityName(entity))
78
+ request.entity.push(entityName)
70
79
  request.id.push(id)
80
+ this.cache.delete(entityName, id)
71
81
  }
72
82
  } else {
73
83
  const entities = Array.isArray(entity) ? entity : [entity]
74
84
  for (const e of entities) {
75
- request.entity.push(getEntityName(entity))
85
+ request.entity.push(entityName)
76
86
  request.id.push((e as Entity).id.toString())
87
+ this.cache.delete(entityName, id)
77
88
  }
78
89
  }
79
90
 
@@ -84,19 +95,30 @@ export class Store {
84
95
 
85
96
  async upsert<T extends Entity>(entity: T | T[]): Promise<void> {
86
97
  const entities = Array.isArray(entity) ? entity : [entity]
87
- const promise = this.context.sendRequest({
98
+ const request = {
88
99
  upsert: {
89
100
  entity: entities.map((e) => getEntityName(e)),
90
101
  // data: entities.map((e) => serialize(e.data)),
91
102
  id: entities.map((e) => e.id.toString()),
92
103
  entityData: entities.map((e: any) => e._data)
93
104
  }
105
+ } as DBRequest
106
+ const promise = this.context.sendRequest(request)
107
+
108
+ return promise.then((_data) => {
109
+ request.upsert?.entity.forEach((entity, i) => {
110
+ this.cache.set({
111
+ entity: entity,
112
+ data: request.upsert?.entityData[i],
113
+ genBlockChain: "",
114
+ genBlockTime: undefined,
115
+ genBlockNumber: 0n
116
+ })
117
+ })
94
118
  })
95
-
96
- await promise
97
119
  }
98
120
 
99
- async *listIterator<T extends Entity, P extends keyof T, O extends Operators<T[P]>>(
121
+ async* listIterator<T extends Entity, P extends keyof T, O extends Operators<T[P]>>(
100
122
  entity: EntityClass<T>,
101
123
  filters: ListFilter<T, P, O>[]
102
124
  ) {
@@ -120,7 +142,7 @@ export class Store {
120
142
  }
121
143
  }
122
144
 
123
- async *listBatched<T extends Entity, P extends keyof T, O extends Operators<T[P]>>(
145
+ async* listBatched<T extends Entity, P extends keyof T, O extends Operators<T[P]>>(
124
146
  entity: EntityClass<T>,
125
147
  filters: ListFilter<T, P, O>[],
126
148
  batchSize = 100
@@ -144,7 +166,7 @@ export class Store {
144
166
  cursor: string | undefined,
145
167
  pageSize?: number
146
168
  ): Promise<DBResponse> {
147
- return (await this.context.sendRequest(
169
+ const response = (await this.context.sendRequest(
148
170
  {
149
171
  list: {
150
172
  entity: getEntityName(entity),
@@ -160,6 +182,12 @@ export class Store {
160
182
  },
161
183
  60
162
184
  )) as DBResponse
185
+
186
+ response.entityList?.entities?.forEach((entity) => {
187
+ this.cache.set(entity)
188
+ })
189
+
190
+ return response
163
191
  }
164
192
 
165
193
  async list<T extends Entity, P extends keyof T, O extends Operators<T[P]>>(
@@ -233,22 +261,22 @@ type CompatibleValue<T, O extends Operators<T>> = O extends ArrayOperators
233
261
  ? U[]
234
262
  : T[]
235
263
  :
236
- | (T extends bigint
237
- ? bigint
238
- : T extends Int
239
- ? number
240
- : T extends Float
264
+ | (T extends bigint
265
+ ? bigint
266
+ : T extends Int
267
+ ? number
268
+ : T extends Float
269
+ ? number
270
+ : T extends Bytes
271
+ ? Bytes | string
272
+ : T extends ID
273
+ ? ID | string
274
+ : T extends BigDecimal
275
+ ? BigDecimal | number
276
+ : T extends Int
241
277
  ? number
242
- : T extends Bytes
243
- ? Bytes | string
244
- : T extends ID
245
- ? ID | string
246
- : T extends BigDecimal
247
- ? BigDecimal | number
248
- : T extends Int
249
- ? number
250
- : T)
251
- | Nullable<O>
278
+ : T)
279
+ | Nullable<O>
252
280
 
253
281
  type Nullable<O> = O extends '=' | '!=' ? null : never
254
282