@feelyourprotocol/common 8141.0.0
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/LICENSE +22 -0
- package/README.md +409 -0
- package/dist/cjs/chains.d.ts +6 -0
- package/dist/cjs/chains.d.ts.map +1 -0
- package/dist/cjs/chains.js +637 -0
- package/dist/cjs/chains.js.map +1 -0
- package/dist/cjs/common.d.ts +318 -0
- package/dist/cjs/common.d.ts.map +1 -0
- package/dist/cjs/common.js +789 -0
- package/dist/cjs/common.js.map +1 -0
- package/dist/cjs/constructors.d.ts +27 -0
- package/dist/cjs/constructors.d.ts.map +1 -0
- package/dist/cjs/constructors.js +53 -0
- package/dist/cjs/constructors.js.map +1 -0
- package/dist/cjs/crc.d.ts +8 -0
- package/dist/cjs/crc.d.ts.map +1 -0
- package/dist/cjs/crc.js +63 -0
- package/dist/cjs/crc.js.map +1 -0
- package/dist/cjs/eips.d.ts +3 -0
- package/dist/cjs/eips.d.ts.map +1 -0
- package/dist/cjs/eips.js +589 -0
- package/dist/cjs/eips.js.map +1 -0
- package/dist/cjs/enums.d.ts +65 -0
- package/dist/cjs/enums.d.ts.map +1 -0
- package/dist/cjs/enums.js +80 -0
- package/dist/cjs/enums.js.map +1 -0
- package/dist/cjs/gethGenesis.d.ts +145 -0
- package/dist/cjs/gethGenesis.d.ts.map +1 -0
- package/dist/cjs/gethGenesis.js +26 -0
- package/dist/cjs/gethGenesis.js.map +1 -0
- package/dist/cjs/hardforks.d.ts +3 -0
- package/dist/cjs/hardforks.d.ts.map +1 -0
- package/dist/cjs/hardforks.js +207 -0
- package/dist/cjs/hardforks.js.map +1 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces.d.ts +132 -0
- package/dist/cjs/interfaces.d.ts.map +1 -0
- package/dist/cjs/interfaces.js +13 -0
- package/dist/cjs/interfaces.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/types.d.ts +167 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.d.ts +60 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +263 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/chains.d.ts +6 -0
- package/dist/esm/chains.d.ts.map +1 -0
- package/dist/esm/chains.js +634 -0
- package/dist/esm/chains.js.map +1 -0
- package/dist/esm/common.d.ts +318 -0
- package/dist/esm/common.d.ts.map +1 -0
- package/dist/esm/common.js +785 -0
- package/dist/esm/common.js.map +1 -0
- package/dist/esm/constructors.d.ts +27 -0
- package/dist/esm/constructors.d.ts.map +1 -0
- package/dist/esm/constructors.js +49 -0
- package/dist/esm/constructors.js.map +1 -0
- package/dist/esm/crc.d.ts +8 -0
- package/dist/esm/crc.d.ts.map +1 -0
- package/dist/esm/crc.js +59 -0
- package/dist/esm/crc.js.map +1 -0
- package/dist/esm/eips.d.ts +3 -0
- package/dist/esm/eips.d.ts.map +1 -0
- package/dist/esm/eips.js +586 -0
- package/dist/esm/eips.js.map +1 -0
- package/dist/esm/enums.d.ts +65 -0
- package/dist/esm/enums.d.ts.map +1 -0
- package/dist/esm/enums.js +77 -0
- package/dist/esm/enums.js.map +1 -0
- package/dist/esm/gethGenesis.d.ts +145 -0
- package/dist/esm/gethGenesis.d.ts.map +1 -0
- package/dist/esm/gethGenesis.js +23 -0
- package/dist/esm/gethGenesis.js.map +1 -0
- package/dist/esm/hardforks.d.ts +3 -0
- package/dist/esm/hardforks.d.ts.map +1 -0
- package/dist/esm/hardforks.js +204 -0
- package/dist/esm/hardforks.js.map +1 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces.d.ts +132 -0
- package/dist/esm/interfaces.d.ts.map +1 -0
- package/dist/esm/interfaces.js +10 -0
- package/dist/esm/interfaces.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/types.d.ts +167 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.d.ts +60 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +258 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.prod.esm.tsbuildinfo +1 -0
- package/package.json +77 -0
- package/src/chains.ts +638 -0
- package/src/common.ts +913 -0
- package/src/constructors.ts +60 -0
- package/src/crc.ts +63 -0
- package/src/eips.ts +588 -0
- package/src/enums.ts +104 -0
- package/src/gethGenesis.ts +175 -0
- package/src/hardforks.ts +205 -0
- package/src/index.ts +8 -0
- package/src/interfaces.ts +191 -0
- package/src/types.ts +193 -0
- package/src/utils.ts +324 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { Hardfork } from './enums.ts';
|
|
3
|
+
import type { BigIntLike, PrefixedHexString } from '@feelyourprotocol/util';
|
|
4
|
+
import type { ConsensusAlgorithm, ConsensusType } from './enums.ts';
|
|
5
|
+
import type { BootstrapNodeConfig, BpoSchedule, CasperConfig, ChainConfig, CliqueConfig, CommonEvent, CommonOpts, CustomCrypto, EthashConfig, GenesisBlockConfig, HardforkByOpts, HardforkConfig, HardforkTransitionConfig, ParamsConfig, ParamsDict } from './types.ts';
|
|
6
|
+
/**
|
|
7
|
+
* Common class to access chain and hardfork parameters and to provide
|
|
8
|
+
* a unified and shared view on the network and hardfork state.
|
|
9
|
+
*
|
|
10
|
+
* Use the {@link createCustomCommon} constructor for creating simple
|
|
11
|
+
* custom chain {@link Common} objects (more complete custom chain setups
|
|
12
|
+
* can be created via the main constructor).
|
|
13
|
+
*
|
|
14
|
+
* Use the {@link createCommonFromGethGenesis} constructor for creating
|
|
15
|
+
* a Common object from a Geth genesis file.
|
|
16
|
+
*/
|
|
17
|
+
export declare class Common {
|
|
18
|
+
readonly DEFAULT_HARDFORK: string | Hardfork;
|
|
19
|
+
protected _chainParams: ChainConfig;
|
|
20
|
+
protected _hardfork: string | Hardfork;
|
|
21
|
+
protected _eips: number[];
|
|
22
|
+
protected _params: ParamsDict;
|
|
23
|
+
readonly customCrypto: CustomCrypto;
|
|
24
|
+
protected _paramsCache: ParamsConfig;
|
|
25
|
+
protected _activatedEIPsCache: number[];
|
|
26
|
+
protected HARDFORK_CHANGES: [string, HardforkConfig][];
|
|
27
|
+
events: EventEmitter<CommonEvent>;
|
|
28
|
+
constructor(opts: CommonOpts);
|
|
29
|
+
/**
|
|
30
|
+
* Update the internal Common EIP params set. Existing values
|
|
31
|
+
* will get preserved unless there is a new value for a parameter
|
|
32
|
+
* provided with params.
|
|
33
|
+
*
|
|
34
|
+
* Example Format:
|
|
35
|
+
*
|
|
36
|
+
* ```ts
|
|
37
|
+
* {
|
|
38
|
+
* 1559: {
|
|
39
|
+
* initialBaseFee: 1000000000,
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @param params
|
|
45
|
+
*/
|
|
46
|
+
updateParams(params: ParamsDict): void;
|
|
47
|
+
/**
|
|
48
|
+
* Fully resets the internal Common EIP params set with the values provided.
|
|
49
|
+
*
|
|
50
|
+
* Example Format:
|
|
51
|
+
*
|
|
52
|
+
* ```ts
|
|
53
|
+
* {
|
|
54
|
+
* 1559: {
|
|
55
|
+
* initialBaseFee: 1000000000,
|
|
56
|
+
* }
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @param params
|
|
61
|
+
*/
|
|
62
|
+
resetParams(params: ParamsDict): void;
|
|
63
|
+
/**
|
|
64
|
+
* Sets the hardfork to get params for
|
|
65
|
+
* @param hardfork String identifier (e.g. 'byzantium') or {@link Hardfork} enum
|
|
66
|
+
*/
|
|
67
|
+
setHardfork(hardfork: string | Hardfork): void;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the hardfork either based on block number (older HFs) or
|
|
70
|
+
* timestamp (Shanghai upwards).
|
|
71
|
+
*
|
|
72
|
+
* @param opts Block number or timestamp
|
|
73
|
+
* @returns The name of the HF
|
|
74
|
+
*/
|
|
75
|
+
getHardforkBy(opts: HardforkByOpts): string;
|
|
76
|
+
/**
|
|
77
|
+
* Sets a new hardfork either based on block number (older HFs) or
|
|
78
|
+
* timestamp (Shanghai upwards).
|
|
79
|
+
*
|
|
80
|
+
* @param opts Block number or timestamp
|
|
81
|
+
* @returns The name of the HF set
|
|
82
|
+
*/
|
|
83
|
+
setHardforkBy(opts: HardforkByOpts): string;
|
|
84
|
+
/**
|
|
85
|
+
* Internal helper function, returns the params for the given hardfork for the chain set
|
|
86
|
+
* @param hardfork Hardfork name
|
|
87
|
+
* @returns Dictionary with hardfork params or null if hardfork not on chain
|
|
88
|
+
*/
|
|
89
|
+
protected _getHardfork(hardfork: string | Hardfork): HardforkTransitionConfig | null;
|
|
90
|
+
/**
|
|
91
|
+
* Sets the active EIPs
|
|
92
|
+
* @param eips
|
|
93
|
+
*/
|
|
94
|
+
setEIPs(eips?: number[]): void;
|
|
95
|
+
/**
|
|
96
|
+
* Internal helper for _buildParamsCache()
|
|
97
|
+
*/
|
|
98
|
+
protected _mergeWithParamsCache(params: ParamsConfig): void;
|
|
99
|
+
/**
|
|
100
|
+
* Build up a cache for all parameter values for the current HF and all activated EIPs
|
|
101
|
+
*/
|
|
102
|
+
protected _buildParamsCache(): void;
|
|
103
|
+
/**
|
|
104
|
+
* Builds the cache of EIPs activated either via hardforks or constructor `eips`.
|
|
105
|
+
*/
|
|
106
|
+
protected _buildActivatedEIPsCache(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Returns a parameter for the current chain setup
|
|
109
|
+
*
|
|
110
|
+
* If the parameter is present in an EIP, the EIP always takes precedence.
|
|
111
|
+
* Otherwise the parameter is taken from the latest applied HF with
|
|
112
|
+
* a change on the respective parameter.
|
|
113
|
+
*
|
|
114
|
+
* @param name Parameter name (e.g. 'minGasLimit')
|
|
115
|
+
* @returns The value requested (throws if not found)
|
|
116
|
+
*/
|
|
117
|
+
param(name: string): bigint;
|
|
118
|
+
/**
|
|
119
|
+
* Returns the parameter corresponding to a hardfork
|
|
120
|
+
* @param name Parameter name (e.g. 'minGasLimit')
|
|
121
|
+
* @param hardfork Hardfork name
|
|
122
|
+
* @returns The value requested (throws if not found)
|
|
123
|
+
*/
|
|
124
|
+
paramByHardfork(name: string, hardfork: string | Hardfork): bigint;
|
|
125
|
+
/**
|
|
126
|
+
* Returns a parameter corresponding to an EIP
|
|
127
|
+
* @param name Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic)
|
|
128
|
+
* @param eip Number of the EIP
|
|
129
|
+
* @returns The value requested (throws if not found)
|
|
130
|
+
*/
|
|
131
|
+
paramByEIP(name: string, eip: number): bigint | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Returns a parameter for the hardfork active on block number or
|
|
134
|
+
* optional provided total difficulty (Merge HF)
|
|
135
|
+
* @param name Parameter name
|
|
136
|
+
* @param blockNumber Block number
|
|
137
|
+
* @returns The value requested or `BigInt(0)` if not found
|
|
138
|
+
*/
|
|
139
|
+
paramByBlock(name: string, blockNumber: BigIntLike, timestamp?: BigIntLike): bigint;
|
|
140
|
+
/**
|
|
141
|
+
* Returns the blob gas schedule for the current hardfork
|
|
142
|
+
* @returns The blob gas schedule
|
|
143
|
+
*/
|
|
144
|
+
getBlobGasSchedule(): BpoSchedule;
|
|
145
|
+
/**
|
|
146
|
+
* Checks if an EIP is activated by either being included in the EIPs
|
|
147
|
+
* manually passed in with the {@link CommonOpts.eips} or in a
|
|
148
|
+
* hardfork currently being active
|
|
149
|
+
*
|
|
150
|
+
* Note: this method only works for EIPs being supported
|
|
151
|
+
* by the {@link CommonOpts.eips} constructor option
|
|
152
|
+
* @param eip
|
|
153
|
+
*/
|
|
154
|
+
isActivatedEIP(eip: number): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Checks if set or provided hardfork is active on block number
|
|
157
|
+
* @param hardfork Hardfork name or null (for HF set)
|
|
158
|
+
* @param blockNumber
|
|
159
|
+
* @returns True if HF is active on block number
|
|
160
|
+
*/
|
|
161
|
+
hardforkIsActiveOnBlock(hardfork: string | Hardfork | null, blockNumber: BigIntLike): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Alias to hardforkIsActiveOnBlock when hardfork is set
|
|
164
|
+
* @param blockNumber
|
|
165
|
+
* @returns True if HF is active on block number
|
|
166
|
+
*/
|
|
167
|
+
activeOnBlock(blockNumber: BigIntLike): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Sequence based check if given or set HF1 is greater than or equal HF2
|
|
170
|
+
* @param hardfork1 Hardfork name or null (if set)
|
|
171
|
+
* @param hardfork2 Hardfork name
|
|
172
|
+
* @returns True if HF1 gte HF2
|
|
173
|
+
*/
|
|
174
|
+
hardforkGteHardfork(hardfork1: string | Hardfork | null, hardfork2: string | Hardfork): boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Alias to hardforkGteHardfork when hardfork is set
|
|
177
|
+
* @param hardfork Hardfork name
|
|
178
|
+
* @returns True if hardfork set is greater than hardfork provided
|
|
179
|
+
*/
|
|
180
|
+
gteHardfork(hardfork: string | Hardfork): boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Returns the hardfork change block for hardfork provided or set
|
|
183
|
+
* @param hardfork Hardfork name, optional if HF set
|
|
184
|
+
* @returns Block number or null if unscheduled
|
|
185
|
+
*/
|
|
186
|
+
hardforkBlock(hardfork?: string | Hardfork): bigint | null;
|
|
187
|
+
/**
|
|
188
|
+
* Returns the timestamp at which a given hardfork is scheduled (if any).
|
|
189
|
+
* @param hardfork Hardfork name, optional if HF set
|
|
190
|
+
* @returns Timestamp or null if the hardfork is not timestamp-based
|
|
191
|
+
*/
|
|
192
|
+
hardforkTimestamp(hardfork?: string | Hardfork): bigint | null;
|
|
193
|
+
/**
|
|
194
|
+
* Returns the hardfork change block for eip
|
|
195
|
+
* @param eip EIP number
|
|
196
|
+
* @returns Block number or null if unscheduled
|
|
197
|
+
*/
|
|
198
|
+
eipBlock(eip: number): bigint | null;
|
|
199
|
+
/**
|
|
200
|
+
* Returns the scheduled timestamp of the EIP (if scheduled and scheduled by timestamp)
|
|
201
|
+
* @param eip EIP number
|
|
202
|
+
* @returns Scheduled timestamp. If this EIP is unscheduled, or the EIP is scheduled by block number, then it returns `null`.
|
|
203
|
+
*/
|
|
204
|
+
eipTimestamp(eip: number): bigint | null;
|
|
205
|
+
/**
|
|
206
|
+
* Returns the block number or timestamp at which the next hardfork will occur.
|
|
207
|
+
* For pre-merge hardforks, returns the block number.
|
|
208
|
+
* For post-merge hardforks, returns the timestamp.
|
|
209
|
+
* Returns null if there is no next hardfork.
|
|
210
|
+
* @param hardfork Hardfork name, optional if HF set
|
|
211
|
+
* @returns Block number or timestamp, or null if not available
|
|
212
|
+
*/
|
|
213
|
+
nextHardforkBlockOrTimestamp(hardfork?: string | Hardfork): bigint | null;
|
|
214
|
+
/**
|
|
215
|
+
* Internal helper function to calculate a fork hash
|
|
216
|
+
* @param hardfork Hardfork name
|
|
217
|
+
* @param genesisHash Genesis block hash of the chain
|
|
218
|
+
* @returns Fork hash as hex string
|
|
219
|
+
*/
|
|
220
|
+
protected _calcForkHash(hardfork: string | Hardfork, genesisHash: Uint8Array): PrefixedHexString;
|
|
221
|
+
/**
|
|
222
|
+
* Returns an eth/64 compliant fork hash (EIP-2124)
|
|
223
|
+
* @param hardfork Hardfork name, optional if HF set
|
|
224
|
+
* @param genesisHash Genesis block hash of the network, optional if already defined and not needed to be calculated
|
|
225
|
+
* @returns Fork hash as a hex string
|
|
226
|
+
*/
|
|
227
|
+
forkHash(hardfork?: string | Hardfork, genesisHash?: Uint8Array): PrefixedHexString;
|
|
228
|
+
/**
|
|
229
|
+
*
|
|
230
|
+
* @param forkHash Fork hash as a hex string
|
|
231
|
+
* @returns Array with hardfork data (name, block, forkHash)
|
|
232
|
+
*/
|
|
233
|
+
hardforkForForkHash(forkHash: string): HardforkTransitionConfig | null;
|
|
234
|
+
/**
|
|
235
|
+
* Sets any missing forkHashes on this {@link Common} instance.
|
|
236
|
+
* @param genesisHash The genesis block hash
|
|
237
|
+
*/
|
|
238
|
+
setForkHashes(genesisHash: Uint8Array): void;
|
|
239
|
+
/**
|
|
240
|
+
* Returns the Genesis parameters of the current chain
|
|
241
|
+
* @returns Genesis dictionary
|
|
242
|
+
*/
|
|
243
|
+
genesis(): GenesisBlockConfig;
|
|
244
|
+
/**
|
|
245
|
+
* Returns the hardfork definitions for the current chain.
|
|
246
|
+
* @returns Array of hardfork transition configs
|
|
247
|
+
*/
|
|
248
|
+
hardforks(): HardforkTransitionConfig[];
|
|
249
|
+
/**
|
|
250
|
+
* Returns bootstrap nodes for the current chain.
|
|
251
|
+
* @returns Array of bootstrap node configs
|
|
252
|
+
*/
|
|
253
|
+
bootstrapNodes(): BootstrapNodeConfig[];
|
|
254
|
+
/**
|
|
255
|
+
* Returns DNS networks for the current chain
|
|
256
|
+
* @returns {String[]} Array of DNS ENR urls
|
|
257
|
+
*/
|
|
258
|
+
dnsNetworks(): string[];
|
|
259
|
+
/**
|
|
260
|
+
* Returns the hardfork set
|
|
261
|
+
* @returns Hardfork name
|
|
262
|
+
*/
|
|
263
|
+
hardfork(): string | Hardfork;
|
|
264
|
+
/**
|
|
265
|
+
* Returns the Id of current chain
|
|
266
|
+
* @returns chain Id
|
|
267
|
+
*/
|
|
268
|
+
chainId(): bigint;
|
|
269
|
+
/**
|
|
270
|
+
* Returns the name of current chain
|
|
271
|
+
* @returns chain name (lower case)
|
|
272
|
+
*/
|
|
273
|
+
chainName(): string;
|
|
274
|
+
/**
|
|
275
|
+
* Returns the additionally activated EIPs
|
|
276
|
+
* (by using the `eips` constructor option)
|
|
277
|
+
* @returns List of EIPs
|
|
278
|
+
*/
|
|
279
|
+
eips(): number[];
|
|
280
|
+
/**
|
|
281
|
+
* Returns the consensus type of the network
|
|
282
|
+
* Possible values: "pow"|"poa"|"pos"
|
|
283
|
+
*
|
|
284
|
+
* Note: This value can update along a Hardfork.
|
|
285
|
+
*/
|
|
286
|
+
consensusType(): string | ConsensusType;
|
|
287
|
+
/**
|
|
288
|
+
* Returns the concrete consensus implementation
|
|
289
|
+
* algorithm or protocol for the network
|
|
290
|
+
* e.g. "ethash" for "pow" consensus type,
|
|
291
|
+
* "clique" for "poa" consensus type or
|
|
292
|
+
* "casper" for "pos" consensus type.
|
|
293
|
+
*
|
|
294
|
+
* Note: This value can update along a Hardfork.
|
|
295
|
+
*/
|
|
296
|
+
consensusAlgorithm(): string | ConsensusAlgorithm;
|
|
297
|
+
/**
|
|
298
|
+
* Returns a dictionary with consensus configuration
|
|
299
|
+
* parameters based on the consensus algorithm
|
|
300
|
+
*
|
|
301
|
+
* Expected returns (parameters must be present in
|
|
302
|
+
* the respective chain JSON files):
|
|
303
|
+
*
|
|
304
|
+
* ethash: empty object
|
|
305
|
+
* clique: period, epoch
|
|
306
|
+
* casper: empty object
|
|
307
|
+
*
|
|
308
|
+
* Note: This value can update along a Hardfork.
|
|
309
|
+
*/
|
|
310
|
+
consensusConfig(): {
|
|
311
|
+
[key: string]: CliqueConfig | EthashConfig | CasperConfig;
|
|
312
|
+
};
|
|
313
|
+
/**
|
|
314
|
+
* Returns a deep copy of this {@link Common} instance.
|
|
315
|
+
*/
|
|
316
|
+
copy(): Common;
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"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"}
|