github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/cli/initialize/initialize.go (about)

     1  package initialize
     2  
     3  import (
     4  	"fmt"
     5  	"math/big"
     6  
     7  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls"
     8  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls/evmclient"
     9  	evmgaspricer "github.com/ChainSafe/chainbridge-core/chains/evm/calls/evmgaspricer"
    10  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor"
    11  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor/prepare"
    12  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor/signAndSend"
    13  	"github.com/ChainSafe/chainbridge-core/crypto/secp256k1"
    14  	"github.com/rs/zerolog/log"
    15  )
    16  
    17  func InitializeClient(
    18  	url string,
    19  	senderKeyPair *secp256k1.Keypair,
    20  ) (*evmclient.EVMClient, error) {
    21  	ethClient, err := evmclient.NewEVMClient(url, senderKeyPair)
    22  	if err != nil {
    23  		log.Error().Err(fmt.Errorf("eth client initialization error: %v", err))
    24  		return nil, err
    25  	}
    26  	return ethClient, nil
    27  }
    28  
    29  // Initialize transactor which is used for contract calls
    30  // if --prepare flag value is set as true (from CLI) call data is outputted to stdout
    31  // which can be used for multisig contract calls
    32  func InitializeTransactor(
    33  	gasPrice *big.Int,
    34  	txFabric calls.TxFabric,
    35  	client *evmclient.EVMClient,
    36  	prepareFlag bool,
    37  ) (transactor.Transactor, error) {
    38  	var trans transactor.Transactor
    39  	if prepareFlag {
    40  		trans = prepare.NewPrepareTransactor()
    41  	} else {
    42  		gasPricer := evmgaspricer.NewLondonGasPriceClient(
    43  			client,
    44  			&evmgaspricer.GasPricerOpts{UpperLimitFeePerGas: gasPrice},
    45  		)
    46  		trans = signAndSend.NewSignAndSendTransactor(txFabric, gasPricer, client)
    47  	}
    48  
    49  	return trans, nil
    50  }