@nomicfoundation/edr 0.12.0-next.1 → 0.12.0-next.14

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.
@@ -1,14 +1,14 @@
1
1
  use std::sync::Arc;
2
2
 
3
- use edr_eth::l1;
4
3
  use edr_generic::GenericChainSpec;
5
4
  use edr_napi_core::{
6
- logger::{self, Logger},
7
- provider::{self, ProviderBuilder, SyncProviderFactory},
8
- spec::SyncNapiSpec as _,
9
- subscription,
5
+ logger::Logger,
6
+ provider::{SyncProvider, SyncProviderFactory},
7
+ subscription::subscriber_callback_for_chain_spec,
10
8
  };
9
+ use edr_provider::time::CurrentTime;
11
10
  use edr_solidity::contract_decoder::ContractDecoder;
11
+ use napi::tokio::runtime;
12
12
  use napi_derive::napi;
13
13
 
14
14
  use crate::provider::ProviderFactory;
@@ -16,33 +16,40 @@ use crate::provider::ProviderFactory;
16
16
  pub struct GenericChainProviderFactory;
17
17
 
18
18
  impl SyncProviderFactory for GenericChainProviderFactory {
19
- fn create_provider_builder(
19
+ fn create_provider(
20
20
  &self,
21
- env: &napi::Env,
21
+ runtime: runtime::Handle,
22
22
  provider_config: edr_napi_core::provider::Config,
23
- logger_config: logger::Config,
24
- subscription_config: subscription::Config,
23
+ logger_config: edr_napi_core::logger::Config,
24
+ subscription_callback: edr_napi_core::subscription::Callback,
25
25
  contract_decoder: Arc<ContractDecoder>,
26
- ) -> napi::Result<Box<dyn provider::Builder>> {
27
- let logger = Logger::<GenericChainSpec>::new(logger_config, Arc::clone(&contract_decoder))?;
26
+ ) -> napi::Result<Arc<dyn SyncProvider>> {
27
+ let logger = Logger::<GenericChainSpec, CurrentTime>::new(
28
+ logger_config,
29
+ Arc::clone(&contract_decoder),
30
+ )?;
28
31
 
29
32
  let provider_config =
30
- edr_provider::ProviderConfig::<l1::SpecId>::try_from(provider_config)?;
33
+ edr_provider::ProviderConfig::<edr_chain_l1::Hardfork>::try_from(provider_config)?;
31
34
 
32
- let subscription_callback =
33
- subscription::Callback::new(env, subscription_config.subscription_callback)?;
34
-
35
- Ok(Box::new(ProviderBuilder::new(
36
- contract_decoder,
35
+ let provider = edr_provider::Provider::<GenericChainSpec>::new(
36
+ runtime.clone(),
37
37
  Box::new(logger),
38
+ subscriber_callback_for_chain_spec::<GenericChainSpec, CurrentTime>(
39
+ subscription_callback,
40
+ ),
38
41
  provider_config,
39
- subscription_callback,
40
- )))
42
+ contract_decoder,
43
+ CurrentTime,
44
+ )
45
+ .map_err(|error| napi::Error::new(napi::Status::GenericFailure, error.to_string()))?;
46
+
47
+ Ok(Arc::new(provider))
41
48
  }
42
49
  }
43
50
 
44
51
  #[napi]
45
- pub const GENERIC_CHAIN_TYPE: &str = GenericChainSpec::CHAIN_TYPE;
52
+ pub const GENERIC_CHAIN_TYPE: &str = edr_generic::CHAIN_TYPE;
46
53
 
47
54
  #[napi(catch_unwind)]
48
55
  pub fn generic_chain_provider_factory() -> ProviderFactory {
package/src/chains/l1.rs CHANGED
@@ -1,18 +1,21 @@
1
1
  use std::{str::FromStr, sync::Arc};
2
2
 
3
- use edr_eth::l1::{self, L1ChainSpec};
4
- use edr_evm::eips::{
3
+ use edr_blockchain_fork::eips::{
5
4
  eip2935::{HISTORY_STORAGE_ADDRESS, HISTORY_STORAGE_UNSUPPORTED_BYTECODE},
6
5
  eip4788::{BEACON_ROOTS_ADDRESS, BEACON_ROOTS_BYTECODE},
7
6
  };
7
+ use edr_chain_l1::L1ChainSpec;
8
8
  use edr_napi_core::{
9
9
  logger::Logger,
10
- provider::{self, ProviderBuilder, SyncProviderFactory},
11
- spec::SyncNapiSpec as _,
12
- subscription,
10
+ provider::{SyncProvider, SyncProviderFactory},
11
+ subscription::subscriber_callback_for_chain_spec,
13
12
  };
13
+ use edr_provider::time::CurrentTime;
14
14
  use edr_solidity::contract_decoder::ContractDecoder;
15
- use napi::bindgen_prelude::{BigInt, Uint8Array};
15
+ use napi::{
16
+ bindgen_prelude::{BigInt, Uint8Array},
17
+ tokio::runtime,
18
+ };
16
19
  use napi_derive::napi;
17
20
 
18
21
  use crate::{account::AccountOverride, provider::ProviderFactory};
@@ -20,33 +23,36 @@ use crate::{account::AccountOverride, provider::ProviderFactory};
20
23
  pub struct L1ProviderFactory;
21
24
 
22
25
  impl SyncProviderFactory for L1ProviderFactory {
23
- fn create_provider_builder(
26
+ fn create_provider(
24
27
  &self,
25
- env: &napi::Env,
28
+ runtime: runtime::Handle,
26
29
  provider_config: edr_napi_core::provider::Config,
27
30
  logger_config: edr_napi_core::logger::Config,
28
- subscription_config: edr_napi_core::subscription::Config,
31
+ subscription_callback: edr_napi_core::subscription::Callback,
29
32
  contract_decoder: Arc<ContractDecoder>,
30
- ) -> napi::Result<Box<dyn provider::Builder>> {
31
- let logger = Logger::<L1ChainSpec>::new(logger_config, Arc::clone(&contract_decoder))?;
33
+ ) -> napi::Result<Arc<dyn SyncProvider>> {
34
+ let logger =
35
+ Logger::<L1ChainSpec, CurrentTime>::new(logger_config, Arc::clone(&contract_decoder))?;
32
36
 
33
37
  let provider_config =
34
- edr_provider::ProviderConfig::<l1::SpecId>::try_from(provider_config)?;
35
-
36
- let subscription_callback =
37
- subscription::Callback::new(env, subscription_config.subscription_callback)?;
38
+ edr_provider::ProviderConfig::<edr_chain_l1::Hardfork>::try_from(provider_config)?;
38
39
 
39
- Ok(Box::new(ProviderBuilder::new(
40
- contract_decoder,
40
+ let provider = edr_provider::Provider::<L1ChainSpec>::new(
41
+ runtime.clone(),
41
42
  Box::new(logger),
43
+ subscriber_callback_for_chain_spec::<L1ChainSpec, CurrentTime>(subscription_callback),
42
44
  provider_config,
43
- subscription_callback,
44
- )))
45
+ contract_decoder,
46
+ CurrentTime,
47
+ )
48
+ .map_err(|error| napi::Error::new(napi::Status::GenericFailure, error.to_string()))?;
49
+
50
+ Ok(Arc::new(provider))
45
51
  }
46
52
  }
47
53
 
48
54
  #[napi]
49
- pub const L1_CHAIN_TYPE: &str = L1ChainSpec::CHAIN_TYPE;
55
+ pub const L1_CHAIN_TYPE: &str = edr_chain_l1::CHAIN_TYPE;
50
56
 
51
57
  #[napi(catch_unwind)]
52
58
  pub fn l1_genesis_state(hardfork: SpecId) -> Vec<AccountOverride> {
@@ -136,25 +142,25 @@ impl FromStr for SpecId {
136
142
 
137
143
  fn from_str(s: &str) -> Result<Self, Self::Err> {
138
144
  match s {
139
- edr_eth::l1::hardfork::name::FRONTIER => Ok(SpecId::Frontier),
140
- edr_eth::l1::hardfork::name::FRONTIER_THAWING => Ok(SpecId::FrontierThawing),
141
- edr_eth::l1::hardfork::name::HOMESTEAD => Ok(SpecId::Homestead),
142
- edr_eth::l1::hardfork::name::DAO_FORK => Ok(SpecId::DaoFork),
143
- edr_eth::l1::hardfork::name::TANGERINE => Ok(SpecId::Tangerine),
144
- edr_eth::l1::hardfork::name::SPURIOUS_DRAGON => Ok(SpecId::SpuriousDragon),
145
- edr_eth::l1::hardfork::name::BYZANTIUM => Ok(SpecId::Byzantium),
146
- edr_eth::l1::hardfork::name::CONSTANTINOPLE => Ok(SpecId::Constantinople),
147
- edr_eth::l1::hardfork::name::PETERSBURG => Ok(SpecId::Petersburg),
148
- edr_eth::l1::hardfork::name::ISTANBUL => Ok(SpecId::Istanbul),
149
- edr_eth::l1::hardfork::name::MUIR_GLACIER => Ok(SpecId::MuirGlacier),
150
- edr_eth::l1::hardfork::name::BERLIN => Ok(SpecId::Berlin),
151
- edr_eth::l1::hardfork::name::LONDON => Ok(SpecId::London),
152
- edr_eth::l1::hardfork::name::ARROW_GLACIER => Ok(SpecId::ArrowGlacier),
153
- edr_eth::l1::hardfork::name::GRAY_GLACIER => Ok(SpecId::GrayGlacier),
154
- edr_eth::l1::hardfork::name::MERGE => Ok(SpecId::Merge),
155
- edr_eth::l1::hardfork::name::SHANGHAI => Ok(SpecId::Shanghai),
156
- edr_eth::l1::hardfork::name::CANCUN => Ok(SpecId::Cancun),
157
- edr_eth::l1::hardfork::name::PRAGUE => Ok(SpecId::Prague),
145
+ edr_chain_l1::chains::name::FRONTIER => Ok(SpecId::Frontier),
146
+ edr_chain_l1::chains::name::FRONTIER_THAWING => Ok(SpecId::FrontierThawing),
147
+ edr_chain_l1::chains::name::HOMESTEAD => Ok(SpecId::Homestead),
148
+ edr_chain_l1::chains::name::DAO_FORK => Ok(SpecId::DaoFork),
149
+ edr_chain_l1::chains::name::TANGERINE => Ok(SpecId::Tangerine),
150
+ edr_chain_l1::chains::name::SPURIOUS_DRAGON => Ok(SpecId::SpuriousDragon),
151
+ edr_chain_l1::chains::name::BYZANTIUM => Ok(SpecId::Byzantium),
152
+ edr_chain_l1::chains::name::CONSTANTINOPLE => Ok(SpecId::Constantinople),
153
+ edr_chain_l1::chains::name::PETERSBURG => Ok(SpecId::Petersburg),
154
+ edr_chain_l1::chains::name::ISTANBUL => Ok(SpecId::Istanbul),
155
+ edr_chain_l1::chains::name::MUIR_GLACIER => Ok(SpecId::MuirGlacier),
156
+ edr_chain_l1::chains::name::BERLIN => Ok(SpecId::Berlin),
157
+ edr_chain_l1::chains::name::LONDON => Ok(SpecId::London),
158
+ edr_chain_l1::chains::name::ARROW_GLACIER => Ok(SpecId::ArrowGlacier),
159
+ edr_chain_l1::chains::name::GRAY_GLACIER => Ok(SpecId::GrayGlacier),
160
+ edr_chain_l1::chains::name::MERGE => Ok(SpecId::Merge),
161
+ edr_chain_l1::chains::name::SHANGHAI => Ok(SpecId::Shanghai),
162
+ edr_chain_l1::chains::name::CANCUN => Ok(SpecId::Cancun),
163
+ edr_chain_l1::chains::name::PRAGUE => Ok(SpecId::Prague),
158
164
  _ => Err(napi::Error::new(
159
165
  napi::Status::InvalidArg,
160
166
  format!("The provided hardfork `{s}` is not supported."),
@@ -163,28 +169,28 @@ impl FromStr for SpecId {
163
169
  }
164
170
  }
165
171
 
166
- impl From<SpecId> for edr_eth::l1::SpecId {
172
+ impl From<SpecId> for edr_chain_l1::Hardfork {
167
173
  fn from(value: SpecId) -> Self {
168
174
  match value {
169
- SpecId::Frontier => edr_eth::l1::SpecId::FRONTIER,
170
- SpecId::FrontierThawing => edr_eth::l1::SpecId::FRONTIER_THAWING,
171
- SpecId::Homestead => edr_eth::l1::SpecId::HOMESTEAD,
172
- SpecId::DaoFork => edr_eth::l1::SpecId::DAO_FORK,
173
- SpecId::Tangerine => edr_eth::l1::SpecId::TANGERINE,
174
- SpecId::SpuriousDragon => edr_eth::l1::SpecId::SPURIOUS_DRAGON,
175
- SpecId::Byzantium => edr_eth::l1::SpecId::BYZANTIUM,
176
- SpecId::Constantinople => edr_eth::l1::SpecId::CONSTANTINOPLE,
177
- SpecId::Petersburg => edr_eth::l1::SpecId::PETERSBURG,
178
- SpecId::Istanbul => edr_eth::l1::SpecId::ISTANBUL,
179
- SpecId::MuirGlacier => edr_eth::l1::SpecId::MUIR_GLACIER,
180
- SpecId::Berlin => edr_eth::l1::SpecId::BERLIN,
181
- SpecId::London => edr_eth::l1::SpecId::LONDON,
182
- SpecId::ArrowGlacier => edr_eth::l1::SpecId::ARROW_GLACIER,
183
- SpecId::GrayGlacier => edr_eth::l1::SpecId::GRAY_GLACIER,
184
- SpecId::Merge => edr_eth::l1::SpecId::MERGE,
185
- SpecId::Shanghai => edr_eth::l1::SpecId::SHANGHAI,
186
- SpecId::Cancun => edr_eth::l1::SpecId::CANCUN,
187
- SpecId::Prague => edr_eth::l1::SpecId::PRAGUE,
175
+ SpecId::Frontier => edr_chain_l1::Hardfork::FRONTIER,
176
+ SpecId::FrontierThawing => edr_chain_l1::Hardfork::FRONTIER_THAWING,
177
+ SpecId::Homestead => edr_chain_l1::Hardfork::HOMESTEAD,
178
+ SpecId::DaoFork => edr_chain_l1::Hardfork::DAO_FORK,
179
+ SpecId::Tangerine => edr_chain_l1::Hardfork::TANGERINE,
180
+ SpecId::SpuriousDragon => edr_chain_l1::Hardfork::SPURIOUS_DRAGON,
181
+ SpecId::Byzantium => edr_chain_l1::Hardfork::BYZANTIUM,
182
+ SpecId::Constantinople => edr_chain_l1::Hardfork::CONSTANTINOPLE,
183
+ SpecId::Petersburg => edr_chain_l1::Hardfork::PETERSBURG,
184
+ SpecId::Istanbul => edr_chain_l1::Hardfork::ISTANBUL,
185
+ SpecId::MuirGlacier => edr_chain_l1::Hardfork::MUIR_GLACIER,
186
+ SpecId::Berlin => edr_chain_l1::Hardfork::BERLIN,
187
+ SpecId::London => edr_chain_l1::Hardfork::LONDON,
188
+ SpecId::ArrowGlacier => edr_chain_l1::Hardfork::ARROW_GLACIER,
189
+ SpecId::GrayGlacier => edr_chain_l1::Hardfork::GRAY_GLACIER,
190
+ SpecId::Merge => edr_chain_l1::Hardfork::MERGE,
191
+ SpecId::Shanghai => edr_chain_l1::Hardfork::SHANGHAI,
192
+ SpecId::Cancun => edr_chain_l1::Hardfork::CANCUN,
193
+ SpecId::Prague => edr_chain_l1::Hardfork::PRAGUE,
188
194
  }
189
195
  }
190
196
  }
@@ -200,25 +206,25 @@ pub fn l1_hardfork_from_string(hardfork: String) -> napi::Result<SpecId> {
200
206
  #[napi(catch_unwind)]
201
207
  pub fn l1_hardfork_to_string(harfork: SpecId) -> &'static str {
202
208
  match harfork {
203
- SpecId::Frontier => edr_eth::l1::hardfork::name::FRONTIER,
204
- SpecId::FrontierThawing => edr_eth::l1::hardfork::name::FRONTIER_THAWING,
205
- SpecId::Homestead => edr_eth::l1::hardfork::name::HOMESTEAD,
206
- SpecId::DaoFork => edr_eth::l1::hardfork::name::DAO_FORK,
207
- SpecId::Tangerine => edr_eth::l1::hardfork::name::TANGERINE,
208
- SpecId::SpuriousDragon => edr_eth::l1::hardfork::name::SPURIOUS_DRAGON,
209
- SpecId::Byzantium => edr_eth::l1::hardfork::name::BYZANTIUM,
210
- SpecId::Constantinople => edr_eth::l1::hardfork::name::CONSTANTINOPLE,
211
- SpecId::Petersburg => edr_eth::l1::hardfork::name::PETERSBURG,
212
- SpecId::Istanbul => edr_eth::l1::hardfork::name::ISTANBUL,
213
- SpecId::MuirGlacier => edr_eth::l1::hardfork::name::MUIR_GLACIER,
214
- SpecId::Berlin => edr_eth::l1::hardfork::name::BERLIN,
215
- SpecId::London => edr_eth::l1::hardfork::name::LONDON,
216
- SpecId::ArrowGlacier => edr_eth::l1::hardfork::name::ARROW_GLACIER,
217
- SpecId::GrayGlacier => edr_eth::l1::hardfork::name::GRAY_GLACIER,
218
- SpecId::Merge => edr_eth::l1::hardfork::name::MERGE,
219
- SpecId::Shanghai => edr_eth::l1::hardfork::name::SHANGHAI,
220
- SpecId::Cancun => edr_eth::l1::hardfork::name::CANCUN,
221
- SpecId::Prague => edr_eth::l1::hardfork::name::PRAGUE,
209
+ SpecId::Frontier => edr_chain_l1::chains::name::FRONTIER,
210
+ SpecId::FrontierThawing => edr_chain_l1::chains::name::FRONTIER_THAWING,
211
+ SpecId::Homestead => edr_chain_l1::chains::name::HOMESTEAD,
212
+ SpecId::DaoFork => edr_chain_l1::chains::name::DAO_FORK,
213
+ SpecId::Tangerine => edr_chain_l1::chains::name::TANGERINE,
214
+ SpecId::SpuriousDragon => edr_chain_l1::chains::name::SPURIOUS_DRAGON,
215
+ SpecId::Byzantium => edr_chain_l1::chains::name::BYZANTIUM,
216
+ SpecId::Constantinople => edr_chain_l1::chains::name::CONSTANTINOPLE,
217
+ SpecId::Petersburg => edr_chain_l1::chains::name::PETERSBURG,
218
+ SpecId::Istanbul => edr_chain_l1::chains::name::ISTANBUL,
219
+ SpecId::MuirGlacier => edr_chain_l1::chains::name::MUIR_GLACIER,
220
+ SpecId::Berlin => edr_chain_l1::chains::name::BERLIN,
221
+ SpecId::London => edr_chain_l1::chains::name::LONDON,
222
+ SpecId::ArrowGlacier => edr_chain_l1::chains::name::ARROW_GLACIER,
223
+ SpecId::GrayGlacier => edr_chain_l1::chains::name::GRAY_GLACIER,
224
+ SpecId::Merge => edr_chain_l1::chains::name::MERGE,
225
+ SpecId::Shanghai => edr_chain_l1::chains::name::SHANGHAI,
226
+ SpecId::Cancun => edr_chain_l1::chains::name::CANCUN,
227
+ SpecId::Prague => edr_chain_l1::chains::name::PRAGUE,
222
228
  }
223
229
  }
224
230
 
@@ -234,7 +240,7 @@ macro_rules! export_spec_id {
234
240
  ($($variant:ident),*) => {
235
241
  $(
236
242
  #[napi]
237
- pub const $variant: &str = edr_eth::l1::hardfork::name::$variant;
243
+ pub const $variant: &str = edr_chain_l1::chains::name::$variant;
238
244
  )*
239
245
  };
240
246
  }
package/src/chains/op.rs CHANGED
@@ -1,14 +1,24 @@
1
1
  use std::{str::FromStr, sync::Arc};
2
2
 
3
- use edr_eth::hex;
4
3
  use edr_napi_core::{
5
- logger::{self, Logger},
6
- provider::{self, ProviderBuilder, SyncProviderFactory},
7
- subscription,
4
+ logger::Logger,
5
+ provider::{SyncProvider, SyncProviderFactory},
6
+ subscription::subscriber_callback_for_chain_spec,
8
7
  };
9
- use edr_op::{predeploys::GAS_PRICE_ORACLE_ADDRESS, OpChainSpec, OpSpecId};
8
+ use edr_op::{
9
+ predeploys::{
10
+ gas_price_oracle_code_ecotone, gas_price_oracle_code_fjord, gas_price_oracle_code_isthmus,
11
+ GAS_PRICE_ORACLE_ADDRESS,
12
+ },
13
+ OpChainSpec,
14
+ };
15
+ use edr_primitives::hex;
16
+ use edr_provider::time::CurrentTime;
10
17
  use edr_solidity::contract_decoder::ContractDecoder;
11
- use napi::bindgen_prelude::{BigInt, Uint8Array};
18
+ use napi::{
19
+ bindgen_prelude::{BigInt, Uint8Array},
20
+ tokio::runtime,
21
+ };
12
22
  use napi_derive::napi;
13
23
 
14
24
  use crate::{
@@ -19,27 +29,31 @@ use crate::{
19
29
  pub struct OpProviderFactory;
20
30
 
21
31
  impl SyncProviderFactory for OpProviderFactory {
22
- fn create_provider_builder(
32
+ fn create_provider(
23
33
  &self,
24
- env: &napi::Env,
25
- provider_config: provider::Config,
26
- logger_config: logger::Config,
27
- subscription_config: subscription::Config,
34
+ runtime: runtime::Handle,
35
+ provider_config: edr_napi_core::provider::Config,
36
+ logger_config: edr_napi_core::logger::Config,
37
+ subscription_callback: edr_napi_core::subscription::Callback,
28
38
  contract_decoder: Arc<ContractDecoder>,
29
- ) -> napi::Result<Box<dyn provider::Builder>> {
30
- let logger = Logger::<OpChainSpec>::new(logger_config, Arc::clone(&contract_decoder))?;
31
-
32
- let provider_config = edr_provider::ProviderConfig::<OpSpecId>::try_from(provider_config)?;
39
+ ) -> napi::Result<Arc<dyn SyncProvider>> {
40
+ let logger =
41
+ Logger::<OpChainSpec, CurrentTime>::new(logger_config, Arc::clone(&contract_decoder))?;
33
42
 
34
- let subscription_callback =
35
- subscription::Callback::new(env, subscription_config.subscription_callback)?;
43
+ let provider_config =
44
+ edr_provider::ProviderConfig::<edr_op::Hardfork>::try_from(provider_config)?;
36
45
 
37
- Ok(Box::new(ProviderBuilder::new(
38
- contract_decoder,
46
+ let provider = edr_provider::Provider::<OpChainSpec>::new(
47
+ runtime.clone(),
39
48
  Box::new(logger),
49
+ subscriber_callback_for_chain_spec::<OpChainSpec, CurrentTime>(subscription_callback),
40
50
  provider_config,
41
- subscription_callback,
42
- )))
51
+ contract_decoder,
52
+ CurrentTime,
53
+ )
54
+ .map_err(|error| napi::Error::new(napi::Status::GenericFailure, error.to_string()))?;
55
+
56
+ Ok(Arc::new(provider))
43
57
  }
44
58
  }
45
59
 
@@ -56,17 +70,17 @@ pub enum OpHardfork {
56
70
  Isthmus = 107,
57
71
  }
58
72
 
59
- impl From<OpHardfork> for OpSpecId {
73
+ impl From<OpHardfork> for edr_op::Hardfork {
60
74
  fn from(hardfork: OpHardfork) -> Self {
61
75
  match hardfork {
62
- OpHardfork::Bedrock => OpSpecId::BEDROCK,
63
- OpHardfork::Regolith => OpSpecId::REGOLITH,
64
- OpHardfork::Canyon => OpSpecId::CANYON,
65
- OpHardfork::Ecotone => OpSpecId::ECOTONE,
66
- OpHardfork::Fjord => OpSpecId::FJORD,
67
- OpHardfork::Granite => OpSpecId::GRANITE,
68
- OpHardfork::Holocene => OpSpecId::HOLOCENE,
69
- OpHardfork::Isthmus => OpSpecId::ISTHMUS,
76
+ OpHardfork::Bedrock => edr_op::Hardfork::BEDROCK,
77
+ OpHardfork::Regolith => edr_op::Hardfork::REGOLITH,
78
+ OpHardfork::Canyon => edr_op::Hardfork::CANYON,
79
+ OpHardfork::Ecotone => edr_op::Hardfork::ECOTONE,
80
+ OpHardfork::Fjord => edr_op::Hardfork::FJORD,
81
+ OpHardfork::Granite => edr_op::Hardfork::GRANITE,
82
+ OpHardfork::Holocene => edr_op::Hardfork::HOLOCENE,
83
+ OpHardfork::Isthmus => edr_op::Hardfork::ISTHMUS,
70
84
  }
71
85
  }
72
86
  }
@@ -328,10 +342,10 @@ pub fn op_provider_factory() -> ProviderFactory {
328
342
  factory.into()
329
343
  }
330
344
 
331
- fn gas_price_oracle_override(hardfork: OpSpecId) -> AccountOverride {
332
- if hardfork >= OpSpecId::ISTHMUS {
345
+ fn gas_price_oracle_override(hardfork: edr_op::Hardfork) -> AccountOverride {
346
+ if hardfork >= edr_op::Hardfork::ISTHMUS {
333
347
  gas_price_oracle_isthmus()
334
- } else if hardfork >= OpSpecId::FJORD {
348
+ } else if hardfork >= edr_op::Hardfork::FJORD {
335
349
  gas_price_oracle_fjord()
336
350
  } else {
337
351
  gas_price_oracle_ecotone()
@@ -339,16 +353,11 @@ fn gas_price_oracle_override(hardfork: OpSpecId) -> AccountOverride {
339
353
  }
340
354
 
341
355
  fn gas_price_oracle_ecotone() -> AccountOverride {
342
- let gas_price_oracle_code = hex::decode(include_str!(
343
- "../../data/op/predeploys/gas_price_oracle/ecotone.txt"
344
- ))
345
- .expect("The bytecode for the GasPriceOracle predeploy should be a valid hex string");
346
-
347
356
  AccountOverride {
348
357
  address: Uint8Array::with_data_copied(GAS_PRICE_ORACLE_ADDRESS),
349
358
  balance: None,
350
359
  nonce: None,
351
- code: Some(gas_price_oracle_code.into()),
360
+ code: Some(gas_price_oracle_code_ecotone().into()),
352
361
  storage: Some(vec![StorageSlot {
353
362
  index: BigInt::from(0u64),
354
363
  // bool isEcotone = true
@@ -360,16 +369,11 @@ fn gas_price_oracle_ecotone() -> AccountOverride {
360
369
  }
361
370
 
362
371
  fn gas_price_oracle_fjord() -> AccountOverride {
363
- let gas_price_oracle_code = hex::decode(include_str!(
364
- "../../data/op/predeploys/gas_price_oracle/fjord.txt"
365
- ))
366
- .expect("The bytecode for the GasPriceOracle predeploy should be a valid hex string");
367
-
368
372
  AccountOverride {
369
373
  address: Uint8Array::with_data_copied(GAS_PRICE_ORACLE_ADDRESS),
370
374
  balance: None,
371
375
  nonce: None,
372
- code: Some(gas_price_oracle_code.into()),
376
+ code: Some(gas_price_oracle_code_fjord().into()),
373
377
  storage: Some(vec![StorageSlot {
374
378
  index: BigInt::from(0u64),
375
379
  // bool isEcotone = true
@@ -382,16 +386,11 @@ fn gas_price_oracle_fjord() -> AccountOverride {
382
386
  }
383
387
 
384
388
  fn gas_price_oracle_isthmus() -> AccountOverride {
385
- let gas_price_oracle_code = hex::decode(include_str!(
386
- "../../data/op/predeploys/gas_price_oracle/isthmus.txt"
387
- ))
388
- .expect("The bytecode for the GasPriceOracle predeploy should be a valid hex string");
389
-
390
389
  AccountOverride {
391
390
  address: Uint8Array::with_data_copied(GAS_PRICE_ORACLE_ADDRESS),
392
391
  balance: None,
393
392
  nonce: None,
394
- code: Some(gas_price_oracle_code.into()),
393
+ code: Some(gas_price_oracle_code_isthmus().into()),
395
394
  storage: Some(vec![StorageSlot {
396
395
  index: BigInt::from(0u64),
397
396
  // bool isEcotone = true