hardhat 2.13.0-dev.1 → 2.13.0-dev.2

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 (179) hide show
  1. package/builtin-tasks/compile.js +1 -1
  2. package/builtin-tasks/compile.js.map +1 -1
  3. package/builtin-tasks/flatten.js +9 -3
  4. package/builtin-tasks/flatten.js.map +1 -1
  5. package/internal/artifacts/caching.d.ts +2 -1
  6. package/internal/artifacts/caching.d.ts.map +1 -1
  7. package/internal/artifacts/caching.js +12 -1
  8. package/internal/artifacts/caching.js.map +1 -1
  9. package/internal/artifacts/index.d.ts +1 -0
  10. package/internal/artifacts/index.d.ts.map +1 -1
  11. package/internal/artifacts/index.js +14 -10
  12. package/internal/artifacts/index.js.map +1 -1
  13. package/internal/artifacts/readonly.d.ts +6 -0
  14. package/internal/artifacts/readonly.d.ts.map +1 -1
  15. package/internal/artifacts/readonly.js +19 -0
  16. package/internal/artifacts/readonly.js.map +1 -1
  17. package/internal/artifacts.d.ts +5 -0
  18. package/internal/artifacts.d.ts.map +1 -1
  19. package/internal/artifacts.js +29 -10
  20. package/internal/artifacts.js.map +1 -1
  21. package/internal/cli/cli.js +10 -1
  22. package/internal/cli/cli.js.map +1 -1
  23. package/internal/cli/project-creation.d.ts +1 -0
  24. package/internal/cli/project-creation.d.ts.map +1 -1
  25. package/internal/cli/project-creation.js +13 -2
  26. package/internal/cli/project-creation.js.map +1 -1
  27. package/internal/core/config/config-resolution.d.ts.map +1 -1
  28. package/internal/core/config/config-resolution.js +2 -1
  29. package/internal/core/config/config-resolution.js.map +1 -1
  30. package/internal/core/errors-list.d.ts +7 -0
  31. package/internal/core/errors-list.d.ts.map +1 -1
  32. package/internal/core/errors-list.js +84 -75
  33. package/internal/core/errors-list.js.map +1 -1
  34. package/internal/core/flamegraph.js +10 -10
  35. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
  36. package/internal/core/jsonrpc/types/input/blockTag.d.ts.map +1 -1
  37. package/internal/core/jsonrpc/types/output/metadata.d.ts +13 -0
  38. package/internal/core/jsonrpc/types/output/metadata.d.ts.map +1 -0
  39. package/internal/{hardhat-network/provider/vm/vm-adapter.js → core/jsonrpc/types/output/metadata.js} +1 -1
  40. package/internal/core/jsonrpc/types/output/metadata.js.map +1 -0
  41. package/internal/core/providers/accounts.d.ts.map +1 -1
  42. package/internal/core/providers/accounts.js +4 -1
  43. package/internal/core/providers/accounts.js.map +1 -1
  44. package/internal/core/providers/backwards-compatibility.d.ts.map +1 -1
  45. package/internal/core/providers/backwards-compatibility.js +3 -0
  46. package/internal/core/providers/backwards-compatibility.js.map +1 -1
  47. package/internal/core/providers/gas-providers.d.ts +1 -1
  48. package/internal/core/providers/gas-providers.d.ts.map +1 -1
  49. package/internal/core/providers/gas-providers.js +1 -1
  50. package/internal/core/providers/gas-providers.js.map +1 -1
  51. package/internal/hardhat-network/jsonrpc/client.d.ts.map +1 -1
  52. package/internal/hardhat-network/jsonrpc/client.js +5 -3
  53. package/internal/hardhat-network/jsonrpc/client.js.map +1 -1
  54. package/internal/hardhat-network/provider/modules/eth.js +4 -4
  55. package/internal/hardhat-network/provider/modules/hardhat.d.ts +2 -0
  56. package/internal/hardhat-network/provider/modules/hardhat.d.ts.map +1 -1
  57. package/internal/hardhat-network/provider/modules/hardhat.js +9 -0
  58. package/internal/hardhat-network/provider/modules/hardhat.js.map +1 -1
  59. package/internal/hardhat-network/provider/modules/web3.d.ts +3 -0
  60. package/internal/hardhat-network/provider/modules/web3.d.ts.map +1 -1
  61. package/internal/hardhat-network/provider/modules/web3.js +4 -4
  62. package/internal/hardhat-network/provider/modules/web3.js.map +1 -1
  63. package/internal/hardhat-network/provider/node.d.ts +5 -0
  64. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  65. package/internal/hardhat-network/provider/node.js +40 -3
  66. package/internal/hardhat-network/provider/node.js.map +1 -1
  67. package/internal/hardhat-network/provider/output.d.ts +1 -1
  68. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  69. package/internal/hardhat-network/provider/output.js +1 -1
  70. package/internal/hardhat-network/provider/output.js.map +1 -1
  71. package/internal/hardhat-network/provider/provider.js +1 -1
  72. package/internal/hardhat-network/provider/provider.js.map +1 -1
  73. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts +1 -0
  74. package/internal/hardhat-network/provider/utils/makeForkClient.d.ts.map +1 -1
  75. package/internal/hardhat-network/provider/utils/makeForkClient.js +4 -1
  76. package/internal/hardhat-network/provider/utils/makeForkClient.js.map +1 -1
  77. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
  78. package/internal/hardhat-network/stack-traces/error-inferrer.js +2 -5
  79. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
  80. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  81. package/internal/hardhat-network/stack-traces/solidity-errors.js +2 -1
  82. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  83. package/internal/hardhat-network/stack-traces/vm-debug-tracer.d.ts.map +1 -1
  84. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js +2 -1
  85. package/internal/hardhat-network/stack-traces/vm-debug-tracer.js.map +1 -1
  86. package/internal/solidity/compiler/index.d.ts.map +1 -1
  87. package/internal/solidity/compiler/index.js +6 -0
  88. package/internal/solidity/compiler/index.js.map +1 -1
  89. package/internal/solidity/dependencyGraph.d.ts.map +1 -1
  90. package/internal/solidity/dependencyGraph.js +2 -0
  91. package/internal/solidity/dependencyGraph.js.map +1 -1
  92. package/internal/solidity/resolver.d.ts.map +1 -1
  93. package/internal/solidity/resolver.js +8 -0
  94. package/internal/solidity/resolver.js.map +1 -1
  95. package/internal/util/console.d.ts.map +1 -1
  96. package/internal/util/console.js +1 -1
  97. package/internal/util/console.js.map +1 -1
  98. package/internal/util/download.d.ts +3 -1
  99. package/internal/util/download.d.ts.map +1 -1
  100. package/internal/util/download.js +2 -1
  101. package/internal/util/download.js.map +1 -1
  102. package/internal/util/keys-derivation.d.ts.map +1 -1
  103. package/internal/util/keys-derivation.js +4 -1
  104. package/internal/util/keys-derivation.js.map +1 -1
  105. package/internal/util/packageInfo.d.ts +1 -0
  106. package/internal/util/packageInfo.d.ts.map +1 -1
  107. package/internal/util/packageInfo.js +10 -1
  108. package/internal/util/packageInfo.js.map +1 -1
  109. package/package.json +1 -1
  110. package/recommended-gitignore.txt +1 -1
  111. package/src/builtin-tasks/compile.ts +2 -4
  112. package/src/builtin-tasks/flatten.ts +14 -3
  113. package/src/internal/artifacts/caching.ts +21 -1
  114. package/src/internal/artifacts/index.ts +21 -15
  115. package/src/internal/artifacts/readonly.ts +32 -0
  116. package/src/internal/cli/cli.ts +16 -2
  117. package/src/internal/cli/project-creation.ts +17 -1
  118. package/src/internal/core/config/config-resolution.ts +4 -3
  119. package/src/internal/core/errors-list.ts +85 -75
  120. package/src/internal/core/flamegraph.ts +10 -10
  121. package/src/internal/core/jsonrpc/types/output/metadata.ts +32 -0
  122. package/src/internal/core/providers/accounts.ts +5 -2
  123. package/src/internal/core/providers/backwards-compatibility.ts +3 -0
  124. package/src/internal/core/providers/gas-providers.ts +1 -1
  125. package/src/internal/hardhat-network/jsonrpc/client.ts +7 -4
  126. package/src/internal/hardhat-network/provider/modules/eth.ts +4 -4
  127. package/src/internal/hardhat-network/provider/modules/hardhat.ts +14 -0
  128. package/src/internal/hardhat-network/provider/modules/web3.ts +4 -4
  129. package/src/internal/hardhat-network/provider/node.ts +58 -0
  130. package/src/internal/hardhat-network/provider/output.ts +2 -2
  131. package/src/internal/hardhat-network/provider/provider.ts +1 -1
  132. package/src/internal/hardhat-network/provider/utils/makeForkClient.ts +10 -1
  133. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +2 -2
  134. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +2 -6
  135. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +3 -1
  136. package/src/internal/hardhat-network/stack-traces/vm-debug-tracer.ts +4 -1
  137. package/src/internal/solidity/compiler/downloader.ts +1 -1
  138. package/src/internal/solidity/compiler/index.ts +8 -0
  139. package/src/internal/solidity/dependencyGraph.ts +2 -0
  140. package/src/internal/solidity/resolver.ts +10 -0
  141. package/src/internal/util/console.ts +4 -2
  142. package/src/internal/util/download.ts +3 -1
  143. package/src/internal/util/keys-derivation.ts +4 -1
  144. package/src/internal/util/packageInfo.ts +9 -0
  145. package/src/types/artifacts.ts +12 -0
  146. package/src/utils/source-names.ts +15 -0
  147. package/types/artifacts.d.ts +10 -0
  148. package/types/artifacts.d.ts.map +1 -1
  149. package/utils/source-names.d.ts +5 -0
  150. package/utils/source-names.d.ts.map +1 -1
  151. package/utils/source-names.js +14 -1
  152. package/utils/source-names.js.map +1 -1
  153. package/internal/hardhat-network/provider/utils/bloom.d.ts +0 -28
  154. package/internal/hardhat-network/provider/utils/bloom.d.ts.map +0 -1
  155. package/internal/hardhat-network/provider/utils/bloom.js +0 -73
  156. package/internal/hardhat-network/provider/utils/bloom.js.map +0 -1
  157. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +0 -29
  158. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +0 -1
  159. package/internal/hardhat-network/provider/utils/convertToRethnet.js +0 -214
  160. package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +0 -1
  161. package/internal/hardhat-network/provider/vm/block-builder.d.ts +0 -30
  162. package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +0 -1
  163. package/internal/hardhat-network/provider/vm/block-builder.js +0 -147
  164. package/internal/hardhat-network/provider/vm/block-builder.js.map +0 -1
  165. package/internal/hardhat-network/provider/vm/dual.d.ts +0 -43
  166. package/internal/hardhat-network/provider/vm/dual.d.ts.map +0 -1
  167. package/internal/hardhat-network/provider/vm/dual.js +0 -120
  168. package/internal/hardhat-network/provider/vm/dual.js.map +0 -1
  169. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +0 -55
  170. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +0 -1
  171. package/internal/hardhat-network/provider/vm/ethereumjs.js +0 -272
  172. package/internal/hardhat-network/provider/vm/ethereumjs.js.map +0 -1
  173. package/internal/hardhat-network/provider/vm/rethnet.d.ts +0 -111
  174. package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +0 -1
  175. package/internal/hardhat-network/provider/vm/rethnet.js +0 -171
  176. package/internal/hardhat-network/provider/vm/rethnet.js.map +0 -1
  177. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +0 -36
  178. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts.map +0 -1
  179. package/internal/hardhat-network/provider/vm/vm-adapter.js.map +0 -1
