func (ob *Payer) Transfer(amount *big.Int) (string, error) {
senderAddr := ethcrypto.PubkeyToAddress(ob.config.privateKey.PublicKey)
nonce, err := ob.L1Client.PendingNonceAt(context.Background(), senderAddr)
if err != nil {
return “”, err
}
gasLimit := uint64(21000) // in units
gasPrice, err := ob.L1Client.SuggestGasPrice(context.Background())
if err != nil {
return “”, err
}
baseTx := ðtypes.LegacyTx{
To: &ob.config.receiverAddr,
Nonce: nonce,
GasPrice: gasPrice,
Gas: gasLimit,
Value: amount,
Data: nil,
}
tx := ethtypes.NewTx(baseTx)
chainID, err := ob.L1Client.NetworkID(context.Background())
if err != nil {
return “”, err
}
signedTx, err := ethtypes.SignTx(tx, ethtypes.NewEIP155Signer(chainID), ob.config.privateKey)
if err != nil {