@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.
Files changed (115) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +409 -0
  3. package/dist/cjs/chains.d.ts +6 -0
  4. package/dist/cjs/chains.d.ts.map +1 -0
  5. package/dist/cjs/chains.js +637 -0
  6. package/dist/cjs/chains.js.map +1 -0
  7. package/dist/cjs/common.d.ts +318 -0
  8. package/dist/cjs/common.d.ts.map +1 -0
  9. package/dist/cjs/common.js +789 -0
  10. package/dist/cjs/common.js.map +1 -0
  11. package/dist/cjs/constructors.d.ts +27 -0
  12. package/dist/cjs/constructors.d.ts.map +1 -0
  13. package/dist/cjs/constructors.js +53 -0
  14. package/dist/cjs/constructors.js.map +1 -0
  15. package/dist/cjs/crc.d.ts +8 -0
  16. package/dist/cjs/crc.d.ts.map +1 -0
  17. package/dist/cjs/crc.js +63 -0
  18. package/dist/cjs/crc.js.map +1 -0
  19. package/dist/cjs/eips.d.ts +3 -0
  20. package/dist/cjs/eips.d.ts.map +1 -0
  21. package/dist/cjs/eips.js +589 -0
  22. package/dist/cjs/eips.js.map +1 -0
  23. package/dist/cjs/enums.d.ts +65 -0
  24. package/dist/cjs/enums.d.ts.map +1 -0
  25. package/dist/cjs/enums.js +80 -0
  26. package/dist/cjs/enums.js.map +1 -0
  27. package/dist/cjs/gethGenesis.d.ts +145 -0
  28. package/dist/cjs/gethGenesis.d.ts.map +1 -0
  29. package/dist/cjs/gethGenesis.js +26 -0
  30. package/dist/cjs/gethGenesis.js.map +1 -0
  31. package/dist/cjs/hardforks.d.ts +3 -0
  32. package/dist/cjs/hardforks.d.ts.map +1 -0
  33. package/dist/cjs/hardforks.js +207 -0
  34. package/dist/cjs/hardforks.js.map +1 -0
  35. package/dist/cjs/index.d.ts +9 -0
  36. package/dist/cjs/index.d.ts.map +1 -0
  37. package/dist/cjs/index.js +25 -0
  38. package/dist/cjs/index.js.map +1 -0
  39. package/dist/cjs/interfaces.d.ts +132 -0
  40. package/dist/cjs/interfaces.d.ts.map +1 -0
  41. package/dist/cjs/interfaces.js +13 -0
  42. package/dist/cjs/interfaces.js.map +1 -0
  43. package/dist/cjs/package.json +3 -0
  44. package/dist/cjs/types.d.ts +167 -0
  45. package/dist/cjs/types.d.ts.map +1 -0
  46. package/dist/cjs/types.js +3 -0
  47. package/dist/cjs/types.js.map +1 -0
  48. package/dist/cjs/utils.d.ts +60 -0
  49. package/dist/cjs/utils.d.ts.map +1 -0
  50. package/dist/cjs/utils.js +263 -0
  51. package/dist/cjs/utils.js.map +1 -0
  52. package/dist/esm/chains.d.ts +6 -0
  53. package/dist/esm/chains.d.ts.map +1 -0
  54. package/dist/esm/chains.js +634 -0
  55. package/dist/esm/chains.js.map +1 -0
  56. package/dist/esm/common.d.ts +318 -0
  57. package/dist/esm/common.d.ts.map +1 -0
  58. package/dist/esm/common.js +785 -0
  59. package/dist/esm/common.js.map +1 -0
  60. package/dist/esm/constructors.d.ts +27 -0
  61. package/dist/esm/constructors.d.ts.map +1 -0
  62. package/dist/esm/constructors.js +49 -0
  63. package/dist/esm/constructors.js.map +1 -0
  64. package/dist/esm/crc.d.ts +8 -0
  65. package/dist/esm/crc.d.ts.map +1 -0
  66. package/dist/esm/crc.js +59 -0
  67. package/dist/esm/crc.js.map +1 -0
  68. package/dist/esm/eips.d.ts +3 -0
  69. package/dist/esm/eips.d.ts.map +1 -0
  70. package/dist/esm/eips.js +586 -0
  71. package/dist/esm/eips.js.map +1 -0
  72. package/dist/esm/enums.d.ts +65 -0
  73. package/dist/esm/enums.d.ts.map +1 -0
  74. package/dist/esm/enums.js +77 -0
  75. package/dist/esm/enums.js.map +1 -0
  76. package/dist/esm/gethGenesis.d.ts +145 -0
  77. package/dist/esm/gethGenesis.d.ts.map +1 -0
  78. package/dist/esm/gethGenesis.js +23 -0
  79. package/dist/esm/gethGenesis.js.map +1 -0
  80. package/dist/esm/hardforks.d.ts +3 -0
  81. package/dist/esm/hardforks.d.ts.map +1 -0
  82. package/dist/esm/hardforks.js +204 -0
  83. package/dist/esm/hardforks.js.map +1 -0
  84. package/dist/esm/index.d.ts +9 -0
  85. package/dist/esm/index.d.ts.map +1 -0
  86. package/dist/esm/index.js +9 -0
  87. package/dist/esm/index.js.map +1 -0
  88. package/dist/esm/interfaces.d.ts +132 -0
  89. package/dist/esm/interfaces.d.ts.map +1 -0
  90. package/dist/esm/interfaces.js +10 -0
  91. package/dist/esm/interfaces.js.map +1 -0
  92. package/dist/esm/package.json +3 -0
  93. package/dist/esm/types.d.ts +167 -0
  94. package/dist/esm/types.d.ts.map +1 -0
  95. package/dist/esm/types.js +2 -0
  96. package/dist/esm/types.js.map +1 -0
  97. package/dist/esm/utils.d.ts +60 -0
  98. package/dist/esm/utils.d.ts.map +1 -0
  99. package/dist/esm/utils.js +258 -0
  100. package/dist/esm/utils.js.map +1 -0
  101. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
  102. package/dist/tsconfig.prod.esm.tsbuildinfo +1 -0
  103. package/package.json +77 -0
  104. package/src/chains.ts +638 -0
  105. package/src/common.ts +913 -0
  106. package/src/constructors.ts +60 -0
  107. package/src/crc.ts +63 -0
  108. package/src/eips.ts +588 -0
  109. package/src/enums.ts +104 -0
  110. package/src/gethGenesis.ts +175 -0
  111. package/src/hardforks.ts +205 -0
  112. package/src/index.ts +8 -0
  113. package/src/interfaces.ts +191 -0
  114. package/src/types.ts +193 -0
  115. package/src/utils.ts +324 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * External Interfaces for other EthereumJS libraries
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BinaryTreeAccessedStateType = void 0;
7
+ exports.BinaryTreeAccessedStateType = {
8
+ BasicData: 'basicData',
9
+ CodeHash: 'codeHash',
10
+ Code: 'code',
11
+ Storage: 'storage',
12
+ };
13
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAwEU,QAAA,2BAA2B,GAAG;IACzC,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACV,CAAA"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,167 @@
1
+ import type { BigIntLike, KZG, PrefixedHexString } from '@feelyourprotocol/util';
2
+ import type { secp256k1 } from '@noble/curves/secp256k1.js';
3
+ import type { ConsensusAlgorithm, ConsensusType, Hardfork } from './enums.ts';
4
+ export interface ChainName {
5
+ [chainId: string]: string;
6
+ }
7
+ export interface ChainsConfig {
8
+ [key: string]: ChainConfig | ChainName;
9
+ }
10
+ export interface CommonEvent {
11
+ hardforkChanged: [hardfork: string];
12
+ }
13
+ export type CliqueConfig = {
14
+ period: number;
15
+ epoch: number;
16
+ };
17
+ export type EthashConfig = {};
18
+ export type CasperConfig = {};
19
+ type ConsensusConfig = {
20
+ type: ConsensusType | string;
21
+ algorithm: ConsensusAlgorithm | string;
22
+ clique?: CliqueConfig;
23
+ ethash?: EthashConfig;
24
+ casper?: CasperConfig;
25
+ };
26
+ export interface ChainConfig {
27
+ name: string;
28
+ chainId: number | string;
29
+ defaultHardfork?: string;
30
+ comment?: string;
31
+ url?: string;
32
+ genesis: GenesisBlockConfig;
33
+ hardforks: HardforkTransitionConfig[];
34
+ customHardforks?: HardforksDict;
35
+ bootstrapNodes: BootstrapNodeConfig[];
36
+ dnsNetworks?: string[];
37
+ consensus: ConsensusConfig;
38
+ depositContractAddress?: PrefixedHexString;
39
+ }
40
+ export interface GenesisBlockConfig {
41
+ timestamp?: PrefixedHexString;
42
+ gasLimit: number | PrefixedHexString;
43
+ difficulty: number | PrefixedHexString;
44
+ nonce: PrefixedHexString;
45
+ extraData: PrefixedHexString;
46
+ baseFeePerGas?: PrefixedHexString;
47
+ excessBlobGas?: PrefixedHexString;
48
+ requestsHash?: PrefixedHexString;
49
+ }
50
+ export interface HardforkTransitionConfig {
51
+ name: Hardfork | string;
52
+ block: number | null;
53
+ timestamp?: number | string;
54
+ forkHash?: PrefixedHexString | null;
55
+ }
56
+ export interface BootstrapNodeConfig {
57
+ ip: string;
58
+ port: number | string;
59
+ network?: string;
60
+ chainId?: number;
61
+ id: string;
62
+ location: string;
63
+ comment: string;
64
+ }
65
+ export interface CustomCrypto {
66
+ /**
67
+ * Interface for providing custom cryptographic primitives in place of `ethereum-cryptography` variants
68
+ */
69
+ keccak256?: (msg: Uint8Array) => Uint8Array;
70
+ ecrecover?: (msgHash: Uint8Array, v: bigint, r: Uint8Array, s: Uint8Array, chainId?: bigint) => Uint8Array;
71
+ sha256?: (msg: Uint8Array) => Uint8Array;
72
+ ecsign?: typeof secp256k1.sign;
73
+ ecdsaRecover?: (sig: Uint8Array, recId: number, hash: Uint8Array) => Uint8Array;
74
+ kzg?: KZG;
75
+ }
76
+ export interface BaseOpts {
77
+ /**
78
+ * String identifier ('byzantium') for hardfork or {@link Hardfork} enum.
79
+ *
80
+ * Default: Hardfork.London
81
+ */
82
+ hardfork?: string | Hardfork;
83
+ /**
84
+ * Selected EIPs which can be activated, please use an array for instantiation
85
+ * (e.g. `eips: [ 2537, ]`)
86
+ *
87
+ * Currently supported:
88
+ *
89
+ * - [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS12-381 precompiles
90
+ */
91
+ eips?: number[];
92
+ /**
93
+ * Optionally pass in an EIP params dictionary, see one of the
94
+ * EthereumJS library `params.ts` files for an example (e.g. tx, evm).
95
+ * By default parameters are set by the respective library, so this
96
+ * is only relevant if you want to use EthereumJS libraries with a
97
+ * custom parameter set.
98
+ *
99
+ * Example Format:
100
+ *
101
+ * ```ts
102
+ * {
103
+ * 1559: {
104
+ * initialBaseFee: 1000000000,
105
+ * }
106
+ * }
107
+ * ```
108
+ */
109
+ params?: ParamsDict;
110
+ /**
111
+ * This option can be used to replace the most common crypto primitives
112
+ * (keccak256 hashing e.g.) within the EthereumJS ecosystem libraries
113
+ * with alternative implementations (e.g. more performant WASM libraries).
114
+ *
115
+ * Note: please be aware that this is adding new dependencies for your
116
+ * system setup to be used for sensitive/core parts of the functionality
117
+ * and a choice on the libraries to add should be handled with care
118
+ * and be made with eventual security implications considered.
119
+ */
120
+ customCrypto?: CustomCrypto;
121
+ }
122
+ /**
123
+ * Options for instantiating a {@link Common} instance.
124
+ */
125
+ export interface CommonOpts extends BaseOpts {
126
+ /**
127
+ * The chain configuration to be used. There are available configuration object for mainnet
128
+ * (`Mainnet`) and the currently active testnets which can be directly used.
129
+ */
130
+ chain: ChainConfig;
131
+ }
132
+ export interface GethConfigOpts extends BaseOpts {
133
+ chain?: string;
134
+ genesisHash?: Uint8Array;
135
+ }
136
+ export interface HardforkByOpts {
137
+ blockNumber?: BigIntLike;
138
+ timestamp?: BigIntLike;
139
+ }
140
+ export type EIPConfig = {
141
+ minimumHardfork: Hardfork;
142
+ requiredEIPs?: number[];
143
+ };
144
+ export type ParamsConfig = {
145
+ [key: string]: number | string | null;
146
+ };
147
+ export type HardforkConfig = {
148
+ eips?: number[];
149
+ consensus?: ConsensusConfig;
150
+ params?: ParamsConfig;
151
+ };
152
+ export type EIPsDict = {
153
+ [key: string]: EIPConfig;
154
+ };
155
+ export type ParamsDict = {
156
+ [key: string]: ParamsConfig;
157
+ };
158
+ export type HardforksDict = {
159
+ [key: string]: HardforkConfig;
160
+ };
161
+ export type BpoSchedule = {
162
+ targetBlobGasPerBlock: bigint;
163
+ maxBlobGasPerBlock: bigint;
164
+ blobGasPriceUpdateFraction: bigint;
165
+ };
166
+ export {};
167
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import type { GethGenesis } from './gethGenesis.ts';
2
+ import type { HardforksDict } from './types.ts';
3
+ type ConfigHardfork = {
4
+ name: string;
5
+ block: null;
6
+ timestamp: number;
7
+ } | {
8
+ name: string;
9
+ block: number;
10
+ timestamp?: number;
11
+ };
12
+ /**
13
+ * Parses a genesis object exported from Geth into parameters for Common instance
14
+ * @param gethGenesis GethGenesis object
15
+ * @param name optional chain name
16
+ * @returns parsed params
17
+ */
18
+ export declare function parseGethGenesis(gethGenesis: GethGenesis, name?: string): {
19
+ name: string | undefined;
20
+ chainId: number;
21
+ depositContractAddress: string | undefined;
22
+ genesis: {
23
+ timestamp: `0x${string}`;
24
+ gasLimit: `0x${string}`;
25
+ difficulty: `0x${string}` | undefined;
26
+ nonce: `0x${string}`;
27
+ extraData: `0x${string}`;
28
+ mixHash: `0x${string}` | undefined;
29
+ coinbase: `0x${string}` | undefined;
30
+ baseFeePerGas: number | `0x${string}` | null | undefined;
31
+ excessBlobGas: string | undefined;
32
+ requestsHash: string | undefined;
33
+ };
34
+ hardfork: string | undefined;
35
+ hardforks: ConfigHardfork[];
36
+ customHardforks: HardforksDict | undefined;
37
+ bootstrapNodes: never[];
38
+ consensus: {
39
+ type: string;
40
+ algorithm: string;
41
+ clique: {
42
+ period: number | undefined;
43
+ epoch: number | undefined;
44
+ };
45
+ ethash?: undefined;
46
+ } | {
47
+ type: string;
48
+ algorithm: string;
49
+ ethash: {};
50
+ clique?: undefined;
51
+ };
52
+ };
53
+ /**
54
+ * Return the preset chain config for one of the predefined chain configurations
55
+ * @param chain the representing a network name (e.g. 'mainnet') or number representing the chain ID
56
+ * @returns a {@link ChainConfig}
57
+ */
58
+ export declare const getPresetChainConfig: (chain: string | number) => import("./types.ts").ChainConfig;
59
+ export {};
60
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,KAAK,cAAc,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAgQvD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;cA3J7C,MAAM,GAAG,SAAS;eACxB,cAAc,EAAE;;;;;;;;;;;;;;;;;EA8KpC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,GAAG,MAAM,qCAgB1D,CAAA"}
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPresetChainConfig = void 0;
4
+ exports.parseGethGenesis = parseGethGenesis;
5
+ const util_1 = require("@feelyourprotocol/util");
6
+ const chains_ts_1 = require("./chains.js");
7
+ const enums_ts_1 = require("./enums.js");
8
+ const hardforks_ts_1 = require("./hardforks.js");
9
+ /**
10
+ * Transforms Geth formatted nonce (i.e. hex string) to 8 byte 0x-prefixed string used internally
11
+ * @param nonce string parsed from the Geth genesis file
12
+ * @returns nonce as a 0x-prefixed 8 byte string
13
+ */
14
+ function formatNonce(nonce) {
15
+ if (!nonce || nonce === '0x0') {
16
+ return '0x0000000000000000';
17
+ }
18
+ if ((0, util_1.isHexString)(nonce)) {
19
+ return `0x${(0, util_1.stripHexPrefix)(nonce).padStart(16, '0')}`;
20
+ }
21
+ return `0x${nonce.padStart(16, '0')}`;
22
+ }
23
+ /**
24
+ * Converts Geth genesis parameters to an EthereumJS compatible `CommonOpts` object
25
+ * @param gethGenesis GethGenesis object
26
+ * @returns genesis parameters in a `CommonOpts` compliant object
27
+ */
28
+ function parseGethParams(gethGenesis) {
29
+ const { name, config, difficulty, mixHash, gasLimit, coinbase, baseFeePerGas, excessBlobGas, requestsHash, extraData: unparsedExtraData, nonce: unparsedNonce, timestamp: unparsedTimestamp, } = gethGenesis;
30
+ const genesisTimestamp = Number(unparsedTimestamp);
31
+ const { chainId, depositContractAddress } = config;
32
+ // geth is not strictly putting empty fields with a 0x prefix
33
+ const extraData = (0, util_1.addHexPrefix)(unparsedExtraData ?? '');
34
+ // geth may use number for timestamp
35
+ const timestamp = (0, util_1.isHexString)(unparsedTimestamp)
36
+ ? unparsedTimestamp
37
+ : (0, util_1.intToHex)(parseInt(unparsedTimestamp));
38
+ // geth may not give us a nonce strictly formatted to an 8 byte 0x-prefixed hex string
39
+ const nonce = unparsedNonce.length !== 18 ? formatNonce(unparsedNonce) : (0, util_1.addHexPrefix)(unparsedNonce);
40
+ // EIP155 and EIP158 are both part of Spurious Dragon hardfork and must occur at the same time
41
+ // but have different configuration parameters in geth genesis parameters
42
+ if (config.eip155Block !== config.eip158Block) {
43
+ throw (0, util_1.EthereumJSErrorWithoutCode)('EIP155 block number must equal EIP 158 block number since both are part of SpuriousDragon hardfork and the client only supports activating the full hardfork');
44
+ }
45
+ let customHardforks = undefined;
46
+ if (config.blobSchedule !== undefined) {
47
+ customHardforks = {};
48
+ const blobGasPerBlob = 131072;
49
+ for (const [hfKey, hfSchedule] of Object.entries(config.blobSchedule)) {
50
+ const hfConfig = hardforks_ts_1.hardforksDict[hfKey];
51
+ if (hfConfig === undefined) {
52
+ throw (0, util_1.EthereumJSErrorWithoutCode)(`unknown hardfork=${hfKey} specified in blobSchedule`);
53
+ }
54
+ const { target, max, baseFeeUpdateFraction: blobGasPriceUpdateFraction } = hfSchedule;
55
+ if (target === undefined || max === undefined || blobGasPriceUpdateFraction === undefined) {
56
+ throw (0, util_1.EthereumJSErrorWithoutCode)(`undefined target, max or baseFeeUpdateFraction specified in blobSchedule for hardfork=${hfKey}`);
57
+ }
58
+ // copy current hardfork info to custom and add blob config
59
+ const customHfConfig = JSON.parse(JSON.stringify(hfConfig));
60
+ customHfConfig.params = {
61
+ ...customHardforks.params,
62
+ // removes blobGasPriceUpdateFraction key to prevent undefined overriding if undefined
63
+ ...{
64
+ targetBlobGasPerBlock: blobGasPerBlob * target,
65
+ maxBlobGasPerBlock: blobGasPerBlob * max,
66
+ blobGasPriceUpdateFraction,
67
+ },
68
+ };
69
+ customHardforks[hfKey] = customHfConfig;
70
+ }
71
+ }
72
+ const params = {
73
+ name,
74
+ chainId,
75
+ depositContractAddress,
76
+ genesis: {
77
+ timestamp,
78
+ gasLimit,
79
+ difficulty,
80
+ nonce,
81
+ extraData,
82
+ mixHash,
83
+ coinbase,
84
+ baseFeePerGas,
85
+ excessBlobGas,
86
+ requestsHash,
87
+ },
88
+ hardfork: undefined,
89
+ hardforks: [],
90
+ customHardforks,
91
+ bootstrapNodes: [],
92
+ consensus: config.clique !== undefined
93
+ ? {
94
+ type: 'poa',
95
+ algorithm: 'clique',
96
+ clique: {
97
+ // The recent geth genesis seems to be using blockperiodseconds // cspell:disable-line
98
+ // and epochlength for clique specification
99
+ // see: https://hackmd.io/PqZgMpnkSWCWv5joJoFymQ
100
+ period: config.clique.period ?? config.clique.blockperiodseconds, // cspell:disable-line
101
+ epoch: config.clique.epoch ?? config.clique.epochlength,
102
+ },
103
+ }
104
+ : {
105
+ type: 'pow',
106
+ algorithm: 'ethash',
107
+ ethash: {},
108
+ },
109
+ };
110
+ const forkMap = {
111
+ [enums_ts_1.Hardfork.Homestead]: { name: 'homesteadBlock' },
112
+ [enums_ts_1.Hardfork.Dao]: { name: 'daoForkBlock' },
113
+ [enums_ts_1.Hardfork.TangerineWhistle]: { name: 'eip150Block' },
114
+ [enums_ts_1.Hardfork.SpuriousDragon]: { name: 'eip155Block' },
115
+ [enums_ts_1.Hardfork.Byzantium]: { name: 'byzantiumBlock' },
116
+ [enums_ts_1.Hardfork.Constantinople]: { name: 'constantinopleBlock' },
117
+ [enums_ts_1.Hardfork.Petersburg]: { name: 'petersburgBlock' },
118
+ [enums_ts_1.Hardfork.Istanbul]: { name: 'istanbulBlock' },
119
+ [enums_ts_1.Hardfork.MuirGlacier]: { name: 'muirGlacierBlock' },
120
+ [enums_ts_1.Hardfork.Berlin]: { name: 'berlinBlock' },
121
+ [enums_ts_1.Hardfork.London]: { name: 'londonBlock' },
122
+ [enums_ts_1.Hardfork.ArrowGlacier]: { name: 'arrowGlacierBlock' },
123
+ [enums_ts_1.Hardfork.GrayGlacier]: { name: 'grayGlacierBlock' },
124
+ [enums_ts_1.Hardfork.Paris]: { name: 'mergeForkBlock', postMerge: true },
125
+ [enums_ts_1.Hardfork.MergeNetsplitBlock]: { name: 'mergeNetsplitBlock', postMerge: true },
126
+ [enums_ts_1.Hardfork.Shanghai]: { name: 'shanghaiTime', postMerge: true, isTimestamp: true },
127
+ [enums_ts_1.Hardfork.Cancun]: { name: 'cancunTime', postMerge: true, isTimestamp: true },
128
+ [enums_ts_1.Hardfork.Prague]: { name: 'pragueTime', postMerge: true, isTimestamp: true },
129
+ [enums_ts_1.Hardfork.Osaka]: { name: 'osakaTime', postMerge: true, isTimestamp: true },
130
+ [enums_ts_1.Hardfork.Bpo1]: { name: 'bpo1Time', postMerge: true, isTimestamp: true },
131
+ [enums_ts_1.Hardfork.Bpo2]: { name: 'bpo2Time', postMerge: true, isTimestamp: true },
132
+ [enums_ts_1.Hardfork.Bpo3]: { name: 'bpo3Time', postMerge: true, isTimestamp: true },
133
+ [enums_ts_1.Hardfork.Bpo4]: { name: 'bpo4Time', postMerge: true, isTimestamp: true },
134
+ [enums_ts_1.Hardfork.Bpo5]: { name: 'bpo5Time', postMerge: true, isTimestamp: true },
135
+ };
136
+ // forkMapRev is the map from config field name to Hardfork
137
+ const forkMapRev = Object.keys(forkMap).reduce((acc, elem) => {
138
+ acc[forkMap[elem].name] = elem;
139
+ return acc;
140
+ }, {});
141
+ params.hardforks = Object.entries(forkMapRev)
142
+ .map(([nameBlock, hardfork]) => {
143
+ const configValue = config[nameBlock];
144
+ const isTimestamp = forkMap[hardfork].isTimestamp === true;
145
+ const block = isTimestamp || typeof configValue !== 'number' ? null : configValue;
146
+ const timestamp = isTimestamp && typeof configValue === 'number' ? configValue : undefined;
147
+ return { name: hardfork, block, timestamp };
148
+ })
149
+ .filter(({ block, timestamp }) => block !== null || timestamp !== undefined);
150
+ const mergeIndex = params.hardforks.findIndex((hf) => hf.name === enums_ts_1.Hardfork.Paris);
151
+ let mergeNetsplitBlockIndex = params.hardforks.findIndex((hf) => hf.name === enums_ts_1.Hardfork.MergeNetsplitBlock);
152
+ const firstPostMergeHFIndex = params.hardforks.findIndex((hf) => hf.timestamp !== undefined && hf.timestamp !== null);
153
+ // If we are missing a mergeNetsplitBlock, we assume it is at the same block as Paris (if present)
154
+ if (mergeIndex !== -1 && mergeNetsplitBlockIndex === -1) {
155
+ params.hardforks.splice(mergeIndex + 1, 0, {
156
+ name: enums_ts_1.Hardfork.MergeNetsplitBlock,
157
+ block: params.hardforks[mergeIndex].block,
158
+ });
159
+ mergeNetsplitBlockIndex = mergeIndex + 1;
160
+ }
161
+ // or zero if not and a postmerge hardfork is set (since testnets using the geth genesis format are all currently start postmerge)
162
+ if (firstPostMergeHFIndex !== -1) {
163
+ if (mergeNetsplitBlockIndex === -1) {
164
+ params.hardforks.splice(firstPostMergeHFIndex, 0, {
165
+ name: enums_ts_1.Hardfork.MergeNetsplitBlock,
166
+ block: 0,
167
+ });
168
+ mergeNetsplitBlockIndex = firstPostMergeHFIndex;
169
+ }
170
+ if (mergeIndex === -1) {
171
+ // If we don't have a Paris hardfork, add it at the mergeNetsplitBlock
172
+ params.hardforks.splice(mergeNetsplitBlockIndex, 0, {
173
+ name: enums_ts_1.Hardfork.Paris,
174
+ block: params.hardforks[mergeNetsplitBlockIndex].block,
175
+ });
176
+ }
177
+ // Check for terminalTotalDifficultyPassed param in genesis config if no post merge hardforks are set
178
+ }
179
+ else if (config.terminalTotalDifficultyPassed === true) {
180
+ if (mergeIndex === -1) {
181
+ // If we don't have a Paris hardfork, add it at end of hardfork array
182
+ params.hardforks.push({
183
+ name: enums_ts_1.Hardfork.Paris,
184
+ block: 0,
185
+ });
186
+ }
187
+ // If we don't have a MergeNetsplitBlock hardfork, add it at end of hardfork array
188
+ if (mergeNetsplitBlockIndex === -1) {
189
+ params.hardforks.push({
190
+ name: enums_ts_1.Hardfork.MergeNetsplitBlock,
191
+ block: 0,
192
+ });
193
+ mergeNetsplitBlockIndex = firstPostMergeHFIndex;
194
+ }
195
+ }
196
+ // TODO: Decide if we actually need to do this since `ForkMap` specifies the order we expect things in
197
+ params.hardforks.sort(function (a, b) {
198
+ return (a.block ?? Infinity) - (b.block ?? Infinity);
199
+ });
200
+ params.hardforks.sort(function (a, b) {
201
+ // non timestamp forks come before any timestamp forks
202
+ return (a.timestamp ?? 0) - (b.timestamp ?? 0);
203
+ });
204
+ // only set the genesis timestamp forks to zero post the above sort has happened
205
+ // to get the correct sorting
206
+ for (const hf of params.hardforks) {
207
+ if (hf.timestamp === genesisTimestamp) {
208
+ hf.timestamp = 0;
209
+ }
210
+ }
211
+ const latestHardfork = params.hardforks.length > 0 ? params.hardforks.slice(-1)[0] : undefined;
212
+ params.hardfork = latestHardfork?.name;
213
+ params.hardforks.unshift({ name: enums_ts_1.Hardfork.Chainstart, block: 0 });
214
+ return params;
215
+ }
216
+ /**
217
+ * Parses a genesis object exported from Geth into parameters for Common instance
218
+ * @param gethGenesis GethGenesis object
219
+ * @param name optional chain name
220
+ * @returns parsed params
221
+ */
222
+ function parseGethGenesis(gethGenesis, name) {
223
+ try {
224
+ const required = ['config', 'difficulty', 'gasLimit', 'nonce', 'alloc'];
225
+ if (required.some((field) => !(field in gethGenesis))) {
226
+ const missingField = required.filter((field) => !(field in gethGenesis));
227
+ throw (0, util_1.EthereumJSErrorWithoutCode)(`Invalid format, expected geth genesis field "${missingField}" missing`);
228
+ }
229
+ // We copy the object here because it's frozen in browser and properties can't be modified
230
+ const finalGethGenesis = { ...gethGenesis };
231
+ if (name !== undefined) {
232
+ finalGethGenesis.name = name;
233
+ }
234
+ return parseGethParams(finalGethGenesis);
235
+ }
236
+ catch (e) {
237
+ throw (0, util_1.EthereumJSErrorWithoutCode)(`Error parsing parameters file: ${e.message}`);
238
+ }
239
+ }
240
+ /**
241
+ * Return the preset chain config for one of the predefined chain configurations
242
+ * @param chain the representing a network name (e.g. 'mainnet') or number representing the chain ID
243
+ * @returns a {@link ChainConfig}
244
+ */
245
+ const getPresetChainConfig = (chain) => {
246
+ switch (chain) {
247
+ case 'holesky':
248
+ case 17000:
249
+ return chains_ts_1.Holesky;
250
+ case 'hoodi':
251
+ case 560048:
252
+ return chains_ts_1.Hoodi;
253
+ case 'sepolia':
254
+ case 11155111:
255
+ return chains_ts_1.Sepolia;
256
+ case 'mainnet':
257
+ case 1:
258
+ default:
259
+ return chains_ts_1.Mainnet;
260
+ }
261
+ };
262
+ exports.getPresetChainConfig = getPresetChainConfig;
263
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ChainConfig } from './types.ts';
2
+ export declare const Mainnet: ChainConfig;
3
+ export declare const Sepolia: ChainConfig;
4
+ export declare const Holesky: ChainConfig;
5
+ export declare const Hoodi: ChainConfig;
6
+ //# sourceMappingURL=chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,OAAO,EAAE,WA+KrB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,WAiKrB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,WA6IrB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,WAwJnB,CAAA"}