func (_TokenCashier *TokenCashierTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _TokenCashier.Contract.contract.Transfer(opts)
}
Transfer initiates a plain transaction to move funds to the contract, calling
its default method if one is available.
package contract
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 TokenCashierABI = "[{\"inputs\":[{\"internalType\":\"contractIWrappedCoin\",\"name\":\"_wrappedCoin\",\"type\":\"address\"},{\"internalType\":\"contractITokenList[]\",\"name\":\"_tokenLists\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_tokenSafes\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Receipt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"},{\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"counts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"depositFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenLists\",\"outputs\":[{\"internalType\":\"contractITokenList\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenSafes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"wrappedCoin\",\"outputs\":[{\"internalType\":\"contractIWrappedCoin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"count\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"}],\"name\":\"setDepositFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"depositTo\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
var TokenCashierBin = "0x60806040526000805460ff60a01b191690553480156200001e57600080fd5b50604051620014b5380380620014b5833981810160405260608110156200004457600080fd5b8151602083018051604051929492938301929190846401000000008211156200006c57600080fd5b9083019060208201858111156200008257600080fd5b8251866020820283011164010000000082111715620000a057600080fd5b82525081516020918201928201910280838360005b83811015620000cf578181015183820152602001620000b5565b5050505090500160405260200180516040519392919084640100000000821115620000f957600080fd5b9083019060208201858111156200010f57600080fd5b82518660208202830111640100000000821117156200012d57600080fd5b82525081516020918201928201910280838360005b838110156200015c57818101518382015260200162000142565b50505050919091016040525050600080546001600160a01b0319163317905550508051825114620001bf5760405162461bcd60e51b815260040180806020018281038252602b8152602001806200148a602b913960400191505060405180910390fd5b600580546001600160a01b0319166001600160a01b0385161790558151620001ef9060019060208501906200020f565b508051620002059060029060208401906200020f565b50505050620002a3565b82805482825590600052602060002090810192821562000267579160200282015b828111156200026757825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000230565b506200027592915062000279565b5090565b620002a091905b80821115620002755780546001600160a01b031916815560010162000280565b90565b6111d780620002b36000396000f3fe6080604052600436106100f35760003560e01c80635c975abb1161008a578063894760691161005957806389476069146102d75780638da5cb5b1461030a578063f213159c1461031f578063f2fde38b14610355576100f3565b80635c975abb1461025a57806367a527931461028357806384378ec6146102985780638456cb59146102c2576100f3565b80633f4ba83a116100c65780633f4ba83a146101da57806347e7ef24146101ef578063490ae2101461021b578063527ba9af14610245576100f3565b80630568e65e1461010557806305d85eda1461014a5780631cb928a91461017d5780633ccfd60b146101c3575b3480156100ff57600080fd5b50600080fd5b34801561011157600080fd5b506101386004803603602081101561012857600080fd5b50356001600160a01b0316610388565b60408051918252519081900360200190f35b34801561015657600080fd5b506101386004803603602081101561016d57600080fd5b50356001600160a01b031661039a565b34801561018957600080fd5b506101a7600480360360208110156101a057600080fd5b50356103b5565b604080516001600160a01b039092168252519081900360200190f35b3480156101cf57600080fd5b506101d86103dc565b005b3480156101e657600080fd5b506101d8610422565b6101d86004803603604081101561020557600080fd5b506001600160a01b038135169060200135610485565b34801561022757600080fd5b506101d86004803603602081101561023e57600080fd5b5035610494565b34801561025157600080fd5b506101a76104b0565b34801561026657600080fd5b5061026f6104bf565b604080519115158252519081900360200190f35b34801561028f57600080fd5b506101386104cf565b3480156102a457600080fd5b506101a7600480360360208110156102bb57600080fd5b50356104d5565b3480156102ce57600080fd5b506101d86104e2565b3480156102e357600080fd5b506101d8600480360360208110156102fa57600080fd5b50356001600160a01b031661054c565b34801561031657600080fd5b506101a761071b565b6101d86004803603606081101561033557600080fd5b506001600160a01b0381358116916020810135909116906040013561072a565b34801561036157600080fd5b506101d86004803603602081101561037857600080fd5b50356001600160a01b0316610eb7565b60036020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b600181815481106103c257fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146103f357600080fd5b60405133904780156108fc02916000818181858888f1935050505015801561041f573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461043957600080fd5b600054600160a01b900460ff1661044f57600080fd5b6000805460ff60a01b191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b61049082338361072a565b5050565b6000546001600160a01b031633146104ab57600080fd5b600455565b6005546001600160a01b031681565b600054600160a01b900460ff1681565b60045481565b600281815481106103c257fe5b6000546001600160a01b031633146104f957600080fd5b600054600160a01b900460ff161561051057600080fd5b6000805460ff60a01b1916600160a01b1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b6000546001600160a01b0316331461056357600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b178152915181516000936060936001600160a01b038716939092909182918083835b602083106105da5780518252601f1990920191602091820191016105bb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461063c576040519150601f19603f3d011682016040523d82523d6000602084013e610641565b606091505b509150915081610698576040805162461bcd60e51b815260206004820152601860248201527f6661696c656420746f2063616c6c2062616c616e63654f660000000000000000604482015290519081900360640190fd5b60008180602001905160208110156106af57600080fd5b505190508015610715576106c4843383610f3c565b610715576040805162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20776974686472617720746f6b656e0000000000000000604482015290519081900360640190fd5b50505050565b6000546001600160a01b031681565b600054600160a01b900460ff161561074157600080fd5b6001600160a01b038216610792576040805162461bcd60e51b815260206004820152601360248201527234b73b30b634b2103232b9ba34b730ba34b7b760691b604482015290519081900360640190fd5b6000346001600160a01b03851661087257823410156107f1576040805162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e74206d73672e76616c756560501b604482015290519081900360640190fd5b8234039050600560009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561084657600080fd5b505af115801561085a573d6000803e3d6000fd5b50506005546001600160a01b03169750600194505050505b6004548110156108bc576040805162461bcd60e51b815260206004820152601060248201526f696e73756666696369656e742066656560801b604482015290519081900360640190fd5b60005b600154811015610e6457600181815481106108d657fe5b60009182526020808320909101546040805163babcc53960e01b81526001600160a01b038b811660048301529151919092169363babcc53993602480850194919392918390030190829087803b15801561092f57600080fd5b505af1158015610943573d6000803e3d6000fd5b505050506040513d602081101561095957600080fd5b505115610e5c576001818154811061096d57fe5b600091825260208083209091015460408051634d0a32db60e01b81526001600160a01b038b8116600483015291519190921693634d0a32db93602480850194919392918390030190829087803b1580156109c657600080fd5b505af11580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b5051841015610a37576040805162461bcd60e51b815260206004820152600e60248201526d616d6f756e7420746f6f206c6f7760901b604482015290519081900360640190fd5b60018181548110610a4457fe5b600091825260208083209091015460408051632537b82960e21b81526001600160a01b038b81166004830152915191909216936394dee0a493602480850194919392918390030190829087803b158015610a9d57600080fd5b505af1158015610ab1573d6000803e3d6000fd5b505050506040513d6020811015610ac757600080fd5b5051841115610b0f576040805162461bcd60e51b815260206004820152600f60248201526e0c2dadeeadce840e8dede40d0d2ced608b1b604482015290519081900360640190fd5b60006001600160a01b031660028281548110610b2757fe5b6000918252602090912001546001600160a01b03161415610ce95782158015610b575750610b578633308761105a565b610b925760405162461bcd60e51b81526004018080602001828103825260218152602001806111826021913960400191505060405180910390fd5b60408051602480820187905282518083039091018152604490910182526020810180516001600160e01b0316630852cd8d60e31b178152915181516000936060936001600160a01b038c16939092909182918083835b60208310610c075780518252601f199092019160209182019101610be8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c69576040519150601f19603f3d011682016040523d82523d6000602084013e610c6e565b606091505b5091509150818015610c9c575080511580610c9c5750808060200190516020811015610c9957600080fd5b50515b610ce2576040805162461bcd60e51b81526020600482015260126024820152713330b4b6103a3790313ab937103a37b5b2b760711b604482015290519081900360640190fd5b5050610de3565b8215610d6b57610d1b8660028381548110610d0057fe5b6000918252602090912001546001600160a01b031686610f3c565b610d66576040805162461bcd60e51b81526020600482015260176024820152766661696c656420746f2070757420696e746f207361666560481b604482015290519081900360640190fd5b610de3565b610d98863360028481548110610d7d57fe5b6000918252602090912001546001600160a01b03168761105a565b610de3576040805162461bcd60e51b81526020600482015260176024820152766661696c656420746f2070757420696e746f207361666560481b604482015290519081900360640190fd5b6001600160a01b038087166000818152600360209081526040918290208054600101908190558251338152948a169185019190915283820188905260608401869052905190927f85425e130ee5cbf9eea6de0d309f1fdd5f7a343aeb20ad4263f3e1305fd5b919919081900360800190a3505050610eb2565b6001016108bf565b506040805162461bcd60e51b815260206004820152601760248201527f6e6f7420612077686974656c697374656420746f6b656e000000000000000000604482015290519081900360640190fd5b505050565b6000546001600160a01b03163314610ece57600080fd5b6001600160a01b038116610ee157600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485946060948a16939092909182918083835b60208310610fbb5780518252601f199092019160209182019101610f9c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461101d576040519150601f19603f3d011682016040523d82523d6000602084013e611022565b606091505b5091509150818015611050575080511580611050575080806020019051602081101561104d57600080fd5b50515b9695505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1781529251825160009485946060948b16939092909182918083835b602083106110e15780518252601f1990920191602091820191016110c2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611143576040519150601f19603f3d011682016040523d82523d6000602084013e611148565b606091505b5091509150818015611176575080511580611176575080806020019051602081101561117357600080fd5b50515b97965050505050505056fe6661696c20746f207472616e7366657220746f6b656e20746f2063617368696572a265627a7a72315820ef548558871498992fc6393f52a77cd45975f8bb4729b3279ff641a12f8a82bd64736f6c6343000511003223206f6620746f6b656e206c69737473206973206e6f7420657175616c20746f2023206f66207361666573"
func DeployTokenCashier(auth *bind.TransactOpts, backend bind.ContractBackend, _wrappedCoin common.Address, _tokenLists []common.Address, _tokenSafes []common.Address) (common.Address, *types.Transaction, *TokenCashier, error) {
	parsed, err := abi.JSON(strings.NewReader(TokenCashierABI))
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(TokenCashierBin), backend, _wrappedCoin, _tokenLists, _tokenSafes)
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	return address, tx, &TokenCashier{TokenCashierCaller: TokenCashierCaller{contract: contract}, TokenCashierTransactor: TokenCashierTransactor{contract: contract}, TokenCashierFilterer: TokenCashierFilterer{contract: contract}}, nil
}
type TokenCashier struct {
	TokenCashierCaller      
	TokenCashierTransactor  
	TokenCashierFilterer    
}
type TokenCashierCaller struct {
	contract *bind.BoundContract  
}
type TokenCashierTransactor struct {
	contract *bind.BoundContract  
}
type TokenCashierFilterer struct {
	contract *bind.BoundContract  
}
type TokenCashierSession struct {
	Contract     *TokenCashier      
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type TokenCashierCallerSession struct {
	Contract *TokenCashierCaller  
	CallOpts bind.CallOpts        
}
type TokenCashierTransactorSession struct {
	Contract     *TokenCashierTransactor  
	TransactOpts bind.TransactOpts        
}
type TokenCashierRaw struct {
	Contract *TokenCashier  
}
type TokenCashierCallerRaw struct {
	Contract *TokenCashierCaller  
}
type TokenCashierTransactorRaw struct {
	Contract *TokenCashierTransactor  
}
func NewTokenCashier(address common.Address, backend bind.ContractBackend) (*TokenCashier, error) {
	contract, err := bindTokenCashier(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &TokenCashier{TokenCashierCaller: TokenCashierCaller{contract: contract}, TokenCashierTransactor: TokenCashierTransactor{contract: contract}, TokenCashierFilterer: TokenCashierFilterer{contract: contract}}, nil
}
func NewTokenCashierCaller(address common.Address, caller bind.ContractCaller) (*TokenCashierCaller, error) {
	contract, err := bindTokenCashier(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &TokenCashierCaller{contract: contract}, nil
}
func NewTokenCashierTransactor(address common.Address, transactor bind.ContractTransactor) (*TokenCashierTransactor, error) {
	contract, err := bindTokenCashier(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &TokenCashierTransactor{contract: contract}, nil
}
func NewTokenCashierFilterer(address common.Address, filterer bind.ContractFilterer) (*TokenCashierFilterer, error) {
	contract, err := bindTokenCashier(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &TokenCashierFilterer{contract: contract}, nil
}
func bindTokenCashier(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(TokenCashierABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_TokenCashier *TokenCashierRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _TokenCashier.Contract.TokenCashierCaller.contract.Call(opts, result, method, params...)
}
func (_TokenCashier *TokenCashierRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _TokenCashier.Contract.TokenCashierTransactor.contract.Transfer(opts)
}
func (_TokenCashier *TokenCashierRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _TokenCashier.Contract.TokenCashierTransactor.contract.Transact(opts, method, params...)
}
func (_TokenCashier *TokenCashierCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _TokenCashier.Contract.contract.Call(opts, result, method, params...)
}