Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
internal/ethapi: error if tx args includes ChainId not match local (e…
Browse files Browse the repository at this point in the history
gzliudan committed Sep 22, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 6a774cb commit 4fca361
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions internal/ethapi/transaction_args.go
Original file line number Diff line number Diff line change
@@ -165,9 +165,15 @@ func (args *TransactionArgs) setDefaults(ctx context.Context, b Backend) error {
args.Gas = &estimated
log.Trace("Estimate gas usage automatically", "gas", args.Gas)
}
if args.ChainID == nil {
id := (*hexutil.Big)(b.ChainConfig().ChainId)
args.ChainID = id
// If chain id is provided, ensure it matches the local chain id. Otherwise, set the local
// chain id as the default.
want := b.ChainConfig().ChainId
if args.ChainID != nil {
if have := (*big.Int)(args.ChainID); have.Cmp(want) != 0 {
return fmt.Errorf("chainId does not match node's (have=%v, want=%v)", have, want)
}
} else {
args.ChainID = (*hexutil.Big)(want)
}
return nil
}

0 comments on commit 4fca361

Please sign in to comment.