github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/calls/contracts/erc20/erc20Handler.go (about)

     1  package erc20
     2  
     3  import (
     4  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls"
     5  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls/consts"
     6  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls/contracts"
     7  	"github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor"
     8  	"github.com/ethereum/go-ethereum/accounts/abi"
     9  	"github.com/ethereum/go-ethereum/common"
    10  	"strings"
    11  )
    12  
    13  type ERC20HandlerContract struct {
    14  	contracts.Contract
    15  }
    16  
    17  func NewERC20HandlerContract(
    18  	client calls.ContractCallerDispatcher,
    19  	erc20HandlerContractAddress common.Address,
    20  	t transactor.Transactor,
    21  ) *ERC20HandlerContract {
    22  	a, _ := abi.JSON(strings.NewReader(consts.ERC20HandlerABI))
    23  	b := common.FromHex(consts.ERC20HandlerBin)
    24  	return &ERC20HandlerContract{contracts.NewContract(erc20HandlerContractAddress, a, b, client, t)}
    25  }