1 | import { UInt256 } from '@neo-one/client-common';
|
2 | import { AddChange, Block, ChangeSet, DeleteChange, Output, OutputKey, ReadAllStorage, ReadGetAllStorage, ReadMetadataStorage, ReadStorage } from '@neo-one/node-core';
|
3 | import { Observable } from 'rxjs';
|
4 | declare type TrackedChange<Key, AddValue, Value> = {
|
5 | readonly type: 'add';
|
6 | readonly addValue: AddValue;
|
7 | readonly value: Value;
|
8 | readonly subType: 'add' | 'update';
|
9 | } | {
|
10 | readonly type: 'delete';
|
11 | readonly key: Key;
|
12 | };
|
13 | declare type GetFunc<Key, Value> = (key: Key) => Promise<Value>;
|
14 | declare type TryGetFunc<Key, Value> = (key: Key) => Promise<Value | undefined>;
|
15 | export interface TrackedChangeWithKey<Key, AddValue, Value> {
|
16 | readonly type: string;
|
17 | readonly key: string;
|
18 | readonly value: TrackedChange<Key, AddValue, Value>;
|
19 | }
|
20 | export declare type TrackedChangeSet<Key, AddValue, Value> = ReadonlyArray<TrackedChangeWithKey<Key, AddValue, Value>>;
|
21 | interface BaseReadStorageCacheOptions<Key, AddValue, Value> {
|
22 | readonly readStorage: () => ReadStorage<Key, Value>;
|
23 | readonly name: string;
|
24 | readonly createAddChange: (value: AddValue) => AddChange;
|
25 | readonly createDeleteChange?: (key: Key) => DeleteChange;
|
26 | readonly onAdd?: (value: AddValue) => Promise<void>;
|
27 | }
|
28 | export declare class BaseReadStorageCache<Key, AddValue, Value> {
|
29 | readonly get: GetFunc<Key, Value>;
|
30 | readonly tryGet: TryGetFunc<Key, Value>;
|
31 | readonly tryGetValue: TryGetFunc<Key, Value>;
|
32 | readonly onAdd: ((value: AddValue) => Promise<void>) | undefined;
|
33 | readonly name: string;
|
34 | readonly mutableValues: {
|
35 | [key: string]: TrackedChange<Key, AddValue, Value>;
|
36 | };
|
37 | protected readonly readStorage: () => ReadStorage<Key, Value>;
|
38 | protected readonly createAddChange: (value: AddValue) => AddChange;
|
39 | protected readonly createDeleteChange: ((key: Key) => DeleteChange) | undefined;
|
40 | constructor(options: BaseReadStorageCacheOptions<Key, AddValue, Value>);
|
41 | getChangeSet(): ChangeSet;
|
42 | getTrackedChangeSet(): TrackedChangeSet<Key, AddValue, Value>;
|
43 | tryGetTracked(_key: Key): TrackedChange<Key, AddValue, Value> | undefined;
|
44 | }
|
45 | interface ReadStorageCacheOptions<Key, AddValue, Value> extends BaseReadStorageCacheOptions<Key, AddValue, Value> {
|
46 | readonly getKeyString: (key: Key) => string;
|
47 | }
|
48 | declare class ReadStorageCache<Key, AddValue, Value> extends BaseReadStorageCache<Key, AddValue, Value> {
|
49 | readonly getKeyString: (key: Key) => string;
|
50 | constructor(options: ReadStorageCacheOptions<Key, AddValue, Value>);
|
51 | tryGetTracked(key: Key): TrackedChange<Key, AddValue, Value> | undefined;
|
52 | addTrackedChange(key: string, value: TrackedChange<Key, AddValue, Value>): void;
|
53 | }
|
54 | interface ReadAllStorageCacheOptions<Key, Value> {
|
55 | readonly readAllStorage: () => ReadAllStorage<Key, Value>;
|
56 | readonly name: string;
|
57 | readonly createAddChange: (value: Value) => AddChange;
|
58 | readonly createDeleteChange?: (key: Key) => DeleteChange;
|
59 | readonly onAdd?: (value: Value) => Promise<void>;
|
60 | readonly getKeyString: (key: Key) => string;
|
61 | readonly getKeyFromValue: (value: Value) => Key;
|
62 | }
|
63 | declare class ReadAllStorageCache<Key, Value> extends ReadStorageCache<Key, Value, Value> {
|
64 | readonly all$: Observable<Value>;
|
65 | protected readonly readAllStorage: () => ReadAllStorage<Key, Value>;
|
66 | protected readonly getKeyFromValue: (value: Value) => Key;
|
67 | constructor(options: ReadAllStorageCacheOptions<Key, Value>);
|
68 | }
|
69 | interface ReadGetAllStorageCacheOptions<Key, PartialKey, Value> {
|
70 | readonly readGetAllStorage: () => ReadGetAllStorage<Key, PartialKey, Value>;
|
71 | readonly name: string;
|
72 | readonly createAddChange: (value: Value) => AddChange;
|
73 | readonly createDeleteChange?: (key: Key) => DeleteChange;
|
74 | readonly onAdd?: (value: Value) => Promise<void>;
|
75 | readonly getKeyString: (key: Key) => string;
|
76 | readonly getKeyFromValue: (value: Value) => Key;
|
77 | readonly matchesPartialKey: (value: Value, key: PartialKey) => boolean;
|
78 | }
|
79 | declare class ReadGetAllStorageCache<Key, PartialKey, Value> extends ReadStorageCache<Key, Value, Value> {
|
80 | readonly getAll$: (key: PartialKey) => Observable<Value>;
|
81 | protected readonly readGetAllStorage: () => ReadGetAllStorage<Key, PartialKey, Value>;
|
82 | protected readonly getKeyFromValue: (value: Value) => Key;
|
83 | protected readonly matchesPartialKey: (value: Value, key: PartialKey) => boolean;
|
84 | constructor(options: ReadGetAllStorageCacheOptions<Key, PartialKey, Value>);
|
85 | }
|
86 | declare type AddFunc<Value> = (value: Value) => Promise<void>;
|
87 | declare type UpdateFunc<Value, Update> = (value: Value, update: Update) => Promise<Value>;
|
88 | declare type DeleteFunc<Key> = (key: Key) => Promise<void>;
|
89 | interface ReadAddUpdateDeleteStorageCacheOptions<Key, Value, Update> extends ReadStorageCacheOptions<Key, Value, Value> {
|
90 | readonly update: (value: Value, update: Update) => Value;
|
91 | readonly getKeyFromValue: (value: Value) => Key;
|
92 | }
|
93 | export declare class ReadAddUpdateDeleteStorageCache<Key, Value, Update> extends ReadStorageCache<Key, Value, Value> {
|
94 | readonly add: AddFunc<Value>;
|
95 | readonly update: UpdateFunc<Value, Update>;
|
96 | readonly delete: DeleteFunc<Key>;
|
97 | constructor(options: ReadAddUpdateDeleteStorageCacheOptions<Key, Value, Update>);
|
98 | }
|
99 | interface ReadAddUpdateStorageCacheOptions<Key, Value, Update> extends ReadStorageCacheOptions<Key, Value, Value> {
|
100 | readonly update: (value: Value, update: Update) => Value;
|
101 | readonly getKeyFromValue: (value: Value) => Key;
|
102 | readonly allowDupes?: boolean;
|
103 | }
|
104 | export declare class ReadAddUpdateStorageCache<Key, Value, Update> extends ReadStorageCache<Key, Value, Value> {
|
105 | readonly add: AddFunc<Value>;
|
106 | readonly update: UpdateFunc<Value, Update>;
|
107 | constructor(options: ReadAddUpdateStorageCacheOptions<Key, Value, Update>);
|
108 | }
|
109 | interface ReadAddDeleteStorageCacheOptions<Key, Value> extends ReadStorageCacheOptions<Key, Value, Value> {
|
110 | readonly getKeyFromValue: (value: Value) => Key;
|
111 | }
|
112 | export declare class ReadAddDeleteStorageCache<Key, Value> extends ReadStorageCache<Key, Value, Value> {
|
113 | readonly add: AddFunc<Value>;
|
114 | readonly delete: DeleteFunc<Key>;
|
115 | constructor(options: ReadAddDeleteStorageCacheOptions<Key, Value>);
|
116 | }
|
117 | interface ReadAddStorageCacheOptions<Key, Value> extends ReadStorageCacheOptions<Key, Value, Value> {
|
118 | readonly getKeyFromValue: (value: Value) => Key;
|
119 | readonly allowDupes?: boolean;
|
120 | }
|
121 | export declare class ReadAddStorageCache<Key, Value> extends ReadStorageCache<Key, Value, Value> {
|
122 | readonly add: AddFunc<Value>;
|
123 | constructor(options: ReadAddStorageCacheOptions<Key, Value>);
|
124 | }
|
125 | interface ReadGetAllAddDeleteStorageCacheOptions<Key, PartialKey, Value> extends ReadGetAllStorageCacheOptions<Key, PartialKey, Value> {
|
126 | readonly getKeyFromValue: (value: Value) => Key;
|
127 | }
|
128 | export declare class ReadGetAllAddDeleteStorageCache<Key, PartialKey, Value> extends ReadGetAllStorageCache<Key, PartialKey, Value> {
|
129 | readonly add: AddFunc<Value>;
|
130 | readonly delete: DeleteFunc<Key>;
|
131 | constructor(options: ReadGetAllAddDeleteStorageCacheOptions<Key, PartialKey, Value>);
|
132 | }
|
133 | interface ReadGetAllAddUpdateDeleteStorageCacheOptions<Key, PartialKey, Value, Update> extends ReadGetAllStorageCacheOptions<Key, PartialKey, Value> {
|
134 | readonly update: (value: Value, update: Update) => Value;
|
135 | readonly getKeyFromValue: (value: Value) => Key;
|
136 | }
|
137 | export declare class ReadGetAllAddUpdateDeleteStorageCache<Key, PartialKey, Value, Update> extends ReadGetAllStorageCache<Key, PartialKey, Value> {
|
138 | readonly add: AddFunc<Value>;
|
139 | readonly update: UpdateFunc<Value, Update>;
|
140 | readonly delete: DeleteFunc<Key>;
|
141 | constructor(options: ReadGetAllAddUpdateDeleteStorageCacheOptions<Key, PartialKey, Value, Update>);
|
142 | }
|
143 | interface ReadGetAllAddStorageCacheOptions<Key, PartialKey, Value> extends ReadGetAllStorageCacheOptions<Key, PartialKey, Value> {
|
144 | readonly getKeyFromValue: (value: Value) => Key;
|
145 | }
|
146 | export declare class ReadGetAllAddStorageCache<Key, PartialKey, Value> extends ReadGetAllStorageCache<Key, PartialKey, Value> {
|
147 | readonly add: AddFunc<Value>;
|
148 | constructor(options: ReadGetAllAddStorageCacheOptions<Key, PartialKey, Value>);
|
149 | }
|
150 | interface ReadAllAddUpdateDeleteStorageCacheOptions<Key, Value, Update> extends ReadAllStorageCacheOptions<Key, Value> {
|
151 | readonly update: (value: Value, update: Update) => Value;
|
152 | readonly getKeyFromValue: (value: Value) => Key;
|
153 | }
|
154 | export declare class ReadAllAddUpdateDeleteStorageCache<Key, Value, Update> extends ReadAllStorageCache<Key, Value> {
|
155 | readonly add: AddFunc<Value>;
|
156 | readonly update: UpdateFunc<Value, Update>;
|
157 | readonly delete: DeleteFunc<Key>;
|
158 | constructor(options: ReadAllAddUpdateDeleteStorageCacheOptions<Key, Value, Update>);
|
159 | }
|
160 | interface ReadAllAddStorageCacheOptions<Key, Value> extends ReadAllStorageCacheOptions<Key, Value> {
|
161 | readonly getKeyFromValue: (value: Value) => Key;
|
162 | }
|
163 | export declare class ReadAllAddStorageCache<Key, Value> extends ReadAllStorageCache<Key, Value> {
|
164 | readonly add: AddFunc<Value>;
|
165 | constructor(options: ReadAllAddStorageCacheOptions<Key, Value>);
|
166 | }
|
167 | interface BlockLikeKey {
|
168 | readonly hashOrIndex: Block['hash'] | Block['index'];
|
169 | }
|
170 | interface BlockLike {
|
171 | readonly hash: Block['hash'];
|
172 | readonly index: Block['index'];
|
173 | }
|
174 | interface BlockLikeStorageCacheOptions<Value extends BlockLike> extends BaseReadStorageCacheOptions<BlockLikeKey, Value, Value> {
|
175 | }
|
176 | export declare class BlockLikeStorageCache<Value extends BlockLike> extends BaseReadStorageCache<BlockLikeKey, Value, Value> {
|
177 | protected readonly mutableIndexValues: {
|
178 | [index: string]: TrackedChange<BlockLikeKey, Value, Value>;
|
179 | };
|
180 | constructor(options: BlockLikeStorageCacheOptions<Value>);
|
181 | add(value: Value): Promise<void>;
|
182 | tryGetTracked(key: BlockLikeKey): TrackedChange<BlockLikeKey, Value, Value> | undefined;
|
183 | addTrackedChange(key: string, value: TrackedChange<BlockLikeKey, Value, Value>): void;
|
184 | }
|
185 | interface OutputValue {
|
186 | readonly hash: UInt256;
|
187 | readonly index: number;
|
188 | readonly output: Output;
|
189 | }
|
190 | export declare class OutputStorageCache extends ReadStorageCache<OutputKey, OutputValue, Output> {
|
191 | readonly add: AddFunc<OutputValue>;
|
192 | constructor(readStorage: () => ReadStorage<OutputKey, Output>);
|
193 | }
|
194 | declare type TrackedMetadataChange<AddValue, Value> = {
|
195 | readonly type: 'add';
|
196 | readonly addValue: AddValue;
|
197 | readonly value: Value;
|
198 | readonly subType: 'add' | 'update';
|
199 | } | {
|
200 | readonly type: 'delete';
|
201 | };
|
202 | declare type GetMetadataFunc<Value> = (key?: undefined) => Promise<Value>;
|
203 | declare type TryGetMetadataFunc<Value> = (key?: undefined) => Promise<Value | undefined>;
|
204 | interface BaseReadMetadataStorageCacheOptions<AddValue, Value> {
|
205 | readonly readStorage: () => ReadMetadataStorage<Value>;
|
206 | readonly name: string;
|
207 | readonly createAddChange: (value: AddValue) => AddChange;
|
208 | readonly createDeleteChange?: () => DeleteChange;
|
209 | readonly onAdd?: (value: AddValue) => Promise<void>;
|
210 | }
|
211 | export declare class BaseReadMetadataStorageCache<AddValue, Value> {
|
212 | readonly get: GetMetadataFunc<Value>;
|
213 | readonly tryGet: TryGetMetadataFunc<Value>;
|
214 | mutableValue: TrackedMetadataChange<AddValue, Value> | undefined;
|
215 | readonly onAdd: ((value: AddValue) => Promise<void>) | undefined;
|
216 | protected readonly readStorage: () => ReadMetadataStorage<Value>;
|
217 | protected readonly name: string;
|
218 | protected readonly createAddChange: (value: AddValue) => AddChange;
|
219 | protected readonly createDeleteChange: (() => DeleteChange) | undefined;
|
220 | constructor(options: BaseReadMetadataStorageCacheOptions<AddValue, Value>);
|
221 | getChangeSet(): ChangeSet;
|
222 | getTrackedChangeSet(): TrackedChangeSet<string, AddValue, Value>;
|
223 | tryGetTracked(): TrackedMetadataChange<AddValue, Value> | undefined;
|
224 | addTrackedChange(_key: string, value: TrackedMetadataChange<AddValue, Value>): void;
|
225 | }
|
226 | declare class ReadMetadataStorageCache<AddValue, Value> extends BaseReadMetadataStorageCache<AddValue, Value> {
|
227 | }
|
228 | interface ReadAddUpdateMetadataStorageCacheOptions<Value, Update> extends BaseReadMetadataStorageCacheOptions<Value, Value> {
|
229 | readonly update: (value: Value, update: Update) => Value;
|
230 | }
|
231 | export declare class ReadAddUpdateMetadataStorageCache<Value, Update> extends ReadMetadataStorageCache<Value, Value> {
|
232 | readonly add: AddFunc<Value>;
|
233 | readonly update: UpdateFunc<Value, Update>;
|
234 | constructor(options: ReadAddUpdateMetadataStorageCacheOptions<Value, Update>);
|
235 | }
|
236 | export {};
|