hardhat 2.16.0-dev.0 → 2.16.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 +18 -18
- package/builtin-tasks/compile.js.map +1 -1
- package/console.sol +3 -4
- package/internal/cli/analytics.d.ts +6 -6
- package/internal/cli/analytics.d.ts.map +1 -1
- package/internal/cli/analytics.js +43 -115
- package/internal/cli/analytics.js.map +1 -1
- package/internal/cli/bootstrap.js +0 -0
- package/internal/cli/cli.js +1 -1
- package/internal/cli/cli.js.map +1 -1
- package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
- package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -6
- package/package.json +1 -3
- package/src/builtin-tasks/compile.ts +43 -35
- package/src/internal/cli/analytics.ts +82 -134
- package/src/internal/cli/cli.ts +1 -1
- package/internal/core/config/extenders.d.ts +0 -7
- package/internal/core/config/extenders.d.ts.map +0 -1
- package/internal/core/config/extenders.js +0 -16
- package/internal/core/config/extenders.js.map +0 -1
- package/internal/hardhat-network/provider/RethnetState.d.ts +0 -29
- package/internal/hardhat-network/provider/RethnetState.d.ts.map +0 -1
- package/internal/hardhat-network/provider/RethnetState.js +0 -110
- package/internal/hardhat-network/provider/RethnetState.js.map +0 -1
- package/internal/hardhat-network/provider/utils/bloom.d.ts +0 -32
- package/internal/hardhat-network/provider/utils/bloom.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/bloom.js +0 -79
- package/internal/hardhat-network/provider/utils/bloom.js.map +0 -1
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +0 -17
- package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +0 -1
- package/internal/hardhat-network/provider/utils/convertToRethnet.js +0 -390
- package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder/dual.d.ts +0 -14
- package/internal/hardhat-network/provider/vm/block-builder/dual.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder/dual.js +0 -47
- package/internal/hardhat-network/provider/vm/block-builder/dual.js.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder/hardhat.d.ts +0 -27
- package/internal/hardhat-network/provider/vm/block-builder/hardhat.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder/hardhat.js +0 -136
- package/internal/hardhat-network/provider/vm/block-builder/hardhat.js.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder/rethnet.d.ts +0 -20
- package/internal/hardhat-network/provider/vm/block-builder/rethnet.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder/rethnet.js +0 -55
- package/internal/hardhat-network/provider/vm/block-builder/rethnet.js.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder.d.ts +0 -19
- package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/block-builder.js +0 -24
- package/internal/hardhat-network/provider/vm/block-builder.js.map +0 -1
- package/internal/hardhat-network/provider/vm/creation.d.ts +0 -10
- package/internal/hardhat-network/provider/vm/creation.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/creation.js +0 -29
- package/internal/hardhat-network/provider/vm/creation.js.map +0 -1
- package/internal/hardhat-network/provider/vm/dual.d.ts +0 -43
- package/internal/hardhat-network/provider/vm/dual.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/dual.js +0 -487
- package/internal/hardhat-network/provider/vm/dual.js.map +0 -1
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +0 -61
- package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/ethereumjs.js +0 -517
- package/internal/hardhat-network/provider/vm/ethereumjs.js.map +0 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts +0 -24
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/exit.js +0 -140
- package/internal/hardhat-network/provider/vm/exit.js.map +0 -1
- package/internal/hardhat-network/provider/vm/rethnet.d.ts +0 -87
- package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/rethnet.js +0 -262
- package/internal/hardhat-network/provider/vm/rethnet.js.map +0 -1
- package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +0 -53
- package/internal/hardhat-network/provider/vm/vm-adapter.d.ts.map +0 -1
- package/internal/hardhat-network/provider/vm/vm-adapter.js +0 -3
- package/internal/hardhat-network/provider/vm/vm-adapter.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertToRethnet.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToRethnet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Block } from "@nomicfoundation/ethereumjs-block";
|
|
2
|
-
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
3
|
-
import { BlockBuilderAdapter, Reward } from "../block-builder";
|
|
4
|
-
import { RunTxResult } from "../vm-adapter";
|
|
5
|
-
export declare class DualModeBlockBuilder implements BlockBuilderAdapter {
|
|
6
|
-
private _ethereumJSBuilder;
|
|
7
|
-
private _rethnetBuilder;
|
|
8
|
-
constructor(_ethereumJSBuilder: BlockBuilderAdapter, _rethnetBuilder: BlockBuilderAdapter);
|
|
9
|
-
addTransaction(tx: TypedTransaction): Promise<RunTxResult>;
|
|
10
|
-
finalize(rewards: Reward[], _timestamp?: bigint): Promise<Block>;
|
|
11
|
-
revert(): Promise<void>;
|
|
12
|
-
getGasUsed(): Promise<bigint>;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=dual.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dual.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hardhat-network/provider/vm/block-builder/dual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,qBAAa,oBAAqB,YAAW,mBAAmB;IAE5D,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,eAAe;gBADf,kBAAkB,EAAE,mBAAmB,EACvC,eAAe,EAAE,mBAAmB;IAGjC,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAY1D,QAAQ,CACnB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;IAcJ,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAiB3C"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DualModeBlockBuilder = void 0;
|
|
4
|
-
const assertions_1 = require("../../utils/assertions");
|
|
5
|
-
const rethnet_1 = require("../rethnet");
|
|
6
|
-
const ForkStateManager_1 = require("../../fork/ForkStateManager");
|
|
7
|
-
class DualModeBlockBuilder {
|
|
8
|
-
constructor(_ethereumJSBuilder, _rethnetBuilder) {
|
|
9
|
-
this._ethereumJSBuilder = _ethereumJSBuilder;
|
|
10
|
-
this._rethnetBuilder = _rethnetBuilder;
|
|
11
|
-
}
|
|
12
|
-
async addTransaction(tx) {
|
|
13
|
-
const ethereumJSResult = await this._ethereumJSBuilder.addTransaction(tx);
|
|
14
|
-
const rethnetResult = await this._rethnetBuilder.addTransaction(tx);
|
|
15
|
-
// Matches EthereumJS' runCall checkpoint call
|
|
16
|
-
rethnet_1.globalRethnetContext.setHashGeneratorSeed((0, ForkStateManager_1.randomHashSeed)());
|
|
17
|
-
(0, assertions_1.assertEqualRunTxResults)(ethereumJSResult, rethnetResult);
|
|
18
|
-
return rethnetResult;
|
|
19
|
-
}
|
|
20
|
-
async finalize(rewards, _timestamp) {
|
|
21
|
-
const ethereumJSBlock = await this._ethereumJSBuilder.finalize(rewards);
|
|
22
|
-
const rethnetBlock = await this._rethnetBuilder.finalize(rewards,
|
|
23
|
-
// We have to overwite rethnet's timestamp, as the blocks might have
|
|
24
|
-
// been made and slightly different times
|
|
25
|
-
ethereumJSBlock.header.timestamp);
|
|
26
|
-
(0, assertions_1.assertEqualBlocks)(ethereumJSBlock, rethnetBlock);
|
|
27
|
-
return rethnetBlock;
|
|
28
|
-
}
|
|
29
|
-
async revert() {
|
|
30
|
-
await this._ethereumJSBuilder.revert();
|
|
31
|
-
await this._rethnetBuilder.revert();
|
|
32
|
-
}
|
|
33
|
-
async getGasUsed() {
|
|
34
|
-
const [ethereumJSGasUsed, rethnetGasUsed] = await Promise.all([
|
|
35
|
-
this._ethereumJSBuilder.getGasUsed(),
|
|
36
|
-
this._rethnetBuilder.getGasUsed(),
|
|
37
|
-
]);
|
|
38
|
-
if (ethereumJSGasUsed !== rethnetGasUsed) {
|
|
39
|
-
console.trace(`Different gas used in block: ${ethereumJSGasUsed} (ethereumjs) !== ${rethnetGasUsed} (rethnet)`);
|
|
40
|
-
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
41
|
-
throw new Error("Different gas used in block");
|
|
42
|
-
}
|
|
43
|
-
return rethnetGasUsed;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
exports.DualModeBlockBuilder = DualModeBlockBuilder;
|
|
47
|
-
//# sourceMappingURL=dual.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dual.js","sourceRoot":"","sources":["../../../../../src/internal/hardhat-network/provider/vm/block-builder/dual.ts"],"names":[],"mappings":";;;AAIA,uDAGgC;AAChC,wCAAkD;AAClD,kEAA6D;AAE7D,MAAa,oBAAoB;IAC/B,YACU,kBAAuC,EACvC,eAAoC;QADpC,uBAAkB,GAAlB,kBAAkB,CAAqB;QACvC,oBAAe,GAAf,eAAe,CAAqB;IAC3C,CAAC;IAEG,KAAK,CAAC,cAAc,CAAC,EAAoB;QAC9C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAEpE,8CAA8C;QAC9C,8BAAoB,CAAC,oBAAoB,CAAC,IAAA,iCAAc,GAAE,CAAC,CAAC;QAE5D,IAAA,oCAAuB,EAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAEzD,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,OAAiB,EACjB,UAAmB;QAEnB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CACtD,OAAO;QACP,oEAAoE;QACpE,yCAAyC;QACzC,eAAe,CAAC,MAAM,CAAC,SAAS,CACjC,CAAC;QAEF,IAAA,8BAAiB,EAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAEjD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5D,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACpC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;SAClC,CAAC,CAAC;QAEH,IAAI,iBAAiB,KAAK,cAAc,EAAE;YACxC,OAAO,CAAC,KAAK,CACX,gCAAgC,iBAAiB,qBAAqB,cAAc,YAAY,CACjG,CAAC;YAEF,yEAAyE;YACzE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAzDD,oDAyDC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import type { Common } from "@nomicfoundation/ethereumjs-common";
|
|
3
|
-
import { Block } from "@nomicfoundation/ethereumjs-block";
|
|
4
|
-
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
5
|
-
import { BlockBuilderAdapter, BuildBlockOpts, Reward } from "../block-builder";
|
|
6
|
-
import { RunTxResult, VMAdapter } from "../vm-adapter";
|
|
7
|
-
export declare class HardhatBlockBuilder implements BlockBuilderAdapter {
|
|
8
|
-
private _vm;
|
|
9
|
-
private _common;
|
|
10
|
-
private _opts;
|
|
11
|
-
private _blockStartStateRoot;
|
|
12
|
-
private _state;
|
|
13
|
-
private _gasUsed;
|
|
14
|
-
private _transactions;
|
|
15
|
-
private _transactionResults;
|
|
16
|
-
constructor(_vm: VMAdapter, _common: Common, _opts: BuildBlockOpts, _blockStartStateRoot: Buffer);
|
|
17
|
-
static create(vm: VMAdapter, common: Common, opts: BuildBlockOpts): Promise<HardhatBlockBuilder>;
|
|
18
|
-
addTransaction(tx: TypedTransaction): Promise<RunTxResult>;
|
|
19
|
-
finalize(rewards: Reward[]): Promise<Block>;
|
|
20
|
-
revert(): Promise<void>;
|
|
21
|
-
getGasUsed(): Promise<bigint>;
|
|
22
|
-
getTransactionResults(): RunTxResult[];
|
|
23
|
-
private _getTransactionsTrie;
|
|
24
|
-
private _getReceiptsTrie;
|
|
25
|
-
private _getLogsBloom;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=hardhat.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hardhat.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hardhat-network/provider/vm/block-builder/hardhat.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,MAAM,EAEP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AASvD,qBAAa,mBAAoB,YAAW,mBAAmB;IAO3D,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,oBAAoB;IAT9B,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,mBAAmB,CAAqB;gBAGtC,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,EACrB,oBAAoB,EAAE,MAAM;WAGlB,MAAM,CACxB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,mBAAmB,CAAC;IAMlB,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAyD3C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,qBAAqB,IAAI,WAAW,EAAE;YAI/B,oBAAoB;YAQpB,gBAAgB;IAU9B,OAAO,CAAC,aAAa;CAQtB"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HardhatBlockBuilder = void 0;
|
|
4
|
-
const ethereumjs_block_1 = require("@nomicfoundation/ethereumjs-block");
|
|
5
|
-
const ethereumjs_rlp_1 = require("@nomicfoundation/ethereumjs-rlp");
|
|
6
|
-
const ethereumjs_trie_1 = require("@nomicfoundation/ethereumjs-trie");
|
|
7
|
-
const bigint_1 = require("../../../../util/bigint");
|
|
8
|
-
const bloom_1 = require("../../utils/bloom");
|
|
9
|
-
const block_builder_1 = require("../block-builder");
|
|
10
|
-
/* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
|
|
11
|
-
class HardhatBlockBuilder {
|
|
12
|
-
constructor(_vm, _common, _opts, _blockStartStateRoot) {
|
|
13
|
-
this._vm = _vm;
|
|
14
|
-
this._common = _common;
|
|
15
|
-
this._opts = _opts;
|
|
16
|
-
this._blockStartStateRoot = _blockStartStateRoot;
|
|
17
|
-
this._state = "started";
|
|
18
|
-
this._gasUsed = 0n;
|
|
19
|
-
this._transactions = [];
|
|
20
|
-
this._transactionResults = [];
|
|
21
|
-
}
|
|
22
|
-
static async create(vm, common, opts) {
|
|
23
|
-
const blockStartStateRoot = await vm.getStateRoot();
|
|
24
|
-
return new HardhatBlockBuilder(vm, common, opts, blockStartStateRoot);
|
|
25
|
-
}
|
|
26
|
-
async addTransaction(tx) {
|
|
27
|
-
if (this._state !== "started") {
|
|
28
|
-
throw new Error(`BlockBuilder.addTransaction cannot be used in state ${this._state}`);
|
|
29
|
-
}
|
|
30
|
-
const blockGasLimit = (0, bigint_1.fromBigIntLike)(this._opts.headerData?.gasLimit) ?? 1000000n;
|
|
31
|
-
const blockGasRemaining = blockGasLimit - this._gasUsed;
|
|
32
|
-
if (tx.gasLimit > blockGasRemaining) {
|
|
33
|
-
throw new Error("tx has a higher gas limit than the remaining gas in the block");
|
|
34
|
-
}
|
|
35
|
-
const header = {
|
|
36
|
-
...this._opts.headerData,
|
|
37
|
-
gasUsed: this._gasUsed,
|
|
38
|
-
};
|
|
39
|
-
if (header.number === undefined) {
|
|
40
|
-
header.number = this._opts.parentBlock.header.number + 1n;
|
|
41
|
-
}
|
|
42
|
-
const blockData = { header, transactions: this._transactions };
|
|
43
|
-
const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
|
|
44
|
-
common: this._common,
|
|
45
|
-
skipConsensusFormatValidation: true,
|
|
46
|
-
calcDifficultyFromHeader: this._opts.parentBlock.header,
|
|
47
|
-
});
|
|
48
|
-
const [result] = await this._vm.runTxInBlock(tx, block);
|
|
49
|
-
this._transactions.push(tx);
|
|
50
|
-
this._transactionResults.push(result);
|
|
51
|
-
this._gasUsed += result.gasUsed;
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
async finalize(rewards) {
|
|
55
|
-
if (this._state !== "started") {
|
|
56
|
-
throw new Error(`BlockBuilder.seal cannot be used in state ${this._state}`);
|
|
57
|
-
}
|
|
58
|
-
for (const [address, reward] of rewards) {
|
|
59
|
-
const account = await this._vm.getAccount(address);
|
|
60
|
-
account.balance += reward;
|
|
61
|
-
await this._vm.putAccount(address, account);
|
|
62
|
-
}
|
|
63
|
-
const stateRoot = await this._vm.getStateRoot();
|
|
64
|
-
const transactionsTrie = await this._getTransactionsTrie();
|
|
65
|
-
const receiptTrie = await this._getReceiptsTrie();
|
|
66
|
-
const logsBloom = this._getLogsBloom();
|
|
67
|
-
const gasUsed = this._gasUsed;
|
|
68
|
-
const timestamp = this._opts.headerData?.timestamp ?? Math.round(Date.now() / 1000);
|
|
69
|
-
const headerData = {
|
|
70
|
-
...this._opts.headerData,
|
|
71
|
-
stateRoot,
|
|
72
|
-
transactionsTrie,
|
|
73
|
-
receiptTrie,
|
|
74
|
-
logsBloom,
|
|
75
|
-
gasUsed,
|
|
76
|
-
timestamp,
|
|
77
|
-
};
|
|
78
|
-
const blockData = {
|
|
79
|
-
header: {
|
|
80
|
-
...headerData,
|
|
81
|
-
parentHash: this._opts.headerData?.parentHash ?? this._opts.parentBlock.hash(),
|
|
82
|
-
number: this._opts.headerData?.number ??
|
|
83
|
-
this._opts.parentBlock.header.number + BigInt(1),
|
|
84
|
-
gasLimit: this._opts.headerData?.gasLimit ??
|
|
85
|
-
this._opts.parentBlock.header.gasLimit,
|
|
86
|
-
},
|
|
87
|
-
transactions: this._transactions,
|
|
88
|
-
};
|
|
89
|
-
const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
|
|
90
|
-
common: this._common,
|
|
91
|
-
skipConsensusFormatValidation: true,
|
|
92
|
-
calcDifficultyFromHeader: this._opts.parentBlock.header,
|
|
93
|
-
});
|
|
94
|
-
this._state = "sealed";
|
|
95
|
-
return block;
|
|
96
|
-
}
|
|
97
|
-
async revert() {
|
|
98
|
-
if (this._state !== "started") {
|
|
99
|
-
throw new Error(`BlockBuilder.revert cannot be used in state ${this._state}`);
|
|
100
|
-
}
|
|
101
|
-
await this._vm.restoreContext(this._blockStartStateRoot);
|
|
102
|
-
this._state = "reverted";
|
|
103
|
-
}
|
|
104
|
-
async getGasUsed() {
|
|
105
|
-
return this._gasUsed;
|
|
106
|
-
}
|
|
107
|
-
getTransactionResults() {
|
|
108
|
-
return this._transactionResults;
|
|
109
|
-
}
|
|
110
|
-
async _getTransactionsTrie() {
|
|
111
|
-
const trie = new ethereumjs_trie_1.Trie();
|
|
112
|
-
for (const [i, tx] of this._transactions.entries()) {
|
|
113
|
-
await trie.put(Buffer.from(ethereumjs_rlp_1.RLP.encode(i)), tx.serialize());
|
|
114
|
-
}
|
|
115
|
-
return trie.root();
|
|
116
|
-
}
|
|
117
|
-
async _getReceiptsTrie() {
|
|
118
|
-
const receiptTrie = new ethereumjs_trie_1.Trie();
|
|
119
|
-
for (const [i, txResult] of this._transactionResults.entries()) {
|
|
120
|
-
const tx = this._transactions[i];
|
|
121
|
-
const encodedReceipt = (0, block_builder_1.encodeReceipt)(txResult.receipt, tx.type);
|
|
122
|
-
await receiptTrie.put(Buffer.from(ethereumjs_rlp_1.RLP.encode(i)), encodedReceipt);
|
|
123
|
-
}
|
|
124
|
-
return receiptTrie.root();
|
|
125
|
-
}
|
|
126
|
-
_getLogsBloom() {
|
|
127
|
-
const bloom = new bloom_1.Bloom();
|
|
128
|
-
for (const txResult of this._transactionResults) {
|
|
129
|
-
// Combine blooms via bitwise OR
|
|
130
|
-
bloom.or(txResult.bloom);
|
|
131
|
-
}
|
|
132
|
-
return bloom.bitvector;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
exports.HardhatBlockBuilder = HardhatBlockBuilder;
|
|
136
|
-
//# sourceMappingURL=hardhat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hardhat.js","sourceRoot":"","sources":["../../../../../src/internal/hardhat-network/provider/vm/block-builder/hardhat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Block } from "@nomicfoundation/ethereumjs-block";
|
|
2
|
-
import { Common } from "@nomicfoundation/ethereumjs-common";
|
|
3
|
-
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
4
|
-
import { BlockBuilder, Blockchain, Config } from "rethnet-evm";
|
|
5
|
-
import { BlockBuilderAdapter, BuildBlockOpts, Reward } from "../block-builder";
|
|
6
|
-
import { RunTxResult } from "../vm-adapter";
|
|
7
|
-
import { RethnetStateManager } from "../../RethnetState";
|
|
8
|
-
import { VMTracer } from "../../../stack-traces/vm-tracer";
|
|
9
|
-
export declare class RethnetBlockBuilder implements BlockBuilderAdapter {
|
|
10
|
-
private _blockBuilder;
|
|
11
|
-
private _vmTracer;
|
|
12
|
-
private _common;
|
|
13
|
-
constructor(_blockBuilder: BlockBuilder, _vmTracer: VMTracer, _common: Common);
|
|
14
|
-
static create(blockchain: Blockchain, state: RethnetStateManager, vmTracer: VMTracer, vmConfig: Config, common: Common, opts: BuildBlockOpts): Promise<RethnetBlockBuilder>;
|
|
15
|
-
addTransaction(tx: TypedTransaction): Promise<RunTxResult>;
|
|
16
|
-
finalize(rewards: Reward[], timestamp?: bigint): Promise<Block>;
|
|
17
|
-
revert(): Promise<void>;
|
|
18
|
-
getGasUsed(): Promise<bigint>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=rethnet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rethnet.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hardhat-network/provider/vm/block-builder/rethnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AASzD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,qBAAa,mBAAoB,YAAW,mBAAmB;IAE3D,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;gBAFP,aAAa,EAAE,YAAY,EAC3B,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,MAAM;WAGL,MAAM,CACxB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,mBAAmB,CAAC;IAmBlB,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0B1D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAW/D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG3C"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RethnetBlockBuilder = void 0;
|
|
4
|
-
const rethnet_evm_1 = require("rethnet-evm");
|
|
5
|
-
const rethnet_1 = require("../rethnet");
|
|
6
|
-
const convertToRethnet_1 = require("../../utils/convertToRethnet");
|
|
7
|
-
class RethnetBlockBuilder {
|
|
8
|
-
constructor(_blockBuilder, _vmTracer, _common) {
|
|
9
|
-
this._blockBuilder = _blockBuilder;
|
|
10
|
-
this._vmTracer = _vmTracer;
|
|
11
|
-
this._common = _common;
|
|
12
|
-
}
|
|
13
|
-
static async create(blockchain, state, vmTracer, vmConfig, common, opts) {
|
|
14
|
-
const blockBuilder = await rethnet_evm_1.BlockBuilder.create(rethnet_1.globalRethnetContext, blockchain, state.asInner(), {
|
|
15
|
-
chainId: common.chainId(),
|
|
16
|
-
specId: (0, convertToRethnet_1.ethereumsjsHardforkToRethnet)(common.hardfork()),
|
|
17
|
-
limitContractCodeSize: vmConfig.limitContractCodeSize ?? undefined,
|
|
18
|
-
disableBlockGasLimit: vmConfig.disableBlockGasLimit,
|
|
19
|
-
disableEip3607: vmConfig.disableEip3607,
|
|
20
|
-
}, (0, convertToRethnet_1.ethereumjsBlockHeaderToRethnet)(opts.parentBlock.header), (0, convertToRethnet_1.ethereumjsHeaderDataToRethnetBlockOptions)(opts.headerData));
|
|
21
|
-
return new RethnetBlockBuilder(blockBuilder, vmTracer, common);
|
|
22
|
-
}
|
|
23
|
-
async addTransaction(tx) {
|
|
24
|
-
const rethnetTx = (0, convertToRethnet_1.ethereumjsTransactionToRethnetPendingTransaction)(tx);
|
|
25
|
-
const cumulativeBlockGasUsed = await this.getGasUsed();
|
|
26
|
-
const rethnetResult = await this._blockBuilder.addTransaction(rethnetTx, true);
|
|
27
|
-
const trace = rethnetResult.trace;
|
|
28
|
-
for (const traceItem of trace) {
|
|
29
|
-
if ("pc" in traceItem) {
|
|
30
|
-
await this._vmTracer.addStep(traceItem);
|
|
31
|
-
}
|
|
32
|
-
else if ("executionResult" in traceItem) {
|
|
33
|
-
await this._vmTracer.addAfterMessage(traceItem);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
await this._vmTracer.addBeforeMessage(traceItem);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return (0, convertToRethnet_1.rethnetResultToRunTxResult)(rethnetResult.result, cumulativeBlockGasUsed);
|
|
40
|
-
}
|
|
41
|
-
async finalize(rewards, timestamp) {
|
|
42
|
-
const block = await this._blockBuilder.finalize(rewards.map(([address, reward]) => {
|
|
43
|
-
return [address.buf, reward];
|
|
44
|
-
}), timestamp);
|
|
45
|
-
return (0, convertToRethnet_1.rethnetBlockToEthereumJS)(block, this._common);
|
|
46
|
-
}
|
|
47
|
-
async revert() {
|
|
48
|
-
await this._blockBuilder.abort();
|
|
49
|
-
}
|
|
50
|
-
async getGasUsed() {
|
|
51
|
-
return this._blockBuilder.gasUsed;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.RethnetBlockBuilder = RethnetBlockBuilder;
|
|
55
|
-
//# sourceMappingURL=rethnet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rethnet.js","sourceRoot":"","sources":["../../../../../src/internal/hardhat-network/provider/vm/block-builder/rethnet.ts"],"names":[],"mappings":";;;AAGA,6CAA+D;AAE/D,wCAAkD;AAGlD,mEAOsC;AAItC,MAAa,mBAAmB;IAC9B,YACU,aAA2B,EAC3B,SAAmB,EACnB,OAAe;QAFf,kBAAa,GAAb,aAAa,CAAc;QAC3B,cAAS,GAAT,SAAS,CAAU;QACnB,YAAO,GAAP,OAAO,CAAQ;IACtB,CAAC;IAEG,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,UAAsB,EACtB,KAA0B,EAC1B,QAAkB,EAClB,QAAgB,EAChB,MAAc,EACd,IAAoB;QAEpB,MAAM,YAAY,GAAG,MAAM,0BAAY,CAAC,MAAM,CAC5C,8BAAoB,EACpB,UAAU,EACV,KAAK,CAAC,OAAO,EAAE,EACf;YACE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACzB,MAAM,EAAE,IAAA,+CAA4B,EAAC,MAAM,CAAC,QAAQ,EAAkB,CAAC;YACvE,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,IAAI,SAAS;YAClE,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;YACnD,cAAc,EAAE,QAAQ,CAAC,cAAc;SACxC,EACD,IAAA,iDAA8B,EAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EACvD,IAAA,4DAAyC,EAAC,IAAI,CAAC,UAAU,CAAC,CAC3D,CAAC;QAEF,OAAO,IAAI,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,EAAoB;QAC9C,MAAM,SAAS,GAAG,IAAA,mEAAgD,EAAC,EAAE,CAAC,CAAC;QAEvE,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAC3D,SAAS,EACT,IAAI,CACL,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,KAAM,CAAC;QACnC,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE;YAC7B,IAAI,IAAI,IAAI,SAAS,EAAE;gBACrB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACzC;iBAAM,IAAI,iBAAiB,IAAI,SAAS,EAAE;gBACzC,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;aACjD;iBAAM;gBACL,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;aAClD;SACF;QAED,OAAO,IAAA,6CAA0B,EAC/B,aAAa,CAAC,MAAM,EACpB,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,OAAiB,EAAE,SAAkB;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC7C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;YAChC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,EACF,SAAS,CACV,CAAC;QAEF,OAAO,IAAA,2CAAwB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;CACF;AA7ED,kDA6EC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Block, HeaderData } from "@nomicfoundation/ethereumjs-block";
|
|
3
|
-
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
4
|
-
import { Address } from "@nomicfoundation/ethereumjs-util";
|
|
5
|
-
import { TxReceipt } from "@nomicfoundation/ethereumjs-vm";
|
|
6
|
-
import { RunTxResult } from "./vm-adapter";
|
|
7
|
-
export declare type Reward = [address: Address, reward: bigint];
|
|
8
|
-
export interface BuildBlockOpts {
|
|
9
|
-
parentBlock: Block;
|
|
10
|
-
headerData?: HeaderData;
|
|
11
|
-
}
|
|
12
|
-
export interface BlockBuilderAdapter {
|
|
13
|
-
addTransaction(tx: TypedTransaction): Promise<RunTxResult>;
|
|
14
|
-
finalize(rewards: Reward[], timestamp?: bigint): Promise<Block>;
|
|
15
|
-
revert(): Promise<void>;
|
|
16
|
-
getGasUsed(): Promise<bigint>;
|
|
17
|
-
}
|
|
18
|
-
export declare function encodeReceipt(receipt: TxReceipt, txType: number): Buffer;
|
|
19
|
-
//# sourceMappingURL=block-builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/block-builder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,OAAO,EAIR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAGL,SAAS,EACV,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,oBAAY,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAsB/D"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.encodeReceipt = void 0;
|
|
4
|
-
const ethereumjs_rlp_1 = require("@nomicfoundation/ethereumjs-rlp");
|
|
5
|
-
const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
|
|
6
|
-
function encodeReceipt(receipt, txType) {
|
|
7
|
-
const encoded = Buffer.from(ethereumjs_rlp_1.RLP.encode((0, ethereumjs_util_1.bufArrToArr)([
|
|
8
|
-
receipt.stateRoot ??
|
|
9
|
-
(receipt.status === 0
|
|
10
|
-
? Buffer.from([])
|
|
11
|
-
: Buffer.from("01", "hex")),
|
|
12
|
-
(0, ethereumjs_util_1.bigIntToBuffer)(receipt.cumulativeBlockGasUsed),
|
|
13
|
-
receipt.bitvector,
|
|
14
|
-
receipt.logs,
|
|
15
|
-
])));
|
|
16
|
-
if (txType === 0) {
|
|
17
|
-
return encoded;
|
|
18
|
-
}
|
|
19
|
-
// Serialize receipt according to EIP-2718:
|
|
20
|
-
// `typed-receipt = tx-type || receipt-data`
|
|
21
|
-
return Buffer.concat([(0, ethereumjs_util_1.intToBuffer)(txType), encoded]);
|
|
22
|
-
}
|
|
23
|
-
exports.encodeReceipt = encodeReceipt;
|
|
24
|
-
//# sourceMappingURL=block-builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-builder.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/block-builder.ts"],"names":[],"mappings":";;;AACA,oEAAsD;AAEtD,sEAK0C;AA0B1C,SAAgB,aAAa,CAAC,OAAkB,EAAE,MAAc;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,oBAAG,CAAC,MAAM,CACR,IAAA,6BAAW,EAAC;QACT,OAAiC,CAAC,SAAS;YAC1C,CAAE,OAAkC,CAAC,MAAM,KAAK,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAA,gCAAc,EAAC,OAAO,CAAC,sBAAsB,CAAC;QAC9C,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,IAAI;KACb,CAAC,CACH,CACF,CAAC;IAEF,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,OAAO,OAAO,CAAC;KAChB;IAED,2CAA2C;IAC3C,4CAA4C;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAA,6BAAW,EAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAtBD,sCAsBC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Common } from "@nomicfoundation/ethereumjs-common";
|
|
2
|
-
import { NodeConfig } from "../node-types";
|
|
3
|
-
import { HardhatBlockchainInterface } from "../types/HardhatBlockchainInterface";
|
|
4
|
-
import { VMAdapter } from "./vm-adapter";
|
|
5
|
-
/**
|
|
6
|
-
* Creates an instance of a VMAdapter. Which implementation is used depends on
|
|
7
|
-
* the value of the HARDHAT_EXPERIMENTAL_VM_MODE environment variable.
|
|
8
|
-
*/
|
|
9
|
-
export declare function createVm(common: Common, blockchain: HardhatBlockchainInterface, config: NodeConfig, selectHardfork: (blockNumber: bigint) => string): Promise<VMAdapter>;
|
|
10
|
-
//# sourceMappingURL=creation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"creation.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/creation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAIjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,0BAA0B,EACtC,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAC9C,OAAO,CAAC,SAAS,CAAC,CAoBpB"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createVm = void 0;
|
|
4
|
-
const errors_1 = require("../../../core/errors");
|
|
5
|
-
const dual_1 = require("./dual");
|
|
6
|
-
const ethereumjs_1 = require("./ethereumjs");
|
|
7
|
-
const rethnet_1 = require("./rethnet");
|
|
8
|
-
/**
|
|
9
|
-
* Creates an instance of a VMAdapter. Which implementation is used depends on
|
|
10
|
-
* the value of the HARDHAT_EXPERIMENTAL_VM_MODE environment variable.
|
|
11
|
-
*/
|
|
12
|
-
function createVm(common, blockchain, config, selectHardfork) {
|
|
13
|
-
const vmModeEnvVar = process.env.HARDHAT_EXPERIMENTAL_VM_MODE;
|
|
14
|
-
if (vmModeEnvVar === "ethereumjs") {
|
|
15
|
-
return ethereumjs_1.EthereumJSAdapter.create(common, blockchain, config, selectHardfork);
|
|
16
|
-
}
|
|
17
|
-
else if (vmModeEnvVar === "rethnet") {
|
|
18
|
-
return rethnet_1.RethnetAdapter.create(config, selectHardfork, async (blockNumber) => {
|
|
19
|
-
const block = await blockchain.getBlock(blockNumber);
|
|
20
|
-
(0, errors_1.assertHardhatInvariant)(block !== null, "Should be able to get block");
|
|
21
|
-
return block.header.hash();
|
|
22
|
-
}, common);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return dual_1.DualModeAdapter.create(common, blockchain, config, selectHardfork);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.createVm = createVm;
|
|
29
|
-
//# sourceMappingURL=creation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"creation.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/creation.ts"],"names":[],"mappings":";;;AACA,iDAA8D;AAI9D,iCAAyC;AACzC,6CAAiD;AACjD,uCAA2C;AAG3C;;;GAGG;AACH,SAAgB,QAAQ,CACtB,MAAc,EACd,UAAsC,EACtC,MAAkB,EAClB,cAA+C;IAE/C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAE9D,IAAI,YAAY,KAAK,YAAY,EAAE;QACjC,OAAO,8BAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;KAC7E;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE;QACrC,OAAO,wBAAc,CAAC,MAAM,CAC1B,MAAM,EACN,cAAc,EACd,KAAK,EAAE,WAAW,EAAE,EAAE;YACpB,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACrD,IAAA,+BAAsB,EAAC,KAAK,KAAK,IAAI,EAAE,6BAA6B,CAAC,CAAC;YAEtE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC,EACD,MAAM,CACP,CAAC;KACH;SAAM;QACL,OAAO,sBAAe,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;KAC3E;AACH,CAAC;AAzBD,4BAyBC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Block } from "@nomicfoundation/ethereumjs-block";
|
|
3
|
-
import { Common } from "@nomicfoundation/ethereumjs-common";
|
|
4
|
-
import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
|
|
5
|
-
import { Account, Address } from "@nomicfoundation/ethereumjs-util";
|
|
6
|
-
import { RpcDebugTracingConfig } from "../../../core/jsonrpc/types/input/debugTraceTransaction";
|
|
7
|
-
import { MessageTrace } from "../../stack-traces/message-trace";
|
|
8
|
-
import { VMTracer } from "../../stack-traces/vm-tracer";
|
|
9
|
-
import { NodeConfig } from "../node-types";
|
|
10
|
-
import { RpcDebugTraceOutput } from "../output";
|
|
11
|
-
import { HardhatBlockchainInterface } from "../types/HardhatBlockchainInterface";
|
|
12
|
-
import { RunTxResult, Trace, VMAdapter } from "./vm-adapter";
|
|
13
|
-
import { BlockBuilderAdapter, BuildBlockOpts } from "./block-builder";
|
|
14
|
-
export declare class DualModeAdapter implements VMAdapter {
|
|
15
|
-
private _ethereumJSAdapter;
|
|
16
|
-
private _rethnetAdapter;
|
|
17
|
-
private _ethereumJSVMTracer;
|
|
18
|
-
private _rethnetVMTracer;
|
|
19
|
-
constructor(_ethereumJSAdapter: VMAdapter, _rethnetAdapter: VMAdapter, _ethereumJSVMTracer: VMTracer, _rethnetVMTracer: VMTracer);
|
|
20
|
-
static create(common: Common, blockchain: HardhatBlockchainInterface, config: NodeConfig, selectHardfork: (blockNumber: bigint) => string): Promise<DualModeAdapter>;
|
|
21
|
-
dryRun(tx: TypedTransaction, blockContext: Block, forceBaseFeeZero?: boolean): Promise<[RunTxResult, Trace]>;
|
|
22
|
-
getStateRoot(): Promise<Buffer>;
|
|
23
|
-
getAccount(address: Address): Promise<Account>;
|
|
24
|
-
getContractStorage(address: Address, key: Buffer): Promise<Buffer>;
|
|
25
|
-
getContractCode(address: Address): Promise<Buffer>;
|
|
26
|
-
putAccount(address: Address, account: Account): Promise<void>;
|
|
27
|
-
putContractCode(address: Address, value: Buffer): Promise<void>;
|
|
28
|
-
putContractStorage(address: Address, key: Buffer, value: Buffer): Promise<void>;
|
|
29
|
-
restoreContext(stateRoot: Buffer): Promise<void>;
|
|
30
|
-
traceTransaction(hash: Buffer, block: Block, config: RpcDebugTracingConfig): Promise<RpcDebugTraceOutput>;
|
|
31
|
-
setBlockContext(block: Block, irregularStateOrUndefined: Buffer | undefined): Promise<void>;
|
|
32
|
-
runTxInBlock(tx: TypedTransaction, block: Block): Promise<[RunTxResult, Trace]>;
|
|
33
|
-
makeSnapshot(): Promise<Buffer>;
|
|
34
|
-
removeSnapshot(stateRoot: Buffer): Promise<void>;
|
|
35
|
-
getLastTrace(): {
|
|
36
|
-
trace: MessageTrace | undefined;
|
|
37
|
-
error: Error | undefined;
|
|
38
|
-
};
|
|
39
|
-
clearLastError(): void;
|
|
40
|
-
printState(): Promise<void>;
|
|
41
|
-
createBlockBuilder(common: Common, opts: BuildBlockOpts): Promise<BlockBuilderAdapter>;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=dual.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dual.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/dual.ts"],"names":[],"mappings":"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"}
|