func (_Herc20tokenin *Herc20tokeninRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Herc20tokenin.Contract.Herc20tokeninTransactor.contract.Transfer(opts)
}
Transfer initiates a plain transaction to move funds to the contract, calling
its default method if one is available.
package herc20tokenin
import (
	"math/big"
	"strings"
	ethereum "github.com/ethereum/go-ethereum"
	"github.com/ethereum/go-ethereum/accounts/abi"
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/core/types"
	"github.com/ethereum/go-ethereum/event"
)
var (
	_ = big.NewInt
	_ = strings.NewReader
	_ = ethereum.NotFound
	_ = bind.Bind
	_ = common.Big1
	_ = types.BloomLookup
	_ = event.NewSubscription
)
const Herc20tokeninABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"inject\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"postProcess\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}]"
type Herc20tokenin struct {
	Herc20tokeninCaller      
	Herc20tokeninTransactor  
	Herc20tokeninFilterer    
}
type Herc20tokeninCaller struct {
	contract *bind.BoundContract  
}
type Herc20tokeninTransactor struct {
	contract *bind.BoundContract  
}
type Herc20tokeninFilterer struct {
	contract *bind.BoundContract  
}
type Herc20tokeninSession struct {
	Contract     *Herc20tokenin     
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type Herc20tokeninCallerSession struct {
	Contract *Herc20tokeninCaller  
	CallOpts bind.CallOpts         
}
type Herc20tokeninTransactorSession struct {
	Contract     *Herc20tokeninTransactor  
	TransactOpts bind.TransactOpts         
}
type Herc20tokeninRaw struct {
	Contract *Herc20tokenin  
}
type Herc20tokeninCallerRaw struct {
	Contract *Herc20tokeninCaller  
}
type Herc20tokeninTransactorRaw struct {
	Contract *Herc20tokeninTransactor  
}
func NewHerc20tokenin(address common.Address, backend bind.ContractBackend) (*Herc20tokenin, error) {
	contract, err := bindHerc20tokenin(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &Herc20tokenin{Herc20tokeninCaller: Herc20tokeninCaller{contract: contract}, Herc20tokeninTransactor: Herc20tokeninTransactor{contract: contract}, Herc20tokeninFilterer: Herc20tokeninFilterer{contract: contract}}, nil
}
func NewHerc20tokeninCaller(address common.Address, caller bind.ContractCaller) (*Herc20tokeninCaller, error) {
	contract, err := bindHerc20tokenin(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &Herc20tokeninCaller{contract: contract}, nil
}
func NewHerc20tokeninTransactor(address common.Address, transactor bind.ContractTransactor) (*Herc20tokeninTransactor, error) {
	contract, err := bindHerc20tokenin(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &Herc20tokeninTransactor{contract: contract}, nil
}
func NewHerc20tokeninFilterer(address common.Address, filterer bind.ContractFilterer) (*Herc20tokeninFilterer, error) {
	contract, err := bindHerc20tokenin(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &Herc20tokeninFilterer{contract: contract}, nil
}
func bindHerc20tokenin(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(Herc20tokeninABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_Herc20tokenin *Herc20tokeninRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _Herc20tokenin.Contract.Herc20tokeninCaller.contract.Call(opts, result, method, params...)
}