diff --git a/CHANGELOG.md b/CHANGELOG.md index 3535feb4a83..831fed5b8a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -446,12 +446,13 @@ Released with 1.0.0-beta.37 code base. - lerna from 3.22.1 to 4.0.0 (#4231) - Dropped build tests in CI for Node v8 and v10, and added support for Node v14 - Change default value for `maxPriorityFeePerGas` from `1 Gwei` to `2.5 Gwei` (#4284) -- Fixed bug in signTransaction (#4295) -- Introduced new configuration "blockHeaderTimeout" for waiting of block headers for transaction receipt (#3891) - Fixed bug in signTransaction (#4295) +- Format `block.baseFeePerGas` to number (#4330) +- Introduced new configuration "blockHeaderTimeout" for waiting of block headers for transaction receipt (#3891) ## [Unreleased] ## [1.5.4] + ### Changed - Not considering `tx.chainId` if `tx.common.customChain.chainId` is provided for `web3.eth.accounts.signTransaction` function (#4293) diff --git a/docs/web3-eth.rst b/docs/web3-eth.rst index fa14f741ee4..73db060f9cb 100644 --- a/docs/web3-eth.rst +++ b/docs/web3-eth.rst @@ -996,6 +996,7 @@ Returns - ``number`` - ``Number``: The block number. ``null`` if a pending block. - ``hash`` 32 Bytes - ``String``: Hash of the block. ``null`` if a pending block. - ``parentHash`` 32 Bytes - ``String``: Hash of the parent block. + - ``baseFeePerGas`` - ``Number``: Minimum to be charged to send a transaction on the network - ``nonce`` 8 Bytes - ``String``: Hash of the generated proof-of-work. ``null`` if a pending block. - ``sha3Uncles`` 32 Bytes - ``String``: SHA3 of the uncles data in the block. - ``logsBloom`` 256 Bytes - ``String``: The bloom filter for the logs of the block. ``null`` if a pending block. @@ -1026,6 +1027,7 @@ Example "number": 3, "hash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46", "parentHash": "0x2302e1c0b972d00932deb5dab9eb2982f570597d9d42504c05d9c2147eaf9c88", + "baseFeePerGas": 58713056622, "nonce": "0xfb6e1a62d119228b", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", diff --git a/packages/web3-core-helpers/src/formatters.js b/packages/web3-core-helpers/src/formatters.js index 8947c68b94f..94b29cfa432 100644 --- a/packages/web3-core-helpers/src/formatters.js +++ b/packages/web3-core-helpers/src/formatters.js @@ -331,6 +331,9 @@ var outputBlockFormatter = function (block) { if (block.miner) block.miner = utils.toChecksumAddress(block.miner); + if (block.baseFeePerGas) + block.baseFeePerGas = utils.hexToNumber(block.baseFeePerGas) + return block; }; diff --git a/packages/web3-eth/types/index.d.ts b/packages/web3-eth/types/index.d.ts index ef5d86c0d0d..49c275e7211 100644 --- a/packages/web3-eth/types/index.d.ts +++ b/packages/web3-eth/types/index.d.ts @@ -409,6 +409,7 @@ export interface BlockHeader { gasLimit: number; gasUsed: number; timestamp: number | string; + baseFeePerGas?: number; } // TODO: This interface does exist to provide backwards-compatibility and can get removed on a minor release diff --git a/test/formatters.outputBlockFormatter.js b/test/formatters.outputBlockFormatter.js index d6bf27563de..6915be277df 100644 --- a/test/formatters.outputBlockFormatter.js +++ b/test/formatters.outputBlockFormatter.js @@ -77,5 +77,54 @@ describe('formatters', function () { size: 1000 }); }); + + it('should return the correct value, when baseFeePerGas is present', function () { + + assert.deepEqual(formatters.outputBlockFormatter({ + baseFeePerGas: "0x7", + difficulty: "0x6cd6be3a", + extraData: "0x796f75747562652e636f6d2f77617463683f763d6451773477395767586351", + gasLimit: "0x1c9c381", + gasUsed: "0x8dc073", + hash: "0x846880b1158f434884f3637802ed09bac77eafc35b5f03b881ac88ce38a54907", + logsBloom: "0x4020001000000000000000008000010000000000400200000001002140000008000000010000810020000840000204304000081000000b00400010000822200004200020020140000001000882000064000021303200020000400008800000000002202102000084010000090020a8000800002000000010000030300000000000000006001005000040080001010000010040018100004c0050004000000000420000000021000200000010020008100000004000080000000000000040000900080102004002000080210201081014004030200148101000002020108025000018020020102040000204240500010000002200048000401300080088000002", + miner: "0x86864f1edf10eaf105b1bdc6e9aa8232b4c6aa00", + mixHash: "0xa29afb1fa1aea9eeac72ff435a8fc420bbc1fa1be08223eb61f294ee32250bde", + nonce: "0x122af1a5ccd78f3b", + number: "0xa0d600", + parentHash: "0x28f49150e1fe6f245655925b290f59e707d1e5c646dadaa22937169433b30294", + receiptsRoot: "0xc97d4f9980d680053606318a5820261a1dccb556d1056b70f0d48fb384986be5", + sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + size: "0x2042", + stateRoot: "0x116981b10423133ade5bd44f03c54cc3c57f4467a1c3d4b0c6d8d33a76c361ad", + timestamp: "0x60dc24ec", + totalDifficulty: "0x78828f2d886cbb", + transactions: [], + transactionsRoot: "0x738f53f745d58169da93ebbd52cc49e0c979d6ca68a6513007b546b19ab78ba4", + uncles: [] + }), { + baseFeePerGas: 7, + difficulty: "1826012730", + extraData: "0x796f75747562652e636f6d2f77617463683f763d6451773477395767586351", + gasLimit: 30000001, + gasUsed: 9289843, + hash: "0x846880b1158f434884f3637802ed09bac77eafc35b5f03b881ac88ce38a54907", + logsBloom: "0x4020001000000000000000008000010000000000400200000001002140000008000000010000810020000840000204304000081000000b00400010000822200004200020020140000001000882000064000021303200020000400008800000000002202102000084010000090020a8000800002000000010000030300000000000000006001005000040080001010000010040018100004c0050004000000000420000000021000200000010020008100000004000080000000000000040000900080102004002000080210201081014004030200148101000002020108025000018020020102040000204240500010000002200048000401300080088000002", + miner: "0x86864F1edf10eAf105b1BDC6E9aA8232B4c6aA00", + mixHash: "0xa29afb1fa1aea9eeac72ff435a8fc420bbc1fa1be08223eb61f294ee32250bde", + nonce: "0x122af1a5ccd78f3b", + number: 10540544, + parentHash: "0x28f49150e1fe6f245655925b290f59e707d1e5c646dadaa22937169433b30294", + receiptsRoot: "0xc97d4f9980d680053606318a5820261a1dccb556d1056b70f0d48fb384986be5", + sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + size: 8258, + stateRoot: "0x116981b10423133ade5bd44f03c54cc3c57f4467a1c3d4b0c6d8d33a76c361ad", + timestamp: 1625040108, + totalDifficulty: "33920548661128379", + transactions: [], + transactionsRoot: "0x738f53f745d58169da93ebbd52cc49e0c979d6ca68a6513007b546b19ab78ba4", + uncles: [] + }); + }); }); });