Skip to content

Commit 19cc97c

Browse files
committed
relayer: return error if chain ID is mismatched
1 parent 5584576 commit 19cc97c

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

relayer/relayer.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,12 +248,16 @@ func (r *Client) Relay(ctx context.Context, signedTxs *sequence.SignedTransactio
248248

249249
var authorization *proto.EIP7702Authorization
250250
if signedTxs.Authorization != nil {
251+
if signedTxs.ChainID.Uint64() != signedTxs.Authorization.ChainID.Uint64() {
252+
return "", nil, nil, fmt.Errorf("chain ID mismatch between signed transactions and authorization")
253+
}
254+
251255
var sig [65]byte
252256
signedTxs.Authorization.R.WriteToSlice(sig[:32])
253257
signedTxs.Authorization.S.WriteToSlice(sig[32:64])
254258
sig[64] = signedTxs.Authorization.V
255259
authorization = &proto.EIP7702Authorization{
256-
ChainId: signedTxs.ChainID.Uint64(),
260+
ChainId: signedTxs.Authorization.ChainID.Uint64(),
257261
Nonce: signedTxs.Authorization.Nonce,
258262
Implementation: signedTxs.Authorization.Address.Hex(),
259263
Signature: hexutil.Encode(sig[:]),
@@ -303,12 +307,16 @@ func (r *Client) FeeOptions(ctx context.Context, signedTxs *sequence.SignedTrans
303307

304308
var authorization *proto.EIP7702Authorization
305309
if signedTxs.Authorization != nil {
310+
if signedTxs.ChainID.Uint64() != signedTxs.Authorization.ChainID.Uint64() {
311+
return nil, nil, fmt.Errorf("chain ID mismatch between signed transactions and authorization")
312+
}
313+
306314
var sig [65]byte
307315
signedTxs.Authorization.R.WriteToSlice(sig[:32])
308316
signedTxs.Authorization.S.WriteToSlice(sig[32:64])
309317
sig[64] = signedTxs.Authorization.V
310318
authorization = &proto.EIP7702Authorization{
311-
ChainId: signedTxs.ChainID.Uint64(),
319+
ChainId: signedTxs.Authorization.ChainID.Uint64(),
312320
Nonce: signedTxs.Authorization.Nonce,
313321
Implementation: signedTxs.Authorization.Address.Hex(),
314322
Signature: hexutil.Encode(sig[:]),

0 commit comments

Comments
 (0)