func (_BConst *BConstRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _BConst.Contract.BConstCaller.contract.Call(opts, result, method, params...)
}
Call invokes the (constant) contract method with params as input values and
sets the output to result. The result type might be a single field for simple
returns, a slice of interfaces for anonymous returns and a struct for named
returns.
package balancer
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 BBronzeABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"getColor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
var BBronzeFuncSigs = map[string]string{
	"9a86139b": "getColor()",
}
var BBronzeBin = "0x6080604052348015600f57600080fd5b5060878061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80639a86139b14602d575b600080fd5b60336045565b60408051918252519081900360200190f35b6542524f4e5a4560d01b9056fea265627a7a72315820d3d552b78e7b2e77e5322e2b4f9dd135223e46ccfe5175ad6ad1064b13640ce664736f6c634300050c0032"
func DeployBBronze(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BBronze, error) {
	parsed, err := abi.JSON(strings.NewReader(BBronzeABI))
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(BBronzeBin), backend)
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	return address, tx, &BBronze{BBronzeCaller: BBronzeCaller{contract: contract}, BBronzeTransactor: BBronzeTransactor{contract: contract}, BBronzeFilterer: BBronzeFilterer{contract: contract}}, nil
}
type BBronze struct {
	BBronzeCaller      
	BBronzeTransactor  
	BBronzeFilterer    
}
type BBronzeCaller struct {
	contract *bind.BoundContract  
}
type BBronzeTransactor struct {
	contract *bind.BoundContract  
}
type BBronzeFilterer struct {
	contract *bind.BoundContract  
}
type BBronzeSession struct {
	Contract     *BBronze           
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type BBronzeCallerSession struct {
	Contract *BBronzeCaller  
	CallOpts bind.CallOpts   
}
type BBronzeTransactorSession struct {
	Contract     *BBronzeTransactor  
	TransactOpts bind.TransactOpts   
}
type BBronzeRaw struct {
	Contract *BBronze  
}
type BBronzeCallerRaw struct {
	Contract *BBronzeCaller  
}
type BBronzeTransactorRaw struct {
	Contract *BBronzeTransactor  
}
func NewBBronze(address common.Address, backend bind.ContractBackend) (*BBronze, error) {
	contract, err := bindBBronze(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &BBronze{BBronzeCaller: BBronzeCaller{contract: contract}, BBronzeTransactor: BBronzeTransactor{contract: contract}, BBronzeFilterer: BBronzeFilterer{contract: contract}}, nil
}
func NewBBronzeCaller(address common.Address, caller bind.ContractCaller) (*BBronzeCaller, error) {
	contract, err := bindBBronze(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &BBronzeCaller{contract: contract}, nil
}
func NewBBronzeTransactor(address common.Address, transactor bind.ContractTransactor) (*BBronzeTransactor, error) {
	contract, err := bindBBronze(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &BBronzeTransactor{contract: contract}, nil
}
func NewBBronzeFilterer(address common.Address, filterer bind.ContractFilterer) (*BBronzeFilterer, error) {
	contract, err := bindBBronze(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &BBronzeFilterer{contract: contract}, nil
}
func bindBBronze(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(BBronzeABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_BBronze *BBronzeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _BBronze.Contract.BBronzeCaller.contract.Call(opts, result, method, params...)
}
func (_BBronze *BBronzeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _BBronze.Contract.BBronzeTransactor.contract.Transfer(opts)
}
func (_BBronze *BBronzeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _BBronze.Contract.BBronzeTransactor.contract.Transact(opts, method, params...)
}
func (_BBronze *BBronzeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _BBronze.Contract.contract.Call(opts, result, method, params...)
}
func (_BBronze *BBronzeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _BBronze.Contract.contract.Transfer(opts)
}
func (_BBronze *BBronzeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _BBronze.Contract.contract.Transact(opts, method, params...)
}
func (_BBronze *BBronzeCaller) GetColor(opts *bind.CallOpts) ([32]byte, error) {
	var out []interface{}
	err := _BBronze.contract.Call(opts, &out, "getColor")
	if err != nil {
		return *new([32]byte), err
	}
	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
	return out0, err
}
func (_BBronze *BBronzeSession) GetColor() ([32]byte, error) {
	return _BBronze.Contract.GetColor(&_BBronze.CallOpts)
}
func (_BBronze *BBronzeCallerSession) GetColor() ([32]byte, error) {
	return _BBronze.Contract.GetColor(&_BBronze.CallOpts)
}
const BColorABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"getColor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
var BColorFuncSigs = map[string]string{
	"9a86139b": "getColor()",
}
type BColor struct {
	BColorCaller      
	BColorTransactor  
	BColorFilterer    
}
type BColorCaller struct {
	contract *bind.BoundContract  
}
type BColorTransactor struct {
	contract *bind.BoundContract  
}
type BColorFilterer struct {
	contract *bind.BoundContract  
}
type BColorSession struct {
	Contract     *BColor            
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type BColorCallerSession struct {
	Contract *BColorCaller  
	CallOpts bind.CallOpts  
}
type BColorTransactorSession struct {
	Contract     *BColorTransactor  
	TransactOpts bind.TransactOpts  
}
type BColorRaw struct {
	Contract *BColor  
}
type BColorCallerRaw struct {
	Contract *BColorCaller  
}
type BColorTransactorRaw struct {
	Contract *BColorTransactor  
}
func NewBColor(address common.Address, backend bind.ContractBackend) (*BColor, error) {
	contract, err := bindBColor(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &BColor{BColorCaller: BColorCaller{contract: contract}, BColorTransactor: BColorTransactor{contract: contract}, BColorFilterer: BColorFilterer{contract: contract}}, nil
}
func NewBColorCaller(address common.Address, caller bind.ContractCaller) (*BColorCaller, error) {
	contract, err := bindBColor(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &BColorCaller{contract: contract}, nil
}
func NewBColorTransactor(address common.Address, transactor bind.ContractTransactor) (*BColorTransactor, error) {
	contract, err := bindBColor(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &BColorTransactor{contract: contract}, nil
}
func NewBColorFilterer(address common.Address, filterer bind.ContractFilterer) (*BColorFilterer, error) {
	contract, err := bindBColor(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &BColorFilterer{contract: contract}, nil
}
func bindBColor(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(BColorABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_BColor *BColorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _BColor.Contract.BColorCaller.contract.Call(opts, result, method, params...)
}
func (_BColor *BColorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _BColor.Contract.BColorTransactor.contract.Transfer(opts)
}
func (_BColor *BColorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _BColor.Contract.BColorTransactor.contract.Transact(opts, method, params...)
}
func (_BColor *BColorCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _BColor.Contract.contract.Call(opts, result, method, params...)
}
func (_BColor *BColorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _BColor.Contract.contract.Transfer(opts)
}
func (_BColor *BColorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _BColor.Contract.contract.Transact(opts, method, params...)
}
func (_BColor *BColorCaller) GetColor(opts *bind.CallOpts) ([32]byte, error) {
	var out []interface{}
	err := _BColor.contract.Call(opts, &out, "getColor")
	if err != nil {
		return *new([32]byte), err
	}
	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
	return out0, err
}
func (_BColor *BColorSession) GetColor() ([32]byte, error) {
	return _BColor.Contract.GetColor(&_BColor.CallOpts)
}
func (_BColor *BColorCallerSession) GetColor() ([32]byte, error) {
	return _BColor.Contract.GetColor(&_BColor.CallOpts)
}
const BConstABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"BONE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"BPOW_PRECISION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"EXIT_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INIT_POOL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_BOUND_TOKENS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_BPOW_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_IN_RATIO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OUT_RATIO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_TOTAL_WEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_WEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BOUND_TOKENS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_BPOW_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_WEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getColor\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
var BConstFuncSigs = map[string]string{
	"c36596a6": "BONE()",
	"189d00ca": "BPOW_PRECISION()",
	"c6580d12": "EXIT_FEE()",
	"9381cd2b": "INIT_POOL_SUPPLY()",
	"b0e0d136": "MAX_BOUND_TOKENS()",
	"bc694ea2": "MAX_BPOW_BASE()",
	"bc063e1a": "MAX_FEE()",
	"ec093021": "MAX_IN_RATIO()",
	"992e2a92": "MAX_OUT_RATIO()",
	"09a3bbe4": "MAX_TOTAL_WEIGHT()",
	"e4a28a52": "MAX_WEIGHT()",
	"867378c5": "MIN_BALANCE()",
	"b7b800a4": "MIN_BOUND_TOKENS()",
	"ba019dab": "MIN_BPOW_BASE()",
	"76c7a3c7": "MIN_FEE()",
	"218b5382": "MIN_WEIGHT()",
	"9a86139b": "getColor()",
}
var BConstBin = "0x608060405234801561001057600080fd5b50610288806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063b0e0d136116100a2578063bc694ea211610071578063bc694ea214610182578063c36596a614610132578063c6580d121461018a578063e4a28a5214610110578063ec093021146101925761010b565b8063b0e0d13614610162578063b7b800a41461016a578063ba019dab14610172578063bc063e1a1461017a5761010b565b8063867378c5116100de578063867378c5146101425780639381cd2b1461014a578063992e2a92146101525780639a86139b1461015a5761010b565b806309a3bbe414610110578063189d00ca1461012a578063218b53821461013257806376c7a3c71461013a575b600080fd5b61011861019a565b60408051918252519081900360200190f35b6101186101a7565b6101186101bb565b6101186101c7565b6101186101d9565b6101186101ed565b6101186101fa565b610118610206565b610118610213565b610118610218565b61011861021d565b610118610222565b610118610232565b61011861023e565b610118610243565b6802b5e3af16b188000081565b6402540be400670de0b6b3a76400005b0481565b670de0b6b3a764000081565b620f4240670de0b6b3a76400006101b7565b64e8d4a51000670de0b6b3a76400006101b7565b68056bc75e2d6310000081565b6704a03ce68d21555681565b6542524f4e5a4560d01b90565b600881565b600281565b600181565b600a670de0b6b3a76400006101b7565b671bc16d674ec7ffff81565b600081565b6002670de0b6b3a76400006101b756fea265627a7a72315820d8f7793b5addb822085cc966647b0a04694550078347c0ab51edcb365ea7e17b64736f6c634300050c0032"
func DeployBConst(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BConst, error) {
	parsed, err := abi.JSON(strings.NewReader(BConstABI))
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(BConstBin), backend)
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	return address, tx, &BConst{BConstCaller: BConstCaller{contract: contract}, BConstTransactor: BConstTransactor{contract: contract}, BConstFilterer: BConstFilterer{contract: contract}}, nil
}
type BConst struct {
	BConstCaller      
	BConstTransactor  
	BConstFilterer    
}
type BConstCaller struct {
	contract *bind.BoundContract  
}
type BConstTransactor struct {
	contract *bind.BoundContract  
}
type BConstFilterer struct {
	contract *bind.BoundContract  
}
type BConstSession struct {
	Contract     *BConst            
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type BConstCallerSession struct {
	Contract *BConstCaller  
	CallOpts bind.CallOpts  
}
type BConstTransactorSession struct {
	Contract     *BConstTransactor  
	TransactOpts bind.TransactOpts  
}
type BConstRaw struct {
	Contract *BConst  
}
type BConstCallerRaw struct {
	Contract *BConstCaller  
}
type BConstTransactorRaw struct {
	Contract *BConstTransactor  
}
func NewBConst(address common.Address, backend bind.ContractBackend) (*BConst, error) {
	contract, err := bindBConst(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &BConst{BConstCaller: BConstCaller{contract: contract}, BConstTransactor: BConstTransactor{contract: contract}, BConstFilterer: BConstFilterer{contract: contract}}, nil
}
func NewBConstCaller(address common.Address, caller bind.ContractCaller) (*BConstCaller, error) {
	contract, err := bindBConst(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &BConstCaller{contract: contract}, nil
}
func NewBConstTransactor(address common.Address, transactor bind.ContractTransactor) (*BConstTransactor, error) {
	contract, err := bindBConst(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &BConstTransactor{contract: contract}, nil
}
func NewBConstFilterer(address common.Address, filterer bind.ContractFilterer) (*BConstFilterer, error) {
	contract, err := bindBConst(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &BConstFilterer{contract: contract}, nil
}
func bindBConst(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(BConstABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}