Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Format baseFeePerGas to number in returned blocks - Closes #4326 #4330

Merged
merged 8 commits into from
Sep 24, 2021
Merged
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
2 changes: 2 additions & 0 deletions docs/web3-eth.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -1026,6 +1027,7 @@ Example
"number": 3,
"hash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46",
"parentHash": "0x2302e1c0b972d00932deb5dab9eb2982f570597d9d42504c05d9c2147eaf9c88",
"baseFeePerGas": 58713056622,
"nonce": "0xfb6e1a62d119228b",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
Expand Down
3 changes: 3 additions & 0 deletions packages/web3-core-helpers/src/formatters.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};

Expand Down
1 change: 1 addition & 0 deletions packages/web3-eth/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
49 changes: 49 additions & 0 deletions test/formatters.outputBlockFormatter.js
Original file line number Diff line number Diff line change
Expand Up @@ -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: []
});
});
});
});