Skip to content

Commit

Permalink
Add baseFee to SignTx
Browse files Browse the repository at this point in the history
Signed-off-by: Oliver Tale-Yazdi <oliver@perun.network>
  • Loading branch information
ggwpez committed Jun 14, 2021
1 parent 8dd49aa commit 56a4d34
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
12 changes: 6 additions & 6 deletions hdwallet.go
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ func (w *Wallet) SignHash(account accounts.Account, hash []byte) ([]byte, error)
}

// SignTxEIP155 implements accounts.Wallet, which allows the account to sign an ERC-20 transaction.
func (w *Wallet) SignTxEIP155(account accounts.Account, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) {
func (w *Wallet) SignTxEIP155(account accounts.Account, tx *types.Transaction, baseFee, chainID *big.Int) (*types.Transaction, error) {
w.stateLock.RLock() // Comms have own mutex, this is for the state fields
defer w.stateLock.RUnlock()

Expand All @@ -251,7 +251,7 @@ func (w *Wallet) SignTxEIP155(account accounts.Account, tx *types.Transaction, c
return nil, err
}

msg, err := signedTx.AsMessage(types.NewEIP155Signer(chainID))
msg, err := signedTx.AsMessage(types.NewEIP155Signer(chainID), baseFee)
if err != nil {
return nil, err
}
Expand All @@ -265,7 +265,7 @@ func (w *Wallet) SignTxEIP155(account accounts.Account, tx *types.Transaction, c
}

// SignTx implements accounts.Wallet, which allows the account to sign an Ethereum transaction.
func (w *Wallet) SignTx(account accounts.Account, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) {
func (w *Wallet) SignTx(account accounts.Account, tx *types.Transaction, baseFee, chainID *big.Int) (*types.Transaction, error) {
w.stateLock.RLock() // Comms have own mutex, this is for the state fields
defer w.stateLock.RUnlock()

Expand All @@ -286,7 +286,7 @@ func (w *Wallet) SignTx(account accounts.Account, tx *types.Transaction, chainID
return nil, err
}

msg, err := signedTx.AsMessage(types.HomesteadSigner{})
msg, err := signedTx.AsMessage(types.HomesteadSigner{}, baseFee)
if err != nil {
return nil, err
}
Expand All @@ -308,8 +308,8 @@ func (w *Wallet) SignHashWithPassphrase(account accounts.Account, passphrase str

// SignTxWithPassphrase implements accounts.Wallet, attempting to sign the given
// transaction with the given account using passphrase as extra authentication.
func (w *Wallet) SignTxWithPassphrase(account accounts.Account, passphrase string, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) {
return w.SignTx(account, tx, chainID)
func (w *Wallet) SignTxWithPassphrase(account accounts.Account, passphrase string, tx *types.Transaction, baseFee, chainID *big.Int) (*types.Transaction, error) {
return w.SignTx(account, tx, baseFee, chainID)
}

// PrivateKey returns the ECDSA private key of the account.
Expand Down
6 changes: 3 additions & 3 deletions hdwallet_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ func TestWallet(t *testing.T) {

tx := types.NewTransaction(nonce, toAddress, value, gasLimit, gasPrice, data)

signedTx, err := wallet.SignTx(account, tx, nil)
signedTx, err := wallet.SignTx(account, tx, nil, nil)
if err != nil {
t.Error(err)
}
Expand All @@ -179,15 +179,15 @@ func TestWallet(t *testing.T) {
t.Error("expected s value")
}

signedTx2, err := wallet.SignTxWithPassphrase(account, "", tx, nil)
signedTx2, err := wallet.SignTxWithPassphrase(account, "", tx, nil, nil)
if err != nil {
t.Error(err)
}
if signedTx.Hash() != signedTx2.Hash() {
t.Error("expected match")
}

signedTx3, err := wallet.SignTxEIP155(account, tx, big.NewInt(42))
signedTx3, err := wallet.SignTxEIP155(account, tx, big.NewInt(41), big.NewInt(42))
if err != nil {
t.Error(err)
}
Expand Down

0 comments on commit 56a4d34

Please sign in to comment.