hardhat 2.22.2 → 2.23.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/builtin-tasks/compile.js +2 -2
- package/builtin-tasks/compile.js.map +1 -1
- package/common/napi-rs.d.ts +2 -0
- package/common/napi-rs.d.ts.map +1 -0
- package/common/napi-rs.js +19 -0
- package/common/napi-rs.js.map +1 -0
- package/internal/core/errors-list.js +1 -1
- package/internal/core/errors-list.js.map +1 -1
- package/internal/core/params/argumentTypes.d.ts +6 -0
- package/internal/core/params/argumentTypes.d.ts.map +1 -1
- package/internal/core/params/argumentTypes.js +40 -1
- package/internal/core/params/argumentTypes.js.map +1 -1
- package/internal/core/tasks/task-definitions.d.ts +2 -2
- package/internal/core/tasks/task-definitions.js +2 -2
- package/internal/hardhat-network/provider/BlockchainBase.d.ts +29 -0
- package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -0
- package/internal/hardhat-network/provider/BlockchainBase.js +144 -0
- package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -0
- package/internal/hardhat-network/provider/BlockchainData.d.ts +58 -0
- package/internal/hardhat-network/provider/BlockchainData.d.ts.map +1 -0
- package/internal/hardhat-network/provider/BlockchainData.js +178 -0
- package/internal/hardhat-network/provider/BlockchainData.js.map +1 -0
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts +24 -0
- package/internal/hardhat-network/provider/HardhatBlockchain.d.ts.map +1 -0
- package/internal/hardhat-network/provider/HardhatBlockchain.js +73 -0
- package/internal/hardhat-network/provider/HardhatBlockchain.js.map +1 -0
- package/internal/hardhat-network/provider/PoolState.d.ts +26 -0
- package/internal/hardhat-network/provider/PoolState.d.ts.map +1 -0
- package/internal/hardhat-network/provider/PoolState.js +41 -0
- package/internal/hardhat-network/provider/PoolState.js.map +1 -0
- package/internal/hardhat-network/provider/TransactionQueue.d.ts +32 -0
- package/internal/hardhat-network/provider/TransactionQueue.d.ts.map +1 -0
- package/internal/hardhat-network/provider/TransactionQueue.js +130 -0
- package/internal/hardhat-network/provider/TransactionQueue.js.map +1 -0
- package/internal/hardhat-network/provider/TxPool.d.ts +83 -0
- package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -0
- package/internal/hardhat-network/provider/TxPool.js +470 -0
- package/internal/hardhat-network/provider/TxPool.js.map +1 -0
- package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts +2 -0
- package/internal/hardhat-network/provider/ethereumjs-workarounds.d.ts.map +1 -0
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js +15 -0
- package/internal/hardhat-network/provider/ethereumjs-workarounds.js.map +1 -0
- package/internal/hardhat-network/provider/filter.d.ts +29 -0
- package/internal/hardhat-network/provider/filter.d.ts.map +1 -0
- package/internal/hardhat-network/provider/filter.js +97 -0
- package/internal/hardhat-network/provider/filter.js.map +1 -0
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +33 -0
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -0
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +272 -0
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -0
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts +51 -0
- package/internal/hardhat-network/provider/fork/ForkStateManager.d.ts.map +1 -0
- package/internal/hardhat-network/provider/fork/ForkStateManager.js +300 -0
- package/internal/hardhat-network/provider/fork/ForkStateManager.js.map +1 -0
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts +4 -0
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -0
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js +32 -0
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -0
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts +10 -0
- package/internal/hardhat-network/provider/fork/rpcToTxData.d.ts.map +1 -0
- package/internal/hardhat-network/provider/fork/rpcToTxData.js +29 -0
- package/internal/hardhat-network/provider/fork/rpcToTxData.js.map +1 -0
- package/internal/hardhat-network/provider/modules/base.d.ts +17 -0
- package/internal/hardhat-network/provider/modules/base.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/base.js +127 -0
- package/internal/hardhat-network/provider/modules/base.js.map +1 -0
- package/internal/hardhat-network/provider/modules/debug.d.ts +12 -0
- package/internal/hardhat-network/provider/modules/debug.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/debug.js +52 -0
- package/internal/hardhat-network/provider/modules/debug.js.map +1 -0
- package/internal/hardhat-network/provider/modules/eth.d.ts +107 -0
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/eth.js +1034 -0
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -0
- package/internal/hardhat-network/provider/modules/evm.d.ts +32 -0
- package/internal/hardhat-network/provider/modules/evm.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/evm.js +180 -0
- package/internal/hardhat-network/provider/modules/evm.js.map +1 -0
- package/internal/hardhat-network/provider/modules/hardhat.d.ts +54 -0
- package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/hardhat.js +309 -0
- package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -0
- package/internal/hardhat-network/provider/modules/net.d.ts +13 -0
- package/internal/hardhat-network/provider/modules/net.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/net.js +47 -0
- package/internal/hardhat-network/provider/modules/net.js.map +1 -0
- 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/modules/web3.d.ts +11 -0
- package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -0
- package/internal/hardhat-network/provider/modules/web3.js +38 -0
- package/internal/hardhat-network/provider/modules/web3.js.map +1 -0
- package/internal/hardhat-network/provider/node.d.ts +197 -0
- package/internal/hardhat-network/provider/node.d.ts.map +1 -0
- package/internal/hardhat-network/provider/node.js +1866 -0
- package/internal/hardhat-network/provider/node.js.map +1 -0
- package/internal/hardhat-network/provider/provider.d.ts +1 -1
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +34 -27
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts +29 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.d.ts.map +1 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +137 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts +27 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.d.ts.map +1 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +137 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts +33 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.d.ts.map +1 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +141 -0
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts +30 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +97 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts +30 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +98 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts +40 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.d.ts.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +91 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts +32 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.d.ts.map +1 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +87 -0
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +1 -0
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts +17 -0
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.d.ts.map +1 -0
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js +3 -0
- package/internal/hardhat-network/provider/types/HardhatBlockchainInterface.js.map +1 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.js +4 -0
- package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -1
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts +7 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js +31 -0
- package/internal/hardhat-network/provider/utils/makeFakeSignature.js.map +1 -0
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts +4 -0
- package/internal/hardhat-network/provider/utils/makeStateTrie.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/makeStateTrie.js +20 -0
- package/internal/hardhat-network/provider/utils/makeStateTrie.js.map +1 -0
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts +8 -0
- package/internal/hardhat-network/provider/utils/putGenesisBlock.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js +37 -0
- package/internal/hardhat-network/provider/utils/putGenesisBlock.js.map +1 -0
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts +12 -0
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js +62 -0
- package/internal/hardhat-network/provider/utils/reorganizeTransactionsLists.js.map +1 -0
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts +3 -0
- package/internal/hardhat-network/provider/utils/txMapToArray.d.ts.map +1 -0
- package/internal/hardhat-network/provider/utils/txMapToArray.js +12 -0
- package/internal/hardhat-network/provider/utils/txMapToArray.js.map +1 -0
- package/internal/hardhat-network/provider/vm/exit.d.ts +1 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.js +4 -0
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts +46 -0
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -0
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +421 -0
- package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -0
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
- package/internal/solidity/parse.d.ts.map +1 -1
- package/internal/solidity/parse.js +5 -15
- package/internal/solidity/parse.js.map +1 -1
- package/package.json +8 -8
- package/recommended-gitignore.txt +3 -0
- package/src/builtin-tasks/compile.ts +2 -2
- package/src/common/napi-rs.ts +15 -0
- package/src/internal/core/errors-list.ts +1 -1
- package/src/internal/core/params/argumentTypes.ts +44 -0
- package/src/internal/core/tasks/task-definitions.ts +2 -2
- package/src/internal/hardhat-network/provider/provider.ts +52 -38
- package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +14 -1
- package/src/internal/hardhat-network/provider/vm/exit.ts +15 -1
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +1 -1
- package/src/internal/solidity/parse.ts +7 -16
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.23.0-dev.0",
|
|
4
4
|
"author": "Nomic Labs LLC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://hardhat.org",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"eslint": "^8.44.0",
|
|
69
69
|
"eslint-config-prettier": "8.3.0",
|
|
70
70
|
"eslint-plugin-import": "2.27.5",
|
|
71
|
-
"eslint-plugin-
|
|
71
|
+
"eslint-plugin-mocha": "10.4.1",
|
|
72
72
|
"eslint-plugin-prettier": "3.4.0",
|
|
73
73
|
"ethers": "^6.1.0",
|
|
74
74
|
"ethers-v5": "npm:ethers@5",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"dependencies": {
|
|
86
86
|
"@ethersproject/abi": "^5.1.2",
|
|
87
87
|
"@metamask/eth-sig-util": "^4.0.0",
|
|
88
|
-
"@nomicfoundation/edr": "^0.3.
|
|
88
|
+
"@nomicfoundation/edr": "^0.3.7",
|
|
89
89
|
"@nomicfoundation/ethereumjs-common": "4.0.4",
|
|
90
90
|
"@nomicfoundation/ethereumjs-tx": "5.0.4",
|
|
91
91
|
"@nomicfoundation/ethereumjs-util": "9.0.4",
|
|
@@ -168,11 +168,11 @@
|
|
|
168
168
|
"eslint": "eslint 'src/**/*.ts' 'test/**/*.ts'",
|
|
169
169
|
"prettier": "prettier \"**/*.{js,md,json}\"",
|
|
170
170
|
"pretest": "cd ../.. && pnpm build",
|
|
171
|
-
"test": "mocha --recursive \"test/**/*.ts\"
|
|
172
|
-
"test:except-provider": "mocha --recursive \"test/**/*.ts\" --exclude \"test/internal/hardhat-network/provider/**/*.ts\"
|
|
173
|
-
"test:except-tracing": "mocha --recursive \"test/**/*.ts\" --exclude \"test/internal/hardhat-network/stack-traces/**/*.ts\"
|
|
174
|
-
"test:provider": "mocha --recursive \"test/internal/hardhat-network/provider/**/*.ts\"
|
|
175
|
-
"test:tracing": "mocha --recursive \"test/internal/hardhat-network/stack-traces/**/*.ts\"
|
|
171
|
+
"test": "mocha --recursive \"test/**/*.ts\"",
|
|
172
|
+
"test:except-provider": "mocha --recursive \"test/**/*.ts\" --exclude \"test/internal/hardhat-network/provider/**/*.ts\"",
|
|
173
|
+
"test:except-tracing": "mocha --recursive \"test/**/*.ts\" --exclude \"test/internal/hardhat-network/stack-traces/**/*.ts\"",
|
|
174
|
+
"test:provider": "mocha --recursive \"test/internal/hardhat-network/provider/**/*.ts\"",
|
|
175
|
+
"test:tracing": "mocha --recursive \"test/internal/hardhat-network/stack-traces/**/*.ts\"",
|
|
176
176
|
"pretest:provider": "cd ../../crates/edr_napi && pnpm build",
|
|
177
177
|
"pretest:except-provider": "cd ../../crates/edr_napi && pnpm build",
|
|
178
178
|
"pretest:tracing": "cd ../../crates/edr_napi && pnpm build",
|
|
@@ -345,7 +345,7 @@ subtask(TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS)
|
|
|
345
345
|
* Receives a list of compilation jobs and returns a new list where some of
|
|
346
346
|
* the compilation jobs might've been removed.
|
|
347
347
|
*
|
|
348
|
-
* This task can be
|
|
348
|
+
* This task can be overridden to change the way the cache is used, or to use
|
|
349
349
|
* a different approach to filtering out compilation jobs.
|
|
350
350
|
*/
|
|
351
351
|
subtask(TASK_COMPILE_SOLIDITY_FILTER_COMPILATION_JOBS)
|
|
@@ -1152,7 +1152,7 @@ subtask(TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS_FAILURE_REASONS)
|
|
|
1152
1152
|
const { versionPragmas } = error.file.content;
|
|
1153
1153
|
const versionsRange = versionPragmas.join(" ");
|
|
1154
1154
|
|
|
1155
|
-
log(`File ${sourceName} has an incompatible
|
|
1155
|
+
log(`File ${sourceName} has an incompatible overridden compiler`);
|
|
1156
1156
|
|
|
1157
1157
|
errorMessage += ` * ${sourceName} (${versionsRange})\n`;
|
|
1158
1158
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { HardhatError } from "../internal/core/errors";
|
|
2
|
+
import { ERRORS } from "../internal/core/errors-list";
|
|
3
|
+
|
|
4
|
+
export function requireNapiRsModule(id: string): unknown {
|
|
5
|
+
try {
|
|
6
|
+
return require(id);
|
|
7
|
+
} catch (e: any) {
|
|
8
|
+
if (e.code === "MODULE_NOT_FOUND") {
|
|
9
|
+
throw new HardhatError(ERRORS.GENERAL.CORRUPTED_LOCKFILE);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
13
|
+
throw e;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -251,7 +251,7 @@ This bug can only affect you if you, or someone at your team, installed the proj
|
|
|
251
251
|
To avoid it, please delete both your node_modules and package-lock.json, and reinstall your project.
|
|
252
252
|
|
|
253
253
|
Note that you don't need to do this every time you install a new dependency, but please make sure to delete your node_modules every time you delete your package-lock.json.`,
|
|
254
|
-
shouldBeReported:
|
|
254
|
+
shouldBeReported: true,
|
|
255
255
|
},
|
|
256
256
|
ESM_PROJECT_WITHOUT_CJS_CONFIG: {
|
|
257
257
|
number: 19,
|
|
@@ -121,6 +121,50 @@ export const int: CLIArgumentType<number> = {
|
|
|
121
121
|
},
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
+
/**
|
|
125
|
+
* BigInt type.
|
|
126
|
+
* Accepts either a decimal string integer or hexadecimal string integer.
|
|
127
|
+
* @throws HH301
|
|
128
|
+
*/
|
|
129
|
+
export const bigint: CLIArgumentType<bigint> = {
|
|
130
|
+
name: "bigint",
|
|
131
|
+
parse: (argName, strValue) => {
|
|
132
|
+
const decimalPattern = /^\d+(?:n)?$/;
|
|
133
|
+
const hexPattern = /^0[xX][\dABCDEabcde]+$/;
|
|
134
|
+
|
|
135
|
+
if (
|
|
136
|
+
strValue.match(decimalPattern) === null &&
|
|
137
|
+
strValue.match(hexPattern) === null
|
|
138
|
+
) {
|
|
139
|
+
throw new HardhatError(ERRORS.ARGUMENTS.INVALID_VALUE_FOR_TYPE, {
|
|
140
|
+
value: strValue,
|
|
141
|
+
name: argName,
|
|
142
|
+
type: bigint.name,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return BigInt(strValue.replace("n", ""));
|
|
147
|
+
},
|
|
148
|
+
/**
|
|
149
|
+
* Check if argument value is of type "bigint".
|
|
150
|
+
*
|
|
151
|
+
* @param argName {string} argument's name - used for context in case of error.
|
|
152
|
+
* @param value {any} argument's value to validate.
|
|
153
|
+
*
|
|
154
|
+
* @throws HH301 if value is not of type "bigint"
|
|
155
|
+
*/
|
|
156
|
+
validate: (argName: string, value: any): void => {
|
|
157
|
+
const isBigInt = typeof value === "bigint";
|
|
158
|
+
if (!isBigInt) {
|
|
159
|
+
throw new HardhatError(ERRORS.ARGUMENTS.INVALID_VALUE_FOR_TYPE, {
|
|
160
|
+
value,
|
|
161
|
+
name: argName,
|
|
162
|
+
type: bigint.name,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
|
|
124
168
|
/**
|
|
125
169
|
* Float type.
|
|
126
170
|
* Accepts either a decimal string number or hexadecimal string number.
|
|
@@ -613,7 +613,7 @@ export class OverriddenTaskDefinition implements TaskDefinition {
|
|
|
613
613
|
}
|
|
614
614
|
|
|
615
615
|
/**
|
|
616
|
-
* Retrieves, if defined, the description of the
|
|
616
|
+
* Retrieves, if defined, the description of the overridden task,
|
|
617
617
|
* otherwise retrieves the description of the parent task.
|
|
618
618
|
*/
|
|
619
619
|
public get description() {
|
|
@@ -625,7 +625,7 @@ export class OverriddenTaskDefinition implements TaskDefinition {
|
|
|
625
625
|
}
|
|
626
626
|
|
|
627
627
|
/**
|
|
628
|
-
* Retrieves, if defined, the action of the
|
|
628
|
+
* Retrieves, if defined, the action of the overridden task,
|
|
629
629
|
* otherwise retrieves the action of the parent task.
|
|
630
630
|
*/
|
|
631
631
|
public get action() {
|
|
@@ -9,7 +9,7 @@ import type {
|
|
|
9
9
|
RequestArguments,
|
|
10
10
|
} from "../../../types";
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import type {
|
|
13
13
|
EdrContext,
|
|
14
14
|
Provider as EdrProviderT,
|
|
15
15
|
ExecutionResult,
|
|
@@ -27,6 +27,7 @@ import fsExtra from "fs-extra";
|
|
|
27
27
|
import * as t from "io-ts";
|
|
28
28
|
import semver from "semver";
|
|
29
29
|
|
|
30
|
+
import { requireNapiRsModule } from "../../../common/napi-rs";
|
|
30
31
|
import {
|
|
31
32
|
HARDHAT_NETWORK_RESET_EVENT,
|
|
32
33
|
HARDHAT_NETWORK_REVERT_SNAPSHOT_EVENT,
|
|
@@ -87,6 +88,10 @@ let _globalEdrContext: EdrContext | undefined;
|
|
|
87
88
|
|
|
88
89
|
// Lazy initialize the global EDR context.
|
|
89
90
|
export function getGlobalEdrContext(): EdrContext {
|
|
91
|
+
const { EdrContext } = requireNapiRsModule(
|
|
92
|
+
"@nomicfoundation/edr"
|
|
93
|
+
) as typeof import("@nomicfoundation/edr");
|
|
94
|
+
|
|
90
95
|
if (_globalEdrContext === undefined) {
|
|
91
96
|
// Only one is allowed to exist
|
|
92
97
|
_globalEdrContext = new EdrContext();
|
|
@@ -197,8 +202,9 @@ export class EdrProviderWrapper
|
|
|
197
202
|
rawTraceCallbacks: RawTraceCallbacks,
|
|
198
203
|
tracingConfig?: TracingConfig
|
|
199
204
|
): Promise<EdrProviderWrapper> {
|
|
200
|
-
const { Provider } =
|
|
201
|
-
|
|
205
|
+
const { Provider } = requireNapiRsModule(
|
|
206
|
+
"@nomicfoundation/edr"
|
|
207
|
+
) as typeof import("@nomicfoundation/edr");
|
|
202
208
|
|
|
203
209
|
const coinbase = config.coinbase ?? DEFAULT_COINBASE;
|
|
204
210
|
|
|
@@ -362,41 +368,49 @@ export class EdrProviderWrapper
|
|
|
362
368
|
);
|
|
363
369
|
const response = JSON.parse(responseObject.json);
|
|
364
370
|
|
|
365
|
-
const
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
if (
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
if (
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
this.
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
371
|
+
const needsTraces =
|
|
372
|
+
this._node._vm.evm.events.eventNames().length > 0 ||
|
|
373
|
+
this._rawTraceCallbacks.onStep !== undefined ||
|
|
374
|
+
this._rawTraceCallbacks.onAfterMessage !== undefined ||
|
|
375
|
+
this._rawTraceCallbacks.onBeforeMessage !== undefined;
|
|
376
|
+
|
|
377
|
+
if (needsTraces) {
|
|
378
|
+
const rawTraces = responseObject.traces;
|
|
379
|
+
for (const rawTrace of rawTraces) {
|
|
380
|
+
const trace = rawTrace.trace();
|
|
381
|
+
for (const traceItem of trace) {
|
|
382
|
+
if ("pc" in traceItem) {
|
|
383
|
+
if (this._node._vm.evm.events.listenerCount("step") > 0) {
|
|
384
|
+
this._node._vm.evm.events.emit(
|
|
385
|
+
"step",
|
|
386
|
+
edrTracingStepToMinimalInterpreterStep(traceItem)
|
|
387
|
+
);
|
|
388
|
+
}
|
|
389
|
+
if (this._rawTraceCallbacks.onStep !== undefined) {
|
|
390
|
+
await this._rawTraceCallbacks.onStep(traceItem);
|
|
391
|
+
}
|
|
392
|
+
} else if ("executionResult" in traceItem) {
|
|
393
|
+
if (this._node._vm.evm.events.listenerCount("afterMessage") > 0) {
|
|
394
|
+
this._node._vm.evm.events.emit(
|
|
395
|
+
"afterMessage",
|
|
396
|
+
edrTracingMessageResultToMinimalEVMResult(traceItem)
|
|
397
|
+
);
|
|
398
|
+
}
|
|
399
|
+
if (this._rawTraceCallbacks.onAfterMessage !== undefined) {
|
|
400
|
+
await this._rawTraceCallbacks.onAfterMessage(
|
|
401
|
+
traceItem.executionResult
|
|
402
|
+
);
|
|
403
|
+
}
|
|
404
|
+
} else {
|
|
405
|
+
if (this._node._vm.evm.events.listenerCount("beforeMessage") > 0) {
|
|
406
|
+
this._node._vm.evm.events.emit(
|
|
407
|
+
"beforeMessage",
|
|
408
|
+
edrTracingMessageToMinimalMessage(traceItem)
|
|
409
|
+
);
|
|
410
|
+
}
|
|
411
|
+
if (this._rawTraceCallbacks.onBeforeMessage !== undefined) {
|
|
412
|
+
await this._rawTraceCallbacks.onBeforeMessage(traceItem);
|
|
413
|
+
}
|
|
400
414
|
}
|
|
401
415
|
}
|
|
402
416
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
SpecId,
|
|
3
3
|
MineOrdering,
|
|
4
4
|
IntervalRange,
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
} from "@nomicfoundation/edr";
|
|
10
10
|
import { Address } from "@nomicfoundation/ethereumjs-util";
|
|
11
11
|
|
|
12
|
+
import { requireNapiRsModule } from "../../../../common/napi-rs";
|
|
12
13
|
import { HardforkName } from "../../../util/hardforks";
|
|
13
14
|
import { IntervalMiningConfig, MempoolOrder } from "../node-types";
|
|
14
15
|
import { RpcDebugTraceOutput, RpcStructLog } from "../output";
|
|
@@ -21,6 +22,10 @@ import {
|
|
|
21
22
|
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
22
23
|
|
|
23
24
|
export function ethereumsjsHardforkToEdrSpecId(hardfork: HardforkName): SpecId {
|
|
25
|
+
const { SpecId } = requireNapiRsModule(
|
|
26
|
+
"@nomicfoundation/edr"
|
|
27
|
+
) as typeof import("@nomicfoundation/edr");
|
|
28
|
+
|
|
24
29
|
switch (hardfork) {
|
|
25
30
|
case HardforkName.FRONTIER:
|
|
26
31
|
return SpecId.Frontier;
|
|
@@ -65,6 +70,10 @@ export function ethereumsjsHardforkToEdrSpecId(hardfork: HardforkName): SpecId {
|
|
|
65
70
|
}
|
|
66
71
|
|
|
67
72
|
export function edrSpecIdToEthereumHardfork(specId: SpecId): HardforkName {
|
|
73
|
+
const { SpecId } = requireNapiRsModule(
|
|
74
|
+
"@nomicfoundation/edr"
|
|
75
|
+
) as typeof import("@nomicfoundation/edr");
|
|
76
|
+
|
|
68
77
|
switch (specId) {
|
|
69
78
|
case SpecId.Frontier:
|
|
70
79
|
return HardforkName.FRONTIER;
|
|
@@ -128,6 +137,10 @@ export function ethereumjsIntervalMiningConfigToEdr(
|
|
|
128
137
|
export function ethereumjsMempoolOrderToEdrMineOrdering(
|
|
129
138
|
mempoolOrder: MempoolOrder
|
|
130
139
|
): MineOrdering {
|
|
140
|
+
const { MineOrdering } = requireNapiRsModule(
|
|
141
|
+
"@nomicfoundation/edr"
|
|
142
|
+
) as typeof import("@nomicfoundation/edr");
|
|
143
|
+
|
|
131
144
|
switch (mempoolOrder) {
|
|
132
145
|
case "fifo":
|
|
133
146
|
return MineOrdering.Fifo;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { ExceptionalHalt, SuccessReason } from "@nomicfoundation/edr";
|
|
1
|
+
import type { ExceptionalHalt, SuccessReason } from "@nomicfoundation/edr";
|
|
2
|
+
|
|
3
|
+
import { requireNapiRsModule } from "../../../../common/napi-rs";
|
|
2
4
|
|
|
3
5
|
export enum ExitCode {
|
|
4
6
|
SUCCESS,
|
|
@@ -14,6 +16,10 @@ export enum ExitCode {
|
|
|
14
16
|
|
|
15
17
|
export class Exit {
|
|
16
18
|
public static fromEdrSuccessReason(reason: SuccessReason): Exit {
|
|
19
|
+
const { SuccessReason } = requireNapiRsModule(
|
|
20
|
+
"@nomicfoundation/edr"
|
|
21
|
+
) as typeof import("@nomicfoundation/edr");
|
|
22
|
+
|
|
17
23
|
switch (reason) {
|
|
18
24
|
case SuccessReason.Stop:
|
|
19
25
|
case SuccessReason.Return:
|
|
@@ -25,6 +31,10 @@ export class Exit {
|
|
|
25
31
|
}
|
|
26
32
|
|
|
27
33
|
public static fromEdrExceptionalHalt(halt: ExceptionalHalt): Exit {
|
|
34
|
+
const { ExceptionalHalt } = requireNapiRsModule(
|
|
35
|
+
"@nomicfoundation/edr"
|
|
36
|
+
) as typeof import("@nomicfoundation/edr");
|
|
37
|
+
|
|
28
38
|
switch (halt) {
|
|
29
39
|
case ExceptionalHalt.OutOfGas:
|
|
30
40
|
return new Exit(ExitCode.OUT_OF_GAS);
|
|
@@ -83,6 +93,10 @@ export class Exit {
|
|
|
83
93
|
}
|
|
84
94
|
|
|
85
95
|
public getEdrExceptionalHalt(): ExceptionalHalt {
|
|
96
|
+
const { ExceptionalHalt } = requireNapiRsModule(
|
|
97
|
+
"@nomicfoundation/edr"
|
|
98
|
+
) as typeof import("@nomicfoundation/edr");
|
|
99
|
+
|
|
86
100
|
switch (this.kind) {
|
|
87
101
|
case ExitCode.OUT_OF_GAS:
|
|
88
102
|
return ExceptionalHalt.OutOfGas;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type SolidityAnalyzerT from "@nomicfoundation/solidity-analyzer";
|
|
2
2
|
|
|
3
3
|
import { SolidityFilesCache } from "../../builtin-tasks/utils/solidity-files-cache";
|
|
4
|
-
import {
|
|
5
|
-
import { ERRORS } from "../core/errors-list";
|
|
4
|
+
import { requireNapiRsModule } from "../../common/napi-rs";
|
|
6
5
|
|
|
7
6
|
interface ParsedData {
|
|
8
7
|
imports: string[];
|
|
@@ -29,22 +28,14 @@ export class Parser {
|
|
|
29
28
|
return cacheResult;
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
const { analyze } = requireNapiRsModule(
|
|
32
|
+
"@nomicfoundation/solidity-analyzer"
|
|
33
|
+
) as typeof SolidityAnalyzerT;
|
|
34
|
+
const result = analyze(fileContent);
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
this._cache.set(contentHash, result);
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
} catch (e: any) {
|
|
41
|
-
if (e.code === "MODULE_NOT_FOUND") {
|
|
42
|
-
throw new HardhatError(ERRORS.GENERAL.CORRUPTED_LOCKFILE);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
46
|
-
throw e;
|
|
47
|
-
}
|
|
38
|
+
return result;
|
|
48
39
|
}
|
|
49
40
|
|
|
50
41
|
/**
|