hardhat 2.20.0 → 2.21.0-dev.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/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -6
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +28 -4
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/http.d.ts +2 -0
- package/internal/core/providers/http.d.ts.map +1 -1
- package/internal/core/providers/http.js +2 -1
- package/internal/core/providers/http.js.map +1 -1
- package/internal/core/runtime-environment.d.ts.map +1 -1
- package/internal/core/runtime-environment.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts +0 -2
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.js +0 -16
- package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/handler.js +9 -1
- package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.d.ts +5 -5
- package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.js +10 -10
- package/internal/hardhat-network/provider/BlockchainData.js.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +0 -7
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/HardhatBlockchain.js +2 -14
- package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/TxPool.d.ts +3 -2
- package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TxPool.js +16 -16
- package/internal/hardhat-network/provider/TxPool.js.map +1 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js +1 -1
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -1
- package/internal/hardhat-network/provider/filter.d.ts +6 -5
- package/internal/hardhat-network/provider/filter.d.ts.map +1 -1
- package/internal/hardhat-network/provider/filter.js +2 -2
- package/internal/hardhat-network/provider/filter.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +0 -7
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +4 -21
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +13 -19
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkStateManager.js +61 -59
- package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js +0 -3
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +2 -2
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.js +1 -1
- package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -1
- package/internal/hardhat-network/provider/modules/base.js +4 -4
- package/internal/hardhat-network/provider/modules/base.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +9 -16
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.d.ts +6 -84
- package/internal/hardhat-network/provider/modules/logger.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/logger.js +3 -530
- package/internal/hardhat-network/provider/modules/logger.js.map +1 -1
- package/internal/hardhat-network/provider/node-types.d.ts +2 -65
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node-types.js +0 -5
- package/internal/hardhat-network/provider/node-types.js.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +2 -6
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +79 -148
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +0 -14
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.js +0 -264
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +26 -25
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +342 -186
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +10 -8
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +9 -9
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +10 -8
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +9 -9
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +10 -9
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +7 -6
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +6 -5
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +5 -4
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +8 -7
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +2 -2
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +8 -7
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +2 -2
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +5 -4
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts +14 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.js +191 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -0
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts +0 -1
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js +1 -5
- package/internal/hardhat-network/provider/utils/getCurrentTimestamp.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeCommon.js +1 -3
- package/internal/hardhat-network/provider/utils/makeCommon.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +2 -2
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js +1 -15
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +10 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +38 -18
- package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeStateTrie.js +2 -2
- package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +3 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +2 -6
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -1
- package/internal/hardhat-network/provider/utils/random.d.ts +1 -0
- package/internal/hardhat-network/provider/utils/random.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/random.js +7 -1
- package/internal/hardhat-network/provider/utils/random.js.map +1 -1
- package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/reorgs-protection.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/reorgs-protection.js +5 -5
- package/internal/hardhat-network/provider/utils/reorgs-protection.js.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts +22 -0
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/exit.js +93 -0
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts +29 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.js +46 -0
- package/internal/hardhat-network/provider/vm/minimal-vm.js.map +1 -0
- package/internal/hardhat-network/provider/vm/proxy-vm.d.ts +36 -0
- package/internal/hardhat-network/provider/vm/proxy-vm.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/proxy-vm.js +73 -0
- package/internal/hardhat-network/provider/vm/proxy-vm.js.map +1 -0
- package/internal/hardhat-network/provider/vm/types.d.ts +27 -0
- package/internal/hardhat-network/provider/vm/types.d.ts.map +1 -0
- package/internal/hardhat-network/provider/vm/types.js +3 -0
- package/internal/hardhat-network/provider/vm/types.js.map +1 -0
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +6 -0
- package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/consoleLogger.js +33 -16
- package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +1 -2
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.js +6 -7
- package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +6 -6
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +13 -7
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +8 -3
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.js +22 -1
- package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
- package/internal/hardhat-network/stack-traces/model.d.ts +8 -0
- package/internal/hardhat-network/stack-traces/model.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/model.js +52 -0
- package/internal/hardhat-network/stack-traces/model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/opcodes.d.ts +1 -0
- package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/opcodes.js +5 -1
- package/internal/hardhat-network/stack-traces/opcodes.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +2 -2
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +5 -5
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +28 -34
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +7 -0
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +69 -2
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +7 -12
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +46 -65
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
- package/internal/util/date.d.ts +1 -0
- package/internal/util/date.d.ts.map +1 -1
- package/internal/util/date.js +5 -1
- package/internal/util/date.js.map +1 -1
- package/internal/util/hardforks.d.ts +2 -0
- package/internal/util/hardforks.d.ts.map +1 -1
- package/internal/util/hardforks.js +27 -1
- package/internal/util/hardforks.js.map +1 -1
- package/package.json +18 -16
- package/src/internal/core/providers/construction.ts +7 -9
- package/src/internal/core/providers/http.ts +3 -1
- package/src/internal/core/runtime-environment.ts +2 -1
- package/src/internal/hardhat-network/jsonrpc/client.ts +1 -28
- package/src/internal/hardhat-network/jsonrpc/handler.ts +9 -1
- package/src/internal/hardhat-network/provider/modules/logger.ts +6 -801
- package/src/internal/hardhat-network/provider/node-types.ts +2 -89
- package/src/internal/hardhat-network/provider/output.ts +0 -352
- package/src/internal/hardhat-network/provider/provider.ts +482 -263
- package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +228 -0
- package/src/internal/hardhat-network/provider/utils/getCurrentTimestamp.ts +0 -4
- package/src/internal/hardhat-network/provider/utils/makeCommon.ts +1 -12
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +63 -24
- package/src/internal/hardhat-network/provider/utils/random.ts +8 -1
- package/src/internal/hardhat-network/provider/utils/reorgs-protection.ts +5 -5
- package/src/internal/hardhat-network/provider/vm/exit.ts +101 -0
- package/src/internal/hardhat-network/provider/vm/minimal-vm.ts +101 -0
- package/src/internal/hardhat-network/provider/vm/types.ts +31 -0
- package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +40 -21
- package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +10 -12
- package/src/internal/hardhat-network/stack-traces/debug.ts +6 -6
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +15 -8
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +40 -4
- package/src/internal/hardhat-network/stack-traces/model.ts +61 -0
- package/src/internal/hardhat-network/stack-traces/opcodes.ts +4 -0
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +2 -2
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +6 -5
- package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +113 -4
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +67 -95
- package/src/internal/util/date.ts +4 -0
- package/src/internal/util/hardforks.ts +52 -0
- package/src/internal/hardhat-network/provider/BlockchainBase.ts +0 -185
- package/src/internal/hardhat-network/provider/BlockchainData.ts +0 -261
- package/src/internal/hardhat-network/provider/HardhatBlockchain.ts +0 -140
- package/src/internal/hardhat-network/provider/PoolState.ts +0 -48
- package/src/internal/hardhat-network/provider/TransactionQueue.ts +0 -158
- package/src/internal/hardhat-network/provider/TxPool.ts +0 -715
- package/src/internal/hardhat-network/provider/ethereumjs-workarounds.ts +0 -21
- package/src/internal/hardhat-network/provider/filter.ts +0 -142
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +0 -433
- package/src/internal/hardhat-network/provider/fork/ForkStateManager.ts +0 -480
- package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +0 -35
- package/src/internal/hardhat-network/provider/fork/rpcToTxData.ts +0 -44
- package/src/internal/hardhat-network/provider/modules/base.ts +0 -156
- package/src/internal/hardhat-network/provider/modules/debug.ts +0 -104
- package/src/internal/hardhat-network/provider/modules/eth.ts +0 -1781
- package/src/internal/hardhat-network/provider/modules/evm.ts +0 -249
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +0 -481
- package/src/internal/hardhat-network/provider/modules/net.ts +0 -60
- package/src/internal/hardhat-network/provider/modules/personal.ts +0 -40
- package/src/internal/hardhat-network/provider/modules/web3.ts +0 -49
- package/src/internal/hardhat-network/provider/node.ts +0 -2993
- package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +0 -226
- package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +0 -224
- package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +0 -216
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +0 -143
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +0 -144
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +0 -171
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts +0 -169
- package/src/internal/hardhat-network/provider/types/HardhatBlockchainInterface.ts +0 -25
- package/src/internal/hardhat-network/provider/utils/makeFakeSignature.ts +0 -60
- package/src/internal/hardhat-network/provider/utils/makeStateTrie.ts +0 -29
- package/src/internal/hardhat-network/provider/utils/putGenesisBlock.ts +0 -61
- package/src/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.ts +0 -45
- package/src/internal/hardhat-network/provider/utils/txMapToArray.ts +0 -7
- package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +0 -630
|
@@ -1,481 +0,0 @@
|
|
|
1
|
-
import { Address } from "@nomicfoundation/ethereumjs-util";
|
|
2
|
-
import * as t from "io-ts";
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
BoundExperimentalHardhatNetworkMessageTraceHook,
|
|
6
|
-
CompilerInput,
|
|
7
|
-
CompilerOutput,
|
|
8
|
-
} from "../../../../types";
|
|
9
|
-
import {
|
|
10
|
-
bufferToRpcData,
|
|
11
|
-
rpcAddress,
|
|
12
|
-
rpcData,
|
|
13
|
-
rpcHash,
|
|
14
|
-
rpcQuantity,
|
|
15
|
-
} from "../../../core/jsonrpc/types/base-types";
|
|
16
|
-
import {
|
|
17
|
-
optionalRpcHardhatNetworkConfig,
|
|
18
|
-
RpcHardhatNetworkConfig,
|
|
19
|
-
} from "../../../core/jsonrpc/types/input/hardhat-network";
|
|
20
|
-
import {
|
|
21
|
-
rpcCompilerInput,
|
|
22
|
-
rpcCompilerOutput,
|
|
23
|
-
} from "../../../core/jsonrpc/types/input/solc";
|
|
24
|
-
import { validateParams } from "../../../core/jsonrpc/types/input/validation";
|
|
25
|
-
import { HardhatMetadata } from "../../../core/jsonrpc/types/output/metadata";
|
|
26
|
-
import {
|
|
27
|
-
InvalidInputError,
|
|
28
|
-
MethodNotFoundError,
|
|
29
|
-
} from "../../../core/providers/errors";
|
|
30
|
-
import { optional } from "../../../util/io-ts";
|
|
31
|
-
import { MessageTrace } from "../../stack-traces/message-trace";
|
|
32
|
-
import { HardhatNode } from "../node";
|
|
33
|
-
import { ForkConfig, MineBlockResult } from "../node-types";
|
|
34
|
-
|
|
35
|
-
import { ModulesLogger } from "./logger";
|
|
36
|
-
|
|
37
|
-
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
38
|
-
|
|
39
|
-
export class HardhatModule {
|
|
40
|
-
constructor(
|
|
41
|
-
private readonly _node: HardhatNode,
|
|
42
|
-
private readonly _resetCallback: (forkConfig?: ForkConfig) => Promise<void>,
|
|
43
|
-
private readonly _setLoggingEnabledCallback: (
|
|
44
|
-
loggingEnabled: boolean
|
|
45
|
-
) => void,
|
|
46
|
-
private readonly _logger: ModulesLogger,
|
|
47
|
-
private readonly _experimentalHardhatNetworkMessageTraceHooks: BoundExperimentalHardhatNetworkMessageTraceHook[] = []
|
|
48
|
-
) {}
|
|
49
|
-
|
|
50
|
-
public async processRequest(
|
|
51
|
-
method: string,
|
|
52
|
-
params: any[] = []
|
|
53
|
-
): Promise<any> {
|
|
54
|
-
switch (method) {
|
|
55
|
-
case "hardhat_getStackTraceFailuresCount":
|
|
56
|
-
return this._getStackTraceFailuresCountAction(
|
|
57
|
-
...this._getStackTraceFailuresCountParams(params)
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
case "hardhat_addCompilationResult":
|
|
61
|
-
return this._addCompilationResultAction(
|
|
62
|
-
...this._addCompilationResultParams(params)
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
case "hardhat_impersonateAccount":
|
|
66
|
-
return this._impersonateAction(...this._impersonateParams(params));
|
|
67
|
-
|
|
68
|
-
case "hardhat_intervalMine":
|
|
69
|
-
return this._intervalMineAction(...this._intervalMineParams(params));
|
|
70
|
-
|
|
71
|
-
case "hardhat_getAutomine":
|
|
72
|
-
return this._getAutomine();
|
|
73
|
-
|
|
74
|
-
case "hardhat_stopImpersonatingAccount":
|
|
75
|
-
return this._stopImpersonatingAction(
|
|
76
|
-
...this._stopImpersonatingParams(params)
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
case "hardhat_reset":
|
|
80
|
-
return this._resetAction(...this._resetParams(params));
|
|
81
|
-
|
|
82
|
-
case "hardhat_setLoggingEnabled":
|
|
83
|
-
return this._setLoggingEnabledAction(
|
|
84
|
-
...this._setLoggingEnabledParams(params)
|
|
85
|
-
);
|
|
86
|
-
|
|
87
|
-
case "hardhat_setMinGasPrice":
|
|
88
|
-
return this._setMinGasPriceAction(
|
|
89
|
-
...this._setMinGasPriceParams(params)
|
|
90
|
-
);
|
|
91
|
-
|
|
92
|
-
case "hardhat_dropTransaction":
|
|
93
|
-
return this._dropTransactionAction(
|
|
94
|
-
...this._dropTransactionParams(params)
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
case "hardhat_metadata":
|
|
98
|
-
return this._metadataAction(...this._metadataParams(params));
|
|
99
|
-
|
|
100
|
-
case "hardhat_setBalance":
|
|
101
|
-
return this._setBalanceAction(...this._setBalanceParams(params));
|
|
102
|
-
|
|
103
|
-
case "hardhat_setCode":
|
|
104
|
-
return this._setCodeAction(...this._setCodeParams(params));
|
|
105
|
-
|
|
106
|
-
case "hardhat_setNonce":
|
|
107
|
-
return this._setNonceAction(...this._setNonceParams(params));
|
|
108
|
-
|
|
109
|
-
case "hardhat_setStorageAt":
|
|
110
|
-
return this._setStorageAtAction(...this._setStorageAtParams(params));
|
|
111
|
-
|
|
112
|
-
case "hardhat_setNextBlockBaseFeePerGas":
|
|
113
|
-
return this._setNextBlockBaseFeePerGasAction(
|
|
114
|
-
...this._setNextBlockBaseFeePerGasParams(params)
|
|
115
|
-
);
|
|
116
|
-
|
|
117
|
-
case "hardhat_setCoinbase":
|
|
118
|
-
return this._setCoinbaseAction(...this._setCoinbaseParams(params));
|
|
119
|
-
|
|
120
|
-
case "hardhat_mine":
|
|
121
|
-
return this._hardhatMineAction(...this._hardhatMineParams(params));
|
|
122
|
-
|
|
123
|
-
case "hardhat_setPrevRandao":
|
|
124
|
-
return this._hardhatSetPrevRandaoAction(
|
|
125
|
-
...this._hardhatSetPrevRandaoParams(params)
|
|
126
|
-
);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
throw new MethodNotFoundError(`Method ${method} not found`);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// hardhat_getStackTraceFailuresCount
|
|
133
|
-
|
|
134
|
-
private _getStackTraceFailuresCountParams(params: any[]): [] {
|
|
135
|
-
return validateParams(params);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
private async _getStackTraceFailuresCountAction(): Promise<number> {
|
|
139
|
-
return this._node.getStackTraceFailuresCount();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// hardhat_addCompilationResult
|
|
143
|
-
|
|
144
|
-
private _addCompilationResultParams(
|
|
145
|
-
params: any[]
|
|
146
|
-
): [string, CompilerInput, CompilerOutput] {
|
|
147
|
-
return validateParams(
|
|
148
|
-
params,
|
|
149
|
-
t.string,
|
|
150
|
-
rpcCompilerInput,
|
|
151
|
-
rpcCompilerOutput
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
private async _addCompilationResultAction(
|
|
156
|
-
solcVersion: string,
|
|
157
|
-
compilerInput: CompilerInput,
|
|
158
|
-
compilerOutput: CompilerOutput
|
|
159
|
-
): Promise<boolean> {
|
|
160
|
-
return this._node.addCompilationResult(
|
|
161
|
-
solcVersion,
|
|
162
|
-
compilerInput,
|
|
163
|
-
compilerOutput
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// hardhat_impersonateAccount
|
|
168
|
-
|
|
169
|
-
private _impersonateParams(params: any[]): [Buffer] {
|
|
170
|
-
return validateParams(params, rpcAddress);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
private _impersonateAction(address: Buffer): true {
|
|
174
|
-
return this._node.addImpersonatedAccount(address);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// hardhat_intervalMine
|
|
178
|
-
|
|
179
|
-
private _intervalMineParams(_params: any[]): [] {
|
|
180
|
-
return [];
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
private async _intervalMineAction(): Promise<boolean> {
|
|
184
|
-
const result = await this._node.mineBlock();
|
|
185
|
-
const blockNumber = result.block.header.number;
|
|
186
|
-
|
|
187
|
-
const isEmpty = result.block.transactions.length === 0;
|
|
188
|
-
if (isEmpty) {
|
|
189
|
-
this._logger.printIntervalMinedBlockNumber(
|
|
190
|
-
blockNumber,
|
|
191
|
-
isEmpty,
|
|
192
|
-
result.block.header.baseFeePerGas
|
|
193
|
-
);
|
|
194
|
-
} else {
|
|
195
|
-
await this._logBlock(result, { isIntervalMined: true });
|
|
196
|
-
this._logger.printIntervalMinedBlockNumber(blockNumber, isEmpty);
|
|
197
|
-
const printedSomething = this._logger.printLogs();
|
|
198
|
-
if (printedSomething) {
|
|
199
|
-
this._logger.printEmptyLine();
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
return true;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// hardhat_getAutomine
|
|
207
|
-
|
|
208
|
-
private async _getAutomine(): Promise<boolean> {
|
|
209
|
-
return this._node.getAutomine();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// hardhat_stopImpersonatingAccount
|
|
213
|
-
|
|
214
|
-
private _stopImpersonatingParams(params: any[]): [Buffer] {
|
|
215
|
-
return validateParams(params, rpcAddress);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
private _stopImpersonatingAction(address: Buffer): boolean {
|
|
219
|
-
return this._node.removeImpersonatedAccount(address);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// hardhat_reset
|
|
223
|
-
|
|
224
|
-
private _resetParams(params: any[]): [RpcHardhatNetworkConfig | undefined] {
|
|
225
|
-
return validateParams(params, optionalRpcHardhatNetworkConfig);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
private async _resetAction(
|
|
229
|
-
networkConfig?: RpcHardhatNetworkConfig
|
|
230
|
-
): Promise<true> {
|
|
231
|
-
await this._resetCallback(networkConfig?.forking);
|
|
232
|
-
return true;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// hardhat_setLoggingEnabled
|
|
236
|
-
|
|
237
|
-
private _setLoggingEnabledParams(params: any[]): [boolean] {
|
|
238
|
-
return validateParams(params, t.boolean);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
private async _setLoggingEnabledAction(
|
|
242
|
-
loggingEnabled: boolean
|
|
243
|
-
): Promise<true> {
|
|
244
|
-
this._setLoggingEnabledCallback(loggingEnabled);
|
|
245
|
-
return true;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// hardhat_setMinGasPrice
|
|
249
|
-
|
|
250
|
-
private _setMinGasPriceParams(params: any[]): [bigint] {
|
|
251
|
-
return validateParams(params, rpcQuantity);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
private async _setMinGasPriceAction(minGasPrice: bigint): Promise<true> {
|
|
255
|
-
if (minGasPrice < 0n) {
|
|
256
|
-
throw new InvalidInputError("Minimum gas price cannot be negative");
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
if (this._node.isEip1559Active()) {
|
|
260
|
-
throw new InvalidInputError(
|
|
261
|
-
"hardhat_setMinGasPrice is not supported when EIP-1559 is active"
|
|
262
|
-
);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
await this._node.setMinGasPrice(minGasPrice);
|
|
266
|
-
return true;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// hardhat_dropTransaction
|
|
270
|
-
|
|
271
|
-
private _dropTransactionParams(params: any[]): [Buffer] {
|
|
272
|
-
return validateParams(params, rpcHash);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
private async _dropTransactionAction(hash: Buffer): Promise<boolean> {
|
|
276
|
-
return this._node.dropTransaction(hash);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
// hardhat_metadata
|
|
280
|
-
|
|
281
|
-
private _metadataParams(params: any[]): [] {
|
|
282
|
-
return validateParams(params);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
private async _metadataAction(): Promise<HardhatMetadata> {
|
|
286
|
-
return this._node.getMetadata();
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
// hardhat_setBalance
|
|
290
|
-
|
|
291
|
-
private _setBalanceParams(params: any[]): [Buffer, bigint] {
|
|
292
|
-
return validateParams(params, rpcAddress, rpcQuantity);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
private async _setBalanceAction(address: Buffer, newBalance: bigint) {
|
|
296
|
-
await this._node.setAccountBalance(new Address(address), newBalance);
|
|
297
|
-
return true;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// hardhat_setCode
|
|
301
|
-
|
|
302
|
-
private _setCodeParams(params: any[]): [Buffer, Buffer] {
|
|
303
|
-
return validateParams(params, rpcAddress, rpcData);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
private async _setCodeAction(address: Buffer, newCode: Buffer) {
|
|
307
|
-
await this._node.setAccountCode(new Address(address), newCode);
|
|
308
|
-
return true;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
// hardhat_setNonce
|
|
312
|
-
|
|
313
|
-
private _setNonceParams(params: any[]): [Buffer, bigint] {
|
|
314
|
-
return validateParams(params, rpcAddress, rpcQuantity);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
private async _setNonceAction(address: Buffer, newNonce: bigint) {
|
|
318
|
-
await this._node.setNextConfirmedNonce(new Address(address), newNonce);
|
|
319
|
-
return true;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
// hardhat_setStorageAt
|
|
323
|
-
|
|
324
|
-
private _setStorageAtParams(params: any[]): [Buffer, bigint, Buffer] {
|
|
325
|
-
const [address, positionIndex, value] = validateParams(
|
|
326
|
-
params,
|
|
327
|
-
rpcAddress,
|
|
328
|
-
rpcQuantity,
|
|
329
|
-
rpcData
|
|
330
|
-
);
|
|
331
|
-
|
|
332
|
-
const MAX_WORD_VALUE = 2n ** 256n;
|
|
333
|
-
if (positionIndex >= MAX_WORD_VALUE) {
|
|
334
|
-
throw new InvalidInputError(
|
|
335
|
-
`Storage key must not be greater than or equal to 2^256. Received ${positionIndex.toString()}.`
|
|
336
|
-
);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
if (value.length !== 32) {
|
|
340
|
-
throw new InvalidInputError(
|
|
341
|
-
`Storage value must be exactly 32 bytes long. Received ${bufferToRpcData(
|
|
342
|
-
value
|
|
343
|
-
)}, which is ${value.length} bytes long.`
|
|
344
|
-
);
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
return [address, positionIndex, value];
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
private async _setStorageAtAction(
|
|
351
|
-
address: Buffer,
|
|
352
|
-
positionIndex: bigint,
|
|
353
|
-
value: Buffer
|
|
354
|
-
) {
|
|
355
|
-
await this._node.setStorageAt(new Address(address), positionIndex, value);
|
|
356
|
-
return true;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
// hardhat_setNextBlockBaseFeePerGas
|
|
360
|
-
private _setNextBlockBaseFeePerGasParams(params: any[]): [bigint] {
|
|
361
|
-
return validateParams(params, rpcQuantity);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
private _setNextBlockBaseFeePerGasAction(baseFeePerGas: bigint) {
|
|
365
|
-
if (!this._node.isEip1559Active()) {
|
|
366
|
-
throw new InvalidInputError(
|
|
367
|
-
"hardhat_setNextBlockBaseFeePerGas is disabled because EIP-1559 is not active"
|
|
368
|
-
);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
this._node.setUserProvidedNextBlockBaseFeePerGas(baseFeePerGas);
|
|
372
|
-
return true;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
// hardhat_setCoinbase
|
|
376
|
-
|
|
377
|
-
private _setCoinbaseParams(params: any[]): [Buffer] {
|
|
378
|
-
return validateParams(params, rpcAddress);
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
private async _setCoinbaseAction(address: Buffer) {
|
|
382
|
-
await this._node.setCoinbase(new Address(address));
|
|
383
|
-
return true;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
// hardhat_mine
|
|
387
|
-
private async _hardhatMineAction(blockCount?: bigint, interval?: bigint) {
|
|
388
|
-
const mineBlockResults = await this._node.mineBlocks(blockCount, interval);
|
|
389
|
-
|
|
390
|
-
for (const [i, result] of mineBlockResults.entries()) {
|
|
391
|
-
await this._logHardhatMinedBlock(result);
|
|
392
|
-
|
|
393
|
-
// print an empty line after logging blocks with txs,
|
|
394
|
-
// unless it's the last logged block
|
|
395
|
-
const isEmpty = result.block.transactions.length === 0;
|
|
396
|
-
if (!isEmpty && i + 1 < mineBlockResults.length) {
|
|
397
|
-
this._logger.logEmptyLine();
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
return true;
|
|
402
|
-
}
|
|
403
|
-
private _hardhatMineParams(
|
|
404
|
-
params: any[]
|
|
405
|
-
): [bigint | undefined, bigint | undefined] {
|
|
406
|
-
return validateParams(params, optional(rpcQuantity), optional(rpcQuantity));
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
// hardhat_setPrevRandao
|
|
410
|
-
|
|
411
|
-
private _hardhatSetPrevRandaoParams(params: any[]): [Buffer] {
|
|
412
|
-
// using rpcHash because it's also 32 bytes long
|
|
413
|
-
return validateParams(params, rpcHash);
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
private async _hardhatSetPrevRandaoAction(prevRandao: Buffer) {
|
|
417
|
-
if (!this._node.isPostMergeHardfork()) {
|
|
418
|
-
throw new InvalidInputError(
|
|
419
|
-
`hardhat_setPrevRandao is only available in post-merge hardforks, the current hardfork is ${this._node.hardfork}`
|
|
420
|
-
);
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
this._node.setPrevRandao(prevRandao);
|
|
424
|
-
|
|
425
|
-
return true;
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
private async _logBlock(
|
|
429
|
-
result: MineBlockResult,
|
|
430
|
-
{ isIntervalMined }: { isIntervalMined: boolean }
|
|
431
|
-
) {
|
|
432
|
-
const { block, traces } = result;
|
|
433
|
-
|
|
434
|
-
const codes: Buffer[] = [];
|
|
435
|
-
for (const txTrace of traces) {
|
|
436
|
-
const code = await this._node.getCodeFromTrace(
|
|
437
|
-
txTrace.trace,
|
|
438
|
-
block.header.number
|
|
439
|
-
);
|
|
440
|
-
|
|
441
|
-
codes.push(code);
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
if (isIntervalMined) {
|
|
445
|
-
this._logger.logIntervalMinedBlock(result, codes);
|
|
446
|
-
} else {
|
|
447
|
-
this._logger.logMinedBlock(result, codes);
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
for (const txTrace of traces) {
|
|
451
|
-
await this._runHardhatNetworkMessageTraceHooks(txTrace.trace, false);
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
private async _runHardhatNetworkMessageTraceHooks(
|
|
456
|
-
trace: MessageTrace | undefined,
|
|
457
|
-
isCall: boolean
|
|
458
|
-
) {
|
|
459
|
-
if (trace === undefined) {
|
|
460
|
-
return;
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
for (const hook of this._experimentalHardhatNetworkMessageTraceHooks) {
|
|
464
|
-
await hook(trace, isCall);
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
private async _logHardhatMinedBlock(result: MineBlockResult) {
|
|
469
|
-
const isEmpty = result.block.transactions.length === 0;
|
|
470
|
-
const blockNumber = result.block.header.number;
|
|
471
|
-
|
|
472
|
-
if (isEmpty) {
|
|
473
|
-
this._logger.logEmptyHardhatMinedBlock(
|
|
474
|
-
blockNumber,
|
|
475
|
-
result.block.header.baseFeePerGas
|
|
476
|
-
);
|
|
477
|
-
} else {
|
|
478
|
-
await this._logBlock(result, { isIntervalMined: false });
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Common } from "@nomicfoundation/ethereumjs-common";
|
|
2
|
-
|
|
3
|
-
import { numberToRpcQuantity } from "../../../core/jsonrpc/types/base-types";
|
|
4
|
-
import { validateParams } from "../../../core/jsonrpc/types/input/validation";
|
|
5
|
-
import { MethodNotFoundError } from "../../../core/providers/errors";
|
|
6
|
-
|
|
7
|
-
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
8
|
-
|
|
9
|
-
export class NetModule {
|
|
10
|
-
constructor(private readonly _common: Common) {}
|
|
11
|
-
|
|
12
|
-
public async processRequest(
|
|
13
|
-
method: string,
|
|
14
|
-
params: any[] = []
|
|
15
|
-
): Promise<any> {
|
|
16
|
-
switch (method) {
|
|
17
|
-
case "net_listening":
|
|
18
|
-
return this._listeningAction(...this._listeningParams(params));
|
|
19
|
-
|
|
20
|
-
case "net_peerCount":
|
|
21
|
-
return this._peerCountAction(...this._peerCountParams(params));
|
|
22
|
-
|
|
23
|
-
case "net_version":
|
|
24
|
-
return this._versionAction(...this._versionParams(params));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
throw new MethodNotFoundError(`Method ${method} not found`);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// net_listening
|
|
31
|
-
|
|
32
|
-
private _listeningParams(params: any[]): [] {
|
|
33
|
-
return validateParams(params);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
private async _listeningAction(): Promise<boolean> {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// net_peerCount
|
|
41
|
-
|
|
42
|
-
private _peerCountParams(_params: any[]): [] {
|
|
43
|
-
return [];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
private async _peerCountAction(): Promise<string> {
|
|
47
|
-
return numberToRpcQuantity(0);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// net_version
|
|
51
|
-
|
|
52
|
-
private _versionParams(_params: any[]): [] {
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
private async _versionAction(): Promise<string> {
|
|
57
|
-
// This RPC call is an exception: it returns a number in decimal
|
|
58
|
-
return this._common.networkId().toString();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Address, toRpcSig } from "@nomicfoundation/ethereumjs-util";
|
|
2
|
-
|
|
3
|
-
import { rpcAddress, rpcData } from "../../../core/jsonrpc/types/base-types";
|
|
4
|
-
import { validateParams } from "../../../core/jsonrpc/types/input/validation";
|
|
5
|
-
import { MethodNotFoundError } from "../../../core/providers/errors";
|
|
6
|
-
import { HardhatNode } from "../node";
|
|
7
|
-
|
|
8
|
-
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
9
|
-
|
|
10
|
-
export class PersonalModule {
|
|
11
|
-
constructor(private readonly _node: HardhatNode) {}
|
|
12
|
-
|
|
13
|
-
public async processRequest(
|
|
14
|
-
method: string,
|
|
15
|
-
params: any[] = []
|
|
16
|
-
): Promise<any> {
|
|
17
|
-
switch (method) {
|
|
18
|
-
case "personal_sign": {
|
|
19
|
-
return this._signAction(...this._signParams(params));
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
throw new MethodNotFoundError(`Method ${method} not found`);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// personal_sign
|
|
27
|
-
|
|
28
|
-
private _signParams(params: any[]): [Buffer, Buffer] {
|
|
29
|
-
return validateParams(params, rpcData, rpcAddress);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
private async _signAction(data: Buffer, address: Buffer): Promise<string> {
|
|
33
|
-
const signature = await this._node.signPersonalMessage(
|
|
34
|
-
new Address(address),
|
|
35
|
-
data
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
return toRpcSig(signature.v, signature.r, signature.s);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
bufferToRpcData,
|
|
3
|
-
rpcData,
|
|
4
|
-
} from "../../../core/jsonrpc/types/base-types";
|
|
5
|
-
import { validateParams } from "../../../core/jsonrpc/types/input/validation";
|
|
6
|
-
import { MethodNotFoundError } from "../../../core/providers/errors";
|
|
7
|
-
import { keccak256 } from "../../../util/keccak";
|
|
8
|
-
import { HardhatNode } from "../node";
|
|
9
|
-
|
|
10
|
-
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
11
|
-
|
|
12
|
-
export class Web3Module {
|
|
13
|
-
constructor(private readonly _node: HardhatNode) {}
|
|
14
|
-
|
|
15
|
-
public async processRequest(
|
|
16
|
-
method: string,
|
|
17
|
-
params: any[] = []
|
|
18
|
-
): Promise<any> {
|
|
19
|
-
switch (method) {
|
|
20
|
-
case "web3_clientVersion":
|
|
21
|
-
return this._clientVersionAction(...this._clientVersionParams(params));
|
|
22
|
-
|
|
23
|
-
case "web3_sha3":
|
|
24
|
-
return this._sha3Action(...this._sha3Params(params));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
throw new MethodNotFoundError(`Method ${method} not found`);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// web3_clientVersion
|
|
31
|
-
|
|
32
|
-
private _clientVersionParams(params: any[]): [] {
|
|
33
|
-
return validateParams(params);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
private async _clientVersionAction(): Promise<string> {
|
|
37
|
-
return this._node.getClientVersion();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// web3_sha3
|
|
41
|
-
|
|
42
|
-
private _sha3Params(params: any[]): [Buffer] {
|
|
43
|
-
return validateParams(params, rpcData);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
private async _sha3Action(buffer: Buffer): Promise<string> {
|
|
47
|
-
return bufferToRpcData(keccak256(buffer));
|
|
48
|
-
}
|
|
49
|
-
}
|