hardhat 2.6.6 → 2.8.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/CHANGELOG.md +39 -0
- package/builtin-tasks/compile.js +9 -0
- package/builtin-tasks/compile.js.map +1 -1
- package/builtin-tasks/node.js +26 -9
- package/builtin-tasks/node.js.map +1 -1
- package/internal/artifacts.d.ts +49 -0
- package/internal/artifacts.d.ts.map +1 -1
- package/internal/artifacts.js +191 -55
- package/internal/artifacts.js.map +1 -1
- package/internal/cli/analytics.js +2 -2
- package/internal/cli/analytics.js.map +1 -1
- package/internal/cli/cli.js +1 -1
- package/internal/cli/cli.js.map +1 -1
- package/internal/constants.d.ts +2 -0
- package/internal/constants.d.ts.map +1 -1
- package/internal/constants.js +3 -1
- package/internal/constants.js.map +1 -1
- package/internal/core/config/config-loading.d.ts.map +1 -1
- package/internal/core/config/config-loading.js +16 -2
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/core/config/config-resolution.d.ts.map +1 -1
- package/internal/core/config/config-resolution.js +42 -4
- package/internal/core/config/config-resolution.js.map +1 -1
- package/internal/core/config/config-validation.d.ts +1 -0
- package/internal/core/config/config-validation.d.ts.map +1 -1
- package/internal/core/config/config-validation.js +126 -13
- package/internal/core/config/config-validation.js.map +1 -1
- package/internal/core/config/default-config.d.ts +1 -0
- package/internal/core/config/default-config.d.ts.map +1 -1
- package/internal/core/config/default-config.js +69 -4
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/errors-list.d.ts +14 -0
- package/internal/core/errors-list.d.ts.map +1 -1
- package/internal/core/errors-list.js +21 -2
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/jsonrpc/types/output/log.d.ts +1 -0
- package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/log.js +1 -0
- package/internal/core/jsonrpc/types/output/log.js.map +1 -1
- package/internal/core/jsonrpc/types/output/receipt.d.ts +1 -0
- package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
- package/internal/core/params/hardhat-params.js +2 -2
- package/internal/core/params/hardhat-params.js.map +1 -1
- package/internal/core/providers/accounts.d.ts.map +1 -1
- package/internal/core/providers/accounts.js +14 -0
- package/internal/core/providers/accounts.js.map +1 -1
- package/internal/core/providers/construction.d.ts.map +1 -1
- package/internal/core/providers/construction.js +4 -2
- package/internal/core/providers/construction.js.map +1 -1
- package/internal/core/providers/gas-providers.d.ts.map +1 -1
- package/internal/core/providers/gas-providers.js +1 -1
- package/internal/core/providers/gas-providers.js.map +1 -1
- package/internal/core/typescript-support.d.ts +1 -1
- package/internal/core/typescript-support.d.ts.map +1 -1
- package/internal/core/typescript-support.js +4 -1
- package/internal/core/typescript-support.js.map +1 -1
- package/internal/hardhat-network/jsonrpc/client.d.ts +2 -0
- package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainData.d.ts +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -1
- package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TransactionQueue.js +16 -2
- package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +1 -3
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +3 -0
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/hardhat.js +16 -0
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
- package/internal/hardhat-network/provider/modules/personal.d.ts +9 -0
- package/internal/hardhat-network/provider/modules/personal.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/personal.js +31 -0
- package/internal/hardhat-network/provider/modules/personal.js.map +1 -0
- package/internal/hardhat-network/provider/node-types.d.ts +7 -1
- package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node-types.js.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +11 -2
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +108 -31
- 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 +9 -6
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +8 -3
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +14 -2
- package/internal/hardhat-network/provider/provider.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 +14 -0
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +1 -1
- package/package.json +5 -5
- package/register.js +1 -1
- package/register.js.map +1 -1
- package/src/builtin-tasks/compile.ts +14 -0
- package/src/builtin-tasks/node.ts +41 -9
- package/src/internal/artifacts.ts +268 -71
- package/src/internal/cli/analytics.ts +1 -1
- package/src/internal/cli/cli.ts +1 -1
- package/src/internal/constants.ts +3 -0
- package/src/internal/core/config/config-loading.ts +24 -2
- package/src/internal/core/config/config-resolution.ts +61 -3
- package/src/internal/core/config/config-validation.ts +217 -15
- package/src/internal/core/config/default-config.ts +67 -2
- package/src/internal/core/errors-list.ts +21 -2
- package/src/internal/core/jsonrpc/types/output/log.ts +1 -0
- package/src/internal/core/params/hardhat-params.ts +2 -2
- package/src/internal/core/providers/accounts.ts +19 -0
- package/src/internal/core/providers/construction.ts +9 -2
- package/src/internal/core/providers/gas-providers.ts +1 -1
- package/src/internal/core/typescript-support.ts +5 -1
- package/src/internal/hardhat-network/provider/TransactionQueue.ts +31 -4
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +1 -3
- package/src/internal/hardhat-network/provider/modules/hardhat.ts +23 -0
- package/src/internal/hardhat-network/provider/modules/personal.ts +39 -0
- package/src/internal/hardhat-network/provider/node-types.ts +8 -1
- package/src/internal/hardhat-network/provider/node.ts +164 -29
- package/src/internal/hardhat-network/provider/output.ts +9 -9
- package/src/internal/hardhat-network/provider/provider.ts +18 -1
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +19 -0
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +1 -1
- package/src/register.ts +1 -1
- package/src/types/config.ts +42 -0
- package/src/utils/contract-names.ts +112 -0
- package/src/utils/source-names.ts +1 -1
- package/types/config.d.ts +26 -0
- package/types/config.d.ts.map +1 -1
- package/utils/contract-names.d.ts +10 -0
- package/utils/contract-names.d.ts.map +1 -1
- package/utils/contract-names.js +92 -1
- package/utils/contract-names.js.map +1 -1
- package/utils/source-names.d.ts +1 -1
- package/utils/source-names.js +1 -1
|
@@ -11,6 +11,7 @@ import type {
|
|
|
11
11
|
BoundExperimentalHardhatNetworkMessageTraceHook,
|
|
12
12
|
EIP1193Provider,
|
|
13
13
|
EthSubscription,
|
|
14
|
+
HardhatNetworkChainsConfig,
|
|
14
15
|
RequestArguments,
|
|
15
16
|
} from "../../../types";
|
|
16
17
|
import {
|
|
@@ -32,6 +33,7 @@ import { EthModule } from "./modules/eth";
|
|
|
32
33
|
import { EvmModule } from "./modules/evm";
|
|
33
34
|
import { HardhatModule } from "./modules/hardhat";
|
|
34
35
|
import { ModulesLogger } from "./modules/logger";
|
|
36
|
+
import { PersonalModule } from "./modules/personal";
|
|
35
37
|
import { NetModule } from "./modules/net";
|
|
36
38
|
import { Web3Module } from "./modules/web3";
|
|
37
39
|
import { HardhatNode } from "./node";
|
|
@@ -39,6 +41,7 @@ import {
|
|
|
39
41
|
ForkConfig,
|
|
40
42
|
GenesisAccount,
|
|
41
43
|
IntervalMiningConfig,
|
|
44
|
+
MempoolOrder,
|
|
42
45
|
NodeConfig,
|
|
43
46
|
TracingConfig,
|
|
44
47
|
} from "./node-types";
|
|
@@ -53,6 +56,8 @@ const PRIVATE_RPC_METHODS = new Set([
|
|
|
53
56
|
|
|
54
57
|
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
55
58
|
|
|
59
|
+
export const DEFAULT_COINBASE = "0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e";
|
|
60
|
+
|
|
56
61
|
export class HardhatNetworkProvider
|
|
57
62
|
extends EventEmitter
|
|
58
63
|
implements EIP1193Provider
|
|
@@ -65,6 +70,7 @@ export class HardhatNetworkProvider
|
|
|
65
70
|
private _evmModule?: EvmModule;
|
|
66
71
|
private _hardhatModule?: HardhatModule;
|
|
67
72
|
private _debugModule?: DebugModule;
|
|
73
|
+
private _personalModule?: PersonalModule;
|
|
68
74
|
private readonly _mutex = new Mutex();
|
|
69
75
|
|
|
70
76
|
constructor(
|
|
@@ -79,6 +85,8 @@ export class HardhatNetworkProvider
|
|
|
79
85
|
private readonly _throwOnCallFailures: boolean,
|
|
80
86
|
private readonly _automine: boolean,
|
|
81
87
|
private readonly _intervalMining: IntervalMiningConfig,
|
|
88
|
+
private readonly _mempoolOrder: MempoolOrder,
|
|
89
|
+
private readonly _chains: HardhatNetworkChainsConfig,
|
|
82
90
|
private readonly _logger: ModulesLogger,
|
|
83
91
|
private readonly _genesisAccounts: GenesisAccount[] = [],
|
|
84
92
|
private readonly _artifacts?: Artifacts,
|
|
@@ -86,7 +94,8 @@ export class HardhatNetworkProvider
|
|
|
86
94
|
private readonly _initialDate?: Date,
|
|
87
95
|
private readonly _experimentalHardhatNetworkMessageTraceHooks: BoundExperimentalHardhatNetworkMessageTraceHook[] = [],
|
|
88
96
|
private _forkConfig?: ForkConfig,
|
|
89
|
-
private readonly _forkCachePath?: string
|
|
97
|
+
private readonly _forkCachePath?: string,
|
|
98
|
+
private readonly _coinbase = DEFAULT_COINBASE
|
|
90
99
|
) {
|
|
91
100
|
super();
|
|
92
101
|
}
|
|
@@ -205,6 +214,10 @@ export class HardhatNetworkProvider
|
|
|
205
214
|
return this._debugModule!.processRequest(method, params);
|
|
206
215
|
}
|
|
207
216
|
|
|
217
|
+
if (method.startsWith("personal_")) {
|
|
218
|
+
return this._personalModule!.processRequest(method, params);
|
|
219
|
+
}
|
|
220
|
+
|
|
208
221
|
throw new MethodNotFoundError(`Method ${method} not found`);
|
|
209
222
|
}
|
|
210
223
|
|
|
@@ -221,6 +234,7 @@ export class HardhatNetworkProvider
|
|
|
221
234
|
allowUnlimitedContractSize: this._allowUnlimitedContractSize,
|
|
222
235
|
tracingConfig: await this._makeTracingConfig(),
|
|
223
236
|
initialBaseFeePerGas: this._initialBaseFeePerGas,
|
|
237
|
+
mempoolOrder: this._mempoolOrder,
|
|
224
238
|
hardfork: this._hardfork,
|
|
225
239
|
networkName: this._networkName,
|
|
226
240
|
chainId: this._chainId,
|
|
@@ -229,6 +243,8 @@ export class HardhatNetworkProvider
|
|
|
229
243
|
forkConfig: this._forkConfig,
|
|
230
244
|
forkCachePath:
|
|
231
245
|
this._forkConfig !== undefined ? this._forkCachePath : undefined,
|
|
246
|
+
coinbase: this._coinbase,
|
|
247
|
+
chains: this._chains,
|
|
232
248
|
};
|
|
233
249
|
|
|
234
250
|
const [common, node] = await HardhatNode.create(config);
|
|
@@ -265,6 +281,7 @@ export class HardhatNetworkProvider
|
|
|
265
281
|
this._experimentalHardhatNetworkMessageTraceHooks
|
|
266
282
|
);
|
|
267
283
|
this._debugModule = new DebugModule(node);
|
|
284
|
+
this._personalModule = new PersonalModule(node);
|
|
268
285
|
|
|
269
286
|
this._forwardNodeEvents(node);
|
|
270
287
|
}
|
|
@@ -191,6 +191,25 @@ export class ErrorInferrer {
|
|
|
191
191
|
return true;
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
+
// look TWO frames ahead to determine if this is a specific occurrence of
|
|
195
|
+
// a redundant CALLSTACK_ENTRY frame observed when using Solidity 0.8.5:
|
|
196
|
+
if (
|
|
197
|
+
frame.type === StackTraceEntryType.CALLSTACK_ENTRY &&
|
|
198
|
+
i + 2 < stacktrace.length &&
|
|
199
|
+
stacktrace[i + 2].sourceReference !== undefined &&
|
|
200
|
+
stacktrace[i + 2].type === StackTraceEntryType.RETURNDATA_SIZE_ERROR
|
|
201
|
+
) {
|
|
202
|
+
// ! below for tsc. we confirmed existence in the enclosing conditional.
|
|
203
|
+
const thatSrcRef = stacktrace[i + 2].sourceReference!;
|
|
204
|
+
if (
|
|
205
|
+
frame.sourceReference.range[0] === thatSrcRef.range[0] &&
|
|
206
|
+
frame.sourceReference.range[1] === thatSrcRef.range[1] &&
|
|
207
|
+
frame.sourceReference.line === thatSrcRef.line
|
|
208
|
+
) {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
194
213
|
// constructors contain the whole contract, so we ignore them
|
|
195
214
|
if (
|
|
196
215
|
frame.sourceReference.function === "constructor" &&
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
StackTraceEntryType,
|
|
32
32
|
} from "./solidity-stack-trace";
|
|
33
33
|
|
|
34
|
-
export const SUPPORTED_SOLIDITY_VERSION_RANGE = "<=0.8.
|
|
34
|
+
export const SUPPORTED_SOLIDITY_VERSION_RANGE = "<=0.8.9";
|
|
35
35
|
export const FIRST_SOLC_VERSION_SUPPORTED = "0.5.1";
|
|
36
36
|
|
|
37
37
|
export class SolidityTracer {
|
package/src/register.ts
CHANGED
package/src/types/config.ts
CHANGED
|
@@ -18,6 +18,7 @@ import type { BN } from "ethereumjs-util";
|
|
|
18
18
|
|
|
19
19
|
export interface NetworksUserConfig {
|
|
20
20
|
hardhat?: HardhatNetworkUserConfig;
|
|
21
|
+
|
|
21
22
|
[networkName: string]: NetworkUserConfig | undefined;
|
|
22
23
|
}
|
|
23
24
|
|
|
@@ -25,6 +26,18 @@ export type NetworkUserConfig =
|
|
|
25
26
|
| HardhatNetworkUserConfig
|
|
26
27
|
| HttpNetworkUserConfig;
|
|
27
28
|
|
|
29
|
+
export interface HardforkHistoryUserConfig {
|
|
30
|
+
[hardforkName: string]: number /* block number */;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface HardhatNetworkChainUserConfig {
|
|
34
|
+
hardforkHistory?: HardforkHistoryUserConfig;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface HardhatNetworkChainsUserConfig {
|
|
38
|
+
[chainId: number]: HardhatNetworkChainUserConfig;
|
|
39
|
+
}
|
|
40
|
+
|
|
28
41
|
export interface HardhatNetworkUserConfig {
|
|
29
42
|
chainId?: number;
|
|
30
43
|
from?: string;
|
|
@@ -43,6 +56,8 @@ export interface HardhatNetworkUserConfig {
|
|
|
43
56
|
initialDate?: string;
|
|
44
57
|
loggingEnabled?: boolean;
|
|
45
58
|
forking?: HardhatNetworkForkingUserConfig;
|
|
59
|
+
coinbase?: string;
|
|
60
|
+
chains?: HardhatNetworkChainsUserConfig;
|
|
46
61
|
}
|
|
47
62
|
|
|
48
63
|
export type HardhatNetworkAccountsUserConfig =
|
|
@@ -95,11 +110,26 @@ export interface HttpNetworkUserConfig {
|
|
|
95
110
|
export interface NetworksConfig {
|
|
96
111
|
hardhat: HardhatNetworkConfig;
|
|
97
112
|
localhost: HttpNetworkConfig;
|
|
113
|
+
|
|
98
114
|
[networkName: string]: NetworkConfig;
|
|
99
115
|
}
|
|
100
116
|
|
|
101
117
|
export type NetworkConfig = HardhatNetworkConfig | HttpNetworkConfig;
|
|
102
118
|
|
|
119
|
+
export type HardforkHistoryConfig = Map<
|
|
120
|
+
/* hardforkName */ string,
|
|
121
|
+
/* blockNumber */ number
|
|
122
|
+
>;
|
|
123
|
+
|
|
124
|
+
export interface HardhatNetworkChainConfig {
|
|
125
|
+
hardforkHistory: HardforkHistoryConfig;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export type HardhatNetworkChainsConfig = Map<
|
|
129
|
+
/* chainId */ number,
|
|
130
|
+
HardhatNetworkChainConfig
|
|
131
|
+
>;
|
|
132
|
+
|
|
103
133
|
export interface HardhatNetworkConfig {
|
|
104
134
|
chainId: number;
|
|
105
135
|
from?: string;
|
|
@@ -118,6 +148,8 @@ export interface HardhatNetworkConfig {
|
|
|
118
148
|
initialDate: string;
|
|
119
149
|
loggingEnabled: boolean;
|
|
120
150
|
forking?: HardhatNetworkForkingConfig;
|
|
151
|
+
coinbase?: string;
|
|
152
|
+
chains: HardhatNetworkChainsConfig;
|
|
121
153
|
}
|
|
122
154
|
|
|
123
155
|
export type HardhatNetworkAccountsConfig =
|
|
@@ -170,11 +202,21 @@ export interface HttpNetworkHDAccountsConfig {
|
|
|
170
202
|
export interface HardhatNetworkMiningConfig {
|
|
171
203
|
auto: boolean;
|
|
172
204
|
interval: number | [number, number];
|
|
205
|
+
mempool: HardhatNetworkMempoolConfig;
|
|
173
206
|
}
|
|
174
207
|
|
|
175
208
|
export interface HardhatNetworkMiningUserConfig {
|
|
176
209
|
auto?: boolean;
|
|
177
210
|
interval?: number | [number, number];
|
|
211
|
+
mempool?: HardhatNetworkMempoolUserConfig;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export interface HardhatNetworkMempoolConfig {
|
|
215
|
+
order: string; // Guaranteed at runtime to be have a valid value
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export interface HardhatNetworkMempoolUserConfig {
|
|
219
|
+
order?: string;
|
|
178
220
|
}
|
|
179
221
|
|
|
180
222
|
// Project paths config
|
|
@@ -56,3 +56,115 @@ export function parseName(name: string): {
|
|
|
56
56
|
|
|
57
57
|
return { sourceName, contractName };
|
|
58
58
|
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Returns the edit-distance between two given strings using Levenshtein distance.
|
|
62
|
+
*
|
|
63
|
+
* @param a First string being compared
|
|
64
|
+
* @param b Second string being compared
|
|
65
|
+
* @returns distance between the two strings (lower number == more similar)
|
|
66
|
+
* @see https://github.com/gustf/js-levenshtein
|
|
67
|
+
* @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE
|
|
68
|
+
*/
|
|
69
|
+
export function findDistance(a: string, b: string): number {
|
|
70
|
+
function _min(
|
|
71
|
+
_d0: number,
|
|
72
|
+
_d1: number,
|
|
73
|
+
_d2: number,
|
|
74
|
+
_bx: number,
|
|
75
|
+
_ay: number
|
|
76
|
+
): number {
|
|
77
|
+
return _d0 < _d1 || _d2 < _d1
|
|
78
|
+
? _d0 > _d2
|
|
79
|
+
? _d2 + 1
|
|
80
|
+
: _d0 + 1
|
|
81
|
+
: _bx === _ay
|
|
82
|
+
? _d1
|
|
83
|
+
: _d1 + 1;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (a === b) {
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (a.length > b.length) {
|
|
91
|
+
[a, b] = [b, a];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
let la = a.length;
|
|
95
|
+
let lb = b.length;
|
|
96
|
+
|
|
97
|
+
while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {
|
|
98
|
+
la--;
|
|
99
|
+
lb--;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
let offset = 0;
|
|
103
|
+
|
|
104
|
+
while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {
|
|
105
|
+
offset++;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
la -= offset;
|
|
109
|
+
lb -= offset;
|
|
110
|
+
|
|
111
|
+
if (la === 0 || lb < 3) {
|
|
112
|
+
return lb;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
let x = 0;
|
|
116
|
+
let y: number;
|
|
117
|
+
let d0: number;
|
|
118
|
+
let d1: number;
|
|
119
|
+
let d2: number;
|
|
120
|
+
let d3: number;
|
|
121
|
+
let dd: number = 0; // typescript gets angry if we don't assign here
|
|
122
|
+
let dy: number;
|
|
123
|
+
let ay: number;
|
|
124
|
+
let bx0: number;
|
|
125
|
+
let bx1: number;
|
|
126
|
+
let bx2: number;
|
|
127
|
+
let bx3: number;
|
|
128
|
+
|
|
129
|
+
const vector = [];
|
|
130
|
+
|
|
131
|
+
for (y = 0; y < la; y++) {
|
|
132
|
+
vector.push(y + 1);
|
|
133
|
+
vector.push(a.charCodeAt(offset + y));
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const len = vector.length - 1;
|
|
137
|
+
|
|
138
|
+
for (; x < lb - 3; ) {
|
|
139
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
140
|
+
bx1 = b.charCodeAt(offset + (d1 = x + 1));
|
|
141
|
+
bx2 = b.charCodeAt(offset + (d2 = x + 2));
|
|
142
|
+
bx3 = b.charCodeAt(offset + (d3 = x + 3));
|
|
143
|
+
dd = x += 4;
|
|
144
|
+
for (y = 0; y < len; y += 2) {
|
|
145
|
+
dy = vector[y];
|
|
146
|
+
ay = vector[y + 1];
|
|
147
|
+
d0 = _min(dy, d0, d1, bx0, ay);
|
|
148
|
+
d1 = _min(d0, d1, d2, bx1, ay);
|
|
149
|
+
d2 = _min(d1, d2, d3, bx2, ay);
|
|
150
|
+
dd = _min(d2, d3, dd, bx3, ay);
|
|
151
|
+
vector[y] = dd;
|
|
152
|
+
d3 = d2;
|
|
153
|
+
d2 = d1;
|
|
154
|
+
d1 = d0;
|
|
155
|
+
d0 = dy;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
for (; x < lb; ) {
|
|
160
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
161
|
+
dd = ++x;
|
|
162
|
+
for (y = 0; y < len; y += 2) {
|
|
163
|
+
dy = vector[y];
|
|
164
|
+
vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]);
|
|
165
|
+
d0 = dy;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return dd;
|
|
170
|
+
}
|
|
@@ -179,7 +179,7 @@ function isExplicitRelativePath(sourceName: string): boolean {
|
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
/**
|
|
182
|
-
* This function replaces backslashes (
|
|
182
|
+
* This function replaces backslashes (\\) with slashes (/).
|
|
183
183
|
*
|
|
184
184
|
* Note that a source name must not contain backslashes.
|
|
185
185
|
*/
|
package/types/config.d.ts
CHANGED
|
@@ -5,6 +5,15 @@ export interface NetworksUserConfig {
|
|
|
5
5
|
[networkName: string]: NetworkUserConfig | undefined;
|
|
6
6
|
}
|
|
7
7
|
export declare type NetworkUserConfig = HardhatNetworkUserConfig | HttpNetworkUserConfig;
|
|
8
|
+
export interface HardforkHistoryUserConfig {
|
|
9
|
+
[hardforkName: string]: number;
|
|
10
|
+
}
|
|
11
|
+
export interface HardhatNetworkChainUserConfig {
|
|
12
|
+
hardforkHistory?: HardforkHistoryUserConfig;
|
|
13
|
+
}
|
|
14
|
+
export interface HardhatNetworkChainsUserConfig {
|
|
15
|
+
[chainId: number]: HardhatNetworkChainUserConfig;
|
|
16
|
+
}
|
|
8
17
|
export interface HardhatNetworkUserConfig {
|
|
9
18
|
chainId?: number;
|
|
10
19
|
from?: string;
|
|
@@ -23,6 +32,8 @@ export interface HardhatNetworkUserConfig {
|
|
|
23
32
|
initialDate?: string;
|
|
24
33
|
loggingEnabled?: boolean;
|
|
25
34
|
forking?: HardhatNetworkForkingUserConfig;
|
|
35
|
+
coinbase?: string;
|
|
36
|
+
chains?: HardhatNetworkChainsUserConfig;
|
|
26
37
|
}
|
|
27
38
|
export declare type HardhatNetworkAccountsUserConfig = HardhatNetworkAccountUserConfig[] | HardhatNetworkHDAccountsUserConfig;
|
|
28
39
|
export interface HardhatNetworkAccountUserConfig {
|
|
@@ -67,6 +78,11 @@ export interface NetworksConfig {
|
|
|
67
78
|
[networkName: string]: NetworkConfig;
|
|
68
79
|
}
|
|
69
80
|
export declare type NetworkConfig = HardhatNetworkConfig | HttpNetworkConfig;
|
|
81
|
+
export declare type HardforkHistoryConfig = Map<string, number>;
|
|
82
|
+
export interface HardhatNetworkChainConfig {
|
|
83
|
+
hardforkHistory: HardforkHistoryConfig;
|
|
84
|
+
}
|
|
85
|
+
export declare type HardhatNetworkChainsConfig = Map<number, HardhatNetworkChainConfig>;
|
|
70
86
|
export interface HardhatNetworkConfig {
|
|
71
87
|
chainId: number;
|
|
72
88
|
from?: string;
|
|
@@ -85,6 +101,8 @@ export interface HardhatNetworkConfig {
|
|
|
85
101
|
initialDate: string;
|
|
86
102
|
loggingEnabled: boolean;
|
|
87
103
|
forking?: HardhatNetworkForkingConfig;
|
|
104
|
+
coinbase?: string;
|
|
105
|
+
chains: HardhatNetworkChainsConfig;
|
|
88
106
|
}
|
|
89
107
|
export declare type HardhatNetworkAccountsConfig = HardhatNetworkHDAccountsConfig | HardhatNetworkAccountConfig[];
|
|
90
108
|
export interface HardhatNetworkAccountConfig {
|
|
@@ -126,10 +144,18 @@ export interface HttpNetworkHDAccountsConfig {
|
|
|
126
144
|
export interface HardhatNetworkMiningConfig {
|
|
127
145
|
auto: boolean;
|
|
128
146
|
interval: number | [number, number];
|
|
147
|
+
mempool: HardhatNetworkMempoolConfig;
|
|
129
148
|
}
|
|
130
149
|
export interface HardhatNetworkMiningUserConfig {
|
|
131
150
|
auto?: boolean;
|
|
132
151
|
interval?: number | [number, number];
|
|
152
|
+
mempool?: HardhatNetworkMempoolUserConfig;
|
|
153
|
+
}
|
|
154
|
+
export interface HardhatNetworkMempoolConfig {
|
|
155
|
+
order: string;
|
|
156
|
+
}
|
|
157
|
+
export interface HardhatNetworkMempoolUserConfig {
|
|
158
|
+
order?: string;
|
|
133
159
|
}
|
|
134
160
|
export interface ProjectPathsUserConfig {
|
|
135
161
|
root?: string;
|
package/types/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":";AAcA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAI1C,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,4 +22,14 @@ export declare function parseName(name: string): {
|
|
|
22
22
|
sourceName?: string;
|
|
23
23
|
contractName: string;
|
|
24
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Returns the edit-distance between two given strings using Levenshtein distance.
|
|
27
|
+
*
|
|
28
|
+
* @param a First string being compared
|
|
29
|
+
* @param b Second string being compared
|
|
30
|
+
* @returns distance between the two strings (lower number == more similar)
|
|
31
|
+
* @see https://github.com/gustf/js-levenshtein
|
|
32
|
+
* @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE
|
|
33
|
+
*/
|
|
34
|
+
export declare function findDistance(a: string, b: string): number;
|
|
25
35
|
//# sourceMappingURL=contract-names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-names.d.ts","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,GAAG;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAUA;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAWA"}
|
|
1
|
+
{"version":3,"file":"contract-names.d.ts","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,GAAG;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAUA;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAWA;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAqGzD"}
|
package/utils/contract-names.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseName = exports.parseFullyQualifiedName = exports.isFullyQualifiedName = exports.getFullyQualifiedName = void 0;
|
|
3
|
+
exports.findDistance = exports.parseName = exports.parseFullyQualifiedName = exports.isFullyQualifiedName = exports.getFullyQualifiedName = void 0;
|
|
4
4
|
const errors_1 = require("../internal/core/errors");
|
|
5
5
|
const errors_list_1 = require("../internal/core/errors-list");
|
|
6
6
|
/**
|
|
@@ -45,4 +45,95 @@ function parseName(name) {
|
|
|
45
45
|
return { sourceName, contractName };
|
|
46
46
|
}
|
|
47
47
|
exports.parseName = parseName;
|
|
48
|
+
/**
|
|
49
|
+
* Returns the edit-distance between two given strings using Levenshtein distance.
|
|
50
|
+
*
|
|
51
|
+
* @param a First string being compared
|
|
52
|
+
* @param b Second string being compared
|
|
53
|
+
* @returns distance between the two strings (lower number == more similar)
|
|
54
|
+
* @see https://github.com/gustf/js-levenshtein
|
|
55
|
+
* @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE
|
|
56
|
+
*/
|
|
57
|
+
function findDistance(a, b) {
|
|
58
|
+
function _min(_d0, _d1, _d2, _bx, _ay) {
|
|
59
|
+
return _d0 < _d1 || _d2 < _d1
|
|
60
|
+
? _d0 > _d2
|
|
61
|
+
? _d2 + 1
|
|
62
|
+
: _d0 + 1
|
|
63
|
+
: _bx === _ay
|
|
64
|
+
? _d1
|
|
65
|
+
: _d1 + 1;
|
|
66
|
+
}
|
|
67
|
+
if (a === b) {
|
|
68
|
+
return 0;
|
|
69
|
+
}
|
|
70
|
+
if (a.length > b.length) {
|
|
71
|
+
[a, b] = [b, a];
|
|
72
|
+
}
|
|
73
|
+
let la = a.length;
|
|
74
|
+
let lb = b.length;
|
|
75
|
+
while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {
|
|
76
|
+
la--;
|
|
77
|
+
lb--;
|
|
78
|
+
}
|
|
79
|
+
let offset = 0;
|
|
80
|
+
while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {
|
|
81
|
+
offset++;
|
|
82
|
+
}
|
|
83
|
+
la -= offset;
|
|
84
|
+
lb -= offset;
|
|
85
|
+
if (la === 0 || lb < 3) {
|
|
86
|
+
return lb;
|
|
87
|
+
}
|
|
88
|
+
let x = 0;
|
|
89
|
+
let y;
|
|
90
|
+
let d0;
|
|
91
|
+
let d1;
|
|
92
|
+
let d2;
|
|
93
|
+
let d3;
|
|
94
|
+
let dd = 0; // typescript gets angry if we don't assign here
|
|
95
|
+
let dy;
|
|
96
|
+
let ay;
|
|
97
|
+
let bx0;
|
|
98
|
+
let bx1;
|
|
99
|
+
let bx2;
|
|
100
|
+
let bx3;
|
|
101
|
+
const vector = [];
|
|
102
|
+
for (y = 0; y < la; y++) {
|
|
103
|
+
vector.push(y + 1);
|
|
104
|
+
vector.push(a.charCodeAt(offset + y));
|
|
105
|
+
}
|
|
106
|
+
const len = vector.length - 1;
|
|
107
|
+
for (; x < lb - 3;) {
|
|
108
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
109
|
+
bx1 = b.charCodeAt(offset + (d1 = x + 1));
|
|
110
|
+
bx2 = b.charCodeAt(offset + (d2 = x + 2));
|
|
111
|
+
bx3 = b.charCodeAt(offset + (d3 = x + 3));
|
|
112
|
+
dd = x += 4;
|
|
113
|
+
for (y = 0; y < len; y += 2) {
|
|
114
|
+
dy = vector[y];
|
|
115
|
+
ay = vector[y + 1];
|
|
116
|
+
d0 = _min(dy, d0, d1, bx0, ay);
|
|
117
|
+
d1 = _min(d0, d1, d2, bx1, ay);
|
|
118
|
+
d2 = _min(d1, d2, d3, bx2, ay);
|
|
119
|
+
dd = _min(d2, d3, dd, bx3, ay);
|
|
120
|
+
vector[y] = dd;
|
|
121
|
+
d3 = d2;
|
|
122
|
+
d2 = d1;
|
|
123
|
+
d1 = d0;
|
|
124
|
+
d0 = dy;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
for (; x < lb;) {
|
|
128
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
129
|
+
dd = ++x;
|
|
130
|
+
for (y = 0; y < len; y += 2) {
|
|
131
|
+
dy = vector[y];
|
|
132
|
+
vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]);
|
|
133
|
+
d0 = dy;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return dd;
|
|
137
|
+
}
|
|
138
|
+
exports.findDistance = findDistance;
|
|
48
139
|
//# sourceMappingURL=contract-names.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-names.js","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AACvD,8DAAsD;AAEtD;;GAEG;AACH,SAAgB,qBAAqB,CACnC,UAAkB,EAClB,YAAoB;IAEpB,OAAO,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC;AACzC,CAAC;AALD,sDAKC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,oDAEC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,kBAA0B;IAIhE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAEnE,IAAI,UAAU,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,cAAc,CAAC,4BAA4B,EAAE;YACzE,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;KACJ;IAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC;AAbD,0DAaC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAY;IAIpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KACnC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC;AAdD,8BAcC"}
|
|
1
|
+
{"version":3,"file":"contract-names.js","sourceRoot":"","sources":["../src/utils/contract-names.ts"],"names":[],"mappings":"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"}
|
package/utils/source-names.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ export declare function normalizeSourceName(sourceName: string): string;
|
|
|
47
47
|
*/
|
|
48
48
|
export declare function isAbsolutePathSourceName(sourceName: string): boolean;
|
|
49
49
|
/**
|
|
50
|
-
* This function replaces backslashes (
|
|
50
|
+
* This function replaces backslashes (\\) with slashes (/).
|
|
51
51
|
*
|
|
52
52
|
* Note that a source name must not contain backslashes.
|
|
53
53
|
*/
|
package/utils/source-names.js
CHANGED
|
@@ -164,7 +164,7 @@ function isExplicitRelativePath(sourceName) {
|
|
|
164
164
|
return base === "." || base === "..";
|
|
165
165
|
}
|
|
166
166
|
/**
|
|
167
|
-
* This function replaces backslashes (
|
|
167
|
+
* This function replaces backslashes (\\) with slashes (/).
|
|
168
168
|
*
|
|
169
169
|
* Note that a source name must not contain backslashes.
|
|
170
170
|
*/
|