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.
Files changed (136) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/builtin-tasks/compile.js +9 -0
  3. package/builtin-tasks/compile.js.map +1 -1
  4. package/builtin-tasks/node.js +26 -9
  5. package/builtin-tasks/node.js.map +1 -1
  6. package/internal/artifacts.d.ts +49 -0
  7. package/internal/artifacts.d.ts.map +1 -1
  8. package/internal/artifacts.js +191 -55
  9. package/internal/artifacts.js.map +1 -1
  10. package/internal/cli/analytics.js +2 -2
  11. package/internal/cli/analytics.js.map +1 -1
  12. package/internal/cli/cli.js +1 -1
  13. package/internal/cli/cli.js.map +1 -1
  14. package/internal/constants.d.ts +2 -0
  15. package/internal/constants.d.ts.map +1 -1
  16. package/internal/constants.js +3 -1
  17. package/internal/constants.js.map +1 -1
  18. package/internal/core/config/config-loading.d.ts.map +1 -1
  19. package/internal/core/config/config-loading.js +16 -2
  20. package/internal/core/config/config-loading.js.map +1 -1
  21. package/internal/core/config/config-resolution.d.ts.map +1 -1
  22. package/internal/core/config/config-resolution.js +42 -4
  23. package/internal/core/config/config-resolution.js.map +1 -1
  24. package/internal/core/config/config-validation.d.ts +1 -0
  25. package/internal/core/config/config-validation.d.ts.map +1 -1
  26. package/internal/core/config/config-validation.js +126 -13
  27. package/internal/core/config/config-validation.js.map +1 -1
  28. package/internal/core/config/default-config.d.ts +1 -0
  29. package/internal/core/config/default-config.d.ts.map +1 -1
  30. package/internal/core/config/default-config.js +69 -4
  31. package/internal/core/config/default-config.js.map +1 -1
  32. package/internal/core/errors-list.d.ts +14 -0
  33. package/internal/core/errors-list.d.ts.map +1 -1
  34. package/internal/core/errors-list.js +21 -2
  35. package/internal/core/errors-list.js.map +1 -1
  36. package/internal/core/jsonrpc/types/output/log.d.ts +1 -0
  37. package/internal/core/jsonrpc/types/output/log.d.ts.map +1 -1
  38. package/internal/core/jsonrpc/types/output/log.js +1 -0
  39. package/internal/core/jsonrpc/types/output/log.js.map +1 -1
  40. package/internal/core/jsonrpc/types/output/receipt.d.ts +1 -0
  41. package/internal/core/jsonrpc/types/output/receipt.d.ts.map +1 -1
  42. package/internal/core/params/hardhat-params.js +2 -2
  43. package/internal/core/params/hardhat-params.js.map +1 -1
  44. package/internal/core/providers/accounts.d.ts.map +1 -1
  45. package/internal/core/providers/accounts.js +14 -0
  46. package/internal/core/providers/accounts.js.map +1 -1
  47. package/internal/core/providers/construction.d.ts.map +1 -1
  48. package/internal/core/providers/construction.js +4 -2
  49. package/internal/core/providers/construction.js.map +1 -1
  50. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  51. package/internal/core/providers/gas-providers.js +1 -1
  52. package/internal/core/providers/gas-providers.js.map +1 -1
  53. package/internal/core/typescript-support.d.ts +1 -1
  54. package/internal/core/typescript-support.d.ts.map +1 -1
  55. package/internal/core/typescript-support.js +4 -1
  56. package/internal/core/typescript-support.js.map +1 -1
  57. package/internal/hardhat-network/jsonrpc/client.d.ts +2 -0
  58. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  59. package/internal/hardhat-network/provider/BlockchainData.d.ts +1 -1
  60. package/internal/hardhat-network/provider/TransactionQueue.d.ts +2 -1
  61. package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -1
  62. package/internal/hardhat-network/provider/TransactionQueue.js +16 -2
  63. package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -1
  64. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  65. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +1 -3
  66. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  67. package/internal/hardhat-network/provider/modules/hardhat.d.ts +3 -0
  68. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  69. package/internal/hardhat-network/provider/modules/hardhat.js +16 -0
  70. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  71. package/internal/hardhat-network/provider/modules/personal.d.ts +9 -0
  72. package/internal/hardhat-network/provider/modules/personal.d.ts.map +1 -0
  73. package/internal/hardhat-network/provider/modules/personal.js +31 -0
  74. package/internal/hardhat-network/provider/modules/personal.js.map +1 -0
  75. package/internal/hardhat-network/provider/node-types.d.ts +7 -1
  76. package/internal/hardhat-network/provider/node-types.d.ts.map +1 -1
  77. package/internal/hardhat-network/provider/node-types.js.map +1 -1
  78. package/internal/hardhat-network/provider/node.d.ts +11 -2
  79. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  80. package/internal/hardhat-network/provider/node.js +108 -31
  81. package/internal/hardhat-network/provider/node.js.map +1 -1
  82. package/internal/hardhat-network/provider/output.d.ts +1 -1
  83. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  84. package/internal/hardhat-network/provider/output.js +9 -6
  85. package/internal/hardhat-network/provider/output.js.map +1 -1
  86. package/internal/hardhat-network/provider/provider.d.ts +8 -3
  87. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  88. package/internal/hardhat-network/provider/provider.js +14 -2
  89. package/internal/hardhat-network/provider/provider.js.map +1 -1
  90. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  91. package/internal/hardhat-network/stack-traces/error-inferrer.js +14 -0
  92. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  93. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +1 -1
  94. package/internal/hardhat-network/stack-traces/solidityTracer.js +1 -1
  95. package/package.json +5 -5
  96. package/register.js +1 -1
  97. package/register.js.map +1 -1
  98. package/src/builtin-tasks/compile.ts +14 -0
  99. package/src/builtin-tasks/node.ts +41 -9
  100. package/src/internal/artifacts.ts +268 -71
  101. package/src/internal/cli/analytics.ts +1 -1
  102. package/src/internal/cli/cli.ts +1 -1
  103. package/src/internal/constants.ts +3 -0
  104. package/src/internal/core/config/config-loading.ts +24 -2
  105. package/src/internal/core/config/config-resolution.ts +61 -3
  106. package/src/internal/core/config/config-validation.ts +217 -15
  107. package/src/internal/core/config/default-config.ts +67 -2
  108. package/src/internal/core/errors-list.ts +21 -2
  109. package/src/internal/core/jsonrpc/types/output/log.ts +1 -0
  110. package/src/internal/core/params/hardhat-params.ts +2 -2
  111. package/src/internal/core/providers/accounts.ts +19 -0
  112. package/src/internal/core/providers/construction.ts +9 -2
  113. package/src/internal/core/providers/gas-providers.ts +1 -1
  114. package/src/internal/core/typescript-support.ts +5 -1
  115. package/src/internal/hardhat-network/provider/TransactionQueue.ts +31 -4
  116. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +1 -3
  117. package/src/internal/hardhat-network/provider/modules/hardhat.ts +23 -0
  118. package/src/internal/hardhat-network/provider/modules/personal.ts +39 -0
  119. package/src/internal/hardhat-network/provider/node-types.ts +8 -1
  120. package/src/internal/hardhat-network/provider/node.ts +164 -29
  121. package/src/internal/hardhat-network/provider/output.ts +9 -9
  122. package/src/internal/hardhat-network/provider/provider.ts +18 -1
  123. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +19 -0
  124. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +1 -1
  125. package/src/register.ts +1 -1
  126. package/src/types/config.ts +42 -0
  127. package/src/utils/contract-names.ts +112 -0
  128. package/src/utils/source-names.ts +1 -1
  129. package/types/config.d.ts +26 -0
  130. package/types/config.d.ts.map +1 -1
  131. package/utils/contract-names.d.ts +10 -0
  132. package/utils/contract-names.d.ts.map +1 -1
  133. package/utils/contract-names.js +92 -1
  134. package/utils/contract-names.js.map +1 -1
  135. package/utils/source-names.d.ts +1 -1
  136. 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.4";
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
@@ -36,7 +36,7 @@ if (!HardhatContext.isCreated()) {
36
36
  }
