hardhat 2.13.0 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/internal/constants.d.ts.map +1 -1
- package/internal/constants.js +1 -0
- package/internal/constants.js.map +1 -1
- package/internal/core/config/default-config.js +1 -1
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/core/jsonrpc/types/output/block.d.ts +24 -0
- package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
- package/internal/core/jsonrpc/types/output/block.js +8 -0
- package/internal/core/jsonrpc/types/output/block.js.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.d.ts +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -1
- package/internal/hardhat-network/provider/BlockchainBase.js +16 -9
- package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -1
- package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
- package/internal/hardhat-network/provider/TxPool.js +1 -0
- package/internal/hardhat-network/provider/TxPool.js.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js +24 -14
- package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js +2 -0
- package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.d.ts +1 -0
- package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
- package/internal/hardhat-network/provider/modules/eth.js +28 -3
- package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
- package/internal/hardhat-network/provider/node.d.ts +2 -0
- package/internal/hardhat-network/provider/node.d.ts.map +1 -1
- package/internal/hardhat-network/provider/node.js +62 -16
- package/internal/hardhat-network/provider/node.js.map +1 -1
- package/internal/hardhat-network/provider/output.d.ts +8 -0
- package/internal/hardhat-network/provider/output.d.ts.map +1 -1
- package/internal/hardhat-network/provider/output.js +9 -0
- package/internal/hardhat-network/provider/output.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +5 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +5 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +1 -1
- package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +1 -1
- package/internal/solidity/resolver.d.ts.map +1 -1
- package/internal/solidity/resolver.js +18 -2
- package/internal/solidity/resolver.js.map +1 -1
- package/internal/util/hardforks.d.ts +2 -1
- package/internal/util/hardforks.d.ts.map +1 -1
- package/internal/util/hardforks.js +2 -0
- package/internal/util/hardforks.js.map +1 -1
- package/package.json +11 -11
- package/src/internal/constants.ts +1 -0
- package/src/internal/core/config/default-config.ts +1 -1
- package/src/internal/core/jsonrpc/types/output/block.ts +12 -0
- package/src/internal/hardhat-network/provider/BlockchainBase.ts +19 -10
- package/src/internal/hardhat-network/provider/TxPool.ts +1 -0
- package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +28 -18
- package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +2 -0
- package/src/internal/hardhat-network/provider/modules/eth.ts +40 -3
- package/src/internal/hardhat-network/provider/node.ts +73 -14
- package/src/internal/hardhat-network/provider/output.ts +20 -0
- package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +1 -1
- package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +1 -1
- package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +1 -1
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +5 -1
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +5 -1
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +1 -1
- package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts +1 -1
- package/src/internal/solidity/resolver.ts +25 -6
- package/src/internal/util/hardforks.ts +2 -0
|
@@ -40,6 +40,8 @@ export interface RpcBlockOutput {
|
|
|
40
40
|
transactionsRoot: string;
|
|
41
41
|
uncles: string[];
|
|
42
42
|
baseFeePerGas?: string;
|
|
43
|
+
withdrawals?: RpcWithdrawalItem[];
|
|
44
|
+
withdrawalsRoot?: string;
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
export type RpcTransactionOutput =
|
|
@@ -147,6 +149,13 @@ export interface RpcDebugTraceOutput {
|
|
|
147
149
|
structLogs: RpcStructLog[];
|
|
148
150
|
}
|
|
149
151
|
|
|
152
|
+
export interface RpcWithdrawalItem {
|
|
153
|
+
index: string;
|
|
154
|
+
validatorIndex: string;
|
|
155
|
+
address: string;
|
|
156
|
+
amount: string;
|
|
157
|
+
}
|
|
158
|
+
|
|
150
159
|
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
151
160
|
|
|
152
161
|
export function getRpcBlock(
|
|
@@ -191,6 +200,17 @@ export function getRpcBlock(
|
|
|
191
200
|
output.baseFeePerGas = numberToRpcQuantity(block.header.baseFeePerGas);
|
|
192
201
|
}
|
|
193
202
|
|
|
203
|
+
if (block.header.withdrawalsRoot !== undefined) {
|
|
204
|
+
output.withdrawals = block.withdrawals?.map((withdrawal) => ({
|
|
205
|
+
index: numberToRpcQuantity(withdrawal.index),
|
|
206
|
+
validatorIndex: numberToRpcQuantity(withdrawal.validatorIndex),
|
|
207
|
+
address: bufferToRpcData(withdrawal.address.toBuffer()),
|
|
208
|
+
amount: numberToRpcQuantity(withdrawal.amount),
|
|
209
|
+
}));
|
|
210
|
+
|
|
211
|
+
output.withdrawalsRoot = bufferToRpcData(block.header.withdrawalsRoot);
|
|
212
|
+
}
|
|
213
|
+
|
|
194
214
|
return output;
|
|
195
215
|
}
|
|
196
216
|
|
package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts
CHANGED
|
@@ -134,7 +134,7 @@ export class FakeSenderAccessListEIP2930Transaction extends AccessListEIP2930Tra
|
|
|
134
134
|
r: data.r ?? fakeSignature.r,
|
|
135
135
|
s: data.s ?? fakeSignature.s,
|
|
136
136
|
},
|
|
137
|
-
{ ...opts, freeze: false }
|
|
137
|
+
{ ...opts, freeze: false, disableMaxInitCodeSizeCheck: true }
|
|
138
138
|
);
|
|
139
139
|
|
|
140
140
|
this.common = this._getCommon(opts?.common);
|
|
@@ -133,7 +133,7 @@ export class FakeSenderEIP1559Transaction extends FeeMarketEIP1559Transaction {
|
|
|
133
133
|
r: data.r ?? fakeSignature.r,
|
|
134
134
|
s: data.s ?? fakeSignature.s,
|
|
135
135
|
},
|
|
136
|
-
{ ...opts, freeze: false }
|
|
136
|
+
{ ...opts, freeze: false, disableMaxInitCodeSizeCheck: true }
|
|
137
137
|
);
|
|
138
138
|
|
|
139
139
|
this._sender = sender;
|
|
@@ -107,7 +107,7 @@ export class FakeSenderTransaction extends Transaction {
|
|
|
107
107
|
r: data.r ?? fakeSignature.r,
|
|
108
108
|
s: data.s ?? fakeSignature.s,
|
|
109
109
|
},
|
|
110
|
-
{ ...opts, freeze: false }
|
|
110
|
+
{ ...opts, freeze: false, disableMaxInitCodeSizeCheck: true }
|
|
111
111
|
);
|
|
112
112
|
|
|
113
113
|
this.common = this._getCommon(opts?.common);
|
package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts
CHANGED
|
@@ -68,7 +68,11 @@ export class ReadOnlyValidEIP1559Transaction extends FeeMarketEIP1559Transaction
|
|
|
68
68
|
}
|
|
69
69
|
);
|
|
70
70
|
|
|
71
|
-
super(data, {
|
|
71
|
+
super(data, {
|
|
72
|
+
freeze: false,
|
|
73
|
+
disableMaxInitCodeSizeCheck: true,
|
|
74
|
+
common: fakeCommon,
|
|
75
|
+
});
|
|
72
76
|
|
|
73
77
|
this.common = fakeCommon;
|
|
74
78
|
this._sender = sender;
|
package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts
CHANGED
|
@@ -67,7 +67,11 @@ export class ReadOnlyValidEIP2930Transaction extends AccessListEIP2930Transactio
|
|
|
67
67
|
}
|
|
68
68
|
);
|
|
69
69
|
|
|
70
|
-
super(data, {
|
|
70
|
+
super(data, {
|
|
71
|
+
freeze: false,
|
|
72
|
+
disableMaxInitCodeSizeCheck: true,
|
|
73
|
+
common: fakeCommon,
|
|
74
|
+
});
|
|
71
75
|
|
|
72
76
|
this.common = fakeCommon;
|
|
73
77
|
this._sender = sender;
|
|
@@ -56,7 +56,7 @@ export class ReadOnlyValidTransaction extends Transaction {
|
|
|
56
56
|
private readonly _sender: Address;
|
|
57
57
|
|
|
58
58
|
constructor(sender: Address, data: TxData = {}) {
|
|
59
|
-
super(data, { freeze: false });
|
|
59
|
+
super(data, { freeze: false, disableMaxInitCodeSizeCheck: true });
|
|
60
60
|
|
|
61
61
|
this.common = this._getCommon();
|
|
62
62
|
this._sender = sender;
|
package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts
CHANGED
|
@@ -47,7 +47,7 @@ export class ReadOnlyValidUnknownTypeTransaction extends Transaction {
|
|
|
47
47
|
private readonly _actualType: number;
|
|
48
48
|
|
|
49
49
|
constructor(sender: Address, type: number, data: TxData = {}) {
|
|
50
|
-
super(data, { freeze: false });
|
|
50
|
+
super(data, { freeze: false, disableMaxInitCodeSizeCheck: true });
|
|
51
51
|
|
|
52
52
|
this.common = this._getCommon();
|
|
53
53
|
this._sender = sender;
|
|
@@ -292,11 +292,30 @@ export class Resolver {
|
|
|
292
292
|
nodeModulesPath = path.dirname(nodeModulesPath);
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
295
|
+
let absolutePath: string;
|
|
296
|
+
if (path.basename(nodeModulesPath) !== NODE_MODULES) {
|
|
297
|
+
// this can happen in monorepos that use PnP, in those
|
|
298
|
+
// cases we handle resolution differently
|
|
299
|
+
const packageRoot = path.dirname(packageJsonPath);
|
|
300
|
+
const pattern = new RegExp(`^${libraryName}/?`);
|
|
301
|
+
const fileName = sourceName.replace(pattern, "");
|
|
302
|
+
|
|
303
|
+
await this._validateSourceNameExistenceAndCasing(
|
|
304
|
+
packageRoot,
|
|
305
|
+
// TODO: this is _not_ a source name; we should handle this scenario in
|
|
306
|
+
// a better way
|
|
307
|
+
fileName,
|
|
308
|
+
true
|
|
309
|
+
);
|
|
310
|
+
absolutePath = path.join(packageRoot, fileName);
|
|
311
|
+
} else {
|
|
312
|
+
await this._validateSourceNameExistenceAndCasing(
|
|
313
|
+
nodeModulesPath,
|
|
314
|
+
sourceName,
|
|
315
|
+
true
|
|
316
|
+
);
|
|
317
|
+
absolutePath = path.join(nodeModulesPath, sourceName);
|
|
318
|
+
}
|
|
300
319
|
|
|
301
320
|
const packageInfo: {
|
|
302
321
|
name: string;
|
|
@@ -307,7 +326,7 @@ export class Resolver {
|
|
|
307
326
|
return this._resolveFile(
|
|
308
327
|
sourceName,
|
|
309
328
|
// We resolve to the real path here, as we may be resolving a linked library
|
|
310
|
-
await getRealPath(
|
|
329
|
+
await getRealPath(absolutePath),
|
|
311
330
|
libraryName,
|
|
312
331
|
libraryVersion
|
|
313
332
|
);
|
|
@@ -16,6 +16,7 @@ export enum HardforkName {
|
|
|
16
16
|
ARROW_GLACIER = "arrowGlacier",
|
|
17
17
|
GRAY_GLACIER = "grayGlacier",
|
|
18
18
|
MERGE = "merge",
|
|
19
|
+
SHANGHAI = "shanghai",
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
const HARDFORKS_ORDER: HardforkName[] = [
|
|
@@ -34,6 +35,7 @@ const HARDFORKS_ORDER: HardforkName[] = [
|
|
|
34
35
|
HardforkName.ARROW_GLACIER,
|
|
35
36
|
HardforkName.GRAY_GLACIER,
|
|
36
37
|
HardforkName.MERGE,
|
|
38
|
+
HardforkName.SHANGHAI,
|
|
37
39
|
];
|
|
38
40
|
|
|
39
41
|
export function getHardforkName(name: string): HardforkName {
|