hardhat 2.9.3-eips.0 → 2.9.5

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 (170) hide show
  1. package/builtin-tasks/compile.js +18 -10
  2. package/builtin-tasks/compile.js.map +1 -1
  3. package/builtin-tasks/node.js +4 -3
  4. package/builtin-tasks/node.js.map +1 -1
  5. package/common/bigInt.d.ts +7 -0
  6. package/common/bigInt.d.ts.map +1 -0
  7. package/common/bigInt.js +93 -0
  8. package/common/bigInt.js.map +1 -0
  9. package/common/index.d.ts +3 -0
  10. package/common/index.d.ts.map +1 -0
  11. package/common/index.js +17 -0
  12. package/common/index.js.map +1 -0
  13. package/internal/artifacts.d.ts.map +1 -1
  14. package/internal/artifacts.js +2 -1
  15. package/internal/artifacts.js.map +1 -1
  16. package/internal/cli/HelpPrinter.js +6 -6
  17. package/internal/cli/HelpPrinter.js.map +1 -1
  18. package/internal/cli/analytics.d.ts.map +1 -1
  19. package/internal/cli/analytics.js +2 -2
  20. package/internal/cli/analytics.js.map +1 -1
  21. package/internal/cli/cli.js +8 -8
  22. package/internal/cli/cli.js.map +1 -1
  23. package/internal/cli/project-creation.js +1 -1
  24. package/internal/core/config/config-loading.d.ts +5 -2
  25. package/internal/core/config/config-loading.d.ts.map +1 -1
  26. package/internal/core/config/config-loading.js +1 -1
  27. package/internal/core/config/config-loading.js.map +1 -1
  28. package/internal/core/config/config-resolution.d.ts.map +1 -1
  29. package/internal/core/config/config-resolution.js +2 -2
  30. package/internal/core/config/config-resolution.js.map +1 -1
  31. package/internal/core/config/default-config.d.ts.map +1 -1
  32. package/internal/core/config/default-config.js +0 -1
  33. package/internal/core/config/default-config.js.map +1 -1
  34. package/internal/core/errors-list.d.ts +7 -0
  35. package/internal/core/errors-list.d.ts.map +1 -1
  36. package/internal/core/errors-list.js +10 -3
  37. package/internal/core/errors-list.js.map +1 -1
  38. package/internal/core/jsonrpc/types/base-types.d.ts +2 -0
  39. package/internal/core/jsonrpc/types/base-types.d.ts.map +1 -1
  40. package/internal/core/jsonrpc/types/base-types.js +19 -1
  41. package/internal/core/jsonrpc/types/base-types.js.map +1 -1
  42. package/internal/core/providers/construction.d.ts.map +1 -1
  43. package/internal/core/providers/construction.js +1 -1
  44. package/internal/core/providers/construction.js.map +1 -1
  45. package/internal/core/providers/http.d.ts +1 -1
  46. package/internal/core/providers/http.d.ts.map +1 -1
  47. package/internal/core/providers/http.js +3 -3
  48. package/internal/core/providers/http.js.map +1 -1
  49. package/internal/core/runtime-environment.d.ts +3 -2
  50. package/internal/core/runtime-environment.d.ts.map +1 -1
  51. package/internal/core/runtime-environment.js +2 -1
  52. package/internal/core/runtime-environment.js.map +1 -1
  53. package/internal/hardhat-network/jsonrpc/handler.js +12 -3
  54. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  55. package/internal/hardhat-network/jsonrpc/server.d.ts.map +1 -1
  56. package/internal/hardhat-network/jsonrpc/server.js +2 -2
  57. package/internal/hardhat-network/jsonrpc/server.js.map +1 -1
  58. package/internal/hardhat-network/provider/BlockchainBase.d.ts +1 -1
  59. package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -1
  60. package/internal/hardhat-network/provider/BlockchainBase.js +2 -2
  61. package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -1
  62. package/internal/hardhat-network/provider/BlockchainData.d.ts +2 -1
  63. package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
  64. package/internal/hardhat-network/provider/BlockchainData.js +4 -2
  65. package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
  66. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +1 -1
  67. package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
  68. package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -2
  69. package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
  70. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
  71. package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
  72. package/internal/hardhat-network/provider/TxPool.js +3 -3
  73. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  74. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +1 -1
  75. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  76. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +3 -3
  77. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  78. package/internal/hardhat-network/provider/modules/eth.d.ts +3 -0
  79. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  80. package/internal/hardhat-network/provider/modules/eth.js +21 -18
  81. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  82. package/internal/hardhat-network/provider/modules/evm.js +2 -2
  83. package/internal/hardhat-network/provider/modules/evm.js.map +1 -1
  84. package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
  85. package/internal/hardhat-network/provider/modules/logger.js +10 -4
  86. package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
  87. package/internal/hardhat-network/provider/node-types.d.ts +0 -1
  88. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  89. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  90. package/internal/hardhat-network/provider/node.js +8 -11
  91. package/internal/hardhat-network/provider/node.js.map +1 -1
  92. package/internal/hardhat-network/provider/output.js +1 -1
  93. package/internal/hardhat-network/provider/output.js.map +1 -1
  94. package/internal/hardhat-network/provider/provider.d.ts +1 -2
  95. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  96. package/internal/hardhat-network/provider/provider.js +1 -3
  97. package/internal/hardhat-network/provider/provider.js.map +1 -1
  98. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +1 -1
  99. package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
  100. package/internal/hardhat-network/provider/utils/makeForkCommon.d.ts.map +1 -1
  101. package/internal/hardhat-network/provider/utils/makeForkCommon.js +1 -2
  102. package/internal/hardhat-network/provider/utils/makeForkCommon.js.map +1 -1
  103. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  104. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +1 -10
  105. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  106. package/internal/lib/hardhat-lib.d.ts.map +1 -1
  107. package/internal/lib/hardhat-lib.js +2 -2
  108. package/internal/lib/hardhat-lib.js.map +1 -1
  109. package/internal/solidity/compilation-job.d.ts.map +1 -1
  110. package/internal/solidity/compilation-job.js.map +1 -1
  111. package/internal/util/download.js +1 -1
  112. package/internal/util/download.js.map +1 -1
  113. package/internal/util/lazy.d.ts.map +1 -1
  114. package/internal/util/lazy.js +6 -4
  115. package/internal/util/lazy.js.map +1 -1
  116. package/internal/util/wei-values.js +1 -1
  117. package/internal/util/wei-values.js.map +1 -1
  118. package/package.json +15 -8
  119. package/register.js +2 -2
  120. package/register.js.map +1 -1
  121. package/src/builtin-tasks/compile.ts +30 -14
  122. package/src/builtin-tasks/node.ts +5 -2
  123. package/src/common/bigInt.ts +106 -0
  124. package/src/common/index.ts +2 -0
  125. package/src/internal/artifacts.ts +3 -2
  126. package/src/internal/cli/HelpPrinter.ts +6 -6
  127. package/src/internal/cli/analytics.ts +4 -1
  128. package/src/internal/cli/cli.ts +17 -13
  129. package/src/internal/cli/project-creation.ts +1 -1
  130. package/src/internal/core/config/config-loading.ts +7 -3
  131. package/src/internal/core/config/config-resolution.ts +0 -1
  132. package/src/internal/core/config/default-config.ts +0 -1
  133. package/src/internal/core/errors-list.ts +11 -3
  134. package/src/internal/core/jsonrpc/types/base-types.ts +44 -0
  135. package/src/internal/core/providers/construction.ts +0 -1
  136. package/src/internal/core/providers/http.ts +6 -2
  137. package/src/internal/core/runtime-environment.ts +3 -1
  138. package/src/internal/hardhat-network/jsonrpc/handler.ts +15 -3
  139. package/src/internal/hardhat-network/jsonrpc/server.ts +2 -1
  140. package/src/internal/hardhat-network/provider/BlockchainBase.ts +4 -2
  141. package/src/internal/hardhat-network/provider/BlockchainData.ts +6 -2
  142. package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +4 -2
  143. package/src/internal/hardhat-network/provider/TransactionQueue.ts +3 -1
  144. package/src/internal/hardhat-network/provider/TxPool.ts +3 -3
  145. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +7 -3
  146. package/src/internal/hardhat-network/provider/modules/eth.ts +24 -18
  147. package/src/internal/hardhat-network/provider/modules/evm.ts +2 -2
  148. package/src/internal/hardhat-network/provider/modules/logger.ts +10 -4
  149. package/src/internal/hardhat-network/provider/node-types.ts +0 -1
  150. package/src/internal/hardhat-network/provider/node.ts +9 -12
  151. package/src/internal/hardhat-network/provider/output.ts +1 -1
  152. package/src/internal/hardhat-network/provider/provider.ts +0 -2
  153. package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +2 -1
  154. package/src/internal/hardhat-network/provider/utils/makeForkCommon.ts +1 -3
  155. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +1 -11
  156. package/src/internal/lib/hardhat-lib.ts +4 -3
  157. package/src/internal/solidity/compilation-job.ts +3 -1
  158. package/src/internal/util/download.ts +1 -1
  159. package/src/internal/util/lazy.ts +21 -5
  160. package/src/internal/util/wei-values.ts +1 -1
  161. package/src/register.ts +4 -3
  162. package/src/types/config.ts +0 -2
  163. package/src/types/runtime.ts +2 -1
  164. package/types/config.d.ts +0 -2
  165. package/types/config.d.ts.map +1 -1
  166. package/types/runtime.d.ts +2 -1
  167. package/types/runtime.d.ts.map +1 -1
  168. package/CHANGELOG.md +0 -148
  169. package/src/tsconfig.json +0 -10
  170. package/test/.eslintrc.js +0 -16
