forked from paritytech/substrate-api-sidecar
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ControllerConfig.ts
35 lines (33 loc) · 1.08 KB
/
ControllerConfig.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import LRU from 'lru-cache';
import { controllers } from '../../controllers';
import { IBlock } from '../../types/responses';
import { IOption } from '../util';
import { BlockWeightStore } from './MetadataConsts';
/**
* Controller mounting configuration as an object where the keys are the
* controller class names and the values are booleans indicating whether or not
* to include the controller.
*
* There is an additional `finalizes` field that is used to indicate wether or
* not a chain has finalized blocks. Practically, this only affects if
* `BlocksController` defaults to getFinalizedHead (in the case it finalizes) or
* getHeader (in the case it does not finalize)
*/
export interface ControllerConfig {
/**
* Controller class names to be included
*/
controllers: (keyof typeof controllers)[];
/**
* Options relating to how the controllers are configured.
*/
options: {
/**
* Wether or not the chain finalizes blocks
*/
finalizes: boolean;
minCalcFeeRuntime: IOption<number>;
blockWeightStore: BlockWeightStore;
blockStore: LRU<string, IBlock>;
};
}