Skip to content

Commit

Permalink
refactor: remove default config values
Browse files Browse the repository at this point in the history
  • Loading branch information
Wodann committed Nov 22, 2023
1 parent d07025d commit 44728e7
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 49 deletions.
8 changes: 4 additions & 4 deletions crates/edr_napi/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,9 +243,9 @@ export interface IntervalRange {
}
/** Configuration for the provider's miner. */
export interface MiningConfig {
autoMine?: boolean
interval?: number | IntervalRange
memPool?: MemPoolConfig
autoMine: boolean
interval: number | IntervalRange
memPool: MemPoolConfig
}
/** Configuration for a provider */
export interface ProviderConfig {
Expand Down Expand Up @@ -278,7 +278,7 @@ export interface ProviderConfig {
/** The initial date of the blockchain, in seconds since the Unix epoch */
initialDate?: bigint
/** The configuration for the miner */
mining?: MiningConfig
mining: MiningConfig
/** The network ID of the blockchain */
networkId: bigint
}
Expand Down
57 changes: 14 additions & 43 deletions crates/edr_napi/src/provider/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ pub struct IntervalRange {
/// Configuration for the provider's miner.
#[napi(object)]
pub struct MiningConfig {
pub auto_mine: Option<bool>,
pub interval: Option<Either<i64, IntervalRange>>,
pub mem_pool: Option<MemPoolConfig>,
pub auto_mine: bool,
pub interval: Either<i64, IntervalRange>,
pub mem_pool: MemPoolConfig,
}

/// Configuration for a provider
Expand Down Expand Up @@ -72,7 +72,7 @@ pub struct ProviderConfig {
/// The initial date of the blockchain, in seconds since the Unix epoch
pub initial_date: Option<BigInt>,
/// The configuration for the miner
pub mining: Option<MiningConfig>,
pub mining: MiningConfig,
/// The network ID of the blockchain
pub network_id: BigInt,
}
Expand All @@ -99,49 +99,22 @@ impl From<MemPoolConfig> for edr_provider::MemPoolConfig {
}
}

impl TryFrom<MiningConfig> for edr_provider::MiningConfig {
type Error = napi::Error;

fn try_from(value: MiningConfig) -> Result<Self, Self::Error> {
let mem_pool = value
.mem_pool
.map_or(edr_provider::MemPoolConfig::default(), Into::into);
impl From<MiningConfig> for edr_provider::MiningConfig {
fn from(value: MiningConfig) -> Self {
let mem_pool = value.mem_pool.into();

let interval = value.interval.map(|interval| match interval {
let interval = match value.interval {
Either::A(interval) => edr_provider::IntervalConfig::Fixed(interval),
Either::B(IntervalRange { min, max }) => {
edr_provider::IntervalConfig::Range { min, max }
}
});

let config = if let Some(auto_mine) = value.auto_mine {
if let Some(interval) = interval {
Self {
auto_mine,
interval,
mem_pool,
}
} else {
Self {
auto_mine,
interval: edr_provider::IntervalConfig::Fixed(0),
mem_pool,
}
}
} else if let Some(interval) = interval {
Self {
auto_mine: false,
interval,
mem_pool,
}
} else {
Self {
mem_pool,
..edr_provider::MiningConfig::default()
}
};

Ok(config)
Self {
auto_mine: value.auto_mine,
interval,
mem_pool,
}
}
}

Expand Down Expand Up @@ -179,9 +152,7 @@ impl TryFrom<ProviderConfig> for edr_provider::ProviderConfig {
napi::Result::Ok(SystemTime::UNIX_EPOCH + elapsed_since_epoch)
})
.transpose()?,
mining: value
.mining
.map_or(Ok(edr_provider::MiningConfig::default()), TryInto::try_into)?,
mining: value.mining.into(),
network_id: value.network_id.try_cast()?,
})
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@ import {
NodeConfig,
TracingConfig,
} from "./node-types";
import { ethereumsjsHardforkToEdrSpecId } from "./utils/convertToEdr";
import {
ethereumjsIntervalMiningConfigToEdr,
ethereumjsMempoolOrderToEdrMineOrdering,
ethereumsjsHardforkToEdrSpecId,
} from "./utils/convertToEdr";

const log = debug("hardhat:core:hardhat-network:provider");

Expand Down Expand Up @@ -426,6 +430,13 @@ class EdrProviderWrapper extends EventEmitter implements EIP1193Provider {
initialBaseFeePerGas: BigInt(
config.initialBaseFeePerGas ?? 1_000_000_000
),
mining: {
autoMine: config.automine,
interval: ethereumjsIntervalMiningConfigToEdr(config.intervalMining),
memPool: {
order: ethereumjsMempoolOrderToEdrMineOrdering(config.mempoolOrder),
},
},
});

return new EdrProviderWrapper(provider);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ import {
MineOrdering,
TracingMessage,
SuccessReason,
IntervalRange,
} from "@ignored/edr";
import { isNumber } from "lodash";
import { fromBigIntLike, toHex } from "../../../util/bigint";
import { HardforkName, hardforkGte } from "../../../util/hardforks";
import {
Expand All @@ -52,7 +54,7 @@ import {
isRevertResult,
isSuccessResult,
} from "../../stack-traces/message-trace";
import { MempoolOrder } from "../node-types";
import { IntervalMiningConfig, MempoolOrder } from "../node-types";
import {
RpcLogOutput,
RpcReceiptOutput,
Expand Down Expand Up @@ -258,6 +260,19 @@ export function ethereumjsHeaderDataToEdrBlockOptions(
};
}

export function ethereumjsIntervalMiningConfigToEdr(
config: IntervalMiningConfig
): number | IntervalRange {
if (isNumber(config)) {
return config;
} else {
return {
min: config[0],
max: config[1],
};
}
}

export function ethereumjsMempoolOrderToEdrMineOrdering(
mempoolOrder: MempoolOrder
): MineOrdering {
Expand Down

0 comments on commit 44728e7

Please sign in to comment.