@@ -26,6 +26,7 @@ import {
26
26
  rpcFloat,
27
27
  rpcHash,
28
28
  rpcQuantity,
29
+ rpcStorageSlot,
29
30
  } from "../../../core/jsonrpc/types/base-types";
30
31
  import {
31
32
  optionalRpcNewBlockTag,
@@ -365,6 +366,9 @@ export class EthModule {
365
366
  await this._runHardhatNetworkMessageTraceHooks(trace, true);
366
367
 
367
368
  if (error !== undefined && this._throwOnCallFailures) {
369
+ const callReturnData = trace?.returnData.toString("hex") ?? "";
370
+ (error as any).data = `0x${callReturnData}`;
371
+
368
372
  throw error;
369
373
  }
370
374
 
@@ -438,6 +442,9 @@ export class EthModule {
438
442
  error
439
443
  );
440
444
 
445
+ const callReturnData = trace?.returnData.toString("hex") ?? "";
446
+ (error as any).data = `0x${callReturnData}`;
447
+
441
448
  throw error;
442
449
  }
443
450
 
@@ -688,7 +695,7 @@ export class EthModule {
688
695
  return validateParams(
689
696
  params,
690
697
  rpcAddress,
691
- rpcQuantity,
698
+ rpcStorageSlot,
692
699
  optionalRpcNewBlockTag
693
700
  );
694
701
  }
@@ -979,8 +986,9 @@ export class EthModule {
979
986
  }
980
987
 
981
988
  if (error.message.includes("The chain ID does not match")) {
989
+ const chainId = this._common.chainIdBN().toString();
982
990
  throw new InvalidArgumentsError(
983
- `Trying to send a raw transaction with an invalid chainId. The expected chainId is ${this._common.chainIdBN()}`,
991
+ `Trying to send a raw transaction with an invalid chainId. The expected chainId is ${chainId}`,
984
992
  error
985
993
  );
986
994
  }
@@ -1015,7 +1023,7 @@ export class EthModule {
1015
1023
  !transactionRequest.chainId.eq(expectedChainId)
1016
1024
  ) {
1017
1025
  throw new InvalidArgumentsError(
1018
- `Invalid chainId ${transactionRequest.chainId.toString()} provided, expected ${expectedChainId} instead.`
1026
+ `Invalid chainId ${transactionRequest.chainId.toString()} provided, expected ${expectedChainId.toString()} instead.`
1019
1027
  );
1020
1028
  }
1021
1029
 
@@ -1512,12 +1520,13 @@ export class EthModule {
1512
1520
  result = [result];
1513
1521
  }
1514
1522
 
1515
- try {
1516
- await this._handleMineBlockResults(result, tx);
1517
- } catch (e) {
1518
- // This is a temporary solution until we improve our internal errors
1519
- // We need this to be able to return the transaction hash in the JSON-RPC
1520
- // response when the transaction fails
1523
+ const trace = await this._handleMineBlockResults(result, tx);
1524
+
1525
+ if (trace.error !== undefined && this._throwOnTransactionFailures) {
1526
+ const e = trace.error;
1527
+
1528
+ const returnData = trace.trace?.returnData.toString("hex") ?? "";
1529
+ (e as any).data = `0x${returnData}`;
1521
1530
  (e as any).transactionHash = bufferToRpcData(tx.hash());
1522
1531
 
1523
1532
  throw e;
@@ -1526,10 +1535,13 @@ export class EthModule {
1526
1535
  return bufferToRpcData(tx.hash());
1527
1536
  }
1528
1537
 
1538
+ /**
1539
+ * Returns the trace of the sent tx
1540
+ */
1529
1541
  private async _handleMineBlockResults(
1530
1542
  results: MineBlockResult[],
1531
1543
  sentTx: TypedTransaction
1532
- ) {
1544
+ ): Promise<GatherTracesResult> {
1533
1545
  const singleTransactionMined =
1534
1546
  results.length === 1 && results[0].block.transactions.length === 1;
1535
1547
 
@@ -1540,10 +1552,7 @@ export class EthModule {
1540
1552
  const trace = results[0].traces[0];
1541
1553
  await this._logSingleTransaction(tx, block, txGasUsed, trace);
1542
1554
 
1543
- const txError = trace.error;
1544
- if (txError !== undefined && this._throwOnTransactionFailures) {
1545
- throw txError;
1546
- }
1555
+ return trace;
1547
1556
  } else {
1548
1557
  // this happens when automine is enabled, a tx is sent, and there are
1549
1558
  // pending txs in the mempool
@@ -1575,10 +1584,7 @@ export class EthModule {
1575
1584
  );
1576
1585
  }
1577
1586
 
1578
- const sentTxError = sentTxTrace.error;
1579
- if (sentTxError !== undefined && this._throwOnTransactionFailures) {
1580
- throw sentTxError;
1581
- }
1587
+ return sentTxTrace;
1582
1588
  }
1583
1589
  }
1584
1590
 
@@ -90,7 +90,7 @@ export class EvmModule {
90
90
  );
91
91
  if (increment.lte(new BN(0))) {
92
92
  throw new InvalidInputError(
93
- `Timestamp ${timestamp} is lower than or equal to previous block's timestamp` +
93
+ `Timestamp ${timestamp.toString()} is lower than or equal to previous block's timestamp` +
94
94
  ` ${new BN(latestBlock.header.timestamp).toNumber()}`
95
95
  );
96
96
  }
@@ -132,7 +132,7 @@ export class EvmModule {
132
132
  );
133
133
  if (increment.lte(new BN(0))) {
134
134
  throw new InvalidInputError(
135
- `Timestamp ${timestamp} is lower than previous block's timestamp` +
135
+ `Timestamp ${timestamp.toString()} is lower than previous block's timestamp` +
136
136
  ` ${new BN(latestBlock.header.timestamp).toNumber()}`
137
137
  );
138
138
  }
@@ -331,7 +331,9 @@ export class ModulesLogger {
331
331
  if (isEmpty) {
332
332
  this._log(
333
333
  `Mined empty block #${blockNumber}${
334
- baseFeePerGas !== undefined ? ` with base fee ${baseFeePerGas}` : ""
334
+ baseFeePerGas !== undefined
335
+ ? ` with base fee ${baseFeePerGas.toString()}`
336
+ : ""
335
337
  }`
336
338
  );
337
339
 
@@ -365,7 +367,7 @@ export class ModulesLogger {
365
367
 
366
368
  private _logBaseFeePerGas(block: Block) {
367
369
  if (block.header.baseFeePerGas !== undefined) {
368
- this._log(`Base fee: ${block.header.baseFeePerGas}`);
370
+ this._log(`Base fee: ${block.header.baseFeePerGas.toString()}`);
369
371
  }
370
372
  }
371
373
 
@@ -413,7 +415,9 @@ export class ModulesLogger {
413
415
  if (isEmpty) {
414
416
  this._print(
415
417
  `Mined empty block #${blockNumber}${
416
- baseFeePerGas !== undefined ? ` with base fee ${baseFeePerGas}` : ""
418
+ baseFeePerGas !== undefined
419
+ ? ` with base fee ${baseFeePerGas.toString()}`
420
+ : ""
417
421
  }`,
418
422
  {
419
423
  collapseIntervalMinedBlock: true,
@@ -441,7 +445,9 @@ export class ModulesLogger {
441
445
 
442
446
  this._log(
443
447
  `Mined empty block #${blockNumber}${
444
- baseFeePerGas !== undefined ? ` with base fee ${baseFeePerGas}` : ""
448
+ baseFeePerGas !== undefined
449
+ ? ` with base fee ${baseFeePerGas.toString()}`
450
+ : ""
445
451
  }`,
446
452
  {
447
453
  collapseHardhatMinedBlock: true,
@@ -32,7 +32,6 @@ interface CommonConfig {
32
32
  mempoolOrder: MempoolOrder;
33
33
  coinbase: string;
34
34
  chains: HardhatNetworkChainsConfig;
35
- enabledEips: number[];
36
35
  }
37
36
 
38
37
  export type LocalNodeConfig = CommonConfig;
@@ -241,10 +241,6 @@ export class HardhatNode extends EventEmitter {
241
241
 
242
242
  const txPool = new TxPool(stateManager, new BN(blockGasLimit), common);
243
243
 
244
- if (config.enabledEips.length > 0) {
245
- common.setEIPs([...common.eips(), ...config.enabledEips]);
246
- }
247
-
248
244
  const vm = new VM({
249
245
  common,
250
246
  activatePrecompiles: true,
@@ -567,7 +563,8 @@ Hardhat Network's forking functionality only works with blocks from at least spu
567
563
  remainingBlockCount.subn(1),
568
564
  interval,
569
565
  await this._stateManager.getStateRoot(),
570
- await this.getBlockTotalDifficulty(latestBlock)
566
+ await this.getBlockTotalDifficulty(latestBlock),
567
+ (await this.getLatestBlock()).header.baseFeePerGas
571
568
  );
572
569
 
573
570
  await mineBlock();
@@ -1035,7 +1032,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
1035
1032
  this.setNextBlockTimestamp(snapshot.nextBlockTimestamp);
1036
1033
  this._txPool.revert(snapshot.txPoolSnapshotId);
1037
1034
 
1038
- if (snapshot.userProvidedNextBlockBaseFeePerGas) {
1035
+ if (snapshot.userProvidedNextBlockBaseFeePerGas !== undefined) {
1039
1036
  this.setUserProvidedNextBlockBaseFeePerGas(
1040
1037
  snapshot.userProvidedNextBlockBaseFeePerGas
1041
1038
  );
@@ -1679,7 +1676,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
1679
1676
  const nextPendingNonce = await this._txPool.getNextPendingNonce(sender);
1680
1677
  const txNonce = new BN(tx.nonce);
1681
1678
 
1682
- const expectedNonceMsg = `Expected nonce to be ${nextPendingNonce} but got ${txNonce}.`;
1679
+ const expectedNonceMsg = `Expected nonce to be ${nextPendingNonce.toString()} but got ${txNonce.toString()}.`;
1683
1680
  if (txNonce.gt(nextPendingNonce)) {
1684
1681
  throw new InvalidInputError(
1685
1682
  `Nonce too high. ${expectedNonceMsg} Note that transactions can't be queued when automining.`
@@ -1695,7 +1692,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
1695
1692
  );
1696
1693
  if (txPriorityFee.lt(this._minGasPrice)) {
1697
1694
  throw new InvalidInputError(
1698
- `Transaction gas price is ${txPriorityFee}, which is below the minimum of ${this._minGasPrice}`
1695
+ `Transaction gas price is ${txPriorityFee.toString()}, which is below the minimum of ${this._minGasPrice.toString()}`
1699
1696
  );
1700
1697
  }
1701
1698
 
@@ -1705,13 +1702,13 @@ Hardhat Network's forking functionality only works with blocks from at least spu
1705
1702
  if ("maxFeePerGas" in tx) {
1706
1703
  if (nextBlockGasFee.gt(tx.maxFeePerGas)) {
1707
1704
  throw new InvalidInputError(
1708
- `Transaction maxFeePerGas (${tx.maxFeePerGas}) is too low for the next block, which has a baseFeePerGas of ${nextBlockGasFee}`
1705
+ `Transaction maxFeePerGas (${tx.maxFeePerGas.toString()}) is too low for the next block, which has a baseFeePerGas of ${nextBlockGasFee.toString()}`
1709
1706
  );
1710
1707
  }
1711
1708
  } else {
1712
1709
  if (nextBlockGasFee.gt(tx.gasPrice)) {
1713
1710
  throw new InvalidInputError(
1714
- `Transaction gasPrice (${tx.gasPrice}) is too low for the next block, which has a baseFeePerGas of ${nextBlockGasFee}`
1711
+ `Transaction gasPrice (${tx.gasPrice.toString()}) is too low for the next block, which has a baseFeePerGas of ${nextBlockGasFee.toString()}`
1715
1712
  );
1716
1713
  }
1717
1714
  }
@@ -2129,7 +2126,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
2129
2126
  if (block === undefined) {
2130
2127
  // TODO handle this better
2131
2128
  throw new Error(
2132
- `Block with number ${blockNumberOrPending} doesn't exist. This should never happen.`
2129
+ `Block with number ${blockNumberOrPending.toString()} doesn't exist. This should never happen.`
2133
2130
  );
2134
2131
  }
2135
2132
 
@@ -2549,7 +2546,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
2549
2546
  );
2550
2547
  if (hardfork === undefined || blockNumber.ltn(activationBlock)) {
2551
2548
  throw new InternalError(
2552
- `Could not find a hardfork to run for block ${blockNumber}, after having looked for one in the HardhatNode's hardfork activation history, which was: ${JSON.stringify(
2549
+ `Could not find a hardfork to run for block ${blockNumber.toString()}, after having looked for one in the HardhatNode's hardfork activation history, which was: ${JSON.stringify(
2553
2550
  hardforkHistory
2554
2551
  )}. For more information, see https://hardhat.org/hardhat-network/reference/#config`
2555
2552
  );
@@ -186,7 +186,7 @@ export function getRpcBlock(
186
186
  uncles: block.uncleHeaders.map((uh: any) => bufferToRpcData(uh.hash())),
187
187
  };
188
188
 
189
- if (block.header.baseFeePerGas) {
189
+ if (block.header.baseFeePerGas !== undefined) {
190
190
  output.baseFeePerGas = numberToRpcQuantity(block.header.baseFeePerGas);
191
191
  }
192
192
 
@@ -90,7 +90,6 @@ export class HardhatNetworkProvider
90
90
  private readonly _chains: HardhatNetworkChainsConfig,
91
91
  private readonly _logger: ModulesLogger,
92
92
  private readonly _genesisAccounts: GenesisAccount[] = [],
93
- private readonly _enabledEips: number[],
94
93
  private readonly _artifacts?: Artifacts,
95
94
  private readonly _allowUnlimitedContractSize = false,
96
95
  private readonly _initialDate?: Date,
@@ -243,7 +242,6 @@ export class HardhatNetworkProvider
243
242
  networkId: this._networkId,
244
243
  initialDate: this._initialDate,
245
244
  forkConfig: this._forkConfig,
246
- enabledEips: this._enabledEips,
247
245
  forkCachePath:
248
246
  this._forkConfig !== undefined ? this._forkCachePath : undefined,
249
247
  coinbase: this._coinbase,
@@ -11,7 +11,8 @@ export interface HardhatBlockchainInterface extends BlockchainInterface {
11
11
  count: BN,
12
12
  interval: BN,
13
13
  previousBlockStateRoot: Buffer,
14
- previousBlockTotalDifficulty: BN
14
+ previousBlockTotalDifficulty: BN,
15
+ previousBlockBaseFeePerGas: BN | undefined
15
16
  ): void;
16
17
  deleteLaterBlocks(block: Block): void;
17
18
  getBlockByTransactionHash(transactionHash: Buffer): Promise<Block | null>;
@@ -3,7 +3,7 @@ import Common from "@ethereumjs/common";
3
3
  import { ForkedNodeConfig } from "../node-types";
4
4
 
5
5
  export async function makeForkCommon(config: ForkedNodeConfig) {
6
- const common = Common.forCustomChain(
6
+ return Common.forCustomChain(
7
7
  "mainnet",
8
8
  {
9
9
  chainId: config.chainId,
@@ -12,6 +12,4 @@ export async function makeForkCommon(config: ForkedNodeConfig) {
12
12
  },
13
13
  config.hardfork
14
14
  );
15
-
16
- return common;
17
15
  }
@@ -223,16 +223,6 @@ export class VMDebugTracer {
223
223
  ...structLog.storage,
224
224
  };
225
225
 
226
- // sometimes the memSize has the correct value
227
- // for the memory length, in those cases we increase
228
- // the memory to reflect this
229
- if (structLog.memSize > structLog.memory.length) {
230
- const wordsToAdd = structLog.memSize - structLog.memory.length;
231
- for (let k = 0; k < wordsToAdd; k++) {
232
- structLog.memory.push(EMPTY_MEMORY_WORD);
233
- }
234
- }
235
-
236
226
  if (i === 0) {
237
227
  continue;
238
228
  }
@@ -411,7 +401,7 @@ export class VMDebugTracer {
411
401
  gasCost = constantGas + dynamicGas;
412
402
  } else if (step.opcode.name === "CALLCODE") {
413
403
  // finding an existing tx that uses CALLCODE or compiling a contract
414
- // so that it uses tihs opcode is hard,
404
+ // so that it uses this opcode is hard,
415
405
  // so we just throw
416
406
  throw new InvalidInputError(
417
407
  "Transactions that use CALLCODE are not supported by Hardhat's debug_traceTransaction"
@@ -37,14 +37,15 @@ if (HardhatContext.isCreated()) {
37
37
  debug.enable("hardhat*");
38
38
  }
39
39
 
40
- const config = loadConfigAndTasks(hardhatArguments);
40
+ const { resolvedConfig, userConfig } = loadConfigAndTasks(hardhatArguments);
41
41
 
42
42
  env = new Environment(
43
- config,
43
+ resolvedConfig,
44
44
  hardhatArguments,
45
45
  ctx.tasksDSL.getTaskDefinitions(),
46
46
  ctx.extendersManager.getExtenders(),
47
- ctx.experimentalHardhatNetworkMessageTraceHooks
47
+ ctx.experimentalHardhatNetworkMessageTraceHooks,
48
+ userConfig
48
49
  );
49
50
 
50
51
  ctx.setHardhatRuntimeEnvironment(env);
@@ -153,7 +153,9 @@ export async function createCompilationJobsFromConnectedComponent(
153
153
 
154
154
  if (isCompilationJobCreationError(compilationJobOrError)) {
155
155
  log(
156
- `'${file.absolutePath}' couldn't be compiled. Reason: '${compilationJobOrError}'`
156
+ `'${file.absolutePath}' couldn't be compiled. Reason: '${
157
+ compilationJobOrError as any
158
+ }'`
157
159
  );
158
160
  errors.push(compilationJobOrError);
159
161
  continue;
@@ -47,7 +47,7 @@ export async function download(
47
47
  maxRedirections: 10,
48
48
  method: "GET",
49
49
  headers: {
50
- "User-Agent": `hardhat ${hardhatVersion}`,
50
+ "User-Agent": `hardhat ${hardhatVersion ?? "(unknown version)"}`,
51
51
  },
52
52
  });
53
53
 
@@ -1,4 +1,4 @@
1
- import util from "util";
1
+ import util, { InspectOptions } from "util";
2
2
 
3
3
  import { HardhatError } from "../core/errors";
4
4
  import { ERRORS } from "../core/errors-list";
@@ -36,9 +36,17 @@ export function lazyObject<T extends object>(objectCreator: () => T): T {
36
36
  return createLazyProxy(
37
37
  objectCreator,
38
38
  (getRealTarget) => ({
39
- [inspect]() {
39
+ [inspect](
40
+ depth: number,
41
+ options: InspectOptions,
42
+ inspectFn: (
43
+ object: any,
44
+ options: InspectOptions
45
+ ) => string = util.inspect
46
+ ) {
40
47
  const realTarget = getRealTarget();
41
- return util.inspect(realTarget);
48
+ const newOptions = { ...options, depth };
49
+ return inspectFn(realTarget, newOptions);
42
50
  },
43
51
  }),
44
52
  (object) => {
@@ -64,9 +72,17 @@ export function lazyFunction<T extends Function>(functionCreator: () => T): T {
64
72
  (getRealTarget) => {
65
73
  function dummyTarget() {}
66
74
 
67
- (dummyTarget as any)[inspect] = function () {
75
+ (dummyTarget as any)[inspect] = function (
76
+ depth: number,
77
+ options: InspectOptions,
78
+ inspectFn: (
79
+ object: any,
80
+ options: InspectOptions
81
+ ) => string = util.inspect
82
+ ) {
68
83
  const realTarget = getRealTarget();
69
- return util.inspect(realTarget);
84
+ const newOptions = { ...options, depth };
85
+ return inspectFn(realTarget, newOptions);
70
86
  };
71
87
 
72
88
  return dummyTarget;
@@ -20,7 +20,7 @@ export function weiToHumanReadableString(wei: BN | number): string {
20
20
  }
21
21
 
22
22
  if (wei.lt(new BN(10).pow(new BN(5)))) {
23
- return `${wei} wei`;
23
+ return `${wei.toString()} wei`;
24
24
  }
25
25
 
26
26
  if (wei.lt(new BN(10).pow(new BN(14)))) {
package/src/register.ts CHANGED
@@ -39,14 +39,15 @@ if (!HardhatContext.isCreated()) {
39
39
  loadTsNode(hardhatArguments.tsconfig);
40
40
  }
41
41
 
42
- const config = loadConfigAndTasks(hardhatArguments);
42
+ const { resolvedConfig, userConfig } = loadConfigAndTasks(hardhatArguments);
43
43
 
44
44
  const env = new Environment(
45
- config,
45
+ resolvedConfig,
46
46
  hardhatArguments,
47
47
  ctx.tasksDSL.getTaskDefinitions(),
48
48
  ctx.extendersManager.getExtenders(),
49
- ctx.experimentalHardhatNetworkMessageTraceHooks
49
+ ctx.experimentalHardhatNetworkMessageTraceHooks,
50
+ userConfig
50
51
  );
51
52
 
52
53
  ctx.setHardhatRuntimeEnvironment(env);
@@ -58,7 +58,6 @@ export interface HardhatNetworkUserConfig {
58
58
  forking?: HardhatNetworkForkingUserConfig;
59
59
  coinbase?: string;
60
60
  chains?: HardhatNetworkChainsUserConfig;
61
- enabledEips?: number[];
62
61
  }
63
62
 
64
63
  export type HardhatNetworkAccountsUserConfig =
@@ -153,7 +152,6 @@ export interface HardhatNetworkConfig {
153
152
  forking?: HardhatNetworkForkingConfig;
154
153
  coinbase?: string;
155
154
  chains: HardhatNetworkChainsConfig;
156
- enabledEips: number[];
157
155
  }
158
156
 
159
157
  export type HardhatNetworkAccountsConfig =
@@ -1,5 +1,5 @@
1
1
  import { Artifacts } from "./artifacts";
2
- import { HardhatConfig, NetworkConfig } from "./config";
2
+ import { HardhatConfig, HardhatUserConfig, NetworkConfig } from "./config";
3
3
  import { EthereumProvider } from "./provider";
4
4
 
5
5
  /**
@@ -186,6 +186,7 @@ export type RunTaskFunction = (
186
186
 
187
187
  export interface HardhatRuntimeEnvironment {
188
188
  readonly config: HardhatConfig;
189
+ readonly userConfig: HardhatUserConfig;
189
190
  readonly hardhatArguments: HardhatArguments;
190
191
  readonly tasks: TasksMap;
191
192
  readonly run: RunTaskFunction;
package/types/config.d.ts CHANGED
@@ -34,7 +34,6 @@ export interface HardhatNetworkUserConfig {
34
34
  forking?: HardhatNetworkForkingUserConfig;
35
35
  coinbase?: string;
36
36
  chains?: HardhatNetworkChainsUserConfig;
37
- enabledEips?: number[];
38
37
  }
39
38
  export declare type HardhatNetworkAccountsUserConfig = HardhatNetworkAccountUserConfig[] | HardhatNetworkHDAccountsUserConfig;
40
39
  export interface HardhatNetworkAccountUserConfig {
@@ -106,7 +105,6 @@ export interface HardhatNetworkConfig {
106
105
  forking?: HardhatNetworkForkingConfig;
107
106
  coinbase?: string;
108
107
  chains: HardhatNetworkChainsConfig;
109
- enabledEips: number[];
110
108
  }
111
109
  export declare type HardhatNetworkAccountsConfig = HardhatNetworkHDAccountsConfig | HardhatNetworkAccountConfig[];
112
110
  export interface HardhatNetworkAccountConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Artifacts } from "./artifacts";
2
- import { HardhatConfig, NetworkConfig } from "./config";
2
+ import { HardhatConfig, HardhatUserConfig, NetworkConfig } from "./config";
3
3
  import { EthereumProvider } from "./provider";
4
4
  /**
5
5
  * This class is used to dynamically validate task's argument types.
@@ -113,6 +113,7 @@ export interface TasksMap {
113
113
  export declare type RunTaskFunction = (name: string, taskArguments?: TaskArguments) => Promise<any>;
114
114
  export interface HardhatRuntimeEnvironment {
115
115
  readonly config: HardhatConfig;
116
+ readonly userConfig: HardhatUserConfig;
116
117
  readonly hardhatArguments: HardhatArguments;
117
118
  readonly tasks: TasksMap;
118
119
  readonly run: RunTaskFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/types/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/types/runtime.ts"],"names":[],"mappings":"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"}