37
37
 
38
38
  if (willRunWithTypescript(hardhatArguments.config)) {
39
- loadTsNode();
39
+ loadTsNode(hardhatArguments.tsconfig);
40
40
  }
41
41
 
42
42
  const config = loadConfigAndTasks(hardhatArguments);
@@ -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 (\) with slashes (/).
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;
@@ -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;IACnC,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACtD;AAED,oBAAY,iBAAiB,GACzB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC,QAAQ,CAAC,EAAE,gCAAgC,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,+BAA+B,CAAC;CAC3C;AAED,oBAAY,gCAAgC,GACxC,+BAA+B,EAAE,GACjC,kCAAkC,CAAC;AAEvC,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,6BAA6B,GACrC,QAAQ,GACR,MAAM,EAAE,GACR,oBAAoB,CAAC;AAEzB,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,6BAA6B,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;CACtC;AAED,oBAAY,aAAa,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,EAAE,4BAA4B,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,EAAE,CAAC;IAChB,0BAA0B,EAAE,OAAO,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACvC;AAED,oBAAY,4BAA4B,GACpC,8BAA8B,GAC9B,2BAA2B,EAAE,CAAC;AAElC,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACxC,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED,oBAAY,yBAAyB,GACjC,QAAQ,GACR,MAAM,EAAE,GACR,2BAA2B,CAAC;AAEhC,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAID,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,oBAAY,kBAAkB,GAAG,MAAM,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC;AAID,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC;CAC3B;AAID,oBAAY,cAAc,GAAG,CAC3B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KACpC,IAAI,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"}
@@ -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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"}
@@ -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 (\) with slashes (/).
50
+ * This function replaces backslashes (\\) with slashes (/).
51
51
  *
52
52
  * Note that a source name must not contain backslashes.
53
53
  */
@@ -164,7 +164,7 @@ function isExplicitRelativePath(sourceName) {
164
164
  return base === "." || base === "..";
165
165
  }
166
166
  /**
167
- * This function replaces backslashes (\) with slashes (/).
167
+ * This function replaces backslashes (\\) with slashes (/).
168
168
  *
169
169
  * Note that a source name must not contain backslashes.
170
170
  */