hardhat 2.12.2 → 2.12.4
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/artifacts.d.ts +5 -0
- package/internal/artifacts.d.ts.map +1 -1
- package/internal/artifacts.js +23 -0
- package/internal/artifacts.js.map +1 -1
- package/internal/cli/cli.js +7 -0
- package/internal/cli/cli.js.map +1 -1
- package/internal/cli/project-creation.d.ts +1 -0
- package/internal/cli/project-creation.d.ts.map +1 -1
- package/internal/cli/project-creation.js +12 -1
- package/internal/cli/project-creation.js.map +1 -1
- package/internal/core/errors-list.d.ts +7 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +9 -0
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/output/metadata.d.ts +13 -0
- package/internal/core/jsonrpc/types/output/metadata.d.ts.map +1 -0
- package/internal/core/jsonrpc/types/output/metadata.js +3 -0
- package/internal/core/jsonrpc/types/output/metadata.js.map +1 -0
- package/internal/core/providers/accounts.d.ts.map +1 -1
- package/internal/core/providers/accounts.js +4 -1
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +2 -0
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +9 -0
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
- package/internal/hardhat-network/provider/modules/web3.d.ts +3 -0
- package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/web3.js +4 -4
- package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +5 -0
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +40 -3
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +1 -1
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.js +1 -1
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/provider.js +1 -1
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +1 -0
- package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -1
- package/internal/hardhat-network/provider/utils/makeForkClient.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 +2 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
- package/internal/solidity/compiler/index.d.ts.map +1 -1
- package/internal/solidity/compiler/index.js +6 -0
- package/internal/solidity/compiler/index.js.map +1 -1
- package/internal/solidity/resolver.d.ts.map +1 -1
- package/internal/solidity/resolver.js +8 -0
- package/internal/solidity/resolver.js.map +1 -1
- package/internal/util/keys-derivation.d.ts.map +1 -1
- package/internal/util/keys-derivation.js +4 -1
- package/internal/util/keys-derivation.js.map +1 -1
- package/internal/util/packageInfo.d.ts +1 -0
- package/internal/util/packageInfo.d.ts.map +1 -1
- package/internal/util/packageInfo.js +10 -1
- package/internal/util/packageInfo.js.map +1 -1
- package/package.json +1 -1
- package/recommended-gitignore.txt +1 -1
- package/src/internal/artifacts.ts +38 -0
- package/src/internal/cli/cli.ts +11 -1
- package/src/internal/cli/project-creation.ts +16 -0
- package/src/internal/core/errors-list.ts +10 -0
- package/src/internal/core/jsonrpc/types/output/metadata.ts +32 -0
- package/src/internal/core/providers/accounts.ts +5 -2
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +14 -0
- package/src/internal/hardhat-network/provider/modules/web3.ts +4 -4
- package/src/internal/hardhat-network/provider/node.ts +58 -0
- package/src/internal/hardhat-network/provider/output.ts +2 -2
- package/src/internal/hardhat-network/provider/provider.ts +1 -1
- package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +10 -1
- package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +4 -1
- package/src/internal/solidity/compiler/index.ts +8 -0
- package/src/internal/solidity/resolver.ts +10 -0
- package/src/internal/util/keys-derivation.ts +4 -1
- package/src/internal/util/packageInfo.ts +9 -0
- package/src/types/artifacts.ts +5 -0
- package/src/utils/source-names.ts +15 -0
- package/types/artifacts.d.ts +4 -0
- package/types/artifacts.d.ts.map +1 -1
- package/utils/source-names.d.ts +5 -0
- package/utils/source-names.d.ts.map +1 -1
- package/utils/source-names.js +14 -1
- package/utils/source-names.js.map +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface HardhatMetadata {
|
|
2
|
+
// A string identifying the version of Hardhat, for debugging purposes,
|
|
3
|
+
// not meant to be displayed to users.
|
|
4
|
+
clientVersion: string;
|
|
5
|
+
|
|
6
|
+
// The chain's id. Used to sign transactions.
|
|
7
|
+
chainId: number;
|
|
8
|
+
|
|
9
|
+
// A 0x-prefixed hex-encoded 32 bytes id which uniquiely identifies an instance/run
|
|
10
|
+
// of Hardhat Network. Running Hardhat Network more than once (even with the same version
|
|
11
|
+
// and parameters) would always result in different `instanceId`s.
|
|
12
|
+
// Running `hardhat_reset` would change the `instanceId` of an existing Hardhat Network.
|
|
13
|
+
instanceId: string;
|
|
14
|
+
|
|
15
|
+
// The latest block's number in Hardhat Network
|
|
16
|
+
latestBlockNumber: number;
|
|
17
|
+
|
|
18
|
+
// The latest block's hash in Hardhat Network
|
|
19
|
+
latestBlockHash: string;
|
|
20
|
+
|
|
21
|
+
// This field is only present when Hardhat Network is forking another chain.
|
|
22
|
+
forkedNetwork?: {
|
|
23
|
+
// The chainId of the network that is being forked
|
|
24
|
+
chainId: number;
|
|
25
|
+
|
|
26
|
+
// The number of the block that the network forked from.
|
|
27
|
+
forkBlockNumber: number;
|
|
28
|
+
|
|
29
|
+
// The hash of the block that the network forked from.
|
|
30
|
+
forkBlockHash: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as t from "io-ts";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { signTypedData, SignTypedDataVersion } from "@metamask/eth-sig-util";
|
|
4
4
|
import { FeeMarketEIP1559Transaction } from "@nomicfoundation/ethereumjs-tx";
|
|
5
5
|
import { EIP1193Provider, RequestArguments } from "../../../types";
|
|
6
6
|
import { HardhatError } from "../errors";
|
|
@@ -300,8 +300,11 @@ export class HDWalletProvider extends LocalAccountsProvider {
|
|
|
300
300
|
count: number = 10,
|
|
301
301
|
passphrase: string = ""
|
|
302
302
|
) {
|
|
303
|
+
// NOTE: If mnemonic has space or newline at the beginning or end, it will be trimmed.
|
|
304
|
+
// This is because mnemonic containing them may generate different private keys.
|
|
305
|
+
const trimmedMnemonic = mnemonic.trim();
|
|
303
306
|
const privateKeys = derivePrivateKeys(
|
|
304
|
-
|
|
307
|
+
trimmedMnemonic,
|
|
305
308
|
hdpath,
|
|
306
309
|
initialIndex,
|
|
307
310
|
count,
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
rpcCompilerOutput,
|
|
23
23
|
} from "../../../core/jsonrpc/types/input/solc";
|
|
24
24
|
import { validateParams } from "../../../core/jsonrpc/types/input/validation";
|
|
25
|
+
import { HardhatMetadata } from "../../../core/jsonrpc/types/output/metadata";
|
|
25
26
|
import {
|
|
26
27
|
InvalidInputError,
|
|
27
28
|
MethodNotFoundError,
|
|
@@ -93,6 +94,9 @@ export class HardhatModule {
|
|
|
93
94
|
...this._dropTransactionParams(params)
|
|
94
95
|
);
|
|
95
96
|
|
|
97
|
+
case "hardhat_metadata":
|
|
98
|
+
return this._metadataAction(...this._metadataParams(params));
|
|
99
|
+
|
|
96
100
|
case "hardhat_setBalance":
|
|
97
101
|
return this._setBalanceAction(...this._setBalanceParams(params));
|
|
98
102
|
|
|
@@ -272,6 +276,16 @@ export class HardhatModule {
|
|
|
272
276
|
return this._node.dropTransaction(hash);
|
|
273
277
|
}
|
|
274
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
|
+
|
|
275
289
|
// hardhat_setBalance
|
|
276
290
|
|
|
277
291
|
private _setBalanceParams(params: any[]): [Buffer, bigint] {
|
|
@@ -5,11 +5,13 @@ import {
|
|
|
5
5
|
import { validateParams } from "../../../core/jsonrpc/types/input/validation";
|
|
6
6
|
import { MethodNotFoundError } from "../../../core/providers/errors";
|
|
7
7
|
import { keccak256 } from "../../../util/keccak";
|
|
8
|
-
import {
|
|
8
|
+
import { HardhatNode } from "../node";
|
|
9
9
|
|
|
10
10
|
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
11
11
|
|
|
12
12
|
export class Web3Module {
|
|
13
|
+
constructor(private readonly _node: HardhatNode) {}
|
|
14
|
+
|
|
13
15
|
public async processRequest(
|
|
14
16
|
method: string,
|
|
15
17
|
params: any[] = []
|
|
@@ -32,9 +34,7 @@ export class Web3Module {
|
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
private async _clientVersionAction(): Promise<string> {
|
|
35
|
-
|
|
36
|
-
const ethereumjsVMPackage = require("@nomicfoundation/ethereumjs-vm/package.json");
|
|
37
|
-
return `HardhatNetwork/${hardhatPackage.version}/@nomicfoundation/ethereumjs-vm/${ethereumjsVMPackage.version}`;
|
|
37
|
+
return this._node.getClientVersion();
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
// web3_sha3
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
privateToAddress,
|
|
17
17
|
setLengthLeft,
|
|
18
18
|
toBuffer,
|
|
19
|
+
bufferToBigInt,
|
|
19
20
|
} from "@nomicfoundation/ethereumjs-util";
|
|
20
21
|
import {
|
|
21
22
|
Bloom,
|
|
@@ -32,6 +33,7 @@ import {
|
|
|
32
33
|
} from "@nomicfoundation/ethereumjs-statemanager";
|
|
33
34
|
import { SignTypedDataVersion, signTypedData } from "@metamask/eth-sig-util";
|
|
34
35
|
import chalk from "chalk";
|
|
36
|
+
import { randomBytes } from "crypto";
|
|
35
37
|
import debug from "debug";
|
|
36
38
|
import EventEmitter from "events";
|
|
37
39
|
|
|
@@ -51,6 +53,7 @@ import {
|
|
|
51
53
|
InvalidInputError,
|
|
52
54
|
TransactionExecutionError,
|
|
53
55
|
} from "../../core/providers/errors";
|
|
56
|
+
import { HardhatMetadata } from "../../core/jsonrpc/types/output/metadata";
|
|
54
57
|
import { Reporter } from "../../sentry/reporter";
|
|
55
58
|
import { getDifferenceInSeconds } from "../../util/date";
|
|
56
59
|
import {
|
|
@@ -58,6 +61,7 @@ import {
|
|
|
58
61
|
hardforkGte,
|
|
59
62
|
HardforkName,
|
|
60
63
|
} from "../../util/hardforks";
|
|
64
|
+
import { getPackageJson } from "../../util/packageInfo";
|
|
61
65
|
import { createModelsAndDecodeBytecodes } from "../stack-traces/compiler-to-model";
|
|
62
66
|
import { ConsoleLogger } from "../stack-traces/consoleLogger";
|
|
63
67
|
import { ContractsIdentifier } from "../stack-traces/contracts-identifier";
|
|
@@ -150,6 +154,7 @@ export class HardhatNode extends EventEmitter {
|
|
|
150
154
|
let nextBlockBaseFeePerGas: bigint | undefined;
|
|
151
155
|
let forkNetworkId: number | undefined;
|
|
152
156
|
let forkBlockNum: bigint | undefined;
|
|
157
|
+
let forkBlockHash: string | undefined;
|
|
153
158
|
let hardforkActivations: HardforkHistoryConfig = new Map();
|
|
154
159
|
|
|
155
160
|
const initialBaseFeePerGasConfig =
|
|
@@ -168,11 +173,13 @@ export class HardhatNode extends EventEmitter {
|
|
|
168
173
|
forkClient: _forkClient,
|
|
169
174
|
forkBlockNumber,
|
|
170
175
|
forkBlockTimestamp,
|
|
176
|
+
forkBlockHash: _forkBlockHash,
|
|
171
177
|
} = await makeForkClient(config.forkConfig, config.forkCachePath);
|
|
172
178
|
forkClient = _forkClient;
|
|
173
179
|
|
|
174
180
|
forkNetworkId = forkClient.getNetworkId();
|
|
175
181
|
forkBlockNum = forkBlockNumber;
|
|
182
|
+
forkBlockHash = _forkBlockHash;
|
|
176
183
|
|
|
177
184
|
this._validateHardforks(
|
|
178
185
|
config.forkConfig.blockNumber,
|
|
@@ -267,8 +274,11 @@ export class HardhatNode extends EventEmitter {
|
|
|
267
274
|
blockchain,
|
|
268
275
|
});
|
|
269
276
|
|
|
277
|
+
const instanceId = bufferToBigInt(randomBytes(32));
|
|
278
|
+
|
|
270
279
|
const node = new HardhatNode(
|
|
271
280
|
vm,
|
|
281
|
+
instanceId,
|
|
272
282
|
stateManager,
|
|
273
283
|
blockchain,
|
|
274
284
|
txPool,
|
|
@@ -286,6 +296,7 @@ export class HardhatNode extends EventEmitter {
|
|
|
286
296
|
tracingConfig,
|
|
287
297
|
forkNetworkId,
|
|
288
298
|
forkBlockNum,
|
|
299
|
+
forkBlockHash,
|
|
289
300
|
nextBlockBaseFeePerGas,
|
|
290
301
|
forkClient
|
|
291
302
|
);
|
|
@@ -352,6 +363,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
352
363
|
|
|
353
364
|
private constructor(
|
|
354
365
|
private readonly _vm: VM,
|
|
366
|
+
private readonly _instanceId: bigint,
|
|
355
367
|
private readonly _stateManager: StateManager,
|
|
356
368
|
private readonly _blockchain: HardhatBlockchainInterface,
|
|
357
369
|
private readonly _txPool: TxPool,
|
|
@@ -369,6 +381,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
369
381
|
tracingConfig?: TracingConfig,
|
|
370
382
|
private _forkNetworkId?: number,
|
|
371
383
|
private _forkBlockNumber?: bigint,
|
|
384
|
+
private _forkBlockHash?: string,
|
|
372
385
|
nextBlockBaseFee?: bigint,
|
|
373
386
|
private _forkClient?: JsonRpcClient
|
|
374
387
|
) {
|
|
@@ -2519,6 +2532,51 @@ Hardhat Network's forking functionality only works with blocks from at least spu
|
|
|
2519
2532
|
this._mixHashGenerator.setNext(prevRandao);
|
|
2520
2533
|
}
|
|
2521
2534
|
|
|
2535
|
+
public async getClientVersion(): Promise<string> {
|
|
2536
|
+
const hardhatPackage = await getPackageJson();
|
|
2537
|
+
const ethereumjsVMPackage = require("@nomicfoundation/ethereumjs-vm/package.json");
|
|
2538
|
+
return `HardhatNetwork/${hardhatPackage.version}/@nomicfoundation/ethereumjs-vm/${ethereumjsVMPackage.version}`;
|
|
2539
|
+
}
|
|
2540
|
+
|
|
2541
|
+
public async getMetadata(): Promise<HardhatMetadata> {
|
|
2542
|
+
const clientVersion = await this.getClientVersion();
|
|
2543
|
+
|
|
2544
|
+
const instanceIdHex = BigIntUtils.toEvmWord(this._instanceId);
|
|
2545
|
+
const instanceId = `0x${instanceIdHex}`;
|
|
2546
|
+
|
|
2547
|
+
const latestBlock = await this.getLatestBlock();
|
|
2548
|
+
|
|
2549
|
+
const latestBlockHashHex = latestBlock.header.hash().toString("hex");
|
|
2550
|
+
const latestBlockHash = `0x${latestBlockHashHex}`;
|
|
2551
|
+
|
|
2552
|
+
const metadata: HardhatMetadata = {
|
|
2553
|
+
clientVersion,
|
|
2554
|
+
chainId: this._configChainId,
|
|
2555
|
+
instanceId,
|
|
2556
|
+
latestBlockNumber: Number(latestBlock.header.number),
|
|
2557
|
+
latestBlockHash,
|
|
2558
|
+
};
|
|
2559
|
+
|
|
2560
|
+
if (this._forkBlockNumber !== undefined) {
|
|
2561
|
+
assertHardhatInvariant(
|
|
2562
|
+
this._forkNetworkId !== undefined,
|
|
2563
|
+
"this._forkNetworkId should be defined if this._forkBlockNumber is defined"
|
|
2564
|
+
);
|
|
2565
|
+
assertHardhatInvariant(
|
|
2566
|
+
this._forkBlockHash !== undefined,
|
|
2567
|
+
"this._forkBlockhash should be defined if this._forkBlockNumber is defined"
|
|
2568
|
+
);
|
|
2569
|
+
|
|
2570
|
+
metadata.forkedNetwork = {
|
|
2571
|
+
chainId: this._forkNetworkId,
|
|
2572
|
+
forkBlockNumber: Number(this._forkBlockNumber),
|
|
2573
|
+
forkBlockHash: this._forkBlockHash,
|
|
2574
|
+
};
|
|
2575
|
+
}
|
|
2576
|
+
|
|
2577
|
+
return metadata;
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2522
2580
|
private _getNextMixHash(): Buffer {
|
|
2523
2581
|
return this._mixHashGenerator.next();
|
|
2524
2582
|
}
|
|
@@ -24,7 +24,7 @@ export interface RpcBlockOutput {
|
|
|
24
24
|
gasLimit: string;
|
|
25
25
|
gasUsed: string;
|
|
26
26
|
hash: string | null;
|
|
27
|
-
logsBloom: string
|
|
27
|
+
logsBloom: string;
|
|
28
28
|
miner: string;
|
|
29
29
|
mixHash: string | null;
|
|
30
30
|
nonce: string | null;
|
|
@@ -171,7 +171,7 @@ export function getRpcBlock(
|
|
|
171
171
|
nonce: pending ? null : bufferToRpcData(block.header.nonce, 8),
|
|
172
172
|
mixHash: pending ? null : bufferToRpcData(block.header.mixHash, 32),
|
|
173
173
|
sha3Uncles: bufferToRpcData(block.header.uncleHash),
|
|
174
|
-
logsBloom:
|
|
174
|
+
logsBloom: bufferToRpcData(block.header.logsBloom),
|
|
175
175
|
transactionsRoot: bufferToRpcData(block.header.transactionsTrie),
|
|
176
176
|
stateRoot: bufferToRpcData(block.header.stateRoot),
|
|
177
177
|
receiptsRoot: bufferToRpcData(block.header.receiptTrie),
|
|
@@ -265,7 +265,7 @@ export class HardhatNetworkProvider
|
|
|
265
265
|
const miningTimer = this._makeMiningTimer();
|
|
266
266
|
|
|
267
267
|
this._netModule = new NetModule(common);
|
|
268
|
-
this._web3Module = new Web3Module();
|
|
268
|
+
this._web3Module = new Web3Module(node);
|
|
269
269
|
this._evmModule = new EvmModule(
|
|
270
270
|
node,
|
|
271
271
|
miningTimer,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
|
|
3
3
|
import { HARDHAT_NETWORK_NAME } from "../../../constants";
|
|
4
|
+
import { assertHardhatInvariant } from "../../../core/errors";
|
|
4
5
|
import {
|
|
5
6
|
numberToRpcQuantity,
|
|
6
7
|
rpcQuantityToNumber,
|
|
@@ -29,6 +30,7 @@ export async function makeForkClient(
|
|
|
29
30
|
forkClient: JsonRpcClient;
|
|
30
31
|
forkBlockNumber: bigint;
|
|
31
32
|
forkBlockTimestamp: number;
|
|
33
|
+
forkBlockHash: string;
|
|
32
34
|
}> {
|
|
33
35
|
const provider = new HttpProvider(
|
|
34
36
|
forkConfig.jsonRpcUrl,
|
|
@@ -88,7 +90,14 @@ Please use block number ${lastSafeBlock} or wait for the block to get ${
|
|
|
88
90
|
cacheToDiskEnabled ? forkCachePath : undefined
|
|
89
91
|
);
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
const forkBlockHash = block.hash;
|
|
94
|
+
|
|
95
|
+
assertHardhatInvariant(
|
|
96
|
+
forkBlockHash !== null,
|
|
97
|
+
"Forked block should have a hash"
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
return { forkClient, forkBlockNumber, forkBlockTimestamp, forkBlockHash };
|
|
92
101
|
}
|
|
93
102
|
|
|
94
103
|
async function getBlockByNumber(
|
|
@@ -222,7 +222,10 @@ export class VMDebugTracer {
|
|
|
222
222
|
);
|
|
223
223
|
|
|
224
224
|
// geth does this for some reason
|
|
225
|
-
if (
|
|
225
|
+
if (
|
|
226
|
+
rpcStructLogs.length > 0 &&
|
|
227
|
+
result.execResult.exceptionError?.error === "out of gas"
|
|
228
|
+
) {
|
|
226
229
|
rpcStructLogs[rpcStructLogs.length - 1].error = {};
|
|
227
230
|
}
|
|
228
231
|
|
|
@@ -41,6 +41,14 @@ export class Compiler implements ICompiler {
|
|
|
41
41
|
*/
|
|
42
42
|
private _loadCompilerSources(compilerPath: string) {
|
|
43
43
|
const Module = module.constructor as any;
|
|
44
|
+
|
|
45
|
+
// if Hardhat is bundled (for example, in the vscode extension), then
|
|
46
|
+
// Module._extenions might be undefined. In that case, we just use a plain
|
|
47
|
+
// require.
|
|
48
|
+
if (Module._extensions === undefined) {
|
|
49
|
+
return require(compilerPath);
|
|
50
|
+
}
|
|
51
|
+
|
|
44
52
|
const previousHook = Module._extensions[".js"];
|
|
45
53
|
|
|
46
54
|
Module._extensions[".js"] = function (
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
ResolvedFile as IResolvedFile,
|
|
9
9
|
} from "../../types/builtin-tasks";
|
|
10
10
|
import {
|
|
11
|
+
includesOwnPackageName,
|
|
11
12
|
isAbsolutePathSourceName,
|
|
12
13
|
isLocalSourceName,
|
|
13
14
|
normalizeSourceName,
|
|
@@ -128,6 +129,15 @@ export class Resolver {
|
|
|
128
129
|
});
|
|
129
130
|
}
|
|
130
131
|
|
|
132
|
+
// Edge-case where an import can contain the current package's name in monorepos.
|
|
133
|
+
// The path can be resolved because there's a symlink in the node modules.
|
|
134
|
+
if (await includesOwnPackageName(imported)) {
|
|
135
|
+
throw new HardhatError(ERRORS.RESOLVER.INCLUDES_OWN_PACKAGE_NAME, {
|
|
136
|
+
from: from.sourceName,
|
|
137
|
+
imported,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
131
141
|
try {
|
|
132
142
|
let sourceName: string;
|
|
133
143
|
|
|
@@ -11,7 +11,10 @@ export function deriveKeyFromMnemonicAndPath(
|
|
|
11
11
|
}: {
|
|
12
12
|
mnemonicToSeedSync: typeof mnemonicToSeedSyncT;
|
|
13
13
|
} = require("ethereum-cryptography/bip39");
|
|
14
|
-
|
|
14
|
+
// NOTE: If mnemonic has space or newline at the beginning or end, it will be trimmed.
|
|
15
|
+
// This is because mnemonic containing them may generate different private keys.
|
|
16
|
+
const trimmedMnemonic = mnemonic.trim();
|
|
17
|
+
const seed = mnemonicToSeedSync(trimmedMnemonic, passphrase);
|
|
15
18
|
|
|
16
19
|
const {
|
|
17
20
|
HDKey,
|
|
@@ -24,6 +24,15 @@ export function findClosestPackageJson(file: string): string | null {
|
|
|
24
24
|
return findup.sync("package.json", { cwd: path.dirname(file) });
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
export async function getPackageName(file: string): Promise<string> {
|
|
28
|
+
const packageJsonPath = findClosestPackageJson(file);
|
|
29
|
+
if (packageJsonPath !== null && packageJsonPath !== "") {
|
|
30
|
+
const packageJson: PackageJson = await fsExtra.readJSON(packageJsonPath);
|
|
31
|
+
return packageJson.name;
|
|
32
|
+
}
|
|
33
|
+
return "";
|
|
34
|
+
}
|
|
35
|
+
|
|
27
36
|
export async function getPackageJson(): Promise<PackageJson> {
|
|
28
37
|
const root = getPackageRoot();
|
|
29
38
|
return fsExtra.readJSON(path.join(root, "package.json"));
|
package/src/types/artifacts.ts
CHANGED
|
@@ -41,6 +41,11 @@ export interface Artifacts {
|
|
|
41
41
|
*/
|
|
42
42
|
getBuildInfo(fullyQualifiedName: string): Promise<BuildInfo | undefined>;
|
|
43
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Synchronous version of getBuildInfo.
|
|
46
|
+
*/
|
|
47
|
+
getBuildInfoSync(fullyQualifiedName: string): BuildInfo | undefined;
|
|
48
|
+
|
|
44
49
|
/**
|
|
45
50
|
* Returns an array with the absolute paths of all the existing artifacts.
|
|
46
51
|
*
|
|
@@ -3,6 +3,7 @@ import path from "path";
|
|
|
3
3
|
import { HardhatError } from "../internal/core/errors";
|
|
4
4
|
import { ERRORS } from "../internal/core/errors-list";
|
|
5
5
|
import { FileNotFoundError, getFileTrueCase } from "../internal/util/fs-utils";
|
|
6
|
+
import { getPackageName } from "../internal/util/packageInfo";
|
|
6
7
|
|
|
7
8
|
const NODE_MODULES = "node_modules";
|
|
8
9
|
|
|
@@ -228,3 +229,17 @@ async function getSourceNameTrueCase(
|
|
|
228
229
|
throw error;
|
|
229
230
|
}
|
|
230
231
|
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* This function returns true if the sourceName contains the current package's name
|
|
235
|
+
* as a substring
|
|
236
|
+
*/
|
|
237
|
+
export async function includesOwnPackageName(
|
|
238
|
+
sourceName: string
|
|
239
|
+
): Promise<boolean> {
|
|
240
|
+
const packageName = await getPackageName(sourceName);
|
|
241
|
+
if (packageName !== "") {
|
|
242
|
+
return sourceName.startsWith(`${packageName}/`);
|
|
243
|
+
}
|
|
244
|
+
return false;
|
|
245
|
+
}
|
package/types/artifacts.d.ts
CHANGED
|
@@ -36,6 +36,10 @@ export interface Artifacts {
|
|
|
36
36
|
* can return undefined.
|
|
37
37
|
*/
|
|
38
38
|
getBuildInfo(fullyQualifiedName: string): Promise<BuildInfo | undefined>;
|
|
39
|
+
/**
|
|
40
|
+
* Synchronous version of getBuildInfo.
|
|
41
|
+
*/
|
|
42
|
+
getBuildInfoSync(fullyQualifiedName: string): BuildInfo | undefined;
|
|
39
43
|
/**
|
|
40
44
|
* Returns an array with the absolute paths of all the existing artifacts.
|
|
41
45
|
*
|
package/types/artifacts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/types/artifacts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/types/artifacts.ts"],"names":[],"mappings":"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"}
|
package/utils/source-names.d.ts
CHANGED
|
@@ -52,4 +52,9 @@ export declare function isAbsolutePathSourceName(sourceName: string): boolean;
|
|
|
52
52
|
* Note that a source name must not contain backslashes.
|
|
53
53
|
*/
|
|
54
54
|
export declare function replaceBackslashes(str: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* This function returns true if the sourceName contains the current package's name
|
|
57
|
+
* as a substring
|
|
58
|
+
*/
|
|
59
|
+
export declare function includesOwnPackageName(sourceName: string): Promise<boolean>;
|
|
55
60
|
//# sourceMappingURL=source-names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-names.d.ts","sourceRoot":"","sources":["../src/utils/source-names.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-names.d.ts","sourceRoot":"","sources":["../src/utils/source-names.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,QAmC1D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CA4BlB;AAED;;;;;GAKG;AACH,wBAAsB,oCAAoC,CACxD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,iBAUnB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEpE;AAWD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUtD;AAqCD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAMlB"}
|
package/utils/source-names.js
CHANGED
|
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.replaceBackslashes = exports.isAbsolutePathSourceName = exports.normalizeSourceName = exports.localSourceNameToPath = exports.localPathToSourceName = exports.validateSourceNameExistenceAndCasing = exports.isLocalSourceName = exports.validateSourceNameFormat = void 0;
|
|
6
|
+
exports.includesOwnPackageName = exports.replaceBackslashes = exports.isAbsolutePathSourceName = exports.normalizeSourceName = exports.localSourceNameToPath = exports.localPathToSourceName = exports.validateSourceNameExistenceAndCasing = exports.isLocalSourceName = exports.validateSourceNameFormat = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const errors_1 = require("../internal/core/errors");
|
|
9
9
|
const errors_list_1 = require("../internal/core/errors-list");
|
|
10
10
|
const fs_utils_1 = require("../internal/util/fs-utils");
|
|
11
|
+
const packageInfo_1 = require("../internal/util/packageInfo");
|
|
11
12
|
const NODE_MODULES = "node_modules";
|
|
12
13
|
/**
|
|
13
14
|
* This function validates the source name's format.
|
|
@@ -185,4 +186,16 @@ async function getSourceNameTrueCase(fromDir, p) {
|
|
|
185
186
|
throw error;
|
|
186
187
|
}
|
|
187
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* This function returns true if the sourceName contains the current package's name
|
|
191
|
+
* as a substring
|
|
192
|
+
*/
|
|
193
|
+
async function includesOwnPackageName(sourceName) {
|
|
194
|
+
const packageName = await (0, packageInfo_1.getPackageName)(sourceName);
|
|
195
|
+
if (packageName !== "") {
|
|
196
|
+
return sourceName.startsWith(`${packageName}/`);
|
|
197
|
+
}
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
exports.includesOwnPackageName = includesOwnPackageName;
|
|
188
201
|
//# sourceMappingURL=source-names.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-names.js","sourceRoot":"","sources":["../src/utils/source-names.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,oDAAuD;AACvD,8DAAsD;AACtD,wDAA+E;
|
|
1
|
+
{"version":3,"file":"source-names.js","sourceRoot":"","sources":["../src/utils/source-names.ts"],"names":[],"mappings":"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"}
|