From 852dba30f0120b7b41879ad26224a01362e1875e Mon Sep 17 00:00:00 2001 From: Jack Date: Mon, 23 Aug 2021 15:04:28 +0800 Subject: [PATCH] support eip-1559 --- packages/hdwallet-provider/src/index.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/hdwallet-provider/src/index.ts b/packages/hdwallet-provider/src/index.ts index 8631c268648..9c8ef9a15d4 100644 --- a/packages/hdwallet-provider/src/index.ts +++ b/packages/hdwallet-provider/src/index.ts @@ -3,7 +3,7 @@ import { wordlist } from "ethereum-cryptography/bip39/wordlists/english"; import * as EthUtil from "ethereumjs-util"; import ethJSWallet from "ethereumjs-wallet"; import { hdkey as EthereumHDKey } from "ethereumjs-wallet"; -import { Transaction } from "@ethereumjs/tx"; +import { Transaction, FeeMarketEIP1559Transaction } from "@ethereumjs/tx"; import Common from "@ethereumjs/common"; // @ts-ignore @@ -125,7 +125,7 @@ class HDWalletProvider { this.hardfork = chainSettings && chainSettings.hardfork ? chainSettings.hardfork - : "istanbul"; + : "london"; const self = this; this.engine.addProvider( @@ -170,7 +170,13 @@ class HDWalletProvider { ) }; } - const tx = Transaction.fromTxData(txParams, txOptions); + + // Taken from https://github.com/ethers-io/ethers.js/blob/2a7ce0e72a1e0c9469e10392b0329e75e341cf18/packages/abstract-signer/src.ts/index.ts#L215 + const hasEip1559 = (txParams.maxFeePerGas !== undefined || txParams.maxPriorityFeePerGas !== undefined); + const tx = hasEip1559 ? + FeeMarketEIP1559Transaction.fromTxData(txParams, txOptions) : + Transaction.fromTxData(txParams, txOptions); + const signedTx = tx.sign(pkey as Buffer); const rawTx = `0x${signedTx.serialize().toString("hex")}`; cb(null, rawTx);