@@ -1,147 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BlockBuilder = 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 ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
8
- const bigint_1 = require("../../../util/bigint");
9
- const bloom_1 = require("../utils/bloom");
10
- class BlockBuilder {
11
- constructor(_vm, _opts) {
12
- this._vm = _vm;
13
- this._opts = _opts;
14
- this._state = "ready";
15
- this._gasUsed = 0n;
16
- this._transactions = [];
17
- this._transactionResults = [];
18
- }
19
- async startBlock() {
20
- await this._vm.startBlock();
21
- this._state = "started";
22
- }
23
- getGasUsed() {
24
- return this._gasUsed;
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
- const blockData = { header, transactions: this._transactions };
40
- const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
41
- common: this._vm.getCommon(),
42
- skipConsensusFormatValidation: true,
43
- calcDifficultyFromHeader: this._opts.parentBlock.header,
44
- });
45
- const result = await this._vm.runTxInBlock(tx, block);
46
- this._transactions.push(tx);
47
- this._transactionResults.push(result);
48
- this._gasUsed += result.totalGasSpent;
49
- return result;
50
- }
51
- async addRewards(rewards) {
52
- if (this._state !== "started") {
53
- throw new Error(`BlockBuilder.addRewards cannot be used in state ${this._state}`);
54
- }
55
- await this._vm.addBlockRewards(rewards);
56
- this._state = "rewarded";
57
- }
58
- async seal() {
59
- if (this._state !== "rewarded") {
60
- throw new Error(`BlockBuilder.seal cannot be used in state ${this._state}`);
61
- }
62
- const stateRoot = await this._vm.getStateRoot();
63
- const transactionsTrie = await this._getTransactionsTrie();
64
- const receiptTrie = await this._getReceiptsTrie();
65
- const logsBloom = this._getLogsBloom();
66
- const gasUsed = this._gasUsed;
67
- const timestamp = this._opts.headerData?.timestamp ?? Math.round(Date.now() / 1000);
68
- const headerData = {
69
- ...this._opts.headerData,
70
- stateRoot,
71
- transactionsTrie,
72
- receiptTrie,
73
- logsBloom,
74
- gasUsed,
75
- timestamp,
76
- };
77
- const blockData = {
78
- header: {
79
- ...headerData,
80
- parentHash: this._opts.headerData?.parentHash ?? this._opts.parentBlock.hash(),
81
- number: this._opts.headerData?.number ??
82
- this._opts.parentBlock.header.number + BigInt(1),
83
- gasLimit: this._opts.headerData?.gasLimit ??
84
- this._opts.parentBlock.header.gasLimit,
85
- },
86
- transactions: this._transactions,
87
- };
88
- const block = ethereumjs_block_1.Block.fromBlockData(blockData, {
89
- common: this._vm.getCommon(),
90
- skipConsensusFormatValidation: true,
91
- calcDifficultyFromHeader: this._opts.parentBlock.header,
92
- });
93
- await this._vm.sealBlock();
94
- this._state = "sealed";
95
- return block;
96
- }
97
- async revert() {
98
- if (this._state !== "started" && this._state !== "rewarded") {
99
- throw new Error(`BlockBuilder.revert cannot be used in state ${this._state}`);
100
- }
101
- await this._vm.revertBlock();
102
- this._state = "reverted";
103
- }
104
- async _getTransactionsTrie() {
105
- const trie = new ethereumjs_trie_1.Trie();
106
- for (const [i, tx] of this._transactions.entries()) {
107
- await trie.put(Buffer.from(ethereumjs_rlp_1.RLP.encode(i)), tx.serialize());
108
- }
109
- return trie.root();
110
- }
111
- async _getReceiptsTrie() {
112
- const receiptTrie = new ethereumjs_trie_1.Trie();
113
- for (const [i, txResult] of this._transactionResults.entries()) {
114
- const tx = this._transactions[i];
115
- const encodedReceipt = encodeReceipt(txResult.receipt, tx.type);
116
- await receiptTrie.put(Buffer.from(ethereumjs_rlp_1.RLP.encode(i)), encodedReceipt);
117
- }
118
- return receiptTrie.root();
119
- }
120
- _getLogsBloom() {
121
- const bloom = new bloom_1.Bloom();
122
- for (const txResult of this._transactionResults) {
123
- // Combine blooms via bitwise OR
124
- bloom.or(txResult.bloom);
125
- }
126
- return bloom.bitvector;
127
- }
128
- }
129
- exports.BlockBuilder = BlockBuilder;
130
- function encodeReceipt(receipt, txType) {
131
- const encoded = Buffer.from(ethereumjs_rlp_1.RLP.encode((0, ethereumjs_util_1.bufArrToArr)([
132
- receipt.stateRoot ??
133
- (receipt.status === 0
134
- ? Buffer.from([])
135
- : Buffer.from("01", "hex")),
136
- (0, ethereumjs_util_1.bigIntToBuffer)(receipt.cumulativeBlockGasUsed),
137
- receipt.bitvector,
138
- receipt.logs,
139
- ])));
140
- if (txType === 0) {
141
- return encoded;
142
- }
143
- // Serialize receipt according to EIP-2718:
144
- // `typed-receipt = tx-type || receipt-data`
145
- return Buffer.concat([(0, ethereumjs_util_1.intToBuffer)(txType), encoded]);
146
- }
147
- //# 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":"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"}
@@ -1,43 +0,0 @@
1
- /// <reference types="node" />
2
- import type { Message } from "@nomicfoundation/ethereumjs-evm";
3
- import type { RunTxResult } from "@nomicfoundation/ethereumjs-vm";
4
- import { Block } from "@nomicfoundation/ethereumjs-block";
5
- import { Common } from "@nomicfoundation/ethereumjs-common";
6
- import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
7
- import { Account, Address } from "@nomicfoundation/ethereumjs-util";
8
- import { RpcDebugTracingConfig } from "../../../core/jsonrpc/types/input/debugTraceTransaction";
9
- import { NodeConfig } from "../node-types";
10
- import { RpcDebugTraceOutput } from "../output";
11
- import { HardhatBlockchainInterface } from "../types/HardhatBlockchainInterface";
12
- import { VMAdapter } from "./vm-adapter";
13
- export declare class DualModeAdapter implements VMAdapter {
14
- private _ethereumJSAdapter;
15
- private _rethnetAdapter;
16
- constructor(_ethereumJSAdapter: VMAdapter, _rethnetAdapter: VMAdapter);
17
- static create(common: Common, blockchain: HardhatBlockchainInterface, config: NodeConfig, selectHardfork: (blockNumber: bigint) => string): Promise<DualModeAdapter>;
18
- dryRun(tx: TypedTransaction, blockContext: Block, forceBaseFeeZero?: boolean): Promise<RunTxResult>;
19
- getCommon(): Common;
20
- getStateRoot(): Promise<Buffer>;
21
- getAccount(address: Address): Promise<Account>;
22
- getContractStorage(address: Address, key: Buffer): Promise<Buffer>;
23
- getContractCode(address: Address): Promise<Buffer>;
24
- putAccount(address: Address, account: Account): Promise<void>;
25
- putContractCode(address: Address, value: Buffer): Promise<void>;
26
- putContractStorage(address: Address, key: Buffer, value: Buffer): Promise<void>;
27
- restoreContext(stateRoot: Buffer): Promise<void>;
28
- traceTransaction(hash: Buffer, block: Block, config: RpcDebugTracingConfig): Promise<RpcDebugTraceOutput>;
29
- enableTracing(callbacks: {
30
- beforeMessage: (message: Message, next: any) => Promise<void>;
31
- step: () => Promise<void>;
32
- afterMessage: () => Promise<void>;
33
- }): void;
34
- disableTracing(): void;
35
- setBlockContext(block: Block, irregularStateOrUndefined: Buffer | undefined): Promise<void>;
36
- isEip1559Active(blockNumberOrPending?: bigint | "pending"): boolean;
37
- startBlock(): Promise<void>;
38
- runTxInBlock(tx: TypedTransaction, block: Block): Promise<RunTxResult>;
39
- addBlockRewards(rewards: Array<[Address, bigint]>): Promise<void>;
40
- sealBlock(): Promise<void>;
41
- revertBlock(): Promise<void>;
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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"}
@@ -1,120 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DualModeAdapter = void 0;
4
- const ethereumjs_1 = require("./ethereumjs");
5
- const rethnet_1 = require("./rethnet");
6
- /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
7
- /* eslint-disable @typescript-eslint/restrict-template-expressions */
8
- class DualModeAdapter {
9
- constructor(_ethereumJSAdapter, _rethnetAdapter) {
10
- this._ethereumJSAdapter = _ethereumJSAdapter;
11
- this._rethnetAdapter = _rethnetAdapter;
12
- }
13
- static async create(common, blockchain, config, selectHardfork) {
14
- const ethereumJSAdapter = await ethereumjs_1.EthereumJSAdapter.create(common, blockchain, config, selectHardfork);
15
- const rethnetAdapter = await rethnet_1.RethnetAdapter.create(
16
- // eslint-disable-next-line @typescript-eslint/dot-notation
17
- ethereumJSAdapter["_stateManager"], blockchain, config, selectHardfork);
18
- return new DualModeAdapter(ethereumJSAdapter, rethnetAdapter);
19
- }
20
- async dryRun(tx, blockContext, forceBaseFeeZero) {
21
- const ethereumJSResult = await this._ethereumJSAdapter.dryRun(tx, blockContext, forceBaseFeeZero);
22
- const rethnetResult = await this._rethnetAdapter.dryRun(tx, blockContext, forceBaseFeeZero);
23
- assertEqualRunTxResults(ethereumJSResult, rethnetResult);
24
- return rethnetResult;
25
- }
26
- getCommon() {
27
- return this._ethereumJSAdapter.getCommon();
28
- }
29
- async getStateRoot() {
30
- return this._ethereumJSAdapter.getStateRoot();
31
- }
32
- async getAccount(address) {
33
- return this._ethereumJSAdapter.getAccount(address);
34
- }
35
- async getContractStorage(address, key) {
36
- return this._ethereumJSAdapter.getContractStorage(address, key);
37
- }
38
- async getContractCode(address) {
39
- return this._ethereumJSAdapter.getContractCode(address);
40
- }
41
- async putAccount(address, account) {
42
- return this._ethereumJSAdapter.putAccount(address, account);
43
- }
44
- async putContractCode(address, value) {
45
- return this._ethereumJSAdapter.putContractCode(address, value);
46
- }
47
- async putContractStorage(address, key, value) {
48
- return this._ethereumJSAdapter.putContractStorage(address, key, value);
49
- }
50
- async restoreContext(stateRoot) {
51
- return this._ethereumJSAdapter.restoreContext(stateRoot);
52
- }
53
- async traceTransaction(hash, block, config) {
54
- return this._ethereumJSAdapter.traceTransaction(hash, block, config);
55
- }
56
- enableTracing(callbacks) {
57
- return this._ethereumJSAdapter.enableTracing(callbacks);
58
- }
59
- disableTracing() {
60
- return this._ethereumJSAdapter.disableTracing();
61
- }
62
- async setBlockContext(block, irregularStateOrUndefined) {
63
- return this._ethereumJSAdapter.setBlockContext(block, irregularStateOrUndefined);
64
- }
65
- isEip1559Active(blockNumberOrPending) {
66
- return this._ethereumJSAdapter.isEip1559Active(blockNumberOrPending);
67
- }
68
- async startBlock() {
69
- return this._ethereumJSAdapter.startBlock();
70
- }
71
- async runTxInBlock(tx, block) {
72
- return this._ethereumJSAdapter.runTxInBlock(tx, block);
73
- }
74
- async addBlockRewards(rewards) {
75
- return this._ethereumJSAdapter.addBlockRewards(rewards);
76
- }
77
- async sealBlock() {
78
- return this._ethereumJSAdapter.sealBlock();
79
- }
80
- async revertBlock() {
81
- return this._ethereumJSAdapter.revertBlock();
82
- }
83
- }
84
- exports.DualModeAdapter = DualModeAdapter;
85
- function assertEqualRunTxResults(ethereumJSResult, rethnetResult) {
86
- if (ethereumJSResult.totalGasSpent !== rethnetResult.totalGasSpent) {
87
- console.trace(`Different totalGasSpent: ${ethereumJSResult.totalGasSpent} !== ${rethnetResult.totalGasSpent}`);
88
- throw new Error("Different totalGasSpent");
89
- }
90
- if (ethereumJSResult.gasRefund !== rethnetResult.gasRefund) {
91
- console.trace(`Different gasRefund: ${ethereumJSResult.gasRefund} !== ${rethnetResult.gasRefund}`);
92
- throw new Error("Different gasRefund");
93
- }
94
- if (ethereumJSResult.createdAddress?.toString() !==
95
- rethnetResult.createdAddress?.toString()) {
96
- console.trace(`Different createdAddress: ${ethereumJSResult.createdAddress?.toString()} !== ${rethnetResult.createdAddress?.toString()}`);
97
- throw new Error("Different createdAddress");
98
- }
99
- if (ethereumJSResult.execResult.exceptionError?.error !==
100
- rethnetResult.execResult.exceptionError?.error) {
101
- console.trace(`Different exceptionError.error: ${ethereumJSResult.execResult.exceptionError?.error} !== ${rethnetResult.execResult.exceptionError?.error}`);
102
- throw new Error("Different exceptionError.error");
103
- }
104
- if (ethereumJSResult.execResult.exceptionError?.errorType !==
105
- rethnetResult.execResult.exceptionError?.errorType) {
106
- console.trace(`Different exceptionError.errorType: ${ethereumJSResult.execResult.exceptionError?.errorType} !== ${rethnetResult.execResult.exceptionError?.errorType}`);
107
- throw new Error("Different exceptionError.errorType");
108
- }
109
- // TODO: we only compare the return values when a contract was *not* created,
110
- // because sometimes ethereumjs has the created bytecode in the return value
111
- // and rethnet doesn't
112
- if (ethereumJSResult.createdAddress === undefined) {
113
- if (ethereumJSResult.execResult.returnValue.toString("hex") !==
114
- rethnetResult.execResult.returnValue.toString("hex")) {
115
- console.trace(`Different returnValue: ${ethereumJSResult.execResult.returnValue.toString("hex")} !== ${rethnetResult.execResult.returnValue.toString("hex")}`);
116
- throw new Error("Different returnValue");
117
- }
118
- }
119
- }
120
- //# sourceMappingURL=dual.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dual.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/dual.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- /// <reference types="node" />
2
- import { Block } from "@nomicfoundation/ethereumjs-block";
3
- import { Common } from "@nomicfoundation/ethereumjs-common";
4
- import { EVMResult, InterpreterStep, Message } from "@nomicfoundation/ethereumjs-evm";
5
- import { StateManager } from "@nomicfoundation/ethereumjs-statemanager";
6
- import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
7
- import { Account, Address } from "@nomicfoundation/ethereumjs-util";
8
- import { RunTxResult, VM } from "@nomicfoundation/ethereumjs-vm";
9
- import { RpcDebugTracingConfig } from "../../../core/jsonrpc/types/input/debugTraceTransaction";
10
- import { NodeConfig } from "../node-types";
11
- import { RpcDebugTraceOutput } from "../output";
12
- import { HardhatBlockchainInterface } from "../types/HardhatBlockchainInterface";
13
- import { VMAdapter } from "./vm-adapter";
14
- interface TracingCallbacks {
15
- beforeMessage: (message: Message, next: any) => Promise<void>;
16
- step: (step: InterpreterStep, next: any) => Promise<void>;
17
- afterMessage: (result: EVMResult, next: any) => Promise<void>;
18
- }
19
- export declare class EthereumJSAdapter implements VMAdapter {
20
- private _vm;
21
- private _stateManager;
22
- private _blockchain;
23
- private readonly _configNetworkId;
24
- private readonly _configChainId;
25
- private readonly _selectHardfork;
26
- private _forkNetworkId?;
27
- private _forkBlockNumber?;
28
- private _tracingCallbacks;
29
- private _blockStartStateRoot;
30
- constructor(_vm: VM, _stateManager: StateManager, _blockchain: HardhatBlockchainInterface, _configNetworkId: number, _configChainId: number, _selectHardfork: (blockNumber: bigint) => string, _forkNetworkId?: number | undefined, _forkBlockNumber?: bigint | undefined);
31
- static create(common: Common, blockchain: HardhatBlockchainInterface, config: NodeConfig, selectHardfork: (blockNumber: bigint) => string): Promise<EthereumJSAdapter>;
32
- dryRun(tx: TypedTransaction, blockContext: Block, forceBaseFeeZero?: boolean): Promise<RunTxResult>;
33
- getCommon(): Common;
34
- getStateRoot(): Promise<Buffer>;
35
- getAccount(address: Address): Promise<Account>;
36
- getContractStorage(address: Address, key: Buffer): Promise<Buffer>;
37
- getContractCode(address: Address): Promise<Buffer>;
38
- putAccount(address: Address, account: Account): Promise<void>;
39
- putContractCode(address: Address, value: Buffer): Promise<void>;
40
- putContractStorage(address: Address, key: Buffer, value: Buffer): Promise<void>;
41
- restoreContext(stateRoot: Buffer): Promise<void>;
42
- enableTracing(callbacks: TracingCallbacks): void;
43
- disableTracing(): void;
44
- setBlockContext(block: Block, irregularStateOrUndefined: Buffer | undefined): Promise<void>;
45
- traceTransaction(hash: Buffer, block: Block, config: RpcDebugTracingConfig): Promise<RpcDebugTraceOutput>;
46
- isEip1559Active(blockNumberOrPending?: bigint | "pending"): boolean;
47
- startBlock(): Promise<void>;
48
- runTxInBlock(tx: TypedTransaction, block: Block): Promise<RunTxResult>;
49
- addBlockRewards(rewards: Array<[Address, bigint]>): Promise<void>;
50
- sealBlock(): Promise<void>;
51
- revertBlock(): Promise<void>;
52
- private _getCommonForTracing;
53
- }
54
- export {};
55
- //# sourceMappingURL=ethereumjs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ethereumjs.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/ethereumjs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAEL,SAAS,EACT,eAAe,EACf,OAAO,EACR,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAO,WAAW,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAQhG,OAAO,EAAsB,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAIhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAGjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,UAAU,gBAAgB;IACxB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,qBAAa,iBAAkB,YAAW,SAAS;IAM/C,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,gBAAgB,CAAC;IAZ3B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,OAAO,CAAC,oBAAoB,CAAqB;gBAGvC,GAAG,EAAE,EAAE,EACP,aAAa,EAAE,YAAY,EAC3B,WAAW,EAAE,0BAA0B,EAC9B,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,EACzD,cAAc,CAAC,oBAAQ,EACvB,gBAAgB,CAAC,oBAAQ;WAGf,MAAM,CACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,0BAA0B,EACtC,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAC9C,OAAO,CAAC,iBAAiB,CAAC;IAwDhB,MAAM,CACjB,EAAE,EAAE,gBAAgB,EACpB,YAAY,EAAE,KAAK,EACnB,gBAAgB,UAAQ,GACvB,OAAO,CAAC,WAAW,CAAC;IAgEhB,SAAS,IAAI,MAAM;IAIb,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9C,kBAAkB,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC;IAIL,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,kBAAkB,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAIH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD,aAAa,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAgBhD,cAAc,IAAI,IAAI;IAqBhB,eAAe,CAC1B,KAAK,EAAE,KAAK,EACZ,yBAAyB,EAAE,MAAM,GAAG,SAAS,GAC5C,OAAO,CAAC,IAAI,CAAC;IAcH,gBAAgB,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IA2ExB,eAAe,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAa7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,YAAY,CACvB,EAAE,EAAE,gBAAgB,EACpB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,WAAW,CAAC;IAIV,eAAe,CAC1B,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAQH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IASzC,OAAO,CAAC,oBAAoB;CAmB7B"}