Fixed EIP-1559 from address calculation bug (#1610).

This commit is contained in:
Richard Moore 2021-06-24 00:46:53 -04:00
parent 2a7ce0e72a
commit 319987ec3e
No known key found for this signature in database
GPG Key ID: 665176BE8E9DC651
3 changed files with 6 additions and 6 deletions

@ -71,7 +71,7 @@ interface _Block {
miner: string;
extraData: string;
baseFee?: null | BigNumber;
baseFeePerGas?: null | BigNumber;
}
export interface Block extends _Block {
@ -238,12 +238,12 @@ export abstract class Provider implements OnceBlockable {
let maxFeePerGas = null, maxPriorityFeePerGas = null;
if (block && block.baseFee) {
if (block && block.baseFeePerGas) {
// We may want to compute this more accurately in the future,
// using the formula "check if the base fee is correct".
// See: https://eips.ethereum.org/EIPS/eip-1559
maxPriorityFeePerGas = BigNumber.from("1000000000");
maxFeePerGas = block.baseFee.mul(2).add(maxPriorityFeePerGas);
maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);
}
return { maxFeePerGas, maxPriorityFeePerGas, gasPrice };

@ -145,7 +145,7 @@ export class Formatter {
transactions: Formatter.allowNull(Formatter.arrayOf(hash)),
baseFee: Formatter.allowNull(bigNumber)
baseFeePerGas: Formatter.allowNull(bigNumber)
};
formats.blockWithTransactions = shallowCopy(formats.block);

@ -362,7 +362,7 @@ function _parseEip1559(payload: Uint8Array): Transaction {
nonce: handleNumber(transaction[1]).toNumber(),
maxPriorityFeePerGas: maxPriorityFeePerGas,
maxFeePerGas: maxFeePerGas,
gasPrice: maxPriorityFeePerGas.add(maxFeePerGas),
gasPrice: maxFeePerGas,
gasLimit: handleNumber(transaction[4]),
to: handleAddress(transaction[5]),
value: handleNumber(transaction[6]),
@ -375,7 +375,7 @@ function _parseEip1559(payload: Uint8Array): Transaction {
tx.hash = keccak256(payload);
_parseEipSignature(tx, transaction.slice(9), _serializeEip2930);
_parseEipSignature(tx, transaction.slice(9), _serializeEip1559);
return tx;
}