diff --git a/relayer/rpc_relayer.go b/relayer/rpc_relayer.go index 7b9aabe..210f501 100644 --- a/relayer/rpc_relayer.go +++ b/relayer/rpc_relayer.go @@ -111,9 +111,14 @@ func (r *RpcRelayer) GetNonce(ctx context.Context, walletConfig core.WalletConfi // responds with the native transaction hash (*types.Transaction), which means the relayer has submitted the transaction // request to the network. Clients can use WaitReceipt to wait until the metaTxnID has been mined. func (r *RpcRelayer) Relay(ctx context.Context, signedTxs *sequence.SignedTransactions) (sequence.MetaTxnID, *types.Transaction, ethtxn.WaitReceipt, error) { - walletAddress, err := sequence.AddressFromWalletConfig(signedTxs.WalletConfig, signedTxs.WalletContext) - if err != nil { - return "", nil, nil, err + walletAddress := signedTxs.WalletAddress + var err error + + if walletAddress == (common.Address{}) { + walletAddress, err = sequence.AddressFromWalletConfig(signedTxs.WalletConfig, signedTxs.WalletContext) + if err != nil { + return "", nil, nil, err + } } to, execdata, err := sequence.EncodeTransactionsForRelaying(