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.
Files changed (72) hide show
  1. package/builtin-tasks/compile.js +18 -18
  2. package/builtin-tasks/compile.js.map +1 -1
  3. package/console.sol +3 -4
  4. package/internal/cli/analytics.d.ts +6 -6
  5. package/internal/cli/analytics.d.ts.map +1 -1
  6. package/internal/cli/analytics.js +43 -115
  7. package/internal/cli/analytics.js.map +1 -1
  8. package/internal/cli/bootstrap.js +0 -0
  9. package/internal/cli/cli.js +1 -1
  10. package/internal/cli/cli.js.map +1 -1
  11. package/internal/core/jsonrpc/types/input/blockTag.d.ts +3 -3
  12. package/internal/core/jsonrpc/types/input/filterRequest.d.ts +6 -6
  13. package/package.json +1 -3
  14. package/src/builtin-tasks/compile.ts +43 -35
  15. package/src/internal/cli/analytics.ts +82 -134
  16. package/src/internal/cli/cli.ts +1 -1
  17. package/internal/core/config/extenders.d.ts +0 -7
  18. package/internal/core/config/extenders.d.ts.map +0 -1
  19. package/internal/core/config/extenders.js +0 -16
  20. package/internal/core/config/extenders.js.map +0 -1
  21. package/internal/hardhat-network/provider/RethnetState.d.ts +0 -29
  22. package/internal/hardhat-network/provider/RethnetState.d.ts.map +0 -1
  23. package/internal/hardhat-network/provider/RethnetState.js +0 -110
  24. package/internal/hardhat-network/provider/RethnetState.js.map +0 -1
  25. package/internal/hardhat-network/provider/utils/bloom.d.ts +0 -32
  26. package/internal/hardhat-network/provider/utils/bloom.d.ts.map +0 -1
  27. package/internal/hardhat-network/provider/utils/bloom.js +0 -79
  28. package/internal/hardhat-network/provider/utils/bloom.js.map +0 -1
  29. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts +0 -17
  30. package/internal/hardhat-network/provider/utils/convertToRethnet.d.ts.map +0 -1
  31. package/internal/hardhat-network/provider/utils/convertToRethnet.js +0 -390
  32. package/internal/hardhat-network/provider/utils/convertToRethnet.js.map +0 -1
  33. package/internal/hardhat-network/provider/vm/block-builder/dual.d.ts +0 -14
  34. package/internal/hardhat-network/provider/vm/block-builder/dual.d.ts.map +0 -1
  35. package/internal/hardhat-network/provider/vm/block-builder/dual.js +0 -47
  36. package/internal/hardhat-network/provider/vm/block-builder/dual.js.map +0 -1
  37. package/internal/hardhat-network/provider/vm/block-builder/hardhat.d.ts +0 -27
  38. package/internal/hardhat-network/provider/vm/block-builder/hardhat.d.ts.map +0 -1
  39. package/internal/hardhat-network/provider/vm/block-builder/hardhat.js +0 -136
  40. package/internal/hardhat-network/provider/vm/block-builder/hardhat.js.map +0 -1
  41. package/internal/hardhat-network/provider/vm/block-builder/rethnet.d.ts +0 -20
  42. package/internal/hardhat-network/provider/vm/block-builder/rethnet.d.ts.map +0 -1
  43. package/internal/hardhat-network/provider/vm/block-builder/rethnet.js +0 -55
  44. package/internal/hardhat-network/provider/vm/block-builder/rethnet.js.map +0 -1
  45. package/internal/hardhat-network/provider/vm/block-builder.d.ts +0 -19
  46. package/internal/hardhat-network/provider/vm/block-builder.d.ts.map +0 -1
  47. package/internal/hardhat-network/provider/vm/block-builder.js +0 -24
  48. package/internal/hardhat-network/provider/vm/block-builder.js.map +0 -1
  49. package/internal/hardhat-network/provider/vm/creation.d.ts +0 -10
  50. package/internal/hardhat-network/provider/vm/creation.d.ts.map +0 -1
  51. package/internal/hardhat-network/provider/vm/creation.js +0 -29
  52. package/internal/hardhat-network/provider/vm/creation.js.map +0 -1
  53. package/internal/hardhat-network/provider/vm/dual.d.ts +0 -43
  54. package/internal/hardhat-network/provider/vm/dual.d.ts.map +0 -1
  55. package/internal/hardhat-network/provider/vm/dual.js +0 -487
  56. package/internal/hardhat-network/provider/vm/dual.js.map +0 -1
  57. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts +0 -61
  58. package/internal/hardhat-network/provider/vm/ethereumjs.d.ts.map +0 -1
  59. package/internal/hardhat-network/provider/vm/ethereumjs.js +0 -517
  60. package/internal/hardhat-network/provider/vm/ethereumjs.js.map +0 -1
  61. package/internal/hardhat-network/provider/vm/exit.d.ts +0 -24
  62. package/internal/hardhat-network/provider/vm/exit.d.ts.map +0 -1
  63. package/internal/hardhat-network/provider/vm/exit.js +0 -140
  64. package/internal/hardhat-network/provider/vm/exit.js.map +0 -1
  65. package/internal/hardhat-network/provider/vm/rethnet.d.ts +0 -87
  66. package/internal/hardhat-network/provider/vm/rethnet.d.ts.map +0 -1
  67. package/internal/hardhat-network/provider/vm/rethnet.js +0 -262
  68. package/internal/hardhat-network/provider/vm/rethnet.js.map +0 -1
  69. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts +0 -53
  70. package/internal/hardhat-network/provider/vm/vm-adapter.d.ts.map +0 -1
  71. package/internal/hardhat-network/provider/vm/vm-adapter.js +0 -3
  72. package/internal/hardhat-network/provider/vm/vm-adapter.js.map +0 -1
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RethnetStateManager = void 0;
4
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
5
- const rethnet_evm_1 = require("rethnet-evm");
6
- const makeForkClient_1 = require("./utils/makeForkClient");
7
- /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
8
- /* eslint-disable @typescript-eslint/no-unused-vars */
9
- class RethnetStateManager {
10
- constructor(_state) {
11
- this._state = _state;
12
- }
13
- static withGenesisAccounts(context, genesisAccounts) {
14
- return new RethnetStateManager(rethnet_evm_1.StateManager.withGenesisAccounts(context, genesisAccounts.map((account) => {
15
- return {
16
- privateKey: account.privateKey,
17
- balance: BigInt(account.balance),
18
- };
19
- })));
20
- }
21
- static async forkRemote(context, forkConfig, genesisAccounts) {
22
- let blockNumber;
23
- if (forkConfig.blockNumber !== undefined) {
24
- blockNumber = BigInt(forkConfig.blockNumber);
25
- }
26
- else {
27
- const { forkBlockNumber } = await (0, makeForkClient_1.makeForkProvider)(forkConfig);
28
- blockNumber = forkBlockNumber;
29
- }
30
- return new RethnetStateManager(rethnet_evm_1.StateManager.forkRemote(context, forkConfig.jsonRpcUrl, blockNumber, genesisAccounts.map((account) => {
31
- return {
32
- privateKey: account.privateKey,
33
- balance: BigInt(account.balance),
34
- };
35
- }))
36
- // TODO: consider changing StateManager.withFork() to also support
37
- // passing in (and of course using) forkConfig.httpHeaders.
38
- );
39
- }
40
- asInner() {
41
- return this._state;
42
- }
43
- async accountExists(address) {
44
- const account = await this._state.getAccountByAddress(address.buf);
45
- return account !== null;
46
- }
47
- async getAccount(address) {
48
- return this._state.getAccountByAddress(address.buf);
49
- }
50
- async getAccountStorageRoot(address) {
51
- return this._state.getAccountStorageRoot(address.buf);
52
- }
53
- async accountIsEmpty(address) {
54
- const account = await this._state.getAccountByAddress(address.buf);
55
- return (account === null ||
56
- (account.balance === 0n &&
57
- account.nonce === 0n &&
58
- account.code === undefined));
59
- }
60
- async deleteAccount(address) {
61
- await this._state.removeAccount(address.buf);
62
- }
63
- async makeSnapshot() {
64
- return this._state.makeSnapshot();
65
- }
66
- async removeSnapshot(stateRoot) {
67
- return this._state.removeSnapshot(stateRoot);
68
- }
69
- async modifyAccount(address, modifyAccountFn) {
70
- await this._state.modifyAccount(address.buf, modifyAccountFn);
71
- }
72
- async getContractCode(address) {
73
- const account = await this._state.getAccountByAddress(address.buf);
74
- if (account === null) {
75
- return Buffer.allocUnsafe(0);
76
- }
77
- if (account.code !== undefined) {
78
- return account.code.code;
79
- }
80
- return Buffer.from([]);
81
- }
82
- async getContractStorage(address, key) {
83
- const index = (0, ethereumjs_util_1.bufferToBigInt)(key);
84
- const value = await this._state.getAccountStorageSlot(address.buf, index);
85
- return (0, ethereumjs_util_1.toBuffer)(value);
86
- }
87
- async putContractStorage(address, key, value) {
88
- const index = (0, ethereumjs_util_1.bufferToBigInt)(key);
89
- const number = (0, ethereumjs_util_1.bufferToBigInt)(value);
90
- await this._state.setAccountStorageSlot(address.buf, index, number);
91
- }
92
- async checkpoint() {
93
- return this._state.checkpoint();
94
- }
95
- async commit() { }
96
- async revert() {
97
- return this._state.revert();
98
- }
99
- async getStateRoot() {
100
- return this._state.getStateRoot();
101
- }
102
- async setBlockContext(stateRoot, blockNumber) {
103
- return this._state.setBlockContext(stateRoot, blockNumber);
104
- }
105
- async serialize() {
106
- return this._state.serialize();
107
- }
108
- }
109
- exports.RethnetStateManager = RethnetStateManager;
110
- //# sourceMappingURL=RethnetState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RethnetState.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/RethnetState.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /// <reference types="node" />
2
- export declare class Bloom {
3
- bitvector: Buffer;
4
- /**
5
- * Represents a Bloom filter.
6
- */
7
- constructor(bitvector?: Buffer);
8
- /**
9
- * Adds an element to a bit vector of a 64 byte bloom filter.
10
- * @param e - The element to add
11
- */
12
- add(e: Buffer): void;
13
- /**
14
- * Checks if an element is in the bloom.
15
- * @param e - The element to check
16
- */
17
- check(e: Buffer): boolean;
18
- /**
19
- * Checks if multiple topics are in a bloom.
20
- * @returns `true` if every topic is in the bloom
21
- */
22
- multiCheck(topics: Buffer[]): boolean;
23
- /**
24
- * Bitwise or blooms together.
25
- */
26
- or(bloom: Bloom): void;
27
- /**
28
- * Checks equality with another bloom.
29
- */
30
- equals(otherBloom: Bloom): boolean;
31
- }
32
- //# sourceMappingURL=bloom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bloom.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/bloom.ts"],"names":[],"mappings":";AAYA,qBAAa,KAAK;IACT,SAAS,EAAE,MAAM,CAAC;IAEzB;;OAEG;gBACS,SAAS,CAAC,EAAE,MAAM;IAY9B;;;OAGG;IACI,GAAG,CAAC,CAAC,EAAE,MAAM;IAapB;;;OAGG;IACI,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAgBhC;;;OAGG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;IAI5C;;OAEG;IACI,EAAE,CAAC,KAAK,EAAE,KAAK;IAMtB;;OAEG;IACI,MAAM,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;CAG1C"}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- // This code was adapted from ethereumjs and is distributed under their license: https://github.com/ethereumjs/ethereumjs-monorepo/blob/161a4029c2fc24e5d04da6ad3aab4ac3c72af0f8/packages/vm/LICENSE
3
- // For the original context see: https://github.com/ethereumjs/ethereumjs-monorepo/blob/161a4029c2fc24e5d04da6ad3aab4ac3c72af0f8/packages/vm/src/bloom/index.ts
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.Bloom = void 0;
6
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
7
- const keccak_1 = require("ethereum-cryptography/keccak");
8
- const errors_1 = require("../../../core/errors");
9
- /* eslint-disable no-bitwise */
10
- const BYTE_SIZE = 256;
11
- class Bloom {
12
- /**
13
- * Represents a Bloom filter.
14
- */
15
- constructor(bitvector) {
16
- if (bitvector === undefined) {
17
- this.bitvector = (0, ethereumjs_util_1.zeros)(BYTE_SIZE);
18
- }
19
- else {
20
- (0, errors_1.assertHardhatInvariant)(bitvector.length === BYTE_SIZE, "bitvectors must be 2048 bits long");
21
- this.bitvector = bitvector;
22
- }
23
- }
24
- /**
25
- * Adds an element to a bit vector of a 64 byte bloom filter.
26
- * @param e - The element to add
27
- */
28
- add(e) {
29
- e = Buffer.from((0, keccak_1.keccak256)(e));
30
- const mask = 2047; // binary 11111111111
31
- for (let i = 0; i < 3; i++) {
32
- const first2bytes = e.readUInt16BE(i * 2);
33
- const loc = mask & first2bytes;
34
- const byteLoc = loc >> 3;
35
- const bitLoc = 1 << loc % 8;
36
- this.bitvector[BYTE_SIZE - byteLoc - 1] |= bitLoc;
37
- }
38
- }
39
- /**
40
- * Checks if an element is in the bloom.
41
- * @param e - The element to check
42
- */
43
- check(e) {
44
- e = Buffer.from((0, keccak_1.keccak256)(e));
45
- const mask = 2047; // binary 11111111111
46
- let match = true;
47
- for (let i = 0; i < 3 && match; i++) {
48
- const first2bytes = e.readUInt16BE(i * 2);
49
- const loc = mask & first2bytes;
50
- const byteLoc = loc >> 3;
51
- const bitLoc = 1 << loc % 8;
52
- match = (this.bitvector[BYTE_SIZE - byteLoc - 1] & bitLoc) !== 0;
53
- }
54
- return Boolean(match);
55
- }
56
- /**
57
- * Checks if multiple topics are in a bloom.
58
- * @returns `true` if every topic is in the bloom
59
- */
60
- multiCheck(topics) {
61
- return topics.every((t) => this.check(t));
62
- }
63
- /**
64
- * Bitwise or blooms together.
65
- */
66
- or(bloom) {
67
- for (let i = 0; i <= BYTE_SIZE; i++) {
68
- this.bitvector[i] = this.bitvector[i] | bloom.bitvector[i];
69
- }
70
- }
71
- /**
72
- * Checks equality with another bloom.
73
- */
74
- equals(otherBloom) {
75
- return this.bitvector.equals(otherBloom.bitvector);
76
- }
77
- }
78
- exports.Bloom = Bloom;
79
- //# sourceMappingURL=bloom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bloom.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/bloom.ts"],"names":[],"mappings":";AAAA,oMAAoM;AACpM,+JAA+J;;;AAE/J,sEAAyD;AACzD,yDAAyD;AAEzD,iDAA8D;AAE9D,+BAA+B;AAE/B,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,MAAa,KAAK;IAGhB;;OAEG;IACH,YAAY,SAAkB;QAC5B,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAA,uBAAK,EAAC,SAAS,CAAC,CAAC;SACnC;aAAM;YACL,IAAA,+BAAsB,EACpB,SAAS,CAAC,MAAM,KAAK,SAAS,EAC9B,mCAAmC,CACpC,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;IACH,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,CAAS;QAClB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,qBAAqB;QAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,WAAW,CAAC;YAC/B,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC;SACnD;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,CAAS;QACpB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,qBAAqB;QACxC,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,WAAW,CAAC;YAC/B,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YAC5B,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;SAClE;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,MAAgB;QAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,EAAE,CAAC,KAAY;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC5D;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,UAAiB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF;AA9ED,sBA8EC"}
@@ -1,17 +0,0 @@
1
- /// <reference types="node" />
2
- import { Block as EthereumJSBlock, BlockHeader as EthereumJSBlockHeader, HeaderData as EthereumJSHeaderData } from "@nomicfoundation/ethereumjs-block";
3
- import { Common } from "@nomicfoundation/ethereumjs-common";
4
- import { TypedTransaction } from "@nomicfoundation/ethereumjs-tx";
5
- import { Block as RethnetBlock, BlockConfig, BlockHeader as RethnetBlockHeader, BlockOptions, ExecutionResult, SpecId, TransactionRequest, PendingTransaction } from "rethnet-evm";
6
- import { HardforkName } from "../../../util/hardforks";
7
- import { RunTxResult } from "../vm/vm-adapter";
8
- export declare function ethereumjsBlockHeaderToRethnet(blockHeader: EthereumJSBlockHeader): RethnetBlockHeader;
9
- export declare function rethnetBlockHeaderToEthereumJSBlockData(blockHeader: RethnetBlockHeader): EthereumJSHeaderData;
10
- export declare function ethereumsjsHardforkToRethnet(hardfork: HardforkName): SpecId;
11
- export declare function ethereumjsHeaderDataToRethnetBlockConfig(headerData?: EthereumJSHeaderData, difficulty?: bigint, mixHash?: Buffer): BlockConfig;
12
- export declare function ethereumjsHeaderDataToRethnetBlockOptions(headerData?: EthereumJSHeaderData): BlockOptions;
13
- export declare function ethereumjsTransactionToRethnetPendingTransaction(tx: TypedTransaction): PendingTransaction;
14
- export declare function ethereumjsTransactionToRethnetTransactionRequest(tx: TypedTransaction): TransactionRequest;
15
- export declare function rethnetBlockToEthereumJS(block: RethnetBlock, common: Common): EthereumJSBlock;
16
- export declare function rethnetResultToRunTxResult(rethnetResult: ExecutionResult, blockGasUsed: bigint): RunTxResult;
17
- //# sourceMappingURL=convertToRethnet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertToRethnet.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToRethnet.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,KAAK,IAAI,eAAe,EACxB,WAAW,IAAI,qBAAqB,EACpC,UAAU,IAAI,oBAAoB,EACnC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAGL,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EACL,KAAK,IAAI,YAAY,EACrB,WAAW,EACX,WAAW,IAAI,kBAAkB,EACjC,YAAY,EACZ,eAAe,EAEf,MAAM,EACN,kBAAkB,EAIlB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,qBAAqB,GACjC,kBAAkB,CAmBpB;AAED,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,kBAAkB,GAC9B,oBAAoB,CAmBtB;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAwC3E;AAED,wBAAgB,wCAAwC,CACtD,UAAU,CAAC,EAAE,oBAAoB,EACjC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,WAAW,CAgBb;AAED,wBAAgB,yCAAyC,CACvD,UAAU,CAAC,EAAE,oBAAoB,GAChC,YAAY,CA6Bd;AAED,wBAAgB,gDAAgD,CAC9D,EAAE,EAAE,gBAAgB,GACnB,kBAAkB,CAmEpB;AAED,wBAAgB,gDAAgD,CAC9D,EAAE,EAAE,gBAAgB,GACnB,kBAAkB,CA+CpB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,GACb,eAAe,CAgBjB;AAaD,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,eAAe,EAC9B,YAAY,EAAE,MAAM,GACnB,WAAW,CA0Cb"}
@@ -1,390 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rethnetResultToRunTxResult = exports.rethnetBlockToEthereumJS = exports.ethereumjsTransactionToRethnetTransactionRequest = exports.ethereumjsTransactionToRethnetPendingTransaction = exports.ethereumjsHeaderDataToRethnetBlockOptions = exports.ethereumjsHeaderDataToRethnetBlockConfig = exports.ethereumsjsHardforkToRethnet = exports.rethnetBlockHeaderToEthereumJSBlockData = exports.ethereumjsBlockHeaderToRethnet = void 0;
4
- const ethereumjs_block_1 = require("@nomicfoundation/ethereumjs-block");
5
- const ethereumjs_tx_1 = require("@nomicfoundation/ethereumjs-tx");
6
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
7
- const bigint_1 = require("../../../util/bigint");
8
- const hardforks_1 = require("../../../util/hardforks");
9
- const message_trace_1 = require("../../stack-traces/message-trace");
10
- const exit_1 = require("../vm/exit");
11
- const FakeSenderEIP1559Transaction_1 = require("../transactions/FakeSenderEIP1559Transaction");
12
- const FakeSenderAccessListEIP2930Transaction_1 = require("../transactions/FakeSenderAccessListEIP2930Transaction");
13
- const FakeSenderTransaction_1 = require("../transactions/FakeSenderTransaction");
14
- const bloom_1 = require("./bloom");
15
- /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
16
- function ethereumjsBlockHeaderToRethnet(blockHeader) {
17
- return {
18
- parentHash: blockHeader.parentHash,
19
- ommersHash: blockHeader.uncleHash,
20
- beneficiary: blockHeader.coinbase.buf,
21
- stateRoot: blockHeader.stateRoot,
22
- transactionsRoot: blockHeader.transactionsTrie,
23
- receiptsRoot: blockHeader.receiptTrie,
24
- logsBloom: blockHeader.logsBloom,
25
- difficulty: blockHeader.difficulty,
26
- number: blockHeader.number,
27
- gasLimit: blockHeader.gasLimit,
28
- gasUsed: blockHeader.gasUsed,
29
- timestamp: blockHeader.timestamp,
30
- extraData: blockHeader.extraData,
31
- mixHash: blockHeader.mixHash,
32
- nonce: blockHeader.nonce,
33
- baseFeePerGas: blockHeader.baseFeePerGas,
34
- };
35
- }
36
- exports.ethereumjsBlockHeaderToRethnet = ethereumjsBlockHeaderToRethnet;
37
- function rethnetBlockHeaderToEthereumJSBlockData(blockHeader) {
38
- return {
39
- parentHash: blockHeader.parentHash,
40
- uncleHash: blockHeader.ommersHash,
41
- coinbase: new ethereumjs_util_1.Address(blockHeader.beneficiary),
42
- stateRoot: blockHeader.stateRoot,
43
- transactionsTrie: blockHeader.transactionsRoot,
44
- receiptTrie: blockHeader.receiptsRoot,
45
- logsBloom: blockHeader.logsBloom,
46
- difficulty: blockHeader.difficulty,
47
- number: blockHeader.number,
48
- gasLimit: blockHeader.gasLimit,
49
- gasUsed: blockHeader.gasUsed,
50
- timestamp: blockHeader.timestamp,
51
- extraData: blockHeader.extraData,
52
- mixHash: blockHeader.mixHash,
53
- nonce: blockHeader.nonce,
54
- baseFeePerGas: blockHeader.baseFeePerGas,
55
- };
56
- }
57
- exports.rethnetBlockHeaderToEthereumJSBlockData = rethnetBlockHeaderToEthereumJSBlockData;
58
- function ethereumsjsHardforkToRethnet(hardfork) {
59
- switch (hardfork) {
60
- case hardforks_1.HardforkName.FRONTIER:
61
- return 0 /* SpecId.Frontier */;
62
- case hardforks_1.HardforkName.HOMESTEAD:
63
- return 2 /* SpecId.Homestead */;
64
- case hardforks_1.HardforkName.DAO:
65
- return 3 /* SpecId.DaoFork */;
66
- case hardforks_1.HardforkName.TANGERINE_WHISTLE:
67
- return 4 /* SpecId.Tangerine */;
68
- case hardforks_1.HardforkName.SPURIOUS_DRAGON:
69
- return 5 /* SpecId.SpuriousDragon */;
70
- case hardforks_1.HardforkName.BYZANTIUM:
71
- return 6 /* SpecId.Byzantium */;
72
- case hardforks_1.HardforkName.CONSTANTINOPLE:
73
- return 7 /* SpecId.Constantinople */;
74
- case hardforks_1.HardforkName.PETERSBURG:
75
- return 8 /* SpecId.Petersburg */;
76
- case hardforks_1.HardforkName.ISTANBUL:
77
- return 9 /* SpecId.Istanbul */;
78
- case hardforks_1.HardforkName.MUIR_GLACIER:
79
- return 10 /* SpecId.MuirGlacier */;
80
- case hardforks_1.HardforkName.BERLIN:
81
- return 11 /* SpecId.Berlin */;
82
- case hardforks_1.HardforkName.LONDON:
83
- return 12 /* SpecId.London */;
84
- case hardforks_1.HardforkName.ARROW_GLACIER:
85
- return 13 /* SpecId.ArrowGlacier */;
86
- case hardforks_1.HardforkName.GRAY_GLACIER:
87
- return 14 /* SpecId.GrayGlacier */;
88
- case hardforks_1.HardforkName.MERGE:
89
- return 15 /* SpecId.Merge */;
90
- case hardforks_1.HardforkName.SHANGHAI:
91
- return 16 /* SpecId.Shanghai */;
92
- default:
93
- const _exhaustiveCheck = hardfork;
94
- throw new Error(`Unknown hardfork name '${hardfork}', this shouldn't happen`);
95
- }
96
- }
97
- exports.ethereumsjsHardforkToRethnet = ethereumsjsHardforkToRethnet;
98
- function ethereumjsHeaderDataToRethnetBlockConfig(headerData, difficulty, mixHash) {
99
- const beneficiary = headerData?.coinbase === undefined
100
- ? undefined
101
- : (0, ethereumjs_util_1.toBuffer)(headerData.coinbase);
102
- return {
103
- number: (0, bigint_1.fromBigIntLike)(headerData?.number),
104
- beneficiary,
105
- timestamp: (0, bigint_1.fromBigIntLike)(headerData?.timestamp),
106
- difficulty,
107
- mixHash,
108
- baseFee: (0, bigint_1.fromBigIntLike)(headerData?.baseFeePerGas),
109
- gasLimit: (0, bigint_1.fromBigIntLike)(headerData?.gasLimit),
110
- parentHash: headerData?.parentHash,
111
- };
112
- }
113
- exports.ethereumjsHeaderDataToRethnetBlockConfig = ethereumjsHeaderDataToRethnetBlockConfig;
114
- function ethereumjsHeaderDataToRethnetBlockOptions(headerData) {
115
- if (headerData === undefined) {
116
- return {};
117
- }
118
- // Ensure that we leave leave options undefined, as opposed to `toBuffer`
119
- function fromBufferLike(bufferLike) {
120
- if (bufferLike === undefined) {
121
- return bufferLike;
122
- }
123
- return (0, ethereumjs_util_1.toBuffer)(bufferLike);
124
- }
125
- return {
126
- parentHash: fromBufferLike(headerData.parentHash),
127
- beneficiary: fromBufferLike(headerData.coinbase),
128
- stateRoot: fromBufferLike(headerData.stateRoot),
129
- receiptsRoot: fromBufferLike(headerData.receiptTrie),
130
- logsBloom: fromBufferLike(headerData.logsBloom),
131
- difficulty: (0, bigint_1.fromBigIntLike)(headerData.difficulty),
132
- number: (0, bigint_1.fromBigIntLike)(headerData.number),
133
- gasLimit: (0, bigint_1.fromBigIntLike)(headerData.gasLimit),
134
- timestamp: (0, bigint_1.fromBigIntLike)(headerData.timestamp),
135
- extraData: fromBufferLike(headerData.extraData),
136
- mixHash: fromBufferLike(headerData.mixHash),
137
- nonce: fromBufferLike(headerData.nonce),
138
- baseFee: (0, bigint_1.fromBigIntLike)(headerData.baseFeePerGas),
139
- };
140
- }
141
- exports.ethereumjsHeaderDataToRethnetBlockOptions = ethereumjsHeaderDataToRethnetBlockOptions;
142
- function ethereumjsTransactionToRethnetPendingTransaction(tx) {
143
- const caller = tx.getSenderAddress().toBuffer();
144
- if (tx instanceof ethereumjs_tx_1.AccessListEIP2930Transaction) {
145
- const transaction = {
146
- chainId: tx.chainId,
147
- nonce: tx.nonce,
148
- gasPrice: tx.gasPrice,
149
- gasLimit: tx.gasLimit,
150
- to: tx.to?.buf,
151
- value: tx.value,
152
- input: tx.data,
153
- accessList: tx.accessList.map((value, _index, _array) => {
154
- return {
155
- address: value[0],
156
- storageKeys: value[1],
157
- };
158
- }),
159
- oddYParity: (tx.v ?? BigInt(0)) > 0,
160
- r: (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.toBuffer)(tx.r ?? BigInt(0)), 32),
161
- s: (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.toBuffer)(tx.s ?? BigInt(0)), 32),
162
- };
163
- return {
164
- transaction,
165
- caller,
166
- };
167
- }
168
- else if (tx instanceof ethereumjs_tx_1.FeeMarketEIP1559Transaction) {
169
- return {
170
- transaction: {
171
- chainId: tx.chainId,
172
- nonce: tx.nonce,
173
- maxPriorityFeePerGas: tx.maxPriorityFeePerGas,
174
- maxFeePerGas: tx.maxFeePerGas,
175
- gasLimit: tx.gasLimit,
176
- to: tx.to?.buf,
177
- value: tx.value,
178
- input: tx.data,
179
- accessList: tx.accessList.map((value, _index, _array) => {
180
- return {
181
- address: value[0],
182
- storageKeys: value[1],
183
- };
184
- }),
185
- oddYParity: (tx.v ?? BigInt(0)) > 0,
186
- r: (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.toBuffer)(tx.r ?? BigInt(0)), 32),
187
- s: (0, ethereumjs_util_1.setLengthLeft)((0, ethereumjs_util_1.toBuffer)(tx.s ?? BigInt(0)), 32),
188
- },
189
- caller,
190
- };
191
- }
192
- else {
193
- return {
194
- transaction: {
195
- nonce: tx.nonce,
196
- gasPrice: tx.gasPrice,
197
- gasLimit: tx.gasLimit,
198
- to: tx.to?.buf,
199
- value: tx.value,
200
- input: tx.data,
201
- signature: {
202
- r: tx.r,
203
- s: tx.s,
204
- v: tx.v,
205
- },
206
- },
207
- caller,
208
- };
209
- }
210
- }
211
- exports.ethereumjsTransactionToRethnetPendingTransaction = ethereumjsTransactionToRethnetPendingTransaction;
212
- function ethereumjsTransactionToRethnetTransactionRequest(tx) {
213
- if (tx instanceof ethereumjs_tx_1.AccessListEIP2930Transaction) {
214
- return {
215
- chainId: tx.chainId,
216
- nonce: tx.nonce,
217
- gasPrice: tx.gasPrice,
218
- gasLimit: tx.gasLimit,
219
- from: tx.getSenderAddress().toBuffer(),
220
- to: tx.to?.buf,
221
- value: tx.value,
222
- input: tx.data,
223
- accessList: tx.accessList.map((value, _index, _array) => {
224
- return {
225
- address: value[0],
226
- storageKeys: value[1],
227
- };
228
- }),
229
- };
230
- }
231
- else if (tx instanceof ethereumjs_tx_1.FeeMarketEIP1559Transaction) {
232
- return {
233
- chainId: tx.chainId,
234
- nonce: tx.nonce,
235
- gasPriorityFee: tx.maxPriorityFeePerGas,
236
- gasPrice: tx.maxFeePerGas,
237
- gasLimit: tx.gasLimit,
238
- from: tx.getSenderAddress().toBuffer(),
239
- to: tx.to?.buf,
240
- value: tx.value,
241
- input: tx.data,
242
- accessList: tx.accessList.map((value, _index, _array) => {
243
- return {
244
- address: value[0],
245
- storageKeys: value[1],
246
- };
247
- }),
248
- };
249
- }
250
- else {
251
- return {
252
- nonce: tx.nonce,
253
- gasPrice: tx.gasPrice,
254
- gasLimit: tx.gasLimit,
255
- from: tx.getSenderAddress().toBuffer(),
256
- to: tx.to?.buf,
257
- value: tx.value,
258
- input: tx.data,
259
- };
260
- }
261
- }
262
- exports.ethereumjsTransactionToRethnetTransactionRequest = ethereumjsTransactionToRethnetTransactionRequest;
263
- function rethnetBlockToEthereumJS(block, common) {
264
- const callers = block.callers;
265
- const blockData = {
266
- header: rethnetBlockHeaderToEthereumJSBlockData(block.header),
267
- transactions: block.transactions.map((transaction, index, _array) => {
268
- return rethnetSignedTransactionToEthereumJSTypedTransaction(transaction, new ethereumjs_util_1.Address(callers[index]));
269
- }),
270
- };
271
- return ethereumjs_block_1.Block.fromBlockData(blockData, {
272
- common,
273
- skipConsensusFormatValidation: true,
274
- });
275
- }
276
- exports.rethnetBlockToEthereumJS = rethnetBlockToEthereumJS;
277
- function rethnetLogsToBloom(logs) {
278
- const bloom = new bloom_1.Bloom();
279
- for (const log of logs) {
280
- bloom.add(log.address);
281
- for (const topic of log.topics) {
282
- bloom.add(topic);
283
- }
284
- }
285
- return bloom;
286
- }
287
- function rethnetResultToRunTxResult(rethnetResult, blockGasUsed) {
288
- const createdAddress = (0, message_trace_1.isSuccessResult)(rethnetResult.result) &&
289
- (0, message_trace_1.isCreateOutput)(rethnetResult.result.output)
290
- ? rethnetResult.result.output.address
291
- : undefined;
292
- const exit = (0, message_trace_1.isSuccessResult)(rethnetResult.result)
293
- ? exit_1.Exit.fromRethnetSuccessReason(rethnetResult.result.reason)
294
- : (0, message_trace_1.isHaltResult)(rethnetResult.result)
295
- ? exit_1.Exit.fromRethnetExceptionalHalt(rethnetResult.result.reason)
296
- : new exit_1.Exit(exit_1.ExitCode.REVERT);
297
- const returnValue = (0, message_trace_1.isRevertResult)(rethnetResult.result)
298
- ? rethnetResult.result.output
299
- : (0, message_trace_1.isSuccessResult)(rethnetResult.result)
300
- ? rethnetResult.result.output.returnValue
301
- : Buffer.from([]);
302
- const bloom = (0, message_trace_1.isSuccessResult)(rethnetResult.result)
303
- ? rethnetLogsToBloom(rethnetResult.result.logs)
304
- : new bloom_1.Bloom(undefined);
305
- return {
306
- gasUsed: rethnetResult.result.gasUsed,
307
- createdAddress: createdAddress !== undefined ? new ethereumjs_util_1.Address(createdAddress) : undefined,
308
- exit,
309
- returnValue,
310
- bloom,
311
- receipt: {
312
- // Receipts have a 0 as status on error
313
- status: exit.isError() ? 0 : 1,
314
- cumulativeBlockGasUsed: blockGasUsed + rethnetResult.result.gasUsed,
315
- bitvector: bloom.bitvector,
316
- logs: (0, message_trace_1.isSuccessResult)(rethnetResult.result)
317
- ? rethnetResult.result.logs.map((log) => {
318
- return [log.address, log.topics, log.data];
319
- })
320
- : [],
321
- },
322
- };
323
- }
324
- exports.rethnetResultToRunTxResult = rethnetResultToRunTxResult;
325
- function rethnetSignedTransactionToEthereumJSTypedTransaction(transaction, caller) {
326
- if (isEip1559SignedTransaction(transaction)) {
327
- return new FakeSenderEIP1559Transaction_1.FakeSenderEIP1559Transaction(caller, {
328
- maxPriorityFeePerGas: transaction.maxPriorityFeePerGas,
329
- maxFeePerGas: transaction.maxFeePerGas,
330
- chainId: transaction.chainId,
331
- accessList: transaction.accessList.map((value, _index, _array) => {
332
- return [value.address, value.storageKeys];
333
- }),
334
- nonce: transaction.nonce,
335
- gasLimit: transaction.gasLimit,
336
- to: transaction.to,
337
- value: transaction.value,
338
- data: transaction.input,
339
- v: BigInt(transaction.oddYParity),
340
- r: transaction.r,
341
- s: transaction.s,
342
- });
343
- }
344
- else if (isEip2930SignedTransaction(transaction)) {
345
- return new FakeSenderAccessListEIP2930Transaction_1.FakeSenderAccessListEIP2930Transaction(caller, {
346
- chainId: transaction.chainId,
347
- accessList: transaction.accessList.map((value, _index, _array) => {
348
- return [value.address, value.storageKeys];
349
- }),
350
- nonce: transaction.nonce,
351
- gasPrice: transaction.gasPrice,
352
- gasLimit: transaction.gasLimit,
353
- to: transaction.to,
354
- value: transaction.value,
355
- data: transaction.input,
356
- v: BigInt(transaction.oddYParity),
357
- r: transaction.r,
358
- s: transaction.s,
359
- });
360
- }
361
- else if (isLegacySignedTransaction(transaction)) {
362
- return new FakeSenderTransaction_1.FakeSenderTransaction(caller, {
363
- nonce: transaction.nonce,
364
- gasPrice: transaction.gasPrice,
365
- gasLimit: transaction.gasLimit,
366
- to: transaction.to,
367
- value: transaction.value,
368
- data: transaction.input,
369
- v: transaction.signature.v,
370
- r: transaction.signature.r,
371
- s: transaction.signature.s,
372
- });
373
- }
374
- else {
375
- throw new Error("Unknown signed transaction type");
376
- }
377
- }
378
- function isLegacySignedTransaction(transaction) {
379
- // Only need to check for one unique field
380
- return "signature" in transaction;
381
- }
382
- function isEip1559SignedTransaction(transaction) {
383
- // Only need to check for one unique field
384
- return "maxPriorityFeePerGas" in transaction;
385
- }
386
- function isEip2930SignedTransaction(transaction) {
387
- // Only need to check for one unique field
388
- return (!isEip1559SignedTransaction(transaction) && "oddYParity" in transaction);
389
- }
390
- //# sourceMappingURL=convertToRethnet.js.map